This commit was manufactured by cvs2svn to create tag 'v200709042257'.
diff --git a/bundles/org.eclipse.jst.jsp.core/.classpath b/bundles/org.eclipse.jst.jsp.core/.classpath
deleted file mode 100644
index ca82c98..0000000
--- a/bundles/org.eclipse.jst.jsp.core/.classpath
+++ /dev/null
@@ -1,19 +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/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/.cvsignore b/bundles/org.eclipse.jst.jsp.core/.cvsignore
deleted file mode 100644
index 12f30eb..0000000
--- a/bundles/org.eclipse.jst.jsp.core/.cvsignore
+++ /dev/null
@@ -1,11 +0,0 @@
-bin
-temp.folder
-jspmodel.jar
-dev.properties
-org.eclipse.jst.jsp.core_6.0.0.jar
-build.xml
-org.eclipse.jst.jsp.core_6.0.0.zip
-jspmodelsrc.zip
-@dot
-src.zip
-javaCompiler...args
diff --git a/bundles/org.eclipse.jst.jsp.core/.options b/bundles/org.eclipse.jst.jsp.core/.options
deleted file mode 100644
index 89a2c96..0000000
--- a/bundles/org.eclipse.jst.jsp.core/.options
+++ /dev/null
@@ -1,35 +0,0 @@
-org.eclipse.jst.jsp.core/debug=true
-org.eclipse.jst.jsp.core/debug/tracefilter=
-org.eclipse.jst.jsp.core/debug/jspindexmanager=false
-org.eclipse.jst.jsp.core/debug/jsptranslation=false
-org.eclipse.jst.jsp.core/debug/jsptranslationstodisk=false
-org.eclipse.jst.jsp.core/debug/jspsearch=false
-
-org.eclipse.jst.jsp.core/taglib/resolve=false
-
-
-# org.eclipse.jst.jsp.core.contentmodel.tld.TLDCMDocumentManager._debug
-org.eclipse.jst.jsp.core/debug/tldcmdocument/manager=false
-org.eclipse.jst.jsp.core/debug/tldcmdocument/cache=false
-
-# org.eclipse.jst.jsp.core.contentmodel.tld.CMDocumentFactoryTLD._debug
-org.eclipse.jst.jsp.core/debug/tldcmdocument/factory=false
-
-#org.eclipse.jst.jsp.core.internal.contentmodel.ProjectDescription._debugIndexCreation
-org.eclipse.jst.jsp.core/taglib/indexcreation=false
-#org.eclipse.jst.jsp.core.internal.contentmodel.ProjectDescription._debugIndexTime
-org.eclipse.jst.jsp.core/taglib/indextime=false
-
-#org.eclipse.jst.jsp.core.internal.contentmodel.TaglibIndex._debugEvents
-org.eclipse.jst.jsp.core/taglib/events=false
-#org.eclipse.jst.jsp.core.internal.contentmodel.TaglibIndex._debugIndexCreation
-org.eclipse.jst.jsp.core/taglib/indexcreation=false
-#org.eclipse.jst.jsp.core.internal.contentmodel.TaglibIndex._debugResolution
-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
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/.project b/bundles/org.eclipse.jst.jsp.core/.project
deleted file mode 100644
index 0f10b7a..0000000
--- a/bundles/org.eclipse.jst.jsp.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jst.jsp.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.jst.jsp.core/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.jst.jsp.core/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index afa5c91..0000000
--- a/bundles/org.eclipse.jst.jsp.core/.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.jst.jsp.core/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.jst.jsp.core/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index 7ec5750..0000000
--- a/bundles/org.eclipse.jst.jsp.core/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Apr 17 01:48:39 EDT 2006
-eclipse.preferences.version=1
-line.separator=\r\n
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
deleted file mode 100644
index 66ddc69..0000000
--- a/bundles/org.eclipse.jst.jsp.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,79 +0,0 @@
-#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

-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.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.core/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.jst.jsp.core/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 301c7ad..0000000
--- a/bundles/org.eclipse.jst.jsp.core/.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.jst.jsp.core/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.jst.jsp.core/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index c59368c..0000000
--- a/bundles/org.eclipse.jst.jsp.core/.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.core/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.jst.jsp.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index fc522bb..0000000
--- a/bundles/org.eclipse.jst.jsp.core/.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.jst.jsp.core/DevTimeSupport/CSSJSPParser/HowToGen.html b/bundles/org.eclipse.jst.jsp.core/DevTimeSupport/CSSJSPParser/HowToGen.html
deleted file mode 100644
index ea439f1..0000000
--- a/bundles/org.eclipse.jst.jsp.core/DevTimeSupport/CSSJSPParser/HowToGen.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<html>
-<body>
-<p>
-JSPedCSSTokenizer class is a scanner generated by <a href="http://www.jflex.de/">JFlex</a> 1.4.1 
-from the JSPedCSSTokenizer.flex grammer file.
-After generating the scanner, I removed unused private field errors.
-</p>
-</body>
-<html>
diff --git a/bundles/org.eclipse.jst.jsp.core/DevTimeSupport/CSSJSPParser/JSPedCSSTokenizer.flex b/bundles/org.eclipse.jst.jsp.core/DevTimeSupport/CSSJSPParser/JSPedCSSTokenizer.flex
deleted file mode 100644
index a48194e..0000000
--- a/bundles/org.eclipse.jst.jsp.core/DevTimeSupport/CSSJSPParser/JSPedCSSTokenizer.flex
+++ /dev/null
@@ -1,596 +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.core.internal.parser;

-

-import java.io.CharArrayReader;

-import java.io.IOException;

-import java.util.ArrayList;

-import java.util.List;

-

-import org.eclipse.jst.jsp.css.core.internal.parserz.JSPedCSSRegionContexts;

-import org.eclipse.wst.css.core.internal.parser.CSSRegionUtil;

-import org.eclipse.wst.css.core.internal.parser.ICSSTokenizer;

-import org.eclipse.wst.css.core.internal.parser.regions.CSSTextRegionFactory;

-import org.eclipse.wst.css.core.internal.parserz.CSSTextToken;

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

-

-%%

-

-%public

-%class JSPedCSSTokenizer

-%implements JSPedCSSRegionContexts, ICSSTokenizer

-%function primGetNextToken

-%type String

-%char

-%line

-%unicode

-%caseless

-%pack

-

-%{

-	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 == CSS_JSP_SCRIPTLET || context == CSS_JSP_EL){

-				nextTokenType = primGetNextToken();

-				while (nextTokenType != CSS_JSP_END && nextTokenType != CSS_EL_END && nextTokenType != CSS_JSP_COMMENT) {

-//					text.append(yytext());

-					textLength += yylength();

-					length = textLength;

-					if (context.equals(CSS_JSP_SCRIPTLET) && (yystate() == ST_JSP_DIRECTIVE || yystate() == ST_JSP_EXP || yystate() == ST_JSP_DECLARATION)){

-						context = nextTokenType;

-					}

-					nextTokenType = primGetNextToken();

-					if (nextTokenType == null){

-						break;

-					}

-				}

-				if (context == CSS_JSP_SCRIPTLET){

-					while (nextTokenType != CSS_JSP_COMMENT_END) {

-//						text.append(yytext());

-						textLength += yylength();

-						length = textLength;

-						if (context.equals(CSS_JSP_SCRIPTLET) && yystate() == ST_JSP_COMMENT){

-							context = nextTokenType;

-						}

-

-						nextTokenType = primGetNextToken();

-						if (nextTokenType == null){

-							break;

-						}

-					}				

-					if (context == CSS_JSP_COMMENT){

-						context = CSS_COMMENT;

-					}

-				}

-				textLength += yylength();

-				length = textLength;

-				

-			}

-			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 zzAtEOF;

-	}

-

-	/* 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 */

-		zzReader = in;

-

-		/** the current state of the DFA */

-		zzState = 0;

-

-		/** the current lexical state */

-		zzLexicalState = fInitialState; //YYINITIAL;

-

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

-			the source of the yytext() string */

-		if (zzBuffer.length != fInitialBufferSize) {

-			zzBuffer = new char[fInitialBufferSize];

-		}

-		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 = false;

-		

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

-		zzAtEOF = false;

-

-		/* user variables */

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

-	}

-

-	/* user method */

-	public JSPedCSSTokenizer() {

-		super();

-	}

-	

-	private int fJSPPreviousState = fInitialState;

-	private void yyJspBegin(int newstate){

-		fJSPPreviousState = yystate();

-		yybegin(newstate);

-	}

-	private void yyJspEnd(){

-		yybegin(fJSPPreviousState);

-	}

-%}

-

-%state ST_CHARSET_NAME

-%state ST_CHARSET_DELIMITER

-%state ST_IMPORT_URI

-%state ST_IMPORT_MEDIUM

-%state ST_IMPORT_DELIMITER

-%state ST_MEDIA_MEDIUM

-%state ST_MEDIA_DELIMITER

-%state ST_PAGE_PSEUDO_PAGE

-%state ST_PAGE_DELIMITER

-%state ST_FONT_FACE_DELIMITER

-%state ST_SELECTOR

-%state ST_SELECTOR_MODIFIER

-%state ST_SELECTOR_ATTRIBUTE_NAME

-%state ST_SELECTOR_ATTRIBUTE_OPERATOR

-%state ST_SELECTOR_ATTRIBUTE_VALUE

-%state ST_SELECTOR_ATTRIBUTE_END

-%state ST_DECLARATION

-%state ST_DECLARATION_SEPARATOR

-%state ST_DECLARATION_PRE_VALUE

-%state ST_DECLARATION_VALUE

-%state ST_JSP_SCRIPTLET

-%state ST_JSP_DIRECTIVE

-%state ST_JSP_DECLARATION

-%state ST_JSP_EXP

-%state ST_JSP_EL

-%state ST_JSP_COMMENT

-

-

-h = [0-9a-f]

-nonascii = [\u0080-\uffff]

-unicode = \\{h}{1,6}[ \t\r\n\f]?

-escape = {unicode}|\\[ -~\u0080-\uffff]

-nmstart = [_a-zA-Z-]|{nonascii}|{escape}

-nmchar = [_a-zA-Z0-9-]|{nonascii}|{escape}

-string1 = \"([\t !#$%&(-~]|\\{nl}|\'|{nonascii}|{escape})*\"

-string2 = \'([\t !#$%&(-~]|\\{nl}|\"|{nonascii}|{escape})*\'

-

-ident = {nmstart}{nmchar}*

-name = {nmchar}+

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

-string = {string1}|{string2}

-url = ([ !#$%&*-~]|{nonascii}|{escape})*

-s = [ \t\r\n\f]

-w = {s}*

-nl = \n|\r\n|\r|\f

-range = \?{1,6}|{h}(\?{0,5}|{h}(\?{0,4}|{h}(\?{0,3}|{h}(\?{0,2}|{h}(\??|{h})))))

-

-hash = "#"{name}

-uri = ("url("{w}{string}{w}")"|"url("{w}{url}{w}")")

-function = {ident}"("

-unicode_range = "U"\+[0-9a-fA-F?]{1,6}("-"[0-9a-fA-F?]{1,6})?

-

-SS = [\x20\x09\x0D\x0A]

-jspstart = "<"{SS}*"%"{SS}*

-jspend = "%"{SS}*">"

-elstart = "$"{SS}*"{"

-elend = "}"

-

-%%

-

-

-

-<YYINITIAL> {

- {jspstart}          {yyJspBegin(ST_JSP_SCRIPTLET);  return CSS_JSP_SCRIPTLET;}

- {elstart}          {yyJspBegin(ST_JSP_EL);  return CSS_JSP_EL;}

-}

-

-<ST_JSP_SCRIPTLET> {

- "@"	{yybegin(ST_JSP_DIRECTIVE); return CSS_JSP_DIRECTIVE;}

- "="	{yybegin(ST_JSP_EXP); return CSS_JSP_EXP;}

- "!"	{yybegin(ST_JSP_DECLARATION); return CSS_JSP_DECL;}

- {jspend} {yyJspEnd();  return CSS_JSP_END;}

- "--" { yybegin(ST_JSP_COMMENT); return CSS_JSP_COMMENT;}

-}

-

-/* override global "}" */

-<ST_JSP_EL> {

- {elend} {yyJspEnd(); return CSS_EL_END; }

-}

-

-<ST_JSP_DIRECTIVE, ST_JSP_EXP, ST_JSP_DECLARATION> {

- {jspend} {yyJspEnd();  return CSS_JSP_END;}

-}

-

-<ST_JSP_COMMENT> {

- -+-{jspend} { yyJspEnd(); return CSS_JSP_COMMENT_END; }

- "}"         { return UNDEFINED; }

-}

-

-

-/*

- * *** global ***

- */

-

-{s}+ { return CSS_S; }

-"<!--" { return CSS_CDO; }

-"-->" { return CSS_CDC; }

-"}" { yybegin(YYINITIAL); return CSS_RBRACE; }

-\/\*[^*]*\*+([^/*][^*]*\*+)*\/ { return CSS_COMMENT; }

-//\<\%--[^-}]*[}]*[^}]*-+-\%\> { return CSS_COMMENT; }

-

-

-//<YYINITIAL> {

-//	"@import" {	yybegin(ST_IMPORT_URI); return CSS_IMPORT; }

-//}

-

-/*

- * *** charset rule ***

- * CHARSET_SYM S* STRING S* ';'

- */

-

-"@charset" { yybegin(ST_CHARSET_NAME); return CSS_CHARSET; }

-

-<ST_CHARSET_NAME> {

-	{string} { yybegin(ST_CHARSET_DELIMITER); return CSS_STRING; }

-}

-

-<ST_CHARSET_DELIMITER> {

-	";" { yybegin(YYINITIAL); return CSS_DELIMITER; }

-}

-

-/*

- * *** import rule ***

- * IMPORT_SYM S* [STRING|URI] S* [ medium [ COMMA S* medium]* ]? ';' S*

- */

-

-"@import" { yybegin(ST_IMPORT_URI); return CSS_IMPORT; }

-

-<ST_IMPORT_URI> {

-	{string} { yybegin(ST_IMPORT_MEDIUM); return CSS_STRING; }

-	//	"url("{w}{string}{w}")" { yybegin(ST_IMPORT_MEDIUM); return CSS_URI; }

-	//	"url("{w}{url}{w}")" { yybegin(ST_IMPORT_MEDIUM); return CSS_URI; }

-	{uri} { yybegin(ST_IMPORT_MEDIUM); return CSS_URI; }

-	";" { yybegin(YYINITIAL); return CSS_DELIMITER; }

-}

-

-<ST_IMPORT_MEDIUM> {

-	{ident} { yybegin(ST_IMPORT_DELIMITER); return CSS_MEDIUM; }

-	";" { yybegin(YYINITIAL); return CSS_DELIMITER; }

-}

-

-<ST_IMPORT_DELIMITER> {

-	";" { yybegin(YYINITIAL); return CSS_DELIMITER; }

-	"," { yybegin(ST_IMPORT_MEDIUM); return CSS_MEDIA_SEPARATOR; }

-}

-

-/*

- * *** media rule ***

- * MEDIA_SYM S* medium [ COMMA S* medium ]* LBRACE S* ruleset* '}' S*

- */

-

-"@media" { yybegin(ST_MEDIA_MEDIUM); return CSS_MEDIA; }

-

-/* 

- * medium

- * IDENT S*

- */

-<ST_MEDIA_MEDIUM> {

-	{ident} { yybegin(ST_MEDIA_DELIMITER); return CSS_MEDIUM; }

-}

-

-<ST_MEDIA_DELIMITER> {

-	"{" { yybegin(YYINITIAL); return CSS_LBRACE; }

-	"," { yybegin(ST_MEDIA_MEDIUM); return CSS_MEDIA_SEPARATOR; }

-}

-

-/*

- * *** page rule **

- * PAGE_SYM S* pseudo_page? S* LBRACE S* declaration [ ';' S* declaration ]* '}' S*

- */

-

-"@page" { yybegin(ST_PAGE_PSEUDO_PAGE); return CSS_PAGE; }

- 

-/*

- * pseudo_page

- * ':' IDENT

- */

-

-<ST_PAGE_PSEUDO_PAGE> {

-	":"?{ident} { yybegin(ST_PAGE_DELIMITER); return CSS_PAGE_SELECTOR; }

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

-}

-

-<ST_PAGE_DELIMITER> {

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

-}

-

-/*

- * font-face

- * FONT_FACE_SYM S* '{' S* declaration [ ';' S* declaration '* '}' S*

- */

-

-"@font-face" { yybegin(ST_FONT_FACE_DELIMITER); return CSS_FONT_FACE; }

-

-<ST_FONT_FACE_DELIMITER> {

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

-}

-

-/*

- * selector

- * simple_selector [ combinator simple_selector ]*

- */

-

-/*

- * simple_selector

- * element_name [ HASH | class | attrib | pseudo ]* | [ HASH | class | attrib | pseudo ]+

- */

-

-<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; }

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

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

-}

-

-<YYINITIAL, ST_SELECTOR> {

-	{ident} { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ELEMENT_NAME; }

-}

-

-<ST_SELECTOR_MODIFIER> {

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

-	// using LOOKAHEAD

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

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

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

-}

-

-/*

- * attrib

- * '[' S* IDENT S* [ [ '=' | INCLUDES | DASHMATCH ] S* [ IDENT | STRING ] S* ]? ']'

- */

-

-<ST_SELECTOR_ATTRIBUTE_NAME> {

-	{ident} { yybegin(ST_SELECTOR_ATTRIBUTE_OPERATOR); return CSS_SELECTOR_ATTRIBUTE_NAME; }

-}

-

-<ST_SELECTOR_ATTRIBUTE_OPERATOR> {

-	"="|"~="|"|=" { yybegin(ST_SELECTOR_ATTRIBUTE_VALUE); return CSS_SELECTOR_ATTRIBUTE_OPERATOR; }

-	"]" { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ATTRIBUTE_END; }

-}

-

-<ST_SELECTOR_ATTRIBUTE_VALUE> {

-	{ident}|{string} { yybegin(ST_SELECTOR_ATTRIBUTE_END); return CSS_SELECTOR_ATTRIBUTE_VALUE; }

-}

-

-<ST_SELECTOR_ATTRIBUTE_END> {

-	"]" { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ATTRIBUTE_END; }

-}

-

-/*

- * declaration

- * property ':' S* expr prio? | // empty //

- */

-

-<ST_DECLARATION> {

-	{ident} { yybegin(ST_DECLARATION_SEPARATOR); return CSS_DECLARATION_PROPERTY; }

-    {jspstart}          {yyJspBegin(ST_JSP_SCRIPTLET);  return CSS_JSP_SCRIPTLET;}

-    {elstart}          {yyJspBegin(ST_JSP_EL);  return CSS_JSP_EL;}

-}

-

-<ST_DECLARATION_SEPARATOR> {

-	":" { yybegin(ST_DECLARATION_PRE_VALUE); return CSS_DECLARATION_SEPARATOR; }

-    {jspstart}          {yyJspBegin(ST_JSP_SCRIPTLET);  return CSS_JSP_SCRIPTLET;}

-    {elstart}          {yyJspBegin(ST_JSP_EL);  return CSS_JSP_EL;}    

-}

-

-<ST_DECLARATION_PRE_VALUE, ST_DECLARATION_VALUE> {

-	"!"{s}*"important" { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_IMPORTANT; }

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

-	")" { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE; }

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

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

-	{num} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_NUMBER; }

-	{function} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_FUNCTION; }

-	{string} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_STRING; }

-	{uri} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_URI; }

-	"#"{name} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_HASH; }

-	{unicode_range} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_UNICODE_RANGE; }

-	[,/] { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_OPERATOR; }

-    {jspstart}          {yyJspBegin(ST_JSP_SCRIPTLET);  return CSS_JSP_SCRIPTLET;}

-    {elstart}          {yyJspBegin(ST_JSP_EL);  return CSS_JSP_EL;}    

-}

-

-<ST_DECLARATION_VALUE> {

-	{s}+/[^;}] { return CSS_DECLARATION_VALUE_S; }

-    {jspstart}          {yyJspBegin(ST_JSP_SCRIPTLET);  return CSS_JSP_SCRIPTLET;}

-    {elstart}          {yyJspBegin(ST_JSP_EL);  return CSS_JSP_EL;}

-}

-

-<ST_DECLARATION, ST_DECLARATION_SEPARATOR, ST_DECLARATION_PRE_VALUE, ST_DECLARATION_VALUE> {

-	";" { yybegin(ST_DECLARATION); return CSS_DECLARATION_DELIMITER; }

-	//	"}" { yybegin(YYINITIAL); return CSS_RBRACE; }

-}

-

-

-//<YYINITIAL, ST_IMPORT_URI, ST_IMPORT_MEDIUM, ST_IMPORT_DELIMITER> {

-//	\/\*[^*]*\*+([^/*][^*]*\*+)*\/ { return CSS_COMMENT; }

-//	{s}+ { return CSS_S; }

-//	. { return UNDEFINED; }

-//}

-

-//<YYINITIAL, ST_IMPORT_URI, ST_IMPORT_MEDIUM, ST_IMPORT_DELIMITER> {

-//	[^ \t\r\n\f]+ { return CSS_UNKNOWN; }

-//}

-

-

-

-

-

-. {

-	return UNDEFINED;

-}

diff --git a/bundles/org.eclipse.jst.jsp.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer.jFlex b/bundles/org.eclipse.jst.jsp.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer.jFlex
deleted file mode 100644
index 858dd29..0000000
--- a/bundles/org.eclipse.jst.jsp.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer.jFlex
+++ /dev/null
@@ -1,307 +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
- *******************************************************************************/
-/*nlsXXX*/
-package org.eclipse.jst.jsp.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;
-        private boolean isXHTML;
-        private boolean isWML;
-
-
-        public JSPHeadTokenizer() {
-                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;
-                isXHTML=false;
-                isWML=false;
-
-
-        }
-
-
-        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);
-        }
-        
-        public boolean isXHTML() {
-            return isXHTML;
-        }
-        public boolean isWML() {
-            return isWML;
-        }        
-
-%}
-
-%eof{
-        hasMore=false;
-%eof}
-
-%public
-%class JSPHeadTokenizer
-%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]
-
-BeginAttributeeValue = {S}* \= {S}*
-
-LineTerminator = \r|\n
-
-
-%state ST_XMLDecl
-%state ST_PAGE_DIRECTIVE
-%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;}}
-
-
-        // 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;}
-         // 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;}
-
-        "<%" {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;}
-
-
-}
-
-<ST_XMLDecl>
-{
-        "version" {BeginAttributeeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;}
-        "encoding" {BeginAttributeeValue} {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;}
-}
-
-<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;}
-        // 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;}
-}
-
-
-<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() ); }
-
-        "%>"                    { yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-
-
-}
-
-<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;}
-
-
-}
-
-<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() ); }
-        "%>"                    { yypushback(2);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;}}
-}
-
-// this rule always in effect
-<<EOF>>         {hasMore = false; return EncodingParserConstants.EOF;}
-
diff --git a/bundles/org.eclipse.jst.jsp.core/DevTimeSupport/buildParser.xml b/bundles/org.eclipse.jst.jsp.core/DevTimeSupport/buildParser.xml
deleted file mode 100644
index 2ebe182..0000000
--- a/bundles/org.eclipse.jst.jsp.core/DevTimeSupport/buildParser.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="tokenizer" default="HeadTokenizer">
-	
-	<!-- Note: for Eclipse env., the JFlex 1.4 jar should be added 
-	to the ant global entries  -->
-	<taskdef classname="JFlex.anttask.JFlexTask" name="jflex" />
-		
-	<target name="init">
-		<property name="src.file" value="JSPHeadTokenizer.jFlex"/>			
-		<property name="src.dir" value="HeadParsers"/>
-		<property name="dest.dir" value="../src"/>
-		<!-- touch causes to always build, remove for real 'make' behavior -->
-		<touch file="${src.dir}/${src.file}"/>
-					
-	</target>
-
-	<target name="HeadTokenizer" depends="init">
-		<antcall target="run-jflex"/>
-	</target>
-
-	<target name="run-jflex" depends="init">
-		<jflex
-	    	file="${src.dir}/${src.file}"
-	    	destdir="${dest.dir}"
-			verbose="true"
-			nobak="true"
-			time="on"
-	    />
-	</target>
-	
-
-</project>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.jsp.core/META-INF/MANIFEST.MF
deleted file mode 100644
index febcc51..0000000
--- a/bundles/org.eclipse.jst.jsp.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,58 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jst.jsp.core; singleton:=true
-Bundle-Version: 1.2.1.qualifier
-Bundle-Activator: org.eclipse.jst.jsp.core.internal.JSPCorePlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.jst.jsp.core.internal;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.contentmodel;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.contentmodel.tld;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.contentproperties;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.contenttype;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.document;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.domdocument;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.encoding;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.java;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.java.jspel;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.java.search;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.modelhandler;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.modelquery;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.parser;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.parser.internal;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.preferences;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.provisional;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.provisional.contenttype;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.provisional.text;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.regions;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.taglib;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.tasks;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.text;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.util;x-friends:="org.eclipse.jst.jsp.ui",
- org.eclipse.jst.jsp.core.internal.validation;x-friends:="org.eclipse.jst.jsp.ui",
- 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.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,4.0.0)",
- 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.core.filebuffers;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.jdt.core;bundle-version="[3.2.0,3.5.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)",
- javax.servlet.jsp;bundle-version="[2.0.0,3.0.0)"
-Eclipse-LazyStart: true; exceptions="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
deleted file mode 100644
index 73db36e..0000000
--- a/bundles/org.eclipse.jst.jsp.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>June 06, 2007</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.core/build.properties b/bundles/org.eclipse.jst.jsp.core/build.properties
deleted file mode 100644
index 92ef44d..0000000
--- a/bundles/org.eclipse.jst.jsp.core/build.properties
+++ /dev/null
@@ -1,22 +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
-###############################################################################
-bin.includes = plugin.xml,\
-               .options,\
-               plugin.properties,\
-               META-INF/,\
-               .,\
-               about.html
-bin.excludes = @dot/**,\
-               temp.folder/**
-src.includes = component.xml,\
-               DevTimeSupport/,\
-               schema/
-source.. = src/
diff --git a/bundles/org.eclipse.jst.jsp.core/component.xml b/bundles/org.eclipse.jst.jsp.core/component.xml
deleted file mode 100644
index ab88fac..0000000
--- a/bundles/org.eclipse.jst.jsp.core/component.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jst.jsp">
-	<component-depends unrestricted="true" />
-	<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="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">
-		<type name="StructuredTextViewerConfigurationJSP" subclass="true" instantiate="true" />
-	</package>
-	<package name="org.eclipse.jst.jsp.ui.views.contentoutline" api="false">
-		<type name="JSPContentOutlineConfiguration" subclass="true" instantiate="true" />
-	</package>
-	<plugin id="org.eclipse.jst.jsp.ui.infopop" fragment="false" />
-	<description url="http://eclipse.org/webtools/jst/components/jsp/overview.html" />
-</component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/plugin.properties b/bundles/org.eclipse.jst.jsp.core/plugin.properties
deleted file mode 100644
index 6d0f773..0000000
--- a/bundles/org.eclipse.jst.jsp.core/plugin.properties
+++ /dev/null
@@ -1,30 +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
-###############################################################################
-providerName=Eclipse.org
-pluginName=Structured Source JSP Model
-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_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
-
-extension-point.name.0 = JSP EL Translator
-
-contentTypeCSSJSPName=CSS JSP
-contentTypeCSSJSPFName=CSS JSP Fragment
-
-contentTypeCSSDocumentFactoryName=Content Type CSS JSP document factory extension
diff --git a/bundles/org.eclipse.jst.jsp.core/plugin.xml b/bundles/org.eclipse.jst.jsp.core/plugin.xml
deleted file mode 100644
index f8fc36e..0000000
--- a/bundles/org.eclipse.jst.jsp.core/plugin.xml
+++ /dev/null
@@ -1,292 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-   <extension-point id="elTranslator" name="%extension-point.name.0" schema="schema/eltranslator.exsd"/>
-
-	<extension point="org.eclipse.wst.sse.core.modelHandler">
-		<modelHandler
-			class="org.eclipse.jst.jsp.core.internal.modelhandler.ModelHandlerForJSP"
-			associatedContentTypeId="org.eclipse.jst.jsp.core.jspsource"
-			id="org.eclipse.jst.jsp.core.internal.modelhandler">
-		</modelHandler>
-		<modelHandler
-			class="org.eclipse.jst.jsp.core.internal.modelhandler.ModelHandlerForJSP"
-			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">
-		<factory
-			type="tld"
-			class="org.eclipse.jst.jsp.core.internal.contentmodel.tld.CMDocumentFactoryTLD">
-		</factory>
-	</extension>
-
-	<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"
-			contentTypeIds="org.eclipse.jst.jsp.core.jspsource" />
-	</extension>
-
-	<extension
-		point="org.eclipse.core.filebuffers.documentCreation"
-		id="org.eclipse.jst.jsp.core.documentfactories"
-		name="%Structured_JSP_Document_Factory_Extension.name">
-		<factory
-			contentTypeId="org.eclipse.jst.jsp.core.jspsource"
-			class="org.eclipse.wst.sse.core.internal.filebuffers.BasicStructuredDocumentFactory" />
-	</extension>
-	<extension
-		point="org.eclipse.core.filebuffers.documentSetup"
-		id="org.eclipse.jst.jsp.core.documentsetup"
-		name="%Structured_JSP_Document_Setup_participant.name">
-		<participant
-			contentTypeId="org.eclipse.jst.jsp.core.jspsource"
-			class="org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController" />
-	</extension>
-	<extension point="org.eclipse.team.core.fileTypes">
-		<fileTypes
-			type="text"
-			extension="jsp">
-		</fileTypes>
-		<fileTypes
-			type="text"
-			extension="jspf" />
-		<fileTypes
-			type="text"
-			extension="jspx" />
-		<fileTypes
-			type="text"
-			extension="jsf">
-		</fileTypes>
-		<fileTypes
-			type="text"
-			extension="jsv">
-		</fileTypes>
-		<fileTypes
-			type="text"
-			extension="jtpl">
-		</fileTypes>
-		<fileTypes
-			type="text"
-			extension="tld" />
-		<fileTypes
-			type="text"
-			extension="tag" />
-		<fileTypes
-			type="text"
-			extension="tagx" />
-		<fileTypes
-			type="text"
-			extension="tagf" />
-	</extension>
-	<extension point="org.eclipse.wst.sse.core.formatProcessors">
-		<processor
-			class="org.eclipse.wst.html.core.internal.format.HTMLFormatProcessorImpl"
-			contentTypeId="org.eclipse.jst.jsp.core.jspsource">
-		</processor>
-	</extension>
-
-	<extension point="org.eclipse.core.runtime.contentTypes">
-		<!-- create content type for JSP files -->
-		<content-type
-			file-extensions="jsp,jsv,jtpl,jspx"
-			priority="high"
-			name="%JSP_Content_Type_Extension_Element.name"
-			id="jspsource"
-			base-type="org.eclipse.core.runtime.text"
-			default-charset="ISO-8859-1">
-			<describer
-				class="org.eclipse.jst.jsp.core.internal.contenttype.ContentDescriberForJSP" />
-		</content-type>
-		<!-- create content type for JSP fragment files -->
-		<content-type
-			file-extensions="jspf,jsf"
-			priority="high"
-			name="%JSP_Fragment_Content_Type_Extension_Element.name"
-			id="jspfragmentsource"
-			base-type="org.eclipse.jst.jsp.core.jspsource"
-			default-charset="ISO-8859-1">
-			<describer
-				class="org.eclipse.jst.jsp.core.internal.contenttype.ContentDescriberForJSP" />
-		</content-type>
-		<!-- create content type for JSP 2.0 Tag file types -->
-		<content-type
-			file-extensions="tag,tagx,tagf"
-			priority="high"
-			name="%JSP_Tag_Content_Type_Extension_Element.name"
-			id="tagsource"
-			base-type="org.eclipse.jst.jsp.core.jspsource"
-			default-charset="UTF-8"/>
-		<!-- create content type for .tld files -->
-		<content-type
-			file-extensions="tld"
-			priority="high"
-			name="%JSP_TLD_Content_Type_Extension_Element.name"
-			id="tldsource"
-			base-type="org.eclipse.core.runtime.xml"
-			default-charset="UTF-8"/>
-
-  	<!--======================================================================================-->
-	<!-- minimal content-type css jsp support                                                 -->
-	<!--======================================================================================-->
-        <content-type
-			file-extensions="jsp"
-			priority="high"
-			name="%contentTypeCSSJSPName"
-			id="cssjspsource"
-			base-type="org.eclipse.jst.jsp.core.jspsource">
-			<describer
-				class="org.eclipse.jst.jsp.css.core.internal.contenttype.ContentDescriberForJSPedCSS" />
-		</content-type>
-        <content-type
-	        file-extensions="jspf"
-			priority="high"
-			name="%contentTypeCSSJSPFName"
-			id="cssjspfragmentsource"
-			base-type="org.eclipse.jst.jsp.core.cssjspsource">
-			<describer
-				class="org.eclipse.jst.jsp.css.core.internal.contenttype.ContentDescriberForJSPedCSS" />
-		</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.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>
-         	<contentTypeBinding contentTypeId="org.eclipse.jst.jsp.core.jspsource"/>
-			<!-- needed until bug 181443 is implemented -->
-         	<contentTypeBinding contentTypeId="org.eclipse.jst.jsp.core.jspfragmentsource"/>
-         	<contentTypeBinding contentTypeId="org.eclipse.jst.jsp.core.tagsource"/>
-			<helper class="org.eclipse.wst.validation.internal.operations.WorkbenchContext"/>
-			<run
-				enabled="true"
-				class="org.eclipse.jst.jsp.core.internal.validation.JSPBatchValidator"/>
-		</validator>
-	</extension>
-	
-	<extension
-		id="JSPContentValidator"
-		name="%JSP_Content_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>
-         	<contentTypeBinding contentTypeId="org.eclipse.jst.jsp.core.jspsource"/>			
-         	<!-- <contentTypeBinding contentTypeId="org.eclipse.jst.jsp.core.jspfragmentsource"/> -->
-         	<!-- <contentTypeBinding contentTypeId="org.eclipse.jst.jsp.core.tagsource"/> -->			
-			<helper class="org.eclipse.wst.validation.internal.operations.WorkbenchContext"/>
-			<run
-				async="true"
-				fullBuild="true"
-				incremental="true"
-				enabled="true"
-				class="org.eclipse.jst.jsp.core.internal.validation.JSPContentValidator"/>
-		</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"
-			associatedContentTypeId="org.eclipse.jst.jsp.core.cssjspsource"
-			id="org.eclipse.jst.jsp.css.core.modelhandler">
-		</modelHandler>
-		<modelHandler
-			class="org.eclipse.jst.jsp.css.core.internal.modelhandler.ModelHandlerForJSPedCSS"
-			associatedContentTypeId="org.eclipse.jst.jsp.core.cssjspfragmentsource"
-			id="org.eclipse.jst.jsp.css.core.modelhandler">
-		</modelHandler>
-	</extension>
-	
-	<extension
-		point="org.eclipse.core.filebuffers.documentCreation"
-		id="org.eclipse.jst.jsp.css.core.internal.documentfactories"
-		name="%contentTypeCSSDocumentFactoryName">
-		<factory
-			contentTypeId="org.eclipse.jst.jsp.core.cssjspsource"
-			class="org.eclipse.wst.sse.core.internal.filebuffers.BasicStructuredDocumentFactory" />
-	</extension>
-	<extension
-		point="org.eclipse.core.filebuffers.documentSetup"
-		id="org.eclipse.jst.jsp.css.core.documentsetup"
-		name="%Structured_JSP_Document_Setup_participant.name">
-		<participant
-			contentTypeId="org.eclipse.jst.jsp.core.cssjspsource"
-			class="org.eclipse.jst.jsp.css.core.internal.contentmodel.JSPedCSSTaglibController" />
-	</extension>
-	<!--
-	<extension
-		point="org.eclipse.core.filebuffers.documentCreation"
-		id="org.eclipse.jst.jsp.css.core.internal.documentfactories.fragment"
-		name="%contentTypeCSSDocumentFactoryName">
-		<factory
-			contentTypeId="org.eclipse.jst.jsp.core.cssjspfragmentsource"
-			class="org.eclipse.wst.sse.core.internal.filebuffers.BasicStructuredDocumentFactory" />
-	</extension>	
-	-->
-</plugin>
diff --git a/bundles/org.eclipse.jst.jsp.core/schema/eltranslator.exsd b/bundles/org.eclipse.jst.jsp.core/schema/eltranslator.exsd
deleted file mode 100644
index 34e412b..0000000
--- a/bundles/org.eclipse.jst.jsp.core/schema/eltranslator.exsd
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.jst.jsp.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.jst.jsp.core" id="elTranslator" name="JSP EL Translator"/>
-      </appInfo>
-      <documentation>
-         Extension point to customer JSP Expression Language Generation
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="elTranslator"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A fully qualified identifier of the target extension point.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  An optional identifier of the extension instance.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  An optional name of the extension instance.
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="elTranslator">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="name"/>
-         </appInfo>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Fully qualified class name for the EL Translator.  Must be an implementor of org.eclipse.jst.jsp.core.jspel.IJSPELTranslator.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  The name of the EL translator.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A unique string identifier for an EL Translator.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         [Enter the first release in which this extension point appears.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         [Enter extension point usage example here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         [Enter API information here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         [Enter information about supplied implementation of this extension point.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-</schema>
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
deleted file mode 100644
index a5d8e17..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/Assert.java
+++ /dev/null
@@ -1,121 +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.jst.jsp.core.internal;
-
-
-
-/**
- * <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.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
deleted file mode 100644
index 3d74cb7..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCoreMessages.java
+++ /dev/null
@@ -1,52 +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.jst.jsp.core.internal;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Strings used by JSP Core
- * 
- * @plannedfor 1.0
- */
-public class JSPCoreMessages extends NLS {
-	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 JSPDirectiveValidator_3;
-	public static String JSPDirectiveValidator_4;
-	public static String JSPDirectiveValidator_5;
-	public static String JSPDirectiveValidator_6;
-	public static String JSPIndexManager_0;
-	public static String JSPIndexManager_2;
-	public static String JSP_Search;
-	public static String JSPEL_Syntax;
-	public static String JSPEL_Token;
-	public static String JSPDocumentLoader_1;
-	public static String JSPFContentPropertiesManager_Updating;
-	public static String JSPFContentPropertiesManager_Problems_Updating;
-	public static String JSPBatchValidator_0;
-	
-	/**
-	 * @deprecated
-	 */
-	public static String MESSAGE_JSP_VALIDATING_MESSAGE_UI_;
-	
-	private JSPCoreMessages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, JSPCoreMessages.class);
-	}
-}
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
deleted file mode 100644
index cda29d7..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java
+++ /dev/null
@@ -1,101 +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.core.internal;
-
-import org.eclipse.core.runtime.Plugin;
-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;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class JSPCorePlugin extends Plugin {
-	// The shared instance.
-	private static JSPCorePlugin plugin;
-
-	/**
-	 * The constructor.
-	 */
-	public JSPCorePlugin() {
-		super();
-		plugin = this;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 * 
-	 * @deprecated - will be removed. Currently used to get "model
-	 *             preferences", but there are other, better ways.
-	 */
-	public static JSPCorePlugin getDefault() {
-		return plugin;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-
-		/*
-		 * JSPIndexManager depends on TaglibController, so TaglibController
-		 * should be started first
-		 */
-		TaglibIndex.startup();
-		TaglibController.startup();
-
-		// listen for classpath changes
-		JavaCore.addElementChangedListener(TaglibHelperManager.getInstance());
-
-
-		JSPIndexManager.getInstance().initialize();
-
-		// listen for resource changes to update content properties keys
-		JSPFContentPropertiesManager.startup();
-
-		DeploymentDescriptorPropertyCache.start();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		DeploymentDescriptorPropertyCache.stop();
-
-		/*
-		 * stop listening for resource changes to update content properties
-		 * keys
-		 */
-		JSPFContentPropertiesManager.shutdown();
-
-		// stop any indexing
-		JSPIndexManager.getInstance().shutdown();
-
-		// stop listening for classpath changes
-		JavaCore.removeElementChangedListener(TaglibHelperManager.getInstance());
-
-		// stop taglib controller
-		TaglibController.shutdown();
-		TaglibIndex.shutdown();
-
-		super.stop(context);
-	}
-}
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
deleted file mode 100644
index 1129ea1..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePluginResources.properties
+++ /dev/null
@@ -1,27 +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
-###############################################################################
-JSPIndexManager_0=Updating JSP Index
-JSPIndexManager_2=JSP Indexer indexing {0} files
-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
-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={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})
-JSPBatchValidator_0=Gathering files in {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
deleted file mode 100644
index 02d02ae..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/Logger.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.core.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.core"; //$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);
-	}
-}
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
deleted file mode 100644
index 11707b7..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMContentWrapperImpl.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.jst.jsp.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-public class CMContentWrapperImpl extends CMNodeWrapperImpl implements CMContent {
-
-	private CMContent fCMContent = null;
-
-	/**
-	 * CMContentWrapper constructor comment.
-	 * @param prefix java.lang.String
-	 * @param node org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 */
-	public CMContentWrapperImpl(String prefix, org.eclipse.wst.xml.core.internal.contentmodel.CMContent node) {
-		super(prefix, node);
-		fCMContent = node;
-	}
-
-	/**
-	 * getMaxOccur method
-	 * @return int
-	 *
-	 * If -1, it's UNBOUNDED.
-	 */
-	public int getMaxOccur() {
-		return fCMContent.getMaxOccur();
-	}
-
-	/**
-	 * getMinOccur method
-	 * @return int
-	 *
-	 * If 0, it's OPTIONAL.
-	 * If 1, it's REQUIRED.
-	 */
-	public int getMinOccur() {
-		return fCMContent.getMinOccur();
-	}
-
-	public CMNode getOriginNode() {
-		return fCMContent;
-	}
-}
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
deleted file mode 100644
index b330f92..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMDocumentWrapperImpl.java
+++ /dev/null
@@ -1,216 +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.core.internal.contentmodel;
-
-
-
-import java.util.Hashtable;
-import java.util.Iterator;
-
-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.CMNamespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMNodeWrapper;
-
-public class CMDocumentWrapperImpl implements CMDocument, CMNodeWrapper {
-
-	class CMNamedNodeMapImpl implements CMNamedNodeMap {
-
-		protected Hashtable table = new Hashtable();
-
-		public CMNamedNodeMapImpl() {
-			super();
-		}
-
-		Hashtable getHashtable() {
-			return table;
-		}
-
-		public int getLength() {
-			return table.size();
-		}
-
-		public CMNode getNamedItem(String name) {
-			return (CMNode) table.get(name);
-		}
-
-		public CMNode item(int index) {
-			Object result = null;
-			int size = table.size();
-			if (index < size) {
-				Iterator values = iterator();
-				for (int i = 0; i <= index; i++) {
-					result = values.next();
-				}
-			}
-			return (CMNode) result;
-		}
-
-		public Iterator iterator() {
-			return table.values().iterator();
-		}
-
-		public void setNamedItem(String name, CMNode aNode) {
-			if (name != null && aNode != null)
-				table.put(name, aNode);
-		}
-	}
-
-	public class CMNamespaceImpl implements CMNamespace {
-		public String getNodeName() {
-			return CMDocumentWrapperImpl.this.getURI();
-		}
-
-		public int getNodeType() {
-			return CMNode.NAME_SPACE;
-		}
-
-		public String getPrefix() {
-			return CMDocumentWrapperImpl.this.getPrefix();
-		}
-
-		public Object getProperty(String property) {
-			return null;
-		}
-
-		public String getURI() {
-			return CMDocumentWrapperImpl.this.getURI();
-		}
-
-		public boolean supports(String feature) {
-			return false;
-		}
-	}
-
-	private CMDocument fDocument;
-	private CMNamedNodeMap fElements = null;
-	private CMNamedNodeMap fEntities = null;
-	private CMNamespace fNamespace = new CMNamespaceImpl();
-	private String fPrefix;
-	private String fURI;
-
-	public CMDocumentWrapperImpl(String newURI, String newPrefix, CMDocument tld) {
-		fURI = newURI;
-		fPrefix = newPrefix;
-		fDocument = tld;
-	}
-
-	/**
-	 * 
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMDocument
-	 */
-	public CMDocument getDocument() {
-		return fDocument;
-	}
-
-	/**
-	 * getElements method
-	 * @return CMNamedNodeMap
-	 *
-	 * Returns CMNamedNodeMap of ElementDeclaration
-	 */
-	public CMNamedNodeMap getElements() {
-		if (fElements == null) {
-			int length = getDocument().getElements().getLength();
-			CMNamedNodeMapImpl elements = new CMNamedNodeMapImpl();
-			for (int i = 0; i < length; i++) {
-				CMElementDeclaration ed = new CMElementDeclarationWrapperImpl(fPrefix, (CMElementDeclaration) getDocument().getElements().item(i));
-				elements.setNamedItem(ed.getNodeName(), ed);
-			}
-			fElements = elements;
-		}
-		return fElements;
-	}
-
-	/**
-	 * getEntities method
-	 * @return CMNamedNodeMap
-	 *
-	 * Returns CMNamedNodeMap of EntityDeclaration
-	 */
-	public CMNamedNodeMap getEntities() {
-		if (fEntities == null) {
-			fEntities = getDocument().getEntities();
-		}
-		return fEntities;
-	}
-
-	/**
-	 * getNamespace method
-	 * @return CMNamespace
-	 */
-	public CMNamespace getNamespace() {
-		return fNamespace;
-	}
-
-	/**
-	 * getNodeName method
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return getDocument().getNodeName();
-	}
-
-	/**
-	 * getNodeType method
-	 * @return int
-	 *
-	 * Returns one of :
-	 *
-	 */
-	public int getNodeType() {
-		return getDocument().getNodeType();
-	}
-
-	public CMNode getOriginNode() {
-		return fDocument;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getPrefix() {
-		return fPrefix;
-	}
-
-	/**
-	 * getProperty method
-	 * @return java.lang.Object
-	 *
-	 * Returns the object property desciped by the propertyName
-	 *
-	 */
-	public Object getProperty(String propertyName) {
-		return getDocument().getProperty(propertyName);
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getURI() {
-		return fURI;
-	}
-
-	/**
-	 * supports method
-	 * @return boolean
-	 *
-	 * Returns true if the CMNode supports a specified property
-	 *
-	 */
-	public boolean supports(String propertyName) {
-		return getDocument().supports(propertyName);
-	}
-}
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
deleted file mode 100644
index 69eeca3..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMElementDeclarationWrapperImpl.java
+++ /dev/null
@@ -1,128 +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.core.internal.contentmodel;
-
-
-
-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;
-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;
-
-public class CMElementDeclarationWrapperImpl extends CMNodeWrapperImpl implements CMElementDeclaration {
-	private CMContent fCMContent = null;
-
-	protected CMElementDeclaration fElementDecl = null;
-
-	/**
-	 * CMElementDeclarationWrapper constructor comment.
-	 * @param prefix java.lang.String
-	 * @param node org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 */
-	public CMElementDeclarationWrapperImpl(String prefix, CMElementDeclaration node) {
-		super(prefix, node);
-		fElementDecl = node;
-	}
-
-	/**
-	 * getAttributes method
-	 * @return CMNamedNodeMap
-	 *
-	 * Returns CMNamedNodeMap of AttributeDeclaration
-	 */
-	public CMNamedNodeMap getAttributes() {
-		return fElementDecl.getAttributes();
-	}
-
-	/**
-	 * getCMContent method
-	 * @return CMContent
-	 *
-	 * Returns the root node of this element's content model.
-	 * This can be an CMElementDeclaration or a CMGroup
-	 */
-	public CMContent getContent() {
-		if (fCMContent == null) {
-			CMContent content = fElementDecl.getContent();
-			if (content == null)
-				return null;
-			if (content instanceof CMGroup)
-				fCMContent = new CMGroupWrapperImpl(fPrefix, (CMGroup) content);
-			else
-				fCMContent = new CMContentWrapperImpl(fPrefix, content);
-		}
-		return fCMContent;
-	}
-
-	/**
-	 * getContentType method
-	 * @return int
-	 *
-	 * Returns one of :
-	 * ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA.
-	 */
-	public int getContentType() {
-		return fElementDecl.getContentType();
-	}
-
-	/**
-	 * getDataType method
-	 * @return java.lang.String
-	 */
-	public CMDataType getDataType() {
-		return fElementDecl.getDataType();
-	}
-
-	/**
-	 * getElementName method
-	 * @return java.lang.String
-	 */
-	public String getElementName() {
-		return getNodeName();
-	}
-
-	/**
-	 * getLocalElements method
-	 * @return CMNamedNodeMap
-	 *
-	 * Returns a list of locally defined elements.
-	 */
-	public CMNamedNodeMap getLocalElements() {
-		return fElementDecl.getLocalElements();
-	}
-
-	/**
-	 * getMaxOccur method
-	 * @return int
-	 *
-	 * If -1, it's UNBOUNDED.
-	 */
-	public int getMaxOccur() {
-		return fElementDecl.getMaxOccur();
-	}
-
-	/**
-	 * getMinOccur method
-	 * @return int
-	 *
-	 * If 0, it's OPTIONAL.
-	 * If 1, it's REQUIRED.
-	 */
-	public int getMinOccur() {
-		return fElementDecl.getMinOccur();
-	}
-
-	public CMNode getOriginNode() {
-		return fElementDecl;
-	}
-}
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
deleted file mode 100644
index ee8619e..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMGroupWrapperImpl.java
+++ /dev/null
@@ -1,112 +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.core.internal.contentmodel;
-
-import java.util.ArrayList;
-import java.util.List;
-
-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;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-
-public class CMGroupWrapperImpl extends CMContentWrapperImpl implements CMGroup {
-	class CMNodeListImpl implements CMNodeList {
-		private List nodes = null;
-
-		/**
-		 * CMNodeListImpl constructor comment.
-		 */
-		public CMNodeListImpl() {
-			super();
-			nodes = new ArrayList();
-		}
-
-		/**
-		 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-		 * @param node org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-		 */
-		public void appendItem(CMNode node) {
-			nodes.add(node);
-		}
-
-		/**
-		 * getLength method
-		 * @return int
-		 */
-		public int getLength() {
-			return nodes.size();
-		}
-
-		/**
-		 * item method
-		 * @return CMNode
-		 * @param index int
-		 */
-		public CMNode item(int index) {
-			if (index < 0 || index >= nodes.size())
-				return null;
-			return (CMNode) nodes.get(index);
-		}
-	}
-
-	private CMNodeList fChildNodes = null;
-	private CMGroup fGroup = null;
-
-	/**
-	 * CMGroupWrapper constructor comment.
-	 * @param prefix java.lang.String
-	 * @param node org.eclipse.wst.xml.core.internal.contentmodel.CMContent
-	 */
-	public CMGroupWrapperImpl(String prefix, CMGroup node) {
-		super(prefix, node);
-	}
-
-	/**
-	 * getChildNodes method
-	 * @return CMNodeList
-	 *
-	 * Returns child CMNodeList, which includes ElementDefinition or CMElement.
-	 */
-	public CMNodeList getChildNodes() {
-		if (fChildNodes == null) {
-			CMNodeListImpl childNodes = new CMNodeListImpl();
-			CMNodeList children = fGroup.getChildNodes();
-			for (int i = 0; i < children.getLength(); i++) {
-				CMNode child = children.item(i);
-				if (child instanceof CMGroup)
-					childNodes.appendItem(new CMGroupWrapperImpl(fPrefix, (CMGroup) child));
-				else if (child instanceof CMElementDeclaration)
-					childNodes.appendItem(new CMElementDeclarationWrapperImpl(fPrefix, (CMElementDeclaration) child));
-				else
-					// error?
-					childNodes.appendItem(new CMNodeWrapperImpl(fPrefix, child));
-			}
-			fChildNodes = childNodes;
-		}
-		return fChildNodes;
-	}
-
-	/**
-	 * getOperation method
-	 * @return int
-	 *
-	 * Returns one of :
-	 * ALONE (a), SEQUENCE (a,b), CHOICE (a|b), ALL (a&b).
-	 */
-	public int getOperator() {
-		return fGroup.getOperator();
-	}
-
-	public CMNode getOriginNode() {
-		return fGroup;
-	}
-}
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
deleted file mode 100644
index a8b7d21..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMNodeWrapperImpl.java
+++ /dev/null
@@ -1,79 +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.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMNodeWrapper;
-
-public class CMNodeWrapperImpl implements CMNode, CMNodeWrapper {
-	private CMNode fNode = null;
-	private String fNodeName = null;
-
-	protected String fPrefix = null;
-
-	/**
-	 * CMNodeWrapper constructor comment.
-	 */
-	public CMNodeWrapperImpl(String prefix, CMNode node) {
-		super();
-		fPrefix = prefix;
-		fNode = node;
-
-		fNodeName = fPrefix + ":" + fNode.getNodeName(); //$NON-NLS-1$
-	}
-
-	/**
-	 * getNodeName method
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return fNodeName;
-	}
-
-	/**
-	 * getNodeType method
-	 * @return int
-	 *
-	 * Returns one of :
-	 *
-	 */
-	public int getNodeType() {
-		return fNode.getNodeType();
-	}
-
-	public CMNode getOriginNode() {
-		return fNode;
-	}
-
-	/**
-	 * getProperty method
-	 * @return java.lang.Object
-	 *
-	 * Returns the object property desciped by the propertyName
-	 *
-	 */
-	public Object getProperty(String propertyName) {
-		return fNode.getProperty(propertyName);
-	}
-
-	/**
-	 * supports method
-	 * @return boolean
-	 *
-	 * Returns true if the CMNode supports a specified property
-	 *
-	 */
-	public boolean supports(String propertyName) {
-		return fNode.supports(propertyName);
-	}
-}
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
deleted file mode 100644
index 59b2b3e..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/JSPCMDocumentFactory.java
+++ /dev/null
@@ -1,51 +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.core.internal.contentmodel;
-
-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.provisional.contentmodel.CMDocType;
-
-/**
- * CMDocument factory for JSP documents (which for now live in the HTML Core
- * plugin).
- */
-public final class JSPCMDocumentFactory {
-
-	private JSPCMDocumentFactory() {
-		super();
-	}
-
-	public static CMDocument getCMDocument() {
-		return getCMDocument(CMDocType.JSP20_DOC_TYPE);
-	}
-
-	/**
-	 * @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
deleted file mode 100644
index e33b3ec..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/TaglibController.java
+++ /dev/null
@@ -1,318 +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.jst.jsp.core.internal.contentmodel;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.filebuffers.FileBuffers;
-import org.eclipse.core.filebuffers.IDocumentSetupParticipant;
-import org.eclipse.core.filebuffers.IFileBuffer;
-import org.eclipse.core.filebuffers.IFileBufferListener;
-import org.eclipse.core.filebuffers.ITextFileBuffer;
-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.TaglibIndex;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument;
-import org.eclipse.wst.sse.core.internal.util.Assert;
-
-/**
- * Provides a direct mapping from IStructuredDocument to supporting
- * TLDCMDocumentManager.
- * 
- * Listens to the creation of JSP type TextFileBuffers and forces a text-less
- * reparse after connecting taglib-supporting listeners. Connecting the
- * listeners before the text is set would be ideal, but there is no way to
- * look up taglib references since the location is not yet knowable. Since
- * taglibs can affect the parsing of the document, a reparse is currently
- * required to react to custom tags with tagdependent content.
- * 
- * TODO: Remove the reparse penalty.
- */
-public class TaglibController implements IDocumentSetupParticipant {
-
-	class DocumentInfo implements ITaglibIndexListener {
-		IStructuredDocument document;
-		ITextFileBuffer textFileBuffer;
-		TLDCMDocumentManager tldDocumentManager;
-
-		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().clear();
-					tldDocumentManager.getSourceParser().resetHandlers();
-
-					if (document instanceof BasicStructuredDocument) {
-						((BasicStructuredDocument) document).reparse(this);
-					}
-				}
-			}
-			tldDocumentManager.indexChanged(delta);
-		}
-	}
-
-	static final boolean _debugCache = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/tldcmdocument/cache")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	class FileBufferListener implements IFileBufferListener {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#bufferContentAboutToBeReplaced(org.eclipse.core.filebuffers.IFileBuffer)
-		 */
-		public void bufferContentAboutToBeReplaced(IFileBuffer buffer) {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#bufferContentReplaced(org.eclipse.core.filebuffers.IFileBuffer)
-		 */
-		public void bufferContentReplaced(IFileBuffer buffer) {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#bufferCreated(org.eclipse.core.filebuffers.IFileBuffer)
-		 */
-		public void bufferCreated(IFileBuffer buffer) {
-			if (buffer instanceof ITextFileBuffer) {
-				IDocument document = ((ITextFileBuffer) buffer).getDocument();
-				// ignore non-JSP documents
-				synchronized (_instance.fJSPdocuments) {
-					if (!_instance.fJSPdocuments.contains(document))
-						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());
-				synchronized (_instance.fDocumentMap) {
-					_instance.fDocumentMap.put(document, info);
-				}
-				TaglibIndex.addTaglibIndexListener(info);
-				if (document instanceof BasicStructuredDocument) {
-					((BasicStructuredDocument) document).reparse(this);
-				}
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#bufferDisposed(org.eclipse.core.filebuffers.IFileBuffer)
-		 */
-		public void bufferDisposed(IFileBuffer buffer) {
-			if (buffer instanceof ITextFileBuffer) {
-				IDocument document = ((ITextFileBuffer) buffer).getDocument();
-				synchronized (_instance.fJSPdocuments) {
-					if (!_instance.fJSPdocuments.remove(document))
-						return;
-				}
-			}
-			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]);
-						break;
-					}
-				}
-			}
-			if (info != null) {
-				info.tldDocumentManager.clearCache();
-				TaglibIndex.removeTaglibIndexListener(info);
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#dirtyStateChanged(org.eclipse.core.filebuffers.IFileBuffer,
-		 *      boolean)
-		 */
-		public void dirtyStateChanged(IFileBuffer buffer, boolean isDirty) {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#stateChangeFailed(org.eclipse.core.filebuffers.IFileBuffer)
-		 */
-		public void stateChangeFailed(IFileBuffer buffer) {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#stateChanging(org.eclipse.core.filebuffers.IFileBuffer)
-		 */
-		public void stateChanging(IFileBuffer buffer) {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#stateValidationChanged(org.eclipse.core.filebuffers.IFileBuffer,
-		 *      boolean)
-		 */
-		public void stateValidationChanged(IFileBuffer buffer, boolean isStateValidated) {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#underlyingFileDeleted(org.eclipse.core.filebuffers.IFileBuffer)
-		 */
-		public void underlyingFileDeleted(IFileBuffer buffer) {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#underlyingFileMoved(org.eclipse.core.filebuffers.IFileBuffer,
-		 *      org.eclipse.core.runtime.IPath)
-		 */
-		public void underlyingFileMoved(IFileBuffer buffer, IPath path) {
-		}
-
-
-	}
-
-	static TaglibController _instance = null;
-	static private boolean fIsShutdown = false;
-
-	public static ITextFileBuffer getFileBuffer(IDocument document) {
-		synchronized (_instance.fDocumentMap) {
-			DocumentInfo info = (DocumentInfo) _instance.fDocumentMap.get(document);
-			if (info != null)
-				return info.textFileBuffer;
-			return null;
-		}
-	}
-
-	/**
-	 * @param manager
-	 * @return
-	 */
-	public static ITextFileBuffer getFileBuffer(TLDCMDocumentManager manager) {
-		// if _instance is null, we are already shutting donw
-		if (_instance == null)
-			return null;
-
-		ITextFileBuffer buffer = null;
-		synchronized (_instance.fDocumentMap) {
-			Iterator docInfos = _instance.fDocumentMap.values().iterator();
-			while (docInfos.hasNext() && buffer == null) {
-				DocumentInfo info = (DocumentInfo) docInfos.next();
-				if (info.tldDocumentManager.equals(manager))
-					buffer = info.textFileBuffer;
-			}
-		}
-		return buffer;
-	}
-
-	public static TLDCMDocumentManager getTLDCMDocumentManager(IDocument document) {
-		// if _instance is null, we are already shutting donw
-		if (_instance == null)
-			return null;
-		synchronized (_instance.fDocumentMap) {
-			DocumentInfo info = (DocumentInfo) _instance.fDocumentMap.get(document);
-			if (info != null)
-				return info.tldDocumentManager;
-			return null;
-
-		}
-	}
-
-	private static synchronized boolean isShutdown() {
-		return fIsShutdown;
-	}
-
-	private static synchronized void setShutdown(boolean isShutdown) {
-		fIsShutdown = isShutdown;
-	}
-
-	public synchronized static void shutdown() {
-		setShutdown(true);
-		FileBuffers.getTextFileBufferManager().removeFileBufferListener(_instance.fBufferListener);
-		_instance = null;
-	}
-
-	public synchronized static void startup() {
-		if (_instance == null) {
-			_instance = new TaglibController();
-			FileBuffers.getTextFileBufferManager().addFileBufferListener(_instance.fBufferListener);
-		}
-		setShutdown(false);
-	}
-
-	IFileBufferListener fBufferListener;
-
-	Map fDocumentMap;
-
-	List fJSPdocuments;
-
-	/*
-	 * This constructor is only to be called as part of the FileBuffer
-	 * framework
-	 */
-	public TaglibController() {
-		super();
-		fBufferListener = new FileBufferListener();
-		fJSPdocuments = new ArrayList(1);
-		fDocumentMap = new HashMap(1);
-	}
-
-
-	/*
-	 * This method is only to be called as part of the FileBuffer framework
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.filebuffers.IDocumentSetupParticipant#setup(org.eclipse.jface.text.IDocument)
-	 */
-	public void setup(IDocument document) {
-		// if we've already shutdown, just ignore
-		if (isShutdown())
-			return;
-		// reference the shared instance's documents directly
-		synchronized (_instance.fJSPdocuments) {
-			_instance.fJSPdocuments.add(document);
-		}
-	}
-}
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
deleted file mode 100644
index 41d7ed9..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMAttributeDeclarationImpl.java
+++ /dev/null
@@ -1,280 +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.core.internal.contentmodel.tld;
-
-
-
-import java.util.Enumeration;
-
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP12TLDNames;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDAttributeDeclaration;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDDocument;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-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.CMNode;
-
-public class CMAttributeDeclarationImpl implements TLDAttributeDeclaration {
-
-	private CMDataType attrType = new CMDataTypeImpl(CMDataType.CDATA);
-	private String fDescription;
-
-	//
-	private boolean fIsFragment = false;
-
-	private CMDocument fOwnerDocument;
-	// optional id
-	private String id = null;
-
-	// required name
-	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
-	private String rtexprvalue = null;
-
-	private String type = null;
-
-	/**
-	 * CMAttributeDeclarationImpl constructor comment.
-	 */
-	public CMAttributeDeclarationImpl(CMDocument owner) {
-		super();
-		fOwnerDocument = owner;
-	}
-
-	/**
-	 * getAttrName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getAttrName() {
-		return getNodeName();
-	}
-
-	/**
-	 * getAttrType method
-	 * 
-	 * @return CMDataType
-	 */
-	public CMDataType getAttrType() {
-		return attrType;
-	}
-
-	/**
-	 * @deprecated in superclass
-	 */
-	public String getDefaultValue() {
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * @return Returns the description.
-	 */
-	public String getDescription() {
-		return fDescription;
-	}
-
-	/**
-	 * @deprecated in superclass
-	 */
-	public Enumeration getEnumAttr() {
-		return null;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * getNodeName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return name;
-	}
-
-	/**
-	 * getNodeType method
-	 * 
-	 * @return int
-	 * 
-	 * Returns one of :
-	 * 
-	 */
-	public int getNodeType() {
-		return CMNode.ATTRIBUTE_DECLARATION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jst.jsp.core.contentmodel.tld.TLDAttributeDeclaration#getOwnerDocument()
-	 */
-	public CMDocument getOwnerDocument() {
-		return fOwnerDocument;
-	}
-
-	/**
-	 * 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)) {
-			return getDescription(); // return attribute description
-		}
-		else if (propertyName.equals(TLDDocument.CM_KIND)) {
-			return TLDDocument.JSP_TLD;
-		}
-		else if (propertyName.equals(JSP12TLDNames.SMALL_ICON) || propertyName.equals(JSP12TLDNames.LARGE_ICON)) {
-			return getOwnerDocument().getProperty(propertyName);
-		}
-		return null;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public java.lang.String getRtexprvalue() {
-		return rtexprvalue;
-	}
-
-	public String getType() {
-		return type;
-	}
-
-	/**
-	 * getUsage method
-	 * 
-	 * @return int OPTIONAL|REQUIRED
-	 */
-	public int getUsage() {
-		return required ? REQUIRED : OPTIONAL;
-	}
-
-	/**
-	 * @return Returns the isFragment.
-	 */
-	public boolean isFragment() {
-		return fIsFragment;
-	}
-
-	/**
-	 * 
-	 * @return boolean
-	 */
-	public boolean isRequired() {
-		return required;
-	}
-
-	/**
-	 * @param description
-	 *            The description to set.
-	 */
-	public void setDescription(String description) {
-		fDescription = description;
-	}
-
-	/**
-	 * @param isFragment
-	 *            The isFragment to set.
-	 */
-	public void setFragment(boolean isFragment) {
-		fIsFragment = isFragment;
-	}
-
-	/**
-	 * 
-	 * @param newId
-	 *            java.lang.String
-	 */
-	public void setId(String newId) {
-		id = newId;
-	}
-
-	public void setNodeName(String string) {
-		name = string;
-	}
-
-	/**
-	 * 
-	 * @param newRequired
-	 *            boolean
-	 */
-	public void setRequired(boolean newRequired) {
-		required = newRequired;
-	}
-
-	/**
-	 * 
-	 * @param newRequired
-	 *            boolean
-	 */
-	public void setRequiredString(String newRequired) {
-		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
-	 */
-	public void setRtexprvalue(String newRtexprvalue) {
-		rtexprvalue = newRtexprvalue;
-	}
-
-	public void setType(String type) {
-		this.type = type;
-	}
-
-	/**
-	 * supports method
-	 * 
-	 * @return boolean
-	 * 
-	 * Returns true if the CMNode supports a specified property
-	 * 
-	 */
-	public boolean supports(String propertyName) {
-		return propertyName == null || propertyName.equals(JSP12TLDNames.DESCRIPTION) || propertyName.equals(TLDDocument.CM_KIND) || propertyName.equals(JSP12TLDNames.SMALL_ICON) || propertyName.equals(JSP12TLDNames.LARGE_ICON);
-	}
-
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		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.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();
-	}
-}
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
deleted file mode 100644
index 1c325a3..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDataTypeImpl.java
+++ /dev/null
@@ -1,100 +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.core.internal.contentmodel.tld;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-public class CMDataTypeImpl implements CMDataType {
-
-	protected String dataTypeName;
-
-	public CMDataTypeImpl(String dataTypeName) {
-		this.dataTypeName = dataTypeName;
-	}
-
-	/**
-	 * getTypeName method
-	 * @return java.lang.String
-	 *
-	 * This method returns a suitable default value that can be used when an instance of the data type is created.
-	 * This returns null of a suitable default is not available.
-	 */
-	public String generateInstanceValue() {
-		return null;
-	}
-
-	public String getDataTypeName() {
-		return dataTypeName;
-	}
-
-	/**
-	 * getTypeName method
-	 * @return java.lang.String[]
-	 *
-	 */
-	public String[] getEnumeratedValues() {
-		return null;
-	}
-
-	/**
-	 * getTypeName method
-	 * @return java.lang.String  
-	 *
-	 * Returns the implied value or null if none exists.
-	 */
-	public String getImpliedValue() {
-		return null;
-	}
-
-	/**
-	 * getImpliedValueKind method
-	 * @return int
-	 *
-	 * Returns one of :
-	 * IMPLIED_VALUE_NONE, IMPLIED_VALUE_FIXED, IMPLIED_VALUE_DEFAULT.
-	 */
-	public int getImpliedValueKind() {
-		return IMPLIED_VALUE_NONE;
-	}
-
-	public String getNodeName() {
-		return dataTypeName;
-	}
-
-	public int getNodeType() {
-		return CMNode.DATA_TYPE;
-	}
-
-	/**
-	 * getProperty method
-	 * @return java.lang.Object
-	 *
-	 * Returns the object property described by the propertyName
-	 *
-	 */
-	public Object getProperty(String propertyName) {
-		return null;
-	}
-
-	/**
-	 * 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.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
deleted file mode 100644
index 7f080ce..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDocumentFactoryTLD.java
+++ /dev/null
@@ -1,1066 +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.core.internal.contentmodel.tld;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-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.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.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.jst.jsp.core.taglib.TaglibIndex;
-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
- * 
- * Returns namespace-less CMDocuments for a taglib descriptor, loading it
- * directly from a file or extracted from a JAR archive. Content Model objects
- * will implement the TLDCMDocument, TLDElementDeclaration, and
- * TLDAttributeDeclaration interfaces for extended properties.
- */
-public class CMDocumentFactoryTLD implements CMDocumentFactory {
-
-	static final boolean _debug = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/tldcmdocument/factory")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * CMDocumentFactoryTLD constructor comment.
-	 */
-	public CMDocumentFactoryTLD() {
-		super();
-	}
-
-	/**
-	 * NOT API
-	 * 
-	 * @param baselocation
-	 * @param input
-	 * @return
-	 */
-	public CMDocument buildCMDocument(String baselocation, InputStream input) {
-		DocumentProvider provider = new DocumentProvider();
-		provider.setValidating(false);
-		provider.setRootElementName(JSP11TLDNames.TAGLIB);
-		provider.setInputStream(input);
-		if (baselocation != null)
-			provider.setBaseReference(baselocation);
-		return loadDocument(baselocation, provider.getRootElement());
-	}
-
-	/**
-	 * @param fileName
-	 * @return
-	 */
-	private CMDocumentImpl buildCMDocumentFromFolder(IPath path) {
-		if (_debug) {
-			System.out.println("tagdir loading for " + path); //$NON-NLS-1$
-		}
-		// 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;
-	}
-
-	/**
-	 * NOT API
-	 * 
-	 * @param fileName
-	 * @return
-	 */
-	protected CMDocument buildCMDocumentFromFile(String fileName) {
-		// load the taglib descriptor file
-		DocumentProvider provider = new DocumentProvider();
-		provider.setValidating(false);
-		provider.setBaseReference(fileName);
-		provider.setRootElementName(JSP11TLDNames.TAGLIB);
-		provider.setFileName(fileName);
-		Node rootElement = provider.getRootElement();
-		return loadDocument(fileName, rootElement);
-	}
-
-	/**
-	 * Builds a CMDocument assuming the JSP v1.1 default path
-	 * 
-	 * @param jarFileName -
-	 *            the name of the containing JAR file
-	 */
-	protected CMDocument buildCMDocumentFromJar(String jarFileName) {
-		// load the taglib descriptor file
-		return buildCMDocumentFromJar(jarFileName, JarUtilities.JSP11_TAGLIB);
-	}
-
-	/**
-	 * Builds a CMDocument
-	 * 
-	 * @param jarFileName -
-	 *            the name of the containing JAR file
-	 * @param contentFileName -
-	 *            the path within the JAR for a valid taglib descriptor
-	 */
-	protected CMDocument buildCMDocumentFromJar(String jarFileName, String contentFileName) {
-		// load the taglib descriptor file
-		DocumentProvider provider = new DocumentProvider();
-		provider.setValidating(false);
-		provider.setBaseReference(jarFileName);
-		provider.setRootElementName(JSP11TLDNames.TAGLIB);
-		provider.setJarFileName(jarFileName);
-		provider.setFileName(contentFileName);
-		CMDocument document = loadDocument("jar:file://" + jarFileName + "!" + contentFileName, provider.getRootElement()); //$NON-NLS-1$ //$NON-NLS-2$
-		// TODO: Add the tags declared in META-INF/tags, see JSP 2.0 section
-		// 8.4.1
-		return document;
-	}
-
-	protected CMAttributeDeclaration createAttributeDeclaration(CMDocument document, Node attrNode) {
-		CMAttributeDeclarationImpl attr = new CMAttributeDeclarationImpl(document);
-
-		Node child = attrNode.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() == Node.ELEMENT_NODE) {
-				if (child.getNodeName().equals(JSP11TLDNames.NAME) && child.hasChildNodes()) {
-					attr.setNodeName(getContainedText(child));
-				}
-				else if (child.getNodeName().equals(JSP12TLDNames.DESCRIPTION) && child.hasChildNodes()) {
-					attr.setDescription(getContainedText(child));
-				}
-				else if (child.getNodeName().equals(JSP11TLDNames.ID) && child.hasChildNodes()) {
-					attr.setId(getContainedText(child));
-				}
-				else if (child.getNodeName().equals(JSP11TLDNames.REQUIRED) && child.hasChildNodes()) {
-					attr.setRequiredString(getContainedText(child));
-				}
-				else if (child.getNodeName().equals(JSP11TLDNames.RTEXPRVALUE) && child.hasChildNodes()) {
-					attr.setRtexprvalue(getContainedText(child));
-				}
-				else if (child.getNodeName().equals(JSP20TLDNames.FRAGMENT) && child.hasChildNodes()) {
-					attr.setFragment(Boolean.valueOf(getContainedText(child)).booleanValue());
-				}
-			}
-			child = child.getNextSibling();
-		}
-
-		return attr;
-	}
-
-	/**
-	 * Builds a CMDocument from a taglib descriptor
-	 * 
-	 * @param uri -
-	 *            the location of a valid taglib descriptor
-	 */
-	public CMDocument createCMDocument(String uri) {
-		CMDocument result = null;
-		URL url = null;
-		try {
-			url = new URL(uri);
-		}
-		catch (MalformedURLException e) {
-			result = createCMDocumentFromFile(uri);
-		}
-		if (result == null && url != null) {
-			if (url.getProtocol().equals("file")) { //$NON-NLS-1$
-				result = createCMDocumentFromFile(url.getFile());
-			}
-			else {
-				/**
-				 * Skip anything else since trying to load a TLD from a remote
-				 * location has unpredictable performance impact.
-				 */
-			}
-		}
-		if (result == null)
-			result = new CMDocumentImpl();
-		return result;
-	}
-
-	/**
-	 * @param fileName
-	 * @return
-	 */
-	private CMDocument createCMDocumentFromFile(String fileName) {
-		CMDocument 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);
-				}
-			}
-			catch (SecurityException e) {
-				result = null;
-			}
-		}
-		return result;
-	}
-
-	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 = new Path(document.getBaseLocation()).removeLastSegments(1).append(path);
-		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);
-			}
-		}
-
-		// load information declared within the .tld
-		Node child = tagFileNode.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() == Node.ELEMENT_NODE) {
-				String nodeName = child.getNodeName();
-				if (nodeName.equals(JSP12TLDNames.DESCRIPTION) && child.hasChildNodes()) {
-					ed.setDescription(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.DISPLAY_NAME) && child.hasChildNodes()) {
-					ed.setDisplayName(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP20TLDNames.EXAMPLE) && child.hasChildNodes()) {
-					ed.setExample(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP20TLDNames.ICON) && child.hasChildNodes()) {
-					ed.setSmallIcon(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.NAME) && child.hasChildNodes()) {
-					ed.setNodeName(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP20TLDNames.PATH) && child.hasChildNodes()) {
-					ed.setPath(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP20TLDNames.TAG_EXTENSION)) {
-					ed.getExtensions().add(child);
-				}
-			}
-			child = child.getNextSibling();
-		}
-		
-		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 CMElementDeclaration createElementDeclaration(CMDocument document, Node tagNode) {
-		CMElementDeclarationImpl ed = new CMElementDeclarationImpl(document);
-
-		Node child = tagNode.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() == Node.ELEMENT_NODE) {
-				// tag information
-				String nodeName = child.getNodeName();
-				if (nodeName.equals(JSP11TLDNames.NAME) && child.hasChildNodes()) {
-					ed.setNodeName(getContainedText(child));
-				}
-				else if ((nodeName.equals(JSP11TLDNames.TAGCLASS) || nodeName.equals(JSP12TLDNames.TAG_CLASS)) && child.hasChildNodes()) {
-					ed.setTagclass(getContainedText(child));
-				}
-				else if ((nodeName.equals(JSP11TLDNames.TEICLASS) || nodeName.equals(JSP12TLDNames.TEI_CLASS)) && child.hasChildNodes()) {
-					ed.setTeiclass(getContainedText(child));
-				}
-				else if ((nodeName.equals(JSP11TLDNames.BODYCONTENT) || nodeName.equals(JSP12TLDNames.BODY_CONTENT)) && child.hasChildNodes()) {
-					String bodycontent = getContainedText(child);
-					// Apparently, Apache Tomcat is not case sensitive about
-					// these values
-					if (bodycontent.equalsIgnoreCase(JSP11TLDNames.CONTENT_JSP))
-						ed.setBodycontent(JSP11TLDNames.CONTENT_JSP);
-					else if (bodycontent.equalsIgnoreCase(JSP11TLDNames.CONTENT_TAGDEPENDENT))
-						ed.setBodycontent(JSP11TLDNames.CONTENT_TAGDEPENDENT);
-					else if (bodycontent.equalsIgnoreCase(JSP11TLDNames.CONTENT_EMPTY))
-						ed.setBodycontent(JSP11TLDNames.CONTENT_EMPTY);
-					else if (bodycontent.equalsIgnoreCase(JSP20TLDNames.CONTENT_SCRIPTLESS))
-						ed.setBodycontent(JSP20TLDNames.CONTENT_SCRIPTLESS);
-				}
-				// info (1.1 only) or description (1.2 only)
-				else if ((nodeName.equals(JSP11TLDNames.INFO) || nodeName.equals(JSP12TLDNames.DESCRIPTION)) && child.hasChildNodes()) {
-					ed.setDescription(getContainedText(child));
-				}
-				// attributes
-				else if (nodeName.equals(JSP11TLDNames.ATTRIBUTE)) {
-					CMAttributeDeclaration attr = createAttributeDeclaration(document, child);
-					ed.fAttributes.setNamedItem(attr.getAttrName(), attr);
-				}
-				// variables
-				else if (nodeName.equals(JSP12TLDNames.VARIABLE)) {
-					ed.getVariables().add(createVariable(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.LARGE_ICON) && child.hasChildNodes()) {
-					ed.setLargeIcon(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.SMALL_ICON) && child.hasChildNodes()) {
-					ed.setSmallIcon(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP20TLDNames.TAG_EXTENSION) && child.getNodeType() == Node.ELEMENT_NODE) {
-					ed.getExtensions().add(child);
-				}
-			}
-			child = child.getNextSibling();
-		}
-		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;
-
-		Node child = functionNode.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() == Node.ELEMENT_NODE) {
-				// tag information
-				String nodeName = child.getNodeName();
-				if (nodeName.equals(JSP12TLDNames.DESCRIPTION) && child.hasChildNodes()) {
-					function.setDescription(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.DISPLAY_NAME) && child.hasChildNodes()) {
-					function.setName(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP20TLDNames.EXAMPLE) && child.hasChildNodes()) {
-					function.setExample(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP20TLDNames.FUNCTION_CLASS) && child.hasChildNodes()) {
-					function.setClassName(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP20TLDNames.FUNCTION_EXTENSION) && child.hasChildNodes()) {
-					function.getExtensions().add(child);
-				}
-				else if (nodeName.equals(JSP20TLDNames.FUNCTION_SIGNATURE) && child.hasChildNodes()) {
-					function.setSignature(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP20TLDNames.ICON) && child.hasChildNodes()) {
-					function.setIcon(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.NAME) && child.hasChildNodes()) {
-					function.setName(getContainedText(child));
-					hasName = function.getName().trim().length() > 0;
-				}
-			}
-			child = child.getNextSibling();
-		}
-		if (hasName) {
-			return function;
-		}
-		return null;
-	}
-
-	protected TLDInitParam createInitParam(Node initParamNode) {
-		TLDInitParamImpl initParam = new TLDInitParamImpl();
-		Node child = initParamNode.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() == Node.ELEMENT_NODE) {
-				String nodeName = child.getNodeName();
-				if (nodeName.equals(JSP12TLDNames.VALIDATOR_PARAM_NAME) && child.hasChildNodes()) {
-					initParam.setName(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.VALIDATOR_PARAM_VALUE) && child.hasChildNodes()) {
-					initParam.setValue(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.DESCRIPTION) && child.hasChildNodes()) {
-					initParam.setDescription(getContainedText(child));
-				}
-			}
-			child = child.getNextSibling();
-		}
-		return initParam;
-	}
-
-	protected TLDListener createListener(Node listenerNode) {
-		TLDListenerImpl listener = new TLDListenerImpl();
-		Node child = listenerNode.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() == Node.ELEMENT_NODE) {
-				String nodeName = child.getNodeName();
-				if (nodeName.equals(JSP12TLDNames.LISTENER_CLASS) && child.hasChildNodes()) {
-					listener.setListenerClass(getContainedText(child));
-				}
-			}
-			child = child.getNextSibling();
-		}
-		return listener;
-	}
-
-	protected TLDValidator createValidator(Node validatorNode) {
-		TLDValidatorImpl validator = new TLDValidatorImpl();
-		Node child = validatorNode.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() == Node.ELEMENT_NODE) {
-				String nodeName = child.getNodeName();
-				if (nodeName.equals(JSP12TLDNames.VALIDATOR_CLASS) && child.hasChildNodes()) {
-					validator.setValidatorClass(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.VALIDATOR_INIT_PARAM) && child.hasChildNodes()) {
-					validator.getInitParams().add(createInitParam(child));
-				}
-			}
-			child = child.getNextSibling();
-		}
-		return validator;
-	}
-
-	protected TLDVariable createVariable(Node variableNode) {
-		TLDVariableImpl variable = new TLDVariableImpl();
-		Node child = variableNode.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() == Node.ELEMENT_NODE) {
-				String nodeName = child.getNodeName();
-				if (nodeName.equals(JSP12TLDNames.VARIABLE_CLASS) && child.hasChildNodes()) {
-					variable.setVariableClass(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.VARIABLE_DECLARE) && child.hasChildNodes()) {
-					variable.setDeclareString(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.VARIABLE_NAME_FROM_ATTRIBUTE) && child.hasChildNodes()) {
-					variable.setNameFromAttribute(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.VARIABLE_NAME_GIVEN) && child.hasChildNodes()) {
-					variable.setNameGiven(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.VARIABLE_SCOPE) && child.hasChildNodes()) {
-					variable.setScope(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.DESCRIPTION) && child.hasChildNodes()) {
-					variable.setDescription(getContainedText(child));
-				}
-			}
-			child = child.getNextSibling();
-		}
-		return variable;
-	}
-
-	protected 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 boolean isBuilderForGrammar(String grammarFileName) {
-		String fileName = grammarFileName.toLowerCase();
-		return fileName.endsWith(".tld") || fileName.endsWith(".jar"); //$NON-NLS-2$//$NON-NLS-1$
-	}
-
-	private CMDocument loadDocument(String baseLocation, Node taglib) {
-		Node root = taglib;
-
-		// create the CMDocument
-		CMDocumentImpl document = new CMDocumentImpl();
-		document.setBaseLocation(baseLocation);
-
-		if (root == null) {
-			if (_debug) {
-				System.out.println("null \"taglib\" element for TLD " + baseLocation); //$NON-NLS-1$
-			}
-			return document;
-		}
-
-		// populate the CMDocument
-		Node child = root.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() != Node.ELEMENT_NODE) {
-				child = child.getNextSibling();
-				continue;
-			}
-			String nodeName = child.getNodeName();
-			// tag
-			if (nodeName.equals(JSP11TLDNames.TAG)) {
-				CMElementDeclaration ed = createElementDeclaration(document, child);
-				if (ed != null) {
-					document.fElements.setNamedItem(ed.getNodeName(), ed);
-				}
-			}
-			// 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);
-				if (path != null && path.length() > 0) {
-					CMElementDeclarationImpl ed = (CMElementDeclarationImpl) createElementDeclaration(document, tagFileElement, path);
-					if (ed != null) {
-						document.fElements.setNamedItem(ed.getNodeName(), ed);
-					}
-				}
-			}
-			// other one-of-a-kind children
-			// JSP version
-			else if ((nodeName.equals(JSP11TLDNames.JSPVERSION) || nodeName.equals(JSP12TLDNames.JSP_VERSION)) && child.hasChildNodes()) {
-				document.setJspversion(getContainedText(child));
-			}
-			// tag library version
-			else if ((nodeName.equals(JSP11TLDNames.TLIBVERSION) || nodeName.equals(JSP12TLDNames.TLIB_VERSION)) && child.hasChildNodes()) {
-				document.setTlibversion(getContainedText(child));
-			}
-			// short name
-			else if ((nodeName.equals(JSP11TLDNames.SHORTNAME) || nodeName.equals(JSP12TLDNames.SHORT_NAME)) && child.hasChildNodes()) {
-				document.setShortname(getContainedText(child));
-			}
-			// URI/URN
-			else if ((nodeName.equals(JSP11TLDNames.URI) || nodeName.equals(JSP11TLDNames.URN)) && child.hasChildNodes()) { //$NON-NLS-1$
-				document.setUri(getContainedText(child));
-			}
-			// info
-			else if (nodeName.equals(JSP11TLDNames.INFO) && child.hasChildNodes()) {
-				document.setInfo(getContainedText(child));
-			}
-			// New JSP 1.2
-			// description
-			else if (nodeName.equals(JSP12TLDNames.DESCRIPTION)) {
-				document.setDescription(getContainedText(child));
-			}
-			// display name
-			else if (nodeName.equals(JSP12TLDNames.DISPLAY_NAME) && child.hasChildNodes()) {
-				document.setDisplayName(getContainedText(child));
-			}
-			// large icon
-			else if (nodeName.equals(JSP12TLDNames.LARGE_ICON) && child.hasChildNodes()) {
-				document.setLargeIcon(getContainedText(child));
-			}
-			// small icon
-			else if (nodeName.equals(JSP12TLDNames.SMALL_ICON) && child.hasChildNodes()) {
-				document.setSmallIcon(getContainedText(child));
-			}
-			// validator
-			else if (nodeName.equals(JSP12TLDNames.VALIDATOR)) {
-				document.setValidator(createValidator(child));
-			}
-			// listener
-			else if (nodeName.equals(JSP12TLDNames.LISTENER)) {
-				document.getListeners().add(createListener(child));
-			}
-			else if (nodeName.equals(JSP20TLDNames.FUNCTION)) {
-				TLDFunction function = createFunction(document, child);
-				if (function != null) {
-					document.getFunctions().add(function);
-				}
-			}
-			else if (nodeName.equals(JSP20TLDNames.TAGLIB_EXTENSION)) {
-				document.getExtensions().add(child);
-			}
-
-			child = child.getNextSibling();
-		}
-		return document;
-	}
-
-	private void loadTagXFile(final CMElementDeclarationImpl ed, IFile tagxFile, boolean allowIncludes) {
-		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) {
-							if (text.startsWith("/")) { //$NON-NLS-1$
-								IPath contextRoot = TaglibIndex.getContextRoot(new Path(((CMDocumentImpl) ed.getOwnerDocument()).getBaseLocation()));
-								filePath = contextRoot.append(text);
-							}
-							else {
-								filePath = new Path(((CMDocumentImpl) ed.getOwnerDocument()).getBaseLocation()).removeLastSegments(1).append(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();
-			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 = null;
-										if (text.startsWith("/")) { //$NON-NLS-1$
-											IPath contextRoot = TaglibIndex.getContextRoot(new Path(((CMDocumentImpl) ed.getOwnerDocument()).getBaseLocation()));
-											filePath = contextRoot.append(text);
-										}
-										else {
-											filePath = new Path(((CMDocumentImpl) ed.getOwnerDocument()).getBaseLocation()).removeLastSegments(1).append(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
-	 */
-	public CMDocument createCMDocument(ITaglibRecord reference) {
-		CMDocumentImpl document = null;
-		switch (reference.getRecordType()) {
-			case (ITaglibRecord.TLD) : {
-				ITLDRecord record = (ITLDRecord) reference;
-				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$
-					}
-
-					if (document.getSmallIcon() != null) {
-						String iconPath = URIHelper.normalize(((TLDDocument) document).getSmallIcon(), file.getLocation().toString(), "/"); //$NON-NLS-1$
-						document.setProperty(JSP12TLDNames.SMALL_ICON, "file:" + iconPath); //$NON-NLS-1$
-					}
-					if (document.getLargeIcon() != null) {
-						String iconPath = URIHelper.normalize(((TLDDocument) document).getLargeIcon(), file.getLocation().toString(), "/"); //$NON-NLS-1$
-						document.setProperty(JSP12TLDNames.LARGE_ICON, "file:" + iconPath); //$NON-NLS-1$
-					}
-				}
-			}
-				break;
-			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$
-					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$
-					document.setProperty(JSP12TLDNames.LARGE_ICON, "jar:file:" + iconPath); //$NON-NLS-1$
-				}
-				if (document != null && document.getElements().getLength() == 0) {
-					System.out.println("failure parsing " + record.getLocation()); //$NON-NLS-1$
-				}
-			}
-				break;
-			case (ITaglibRecord.TAGDIR) : {
-				ITagDirRecord record = (ITagDirRecord) reference;
-				document = buildCMDocumentFromFolder(record.getPath());
-			}
-				break;
-			case (ITaglibRecord.URL) : {
-				IURLRecord record = (IURLRecord) reference;
-				InputStream urlContents = null;
-				URLConnection connection = null;
-				try {
-					connection = record.getURL().openConnection();
-					if (connection != null) {
-						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);
-						}
-						if (document.getLargeIcon() != null) {
-							String iconPath = URIHelper.normalize(((TLDDocument) document).getLargeIcon(), record.getURL().toString(), "/"); //$NON-NLS-1$
-							document.setProperty(JSP12TLDNames.LARGE_ICON, iconPath);
-						}
-					}
-				}
-				catch (IOException e) {
-					// not uncommon given invalid URLs
-				}
-				finally {
-					if (urlContents != null) {
-						try {
-							urlContents.close();
-						}
-						catch (IOException e) {
-						}
-					}
-				}
-			}
-				break;
-		}
-		return document;
-	}
-}
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
deleted file mode 100644
index 936684b..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDocumentImpl.java
+++ /dev/null
@@ -1,455 +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.core.internal.contentmodel.tld;
-
-
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.jst.jsp.core.internal.Logger;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDDocument;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDValidator;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-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.ContentModelManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.annotation.AnnotationMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.internal.annotation.AnnotationFileInfo;
-import org.eclipse.wst.xml.core.internal.contentmodel.internal.annotation.AnnotationFileParser;
-
-public class CMDocumentImpl implements TLDDocument {
-	
-	/** Contains taginfo and/or any other misc properties*/
-	private AnnotationMap fAnnotationMap = null;
-	
-	private Map fProperties = new HashMap(0);
-
-	/**
-	 * Records from where this document was created
-	 */
-	private String fBaseLocation;
-	/** 
-	 * since JSP 1.2
-	 */
-	private String fDescription;
-	
-	private String fDisplayName;
-
-	/**
-	 * NOT public API
-	 */
-	public CMNamedNodeMapImpl fElements = new CMNamedNodeMapImpl();
-
-	private List fFunctions = new ArrayList(0);
-	
-	// id of the taglib
-	private String fId = null;
-	/**
-	 * Children of "taglib" within a .tld file each allow
-	 * one Text node (#PCDATA) beneath them.  Store the values
-	 * here for simplicity.
-	 */
-	// The JSP specification required for this taglib to function
-	private String fJSPVersion = null;
-	
-	private String fLargeIcon;
-
-	private List fListeners;
-	
-	private String fParentURI = null;
-	// A short name suggested as the default prefix for tags within the lib
-	private String fShortName = null;
-	
-	private String fSmallIcon;
-	
-	/**
-	 * since JSP 2.0
-	 * 
-	 * The entire element is stored here since its layout is undefined 
-	 */
-	private List fTaglibExtensions = new ArrayList(0);
-	
-	// Version information for the taglib itself
-	private String fTLibVersion = null;
-	
-	// 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;
-	
-	/**
-	 * CMDocumentImpl constructor comment.
-	 */
-	public CMDocumentImpl() {
-		super();
-	}
-
-	/**
-	 * Get the annotation map associated with this document.  Lazily creates
-	 * and loads annotation map.
-	 * @return AnnotationMap
-	 */
-	private AnnotationMap getAnnotationMap() {
-		// create a new annotation map and load it up
-		if (fAnnotationMap == null) {
-			fAnnotationMap = new AnnotationMap();
-			
-			List annotationFiles = ContentModelManager.getInstance().getAnnotationFilesInfos(getUri());
-		    for (Iterator i = annotationFiles.iterator(); i.hasNext();) {
-		    	try {
-		    		AnnotationFileInfo fileInfo = (AnnotationFileInfo) i.next();
-		    		AnnotationFileParser parser = new AnnotationFileParser();
-		    		parser.parse(fAnnotationMap, fileInfo);
-		        } catch (Exception e) {
-		        	Logger.log(Logger.WARNING_DEBUG, "Exception thrown in CMDocumentImpl#getAnnotationMap", e); //$NON-NLS-1$
-		        }
-		    }
-		}
-		return fAnnotationMap;
-	}
-	/**
-	 * @return Returns the baseLocation.
-	 */
-	public String getBaseLocation() {
-		return fBaseLocation;
-	}
-
-	/**
-	 * Gets the description.
-	 * @return Returns a String
-	 */
-	public String getDescription() {
-		return fDescription;
-	}
-
-	/**
-	 * Gets the displayName.
-	 * @return Returns a String
-	 */
-	public String getDisplayName() {
-		return fDisplayName;
-	}
-
-	/**
-	 * getElements method
-	 * @return CMNamedNodeMap
-	 *
-	 * Returns CMNamedNodeMap of ElementDeclaration
-	 */
-	public CMNamedNodeMap getElements() {
-		return fElements;
-	}
-
-	/**
-	 * getEntities method
-	 * @return CMNamedNodeMap
-	 *
-	 * Returns CMNamedNodeMap of EntityDeclaration
-	 */
-	public CMNamedNodeMap getEntities() {
-		return null;
-	}
-	
-	public List getExtensions() {
-		return fTaglibExtensions;
-	}
-	/**
-	 * @return Returns the functions.
-	 */
-	public List getFunctions() {
-		return fFunctions;
-	}
-
-	/**
-	 * Gets the id.
-	 * @return Returns a String
-	 */
-	public String getId() {
-		return fId;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getInfo() {
-		return getDescription();
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getJspversion() {
-		return fJSPVersion;
-	}
-
-	/**
-	 * Gets the largeIcon.
-	 * @return Returns a String
-	 */
-	public String getLargeIcon() {
-		return fLargeIcon;
-	}
-
-	public List getListeners() {
-		if (fListeners == null)
-			fListeners = new ArrayList();
-		return fListeners;
-	}
-
-	/**
-	 * getNamespace method
-	 * @return CMNamespace
-	 */
-	public CMNamespace getNamespace() {
-		return null;
-	}
-
-	/**
-	 * getNodeName method
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return "#cmdocument"; //$NON-NLS-1$
-	}
-
-	/**
-	 * getNodeType method
-	 * @return int
-	 *
-	 * Returns one of :
-	 *
-	 */
-	public int getNodeType() {
-		return CMNode.DOCUMENT;
-	}
-	/**
-	 * @return Returns the parentURI.
-	 */
-	public String getParentURI() {
-		return fParentURI;
-	}
-
-	/**
-	 * getProperty method
-	 * @return java.lang.Object
-	 *
-	 * Returns the object property desciped by the propertyName
-	 *
-	 */
-	public Object getProperty(String propertyName) {
-		if (propertyName.equals(TLDDocument.CM_KIND)) {
-			return TLDDocument.JSP_TLD;
-		}
-		else if (propertyName.equals("annotationMap")) { //$NON-NLS-1$
-			return getAnnotationMap();
-		}
-		return fProperties.get(propertyName);
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getShortname() {
-		return fShortName;
-	}
-
-	/**
-	 * Gets the smallIcon.
-	 * @return Returns a String
-	 */
-	public String getSmallIcon() {
-		return fSmallIcon;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getTlibversion() {
-		return fTLibVersion;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getUri() {
-		return fURI;
-	}
-
-	/*
-	 * @see TLDDocument#getValidator()
-	 */
-	public TLDValidator getValidator() {
-		return validator;
-	}
-	/**
-	 * @param baseLocation The baseLocation to set.
-	 */
-	public void setBaseLocation(String baseLocation) {
-		fBaseLocation = baseLocation;
-	}
-
-	/**
-	 * Sets the description.
-	 * @param description The description to set
-	 */
-	public void setDescription(String description) {
-		this.fDescription = description;
-	}
-
-	/**
-	 * Sets the displayName.
-	 * @param displayName The displayName to set
-	 */
-	public void setDisplayName(String displayName) {
-		this.fDisplayName = displayName;
-	}
-
-	/**
-	 * Sets the id.
-	 * @param id The id to set
-	 */
-	public void setId(String id) {
-		this.fId = id;
-	}
-
-	/**
-	 * 
-	 * @param newInfo java.lang.String
-	 */
-	public void setInfo(String newInfo) {
-		setDescription(newInfo);
-	}
-
-	/**
-	 * 
-	 * @param newJspversion java.lang.String
-	 */
-	public void setJspversion(String newJspversion) {
-		fJSPVersion = newJspversion;
-	}
-
-	/**
-	 * Sets the largeIcon.
-	 * @param largeIcon The largeIcon to set
-	 */
-	public void setLargeIcon(String largeIcon) {
-		this.fLargeIcon = largeIcon;
-	}
-
-	public void setListeners(List listeners) {
-		this.fListeners = listeners;
-	}
-	/**
-	 * @param parentURI The parentURI to set.
-	 */
-	public void setParentURI(String parentURI) {
-		fParentURI = parentURI;
-	}
-	
-	public void setProperty(String property, Object value) {
-		fProperties.put(property, value);
-	}
-
-	/**
-	 * 
-	 * @param newShortname java.lang.String
-	 */
-	public void setShortname(String newShortname) {
-		fShortName = newShortname;
-	}
-
-	/**
-	 * Sets the smallIcon.
-	 * @param smallIcon The smallIcon to set
-	 */
-	public void setSmallIcon(String smallIcon) {
-		this.fSmallIcon = smallIcon;
-	}
-
-	/**
-	 * 
-	 * @param newTlibversion java.lang.String
-	 */
-	public void setTlibversion(String newTlibversion) {
-		fTLibVersion = newTlibversion;
-	}
-
-	/**
-	 * 
-	 * @param newUri java.lang.String
-	 */
-	public void setUri(String newUri) {
-		fURI = newUri;
-	}
-
-	public void setValidator(TLDValidator validator) {
-		this.validator = validator;
-	}
-
-	/**
-	 * supports method
-	 * @return boolean
-	 *
-	 * Returns true if the CMNode supports a specified property
-	 *
-	 */
-	public boolean supports(String propertyName) {
-		if (TLDDocument.CM_KIND.equals(propertyName) || "annotationMap".equals(propertyName)) //$NON-NLS-1$
-			return true;
-		return fProperties.containsKey(propertyName);
-	}
-
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append(super.toString());
-		buffer.append("\n\t short name:" + StringUtils.escape(getShortname())); //$NON-NLS-1$
-		buffer.append("\n\t display name:" + StringUtils.escape(getDisplayName())); //$NON-NLS-1$
-		buffer.append("\n\t description (info):" + StringUtils.escape(getDescription())); //$NON-NLS-1$
-		buffer.append("\n\t URI:" + StringUtils.escape(getUri())); //$NON-NLS-1$
-		buffer.append("\n\t jsp version:" + StringUtils.escape(getJspversion())); //$NON-NLS-1$
-		buffer.append("\n\t taglib version:" + StringUtils.escape(getTlibversion())); //$NON-NLS-1$
-		buffer.append("\n\t small icon:" + StringUtils.escape(getSmallIcon())); //$NON-NLS-1$
-		buffer.append("\n\t large icon:" + StringUtils.escape(getLargeIcon())); //$NON-NLS-1$
-		if (getValidator() != null)
-			buffer.append("\n\t validator:" + StringUtils.replace(getValidator().toString(), "\n", "\n\t\t")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		buffer.append("\n\t listeners:"); //$NON-NLS-1$
-		for (int i = 0; i < getListeners().size(); i++) {
-			buffer.append("\n" + StringUtils.replace(getListeners().get(i).toString(), "\n", "\n\t\t")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		buffer.append("\n\t elements:"); //$NON-NLS-1$
-		CMNamedNodeMap elements = getElements();
-		for (int i = 0; i < elements.getLength(); i++) {
-			buffer.append(StringUtils.replace(elements.item(i).toString(), "\n", "\n\t\t")); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return buffer.toString();
-	}
-
-	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
deleted file mode 100644
index ed748f9..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMElementDeclarationImpl.java
+++ /dev/null
@@ -1,570 +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.core.internal.contentmodel.tld;
-
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-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.TLDDocument;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDElementDeclaration;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-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.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.annotation.AnnotationMap;
-
-public class CMElementDeclarationImpl implements TLDElementDeclaration {
-
-	// optional attributes
-	CMNamedNodeMapImpl fAttributes = new CMNamedNodeMapImpl();
-	// (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;
-
-	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
-	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 fLocationString;
-	private String smallIconURL;
-
-	/**
-	 * CMElementDeclarationImpl constructor comment.
-	 */
-	public CMElementDeclarationImpl(CMDocument owner) {
-		super();
-		fOwnerDocument = owner;
-	}
-
-	/**
-	 * getAttributes method
-	 * 
-	 * @return CMNamedNodeMap
-	 * 
-	 * Returns CMNamedNodeMap of AttributeDeclaration
-	 */
-	public CMNamedNodeMap getAttributes() {
-		return fAttributes;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getBodycontent() {
-		return bodycontent;
-	}
-
-	/**
-	 * getCMContent method
-	 * 
-	 * @return CMContent
-	 * 
-	 * Returns the root node of this element's content model. This can be an
-	 * CMElementDeclaration or a CMGroup
-	 */
-	public CMContent getContent() {
-		return null;
-	}
-
-	/**
-	 * getContentType method
-	 * 
-	 * @return int
-	 * 
-	 * Returns one of : ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA.
-	 */
-	public int getContentType() {
-		if (getBodycontent().equals(JSP11TLDNames.CONTENT_EMPTY))
-			return EMPTY;
-		if (getBodycontent().equals(JSP11TLDNames.CONTENT_TAGDEPENDENT))
-			return PCDATA;
-		else
-			// JSP
-			return ANY;
-	}
-
-	/**
-	 * getDataType method
-	 * 
-	 * @return java.lang.String
-	 */
-	public CMDataType getDataType() {
-		return new CMDataTypeImpl(CMDataType.CDATA);
-	}
-
-	/**
-	 * Gets the description.
-	 * 
-	 * @return Returns a String
-	 */
-	public String getDescription() {
-		return description;
-	}
-
-	/**
-	 * Gets the displayName.
-	 * 
-	 * @return Returns a String
-	 */
-	public String getDisplayName() {
-		return displayName;
-	}
-
-	/**
-	 * getElementName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getElementName() {
-		return getNodeName();
-	}
-
-	/**
-	 * @return Returns the example.
-	 */
-	public String getExample() {
-		return fExample;
-	}
-
-	/**
-	 * @return Returns the extensions.
-	 */
-	public List getExtensions() {
-		return fTagExtensions;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getInfo() {
-		return getDescription();
-	}
-
-	/**
-	 * Gets the largeIcon.
-	 * 
-	 * @return Returns a String
-	 */
-	public String getLargeIcon() {
-		return largeIcon;
-	}
-
-	/**
-	 * getLocalElements method
-	 * 
-	 * @return CMNamedNodeMap
-	 * 
-	 * Returns a list of locally defined elements.
-	 */
-	public CMNamedNodeMap getLocalElements() {
-		return null;
-	}
-
-	/**
-	 * getMaxOccur method
-	 * 
-	 * @return int
-	 * 
-	 * If -1, it's UNBOUNDED.
-	 */
-	public int getMaxOccur() {
-		return maxOccur;
-	}
-
-	/**
-	 * getMinOccur method
-	 * 
-	 * @return int
-	 * 
-	 * If 0, it's OPTIONAL. If 1, it's REQUIRED.
-	 */
-	public int getMinOccur() {
-		return minOccur;
-	}
-
-	/**
-	 * getNodeName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return nodeName;
-	}
-
-	/**
-	 * getNodeType method
-	 * 
-	 * @return int
-	 * 
-	 * Returns one of :
-	 * 
-	 */
-	public int getNodeType() {
-		return CMNode.ELEMENT_DECLARATION;
-	}
-
-	/**
-	 * @return
-	 */
-	public CMDocument getOwnerDocument() {
-		return fOwnerDocument;
-	}
-
-	/**
-	 * @return Returns the path.
-	 */
-	public String getPath() {
-		return fPath;
-	}
-
-	/**
-	 * 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
-		}
-		else if (propertyName != null && propertyName.equals("description")) { //$NON-NLS-1$
-			return getDescription();
-			// bug88336 no need to restore markers
-			// return StringUtils.restoreMarkers(getDescription()); // return
-			// tag description
-		}
-		else if (propertyName.equals(TLDDocument.CM_KIND)) {
-			return TLDDocument.JSP_TLD;
-		}
-		else if (propertyName.equals(JSP12TLDNames.SMALL_ICON) || propertyName.equals(JSP12TLDNames.LARGE_ICON)) {
-			if (smallIconURL != null) {
-				return smallIconURL;
-			}
-			return getOwnerDocument().getProperty(propertyName);
-		}
-		return null;
-	}
-
-	/**
-	 * 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)
-	 * 
-	 * @return
-	 */
-	private String getSpec() {
-		return getNodeName();
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	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$
-			String spec = getSpec();
-			String result = map.getProperty(spec, "tagInfo"); //$NON-NLS-1$
-			return result;
-			// bug88336 no need to restore markers
-			// return StringUtils.restoreMarkers(result); // return tag info
-		}
-		return null;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getTeiclass() {
-		return teiclass;
-	}
-
-	/**
-	 * Gets the variables.
-	 * 
-	 * @return Returns a List
-	 */
-	public List getVariables() {
-		if (variables == null) {
-			variables = new ArrayList();
-		}
-		return variables;
-	}
-
-	/**
-	 * 
-	 * @param newBodycontent
-	 *            java.lang.String
-	 */
-	public void setBodycontent(String newBodycontent) {
-		bodycontent = newBodycontent;
-	}
-
-	/**
-	 * Sets the description.
-	 * 
-	 * @param description
-	 *            The description to set
-	 */
-	public void setDescription(String description) {
-		this.description = description;
-	}
-
-	/**
-	 * Sets the displayName.
-	 * 
-	 * @param displayName
-	 *            The displayName to set
-	 */
-	public void setDisplayName(String displayName) {
-		this.displayName = displayName;
-	}
-
-	/**
-	 * @param example
-	 *            The example to set.
-	 */
-	public void setExample(String example) {
-		fExample = example;
-	}
-
-	/**
-	 * Sets the largeIcon.
-	 * 
-	 * @param largeIcon
-	 *            The largeIcon to set
-	 */
-	public void setLargeIcon(String largeIcon) {
-		this.largeIcon = largeIcon;
-	}
-
-	public void setNodeName(String string) {
-		nodeName = string;
-	}
-
-	/**
-	 * @param path
-	 *            The path to set.
-	 */
-	public void setPath(String path) {
-		fPath = path;
-	}
-
-	/**
-	 * Sets the smallIcon.
-	 * 
-	 * @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
-	 */
-	public void setTagclass(String newTagclass) {
-		tagclass = newTagclass;
-	}
-
-	/**
-	 * 
-	 * @param newTeiclass
-	 *            java.lang.String
-	 */
-	public void setTeiclass(String newTeiclass) {
-		teiclass = newTeiclass;
-	}
-
-	/**
-	 * Sets the variables.
-	 * 
-	 * @param variables
-	 *            The variables to set
-	 */
-	public void setVariables(List variables) {
-		this.variables = variables;
-	}
-
-	/**
-	 * supports method
-	 * 
-	 * @return boolean
-	 * 
-	 * Returns true if the CMNode supports a specified property
-	 * 
-	 */
-	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$
-	}
-
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append("\n\t " + super.toString()); //$NON-NLS-1$
-		buffer.append("\n\t name:" + StringUtils.escape(getNodeName())); //$NON-NLS-1$
-		buffer.append("\n\t tag class:" + StringUtils.escape(getTagclass())); //$NON-NLS-1$
-		buffer.append("\n\t tei class:" + StringUtils.escape(getTeiclass())); //$NON-NLS-1$
-		buffer.append("\n\t body content:" + StringUtils.escape(getBodycontent())); //$NON-NLS-1$
-		buffer.append("\n\t description (info):" + StringUtils.escape(getDescription())); //$NON-NLS-1$
-		buffer.append("\n\t attributes:"); //$NON-NLS-1$
-		CMNamedNodeMap attributes = getAttributes();
-		for (int i = 0; i < attributes.getLength(); i++) {
-			buffer.append("\n\t\t" + StringUtils.replace(attributes.item(i).toString(), "\n", "\n\t\t")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		buffer.append("\n\t variables:"); //$NON-NLS-1$
-		for (int i = 0; i < getVariables().size(); i++) {
-			buffer.append("\n\t\t" + StringUtils.replace(getVariables().get(i).toString(), "\n", "\n\t\t")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		return buffer.toString();
-	}
-
-	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
deleted file mode 100644
index b8f378c..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMNamedNodeMapImpl.java
+++ /dev/null
@@ -1,85 +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.core.internal.contentmodel.tld;
-
-
-
-import java.util.Hashtable;
-import java.util.Iterator;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-public class CMNamedNodeMapImpl implements CMNamedNodeMap {
-
-	public static CMNamedNodeMapImpl EMPTY_NAMED_NODE_MAP = new CMNamedNodeMapImpl();
-	protected Hashtable table = new Hashtable();
-
-	/**
-	 * CMNamedNodeMapImpl constructor comment.
-	 */
-	public CMNamedNodeMapImpl() {
-		super();
-	}
-
-	Hashtable getHashtable() {
-		return table;
-	}
-
-	/**
-	 * getLength method
-	 * @return int
-	 */
-	public int getLength() {
-		return table.size();
-	}
-
-	/**
-	 * getNamedItem method
-	 * @return CMNode
-	 * @param name java.lang.String
-	 */
-	public CMNode getNamedItem(String name) {
-		return (CMNode) table.get(name);
-	}
-
-	/**
-	 * item method
-	 * @return CMNode
-	 * @param index int
-	 */
-	public CMNode item(int index) {
-		Object result = null;
-		int size = table.size();
-		if (index < size) {
-			Iterator values = iterator();
-			for (int i = 0; i <= index; i++) {
-				result = values.next();
-			}
-		}
-		return (CMNode) result;
-	}
-
-	public Iterator iterator() {
-		return table.values().iterator();
-	}
-
-	/**
-	 * getNamedItem method
-	 * @return
-	 * @param name java.lang.String
-	 * @param aNode CMNode
-	 */
-	public void setNamedItem(String name, CMNode aNode) {
-		if (name != null && aNode != null)
-			table.put(name, aNode);
-	}
-}
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
deleted file mode 100644
index 318c617..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMNodeListImpl.java
+++ /dev/null
@@ -1,63 +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.core.internal.contentmodel.tld;
-
-
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-
-public class CMNodeListImpl implements CMNodeList {
-	static CMNodeListImpl EMPTY_NODE_LIST = new CMNodeListImpl(Collections.EMPTY_LIST);
-	protected List list;
-
-	public CMNodeListImpl() {
-		this(new ArrayList());
-	}
-
-	public CMNodeListImpl(List list) {
-		this.list = list;
-	}
-
-	public void appendItem(CMNode node) {
-		list.add(node);
-	}
-
-	/**
-	 * getLength method
-	 * @return int
-	 */
-	public int getLength() {
-		return list.size();
-	}
-
-	public List getList() {
-		return list;
-	}
-
-	/**
-	 * item method
-	 * @return CMNode
-	 * @param index int
-	 */
-	public CMNode item(int index) {
-		return (CMNode) list.get(index);
-	}
-
-	public Iterator iterator() {
-		return list.iterator();
-	}
-}
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
deleted file mode 100644
index 8e4ef9d..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDCMDocumentManager.java
+++ /dev/null
@@ -1,1135 +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.core.internal.contentmodel.tld;
-
-import java.io.File;
-import java.lang.ref.Reference;
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-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.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;
-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.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.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.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.ITextRegionList;
-import org.eclipse.wst.sse.core.internal.util.Assert;
-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.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-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) {
-			if (getParser() == null)
-				return;
-			if (getParser().getBlockMarker(tagnameNS) == null) {
-				getParser().addBlockMarker(new BlockMarker(tagnameNS, marker, DOMRegionContext.BLOCK_TEXT, true, false));
-				if (_debug) {
-					System.out.println("TLDCMDocumentManager added block marker: " + tagnameNS + "@" + marker.getStartOffset()); //$NON-NLS-2$//$NON-NLS-1$
-				}
-			}
-		}
-
-		protected void addTaglibTracker(String prefix, String uri, IStructuredDocumentRegion anchorStructuredDocumentRegion, CMDocument tldCMDocument) {
-			getTaglibTrackers().add(new TaglibTracker(uri, prefix, tldCMDocument, anchorStructuredDocumentRegion));
-		}
-
-		/**
-		 * Enables a TLD owning the given prefix loaded from the given URI at
-		 * the anchorStructuredDocumentRegion. The list of
-		 * additionalCMDocuments will claim to not know any of its tags at
-		 * positions earlier than that IStructuredDocumentRegion's position.
-		 * 
-		 * For taglib directives, the taglib is the anchor while taglibs
-		 * registered through include directives use the parent document's
-		 * include directive as their anchor.
-		 * 
-		 * @param prefix
-		 * @param uri
-		 * @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
-			CMDocument tld = getCMDocument(uri);
-			if (tld == null || !(tld instanceof TLDDocument)) {
-				if (_debug) {
-					System.out.println("TLDCMDocumentManager failed to create a CMDocument for " + uri); //$NON-NLS-1$
-				}
-				return;
-			}
-			registerTaglib(prefix, uri, anchorStructuredDocumentRegion, tld);
-		}
-
-		/**
-		 * Enables a TLD owning the given prefix loaded from the given URI at
-		 * the anchorStructuredDocumentRegion. The list of
-		 * additionalCMDocuments will claim to not know any of its tags at
-		 * positions earlier than that IStructuredDocumentRegion's position.
-		 * 
-		 * For taglib directives, the taglib is the anchor while taglibs
-		 * registered through include directives use the parent document's
-		 * include directive as their anchor.
-		 * 
-		 * @param prefix
-		 * @param uri
-		 * @param taglibStructuredDocumentRegion
-		 */
-		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$
-			}
-		}
-
-		public void nodeParsed(IStructuredDocumentRegion aCoreStructuredDocumentRegion) {
-			if (!preludesHandled) {
-				handlePreludes();
-				preludesHandled = true;
-			}
-			// 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);
-						}
-					}
-				}
-				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) {
-				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);
-				}
-			}
-		}
-
-		protected void processInclude(IStructuredDocumentRegion aCoreStructuredDocumentRegion) {
-			processInclude(aCoreStructuredDocumentRegion, aCoreStructuredDocumentRegion, getParser());
-		}
-
-		/**
-		 * Process an include directive found by the textSource parser and
-		 * anchor any taglibs found within at the
-		 * 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();
-			String includedFile = null;
-			boolean isFilename = false;
-			try {
-				for (int i = 0; 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)) {
-							isFilename = true;
-						}
-						else {
-							isFilename = false;
-						}
-					}
-					else if (isFilename && region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-						includedFile = textSource.getText(includeStructuredDocumentRegion.getStartOffset(region), region.getTextLength());
-						isFilename = false;
-					}
-				}
-			}
-			catch (StringIndexOutOfBoundsException sioobExc) {
-				// nothing to be done
-				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 {
-					if (getIncludes().isEmpty())
-						filePath = TaglibController.getFileBuffer(TLDCMDocumentManager.this).getLocation().removeLastSegments(1).append(includedFile);
-					else
-						filePath = ((IPath) getIncludes().peek()).removeLastSegments(1).append(includedFile);
-				}
-				// check for "loops"
-				if (filePath != null && !getIncludes().contains(filePath) && !filePath.equals(TaglibController.getFileBuffer(TLDCMDocumentManager.this).getLocation())) {
-					/*
-					 * Prevent slow performance when editing scriptlet part of
-					 * the JSP by only processing includes if they've been
-					 * modified. The IncludeHelper remembers any CMDocuments
-					 * created from the files it parses. Caching the URI and
-					 * prefix/tagdir allows us to just enable the CMDocument
-					 * when the previously parsed files.
-					 * 
-					 * REMAINING PROBLEM: fTLDCMReferencesMap does not map
-					 * from a fragment's path and also include all of the CM
-					 * references in fragments that *it* includes. The
-					 * fragments that it includes won't have its CM references
-					 * loaded, but then we'd need to record the URI and
-					 * location of the included fragment to resolve them
-					 * correctly, modifying enableTaglib() to also take a base
-					 * path and resolve the URI appropriately.
-					 */
-					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.
-							 */
-						}
-						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();
-					}
-					else {
-						// Add from that saved list of uris/prefixes/documents
-						List references = (List) fTLDCMReferencesMap.get(filePath);
-						for (int i = 0; references != null && i < references.size(); i++) {
-							TLDCMDocumentReference reference = (TLDCMDocumentReference) references.get(i);
-							/*
-							 * The uri might not be resolved properly if
-							 * relative to the JSP fragment.
-							 */
-							enableTaglibFromURI(reference.prefix, reference.uri, includeStructuredDocumentRegion);
-							getParser().addNestablePrefix(new TagMarker(reference.prefix + ":")); //$NON-NLS-1$
-						}
-					}
-				}
-				else {
-					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();
-			String uri = null;
-			String prefix = null;
-			boolean taglib = false;
-			try {
-				// 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.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 (!bannedPrefixes.contains(prefix))
-								taglib = true;
-						}
-						else {
-							prefix = null;
-							taglib = false;
-						}
-					}
-					else if (taglib && region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-						if (prefix != null && prefix.length() > 0) {
-							uri = textSource.getText(taglibStructuredDocumentRegion.getStartOffset(region), region.getTextLength());
-							uri = StringUtils.strip(uri);
-							if (uri != null && uri.length() > 0) {
-								if (uri.startsWith(URN_TLD)) {
-									uri = uri.substring(URN_TLD.length());
-								}
-								else if (uri.startsWith(URN_TAGDIR)) {
-									uri = uri.substring(URN_TAGDIR.length());
-								}
-								if (anchorStructuredDocumentRegion == null) {
-									enableTags(prefix, uri, taglibStructuredDocumentRegion);
-								}
-								else {
-									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();
-			String uri = null;
-			String prefix = null;
-			String tagdir = null;
-			String attrName = null;
-			try {
-				for (int i = 0; i < regions.size(); i++) {
-					ITextRegion region = regions.get(i);
-					// remember attribute name
-					int startOffset = taglibStructuredDocumentRegion.getStartOffset(region);
-					int textLength = region.getTextLength();
-					if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-						// String name = textSource.getText(startOffset,
-						// textLength);
-						if (textSource.regionMatches(startOffset, textLength, JSP11TLDNames.PREFIX)) {
-							attrName = JSP11TLDNames.PREFIX;
-						}
-						else if (textSource.regionMatches(startOffset, textLength, JSP12TLDNames.URI)) {
-							attrName = JSP11TLDNames.URI;
-						}
-						else if (textSource.regionMatches(startOffset, textLength, JSP20TLDNames.TAGDIR)) {
-							attrName = JSP20TLDNames.TAGDIR;
-						}
-						else {
-							attrName = null;
-						}
-					}
-					// process value
-					else if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-						if (JSP11TLDNames.PREFIX.equals(attrName))
-							prefix = StringUtils.strip(textSource.getText(startOffset, textLength));
-						else if (JSP11TLDNames.URI.equals(attrName))
-							uri = StringUtils.strip(textSource.getText(startOffset, textLength));
-						else if (JSP20TLDNames.TAGDIR.equals(attrName))
-							tagdir = StringUtils.strip(textSource.getText(startOffset, textLength));
-					}
-				}
-			}
-			catch (StringIndexOutOfBoundsException sioobExc) {
-				// nothing to be done
-				uri = null;
-				prefix = null;
-			}
-			if (uri != null && prefix != null && uri.length() > 0 && prefix.length() > 0) {
-				if (anchorStructuredDocumentRegion == null)
-					enableTaglibFromURI(prefix, StringUtils.strip(uri), taglibStructuredDocumentRegion);
-				else
-					enableTaglibFromURI(prefix, uri, anchorStructuredDocumentRegion);
-			}
-			else if (tagdir != null && prefix != null && tagdir.length() > 0 && prefix.length() > 0) {
-				if (anchorStructuredDocumentRegion == null)
-					enableTagsInDir(StringUtils.strip(prefix), StringUtils.strip(tagdir), taglibStructuredDocumentRegion);
-				else
-					enableTagsInDir(StringUtils.strip(prefix), StringUtils.strip(tagdir), anchorStructuredDocumentRegion);
-			}
-		}
-
-		private void registerTaglib(String prefix, String uri, IStructuredDocumentRegion anchorStructuredDocumentRegion, CMDocument tld) {
-			CMNamedNodeMap elements = tld.getElements();
-			/*
-			 * Go through the CMDocument for any tags that must be marked as
-			 * block tags starting at the anchoring IStructuredDocumentRegion.
-			 * As the document is edited and the IStructuredDocumentRegion
-			 * moved around, the block tag enablement will automatically
-			 * follow it.
-			 */
-			for (int i = 0; i < elements.getLength(); i++) {
-				TLDElementDeclaration ed = (TLDElementDeclaration) elements.item(i);
-				if (ed.getBodycontent() == JSP12TLDNames.CONTENT_TAGDEPENDENT)
-					addBlockTag(prefix + ":" + ed.getNodeName(), anchorStructuredDocumentRegion); //$NON-NLS-1$
-			}
-			/*
-			 * Since modifications to StructuredDocumentRegions adjacent to a
-			 * taglib directive can cause that IStructuredDocumentRegion to be
-			 * reported, filter out any duplicated URIs. When the taglib is
-			 * actually modified, a full rebuild will occur and no duplicates
-			 * will/should be found.
-			 */
-			boolean doTrack = true;
-			List trackers = getTaglibTrackers();
-			for (int i = 0; i < trackers.size(); i++) {
-				TaglibTracker tracker = (TaglibTracker) trackers.get(i);
-				if (tracker.getPrefix().equals(prefix) && tracker.getURI().equals(uri)) {
-					doTrack = false;
-				}
-			}
-			if (doTrack) {
-				addTaglibTracker(prefix, uri, anchorStructuredDocumentRegion, tld);
-			}
-		}
-
-		private void resetBlockTags() {
-			if (getParser() == null)
-				return;
-			Iterator names = getParser().getBlockMarkers().iterator();
-			while (names.hasNext()) {
-				BlockMarker marker = (BlockMarker) names.next();
-				if (!marker.isGlobal() && marker.getContext() == DOMRegionContext.BLOCK_TEXT) {
-					if (_debug) {
-						System.out.println("TLDCMDocumentManager removing block tag named: " + marker.getTagName()); //$NON-NLS-1$
-					}
-					names.remove();
-				}
-			}
-		}
-
-		public void resetNodes() {
-			if (Debug.debugTaglibs)
-				System.out.println(getClass().getName() + ": resetting"); //$NON-NLS-1$
-			getIncludes().clear();
-			resetBlockTags();
-			resetTaglibTrackers();
-		}
-
-		public void setStructuredDocument(IStructuredDocument newDocument) {
-			Assert.isTrue(newDocument != null, "null document"); //$NON-NLS-1$
-			Assert.isTrue(newDocument.getParser() != null, "null document parser"); //$NON-NLS-1$
-			Assert.isTrue(newDocument.getParser() instanceof JSPSourceParser, "can only listen to document with a JSPSourceParser"); //$NON-NLS-1$
-			getSourceParser().removeStructuredDocumentRegionHandler(this);
-			setSourceParser((JSPSourceParser) newDocument.getParser());
-			getSourceParser().addStructuredDocumentRegionHandler(this);
-		}
-	}
-
-	protected class IncludeHelper extends DirectiveStructuredDocumentRegionHandler {
-		protected IStructuredDocumentRegion fAnchor = null;
-		protected JSPSourceParser fLocalParser = null;
-		protected JSPSourceParser fParentParser = null;
-		List taglibReferences = null;
-
-		public IncludeHelper(IStructuredDocumentRegion anchor, JSPSourceParser rootParser) {
-			super();
-			fAnchor = anchor;
-			fParentParser = rootParser;
-			taglibReferences = new ArrayList(0);
-		}
-
-		protected void addTaglibTracker(String prefix, String uri, IStructuredDocumentRegion anchorStructuredDocumentRegion, CMDocument tldCMDocument) {
-			super.addTaglibTracker(prefix, uri, anchorStructuredDocumentRegion, tldCMDocument);
-			TLDCMDocumentReference reference = new TLDCMDocumentReference();
-			reference.prefix = prefix;
-			reference.uri = uri;
-			taglibReferences.add(reference);
-		}
-
-		protected String getContents(IPath filePath) {
-			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);
-			}
-		}
-
-		/**
-		 * @param path -
-		 *            the fullpath for the resource to be parsed
-		 */
-		void parse(IPath path) {
-			JSPSourceParser p = new JSPSourceParser();
-			fLocalParser = p;
-			List blockTags = fParentParser.getBlockMarkers();
-			String s = getContents(path);
-			fLocalParser.addStructuredDocumentRegionHandler(this);
-			fLocalParser.reset(s);
-			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()));
-			}
-			// force parse
-			fLocalParser.getDocumentRegions();
-			fLocalParser = null;
-		}
-
-		public void resetNodes() {
-		}
-	}
-
-	/**
-	 * An entry in the shared cache map
-	 */
-	static class TLDCacheEntry {
-		CMDocument document;
-		long modificationStamp;
-		int referenceCount;
-	}
-
-	private static class TLDCMDocumentDescriptor {
-		Object cacheKey;
-		CMDocument document;
-
-		TLDCMDocumentDescriptor() {
-			super();
-		}
-	}
-
-	private class TLDCMDocumentReference {
-		String prefix;
-		String uri;
-	}
-
-	static final boolean _debug = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/tldcmdocument/manager")); //$NON-NLS-1$ //$NON-NLS-2$
-	static final boolean _debugCache = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/tldcmdocument/cache")); //$NON-NLS-1$ //$NON-NLS-2$
-	// will hold the prefixes banned by the specification; taglibs may not use
-	// them
-	protected static List bannedPrefixes = null;
-
-	private static Hashtable fCache = null;
-	String XMLNS = "xmlns:"; //$NON-NLS-1$ 
-	protected String URN_TAGDIR = "urn:jsptagdir:";
-	protected String URN_TLD = "urn:jsptld:";
-
-	int XMLNS_LENGTH = XMLNS.length();
-
-	static {
-		bannedPrefixes = new ArrayList(7);
-		bannedPrefixes.add("jsp"); //$NON-NLS-1$
-		bannedPrefixes.add("jspx"); //$NON-NLS-1$
-		bannedPrefixes.add("java"); //$NON-NLS-1$
-		bannedPrefixes.add("javax"); //$NON-NLS-1$
-		bannedPrefixes.add("servlet"); //$NON-NLS-1$
-		bannedPrefixes.add("sun"); //$NON-NLS-1$
-		bannedPrefixes.add("sunw"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Gets all of the known documents.
-	 * 
-	 * @return Returns a Hashtable of either TLDCacheEntrys or WeakReferences
-	 *         to TLD CMDocuments
-	 */
-	public static Hashtable getSharedDocumentCache() {
-		if (fCache == null) {
-			fCache = new Hashtable();
-		}
-		return fCache;
-	}
-
-
-	public static Object getUniqueIdentifier(ITaglibRecord reference) {
-		if (reference == null)
-			return null;
-		Object identifier = null;
-		switch (reference.getRecordType()) {
-			case (ITaglibRecord.TLD) : {
-				ITLDRecord record = (ITLDRecord) reference;
-				identifier = record.getPath();
-			}
-				break;
-			case (ITaglibRecord.JAR) : {
-				IJarRecord record = (IJarRecord) reference;
-				identifier = record.getLocation();
-			}
-				break;
-			case (ITaglibRecord.TAGDIR) : {
-				ITagDirRecord record = (ITagDirRecord) reference;
-				identifier = record.getPath();
-			}
-				break;
-			case (ITaglibRecord.URL) : {
-				IURLRecord record = (IURLRecord) reference;
-				identifier = record.getURL();
-			}
-				break;
-			default :
-				identifier = reference;
-				break;
-		}
-		return identifier;
-	}
-
-	private CMDocumentFactoryTLD fCMDocumentBuilder = null;
-
-	private DirectiveStructuredDocumentRegionHandler fDirectiveHandler = null;
-
-	/**
-	 * The locally-know list of CMDocuments
-	 */
-	private Hashtable fDocuments = null;
-
-	// timestamp cache to prevent excessive reparsing
-	// of included files
-	// IPath (filepath) > Long (modification stamp)
-	HashMap fInclude2TimestampMap = new HashMap();
-
-	private Stack fIncludes = null;
-
-	private JSPSourceParser fParser = null;
-
-	private List fTaglibTrackers = null;
-
-	Map fTLDCMReferencesMap = new HashMap();
-	boolean fProcessIncludes = true;
-	boolean preludesHandled = false;
-
-	public TLDCMDocumentManager() {
-		super();
-	}
-
-	public void clearCache() {
-		if (_debugCache) {
-			System.out.println("TLDCMDocumentManager cleared its private CMDocument cache"); //$NON-NLS-1$
-		}
-		for (Iterator iter = getDocuments().keySet().iterator(); iter.hasNext();) {
-			Object key = iter.next();
-			synchronized (getSharedDocumentCache()) {
-				Object o = getSharedDocumentCache().get(key);
-				if (o instanceof TLDCacheEntry) {
-					TLDCacheEntry entry = (TLDCacheEntry) o;
-					entry.referenceCount--;
-					if (entry.referenceCount <= 0) {
-						getSharedDocumentCache().put(key, new WeakReference(entry));
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * 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
-	 */
-	protected Object getCacheKey(String uri) {
-		ITaglibRecord record = TaglibIndex.resolve(getCurrentParserPath().toString(), uri, false);
-		if (record != null) {
-			return getUniqueIdentifier(record);
-		}
-		String location = URIResolverPlugin.createResolver().resolve(getCurrentBaseLocation().toString(), null, uri);
-		return location;
-	}
-
-	/**
-	 * Return the CMDocument at the uri (cached)
-	 */
-	protected CMDocument getCMDocument(String uri) {
-		if (uri == null || uri.length() == 0)
-			return null;
-		String reference = uri;
-		Object cacheKey = getCacheKey(reference);
-		long lastModified = getModificationStamp(reference);
-		CMDocument doc = (CMDocument) getDocuments().get(cacheKey);
-		if (doc == null) {
-			/*
-			 * If hasn't been moved into the local table, do so and increment
-			 * the count. A local URI reference can be different depending on
-			 * the file from which it was referenced. Use a computed key to
-			 * keep them straight.
-			 */
-			Object o = getSharedDocumentCache().get(cacheKey);
-			if (o != null) {
-				if (o instanceof TLDCacheEntry) {
-					TLDCacheEntry entry = (TLDCacheEntry) o;
-					if (_debugCache) {
-						System.out.println("TLDCMDocument cache hit on " + cacheKey);
-					}
-					if (entry != null && entry.modificationStamp != IResource.NULL_STAMP && entry.modificationStamp >= lastModified) {
-						doc = entry.document;
-						entry.referenceCount++;
-					}
-					else {
-						getSharedDocumentCache().remove(cacheKey);
-					}
-				}
-				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);
-					}
-				}
-			}
-			/* No document was found cached, create a new one and share it */
-			if (doc == null) {
-				if (_debugCache) {
-					System.out.println("TLDCMDocument cache miss on " + cacheKey);
-				}
-				TLDCMDocumentDescriptor descriptor = loadTaglib(reference);
-				if (descriptor != null) {
-					TLDCacheEntry entry = new TLDCacheEntry();
-					doc = entry.document = descriptor.document;
-					entry.referenceCount = 1;
-					entry.modificationStamp = getModificationStamp(reference);
-					getSharedDocumentCache().put(cacheKey, entry);
-				}
-			}
-			if (doc != null) {
-				getDocuments().put(cacheKey, doc);
-			}
-		}
-		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.
-	 * 
-	 * @return Returns a CMDocumentFactoryTLD, since it has more builder
-	 *         methods
-	 */
-	protected CMDocumentFactoryTLD getCMDocumentBuilder() {
-		if (fCMDocumentBuilder == null)
-			fCMDocumentBuilder = new CMDocumentFactoryTLD();
-		return fCMDocumentBuilder;
-	}
-
-	public List getCMDocumentTrackers(int offset) {
-		List validDocs = new ArrayList();
-		Iterator alldocs = getTaglibTrackers().iterator();
-		while (alldocs.hasNext()) {
-			TaglibTracker aTracker = (TaglibTracker) alldocs.next();
-			if (aTracker.getStructuredDocumentRegion().getStartOffset() < offset || offset < 0) {
-				validDocs.add(aTracker);
-			}
-		}
-		return validDocs;
-	}
-
-	public List getCMDocumentTrackers(String prefix, int offset) {
-		List validDocs = new ArrayList();
-		Iterator alldocs = getTaglibTrackers().iterator();
-		while (alldocs.hasNext()) {
-			TaglibTracker aTracker = (TaglibTracker) alldocs.next();
-			if ((aTracker.getStructuredDocumentRegion().getStartOffset() < offset || offset < 0) && aTracker.getPrefix().equals(prefix)) {
-				validDocs.add(aTracker);
-			}
-		}
-		return validDocs;
-	}
-
-	/**
-	 * Return the filesystem location in the current parser. This method is
-	 * called while recursing through included fragments, so it much check the
-	 * include stack. The filesystem location is needed for common URI
-	 * resolution in case the Taglib Index doesn't know the URI being loaded.
-	 * 
-	 * @return
-	 */
-	IPath getCurrentBaseLocation() {
-		IPath baseLocation = null;
-		IPath path = getCurrentParserPath();
-		baseLocation = ResourcesPlugin.getWorkspace().getRoot().getFile(path).getLocation();
-		if (baseLocation == null) {
-			baseLocation = path;
-		}
-		return baseLocation;
-	}
-
-	/**
-	 * Return the path used in the current parser. This method is called while
-	 * recursing through included fragments, so it much check the include
-	 * stack.
-	 * 
-	 * @return
-	 */
-	IPath getCurrentParserPath() {
-		IPath path = null;
-		if (!getIncludes().isEmpty()) {
-			path = (IPath) getIncludes().peek();
-		}
-		else {
-			path = TaglibController.getFileBuffer(this).getLocation();
-		}
-
-		return path;
-	}
-
-	protected DirectiveStructuredDocumentRegionHandler getDirectiveStructuredDocumentRegionHandler() {
-		if (fDirectiveHandler == null)
-			fDirectiveHandler = new DirectiveStructuredDocumentRegionHandler();
-		return fDirectiveHandler;
-	}
-
-	/**
-	 * Gets the documents.
-	 * 
-	 * @return Returns a java.util.Hashtable
-	 */
-	public Hashtable getDocuments() {
-		if (fDocuments == null)
-			fDocuments = new Hashtable();
-		return fDocuments;
-	}
-
-	/**
-	 * Gets the includes.
-	 * 
-	 * @return Returns a Stack
-	 */
-	protected Stack getIncludes() {
-		if (fIncludes == null)
-			fIncludes = new Stack();
-		return fIncludes;
-	}
-
-	JSPSourceParser getParser() {
-		return fParser;
-	}
-
-	public JSPSourceParser getSourceParser() {
-		return fParser;
-	}
-
-	public StructuredDocumentRegionHandler getStructuredDocumentRegionHandler() {
-		return getDirectiveStructuredDocumentRegionHandler();
-	}
-
-	/**
-	 * 
-	 * @return java.util.List
-	 */
-	public List getTaglibTrackers() {
-		if (fTaglibTrackers == null)
-			fTaglibTrackers = new ArrayList();
-		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
-	 */
-	boolean hasAnyIncludeBeenModified(IPath filePath) {
-		boolean result = false;
-		// check the top level
-		if (hasBeenModified(filePath)) {
-			result = true;
-		}
-		else {
-			// check all includees
-			Iterator iter = fInclude2TimestampMap.keySet().iterator();
-			while (iter.hasNext()) {
-				if (hasBeenModified((IPath) iter.next())) {
-					result = true;
-					break;
-				}
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * @param filename
-	 * @return
-	 */
-	boolean hasBeenModified(IPath filePath) {
-		boolean result = false;
-		// quick filename/timestamp cache check here...
-		IFile f = null;
-		if (f == null && filePath.segmentCount() > 1) {
-			f = ResourcesPlugin.getWorkspace().getRoot().getFile(filePath);
-		}
-		if (f != null && f.exists()) {
-			Long currentStamp = new Long(f.getModificationStamp());
-			Object o = fInclude2TimestampMap.get(filePath);
-			if (o != null) {
-				Long previousStamp = (Long) o;
-				// stamps don't match, file changed
-				if (currentStamp.longValue() != previousStamp.longValue()) {
-					result = true;
-					// store for next time
-					fInclude2TimestampMap.put(filePath, currentStamp);
-				}
-			}
-			else {
-				// return true, since we've not encountered this file yet.
-				result = true;
-				// store for next time
-				fInclude2TimestampMap.put(filePath, currentStamp);
-			}
-		}
-		return result;
-	}
-
-	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();
-				}
-			}
-		}
-	}
-
-	/**
-	 * Loads the taglib from the specified URI. It must point to a valid
-	 * taglib descriptor to work.
-	 */
-	protected TLDCMDocumentDescriptor loadTaglib(String uri) {
-		TLDCMDocumentDescriptor entry = null;
-		IPath currentPath = getCurrentParserPath();
-		if (currentPath != null) {
-			CMDocument document = null;
-			ITaglibRecord record = TaglibIndex.resolve(currentPath.toString(), uri, false);
-			if (record != null) {
-				document = getCMDocumentBuilder().createCMDocument(record);
-				if (document != null) {
-					entry = new TLDCMDocumentDescriptor();
-					entry.document = document;
-					entry.cacheKey = getUniqueIdentifier(record);
-				}
-			}
-			else {
-				/* Not a very-often used code path (we hope) */
-				IPath currentBaseLocation = getCurrentBaseLocation();
-				if (currentBaseLocation != null) {
-					String location = URIResolverPlugin.createResolver().resolve(currentBaseLocation.toString(), null, uri);
-					if (location != null) {
-						if (_debug) {
-							System.out.println("Loading tags from " + uri + " at " + location); //$NON-NLS-2$//$NON-NLS-1$
-						}
-						document = getCMDocumentBuilder().createCMDocument(location);
-						entry = new TLDCMDocumentDescriptor();
-						entry.document = document;
-						entry.cacheKey = location;
-					}
-				}
-			}
-		}
-		return entry;
-	}
-
-	protected void resetTaglibTrackers() {
-		if (_debug) {
-			System.out.println("TLDCMDocumentManager cleared its taglib trackers\n"); //$NON-NLS-1$
-		}
-		preludesHandled = false;
-		getTaglibTrackers().clear();
-	}
-
-	public void setSourceParser(JSPSourceParser parser) {
-		if (fParser != null)
-			fParser.removeStructuredDocumentRegionHandler(getStructuredDocumentRegionHandler());
-		fParser = parser;
-		if (fParser != null)
-			fParser.addStructuredDocumentRegionHandler(getStructuredDocumentRegionHandler());
-	}
-}
\ No newline at end of file
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
deleted file mode 100644
index 364711b..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDFunctionImpl.java
+++ /dev/null
@@ -1,151 +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.core.internal.contentmodel.tld;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDFunction;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-
-public class TLDFunctionImpl implements TLDFunction {
-	private String fClassName = null;
-	private String fDescription = null;
-	private String fDisplayName = null;
-	private String fExample = null;
-	private List fExtensions = new ArrayList(0);
-	private String fIcon = null;
-	private String fName = null;
-
-	private CMDocument fOwnerDocument = null;
-	private String fSignature = null;
-
-	public TLDFunctionImpl(CMDocument owner) {
-		super();
-		fOwnerDocument = owner;
-	}
-
-	/**
-	 * @return Returns the className.
-	 */
-	public String getClassName() {
-		return fClassName;
-	}
-	/**
-	 * @return Returns the description.
-	 */
-	public String getDescription() {
-		return fDescription;
-	}
-
-	/**
-	 * @return Returns the displayName.
-	 */
-	public String getDisplayName() {
-		return fDisplayName;
-	}
-
-	/**
-	 * @return Returns the example.
-	 */
-	public String getExample() {
-		return fExample;
-	}
-
-	/**
-	 * @return Returns the extensions.
-	 */
-	public List getExtensions() {
-		return fExtensions;
-	}
-
-	/**
-	 * @return Returns the icon.
-	 */
-	public String getIcon() {
-		return fIcon;
-	}
-
-	/**
-	 * @return Returns the name.
-	 */
-	public String getName() {
-		return fName;
-	}
-
-	/**
-	 * @return Returns the ownerDocument.
-	 */
-	public CMDocument getOwnerDocument() {
-		return fOwnerDocument;
-	}
-
-	/**
-	 * @return Returns the signature.
-	 */
-	public String getSignature() {
-		return fSignature;
-	}
-
-	/**
-	 * @param className
-	 *            The className to set.
-	 */
-	public void setClassName(String className) {
-		fClassName = className;
-	}
-	/**
-	 * @param description The description to set.
-	 */
-	public void setDescription(String description) {
-		fDescription = description;
-	}
-
-	/**
-	 * @param displayName
-	 *            The displayName to set.
-	 */
-	public void setDisplayName(String displayName) {
-		fDisplayName = displayName;
-	}
-
-	/**
-	 * @param example
-	 *            The example to set.
-	 */
-	public void setExample(String example) {
-		fExample = example;
-	}
-
-	/**
-	 * @param icon
-	 *            The icon to set.
-	 */
-	public void setIcon(String icon) {
-		fIcon = icon;
-	}
-
-	/**
-	 * @param name
-	 *            The name to set.
-	 */
-	public void setName(String name) {
-		fName = name;
-	}
-
-	/**
-	 * @param signature
-	 *            The signature to set.
-	 */
-	public void setSignature(String signature) {
-		fSignature = signature;
-	}
-}
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
deleted file mode 100644
index c1cdfe6..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDInitParamImpl.java
+++ /dev/null
@@ -1,64 +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
- *******************************************************************************/
-/*
- * Created on Sep 9, 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.core.internal.contentmodel.tld;
-
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDInitParam;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-
-
-public class TLDInitParamImpl implements TLDInitParam {
-	private String description;
-	private String name;
-	private String value;
-
-	public TLDInitParamImpl() {
-		super();
-	}
-
-	public String getDescription() {
-		return description;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public String getValue() {
-		return value;
-	}
-
-	public void setDescription(String description) {
-		this.description = description;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public void setValue(String value) {
-		this.value = value;
-	}
-
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append(super.toString());
-		buffer.append("\n\t name:" + StringUtils.escape(getName())); //$NON-NLS-1$
-		buffer.append("\n\t description:" + StringUtils.escape(getDescription())); //$NON-NLS-1$
-		buffer.append("\n\t value:" + StringUtils.escape(getValue())); //$NON-NLS-1$
-		return buffer.toString();
-	}
-}
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
deleted file mode 100644
index 24ef99c..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDListenerImpl.java
+++ /dev/null
@@ -1,40 +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
- *******************************************************************************/
-/*
- * Created on Sep 9, 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.core.internal.contentmodel.tld;
-
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDListener;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-
-
-public class TLDListenerImpl implements TLDListener {
-	protected String listenerClass;
-
-	public String getListenerClass() {
-		return listenerClass;
-	}
-
-	public void setListenerClass(String className) {
-		listenerClass = className;
-	}
-
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append(super.toString());
-		buffer.append("\n\t listener class:" + StringUtils.escape(getListenerClass())); //$NON-NLS-1$
-		return buffer.toString();
-	}
-}
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
deleted file mode 100644
index 446f743..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDValidatorImpl.java
+++ /dev/null
@@ -1,58 +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
- *******************************************************************************/
-/*
- * Created on Sep 9, 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.core.internal.contentmodel.tld;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDValidator;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-
-
-public class TLDValidatorImpl implements TLDValidator {
-	protected List initParams;
-	protected String validatorClass;
-
-	public List getInitParams() {
-		if (initParams == null)
-			initParams = new ArrayList();
-		return initParams;
-	}
-
-	public String getValidatorClass() {
-		return validatorClass;
-	}
-
-	public void setInitParams(List initParams) {
-		this.initParams = initParams;
-	}
-
-	public void setValidatorClass(String validatorClass) {
-		this.validatorClass = validatorClass;
-	}
-
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append(super.toString());
-		buffer.append("\n\t validator class:" + StringUtils.escape(getValidatorClass())); //$NON-NLS-1$
-		buffer.append("\n\t init-parms:"); //$NON-NLS-1$
-		for (int i = 0; i < getInitParams().size(); i++) {
-			buffer.append("\n" + StringUtils.replace(getInitParams().get(i).toString(), "\n", "\n\t\t")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		return buffer.toString();
-	}
-}
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
deleted file mode 100644
index ff7b75c..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDVariableImpl.java
+++ /dev/null
@@ -1,116 +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.core.internal.contentmodel.tld;
-
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP12TLDNames;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDVariable;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-
-
-public class TLDVariableImpl implements TLDVariable {
-	// optional - defaults to true
-	private boolean declare = true;
-
-	private String fDescription;
-	// required
-	private String nameFromAttribute;
-	// required
-	private String nameGiven;
-	// optional - defaults to NESTED
-	private String scope = JSP12TLDNames.VARIABLE_SCOPE_NESTED;
-	// required - defaults to a String
-	private String variableClass = "java.lang.String"; //$NON-NLS-1$
-
-	private String fAlias;
-
-	public boolean getDeclare() {
-		return declare;
-	}
-
-	/**
-	 * @return Returns the description.
-	 */
-	public String getDescription() {
-		return fDescription;
-	}
-
-	public String getNameFromAttribute() {
-		return nameFromAttribute;
-	}
-
-	public String getNameGiven() {
-		return nameGiven;
-	}
-
-	public String getScope() {
-		return scope;
-	}
-
-	public String getVariableClass() {
-		return variableClass;
-	}
-
-	public void setDeclare(boolean declare) {
-		this.declare = declare;
-	}
-
-	public void setDeclareString(String decl) {
-		if (decl != null) {
-			setDeclare(decl.equals(JSP12TLDNames.TRUE) || decl.equals(JSP12TLDNames.YES));
-		}
-	}
-
-	/**
-	 * @param description
-	 *            The description to set.
-	 */
-	public void setDescription(String description) {
-		fDescription = description;
-	}
-
-	public void setNameFromAttribute(String nameFromAttribute) {
-		this.nameFromAttribute = nameFromAttribute;
-	}
-
-	public void setNameGiven(String nameGiven) {
-		this.nameGiven = nameGiven;
-	}
-
-	public void setScope(String scope) {
-		this.scope = scope;
-	}
-
-	public void setVariableClass(String variableClass) {
-		this.variableClass = variableClass;
-	}
-
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append(super.toString());
-		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.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();
-	}
-
-	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
deleted file mode 100644
index a8351aa..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TaglibTracker.java
+++ /dev/null
@@ -1,41 +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.core.internal.contentmodel.tld;
-
-
-
-import org.eclipse.jst.jsp.core.internal.contentmodel.CMDocumentWrapperImpl;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocumentTracker;
-
-/**
- * TaglibTracker class
- */
-public class TaglibTracker extends CMDocumentWrapperImpl implements CMDocumentTracker {
-
-	private IStructuredDocumentRegion fStructuredDocumentRegion;
-
-	public TaglibTracker(String newURI, String newPrefix, CMDocument tld, IStructuredDocumentRegion aStructuredDocumentRegion) {
-		super(newURI, newPrefix, tld);
-		fStructuredDocumentRegion = aStructuredDocumentRegion;
-	}
-
-	public IStructuredDocumentRegion getStructuredDocumentRegion() {
-		return fStructuredDocumentRegion;
-	}
-
-	public String toString() {
-		if (getStructuredDocumentRegion() != null)
-			return getPrefix() + "@" + getStructuredDocumentRegion().getStartOffset(); //$NON-NLS-1$
-		return super.toString();
-	}
-}
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
deleted file mode 100644
index c24959a..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP11TLDNames.java
+++ /dev/null
@@ -1,49 +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
- *******************************************************************************/
-/*nlsXXX*/
-package org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional;
-
-public interface JSP11TLDNames {
-
-	String TAGLIB = "taglib"; //$NON-NLS-1$
-
-	String CONTENT_JSP = "JSP"; //$NON-NLS-1$
-	String CONTENT_EMPTY = "empty"; //$NON-NLS-1$
-	String CONTENT_TAGDEPENDENT = "tagdependent"; //$NON-NLS-1$
-
-	String TAG = "tag"; //$NON-NLS-1$
-	String JSPVERSION = "jspversion"; //$NON-NLS-1$
-	String TLIBVERSION = "tlibversion"; //$NON-NLS-1$
-	String SHORTNAME = "shortname"; //$NON-NLS-1$
-	String URI = "uri"; //$NON-NLS-1$
-	String URN = "urn"; //$NON-NLS-1$
-	String INFO = "info"; //$NON-NLS-1$
-
-	String NAME = "name"; //$NON-NLS-1$
-	String TEICLASS = "teiclass"; //$NON-NLS-1$
-	String TAGCLASS = "tagclass"; //$NON-NLS-1$
-	String BODYCONTENT = "bodycontent"; //$NON-NLS-1$
-	String ATTRIBUTE = "attribute"; //$NON-NLS-1$
-
-	String ID = "id"; //$NON-NLS-1$
-	String REQUIRED = "required"; //$NON-NLS-1$
-	String RTEXPRVALUE = "rtexprvalue"; //$NON-NLS-1$
-
-	String PREFIX = "prefix"; //$NON-NLS-1$
-
-	String INCLUDE = "include"; //$NON-NLS-1$
-	String FILE = "file"; //$NON-NLS-1$
-
-	String TRUE = "true"; //$NON-NLS-1$
-	String FALSE = "false"; //$NON-NLS-1$
-	String YES = "yes"; //$NON-NLS-1$
-	String NO = "no"; //$NON-NLS-1$
-}
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
deleted file mode 100644
index 0ab3124..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP12TLDNames.java
+++ /dev/null
@@ -1,77 +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
- *******************************************************************************/
-/*nlsXXX*/
-package org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional;
-
-public interface JSP12TLDNames {
-
-	String TAGLIB = JSP11TLDNames.TAGLIB;
-
-	String CONTENT_JSP = JSP11TLDNames.CONTENT_JSP;
-	String CONTENT_EMPTY = JSP11TLDNames.CONTENT_EMPTY;
-	String CONTENT_TAGDEPENDENT = JSP11TLDNames.CONTENT_TAGDEPENDENT;
-
-	String TAG = JSP11TLDNames.TAG;
-	String JSP_VERSION = "jsp-version"; //$NON-NLS-1$
-	String TLIB_VERSION = "tlib-version"; //$NON-NLS-1$
-	String SHORT_NAME = "short-name"; //$NON-NLS-1$
-	String URI = JSP11TLDNames.URI;
-	String URN = JSP11TLDNames.URN;
-
-	String NAME = JSP11TLDNames.NAME;
-	String TEI_CLASS = "tei-class"; //$NON-NLS-1$
-	String TAG_CLASS = "tag-class"; //$NON-NLS-1$
-	String BODY_CONTENT = "body-content"; //$NON-NLS-1$
-	String ATTRIBUTE = JSP11TLDNames.ATTRIBUTE;
-
-	String ID = JSP11TLDNames.ID;
-	String REQUIRED = JSP11TLDNames.REQUIRED;
-	String RTEXPRVALUE = JSP11TLDNames.RTEXPRVALUE;
-
-	String PREFIX = JSP11TLDNames.PREFIX;
-
-	String INCLUDE = JSP11TLDNames.INCLUDE;
-	String FILE = JSP11TLDNames.FILE;
-
-	String TRUE = JSP11TLDNames.TRUE;
-	String FALSE = JSP11TLDNames.FALSE;
-	String YES = JSP11TLDNames.YES;
-	String NO = JSP11TLDNames.NO;
-
-	/*
-	 * @see Eclipse JSP 1.2
-	 */
-	String DESCRIPTION = "description"; //$NON-NLS-1$
-	String DISPLAY_NAME = "display-name"; //$NON-NLS-1$
-	String SMALL_ICON = "small-icon"; //$NON-NLS-1$
-	String LARGE_ICON = "large-icon"; //$NON-NLS-1$
-
-
-	String VALIDATOR = "validator"; //$NON-NLS-1$
-	String VALIDATOR_CLASS = "validator-class"; //$NON-NLS-1$
-	String VALIDATOR_INIT_PARAM = "init-param"; //$NON-NLS-1$
-	String VALIDATOR_PARAM_NAME = "param-name"; //$NON-NLS-1$
-	String VALIDATOR_PARAM_VALUE = "param-value"; //$NON-NLS-1$
-
-
-	String LISTENER = "listener"; //$NON-NLS-1$
-	String LISTENER_CLASS = "listener-class"; //$NON-NLS-1$
-
-	String VARIABLE = "variable"; //$NON-NLS-1$
-	String VARIABLE_NAME_GIVEN = "name-given"; //$NON-NLS-1$
-	String VARIABLE_NAME_FROM_ATTRIBUTE = "name-from-attribute"; //$NON-NLS-1$
-	String VARIABLE_CLASS = "variable-class"; //$NON-NLS-1$
-	String VARIABLE_DECLARE = "declare"; //$NON-NLS-1$
-	String VARIABLE_SCOPE = "scope"; //$NON-NLS-1$
-	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$
-}
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
deleted file mode 100644
index b52ae61..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP20TLDNames.java
+++ /dev/null
@@ -1,38 +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.core.internal.contentmodel.tld.provisional;
-
-/* nlsXXX */
-public interface JSP20TLDNames extends JSP12TLDNames {
-	String CONTENT_SCRIPTLESS = "scriptless"; //$NON-NLS-1$
-	String EXAMPLE = "example"; //$NON-NLS-1$
-	String FRAGMENT = "fragment"; //$NON-NLS-1$
-	String FUNCTION = "function"; //$NON-NLS-1$
-	String FUNCTION_CLASS = "function-class"; //$NON-NLS-1$
-	String FUNCTION_EXTENSION = "function-extension"; //$NON-NLS-1$
-	String FUNCTION_SIGNATURE = "function-signature"; //$NON-NLS-1$
-	String ICON = "icon"; //$NON-NLS-1$
-	String PATH = "path"; //$NON-NLS-1$
-	String TAG_EXTENSION = "tag-extension"; //$NON-NLS-1$
-	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
deleted file mode 100644
index 3f57eeb..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDAttributeDeclaration.java
+++ /dev/null
@@ -1,62 +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.core.internal.contentmodel.tld.provisional;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-
-/**
- * Represents an attribute definition from a TLD
- */
-public interface TLDAttributeDeclaration extends CMAttributeDeclaration {
-
-	/**
-	 * a description of the attribute
-	 * @return String
-	 * @see  JSP 2.0
-	 */
-	String getDescription();
-	
-	/**
-	 * the attribute's name
-	 * @see  JSP 1.1
-	 */
-	String getId();
-
-	CMDocument getOwnerDocument();
-
-	/**
-	 * whether the attribute's value may be dynamically calculated at runtime by an expression
-	 * @see  JSP 1.1
-	 */
-	String getRtexprvalue();
-
-	/**
-	 * the type of the attribute's value
-	 * @see  JSP 1.2
-	 */
-	String getType();
-
-	/**
-	 * whether this attribute is a fragment
-	 * 
-	 * @return boolean
-	 */
-	boolean isFragment();
-	
-	/**
-	 * if the attribute is required or optional
-	 * @see  JSP 1.1
-	 */
-	boolean isRequired();
-}
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
deleted file mode 100644
index 81351e5..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDDocument.java
+++ /dev/null
@@ -1,105 +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.core.internal.contentmodel.tld.provisional;
-
-import java.util.List;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-
-public interface TLDDocument extends CMDocument {
-
-	String CM_KIND = "Content Model Kind"; //$NON-NLS-1$
-	String JSP_TLD = "JSP Tag Library Descriptor"; //$NON-NLS-1$
-
-	/**
-	 * @see  JSP 2.0
-	 * 
-	 * @return
-	 */
-	String getBaseLocation();
-	
-	/**
-	 * @return String - The contents of the "description" element of a JSP 1.2 tag library descriptor; a simple string describing the "use" of this taglib, should be user discernable.
-	 * @see  JSP 1.2
-	 */
-	String getDescription();
-
-	/**
-	 * @return String - The contents of the "display-name" element of a JSP 1.2 tag library descriptor; it is a short name that is intended to be displayed by tools
-	 * @see  JSP 1.2
-	 */
-	String getDisplayName();
-
-	/**
-	 * @return List - A list of extension elements describing the tag library
-	 * @see  JSP 2.0
-	 */
-	List getExtensions();
-	
-	/**
-	 * @return List - A list of TLDFunctions describing the declared functions
-	 * @see  JSP 2.0
-	 */
-	List getFunctions();
-	
-	/**
-	 * @return String - The contents of the "info" element of a JSP 1.1 tag library descriptor; a simple string describing the "use" of this taglib, should be user discernable.
-	 * @see  JSP 1.1
-	 */
-	String getInfo();
-
-	/**
-	 * @return String - The version of JSP the tag library depends upon
-	 * @see  JSP 1.1
-	 */
-	String getJspversion();
-
-	/**
-	 * @return String - The contents of the "large-icon" element of a JSP 1.2 tag library descriptor; optional large-icon that can be used by tools
-	 * @see  JSP 1.2
-	 */
-	String getLargeIcon();
-
-	/**
-	 * @see  JSP 1.2
-	 * @return List - a List of TLDListeners
-	 */
-	List getListeners();
-
-	/**
-	 * @return String - A simple default short name that could be used by a JSP authoring tool to create names with a mnemonic value; for example, it may be used as the preferred prefix value in taglib directives
-	 * @see  JSP 1.1
-	 */
-	String getShortname();
-
-	/**
-	 * @return String - The contents of the "small-icon" element of a JSP 1.2 tag library descriptor; optional small-icon that can be used by tools
-	 * @see  JSP 1.2
-	 */
-	String getSmallIcon();
-
-	/**
-	 * @return String - The version of the tag library (it's implementation)
-	 * @see  JSP 1.1
-	 */
-	String getTlibversion();
-
-	/**
-	 * @return String - the URI declared within the descriptor
-	 * @see  JSP 1.1
-	 */
-	String getUri();
-
-	/**
-	 * @see  JSP 1.2
-	 */
-	TLDValidator getValidator();
-}
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
deleted file mode 100644
index ecc0861..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDElementDeclaration.java
+++ /dev/null
@@ -1,114 +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.core.internal.contentmodel.tld.provisional;
-
-import java.util.List;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-
-public interface TLDElementDeclaration extends CMElementDeclaration {
-
-	/**
-	 * The body content type
-	 * 
-	 * @see JSP 1.1
-	 */
-	String getBodycontent();
-
-	/**
-	 * Optional tag-specific information
-	 * 
-	 * @see JSP 1.2
-	 */
-	String getDescription();
-
-	/**
-	 * A short name that is intended to be displayed by tools
-	 * 
-	 * @see JSP 1.2
-	 */
-	String getDisplayName();
-
-	/**
-	 * Optional informal description of an example of a use of this tag
-	 * 
-	 * @see JSP 2.0
-	 */
-	String getExample();
-
-	/**
-	 * Zero or more extensions that provide extra information about this tag,
-	 * for tool consumption
-	 * 
-	 * @see JSP 2.0
-	 */
-	List getExtensions();
-
-	/**
-	 * Optional tag-specific information
-	 * 
-	 * @see JSP 1.1
-	 */
-	String getInfo();
-
-	/**
-	 * Name of an optional large icon that can be used by tools
-	 * 
-	 * @see JSP 1.2
-	 */
-	String getLargeIcon();
-
-	CMDocument getOwnerDocument();
-
-	/**
-	 * Where to find the .tag file implementing this action, relative to the
-	 * root of the web application or the root of the JAR file for a tag
-	 * library packaged in a JAR. This must begin with /WEB-INF/tags if the
-	 * .tag file resides in the WAR, or /META-INF/tags if the .tag file
-	 * resides in a JAR.
-	 * 
-	 * 
-	 * @return the path to the .tag(x) file as defined in the .tld file, null
-	 *         if internal to the .tld
-	 * @see JSP 2.0
-	 */
-	String getPath();
-
-	/**
-	 * Name of an optional small icon that can be used by tools
-	 * 
-	 * @see JSP 1.2
-	 */
-	String getSmallIcon();
-
-	/**
-	 * The name of the tag handler class implementing
-	 * javax.servlet.jsp.tagext.Tag
-	 * 
-	 * @see JSP 1.1
-	 */
-	String getTagclass();
-
-	/**
-	 * The name of an optional subclass of
-	 * javax.servlet.jsp.tagext.TagExtraInfo
-	 * 
-	 * @see JSP 1.1
-	 */
-	String getTeiclass();
-
-	/**
-	 * @see JSP 1.2
-	 * @return List of TLDVariables
-	 */
-	List getVariables();
-}
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
deleted file mode 100644
index a43e963..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDFunction.java
+++ /dev/null
@@ -1,36 +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.core.internal.contentmodel.tld.provisional;
-
-import java.util.List;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-
-public interface TLDFunction {
-
-	String getClassName();
-	
-	String getDescription();
-
-	String getDisplayName();
-
-	String getExample();
-
-	List getExtensions();
-
-	String getIcon();
-
-	String getName();
-
-	CMDocument getOwnerDocument();
-
-	String getSignature();
-}
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
deleted file mode 100644
index fed09aa..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDInitParam.java
+++ /dev/null
@@ -1,30 +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.core.internal.contentmodel.tld.provisional;
-
-
-/**
- * A name/value pair as an initialization param along with a description
- * @see JSP 1.2
- */
-public interface TLDInitParam {
-	String getDescription();
-
-	/**
-	 * The param-name element contains the name of a parameter.
-	 */
-	String getName();
-
-	/**
-	 * The param-value element contains the name of a parameter.
-	 */
-	String getValue();
-}
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
deleted file mode 100644
index 8d6f0e5..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDListener.java
+++ /dev/null
@@ -1,20 +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.core.internal.contentmodel.tld.provisional;
-
-
-/**
- * Defines an optional event listener object to be instantiated and registered automatically
- * @see JSP 1.2
- */
-public interface TLDListener {
-	String getListenerClass();
-}
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
deleted file mode 100644
index 09ee730..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDValidator.java
+++ /dev/null
@@ -1,27 +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.core.internal.contentmodel.tld.provisional;
-
-import java.util.List;
-
-
-/**
- * Defines an optional validator that can be used to validate the conformance of a JSP page to using this tag library
- * @see JSP 1.2
- */
-public interface TLDValidator {
-	/**
-	 * @return List - a List of TLDInitParams
-	 */
-	List getInitParams();
-
-	String getValidatorClass();
-}
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
deleted file mode 100644
index 611382c..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDVariable.java
+++ /dev/null
@@ -1,57 +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.core.internal.contentmodel.tld.provisional;
-
-/**
- * Information on the scripting variables defined by this tag.
- * 
- * @see JSP 1.2
- */
-public interface TLDVariable {
-
-	/**
-	 * Whether the variable is declared or not, true is the default.
-	 */
-	boolean getDeclare();
-
-	/**
-	 * @returnthe the description for this variable
-	 */
-	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.
-	 */
-	String getNameFromAttribute();
-
-	/**
-	 * The variable name given as a constant, or null of the name is not
-	 * specified.
-	 */
-	String getNameGiven();
-
-	/**
-	 * The scope of the scripting variable defined.
-	 */
-	String getScope();
-
-	/**
-	 * 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/contentproperties/JSPFContentProperties.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentproperties/JSPFContentProperties.java
deleted file mode 100644
index 2ece904..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentproperties/JSPFContentProperties.java
+++ /dev/null
@@ -1,213 +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.core.internal.contentproperties;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ProjectScope;
-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.Status;
-import org.eclipse.jst.jsp.core.internal.JSPCorePlugin;
-import org.eclipse.jst.jsp.core.internal.Logger;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * Properties constants used by JSP Fragments. Clients should only read and
- * modify the JSP Fragment properties programmatically using this class.
- * 
- * @since 1.1
- */
-public class JSPFContentProperties {
-	static final String JSPCORE_ID = JSPCorePlugin.getDefault().getBundle().getSymbolicName();
-	private static final String PROJECT_KEY = "<project>"; //$NON-NLS-1$
-
-	/**
-	 * A named key that controls the default language for JSP Fragments
-	 * <p>
-	 * Value is of type <code>String</code>.
-	 * </p>
-	 * 
-	 * @since 1.1
-	 */
-	public static final String JSPLANGUAGE = "jsp-language"; //$NON-NLS-1$
-	/**
-	 * A named key that controls the default content type for JSP Fragments
-	 * <p>
-	 * Value is of type <code>String</code>.
-	 * </p>
-	 * 
-	 * @since 1.1
-	 */
-	public static final String JSPCONTENTTYPE = "jsp-content-type"; //$NON-NLS-1$
-	/**
-	 * Indicates if JSP fragments should be compiled/validated. JSP fragments
-	 * will be validated when true.
-	 * <p>
-	 * Value is of type <code>String</code>.
-	 * </p>
-	 * 
-	 * @since 1.1
-	 */
-	public static final String VALIDATE_FRAGMENTS = "validateFragments";//$NON-NLS-1$
-
-	/**
-	 * Generates a preference key based on resourcePath
-	 * 
-	 * @param resourcePath
-	 *            the path the key will be based off of
-	 * @return preference key based on resourcePath (basically the
-	 *         resourcePath without the filename); PROJECT_KEY if resourcePath
-	 *         is null
-	 */
-	static String getKeyFor(IPath resourcePath) {
-		String key = PROJECT_KEY;
-		if (resourcePath != null && resourcePath.segmentCount() > 1) {
-			key = resourcePath.removeFirstSegments(1).toString();
-		}
-		return key;
-	}
-
-	/**
-	 * Get the preferences node associated with the given project scope and
-	 * preference key (subNode) If create is true, the preference node will be
-	 * created if one does not already exist
-	 * 
-	 * @param project
-	 *            the project the preference node is under
-	 * @param preferenceKey
-	 *            the subnode/category the preference node is located in
-	 * @param create
-	 *            if true, a preference node will be created if one does not
-	 *            already exist
-	 * @return Preferences associated with the given project scope and
-	 *         preference key. null if one could not be found and create is
-	 *         false
-	 */
-	static Preferences getPreferences(IProject project, String preferenceKey, boolean create) {
-		if (create)
-			// create all nodes down to the one we are interested in
-			return new ProjectScope(project).getNode(JSPCORE_ID).node(preferenceKey);
-		// be careful looking up for our node so not to create any nodes as
-		// side effect
-		Preferences node = Platform.getPreferencesService().getRootNode().node(ProjectScope.SCOPE);
-		try {
-			// TODO once bug 90500 is fixed, should be as simple as this:
-			// String path = project.getName() + IPath.SEPARATOR +
-			// ResourcesPlugin.PI_RESOURCES + IPath.SEPARATOR +
-			// ENCODING_PREF_NODE;
-			// return node.nodeExists(path) ? node.node(path) : null;
-			// for now, take the long way
-			if (!node.nodeExists(project.getName()))
-				return null;
-			node = node.node(project.getName());
-			if (!node.nodeExists(JSPCORE_ID))
-				return null;
-			node = node.node(JSPCORE_ID);
-			if (!node.nodeExists(preferenceKey))
-				return null;
-			return node.node(preferenceKey);
-		}
-		catch (BackingStoreException e) {
-			// nodeExists failed
-			Logger.log(Logger.WARNING_DEBUG, "Could not retrieve preference node", e); //$NON-NLS-1$
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the value for the given key in the given context.
-	 * 
-	 * @param key
-	 *            The property key
-	 * @param resource
-	 *            The current context or <code>null</code> if no context is
-	 *            available and the workspace setting should be taken. Note
-	 *            that passing <code>null</code> should be avoided.
-	 * @param recurse
-	 *            whether the parent should be queried till property is found
-	 * @return Returns the current value for the key.
-	 * @since 1.1
-	 */
-	public static String getProperty(String key, IResource resource, boolean recurse) {
-		String val = null;
-		if (resource != null) {
-			IProject project = resource.getProject();
-			if (project != null) {
-				Preferences preferences = getPreferences(project, key, false);
-				if (preferences != null) {
-					val = internalGetProperty(resource, recurse, preferences);
-				}
-			}
-		}
-		// no preferences found - for performance reasons,
-		// short-circuit
-		// lookup by falling back to workspace's default
-		// setting
-		if (val == null && recurse)
-			val = getWorkbenchPreference(key);
-		return val;
-	}
-
-	private static String getWorkbenchPreference(String key) {
-		return Platform.getPreferencesService().getString(JSPCORE_ID, key, null, null);
-	}
-
-	private static String internalGetProperty(IResource resource, boolean recurse, Preferences preferences) {
-		String value = preferences.get(getKeyFor(resource.getFullPath()), null);
-		if (value == null && resource != resource.getProject() && recurse) {
-			value = preferences.get(getKeyFor(null), null);
-		}
-
-		return value;
-	}
-
-	/**
-	 * Sets the value for the given key in the given context.
-	 * 
-	 * @param key
-	 *            The property key
-	 * @param resource
-	 *            The current context. Note context cannot be
-	 *            <code>null</code>.
-	 * @param value
-	 *            The value to set for the key. If value is <code>null</code>
-	 *            the key is removed from properties.
-	 * @since 1.1
-	 */
-	public static void setProperty(String key, IResource resource, String value) throws CoreException {
-		if (resource != null) {
-			IProject project = resource.getProject();
-			if (project != null) {
-				Preferences preferences = getPreferences(project, key, true);
-				if (value == null || value.trim().length() == 0)
-					preferences.remove(getKeyFor(resource.getFullPath()));
-				else
-					preferences.put(getKeyFor(resource.getFullPath()), value);
-				try {
-					// save changes
-					preferences.flush();
-				}
-				catch (BackingStoreException e) {
-					throw new CoreException(new Status(IStatus.ERROR, JSPCORE_ID, IStatus.ERROR, "Unable to set property", e)); //$NON-NLS-1$
-				}
-			}
-		}
-		// Workbench preference may not be needed so leave out for now
-		// just set a preference in the instance scope
-		// if (!preferenceFound) {
-		// setWorkbenchPreference(key);
-		// }
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentproperties/JSPFContentPropertiesManager.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentproperties/JSPFContentPropertiesManager.java
deleted file mode 100644
index d3cd4cf..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentproperties/JSPFContentPropertiesManager.java
+++ /dev/null
@@ -1,245 +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.core.internal.contentproperties;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceStatus;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-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.jobs.Job;
-import org.eclipse.jst.jsp.core.internal.JSPCoreMessages;
-import org.eclipse.jst.jsp.core.internal.Logger;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.Bundle;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-public class JSPFContentPropertiesManager {
-	public JSPFContentPropertiesManager() {
-		super();
-		fResourceChangeListener = new ResourceChangeListener();
-		fJob = new ContentPropertiesManagerJob();
-	}
-
-	private static JSPFContentPropertiesManager _instance = null;
-	private IResourceChangeListener fResourceChangeListener;
-	ContentPropertiesManagerJob fJob;
-
-	/**
-	 * This job implementation is used to allow the resource change listener
-	 * to schedule operations that need to modify the workspace.
-	 */
-	private class ContentPropertiesManagerJob extends Job {
-		private static final int PROPERTIES_UPDATE_DELAY = 500;
-		private List asyncChanges = new ArrayList();
-
-		public ContentPropertiesManagerJob() {
-			super(JSPCoreMessages.JSPFContentPropertiesManager_Updating);
-			setSystem(true);
-			setPriority(Job.INTERACTIVE);
-		}
-
-		public void addChanges(Set newChanges) {
-			if (newChanges.isEmpty())
-				return;
-			synchronized (asyncChanges) {
-				asyncChanges.addAll(newChanges);
-				asyncChanges.notify();
-			}
-			schedule(PROPERTIES_UPDATE_DELAY);
-		}
-
-		public IProject getNextChange() {
-			synchronized (asyncChanges) {
-				return asyncChanges.isEmpty() ? null : (IProject) asyncChanges.remove(asyncChanges.size() - 1);
-			}
-		}
-
-		protected IStatus run(IProgressMonitor monitor) {
-			MultiStatus result = new MultiStatus(JSPFContentProperties.JSPCORE_ID, IResourceStatus.FAILED_SETTING_CHARSET, JSPCoreMessages.JSPFContentPropertiesManager_Updating, null);
-			monitor = monitor == null ? new NullProgressMonitor() : monitor;
-			try {
-				monitor.beginTask(JSPCoreMessages.JSPFContentPropertiesManager_Updating, asyncChanges.size());
-				try {
-					IProject next;
-					while ((next = getNextChange()) != null) {
-						// just exit if the system is shutting down or has
-						// been shut down
-						// it is too late to change the workspace at this
-						// point anyway
-						if (Platform.getBundle("org.eclipse.osgi").getState() != Bundle.ACTIVE) //$NON-NLS-1$
-							return Status.OK_STATUS;
-						try {
-							// save the preferences nodes
-							if (next.isAccessible()) {
-								// save content type preferences
-								Preferences projectPrefs = JSPFContentProperties.getPreferences(next, JSPFContentProperties.JSPCONTENTTYPE, false);
-								if (projectPrefs != null)
-									projectPrefs.flush();
-								// save language preferences
-								projectPrefs = JSPFContentProperties.getPreferences(next, JSPFContentProperties.JSPLANGUAGE, false);
-								if (projectPrefs != null)
-									projectPrefs.flush();
-
-							}
-						}
-						catch (BackingStoreException e) {
-							// we got an error saving
-							String detailMessage = NLS.bind(JSPCoreMessages.JSPFContentPropertiesManager_Problems_Updating, next.getFullPath());
-							result.add(new Status(1 << (IResourceStatus.FAILED_SETTING_CHARSET % 100 / 33), ResourcesPlugin.PI_RESOURCES, IResourceStatus.FAILED_SETTING_CHARSET, detailMessage, e));
-						}
-					}
-					monitor.worked(1);
-				}
-				catch (OperationCanceledException e) {
-					throw e;
-				}
-			}
-			finally {
-				monitor.done();
-			}
-			return result;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.runtime.jobs.Job#shouldRun()
-		 */
-		public boolean shouldRun() {
-			synchronized (asyncChanges) {
-				return !asyncChanges.isEmpty();
-			}
-		}
-	}
-
-	class ResourceChangeListener implements IResourceChangeListener {
-		private void processEntryChanges(IResourceDelta projectDelta, Set projectsToSave) {
-			// check each resource with jsp fragment setting to see if it has
-			// been moved/deleted
-			boolean resourceChanges = false;
-			boolean resourceChanges2 = false;
-
-			// project affected
-			IProject currentProject = (IProject) projectDelta.getResource();
-
-			resourceChanges = processPreferences(currentProject, JSPFContentProperties.JSPCONTENTTYPE, projectDelta, projectsToSave);
-			resourceChanges2 = processPreferences(currentProject, JSPFContentProperties.JSPLANGUAGE, projectDelta, projectsToSave);
-
-			// if there was a preference key change, need to save preferences
-			if (resourceChanges || resourceChanges2)
-				projectsToSave.add(currentProject);
-		}
-
-		/**
-		 * Goes through all the resource-dependent preferences associated with
-		 * currentProject & key and updates the preference keys if needed
-		 * based on projectDelta
-		 * 
-		 * @param currentProject
-		 *            current project of the preferences to be looked at
-		 * @param key
-		 *            current key/subcategory of the preferences to be looked
-		 *            at
-		 * @param projectDelta
-		 *            the changes to process the preference keys against
-		 * @param projectsToSave
-		 *            the projects that need to be updated/saved
-		 * @return true if currentProject's preferences were modified
-		 */
-		private boolean processPreferences(IProject currentProject, String key, IResourceDelta projectDelta, Set projectsToSave) {
-			boolean resourceChanges = false;
-
-			// get the project-key preference node
-			Preferences projectPrefs = JSPFContentProperties.getPreferences(currentProject, key, false);
-			if (projectPrefs == null)
-				// no preferences for this project-key, just bail
-				return false;
-			String[] affectedResources;
-			try {
-				affectedResources = projectPrefs.keys();
-			}
-			catch (BackingStoreException e) {
-				// problems with the project scope... we gonna miss the
-				// changes (but will log)
-				Logger.log(Logger.WARNING_DEBUG, "Problem retreiving JSP Fragment preferences", e); //$NON-NLS-1$
-				return false;
-			}
-
-			// go through each preference key (which is really a file name)
-			for (int i = 0; i < affectedResources.length; i++) {
-				// see if preference key/file name was file that was changed
-				IResourceDelta memberDelta = projectDelta.findMember(new Path(affectedResources[i]));
-				// no changes for the given resource
-				if (memberDelta == null)
-					continue;
-				if (memberDelta.getKind() == IResourceDelta.REMOVED) {
-					resourceChanges = true;
-					// remove the setting for the original location
-					String currentValue = projectPrefs.get(affectedResources[i], null);
-					projectPrefs.remove(affectedResources[i]);
-					if ((memberDelta.getFlags() & IResourceDelta.MOVED_TO) != 0) {
-						// if moving, copy the setting for the new location
-						IProject targetProject = ResourcesPlugin.getWorkspace().getRoot().getProject(memberDelta.getMovedToPath().segment(0));
-						Preferences targetPrefs = JSPFContentProperties.getPreferences(targetProject, key, true);
-						targetPrefs.put(JSPFContentProperties.getKeyFor(memberDelta.getMovedToPath()), currentValue);
-						if (targetProject != currentProject)
-							projectsToSave.add(targetProject);
-					}
-				}
-			}
-			return resourceChanges;
-		}
-
-		/**
-		 * For any change to the encoding file or any resource with encoding
-		 * set, just discard the cache for the corresponding project.
-		 */
-		public void resourceChanged(IResourceChangeEvent event) {
-			IResourceDelta delta = event.getDelta();
-			if (delta == null)
-				return;
-			IResourceDelta[] projectDeltas = delta.getAffectedChildren();
-			// process each project in the delta
-			Set projectsToSave = new HashSet();
-			for (int i = 0; i < projectDeltas.length; i++)
-				// nothing to do if a project has been added/removed/moved
-				if (projectDeltas[i].getKind() == IResourceDelta.CHANGED && (projectDeltas[i].getFlags() & IResourceDelta.OPEN) == 0)
-					processEntryChanges(projectDeltas[i], projectsToSave);
-			fJob.addChanges(projectsToSave);
-		}
-	}
-
-	public synchronized static void startup() {
-		_instance = new JSPFContentPropertiesManager();
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(_instance.fResourceChangeListener, IResourceChangeEvent.POST_CHANGE);
-	}
-
-	public synchronized static void shutdown() {
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(_instance.fResourceChangeListener);
-		_instance = null;
-	}
-}
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
deleted file mode 100644
index c91119e..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/ByteReader.java
+++ /dev/null
@@ -1,109 +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.jst.jsp.core.internal.contenttype;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-
-import org.eclipse.wst.sse.core.internal.encoding.CodedIO;
-
-/**
- * This is an "adapter" class, simply to get in input stream to act like a
- * reader. We could not use InputStreamReader directly because its internal
- * buffers are not controllable, and it sometimes pulls too much out of input
- * stream (even when it wasn't needed for our purposes).
- * 
- * The use of this class is highly specialized and by not means meant to be
- * general purpose. Its use is restricted to those cases where the input
- * stream can be regarded as ascii just long enough to determine what the real
- * encoding should be.
- */
-
-public class ByteReader extends Reader {
-
-	
-	public static final int DEFAULT_BUFFER_SIZE = CodedIO.MAX_BUF_SIZE;
-
-	protected byte[] fBuffer;
-
-	protected InputStream fInputStream;
-
-	protected ByteReader() {
-		super();
-	}
-
-	public ByteReader(InputStream inputStream) {
-		this(inputStream, DEFAULT_BUFFER_SIZE);
-		if (!inputStream.markSupported()) {
-			throw new IllegalArgumentException("ByteReader is required to have a resettable stream"); //$NON-NLS-1$
-		}
-	}
-
-	public ByteReader(InputStream inputStream, int size) {
-		this.fInputStream = inputStream;
-		if (!inputStream.markSupported()) {
-			throw new IllegalArgumentException("ByteReader is required to have a resettable stream"); //$NON-NLS-1$
-		}
-		this.fBuffer = new byte[size];
-
-	}
-
-	public void close() throws IOException {
-		this.fInputStream.close();
-	}
-
-	public void mark(int readAheadLimit) {
-		this.fInputStream.mark(readAheadLimit);
-	}
-
-	public boolean markSupported() {
-		return true;
-	}
-
-	public int read() throws IOException {
-		int b0 = this.fInputStream.read();
-		return (b0 & 0x00FF);
-	}
-
-	public int read(char ch[], int offset, int length) throws IOException {
-		if (length > this.fBuffer.length) {
-			length = this.fBuffer.length;
-		}
-
-		int count = this.fInputStream.read(this.fBuffer, 0, length);
-
-		for (int i = 0; i < count; i++) {
-			int b0 = this.fBuffer[i];
-			// the 0x00FF is to "lose" the negative bits filled in the byte to
-			// int conversion
-			// (and which would be there if cast directly from byte to char).
-			char c0 = (char) (b0 & 0x00FF);
-			ch[offset + i] = c0;
-		}
-		return count;
-	}
-
-	public boolean ready() throws IOException {
-		return this.fInputStream.available() > 0;
-	}
-
-	public void reset() throws IOException {
-		this.fInputStream.reset();
-	}
-
-	public long skip(long n) throws IOException {
-		return this.fInputStream.skip(n);
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/ContentDescriberForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/ContentDescriberForJSP.java
deleted file mode 100644
index 47ec7b9..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/ContentDescriberForJSP.java
+++ /dev/null
@@ -1,253 +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.core.internal.contenttype;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.core.runtime.content.IContentDescriber;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.core.runtime.content.ITextContentDescriber;
-import org.eclipse.jst.jsp.core.internal.provisional.contenttype.IContentDescriptionForJSP;
-import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeFamilyForHTML;
-import org.eclipse.wst.sse.core.internal.encoding.EncodingMemento;
-import org.eclipse.wst.sse.core.internal.encoding.IContentDescriptionExtended;
-import org.eclipse.wst.sse.core.internal.encoding.IResourceCharsetDetector;
-
-public final class ContentDescriberForJSP implements ITextContentDescriber {
-	private final static QualifiedName[] SUPPORTED_OPTIONS = {IContentDescription.CHARSET, IContentDescription.BYTE_ORDER_MARK, IContentDescriptionExtended.DETECTED_CHARSET, IContentDescriptionExtended.UNSUPPORTED_CHARSET, IContentDescriptionExtended.APPROPRIATE_DEFAULT, IContentDescriptionForJSP.CONTENT_TYPE_ATTRIBUTE, IContentDescriptionForJSP.LANGUAGE_ATTRIBUTE, IContentDescriptionForJSP.CONTENT_FAMILY_ATTRIBUTE};
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.content.IContentDescriber#describe(java.io.InputStream,
-	 *      org.eclipse.core.runtime.content.IContentDescription)
-	 */
-	public int describe(InputStream contents, IContentDescription description) throws IOException {
-		int result = IContentDescriber.INVALID;
-
-		// if discription is null, we are just being asked to
-		// assess contents validity
-		if (description != null) {
-			result = calculateSupportedOptions(contents, description);
-		}
-		else {
-			result = determineValidity(contents);
-		}
-
-		return result;
-	}
-
-	private int determineValidity(InputStream contents) {
-		// There's little to prove, via contents, that
-		// a file is JSP, so always return interminant, and
-		// let filetypes decide.
-		return IContentDescriber.INDETERMINATE;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.content.ITextContentDescriber#describe(java.io.Reader,
-	 *      org.eclipse.core.runtime.content.IContentDescription)
-	 */
-	public int describe(Reader contents, IContentDescription description) throws IOException {
-		int result = IContentDescriber.INVALID;
-
-		// if discription is null, we are just being asked to
-		// assess contents validity
-		if (description != null) {
-			result = calculateSupportedOptions(contents, description);
-		}
-		else {
-			result = determineValidity(contents);
-		}
-
-		return result;
-	}
-
-	private int determineValidity(Reader contents) {
-		// There's little to prove, via contents, that
-		// a file is JSP, so always return interminant, and
-		// let filetypes decide.
-		return IContentDescriber.INDETERMINATE;
-	}
-
-	public QualifiedName[] getSupportedOptions() {
-		return SUPPORTED_OPTIONS;
-	}
-
-	private int calculateSupportedOptions(InputStream contents, IContentDescription description) throws IOException {
-		int result = IContentDescriber.INDETERMINATE;
-		if (isRelevent(description)) {
-			IResourceCharsetDetector detector = getDetector();
-			detector.set(contents);
-			handleCalculations(description, detector);
-			result = IContentDescriber.VALID;
-		}
-		return result;
-	}
-
-	/**
-	 * @param contents
-	 * @param description
-	 * @throws IOException
-	 */
-	private int calculateSupportedOptions(Reader contents, IContentDescription description) throws IOException {
-		int result = IContentDescriber.INDETERMINATE;
-		if (isRelevent(description)) {
-			IResourceCharsetDetector detector = getDetector();
-			detector.set(contents);
-			handleCalculations(description, detector);
-			result = IContentDescriber.VALID;
-		}
-		return result;
-	}
-
-	private IResourceCharsetDetector getDetector() {
-		return new JSPResourceEncodingDetector();
-	}
-
-	private void handleCalculations(IContentDescription description, IResourceCharsetDetector detector) throws IOException {
-		// handle standard ones first, to be sure detector processes
-		handleStandardCalculations(description, detector);
-		// now do those specific for JSPs
-		// note: detector should always be of correct instance, but we'll
-		// check, for now.
-		if (detector instanceof JSPResourceEncodingDetector) {
-			JSPResourceEncodingDetector jspDetector = (JSPResourceEncodingDetector) detector;
-			String language = jspDetector.getLanguage();
-			if (language != null && language.length() > 0) {
-				description.setProperty(IContentDescriptionForJSP.LANGUAGE_ATTRIBUTE, language);
-			}
-			/*
-			 * content type is literally the content type that's in the page
-			 * directive
-			 */
-			String contentTypeAttribute = jspDetector.getContentType();
-			if (contentTypeAttribute != null && contentTypeAttribute.length() > 0) {
-				description.setProperty(IContentDescriptionForJSP.CONTENT_TYPE_ATTRIBUTE, contentTypeAttribute);
-			}
-			/*
-			 * content family is the general class of content, when its
-			 * different from what's defined by content type
-			 */
-			if (jspDetector.isXHTML() || jspDetector.isWML()) {
-				// ISSUE: long term this logic and value should be contributed by extension point
-				description.setProperty(IContentDescriptionForJSP.CONTENT_FAMILY_ATTRIBUTE, ContentTypeFamilyForHTML.HTML_FAMILY);
-			}
-
-
-		}
-	}
-
-	private void handleDetectedSpecialCase(IContentDescription description, Object detectedCharset, Object javaCharset) {
-		if (detectedCharset != null) {
-			// Once we detected a charset, we should set the property even
-			// though it's the same as javaCharset
-			// because there are clients that rely on this property to
-			// determine if the charset is actually detected in file or not.
-			description.setProperty(IContentDescriptionExtended.DETECTED_CHARSET, detectedCharset);
-		}
-	}
-
-	/**
-	 * @param description
-	 * @param detector
-	 * @throws IOException
-	 */
-	private void handleStandardCalculations(IContentDescription description, IResourceCharsetDetector detector) throws IOException {
-		// note: if we're asked for one, we set them all. I need to be sure if
-		// called
-		// mulitiple times (one for each, say) that we don't waste time
-		// processing same
-		// content again.
-		EncodingMemento encodingMemento = ((JSPResourceEncodingDetector) detector).getEncodingMemento();
-		// TODO: I need to verify to see if this BOM work is always done
-		// by text type.
-		Object detectedByteOrderMark = encodingMemento.getUnicodeBOM();
-		if (detectedByteOrderMark != null) {
-			Object existingByteOrderMark = description.getProperty(IContentDescription.BYTE_ORDER_MARK);
-			// not sure why would ever be different, so if is different, may
-			// need to "push" up into base.
-			if (!detectedByteOrderMark.equals(existingByteOrderMark))
-				description.setProperty(IContentDescription.BYTE_ORDER_MARK, detectedByteOrderMark);
-		}
-
-
-		if (!encodingMemento.isValid()) {
-			// note: after setting here, its the mere presence of
-			// IContentDescriptionExtended.UNSUPPORTED_CHARSET
-			// in the resource's description that can be used to determine if
-			// invalid
-			// in those cases, the "detected" property contains an
-			// "appropriate default" to use.
-			description.setProperty(IContentDescriptionExtended.UNSUPPORTED_CHARSET, encodingMemento.getInvalidEncoding());
-			description.setProperty(IContentDescriptionExtended.APPROPRIATE_DEFAULT, encodingMemento.getAppropriateDefault());
-		}
-
-		Object detectedCharset = encodingMemento.getDetectedCharsetName();
-		Object javaCharset = encodingMemento.getJavaCharsetName();
-
-		// we always include detected, if its different than java
-		handleDetectedSpecialCase(description, detectedCharset, javaCharset);
-
-		if (javaCharset != null) {
-			Object existingCharset = description.getProperty(IContentDescription.CHARSET);
-			if (javaCharset.equals(existingCharset)) {
-				handleDetectedSpecialCase(description, detectedCharset, javaCharset);
-			}
-			else {
-				// we may need to add what we found, but only need to add
-				// if different from the default.
-				Object defaultCharset = detector.getSpecDefaultEncoding();
-				if (defaultCharset != null) {
-					if (!defaultCharset.equals(javaCharset)) {
-						description.setProperty(IContentDescription.CHARSET, javaCharset);
-					}
-				}
-				else {
-					// assuming if there is no spec default, we always need to
-					// add, I'm assuming
-					description.setProperty(IContentDescription.CHARSET, javaCharset);
-				}
-			}
-		}
-
-	}
-
-	/**
-	 * @param description
-	 * @return
-	 */
-	private boolean isRelevent(IContentDescription description) {
-		boolean result = false;
-		if (description == null)
-			result = false;
-		else if (description.isRequested(IContentDescription.BYTE_ORDER_MARK))
-			result = true;
-		else if (description.isRequested(IContentDescription.CHARSET))
-			result = true;
-		else if (description.isRequested(IContentDescriptionExtended.APPROPRIATE_DEFAULT))
-			result = true;
-		else if (description.isRequested(IContentDescriptionExtended.DETECTED_CHARSET))
-			result = true;
-		else if (description.isRequested(IContentDescriptionExtended.UNSUPPORTED_CHARSET))
-			result = true;
-		else if (description.isRequested(IContentDescriptionForJSP.CONTENT_TYPE_ATTRIBUTE))
-			result = true;
-		else if (description.isRequested(IContentDescriptionForJSP.LANGUAGE_ATTRIBUTE))
-			result = true;
-		return result;
-	}
-}
\ No newline at end of file
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
deleted file mode 100644
index cad9f0b..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/DeploymentDescriptorPropertyCache.java
+++ /dev/null
@@ -1,899 +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.core.internal.contenttype;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringReader;
-import java.lang.ref.Reference;
-import java.lang.ref.SoftReference;
-import java.util.ArrayList;
-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.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.FileContentCache;
-import org.eclipse.jst.jsp.core.taglib.TaglibIndex;
-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 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);
-	}
-
-	private static class FacetCore {
-		long modificationStamp;
-		float version = defaultWebAppVersion;
-	}
-
-	/**
-	 * Represntation 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) {
-						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);
-						}
-					}
-					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 float defaultWebAppVersion = 2.4f;
-	private static String EL_IGNORED = "el-ignored";
-	private static final String FACET_FACET = "facet";
-	private static final String FACET_INSTALLED = "installed";
-	private static final String FACET_VERSION = "version";
-	private static final String FACET_WEB_APP = "jst.web";
-	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;
-
-	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;
-	}
-
-	public static void start() {
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(getInstance().fResourceChangeListener, IResourceChangeEvent.POST_CHANGE);
-	}
-
-	public static void stop() {
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(getInstance().fResourceChangeListener);
-	}
-
-	private ResourceErrorHandler errorHandler;
-
-	private Map fDeploymentDescriptors = new Hashtable();
-	private Map fFacetCores = new Hashtable();
-
-	private IResourceChangeListener fResourceChangeListener = new ResourceChangeListener();
-
-	private EntityResolver resolver;
-
-
-	private DeploymentDescriptorPropertyCache() {
-		super();
-	}
-
-	private void _parseDocument(IFile file, 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(file.getFullPath(), 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(IFile file, IProgressMonitor monitor) {
-		monitor.beginTask("Reading Deployment Descriptor", 3);
-		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(file.getFullPath()));
-		InputStream is = null;
-		try {
-			InputSource inputSource = new InputSource();
-			is = file.getContents();
-			inputSource.setByteStream(is);
-			inputSource.setSystemId(file.getFullPath().toString());
-			Document document = builder.parse(inputSource);
-			_parseDocument(file, 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(file, 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 */
-		}
-		catch (CoreException e) {
-			/*
-			 * file is unreadable, create no property groups but log the
-			 * exception
-			 */
-			Logger.logException(e);
-		}
-		finally {
-			if (is != null)
-				try {
-					is.close();
-				}
-				catch (IOException e) {
-					// nothing to do
-				}
-			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(file.getFullPath(), new SoftReference(deploymentDescriptor));
-		return deploymentDescriptor;
-	}
-
-	private FacetCore fetchFacetCore(IFile facetConfigFile) {
-		FacetCore facetCore = new FacetCore();
-		facetCore.modificationStamp = facetConfigFile.getModificationStamp();
-		facetCore.version = defaultWebAppVersion;
-
-		DocumentBuilder builder = CommonXML.getDocumentBuilder(false);
-		builder.setEntityResolver(getEntityResolver());
-		builder.setErrorHandler(getErrorHandler(facetConfigFile.getFullPath()));
-		String input = null;
-		try {
-			InputSource inputSource = new InputSource();
-			input = FileContentCache.getInstance().getContents(facetConfigFile.getFullPath());
-			inputSource.setCharacterStream(new StringReader(input));
-			inputSource.setSystemId(facetConfigFile.getFullPath().toString());
-			Document document = builder.parse(inputSource);
-			NodeList installedList = document.getElementsByTagName(FACET_INSTALLED);
-			for (int i = 0; i < installedList.getLength(); i++) {
-				Element installed = (Element) installedList.item(i);
-				String facetName = installed.getAttribute(FACET_FACET);
-				if (FACET_WEB_APP.equals(facetName)) {
-					try {
-						facetCore.version = Float.valueOf(installed.getAttribute(FACET_VERSION)).floatValue();
-					}
-					catch (NumberFormatException e) {
-						// badly written file
-					}
-				}
-			}
-		}
-		catch (SAXException e1) {
-			Logger.logException(e1);
-		}
-		catch (IOException e1) {
-			// unlikely
-		}
-		fFacetCores.put(facetConfigFile.getFullPath(), new SoftReference(facetCore));
-		return facetCore;
-	}
-
-	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;
-		IPath contextRoot = TaglibIndex.getContextRoot(fullPath);
-		if (contextRoot != null) {
-			IPath webxmlPath = contextRoot.append(WEB_INF_WEB_XML);
-			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(webxmlFile, new NullProgressMonitor());
-				}
-
-				if (descriptor.version != null) {
-					version = descriptor.version.floatValue();
-					return convertSpecVersions(version);
-				}
-			}
-		}
-		// Parse the .settings/org.eclipse.wst.common.project.facet.core.xml
-		IPath facetConfigPath = new Path(fullPath.makeAbsolute().segment(0)).append(".settings/org.eclipse.wst.common.project.facet.core.xml");
-		IFile facetConfigFile = ResourcesPlugin.getWorkspace().getRoot().getFile(facetConfigPath);
-		if (facetConfigFile.isAccessible()) {
-			FacetCore facetCore = null;
-			Reference facetCoreHolder = (Reference) fFacetCores.get(facetConfigPath);
-			if (facetCoreHolder == null || ((facetCore = (FacetCore) facetCoreHolder.get()) == null) || (facetCore.modificationStamp == IResource.NULL_STAMP) || (facetCore.modificationStamp != facetConfigFile.getModificationStamp())) {
-				facetCore = fetchFacetCore(facetConfigFile);
-				version = facetCore.version;
-			}
-
-		}
-		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 contextRoot = TaglibIndex.getContextRoot(jspFilePath);
-		if (contextRoot == null)
-			return NO_PROPERTY_GROUPS;
-
-		IPath webxmlPath = contextRoot.append(WEB_INF_WEB_XML);
-		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(webxmlFile, new NullProgressMonitor());
-		}
-
-		for (int i = 0; i < descriptor.groups.length; i++) {
-			if (descriptor.groups[i].matches(jspFilePath.removeFirstSegments(contextRoot.segmentCount()).makeAbsolute().toString(), false)) {
-				matchingGroups.add(descriptor.groups[i]);
-			}
-		}
-		if (matchingGroups.isEmpty()) {
-			for (int i = 0; i < descriptor.groups.length; i++) {
-				if (descriptor.groups[i].matches(jspFilePath.removeFirstSegments(contextRoot.segmentCount()).toString(), true)) {
-					matchingGroups.add(descriptor.groups[i]);
-				}
-			}
-		}
-		return (PropertyGroup[]) matchingGroups.toArray(new PropertyGroup[matchingGroups.size()]);
-	}
-
-	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
deleted file mode 100644
index 9a58ad2..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/HeadParserToken.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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.jst.jsp.core.internal.contenttype;
-
-public class HeadParserToken {
-	private int fStart;
-
-	private String fText;
-	private String fType;
-
-	protected HeadParserToken() {
-		super();
-	}
-
-	public HeadParserToken(String type, int start, String text) {
-		this();
-		fType = type;
-		fStart = start;
-		fText = text;
-
-	}
-
-	public String getText() {
-		return fText;
-	}
-
-	public String getType() {
-		return fType;
-	}
-
-	public String toString() {
-		return ("text: " + fText + " offset: " + fStart + " type: " + fType); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-}
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
deleted file mode 100644
index 99c7477..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/IntStack.java
+++ /dev/null
@@ -1,99 +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.jst.jsp.core.internal.contenttype;
-
-/*
- * 
- * A non-resizable class implementing the behavior of java.util.Stack, but
- * directly for the <code> integer </code> primitive.
- */
-import java.util.EmptyStackException;
-
-public class IntStack {
-	private int[] list = null;
-
-	private int size = 0;
-
-	public IntStack() {
-		this(100);
-	}
-
-	public IntStack(int maxdepth) {
-		super();
-		list = new int[maxdepth];
-		initialize();
-	}
-
-	public void clear() {
-		initialize();
-	}
-
-	public boolean empty() {
-		return size == 0;
-	}
-
-	public int get(int slot) {
-		return list[slot];
-	}
-
-	private void initialize() {
-		for (int i = 0; i < list.length; i++)
-			list[i] = -1;
-	}
-
-	/**
-	 * Returns the int at the top of the stack without removing it
-	 * 
-	 * @return int at the top of this stack.
-	 * @exception EmptyStackException
-	 *                when empty.
-	 */
-	public int peek() {
-		if (size == 0)
-			throw new EmptyStackException();
-		return list[size - 1];
-	}
-
-	/**
-	 * Removes and returns the int at the top of the stack
-	 * 
-	 * @return int at the top of this stack.
-	 * @exception EmptyStackException
-	 *                when empty.
-	 */
-	public int pop() {
-		int value = peek();
-		list[size - 1] = -1;
-		size--;
-		return value;
-	}
-
-	/**
-	 * Pushes an item onto the top of this stack.
-	 * 
-	 * @param newValue -
-	 *            the int to be pushed onto this stack.
-	 * @return the <code>newValue</code> argument.
-	 */
-	public int push(int newValue) {
-		if (size == list.length) {
-			throw new StackOverflowError();
-		}
-		list[size++] = newValue;
-		return newValue;
-	}
-
-	public int size() {
-		return list.length;
-	}
-}
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
deleted file mode 100644
index a7f549b..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPHeadTokenizer.java
+++ /dev/null
@@ -1,2113 +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
- *******************************************************************************/
-/*nlsXXX*/
-package org.eclipse.jst.jsp.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;
-
-
-
-
-
-
-/**
- * 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>
- */
-public class JSPHeadTokenizer {
-
-  /** This character denotes the end of file */
-  public static final int YYEOF = -1;
-
-  /** initial size of the lookahead buffer */
-  private static final int ZZ_BUFFERSIZE = 8192;
-
-  /** lexical states */
-  public static final int YYINITIAL = 0;
-  public static final int UnDelimitedString = 12;
-  public static final int DQ_STRING = 8;
-  public static final int SQ_STRING = 10;
-  public static final int ST_XMLDecl = 2;
-  public static final int ST_PAGE_DIRECTIVE = 4;
-  public static final int QuotedAttributeValue = 6;
-
-  /**
-   * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
-   * ZZ_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 static final int ZZ_LEXSTATE[] = { 
-     0,  1,  2,  2,  3,  3,  4,  4,  5,  5,  6,  6,  7, 7
-  };
-
-  /** 
-   * 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";
-
-  /** 
-   * Translates characters to character classes
-   */
-  private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
-
-  /** 
-   * Translates DFA states to action switch labels.
-   */
-  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";
-
-  private static int [] zzUnpackAction() {
-    int [] result = new int[214];
-    int offset = 0;
-    offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
-    return result;
-  }
-
-  private static int zzUnpackAction(String packed, int offset, int [] result) {
-    int i = 0;       /* index in packed string  */
-    int j = offset;  /* index in unpacked array */
-    int l = packed.length();
-    while (i < l) {
-      int count = packed.charAt(i++);
-      int value = packed.charAt(i++);
-      do result[j++] = value; while (--count > 0);
-    }
-    return j;
-  }
-
-
-  /* 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;
-
-  /* error messages for the codes above */
-  private static final String ZZ_ERROR_MSG[] = {
-    "Unkown internal scanner error",
-    "Error: could not match input",
-    "Error: pushback value was too large"
-  };
-
-  /** the input device */
-  private java.io.Reader zzReader;
-
-  /** the current state of the DFA */
-  private int zzState;
-
-  /** the current lexical state */
-  private int zzLexicalState = YYINITIAL;
-
-  /** this buffer contains the current text to be matched and is
-      the source of the yytext() string */
-  private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
-
-  /** 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;
-
-  /** startRead marks the beginning of the yytext() string in the buffer */
-  private int zzStartRead;
-
-  /** endRead marks the last character in the buffer, that has been read
-      from input */
-  private int zzEndRead;
-
-  /** the number of characters up to the start of the matched text */
-  private int yychar;
-
-  /** 
-   * zzAtBOL == true <=> the scanner is currently at the beginning of a line
-   */
-  private boolean zzAtBOL = true;
-
-  /** zzAtEOF == true <=> the scanner is at the EOF */
-  private boolean zzAtEOF;
-
-  /** denotes if the user-EOF-code has already been executed */
-  private boolean zzEOFDone;
-
-  /* user code: */
-
-
-
-
-        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;
-        private boolean isXHTML;
-        private boolean isWML;
-
-
-        public JSPHeadTokenizer() {
-                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;
-                isXHTML=false;
-                isWML=false;
-
-
-        }
-
-
-        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);
-        }
-        
-        public boolean isXHTML() {
-            return isXHTML;
-        }
-        public boolean isWML() {
-            return isWML;
-        }        
-
-
-
-  /**
-   * 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 JSPHeadTokenizer(java.io.Reader in) {
-    this.zzReader = 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 JSPHeadTokenizer(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 [] zzUnpackCMap(String packed) {
-    char [] map = new char[0x10000];
-    int i = 0;  /* index in packed string  */
-    int j = 0;  /* index in unpacked array */
-    while (i < 192) {
-      int  count = packed.charAt(i++);
-      char value = packed.charAt(i++);
-      do map[j++] = value; while (--count > 0);
-    }
-    return map;
-  }
-
-
-  /**
-   * Refills the input buffer.
-   *
-   * @return      <code>false</code>, iff there was new input.
-   * 
-   * @exception   java.io.IOException  if any I/O-Error occurs
-   */
-  private boolean zzRefill() throws java.io.IOException {
-
-    /* first: make room (if you can) */
-    if (zzStartRead > 0) {
-      System.arraycopy(zzBuffer, zzStartRead,
-                       zzBuffer, 0,
-                       zzEndRead-zzStartRead);
-
-      /* translate stored positions */
-      zzEndRead-= zzStartRead;
-      zzCurrentPos-= zzStartRead;
-      zzMarkedPos-= zzStartRead;
-      zzPushbackPos-= zzStartRead;
-      zzStartRead = 0;
-    }
-
-    /* is the buffer big enough? */
-    if (zzCurrentPos >= zzBuffer.length) {
-      /* if not: blow it up */
-      char newBuffer[] = new char[zzCurrentPos*2];
-      System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
-      zzBuffer = newBuffer;
-    }
-
-    /* finally: fill the buffer with new input */
-    int numRead = zzReader.read(zzBuffer, zzEndRead,
-                                            zzBuffer.length-zzEndRead);
-
-    if (numRead < 0) {
-      return true;
-    }
-    else {
-      zzEndRead+= numRead;
-      return false;
-    }
-  }
-
-    
-  /**
-   * Closes the input stream.
-   */
-  public final void yyclose() throws java.io.IOException {
-    zzAtEOF = true;            /* indicate end of file */
-    zzEndRead = zzStartRead;  /* invalidate buffer    */
-
-    if (zzReader != null)
-      zzReader.close();
-  }
-
-
-  /**
-   * Resets the scanner to read from a new input stream.
-   * Does not close the old reader.
-   *
-   * All internal variables are reset, the old input stream 
-   * <b>cannot</b> be reused (internal buffer is discarded and lost).
-   * Lexical state is set to <tt>ZZ_INITIAL</tt>.
-   *
-   * @param reader   the new input stream 
-   */
-  public final void yyreset(java.io.Reader reader) {
-    zzReader = reader;
-    zzAtBOL  = true;
-    zzAtEOF  = false;
-    zzEndRead = zzStartRead = 0;
-    zzCurrentPos = zzMarkedPos = zzPushbackPos = 0;
-    yychar = 0;
-    zzLexicalState = YYINITIAL;
-  }
-
-
-  /**
-   * Returns the current lexical state.
-   */
-  public final int yystate() {
-    return zzLexicalState;
-  }
-
-
-  /**
-   * Enters a new lexical state
-   *
-   * @param newState the new lexical state
-   */
-  public final void yybegin(int newState) {
-    zzLexicalState = newState;
-  }
-
-
-  /**
-   * Returns the text matched by the current regular expression.
-   */
-  public final String yytext() {
-    return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
-  }
-
-
-  /**
-   * Returns the character at position <tt>pos</tt> from the 
-   * matched text. 
-   * 
-   * It is equivalent to yytext().charAt(pos), but faster
-   *
-   * @param pos the position of the character to fetch. 
-   *            A value from 0 to yylength()-1.
-   *
-   * @return the character at position pos
-   */
-  public final char yycharat(int pos) {
-    return zzBuffer[zzStartRead+pos];
-  }
-
-
-  /**
-   * Returns the length of the matched text region.
-   */
-  public final int yylength() {
-    return zzMarkedPos-zzStartRead;
-  }
-
-
-  /**
-   * Reports an error that occured while scanning.
-   *
-   * In a wellformed scanner (no or only correct usage of 
-   * yypushback(int) and a match-all fallback rule) this method 
-   * will only be called with things that "Can't Possibly Happen".
-   * If this method is called, something is seriously wrong
-   * (e.g. a JFlex bug producing a faulty scanner etc.).
-   *
-   * Usual syntax/scanner level error handling should be done
-   * in error fallback rules.
-   *
-   * @param   errorCode  the code of the errormessage to display
-   */
-  private void zzScanError(int errorCode) {
-    String message;
-    try {
-      message = ZZ_ERROR_MSG[errorCode];
-    }
-    catch (ArrayIndexOutOfBoundsException e) {
-      message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
-    }
-
-    throw new Error(message);
-  } 
-
-
-  /**
-   * 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()!
-   */
-  public void yypushback(int number)  {
-    if ( number > yylength() )
-      zzScanError(ZZ_PUSHBACK_2BIG);
-
-    zzMarkedPos -= number;
-  }
-
-
-  /**
-   * Contains user EOF-code, which will be executed exactly once,
-   * when the end of file is reached
-   */
-  private void zzDoEOF() {
-    if (!zzEOFDone) {
-      zzEOFDone = 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   java.io.IOException  if any I/O-Error occurs
-   */
-  public String primGetNextToken() throws java.io.IOException {
-    int zzInput;
-    int zzAction;
-
-    // cached fields:
-    int zzCurrentPosL;
-    int zzMarkedPosL;
-    int zzEndReadL = zzEndRead;
-    char [] zzBufferL = zzBuffer;
-    char [] zzCMapL = ZZ_CMAP;
-
-
-    while (true) {
-      zzMarkedPosL = zzMarkedPos;
-
-      yychar+= zzMarkedPosL-zzStartRead;
-
-      if (zzMarkedPosL > zzStartRead) {
-        switch (zzBufferL[zzMarkedPosL-1]) {
-        case '\n':
-        case '\u000B':
-        case '\u000C':
-        case '\u0085':
-        case '\u2028':
-        case '\u2029':
-          zzAtBOL = true;
-          break;
-        case '\r': 
-          if (zzMarkedPosL < zzEndReadL)
-            zzAtBOL = zzBufferL[zzMarkedPosL] != '\n';
-          else if (zzAtEOF)
-            zzAtBOL = false;
-          else {
-            boolean eof = zzRefill();
-            zzMarkedPosL = zzMarkedPos;
-            zzEndReadL = zzEndRead;
-            zzBufferL = zzBuffer;
-            if (eof) 
-              zzAtBOL = false;
-            else 
-              zzAtBOL = zzBufferL[zzMarkedPosL] != '\n';
-          }
-          break;
-        default:
-          zzAtBOL = false;
-        }
-      }
-      zzAction = -1;
-
-      zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
-  
-      if (zzAtBOL)
-        zzState = ZZ_LEXSTATE[zzLexicalState+1];
-      else
-        zzState = ZZ_LEXSTATE[zzLexicalState];
-
-
-      zzForAction: {
-        while (true) {
-    
-          if (zzCurrentPosL < zzEndReadL)
-            zzInput = zzBufferL[zzCurrentPosL++];
-          else if (zzAtEOF) {
-            zzInput = YYEOF;
-            break zzForAction;
-          }
-          else {
-            // store back cached positions
-            zzCurrentPos  = zzCurrentPosL;
-            zzMarkedPos   = zzMarkedPosL;
-            boolean eof = zzRefill();
-            // get translated positions and possibly new buffer
-            zzCurrentPosL  = zzCurrentPos;
-            zzMarkedPosL   = zzMarkedPos;
-            zzBufferL      = zzBuffer;
-            zzEndReadL     = zzEndRead;
-            if (eof) {
-              zzInput = YYEOF;
-              break zzForAction;
-            }
-            else {
-              zzInput = zzBufferL[zzCurrentPosL++];
-            }
-          }
-          zzInput = zzCMapL[zzInput];
-
-          boolean zzIsFinal = false;
-          boolean zzNoLookAhead = false;
-
-          zzForNext: { switch (zzState) {
-            case 0:
-              switch (zzInput) {
-                case 10: zzIsFinal = true; zzState = 9; 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 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; zzState = 13; break zzForNext;
-                case 10: zzIsFinal = true; zzState = 14; 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;
-                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;
-                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 5:
-              switch (zzInput) {
-                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 6:
-              switch (zzInput) {
-                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 7:
-              switch (zzInput) {
-                case 11: 
-                case 41: zzIsFinal = true; zzState = 34; 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 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;
-                default: break zzForAction;
-              }
-
-            case 10:
-              switch (zzInput) {
-                case 2: zzIsFinal = true; zzNoLookAhead = true; zzState = 43; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 11:
-              switch (zzInput) {
-                case 1: zzIsFinal = true; zzNoLookAhead = true; zzState = 44; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 12:
-              switch (zzInput) {
-                case 4: zzState = 45; 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;
-                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;
-                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;
-                default: break zzForAction;
-              }
-
-            case 16:
-              switch (zzInput) {
-                case 46: zzIsFinal = true; zzNoLookAhead = true; zzState = 51; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 17:
-              switch (zzInput) {
-                case 29: zzState = 52; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 18:
-              switch (zzInput) {
-                case 22: zzState = 53; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 19:
-              switch (zzInput) {
-                case 43: zzState = 54; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 20:
-              switch (zzInput) {
-                case 17: zzState = 55; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 21:
-              switch (zzInput) {
-                case 43: zzState = 56; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 22:
-              switch (zzInput) {
-                case 46: zzIsFinal = true; zzNoLookAhead = true; zzState = 57; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 23:
-              switch (zzInput) {
-                case 46: zzIsFinal = true; zzNoLookAhead = true; zzState = 58; 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 26:
-              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 31:
-              switch (zzInput) {
-                case 46: zzIsFinal = true; zzNoLookAhead = true; zzState = 60; 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;
-                default: break zzForAction;
-              }
-
-            case 35:
-              switch (zzInput) {
-                case 10: zzState = 61; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 38:
-              switch (zzInput) {
-                case 10: zzState = 61; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 39:
-              switch (zzInput) {
-                case 16: zzState = 63; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 40:
-              switch (zzInput) {
-                case 19: zzState = 64; 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;
-                default: break zzForAction;
-              }
-
-            case 42:
-              switch (zzInput) {
-                case 30: zzState = 66; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 45:
-              switch (zzInput) {
-                case 5: zzIsFinal = true; zzNoLookAhead = true; zzState = 67; 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;
-                default: break zzForAction;
-              }
-
-            case 47:
-              switch (zzInput) {
-                case 11: zzState = 48; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 48:
-              switch (zzInput) {
-                case 12: zzState = 68; 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;
-                default: break zzForAction;
-              }
-
-            case 52:
-              switch (zzInput) {
-                case 18: zzState = 69; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 53:
-              switch (zzInput) {
-                case 37: zzState = 70; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 54:
-              switch (zzInput) {
-                case 29: zzState = 71; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 55:
-              switch (zzInput) {
-                case 29: zzState = 72; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 56:
-              switch (zzInput) {
-                case 38: zzState = 73; 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 61:
-              switch (zzInput) {
-                case 32: zzIsFinal = true; zzNoLookAhead = true; zzState = 30; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 63:
-              switch (zzInput) {
-                case 17: zzState = 74; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 64:
-              switch (zzInput) {
-                case 13: zzState = 75; 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;
-                default: break zzForAction;
-              }
-
-            case 66:
-              switch (zzInput) {
-                case 21: zzState = 78; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 68:
-              switch (zzInput) {
-                case 13: zzState = 79; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 69:
-              switch (zzInput) {
-                case 17: zzState = 80; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 70:
-              switch (zzInput) {
-                case 30: zzState = 81; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 71:
-              switch (zzInput) {
-                case 38: zzState = 82; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 72:
-              switch (zzInput) {
-                case 19: zzState = 83; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 73:
-              switch (zzInput) {
-                case 22: zzState = 84; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 74:
-              switch (zzInput) {
-                case 18: zzState = 85; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 75:
-              switch (zzInput) {
-                case 14: zzState = 86; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 76:
-              switch (zzInput) {
-                case 43: zzState = 87; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 77:
-              switch (zzInput) {
-                case 43: zzState = 88; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 78:
-              switch (zzInput) {
-                case 33: zzState = 89; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 79:
-              switch (zzInput) {
-                case 14: zzState = 90; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 80:
-              switch (zzInput) {
-                case 16: zzState = 91; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 81:
-              switch (zzInput) {
-                case 26: zzState = 92; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 82:
-              switch (zzInput) {
-                case 24: zzState = 93; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 83:
-              switch (zzInput) {
-                case 22: zzState = 94; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 84:
-              switch (zzInput) {
-                case 22: zzState = 95; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 85:
-              switch (zzInput) {
-                case 19: zzState = 96; break zzForNext;
-                default: break zzForAction;
-              }
-
-            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 90:
-              switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; zzState = 101; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 91:
-              switch (zzInput) {
-                case 26: zzState = 102; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 92:
-              switch (zzInput) {
-                case 17: zzState = 103; 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;
-                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;
-                default: break zzForAction;
-              }
-
-            case 98:
-              switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; zzState = 109; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 99:
-              switch (zzInput) {
-                case 22: zzState = 98; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 100:
-              switch (zzInput) {
-                case 26: zzState = 110; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 101:
-              switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 102:
-              switch (zzInput) {
-                case 29: zzState = 111; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 103:
-              switch (zzInput) {
-                case 29: zzState = 112; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 104:
-              switch (zzInput) {
-                case 38: zzState = 113; 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;
-                default: break zzForAction;
-              }
-
-            case 107:
-              switch (zzInput) {
-                case 21: zzState = 116; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 108:
-              switch (zzInput) {
-                case 14: zzState = 117; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 109:
-              switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 110:
-              switch (zzInput) {
-                case 37: zzState = 118; 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;
-                default: break zzForAction;
-              }
-
-            case 113:
-              switch (zzInput) {
-                case 22: zzState = 121; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 114:
-              switch (zzInput) {
-                case 19: zzState = 122; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 115:
-              switch (zzInput) {
-                case 17: zzState = 123; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 116:
-              switch (zzInput) {
-                case 22: zzState = 124; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 117:
-              switch (zzInput) {
-                case 29: zzState = 125; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 118:
-              switch (zzInput) {
-                case 22: zzState = 126; 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;
-                default: break zzForAction;
-              }
-
-            case 120:
-              switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; 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;
-                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;
-                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;
-                default: break zzForAction;
-              }
-
-            case 127:
-              switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 128:
-              switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 129:
-              switch (zzInput) {
-                case 21: zzState = 135; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 130:
-              switch (zzInput) {
-                case 26: zzState = 136; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 131:
-              switch (zzInput) {
-                case 19: zzState = 137; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 132:
-              switch (zzInput) {
-                case 13: zzState = 138; 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;
-                default: break zzForAction;
-              }
-
-            case 134:
-              switch (zzInput) {
-                case 19: zzState = 140; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 135:
-              switch (zzInput) {
-                case 22: zzState = 141; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 136:
-              switch (zzInput) {
-                case 29: zzState = 142; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 137:
-              switch (zzInput) {
-                case 13: zzState = 143; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 138:
-              switch (zzInput) {
-                case 14: zzState = 144; 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;
-                default: break zzForAction;
-              }
-
-            case 140:
-              switch (zzInput) {
-                case 26: zzState = 146; 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;
-                default: break zzForAction;
-              }
-
-            case 142:
-              switch (zzInput) {
-                case 38: zzState = 148; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 143:
-              switch (zzInput) {
-                case 14: zzState = 149; 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;
-                default: break zzForAction;
-              }
-
-            case 145:
-              switch (zzInput) {
-                case 23: zzState = 151; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 146:
-              switch (zzInput) {
-                case 45: zzState = 152; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 147:
-              switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; 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;
-                default: break zzForAction;
-              }
-
-            case 149:
-              switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: break zzForNext;
-                case 21: zzState = 154; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 150:
-              switch (zzInput) {
-                case 24: zzState = 155; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 151:
-              switch (zzInput) {
-                case 19: zzState = 156; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 152:
-              switch (zzInput) {
-                case 22: zzState = 157; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 153:
-              switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 154:
-              switch (zzInput) {
-                case 24: zzState = 158; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 155:
-              switch (zzInput) {
-                case 25: zzState = 159; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 156:
-              switch (zzInput) {
-                case 19: zzState = 160; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 157:
-              switch (zzInput) {
-                case 35: zzState = 161; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 158:
-              switch (zzInput) {
-                case 25: zzState = 162; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 159:
-              switch (zzInput) {
-                case 14: zzState = 163; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 160:
-              switch (zzInput) {
-                case 21: zzState = 164; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 161:
-              switch (zzInput) {
-                case 19: zzState = 76; break zzForNext;
-                case 21: zzState = 77; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 162:
-              switch (zzInput) {
-                case 14: zzState = 165; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 163:
-              switch (zzInput) {
-                case 26: zzState = 166; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 164:
-              switch (zzInput) {
-                case 33: zzState = 167; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 165:
-              switch (zzInput) {
-                case 26: zzState = 168; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 166:
-              switch (zzInput) {
-                case 18: zzState = 169; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 167:
-              switch (zzInput) {
-                case 27: zzState = 170; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 168:
-              switch (zzInput) {
-                case 18: zzState = 171; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 169:
-              switch (zzInput) {
-                case 27: zzState = 172; break zzForNext;
-                case 9: break zzForAction;
-                default: break zzForNext;
-              }
-
-            case 170:
-              switch (zzInput) {
-                case 27: zzState = 173; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 171:
-              switch (zzInput) {
-                case 27: zzState = 174; break zzForNext;
-                case 9: break zzForAction;
-                default: break zzForNext;
-              }
-
-            case 172:
-              switch (zzInput) {
-                case 27: zzState = 175; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 169; break zzForNext;
-              }
-
-            case 173:
-              switch (zzInput) {
-                case 34: zzState = 176; 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 175:
-              switch (zzInput) {
-                case 27: break zzForNext;
-                case 16: zzState = 178; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 169; break zzForNext;
-              }
-
-            case 176:
-              switch (zzInput) {
-                case 34: zzState = 179; 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 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 179:
-              switch (zzInput) {
-                case 34: zzState = 182; 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 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 182:
-              switch (zzInput) {
-                case 35: zzState = 185; 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 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 185:
-              switch (zzInput) {
-                case 34: zzState = 188; 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 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 188:
-              switch (zzInput) {
-                case 36: zzState = 191; 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 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 191:
-              switch (zzInput) {
-                case 35: zzState = 194; 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 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 194:
-              switch (zzInput) {
-                case 17: zzState = 197; 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 196:
-              switch (zzInput) {
-                case 27: zzState = 172; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 169; break zzForNext;
-              }
-
-            case 197:
-              switch (zzInput) {
-                case 37: zzState = 199; 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 199:
-              switch (zzInput) {
-                case 38: zzState = 201; 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 201:
-              switch (zzInput) {
-                case 27: zzState = 203; 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 203:
-              switch (zzInput) {
-                case 39: zzState = 204; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 204:
-              switch (zzInput) {
-                case 40: zzState = 205; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 205:
-              switch (zzInput) {
-                case 40: zzState = 206; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 206:
-              switch (zzInput) {
-                case 40: zzState = 207; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 207:
-              switch (zzInput) {
-                case 27: zzState = 208; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 208:
-              switch (zzInput) {
-                case 12: zzState = 209; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 209:
-              switch (zzInput) {
-                case 23: zzState = 210; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 210:
-              switch (zzInput) {
-                case 19: zzState = 211; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 211:
-              switch (zzInput) {
-                case 13: zzState = 212; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 212:
-              switch (zzInput) {
-                case 14: zzIsFinal = true; zzNoLookAhead = true; zzState = 213; break zzForNext;
-                default: break zzForAction;
-              }
-
-            default:
-              // if this is ever reached, there is a serious bug in JFlex
-              zzScanError(ZZ_UNKNOWN_ERROR);
-              break;
-          } }
-
-          if ( zzIsFinal ) {
-            zzAction = zzState;
-            zzMarkedPosL = zzCurrentPosL;
-            if ( zzNoLookAhead ) break zzForAction;
-          }
-
-        }
-      }
-
-      // store back cached position
-      zzMarkedPos = zzMarkedPosL;
-
-      switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
-        case 10: 
-          { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16BE;}
-          }
-        case 27: break;
-        case 17: 
-          { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF83ByteBOM;}
-          }
-        case 28: break;
-        case 4: 
-          { yybegin(SQ_STRING); string.setLength(0);
-          }
-        case 29: 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 32: break;
-        case 24: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageEncoding;
-          }
-        case 33: break;
-        case 1: 
-          { if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}
-          }
-        case 34: 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 14: 
-          { yybegin(YYINITIAL);  return JSPHeadTokenizerConstants.PageDirectiveEnd;
-          }
-        case 40: break;
-        case 23: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageContentType;
-          }
-        case 41: break;
-        case 18: 
-          { 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 2: 
-          { yypushback(1); yybegin(UnDelimitedString); string.setLength(0);
-          }
-        case 44: break;
-        case 12: 
-          { yybegin(YYINITIAL); return XMLHeadTokenizerConstants.XMLDeclEnd;
-          }
-        case 45: break;
-        case 13: 
-          { yybegin(YYINITIAL); return JSPHeadTokenizerConstants.PageDirectiveEnd;
-          }
-        case 46: break;
-        case 25: 
-          { isWML = true;
-          }
-        case 47: break;
-        case 19: 
-          { yybegin(ST_PAGE_DIRECTIVE); return JSPHeadTokenizerConstants.PageDirectiveStart;
-          }
-        case 48: break;
-        case 21: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;
-          }
-        case 49: break;
-        case 20: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;
-          }
-        case 50: break;
-        case 16: 
-          { yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;
-          }
-        case 51: break;
-        case 3: 
-          { yybegin(DQ_STRING); string.setLength(0);
-          }
-        case 52: break;
-        default: 
-          if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
-            zzAtEOF = true;
-            zzDoEOF();
-              {
-                hasMore = false; return EncodingParserConstants.EOF;
-              }
-          } 
-          else {
-            zzScanError(ZZ_NO_MATCH);
-          }
-      }
-    }
-  }
-
-
-}
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
deleted file mode 100644
index 7b71657..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPHeadTokenizerConstants.java
+++ /dev/null
@@ -1,21 +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.core.internal.contenttype;
-
-import org.eclipse.wst.xml.core.internal.contenttype.XMLHeadTokenizerConstants;
-
-public interface JSPHeadTokenizerConstants extends XMLHeadTokenizerConstants {
-	String PageDirectiveStart = "PageDirectiveStart"; //$NON-NLS-1$
-	String PageDirectiveEnd = "PageDirectiveEnd"; //$NON-NLS-1$
-	String PageLanguage = "PageLanguage"; //$NON-NLS-1$
-	String PageEncoding = "PageEncoding"; //$NON-NLS-1$
-	String PageContentType = "PageContentType"; //$NON-NLS-1$
-}
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
deleted file mode 100644
index 5323479..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPResourceEncodingDetector.java
+++ /dev/null
@@ -1,521 +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.core.internal.contenttype;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.nio.charset.Charset;
-import java.nio.charset.IllegalCharsetNameException;
-import java.nio.charset.UnsupportedCharsetException;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.CoreException;
-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;
-import org.eclipse.wst.sse.core.internal.encoding.NonContentBasedEncodingRules;
-import org.eclipse.wst.xml.core.internal.contenttype.EncodingParserConstants;
-import org.eclipse.wst.xml.core.internal.contenttype.XMLHeadTokenizerConstants;
-
-public class JSPResourceEncodingDetector implements IResourceCharsetDetector {
-
-	private String fCharset;
-
-	private String fContentType;
-
-	private String fContentTypeValue;
-
-	private String fLanguage;
-
-	private String fPageEncodingValue;
-
-	private JSPHeadTokenizer fTokenizer;
-
-	private String fXMLDecEncodingName;
-
-	private boolean unicodeCase;
-
-	private EncodingMemento fEncodingMemento;
-
-	private boolean fHeaderParsed;
-
-	private Reader fReader;
-
-	private boolean fXHTML;
-
-	private boolean fWML;
-
-
-	/**
-	 * No Arg constructor.
-	 */
-	public JSPResourceEncodingDetector() {
-		super();
-	}
-
-	class NullMemento extends EncodingMemento {
-		/**
-		 * 
-		 */
-		public NullMemento() {
-			super();
-			String defaultCharset = NonContentBasedEncodingRules.useDefaultNameRules(null);
-			setJavaCharsetName(defaultCharset);
-			setAppropriateDefault(defaultCharset);
-			setDetectedCharsetName(null);
-		}
-
-	}
-
-	/**
-	 * @return Returns the contentType.
-	 */
-	public String getContentType() throws IOException {
-		ensureInputSet();
-		if (!fHeaderParsed) {
-			parseInput();
-			// we keep track of if header's already been parse, so can make
-			// multiple 'get' calls, without causing reparsing.
-			fHeaderParsed = true;
-			// Note: there is a "hidden assumption" here that an empty
-			// string in content should be treated same as not present.
-		}
-		return fContentType;
-	}
-
-	public String getEncoding() throws IOException {
-		return getEncodingMemento().getDetectedCharsetName();
-	}
-
-	// to ensure consist overall rules used, we'll mark as
-	// final,
-	// and require subclasses to provide certain pieces of
-	// the
-	// implementation
-	public EncodingMemento getEncodingMemento() throws IOException {
-		ensureInputSet();
-		if (!fHeaderParsed) {
-			parseInput();
-			// we keep track of if header's already been
-			// parse, so can make
-			// multiple 'get' calls, without causing
-			// reparsing.
-			fHeaderParsed = true;
-			// Note: there is a "hidden assumption" here
-			// that an empty
-			// string in content should be treated same as
-			// not present.
-		}
-		if (fEncodingMemento == null) {
-			handleSpecDefault();
-		}
-		if (fEncodingMemento == null) {
-			// safty net
-			fEncodingMemento = new NullMemento();
-		}
-		return fEncodingMemento;
-	}
-
-	public String getLanguage() throws IOException {
-		ensureInputSet();
-		if (!fHeaderParsed) {
-			parseInput();
-			fHeaderParsed = true;
-		}
-		return fLanguage;
-	}
-
-	public String getSpecDefaultEncoding() {
-		// by JSP Spec
-		final String enc = "ISO-8859-1"; //$NON-NLS-1$
-		return enc;
-	}
-
-	public EncodingMemento getSpecDefaultEncodingMemento() {
-		resetAll();
-		EncodingMemento result = null;
-		String enc = getSpecDefaultEncoding();
-		if (enc != null) {
-			createEncodingMemento(enc, EncodingMemento.DEFAULTS_ASSUMED_FOR_EMPTY_INPUT);
-			fEncodingMemento.setAppropriateDefault(enc);
-			result = fEncodingMemento;
-		}
-		return result;
-	}
-
-	/**
-	 * 
-	 */
-	public void set(InputStream inputStream) {
-		resetAll();
-		fReader = new ByteReader(inputStream);
-		try {
-			fReader.mark(CodedIO.MAX_MARK_SIZE);
-		}
-		catch (IOException e) {
-			// impossible, since we know ByteReader
-			// supports marking
-			throw new Error(e);
-		}
-	}
-
-	/**
-	 * 
-	 */
-	public void set(IStorage iStorage) throws CoreException {
-		resetAll();
-		InputStream inputStream = iStorage.getContents();
-		InputStream resettableStream = new BufferedInputStream(inputStream, CodedIO.MAX_BUF_SIZE);
-		resettableStream.mark(CodedIO.MAX_MARK_SIZE);
-		set(resettableStream);
-		// TODO we'll need to "remember" IFile, or
-		// get its (or its project's) settings, in case
-		// those are needed to handle cases when the
-		// encoding is not in the file stream.
-	}
-
-	/**
-	 * Note: this is not part of interface to help avoid confusion ... it
-	 * expected this Reader is a well formed character reader ... that is, its
-	 * all ready been determined to not be a unicode marked input stream. And,
-	 * its assumed to be in the correct position, at position zero, ready to
-	 * read first character.
-	 */
-	public void set(Reader reader) {
-		resetAll();
-		fReader = reader;
-		if (!fReader.markSupported()) {
-			fReader = new BufferedReader(fReader);
-		}
-		try {
-			fReader.mark(CodedIO.MAX_MARK_SIZE);
-		}
-		catch (IOException e) {
-			// impossble, since we just checked if markable
-			throw new Error(e);
-		}
-	}
-
-	private boolean canHandleAsUnicodeStream(String tokenType) {
-		boolean canHandleAsUnicode = false;
-		if (tokenType == EncodingParserConstants.UTF83ByteBOM) {
-			canHandleAsUnicode = true;
-			String enc = "UTF-8"; //$NON-NLS-1$
-			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) {
-			canHandleAsUnicode = true;
-			String enc = "UTF-16"; //$NON-NLS-1$
-			createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES);
-		}
-		return canHandleAsUnicode;
-	}
-
-	/**
-	 * Note: once this instance is created, trace info still needs to be
-	 * appended by caller, depending on the context its created.
-	 */
-	private void createEncodingMemento(String detectedCharsetName) {
-		fEncodingMemento = new EncodingMemento();
-		fEncodingMemento.setJavaCharsetName(getAppropriateJavaCharset(detectedCharsetName));
-		fEncodingMemento.setDetectedCharsetName(detectedCharsetName);
-		// TODO: if detectedCharset and spec default is
-		// null, need to use "work
-		// bench based" defaults.
-		fEncodingMemento.setAppropriateDefault(getSpecDefaultEncoding());
-	}
-
-	/**
-	 * There can sometimes be mulitple 'encodings' specified in a file. This
-	 * is an attempt to centralize the rules for deciding between them.
-	 * Returns encoding according to priority: 1. XML Declaration 2. page
-	 * directive pageEncoding name 3. page directive contentType charset name
-	 */
-	private String getAppropriateEncoding() {
-		String result = null;
-		if (fXMLDecEncodingName != null)
-			result = fXMLDecEncodingName;
-		else if (fPageEncodingValue != null)
-			result = fPageEncodingValue;
-		else if (fCharset != null)
-			result = fCharset;
-		return result;
-	}
-
-	/**
-	 * This method can return null, if invalid charset name (in which case
-	 * "appropriateDefault" should be used, if a name is really need for some
-	 * "save anyway" cases).
-	 * 
-	 * @param detectedCharsetName
-	 * @return
-	 */
-	private String getAppropriateJavaCharset(String detectedCharsetName) {
-		String result = null;
-		// 1. Check explicit mapping overrides from
-		// property file -- its here we pick up "rules" for cases
-		// that are not even in Java
-		result = CodedIO.checkMappingOverrides(detectedCharsetName);
-		// 2. Use the "canonical" name from JRE mappings
-		// Note: see Charset JavaDoc, the name you get one
-		// with can be alias,
-		// the name you get back is "standard" name.
-		Charset javaCharset = null;
-		try {
-			javaCharset = Charset.forName(detectedCharsetName);
-		}
-		catch (UnsupportedCharsetException e) {
-			// only set invalid, if result is same as detected -- they won't
-			// be equal if
-			// overridden
-			if (result != null && result.equals(detectedCharsetName)) {
-				fEncodingMemento.setInvalidEncoding(detectedCharsetName);
-			}
-		}
-		catch (IllegalCharsetNameException e) {
-			// only set invalid, if result is same as detected -- they won't
-			// be equal if
-			// overridden
-			if (result != null && result.equals(detectedCharsetName)) {
-				fEncodingMemento.setInvalidEncoding(detectedCharsetName);
-			}
-		}
-		// give priority to java cononical name, if present
-		if (javaCharset != null) {
-			result = javaCharset.name();
-			// but still allow overrides
-			result = CodedIO.checkMappingOverrides(result);
-		}
-		return result;
-	}
-
-	private JSPHeadTokenizer getTokinizer() {
-		if (fTokenizer == null) {
-			fTokenizer = new JSPHeadTokenizer();
-		}
-		return fTokenizer;
-	}
-
-	private void handleSpecDefault() {
-		String encodingName;
-		encodingName = getSpecDefaultEncoding();
-		if (encodingName != null) {
-			// createEncodingMemento(encodingName,
-			// EncodingMemento.USED_CONTENT_TYPE_DEFAULT);
-			fEncodingMemento = new EncodingMemento();
-			fEncodingMemento.setJavaCharsetName(encodingName);
-			fEncodingMemento.setAppropriateDefault(encodingName);
-		}
-	}
-
-	private boolean isLegalString(String valueTokenType) {
-		boolean result = false;
-		if (valueTokenType != null) {
-			result = valueTokenType.equals(EncodingParserConstants.StringValue) || valueTokenType.equals(EncodingParserConstants.UnDelimitedStringValue) || valueTokenType.equals(EncodingParserConstants.InvalidTerminatedStringValue) || valueTokenType.equals(EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue);
-		}
-		return result;
-	}
-
-
-	/**
-	 * This method should be exactly the same as what is in 
-	 * JSPHeadTokenizerTester
-	 * @param contentType
-	 */
-	private void parseContentTypeValue(String contentType) {
-		Pattern pattern = Pattern.compile(";\\s*charset\\s*=\\s*"); //$NON-NLS-1$
-		String[] parts = pattern.split(contentType);
-		if (parts.length > 0) {
-			// if only one item, it can still be charset instead of
-			// contentType
-			if (parts.length == 1) {
-				if (parts[0].length() > 6) {
-					String checkForCharset = parts[0].substring(0, 7);
-					if (checkForCharset.equalsIgnoreCase("charset")) { //$NON-NLS-1$
-						int eqpos = parts[0].indexOf('=');
-						eqpos = eqpos + 1;
-						if (eqpos < parts[0].length()) {
-							fCharset = parts[0].substring(eqpos);
-							fCharset = fCharset.trim();
-						}
-					}
-					else {
-						fContentType = parts[0];
-					}
-				}
-			}
-			else {
-				fContentType = parts[0];
-			}
-		}
-		if (parts.length > 1) {
-			fCharset = parts[1];
-		}
-	}
-
-
-	/**
-	 * Looks for what ever encoding properties the tokenizer returns. Its the
-	 * responsibility of the tokenizer to stop when appropriate and not go too
-	 * far.
-	 */
-	private void parseHeader(JSPHeadTokenizer tokenizer) throws IOException {
-		fPageEncodingValue = null;
-		fCharset = null;
-
-		HeadParserToken token = null;
-		do {
-			// don't use 'get' here (at least until reset issue fixed)
-			token = tokenizer.getNextToken();
-			String tokenType = token.getType();
-			if (canHandleAsUnicodeStream(tokenType))
-				unicodeCase = true;
-			else {
-
-				if (tokenType == XMLHeadTokenizerConstants.XMLDelEncoding) {
-					if (tokenizer.hasMoreTokens()) {
-						HeadParserToken valueToken = tokenizer.getNextToken();
-						String valueTokenType = valueToken.getType();
-						if (isLegalString(valueTokenType)) {
-							fXMLDecEncodingName = valueToken.getText();
-						}
-					}
-				}
-				else if (tokenType == JSPHeadTokenizerConstants.PageEncoding) {
-					if (tokenizer.hasMoreTokens()) {
-						HeadParserToken valueToken = tokenizer.getNextToken();
-						String valueTokenType = valueToken.getType();
-						if (isLegalString(valueTokenType)) {
-							fPageEncodingValue = valueToken.getText();
-						}
-					}
-				}
-				else if (tokenType == JSPHeadTokenizerConstants.PageContentType) {
-					if (tokenizer.hasMoreTokens()) {
-						HeadParserToken valueToken = tokenizer.getNextToken();
-						String valueTokenType = valueToken.getType();
-						if (isLegalString(valueTokenType)) {
-							fContentTypeValue = valueToken.getText();
-						}
-					}
-				}
-				else if (tokenType == JSPHeadTokenizerConstants.PageLanguage) {
-					if (tokenizer.hasMoreTokens()) {
-						HeadParserToken valueToken = tokenizer.getNextToken();
-						String valueTokenType = valueToken.getType();
-						if (isLegalString(valueTokenType)) {
-							fLanguage = valueToken.getText();
-						}
-					}
-				}
-			}
-		}
-		while (tokenizer.hasMoreTokens());
-		if (fContentTypeValue != null) {
-			parseContentTypeValue(fContentTypeValue);
-		}
-		if (tokenizer.isXHTML()) {
-			fXHTML = true;
-		}
-		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);
-			}
-		}
-	}
-
-	/**
-	 * 
-	 */
-	private void resetAll() {
-		fReader = null;
-		fHeaderParsed = false;
-		fEncodingMemento = null;
-		fCharset = null;
-		fContentTypeValue = null;
-		fPageEncodingValue = null;
-		fXMLDecEncodingName = null;
-		unicodeCase = false;
-		fXHTML=false;
-		fWML=false;
-	}
-
-
-
-	/**
-	 * convience method all subclasses can use (but not override)
-	 * 
-	 * @param detectedCharsetName
-	 * @param reason
-	 */
-	private void createEncodingMemento(String detectedCharsetName, String reason) {
-		createEncodingMemento(detectedCharsetName);
-	}
-
-	/**
-	 * convience method all subclasses can use (but not override)
-	 */
-	private void ensureInputSet() {
-		if (fReader == null) {
-			throw new IllegalStateException("input must be set before use"); //$NON-NLS-1$
-		}
-	}
-
-	public boolean isWML() throws IOException {
-		ensureInputSet();
-		if (!fHeaderParsed) {
-			parseInput();
-			// we keep track of if header's already been parse, so can make
-			// multiple 'get' calls, without causing reparsing.
-			fHeaderParsed = true;
-			// Note: there is a "hidden assumption" here that an empty
-			// string in content should be treated same as not present.
-		}
-		return fWML;
-	}
-
-	public boolean isXHTML() throws IOException {
-		ensureInputSet();
-		if (!fHeaderParsed) {
-			parseInput();
-			// we keep track of if header's already been parse, so can make
-			// multiple 'get' calls, without causing reparsing.
-			fHeaderParsed = true;
-			// Note: there is a "hidden assumption" here that an empty
-			// string in content should be treated same as not present.
-		}
-		return fXHTML;
-	}
-}
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
deleted file mode 100644
index fdf9a70..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/DocumentFactoryForJSP.java
+++ /dev/null
@@ -1,54 +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.core.internal.document;
-
-import org.eclipse.core.filebuffers.IDocumentFactory;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
-import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
-import org.eclipse.wst.sse.core.internal.document.StructuredDocumentFactory;
-import org.eclipse.wst.sse.core.internal.ltk.parser.RegionParser;
-import org.eclipse.wst.sse.core.internal.ltk.parser.TagMarker;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-
-
-public class DocumentFactoryForJSP implements IDocumentFactory {
-
-	public DocumentFactoryForJSP() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.filebuffers.IDocumentFactory#createDocument()
-	 */
-	public IDocument createDocument() {
-		IStructuredDocument structuredDocument = StructuredDocumentFactory.getNewStructuredDocumentInstance(new JSPSourceParser());
-		return structuredDocument;
-	}
-
-	public RegionParser getParser() {
-		// remember, the Loader
-		// will need to finish initialization of parser
-		// based on "embedded content"
-		JSPSourceParser parser = new JSPSourceParser();
-		// add default nestable tag list
-		addNestablePrefix(parser, JSP11Namespace.JSP_TAG_PREFIX);
-		return parser;
-	}
-
-	private void addNestablePrefix(JSPSourceParser parser, String tagName) {
-		TagMarker bm = new TagMarker(tagName);
-		parser.addNestablePrefix(bm);
-	}
-
-}
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
deleted file mode 100644
index 6b64a9b..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapter.java
+++ /dev/null
@@ -1,59 +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.core.internal.document;
-
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.EmbeddedTypeHandler;
-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;
-
-/**
- * Classes which implement this interface have two responsibilities. 
- * One is to provide
- * and embedded factory registry for JSP Aware INodeAdapter Factories
- * to use. The other is to monitor page directives and if 
- * a change in embedded type is is made, it will signal 
- * the structuredModel that it needs to reinitialize itself.
- */
-public interface PageDirectiveAdapter extends INodeAdapter {
-
-	public String getContentType();
-
-	public String getLanguage();
-
-	/**
-	 * This setter method should be called once, shortly after
-	 * initialization.
-	 */
-	void setEmbeddedType(EmbeddedTypeHandler handler);
-
-	EmbeddedTypeHandler getEmbeddedType();
-
-	/**
-	 * This method is to give this adapter a chance to use
-	 * the AdapterFactores from the EmbeddedTypeHandler
-	 * to adapt the node. Its to be used by JSPAwareAdapterFactories
-	 * to (potentially) adapt nodes from the embedded content type.
-	 */
-	INodeAdapter adapt(INodeNotifier notifier, Object type);
-
-	void addEmbeddedFactory(INodeAdapterFactory factory);
-
-	/**
-	 * Method setLanguage.
-	 * @param language
-	 */
-	void setLanguage(String language);
-
-	INodeNotifier getTarget();
-
-	public void release();
-}
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
deleted file mode 100644
index fc986da..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapterFactory.java
+++ /dev/null
@@ -1,97 +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.core.internal.document;
-
-import org.eclipse.jst.jsp.core.internal.Assert;
-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.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Node;
-
-/**
- * This class adapts document 
- * with the an instance of PageDirectiveAdapter
- */
-public class PageDirectiveAdapterFactory extends AbstractAdapterFactory implements INodeAdapterFactory {
-
-
-	private PageDirectiveAdapter pageDirectiveAdapterInstance = null;
-
-	/**
-	 * Constructor for PageDirectiveAdapterFactory.
-	 * Note: its important not to be a singleton, since
-	 * this factory needs to track its adapter(s) and release
-	 * them when they are released.
-	 * 
-	 * @param adapterKey
-	 * @param registerAdapters
-	 */
-	protected PageDirectiveAdapterFactory(Object adapterKey, boolean registerAdapters) {
-		super(adapterKey, registerAdapters);
-	}
-
-	/**
-	 * The no argument constructor assumes its a 
-	 * Factory for PageDirectiveAdapter
-	 */
-	public PageDirectiveAdapterFactory() {
-		this(PageDirectiveAdapter.class, true);
-	}
-
-	protected INodeAdapter createAdapter(INodeNotifier target) {
-		PageDirectiveAdapter result = null;
-		if (target instanceof IDOMNode) {
-			IDOMNode node = (IDOMNode) target;
-			if (node.getNodeType() == Node.DOCUMENT_NODE) {
-				result = getAdapterInstance(target);
-			}
-
-		}
-		return result;
-	}
-
-	public void release() {
-		if (pageDirectiveAdapterInstance != null) {
-			pageDirectiveAdapterInstance.release();
-		}
-	}
-
-	/**
-	 * We assume this is only called for 'document' target
-	 */
-	protected PageDirectiveAdapter getAdapterInstance(INodeNotifier target) {
-		// if our instance already exists with a different
-		// target, then, somehow, the document node must 
-		// have changed for a model, so we should release 
-		// old adapter and create new one for new document 
-		// node. This is probably a programming error.
-		if (pageDirectiveAdapterInstance != null) {
-			if (target != pageDirectiveAdapterInstance.getTarget()) {
-				release();
-				pageDirectiveAdapterInstance = new PageDirectiveAdapterImpl(target);
-			}
-			// else return the one we have
-		}
-		else {
-			// if is equal to null, create a new one
-			pageDirectiveAdapterInstance = new PageDirectiveAdapterImpl(target);
-		}
-		Assert.isNotNull(pageDirectiveAdapterInstance, "pageDipageDirectiveAdapterInstance was null"); //$NON-NLS-1$
-		return pageDirectiveAdapterInstance;
-	}
-
-	public INodeAdapterFactory copy() {
-
-		return new PageDirectiveAdapterFactory(getAdapterKey(), isShouldRegisterAdapter());
-	}
-}
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
deleted file mode 100644
index 5a383f8..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapterImpl.java
+++ /dev/null
@@ -1,704 +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.core.internal.document;
-
-import java.io.IOException;
-import java.util.ArrayList;
-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.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.IDocumentExtension3;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.jst.jsp.core.internal.Logger;
-import org.eclipse.jst.jsp.core.internal.contentproperties.JSPFContentProperties;
-import org.eclipse.jst.jsp.core.internal.modelhandler.EmbeddedTypeStateData;
-import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
-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.ltk.modelhandler.EmbeddedTypeHandler;
-import org.eclipse.wst.sse.core.internal.modelhandler.EmbeddedTypeRegistry;
-import org.eclipse.wst.sse.core.internal.modelhandler.EmbeddedTypeRegistryImpl;
-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.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;
-
-import com.ibm.icu.util.StringTokenizer;
-
-/**
- * This class has the responsibility to provide an embedded factory registry
- * for JSP Aware INodeAdapter Factories to use.
- * 
- * Typically, the embedded type is to be considered a feature of the document,
- * so JSP Aware AdpaterFactories should call
- * getAdapter(PageDirectiveAdapter.class) directoy on the document (or owning
- * document) node.
- */
-public class PageDirectiveAdapterImpl implements PageDirectiveAdapter {
-
-	protected static final String STR_CHARSET = "charset"; //$NON-NLS-1$
-	private final static Object adapterType = PageDirectiveAdapter.class;
-	private IStructuredModel model;
-	protected 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$
-	protected final String[] JAVA_LANGUAGE_KEYS = new String[]{"java"}; //$NON-NLS-1$
-
-	/**
-	 * Constructor for PageDirectiveAdapterImpl.
-	 */
-	public PageDirectiveAdapterImpl(INodeNotifier target) {
-		super();
-		notifierAtCreation = target;
-		// we need to remember our instance of model,
-		// in case we need to "signal" a re-init needed.
-		if (target instanceof IDOMNode) {
-			IDOMNode node = (IDOMNode) target;
-			model = node.getModel();
-		}
-
-	}
-
-	/**
-	 * parses the full contentType value into its two parts the contentType,
-	 * and the charset, if present. Note: this method is a lightly modified
-	 * version of a method in AbstractHeadParser. There, we're mostly
-	 * interested in the charset part of contentTypeValue. Here, we're mostly
-	 * interested in the mimeType part.
-	 */
-	private String getMimeTypeFromContentTypeValue(String contentTypeValue) {
-		if (contentTypeValue == null)
-			return null;
-		String cleanContentTypeValue = StringUtils.stripNonLetterDigits(contentTypeValue);
-		StringTokenizer tokenizer = new StringTokenizer(cleanContentTypeValue, ";= \t\n\r\f"); //$NON-NLS-1$
-		int tLen = tokenizer.countTokens();
-		// if contains encoding should have three tokens, the mimetype, the
-		// word 'charset', and the encoding value
-		String[] tokens = new String[tLen];
-		int j = 0;
-		while (tokenizer.hasMoreTokens()) {
-			tokens[j] = tokenizer.nextToken();
-			j++;
-		}
-		// 
-		// Following is the common form for target expression
-		// <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-		// But apparrently is also valid without the content type there,
-		// just the charset, as follows:
-		// <META http-equiv="Content-Type" content="charset=UTF-8">
-		// So we'll loop through tokens and key off of 'charset'
-
-		int charsetPos = -1;
-		for (int i = 0; i < tokens.length; i++) {
-			if (tokens[i].equalsIgnoreCase(STR_CHARSET)) {
-				charsetPos = i;
-				break;
-			}
-		}
-		// String charset = null;
-		String contentType = null;
-		if (charsetPos > -1) {
-			// case where charset was present
-			// int charsetValuePos = charsetPos + 1;
-			// if (charsetValuePos < tokens.length) {
-			// charset = tokens[charsetValuePos];
-			// }
-			int contentTypeValuePos = charsetPos - 1;
-			if (contentTypeValuePos > -1) {
-				contentType = tokens[contentTypeValuePos];
-			}
-		}
-		else {
-			// charset was not present, so if there's
-			// a value, we assume its the contentType value
-			if (tokens.length > 0) {
-				contentType = tokens[0];
-			}
-		}
-		return contentType;
-	}
-
-	private EmbeddedTypeHandler embeddedTypeHandler;
-	private List embeddedFactoryRegistry = new ArrayList();
-	private String cachedLanguage;
-	private String cachedContentType;
-	private INodeNotifier notifierAtCreation;
-
-	private int firstLanguagePosition = -1;
-	private int firstContentTypePosition = -1;
-
-	/*
-	 * @see INodeAdapter#isAdapterForType(Object)
-	 */
-	public boolean isAdapterForType(Object type) {
-		return (type == adapterType);
-	}
-
-	/*
-	 * @see INodeAdapter#notifyChanged(INodeNotifier, int, Object, Object,
-	 *      Object, int)
-	 */
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-	}
-
-	public void setEmbeddedType(EmbeddedTypeHandler handler) {
-		// if really the same handler, no need for further processing
-		if (embeddedTypeHandler == handler) {
-			return;
-		}
-		// then one exists, and the new one is truely different, so we need to
-		// release and remove current factories
-		if (embeddedTypeHandler != null) {
-			Iterator list = embeddedFactoryRegistry.iterator();
-			while (list.hasNext()) {
-				INodeAdapterFactory factory = (INodeAdapterFactory) list.next();
-				factory.release();
-			}
-
-			embeddedFactoryRegistry.clear();
-		}
-
-		embeddedTypeHandler = handler;
-		// when the handler is set, "transfer" its factories to our own list.
-		// note: our own list may also be added to else where, such as on
-		// "editor side".
-		if (embeddedTypeHandler != null) {
-			Iterator iterator = embeddedTypeHandler.getAdapterFactories().iterator();
-			while (iterator.hasNext()) {
-				INodeAdapterFactory factory = (INodeAdapterFactory) iterator.next();
-				embeddedFactoryRegistry.add(factory);
-			}
-		}
-	}
-
-	/**
-	 * @see PageDirectiveAdapter#adapt(INodeNotifier, Object)
-	 */
-	public INodeAdapter adapt(INodeNotifier notifier, Object type) {
-		INodeAdapter result = null;
-		// if embeddedContentType hasn't been set,
-		// then we can not adapt it.
-		if (embeddedTypeHandler != null) {
-			if (embeddedFactoryRegistry != null) {
-				Iterator iterator = embeddedFactoryRegistry.iterator();
-				INodeAdapterFactory factory = null;
-				while (iterator.hasNext()) {
-					factory = (INodeAdapterFactory) iterator.next();
-					if (factory.isFactoryForType(type)) {
-						result = factory.adapt(notifier);
-						break;
-					}
-				}
-			}
-		}
-		return result;
-
-	}
-
-	/**
-	 * @see PageDirectiveAdapter#getEmbeddedType()
-	 */
-	public EmbeddedTypeHandler getEmbeddedType() {
-		if (embeddedTypeHandler == null) {
-			embeddedTypeHandler = getDefaultEmbeddedType();
-		}
-		return embeddedTypeHandler;
-	}
-
-	public void addEmbeddedFactory(INodeAdapterFactory factory) {
-		// should we check if already exists in list?
-		embeddedFactoryRegistry.add(factory);
-	}
-
-	// /**
-	// * Used by PageDirectiveWatchers to signal that some important attribute
-	// has changed, and
-	// * any cached values should be re-calcuated
-	// */
-	// void changed() {
-	// // we won't actually check if change is needed, if the model state is
-	// already changing.
-	// if (!model.isReinitializationNeeded()) {
-	// // go through our list of page watcher adapters, and updates the
-	// attributes
-	// // we're interested in, if and only if they are the earliest occurance
-	// in the resource
-	// String potentialContentType = null;
-	// String potentialLanguage = null;
-	// int contentTypePosition = -1;
-	// int languagePosition = -1;
-	// Iterator iterator = pageDirectiveWatchers.iterator();
-	// while (iterator.hasNext()) {
-	// PageDirectiveWatcher pdWatcher = (PageDirectiveWatcher)
-	// iterator.next();
-	// String contentType = pdWatcher.getContentType();
-	// String language = pdWatcher.getLanguage();
-	// int offset = pdWatcher.getOffset();
-	// if (potentialContentType == null || (hasValue(contentType) && (offset <
-	// contentTypePosition))) {
-	// potentialContentType = contentType;
-	// contentTypePosition = offset;
-	// }
-	// }
-	// // now we have the best candiates for cached values, let's see if
-	// they've really changed from
-	// // what we had. If so, note we go through the setters so side effects
-	// can take place there.
-	// potentialContentType =
-	// getMimeTypeFromContentTypeValue(potentialContentType);
-	// if (potentialContentType == null || potentialContentType.length() == 0)
-	// {
-	// //potentialContentType = getDefaultContentType();
-	// } else {
-	// setCachedContentType(potentialContentType);
-	// }
-	//
-	// if (potentialLanguage != null && hasValue(potentialLanguage)) {
-	// setCachedLanguage(potentialLanguage);
-	// }
-	// }
-	// }
-	void changedContentType(int elementOffset, String newValue) {
-		// only need to process if this new value is
-		// earlier in the file than our current value
-		if (firstContentTypePosition == -1 || elementOffset <= firstContentTypePosition) {
-			// dw_TODO: update embedded partitioner in JSP document
-			// partitioner
-			// nsd_TODO: update embedded partitioner in JSP document
-			// partitioner
-
-			// no need to change current value, if we're told some
-			// earlier value is null or blank (sounds like an error, anyway)
-			if (hasValue(newValue)) {
-				firstContentTypePosition = elementOffset;
-				String potentialContentType = getMimeTypeFromContentTypeValue(newValue);
-				// only do the set processing if different
-				// from what it already is
-				// if (!potentialContentType.equalsIgnoreCase(cachedLanguage))
-				// {
-				setCachedContentType(potentialContentType);
-				// }
-			}
-		}
-	}
-
-	/**
-	 * Used by PageDirectiveWatchers to signal that some important attribute
-	 * has changed, and any cached values should be re-calcuated
-	 */
-	void changedLanguage(int elementOffset, String newValue) {
-		// only need to process if this new value is
-		// earlier in the file than our current value
-		// has to be less than or equal to, in case our previous earliest one,
-		// is itself changing!
-		if (firstLanguagePosition == -1 || elementOffset <= firstLanguagePosition) {
-
-			// no need to change current value, if we're told some
-			// earlier value is null or blank (sounds like an error, anyway)
-			if (hasValue(newValue)) {
-				firstLanguagePosition = elementOffset;
-				// only do the set processing if different
-				// from what it already is
-				if (!newValue.equalsIgnoreCase(cachedLanguage)) {
-					setCachedLanguage(newValue);
-				}
-			}
-
-			// dw_TODO: set language in document partitioner
-			// nsd_TODO: set language in document partitioner
-		}
-	}
-
-	/**
-	 * Used by PageDirectiveWatchers to signal that some important attribute
-	 * has changed, and any cached values should be re-calcuated
-	 */
-	void changedPageEncoding(int elementOffset, String newValue) {
-
-		// we don't currently track active value, since
-		// just need during read and write (where its
-		// calculated. We will need in future, to
-		// acurately clone a model and to display
-		// "current encoding" to user in status bar.
-	}
-
-	/**
-	 * Method hasValue.
-	 * 
-	 * @param contentType
-	 * @return boolean
-	 */
-	private boolean hasValue(String value) {
-		if (value != null && value.length() > 0)
-			return true;
-		else
-			return false;
-	}
-
-	/**
-	 * Returns the cachedContentType.
-	 * 
-	 * @return String
-	 */
-	public String getContentType() {
-		if (cachedContentType == null) {
-			cachedContentType = getDefaultContentType();
-		}
-		return cachedContentType;
-	}
-
-	/**
-	 * Method getDefaultContentType.
-	 * 
-	 * @return String
-	 */
-	private String getDefaultContentType() {
-		String type = null;
-		IFile file = getFile(model);
-		if (file != null) {
-			type = JSPFContentProperties.getProperty(JSPFContentProperties.JSPCONTENTTYPE, file, true);
-		}
-		// BUG136468
-		if (type == null)
-			type = "text/html"; //$NON-NLS-1$
-		return type;
-	}
-
-	/**
-	 * Returns the cachedLanguage.
-	 * 
-	 * @return String
-	 */
-	public String getLanguage() {
-		if (cachedLanguage == null)
-			cachedLanguage = getDefaultLanguage();
-		return cachedLanguage;
-	}
-
-	/**
-	 * Method getDefaultLanguage.
-	 * 
-	 * @return String
-	 */
-	private String getDefaultLanguage() {
-		String language = null;
-		IFile file = getFile(model);
-		if (file != null) {
-			language = JSPFContentProperties.getProperty(JSPFContentProperties.JSPLANGUAGE, file, true);
-		}
-		// BUG136468
-		if (language == null)
-			language = "java"; //$NON-NLS-1$
-		return language;
-	}
-
-	/**
-	 * Sets the cachedContentType.
-	 * 
-	 * @param cachedContentType
-	 *            The cachedContentType to set
-	 */
-	public void setCachedContentType(String newContentType) {
-		/*
-		 * if the passed in value is the same as existing, there's nothing to
-		 * do. if its different, then we need to change the contentHandler as
-		 * well and, more to the point, signal a re-initializtation is needed.
-		 * 
-		 * Note: if the value we're getting set to does not have a handler in
-		 * the registry, we'll actually not set it to null or anything, we'll
-		 * just continue on with the one we have. This is pretty important to
-		 * avoid re-initializing on every key stroke if someone is typing in a
-		 * new content type, but haven't yet finished the whole "word".
-		 * However, if an contentType is not recognized, the registry returns
-		 * the one for XML.
-		 */
-		
-		/* set the actual value first, the rest is "side effect" */
-		this.cachedContentType = newContentType;
-
-		/* see if we need to update embedded handler */
-
-		/*
-		 * If the document is a type of XHTML, we do not use the page
-		 * directive's contentType to determine the embedded type ... its
-		 * XHTML! ... and, eventually, the DOCTYPE adapter should determine
-		 * if/when it needs to change.
-		 */
-
-		/* just safety check, can be removed later, early in release cycle */
-		if (model == null) {
-			// throw IllegalStateException("model should never be null in
-			// PageDirective Adapter");
-			Logger.log(Logger.ERROR, "model should never be null in PageDirective Adapter");
-			return;
-		}
-
-		EmbeddedTypeHandler potentialNewandler = null;
-		IContentDescription contentDescription = getContentDescription(model.getStructuredDocument());
-		Object prop = contentDescription.getProperty(IContentDescriptionForJSP.CONTENT_FAMILY_ATTRIBUTE);
-		if (prop != null) {
-			if (ContentTypeFamilyForHTML.HTML_FAMILY.equals(prop)) {
-				potentialNewandler = EmbeddedTypeRegistryImpl.getInstance().getTypeFor("text/html");
-			}
-		}
-
-		if (potentialNewandler == null) {
-			/*
-			 * getHandler should always return something (never null), based
-			 * on the rules in the factory.
-			 */
-			potentialNewandler = getHandlerFor(this.cachedContentType);
-		}
-		/*
-		 * we do this check for re-init here, instead of in setEmbeddedType,
-		 * since setEmbeddedType is called during the normal initializtion
-		 * process, when re-init is not needed (since there is no content)
-		 */
-		if (embeddedTypeHandler == null) {
-			setEmbeddedType(potentialNewandler);
-		}
-		else if (potentialNewandler != null && embeddedTypeHandler != potentialNewandler) {
-			/*
-			 * changing this embedded handler here may be in the middle of a
-			 * notify loop. That's why we set that "it's needed". Then the
-			 * model decides when its "safe" to actually do the re-init.
-			 * 
-			 * be sure to hold oldHandler in temp var or else setEmbeddedType
-			 * will "reset" it before modelReinitNeeded(oldHandler, handler)
-			 * is called
-			 * 
-			 */
-			EmbeddedTypeHandler oldHandler = embeddedTypeHandler;
-			setEmbeddedType(potentialNewandler);
-			modelReinitNeeded(oldHandler, potentialNewandler);
-		}
-
-	}
-
-	/**
-	 * This method is used to re-init based on embeddedTypeHandler changing.
-	 * It is given priority over the language change, since there its more
-	 * important to have old and new handlers's in the stateData field.
-	 */
-	private void modelReinitNeeded(EmbeddedTypeHandler oldHandler, EmbeddedTypeHandler newHandler) {
-		if (model.isReinitializationNeeded()) {
-			System.out.println("already being initialized"); //$NON-NLS-1$
-		}
-
-		try {
-			model.aboutToChangeModel();
-			model.setReinitializeStateData(new EmbeddedTypeStateData(oldHandler, newHandler));
-			model.setReinitializeNeeded(true);
-		}
-		finally {
-			model.changedModel();
-		}
-	}
-
-	/**
-	 * Method modelReinitNeeded.
-	 */
-	private void modelReinitNeeded(String oldlanguage, String newLanguage) {
-		// bit of a short cut for now .... we dont' need language at the
-		// moment,
-		// but should set the state data
-		if (model.isReinitializationNeeded()) {
-			if (Debug.displayWarnings) {
-				System.out.println("already being initialized"); //$NON-NLS-1$
-			}
-		}
-		else {
-			try {
-				// if already being re-initialized, we don't want to
-				// reset the data in the stateData field.
-				model.aboutToChangeModel();
-				model.setReinitializeStateData(newLanguage);
-				model.setReinitializeNeeded(true);
-			}
-			finally {
-				model.changedModel();
-			}
-		}
-	}
-
-	public void setCachedLanguage(String newLanguage) {
-		if (cachedLanguage != null && languageStateChanged(cachedLanguage, newLanguage)) {
-			/*
-			 * a complete re-init overkill in current system, since really
-			 * just need for the line style providers, BUT, a change in
-			 * language could effect other things, and we don't expect to
-			 * happen often so a little overkill isn't too bad. The deep
-			 * problem is that there is no way to get at the "edit side"
-			 * adpapters specifically here in model class. we have to do the
-			 * model changed sequence to get the screen to update. do not
-			 * signal again, if signaled once (the reinit state data will be
-			 * wrong. (this needs to be improved in future)
-			 */
-			if (!model.isReinitializationNeeded()) {
-				modelReinitNeeded(cachedLanguage, newLanguage);
-			}
-		}
-		setLanguage(newLanguage);
-	}
-
-	/**
-	 * This is public access method, used especially from loader, for JSP
-	 * Fragment support.
-	 */
-	public void setLanguage(String newLanguage) {
-		this.cachedLanguage = newLanguage;
-		IDocumentPartitioner partitioner = ((IDocumentExtension3) model.getStructuredDocument()).getDocumentPartitioner(IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING);
-		if (partitioner instanceof StructuredTextPartitionerForJSP) {
-			((StructuredTextPartitionerForJSP) partitioner).setLanguage(newLanguage);
-		}
-	}
-
-	/**
-	 * Method languageStateChange.
-	 * 
-	 * @param cachedLanguage
-	 * @param newLanguage
-	 * @return boolean
-	 */
-	private boolean languageStateChanged(String cachedLanguage, String newLanguage) {
-		boolean result = false; // languages are equal, then no change in
-		// state
-		if (!cachedLanguage.equalsIgnoreCase(newLanguage)) {
-			boolean oldLanguageKnown = languageKnown(cachedLanguage);
-			boolean newLanguageKnown = languageKnown(newLanguage);
-			result = newLanguageKnown || (!newLanguageKnown && oldLanguageKnown);
-		}
-		return result;
-	}
-
-	/**
-	 * Method languageKnown.
-	 * 
-	 * @param cachedLanguage
-	 * @return boolean
-	 */
-	private boolean languageKnown(String language) {
-		return (StringUtils.contains(JAVA_LANGUAGE_KEYS, language, false) || StringUtils.contains(JAVASCRIPT_LANGUAGE_KEYS, language, false));
-	}
-
-	private IFile getFile(IStructuredModel model) {
-		String location = model.getBaseLocation();
-		if (location != null) {
-			IPath path = new Path(location);
-			if (path.segmentCount() > 1) {
-				return ResourcesPlugin.getWorkspace().getRoot().getFile(path);
-			}
-		}
-		return null;
-	}
-
-	private EmbeddedTypeHandler getHandlerFor(String contentType) {
-		EmbeddedTypeRegistry reg = getEmbeddedContentTypeRegistry();
-		EmbeddedTypeHandler handler = null;
-		if (reg != null)
-			handler = reg.getTypeFor(contentType);
-		return handler;
-	}
-
-	/**
-	 * Gets the embeddedContentTypeRegistry.
-	 * 
-	 * @return Returns a EmbeddedContentTypeRegistry
-	 */
-	private EmbeddedTypeRegistry getEmbeddedContentTypeRegistry() {
-		return EmbeddedTypeRegistryImpl.getInstance();
-	}
-
-	/**
-	 * For JSP files, text/html is the default content type. This may want
-	 * this different for types like jsv (jsp for voice xml) For now, hard
-	 * code to new instance. In future, should get instance from registry.
-	 * 
-	 * Specification cites HTML as the default contentType.
-	 */
-	protected EmbeddedTypeHandler getDefaultEmbeddedType() {
-		return getHandlerFor(getDefaultContentType());
-	}
-
-	public INodeNotifier getTarget() {
-		return notifierAtCreation;
-	}
-
-	public void release() {
-		if (embeddedTypeHandler != null) {
-			if (embeddedFactoryRegistry != null) {
-				Iterator iterator = embeddedFactoryRegistry.iterator();
-				INodeAdapterFactory factory = null;
-				while (iterator.hasNext()) {
-					factory = (INodeAdapterFactory) iterator.next();
-					factory.release();
-				}
-			}
-			// pa_TODO: possibly need to release here...
-			// or "uninitializeFactoryRegistry"
-			// initializeFactoryRegistry was called from JSPModelLoader
-			embeddedTypeHandler = null;
-		}
-	}
-
-	private IContentDescription getContentDescription(IDocument doc) {
-		if (doc == null)
-			return null;
-		DocumentInputStream in = new DocumentInputStream(doc);
-		return getContentDescription(in);
-	}
-
-	/**
-	 * Returns content description for an input stream Assumes it's JSP
-	 * content. Closes the input stream when finished.
-	 * 
-	 * @param in
-	 * @return the IContentDescription for in, or null if in is null
-	 */
-	private IContentDescription getContentDescription(DocumentInputStream in) {
-
-		if (in == null)
-			return null;
-
-		IContentDescription desc = null;
-		try {
-
-			IContentType contentTypeJSP = Platform.getContentTypeManager().getContentType(ContentTypeIdForJSP.ContentTypeID_JSP);
-			desc = contentTypeJSP.getDescriptionFor(in, IContentDescription.ALL);
-		}
-		catch (IOException e) {
-			Logger.logException(e);
-		}
-		finally {
-			if (in != null) {
-				try {
-					in.close();
-				}
-				catch (IOException e) {
-					Logger.logException(e);
-				}
-			}
-		}
-		return desc;
-	}
-}
\ No newline at end of file
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
deleted file mode 100644
index b443a8a..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcher.java
+++ /dev/null
@@ -1,23 +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.core.internal.document;
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-
-interface PageDirectiveWatcher extends INodeAdapter {
-
-	String getContentType();
-
-	String getLanguage();
-
-	int getOffset();
-
-}
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
deleted file mode 100644
index 1fbb07a..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcherFactory.java
+++ /dev/null
@@ -1,58 +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.core.internal.document;
-
-import org.eclipse.wst.sse.core.internal.PropagatingAdapterFactory;
-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.propagate.PropagatingAdapterFactoryImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.w3c.dom.Node;
-
-public class PageDirectiveWatcherFactory extends PropagatingAdapterFactoryImpl implements PropagatingAdapterFactory {
-
-	/**
-	 * Constructor for PageDirectiveWatcherFactory.
-	 */
-	public PageDirectiveWatcherFactory() {
-		this(PageDirectiveWatcher.class, true);
-	}
-
-	/**
-	 * Constructor for PageDirectiveWatcherFactory.
-	 * 
-	 * @param adapterKey
-	 * @param registerAdapters
-	 */
-	public PageDirectiveWatcherFactory(Object adapterKey, boolean registerAdapters) {
-		super(adapterKey, registerAdapters);
-	}
-
-	protected INodeAdapter createAdapter(INodeNotifier target) {
-		PageDirectiveWatcher result = null;
-		if (target instanceof IDOMElement) {
-			IDOMElement xmlElement = (IDOMElement) target;
-			if (xmlElement.getNodeType() == Node.ELEMENT_NODE) {
-				String nodeName = xmlElement.getNodeName();
-				if (nodeName.equals("jsp:directive.page")) { //$NON-NLS-1$
-					result = new PageDirectiveWatcherImpl(xmlElement);
-				}
-
-			}
-		}
-		return result;
-
-	}
-
-public INodeAdapterFactory copy() {
-		return new PageDirectiveWatcherFactory(getAdapterKey(), isShouldRegisterAdapter());
-	}}
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
deleted file mode 100644
index 5058785..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcherImpl.java
+++ /dev/null
@@ -1,108 +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.core.internal.document;
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.xml.core.internal.document.AttrImpl;
-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.IDOMNode;
-
-
-
-/** 
- * The responsibility of this class is to monitor page directives and if 
- * a change in embedded type is is made, it will signal 
- * the structuredModel that it needs to reinitialize itself.
- */
-class PageDirectiveWatcherImpl implements PageDirectiveWatcher {
-
-	private static Object adapterType = PageDirectiveWatcher.class;
-	IDOMElement targetElement;
-
-	/**
-	 * Constructor for PageDirectiveWatcherImpl.
-	 */
-	public PageDirectiveWatcherImpl(IDOMElement target) {
-		super();
-		targetElement = target;
-		String contentTypeValue = target.getAttribute("contentType"); //$NON-NLS-1$
-		if (contentTypeValue != null) {
-			// using concrete class below, since "changed" is something of an internal method
-			PageDirectiveAdapterImpl pageDirectiveAdapter = (PageDirectiveAdapterImpl) ((IDOMDocument) targetElement.getOwnerDocument()).getAdapterFor(PageDirectiveAdapter.class);
-			pageDirectiveAdapter.changedContentType(((IndexedRegion) targetElement).getStartOffset(), contentTypeValue);
-		}
-		String languageValue = target.getAttribute("language"); //$NON-NLS-1$
-		if (languageValue != null) {
-			// using concrete class below, since "changed" is something of an internal method
-			PageDirectiveAdapterImpl pageDirectiveAdapter = (PageDirectiveAdapterImpl) ((IDOMDocument) targetElement.getOwnerDocument()).getAdapterFor(PageDirectiveAdapter.class);
-			pageDirectiveAdapter.changedLanguage(((IndexedRegion) targetElement).getStartOffset(), languageValue);
-		}
-
-
-	}
-
-	public boolean isAdapterForType(Object type) {
-		return (type == adapterType);
-	}
-
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-		// we should only be added to page directives, so if we see a page directive
-		// change, we need to check its attributes, and notify the PageDirectiveAdapter when 
-		// certain ones chane, so it can make its "centralized" decisions.
-		if (notifier instanceof IDOMNode) {
-
-			switch (eventType) {
-				case INodeNotifier.CHANGE :
-					if (changedFeature instanceof AttrImpl) {
-						AttrImpl attribute = (AttrImpl) changedFeature;
-						String name = attribute.getName();
-						if (name.equals("contentType")) { //$NON-NLS-1$
-							// using concrete class below, since "changed" is something of an internal method
-							PageDirectiveAdapterImpl pageDirectiveAdapter = (PageDirectiveAdapterImpl) ((IDOMDocument) targetElement.getOwnerDocument()).getAdapterFor(PageDirectiveAdapter.class);
-							pageDirectiveAdapter.changedContentType(((IndexedRegion) targetElement).getStartOffset(), (String) newValue);
-						}
-						if (name.equals("language")) { //$NON-NLS-1$ //$NON-NLS-2$
-							// using concrete class below, since "changed" is something of an internal method
-							PageDirectiveAdapterImpl pageDirectiveAdapter = (PageDirectiveAdapterImpl) ((IDOMDocument) targetElement.getOwnerDocument()).getAdapterFor(PageDirectiveAdapter.class);
-							pageDirectiveAdapter.changedLanguage(((IndexedRegion) targetElement).getStartOffset(), (String) newValue);
-						}
-					}
-
-					break;
-				case INodeNotifier.REMOVE :
-					//System.out.println("removed"+new Date().toString());
-					break;
-
-
-				default :
-					break;
-			}
-		}
-
-	}
-
-	public String getContentType() {
-		String contentTypeValue = targetElement.getAttribute("contentType"); //$NON-NLS-1$
-		return contentTypeValue;
-	}
-
-	public String getLanguage() {
-		String languageValue = targetElement.getAttribute("language"); //$NON-NLS-1$
-		return languageValue;
-	}
-
-	public int getOffset() {
-		return targetElement.getStartOffset();
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/AttrImplForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/AttrImplForJSP.java
deleted file mode 100644
index ff30c55..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/AttrImplForJSP.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.xml.core.internal.document.AttrImpl;
-import org.w3c.dom.Document;
-
-public class AttrImplForJSP extends AttrImpl {
-
-	protected boolean isNestedLanguageOpening(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN || regionType == DOMJSPRegionContexts.JSP_EXPRESSION_OPEN || regionType == DOMJSPRegionContexts.JSP_DECLARATION_OPEN || regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN;
-		return result;
-	}
-	protected void setOwnerDocument(Document ownerDocument) {
-		super.setOwnerDocument(ownerDocument);
-	}
-	protected void setName(String name) {
-		super.setName(name);
-	}
-	protected void setNamespaceURI(String namespaceURI) {
-		super.setNamespaceURI(namespaceURI);
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/CommentImplForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/CommentImplForJSP.java
deleted file mode 100644
index c9ccc58..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/CommentImplForJSP.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.xml.core.internal.document.CommentImpl;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-/**
- * CommentImplForJSP
- */
-public class CommentImplForJSP extends CommentImpl {
-	protected CommentImplForJSP() {
-		super();
-	}
-
-	protected CommentImplForJSP(CommentImpl that) {
-		super(that);
-	}
-
-	protected boolean isNestedCommentClose(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_COMMENT_CLOSE;
-		return result;
-	}
-
-	protected boolean isNestedCommentOpenClose(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_COMMENT_OPEN || regionType == DOMJSPRegionContexts.JSP_COMMENT_CLOSE;
-		return result;
-	}
-
-	protected void setOwnerDocument(Document ownerDocument) {
-		super.setOwnerDocument(ownerDocument);
-	}
-	
-	public Node cloneNode(boolean deep) {
-		CommentImpl cloned = new CommentImplForJSP(this);
-		return cloned;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/DOMDocumentForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/DOMDocumentForJSP.java
deleted file mode 100644
index 23a8baa..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/DOMDocumentForJSP.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.wst.html.core.internal.document.DocumentStyleImpl;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Comment;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-public class DOMDocumentForJSP extends DocumentStyleImpl {
-
-	/**
-	 * 
-	 */
-	public DOMDocumentForJSP() {
-		super();
-	}
-
-	/**
-	 * @param that
-	 */
-	protected DOMDocumentForJSP(DocumentImpl that) {
-		super(that);
-	}
-	/**
-	 * cloneNode method
-	 * @return org.w3c.dom.Node
-	 * @param deep boolean
-	 */
-	public Node cloneNode(boolean deep) {
-		DOMDocumentForJSP cloned = new DOMDocumentForJSP(this);
-		if (deep)
-			cloned.importChildNodes(this, true);
-		return cloned;
-	}
-	/**
-	 * createElement method
-	 * 
-	 * @return org.w3c.dom.Element
-	 * @param tagName
-	 *            java.lang.String
-	 */
-	public Element createElement(String tagName) throws DOMException {
-		checkTagNameValidity(tagName);
-
-		ElementImplForJSP element = new ElementImplForJSP();
-		element.setOwnerDocument(this);
-		element.setTagName(tagName);
-		return element;
-	}
-	/**
-	 * createComment method
-	 * 
-	 * @return org.w3c.dom.Comment
-	 * @param data
-	 *            java.lang.String
-	 */
-	public Comment createComment(String data) {
-		CommentImplForJSP comment = new CommentImplForJSP();
-		comment.setOwnerDocument(this);
-		if (data != null)
-			comment.setData(data);
-		return comment;
-	}
-
-	/**
-	 * createAttribute method
-	 * 
-	 * @return org.w3c.dom.Attr
-	 * @param name
-	 *            java.lang.String
-	 */
-	public Attr createAttribute(String name) throws DOMException {
-		AttrImplForJSP attr = new AttrImplForJSP();
-		attr.setOwnerDocument(this);
-		attr.setName(name);
-		return attr;
-	}
-
-	/**
-	 */
-	public Attr createAttributeNS(String uri, String name) throws DOMException {
-		AttrImplForJSP attr = new AttrImplForJSP();
-		attr.setOwnerDocument(this);
-		attr.setName(name);
-		attr.setNamespaceURI(uri);
-		return attr;
-	}
-	/**
-	 * createTextNode method
-	 * 
-	 * @return org.w3c.dom.Text
-	 * @param data
-	 *            java.lang.String
-	 */
-	public Text createTextNode(String data) {
-		TextImplForJSP text = new TextImplForJSP();
-		text.setOwnerDocument(this);
-		text.setData(data);
-		return text;
-	}
-	protected void setModel(IDOMModel model) {
-		super.setModel(model);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/DOMModelForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/DOMModelForJSP.java
deleted file mode 100644
index dcc8ce2..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/DOMModelForJSP.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.wst.html.core.internal.document.DOMStyleModelImpl;
-import org.eclipse.wst.xml.core.internal.document.XMLModelParser;
-import org.eclipse.wst.xml.core.internal.document.XMLModelUpdater;
-import org.w3c.dom.Document;
-
-public class DOMModelForJSP extends DOMStyleModelImpl {
-
-	/**
-	 * 
-	 */
-	public DOMModelForJSP() {
-		super();
-		// remember, the document is created in super constructor, 
-		// via internalCreateDocument
-	}
-	/**
-	 * createDocument method
-	 * @return org.w3c.dom.Document
-	 */
-	protected Document internalCreateDocument() {
-		DOMDocumentForJSP document = new DOMDocumentForJSP();
-		document.setModel(this);
-		return document;
-	}
-	protected XMLModelParser createModelParser() {
-		return new NestedDOMModelParser(this);
-	}
-	protected XMLModelUpdater createModelUpdater() {
-		return new NestDOMModelUpdater(this);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/ElementImplForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/ElementImplForJSP.java
deleted file mode 100644
index 2969129..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/ElementImplForJSP.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.html.core.internal.document.ElementStyleImpl;
-import org.eclipse.wst.xml.core.internal.document.ElementImpl;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-public class ElementImplForJSP extends ElementStyleImpl {
-	/**
-	 * 
-	 */
-	public ElementImplForJSP() {
-		super();
-	}
-
-	/**
-	 * @param that
-	 */
-	public ElementImplForJSP(ElementImpl that) {
-		super(that);
-	}
-
-	protected boolean isNestedEndTag(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_ROOT_TAG_NAME || regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME;
-		return result;
-	}
-
-	protected boolean isNestedClosed(String regionType) {
-		boolean result = (regionType == DOMJSPRegionContexts.JSP_CLOSE || regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_CLOSE);
-		return result;
-	}
-
-	protected boolean isNestedClosedComment(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_COMMENT_CLOSE;
-		return result;
-	}
-
-	protected boolean isClosedNestedDirective(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_CLOSE;
-		return result;
-	}
-
-	protected void setOwnerDocument(Document ownerDocument) {
-		super.setOwnerDocument(ownerDocument);
-	}
-
-	protected void setTagName(String tagName) {
-		super.setTagName(tagName);
-	}
-	public Node cloneNode(boolean deep) {
-		ElementImpl cloned = new ElementImplForJSP(this);
-		if (deep)
-			cloneChildNodes(cloned, deep);
-		return cloned;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/NestDOMModelUpdater.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/NestDOMModelUpdater.java
deleted file mode 100644
index 337d75b..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/NestDOMModelUpdater.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.xml.core.internal.document.DOMModelImpl;
-import org.eclipse.wst.xml.core.internal.document.XMLModelUpdater;
-
-
-public class NestDOMModelUpdater extends XMLModelUpdater {
-
-	/**
-	 * @param model
-	 */
-	public NestDOMModelUpdater(DOMModelImpl model) {
-		super(model);
-	}
-
-	protected boolean isNestedTagClose(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_CLOSE || regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_CLOSE;
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/NestedDOMModelParser.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/NestedDOMModelParser.java
deleted file mode 100644
index afaa719..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/NestedDOMModelParser.java
+++ /dev/null
@@ -1,85 +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.core.internal.domdocument;
-
-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.xml.core.internal.document.DOMModelImpl;
-import org.eclipse.wst.xml.core.internal.document.JSPTag;
-import org.eclipse.wst.xml.core.internal.document.XMLModelParser;
-
-public class NestedDOMModelParser extends XMLModelParser {
-
-	/**
-	 * @param model
-	 */
-	public NestedDOMModelParser(DOMModelImpl model) {
-		super(model);
-	}
-
-	protected boolean isNestedCommentOpen(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_COMMENT_OPEN;
-		return result;
-	}
-
-	protected boolean isNestedCommentText(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_COMMENT_TEXT;
-		return result;
-	}
-
-	protected boolean isNestedContent(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_CONTENT;
-		return result;
-	}
-
-	protected boolean isNestedTag(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN || regionType == DOMJSPRegionContexts.JSP_EXPRESSION_OPEN || regionType == DOMJSPRegionContexts.JSP_DECLARATION_OPEN || regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN || regionType == DOMJSPRegionContexts.JSP_CLOSE;
-		return result;
-	}
-
-	protected boolean isNestedTagName(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_ROOT_TAG_NAME || regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME;
-		return result;
-	}
-	protected boolean isNestedTagOpen(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN || regionType == DOMJSPRegionContexts.JSP_EXPRESSION_OPEN || regionType == DOMJSPRegionContexts.JSP_DECLARATION_OPEN || regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN;
-		return result;
-	}
-	protected String computeNestedTag(String regionType, String tagName, IStructuredDocumentRegion structuredDocumentRegion, ITextRegion region) {
-		String resultTagName = tagName;
-		if (regionType == DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN) {
-			resultTagName = JSPTag.JSP_SCRIPTLET;
-		}
-		else if (regionType == DOMJSPRegionContexts.JSP_EXPRESSION_OPEN) {
-			resultTagName = JSPTag.JSP_EXPRESSION;
-		}
-		else if (regionType == DOMJSPRegionContexts.JSP_DECLARATION_OPEN) {
-			resultTagName = JSPTag.JSP_DECLARATION;
-		}
-		else if (regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN) {
-			resultTagName = JSPTag.JSP_DIRECTIVE;
-		}
-		else if (regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
-			resultTagName += '.';
-			resultTagName += structuredDocumentRegion.getText(region);
-		}
-		return resultTagName;
-	}
-
-	protected boolean isNestedTagClose(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_CLOSE || regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_CLOSE;
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/TextImplForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/TextImplForJSP.java
deleted file mode 100644
index 1f67f53..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/TextImplForJSP.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.xml.core.internal.document.TextImpl;
-import org.w3c.dom.Document;
-
-public class TextImplForJSP extends TextImpl {
-	protected boolean isNotNestedContent(String regionType) {
-		boolean result = regionType != DOMJSPRegionContexts.JSP_CONTENT;
-		return result;
-	}
-	protected void setOwnerDocument(Document ownerDocument) {
-		super.setOwnerDocument(ownerDocument);
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/IJSPHeadContentDetector.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/IJSPHeadContentDetector.java
deleted file mode 100644
index 291c547..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/IJSPHeadContentDetector.java
+++ /dev/null
@@ -1,22 +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.core.internal.encoding;
-
-import java.io.IOException;
-
-import org.eclipse.wst.sse.core.internal.document.IDocumentCharsetDetector;
-
-public interface IJSPHeadContentDetector extends IDocumentCharsetDetector {
-	String getContentType() throws IOException;
-
-	String getLanguage() throws IOException;
-
-}
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
deleted file mode 100644
index 84c5e7e..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/JSPDocumentHeadContentDetector.java
+++ /dev/null
@@ -1,33 +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.core.internal.encoding;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jst.jsp.core.internal.contenttype.JSPResourceEncodingDetector;
-import org.eclipse.wst.sse.core.internal.document.DocumentReader;
-
-/**
- * This class parses beginning portion of JSP file to get attributes in page
- * directiive
- *  
- */
-public class JSPDocumentHeadContentDetector extends JSPResourceEncodingDetector implements IJSPHeadContentDetector {
-
-	public JSPDocumentHeadContentDetector() {
-		super();
-	}
-
-	public void set(IDocument document) {
-		set(new DocumentReader(document, 0));
-
-	}
-
-}
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
deleted file mode 100644
index 8e1d3cb..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/JSPDocumentLoader.java
+++ /dev/null
@@ -1,312 +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.core.internal.encoding;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.io.UnsupportedEncodingException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.jst.jsp.core.internal.Assert;
-import org.eclipse.jst.jsp.core.internal.JSPCoreMessages;
-import org.eclipse.jst.jsp.core.internal.document.PageDirectiveWatcherFactory;
-import org.eclipse.jst.jsp.core.internal.parser.JSPReParser;
-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.contenttype.ContentTypeIdForJSP;
-import org.eclipse.jst.jsp.core.internal.text.StructuredTextPartitionerForJSP;
-import org.eclipse.wst.sse.core.internal.PropagatingAdapter;
-import org.eclipse.wst.sse.core.internal.document.AbstractDocumentLoader;
-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.document.StructuredDocumentFactory;
-import org.eclipse.wst.sse.core.internal.encoding.CodedIO;
-import org.eclipse.wst.sse.core.internal.encoding.CodedReaderCreator;
-import org.eclipse.wst.sse.core.internal.encoding.ContentTypeEncodingPreferences;
-import org.eclipse.wst.sse.core.internal.encoding.util.BufferedLimitedReader;
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.EmbeddedTypeHandler;
-import org.eclipse.wst.sse.core.internal.ltk.parser.JSPCapableParser;
-import org.eclipse.wst.sse.core.internal.ltk.parser.RegionParser;
-import org.eclipse.wst.sse.core.internal.ltk.parser.TagMarker;
-import org.eclipse.wst.sse.core.internal.modelhandler.EmbeddedTypeRegistry;
-import org.eclipse.wst.sse.core.internal.modelhandler.EmbeddedTypeRegistryImpl;
-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.document.IEncodedDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter;
-import org.w3c.dom.Document;
-
-public class JSPDocumentLoader extends AbstractDocumentLoader {
-	private final static String DEFAULT_MIME_TYPE = "text/html"; //$NON-NLS-1$
-	private final static String SPEC_DEFAULT_ENCODING = "ISO-8859-1"; //$NON-NLS-1$
-
-	protected static IFile getFileFor(IStructuredModel model) {
-		if (model == null)
-			return null;
-		String path = model.getBaseLocation();
-		if (path == null || path.length() == 0) {
-			Object id = model.getId();
-			if (id == null)
-				return null;
-			path = id.toString();
-		}
-		// TODO needs rework for linked resources
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		IFile file = root.getFileForLocation(new Path(path));
-		return file;
-	}
-
-	private EmbeddedTypeRegistry fEmbeddedContentTypeRegistry;
-
-	public JSPDocumentLoader() {
-		super();
-	}
-
-	protected void addNestablePrefix(JSPSourceParser parser, String tagName) {
-		TagMarker bm = new TagMarker(tagName);
-		parser.addNestablePrefix(bm);
-	}
-
-	synchronized public IEncodedDocument createNewStructuredDocument(IFile iFile) throws IOException, CoreException {
-		IStructuredDocument structuredDocument = null;
-		try {
-			structuredDocument = createCodedDocument(iFile);
-
-			EmbeddedTypeHandler embeddedType = getEmbeddedType(iFile);
-			if (embeddedType != null)
-				embeddedType.initializeParser((JSPCapableParser) structuredDocument.getParser());
-
-			fFullPreparedReader.reset();
-			setDocumentContentsFromReader(structuredDocument, fFullPreparedReader);
-
-		}
-		finally {
-			if (fFullPreparedReader != null) {
-				fFullPreparedReader.close();
-			}
-		}
-		return structuredDocument;
-	}
-
-	private IStructuredDocument createCodedDocument(IFile iFile) throws CoreException, UnsupportedEncodingException, IOException {
-		IStructuredDocument structuredDocument = (IStructuredDocument) createNewStructuredDocument();
-
-		getCodedReaderCreator().set(iFile);
-
-		fFullPreparedReader = getCodedReaderCreator().getCodedReader();
-		fEncodingMemento = getCodedReaderCreator().getEncodingMemento();
-
-		structuredDocument.setEncodingMemento(getCodedReaderCreator().getEncodingMemento());
-
-		return structuredDocument;
-	}
-
-	public IEncodedDocument createNewStructuredDocument(String filename, InputStream inputStream) throws UnsupportedEncodingException, IOException {
-		if (filename == null && inputStream == null) {
-			throw new IllegalArgumentException("can not have both null filename and inputstream"); //$NON-NLS-1$
-		}
-		IEncodedDocument structuredDocument = createNewStructuredDocument();
-		CodedReaderCreator codedReaderCreator = new CodedReaderCreator();
-		try {
-			codedReaderCreator.set(filename, inputStream);
-			fFullPreparedReader = codedReaderCreator.getCodedReader();
-			fEncodingMemento = codedReaderCreator.getEncodingMemento();
-			structuredDocument.setEncodingMemento(fEncodingMemento);
-			// the fact that file is null means this method/code path is no
-			// good for JSP fragments
-			EmbeddedTypeHandler embeddedType = getEmbeddedType((IFile) null);
-			fFullPreparedReader.reset();
-			if (embeddedType != null)
-				embeddedType.initializeParser((JSPCapableParser) ((IStructuredDocument) structuredDocument).getParser());
-			setDocumentContentsFromReader(structuredDocument, fFullPreparedReader);
-		}
-		catch (CoreException e) {
-			// impossible in this context
-			throw new Error(e);
-		}
-		finally {
-			if (fFullPreparedReader != null) {
-				fFullPreparedReader.close();
-			}
-		}
-		return structuredDocument;
-
-	}
-
-	/**
-	 * Method getDefaultDocumentPartitioner.
-	 * 
-	 * @return IDocumentPartitioner
-	 */
-	public IDocumentPartitioner getDefaultDocumentPartitioner() {
-		return new StructuredTextPartitionerForJSP();
-	}
-
-	/**
-	 * Method getDefaultMimeType.
-	 * 
-	 * @return String
-	 */
-	private String getDefaultMimeType() {
-		return DEFAULT_MIME_TYPE;
-	}
-
-
-	public IDocumentCharsetDetector getDocumentEncodingDetector() {
-		if (fDocumentEncodingDetector == null) {
-			fDocumentEncodingDetector = new JSPDocumentHeadContentDetector();
-		}
-		return fDocumentEncodingDetector;
-	}
-
-	/**
-	 * Gets the embeddedContentTypeRegistry.
-	 * 
-	 * @return Returns a EmbeddedContentTypeRegistry
-	 */
-	private EmbeddedTypeRegistry getEmbeddedContentTypeRegistry() {
-		if (fEmbeddedContentTypeRegistry == null) {
-			fEmbeddedContentTypeRegistry = EmbeddedTypeRegistryImpl.getInstance();
-		}
-		return fEmbeddedContentTypeRegistry;
-	}
-
-	/**
-	 * Determine the MIME content type specified in a page directive. This
-	 * should appear "as early as possible in the JSP page" according to the
-	 * JSP v1.2 specification.
-	 */
-	private EmbeddedTypeHandler getEmbeddedType(IFile file) throws UnsupportedEncodingException, CoreException, IOException {
-		EmbeddedTypeHandler handler = null;
-		if (fFullPreparedReader == null) {
-			handler = getJSPDefaultEmbeddedType();
-		}
-		else {
-			String mimeType = null;
-
-			IDocumentCharsetDetector jspProvider = getDocumentEncodingDetector();
-			Reader fullPreparedReader = getFullPreparedReader();
-			BufferedLimitedReader limitedReader = new BufferedLimitedReader(fullPreparedReader, CodedIO.MAX_BUF_SIZE);
-			jspProvider.set(limitedReader);
-			if (jspProvider instanceof IJSPHeadContentDetector) {
-				mimeType = ((IJSPHeadContentDetector) jspProvider).getContentType();
-				fullPreparedReader.reset();
-			}
-
-			EmbeddedTypeRegistry reg = getEmbeddedContentTypeRegistry();
-			if (mimeType == null || mimeType.length() == 0) {
-				handler = getJSPDefaultEmbeddedType();
-			}
-			else {
-				handler = reg.getTypeFor(mimeType);
-			}
-		}
-		return handler;
-	}
-
-	/**
-	 * For JSP files, text/html is the default content type. This may want
-	 * this different for types like jsv (jsp for voice xml) For now, hard
-	 * code to new instance. In future, should get instance from registry.
-	 * Specification cites HTML as the default contentType.
-	 */
-	private EmbeddedTypeHandler getJSPDefaultEmbeddedType() {
-		EmbeddedTypeRegistry reg = getEmbeddedContentTypeRegistry();
-		return reg.getTypeFor(getDefaultMimeType());
-	}
-
-	public RegionParser getParser() {
-		// remember, the Loader
-		// will need to finish initialization of parser
-		// based on "embedded content"
-		JSPSourceParser parser = new JSPSourceParser();
-		// add default nestable tag list
-		addNestablePrefix(parser, JSP11Namespace.JSP_TAG_PREFIX);
-		return parser;
-	}
-
-	protected String getPreferredNewLineDelimiter(IFile file) {
-		String delimiter = ContentTypeEncodingPreferences.getPreferredNewLineDelimiter(ContentTypeIdForJSP.ContentTypeID_JSP);
-		if (delimiter == null)
-			delimiter = super.getPreferredNewLineDelimiter(file);
-		return delimiter;
-	}
-
-	/**
-	 * Specification cites ISO-8859-1/Latin-1 as the default charset.
-	 */
-	protected String getSpecDefaultEncoding() {
-		return SPEC_DEFAULT_ENCODING;
-	}
-
-	/**
-	 * This method must return a new instance of IStructuredDocument, that has
-	 * been initialized with appropriate parser. For many loaders, the
-	 * (default) parser used is known for any input. For others, the correct
-	 * parser (and its initialization) is normall dependent on the content of
-	 * the file. This no-argument method should assume "empty input" and would
-	 * therefore return the default parser for the default contentType. If the
-	 * parser is to handle tag libraries, it must have a TaglibSupport object
-	 * with a valid URIResolver and this IStructuredDocument attached to it
-	 * before the contents are set on the IStructuredDocument.
-	 */
-	protected IEncodedDocument newEncodedDocument() {
-		IStructuredDocument structuredDocument = StructuredDocumentFactory.getNewStructuredDocumentInstance(getParser());
-		((BasicStructuredDocument) structuredDocument).setReParser(new JSPReParser());
-		// structuredDocument.setDocumentPartitioner(new
-		// JSPJavaDocumentPartioner());
-		// even though this is an "empty model" ... we want it to have at
-		// least
-		// the
-		// default embeddeded content type handler
-		EmbeddedTypeHandler embeddedType = getJSPDefaultEmbeddedType();
-		embeddedType.initializeParser((JSPCapableParser) structuredDocument.getParser());
-		return structuredDocument;
-	}
-
-	public IDocumentLoader newInstance() {
-		return new JSPDocumentLoader();
-	}
-
-	protected void preLoadAdapt(IStructuredModel structuredModel) {
-		IDOMModel domModel = (IDOMModel) structuredModel;
-		//
-		// document must have already been set for this to
-		// work.
-		Document document = domModel.getDocument();
-		Assert.isNotNull(document, JSPCoreMessages.JSPDocumentLoader_1);
-		// if there is a model in the adapter, this will adapt it to
-		// first node. After that the PropagatingAdater spreads over the
-		// children being
-		// created. Each time that happends, a side effect is to
-		// also "spread" sprecific registered adapters,
-		// they two can propigate is needed.
-		// This 'get' causes first to be be attached.
-		PropagatingAdapter propagatingAdapter = (PropagatingAdapter) ((INodeNotifier) document).getAdapterFor(PropagatingAdapter.class);
-		// may make this easier to use in futue
-		propagatingAdapter.addAdaptOnCreateFactory(new PageDirectiveWatcherFactory());
-		// For JSPs, the ModelQueryAdapter must be "attached" to the document
-		// before content is set in the model, so taglib initization can
-		// take place.
-		((INodeNotifier) document).getAdapterFor(ModelQueryAdapter.class);
-
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/CompilationUnitHelper.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/CompilationUnitHelper.java
deleted file mode 100644
index 8df5524..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/CompilationUnitHelper.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package org.eclipse.jst.jsp.core.internal.java;
-
-import org.eclipse.jdt.core.WorkingCopyOwner;
-
-/**
- * To ensure there is only one instance of ProblemRequestor and WorkingCopyOwner
- * for JSP plugins.  These were removed from JSPTranslation to ensure that the
- * JSPTranslation was not held in memory by any type of JDT lists (caching
- * search results, etc...)
- * 
- * @author pavery
- */
-public class CompilationUnitHelper {
-
-    private JSPProblemRequestor fProblemRequestor = null;
-    private WorkingCopyOwner fWorkingCopyOwner = null;
-    private static CompilationUnitHelper instance;
-
-    private CompilationUnitHelper() {
-        // force use of instance
-    }
-
-    public synchronized static final CompilationUnitHelper getInstance() {
-
-        if (instance == null)
-            instance = new CompilationUnitHelper();
-        return instance;
-    }
-
-    public JSPProblemRequestor getProblemRequestor() {
-
-        if (fProblemRequestor == null)
-            fProblemRequestor = new JSPProblemRequestor();
-        return fProblemRequestor;
-    }
-
-    public WorkingCopyOwner getWorkingCopyOwner() {
-
-        if (fWorkingCopyOwner == null) {
-            fWorkingCopyOwner = new WorkingCopyOwner() {
-                public String toString() {
-                    return "JSP Working copy owner"; //$NON-NLS-1$
-                }
-            };
-        }
-        return fWorkingCopyOwner;
-    }
-}
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
deleted file mode 100644
index 2d65350..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/EscapedTextUtil.java
+++ /dev/null
@@ -1,87 +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.core.internal.java;
-
-
-
-import java.util.Properties;
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-
-/**
- * class to handle chunks of text/regions
- * with escaped character data
- * @author pavery
- */
-public class EscapedTextUtil {
-
-	public static Properties fXMLtoJavaLookup = null;
-
-	/**
-	 * @return unescaped full text of that region, "" if there is no text
-	 */
-	public static String getUnescapedText(IStructuredDocumentRegion parent, ITextRegion r) {
-		String test = (parent != r) ? parent.getFullText(r) : parent.getFullText();
-		return getUnescapedText(test);
-	}
-
-	public static String getUnescapedText(Str