This commit was manufactured by cvs2svn to create tag 'v200808200318'.
diff --git a/bundles/org.eclipse.wst.html.core/.classpath b/bundles/org.eclipse.wst.html.core/.classpath
deleted file mode 100644
index 2c6f8c1..0000000
--- a/bundles/org.eclipse.wst.html.core/.classpath
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
-		<accessrules>
-			<accessrule kind="accessible" pattern="org/w3c/dom/css/**/*"/>
-			<accessrule kind="accessible" pattern="org/eclipse/wst/**"/>
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.wst.html.core/.cvsignore b/bundles/org.eclipse.wst.html.core/.cvsignore
deleted file mode 100644
index 02ca6cb..0000000
--- a/bundles/org.eclipse.wst.html.core/.cvsignore
+++ /dev/null
@@ -1,8 +0,0 @@
-bin
-htmlmodel.jar
-temp.folder
-dev.properties
-build.xml
-@dot
-src.zip
-javaCompiler...args
diff --git a/bundles/org.eclipse.wst.html.core/.options b/bundles/org.eclipse.wst.html.core/.options
deleted file mode 100644
index e66a59f..0000000
--- a/bundles/org.eclipse.wst.html.core/.options
+++ /dev/null
@@ -1,2 +0,0 @@
-org.eclipse.wst.html.core/debug=true
-org.eclipse.wst.html.core/debug/tracefilter=
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/.project b/bundles/org.eclipse.wst.html.core/.project
deleted file mode 100644
index 13a9fac..0000000
--- a/bundles/org.eclipse.wst.html.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.html.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index afa5c91..0000000
--- a/bundles/org.eclipse.wst.html.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.wst.html.core/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index 7ec5750..0000000
--- a/bundles/org.eclipse.wst.html.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.wst.html.core/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 0667e35..0000000
--- a/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,79 +0,0 @@
-#Wed Mar 28 03:23:07 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-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.wst.html.core/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 301c7ad..0000000
--- a/bundles/org.eclipse.wst.html.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.wst.html.core/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index c59368c..0000000
--- a/bundles/org.eclipse.wst.html.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.wst.html.core/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 061cd53..0000000
--- a/bundles/org.eclipse.wst.html.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.wst.html.core/about.html b/bundles/org.eclipse.wst.html.core/about.html
deleted file mode 100644
index 2199df3..0000000
--- a/bundles/org.eclipse.wst.html.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, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor’s license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.wst.html.core/build.properties b/bundles/org.eclipse.wst.html.core/build.properties
deleted file mode 100644
index 7ea2b7e..0000000
--- a/bundles/org.eclipse.wst.html.core/build.properties
+++ /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
-###############################################################################
-bin.includes = plugin.xml,\
-               .options,\
-               data/,\
-               plugin.properties,\
-               META-INF/,\
-               .,\
-               about.html
-bin.excludes = bin/**,\
-               @dot/**,\
-               temp.folder/**
-src.includes = component.xml,\
-               build.properties
-source.. = src/
diff --git a/bundles/org.eclipse.wst.html.core/component.xml b/bundles/org.eclipse.wst.html.core/component.xml
deleted file mode 100644
index 8565aec..0000000
--- a/bundles/org.eclipse.wst.html.core/component.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.wst.html">
-	<component-depends unrestricted="true"></component-depends>
-	<plugin id="org.eclipse.wst.html.core" fragment="false" />
-	<plugin id="org.eclipse.wst.html.standard.dtds" fragment="false" />
-	<plugin id="org.eclipse.wst.html.ui" fragment="false" />
-	<description url="http://eclipse.org/webtools/wst/components/html/overview.html" />
-	<package name="org.eclipse.wst.html.ui" api="false">
-		<type name="StructuredTextViewerConfigurationHTML" subclass="true" instantiate="true" />
-	</package>
-	<package name="org.eclipse.wst.html.ui.views.contentoutline" api="false">
-		<type name="HTMLContentOutlineConfiguration" subclass="true" instantiate="true" />
-	</package>
-	<plugin id="org.eclipse.wst.html.ui.infopop" fragment="false" />
-</component>
diff --git a/bundles/org.eclipse.wst.html.core/data/htmref.properties b/bundles/org.eclipse.wst.html.core/data/htmref.properties
deleted file mode 100644
index 9cd460d..0000000
--- a/bundles/org.eclipse.wst.html.core/data/htmref.properties
+++ /dev/null
@@ -1,108 +0,0 @@
-###############################################################################
-# Copyright (c) 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-ATagInfo=A link if the href attribute is present, and the target for a link if the name attribute is present
-ABBRTagInfo=An abbreviation (for example, WWW, HTTP)
-ACRONYMTagInfo=An acronym (for example, SCUBA)
-ADDRESSTagInfo=Address information for the author of the page
-APPLETTagInfo=A Java applet
-AREATagInfo=Defines a client-side image map area
-BTagInfo=Displays contained text as bold
-BASETagInfo=The base URI for the page, to be used when calculating relative paths
-BASEFONTTagInfo=The base font size for the page
-BDOTagInfo=Overrides default bidirectional display. For use with bidirectional languages.
-BIGTagInfo=Displays contained text as large
-BGSOUNDTagInfo=Defines a sound file for the page. Not supported by W3C HTML 4.01.
-BLINKTagInfo=Displays text as blinking. Not supported by W3C HTML 4.01.
-BLOCKQUOTETagInfo=A long quotation
-BODYTagInfo=The document body. Contains all the content for the page.
-BRTagInfo=Forces a line break
-BUTTONTagInfo=Defines a push button
-CAPTIONTagInfo=Defines a table caption
-CENTERTagInfo=Displays contained text centered. Equivalent to DIV with align=center.
-CITETagInfo=A citation
-CODETagInfo=A computer code fragment
-COLTagInfo=A table column
-COLGROUPTagInfo=A group of table columns
-DDTagInfo=A definition or description in a definition or description list
-DELTagInfo=Displays text as deleted
-DFNTagInfo=A definition
-DIRTagInfo=A directory listing
-DIVTagInfo=A generic container, which can be used for defining language or style for the contents
-DLTagInfo=A definition or description list
-DTTagInfo=A term or subject in a definition or description list
-EMTagInfo=Displays text emphasized (generally italicized)
-EMBEDTagInfo=Defines an embedded plug-in. Not supported by W3C HTML 4.01.
-FIELDSETTagInfo=Defines a form control group
-FONTTagInfo=Displays text in the given font
-FORMTagInfo=Defines an interactive form
-FRAMETagInfo=Defines a frame within the current window
-FRAMESETTagInfo=Defines a frameset that divides the window into frames
-H1TagInfo=A top-level heading
-H2TagInfo=A second-level heading
-H3TagInfo=A third-level heading
-H4TagInfo=A fourth-level heading
-H5TagInfo=A fifth-level heading
-H6TagInfo=A sixth-level heading
-HEADTagInfo=Contains metadata and window title information for the document
-HRTagInfo=A horizontal rule
-HTMLTagInfo=The root element for the document.
-ITagInfo=Displays text as italic
-IFRAMETagInfo=Defines an inline subwindow
-IMGTagInfo=Displays the referenced image as embedded content
-INPUTTagInfo=Defines a form control for user input
-INSTagInfo=Defines inserted text
-ISINDEXTagInfo=Defines a single line prompt
-KBDTagInfo=Defines text to be entered by the user
-LABELTagInfo=Defines the label for a form field
-LEGENDTagInfo=Defines the label for a set of form fields
-LITagInfo=Defines a list item within a list
-LINKTagInfo=A media-independent link
-MAPTagInfo=Defines a client-side image map
-MARQUEETagInfo=Displays text as scrolling. Not supported by W3C HTML 4.01.
-MENUTagInfo=Defines a menu list
-METATagInfo=Defines metadata information for the document
-NOBRTagInfo=Overrides and prevents line breaks. Not supported by W3C HTML 4.01.
-NOFRAMESTagInfo=Provides information to display if the current browser does not support frames
-NOSCRIPTTagInfo=Provides information to display if the current browser does not support scripting
-OBJECTTagInfo=Defines a generic embedded object
-OLTagInfo=An ordered list
-OPTGROUPTagInfo=An option group
-OPTIONTagInfo=A selectable choice
-PTagInfo=A paragraph
-PARAMTagInfo=A named property value
-PRETagInfo=Preformatted text
-QTagInfo=A short inline quotation
-STagInfo=Display text in strike-through style
-SAMPTagInfo=Sample program output, scripts, etc. Displays in monospace font.
-SCRIPTTagInfo=Script statements
-SELECTTagInfo=An option selector
-SMALLTagInfo=Displays text as small
-SPANTagInfo=A generic container, which can be used for defining language or style for the contents
-STRIKETagInfo=Display text in strike-through style
-STRONGTagInfo=Displays text as strongly emphasized (generally bold)
-STYLETagInfo=Defines a style for the contained information
-SUBTagInfo=Display as subscript
-SUPTagInfo=Display as superscript
-TABLETagInfo=Defines a table
-TBODYTagInfo=The body of the table
-TDTagInfo=A cell within a table
-TEXTAREATagInfo=A multi-line text field
-TFOOTTagInfo=A table footer
-THTagInfo=A table header cell
-THEADTagInfo=A table header
-TITLETagInfo=The document title, displayed in the browser's title bar
-TRTagInfo=A table row
-TTTagInfo=Displays text in teletype or monospaced text style
-UTagInfo=Displays text as underlined
-ULTagInfo=An unordered list
-VARTagInfo=An instance of a variable or program argument
-WBRTagInfo=Allows a line break within <B>&lt;NOBR&gt;</B> tag. Not supported by W3C HTML 4.01.
diff --git a/bundles/org.eclipse.wst.html.core/data/htmref.xml b/bundles/org.eclipse.wst.html.core/data/htmref.xml
deleted file mode 100644
index c7bcd64..0000000
--- a/bundles/org.eclipse.wst.html.core/data/htmref.xml
+++ /dev/null
@@ -1,306 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*******************************************************************************
- * 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
- *******************************************************************************/
- -->
-<abstractGrammarAnnotations propertiesLocation="htmref" caseSensitive="false">
-    <annotation spec="A">
-        <property name="tagInfo">%ATagInfo</property>
-    </annotation>
-    <annotation spec="ABBR">
-        <property name="tagInfo">%ABBRTagInfo</property>
-    </annotation>
-    <annotation spec="ACRONYM">
-        <property name="tagInfo">%ACRONYMTagInfo</property>
-    </annotation>
-    <annotation spec="ADDRESS">
-        <property name="tagInfo">%ADDRESSTagInfo</property>
-    </annotation>
-    <annotation spec="APPLET">
-        <property name="tagInfo">%APPLETTagInfo</property>
-    </annotation>
-    <annotation spec="AREA">
-        <property name="tagInfo">%AREATagInfo</property>
-    </annotation>
-    <annotation spec="B">
-        <property name="tagInfo">%BTagInfo</property>
-    </annotation>
-    <annotation spec="BASE">
-        <property name="tagInfo">%BASETagInfo</property>
-    </annotation>
-    <annotation spec="BASEFONT">
-        <property name="tagInfo">%BASEFONTTagInfo</property>
-    </annotation>
-    <annotation spec="BDO">
-        <property name="tagInfo">%BDOTagInfo</property>
-    </annotation>
-    <annotation spec="BGSOUND">
-        <property name="tagInfo">%BGSOUNDTagInfo</property>
-    </annotation>
-    <annotation spec="BIG">
-        <property name="tagInfo">%BIGTagInfo</property>
-    </annotation>
-    <annotation spec="BLINK">
-        <property name="tagInfo">%BLINKTagInfo</property>
-    </annotation>
-    <annotation spec="BLOCKQUOTE">
-        <property name="tagInfo">%BLOCKQUOTETagInfo</property>
-    </annotation>
-    <annotation spec="BODY">
-        <property name="tagInfo">%BODYTagInfo</property>
-    </annotation>
-    <annotation spec="BR">
-        <property name="tagInfo">%BRTagInfo</property>
-    </annotation>
-    <annotation spec="BUTTON">
-        <property name="tagInfo">%BUTTONTagInfo</property>
-    </annotation>
-    <annotation spec="CAPTION">
-        <property name="tagInfo">%CAPTIONTagInfo</property>
-    </annotation>
-    <annotation spec="CENTER">
-        <property name="tagInfo">%CENTERTagInfo</property>
-    </annotation>
-    <annotation spec="CITE">
-        <property name="tagInfo">%CITETagInfo</property>
-    </annotation>
-    <annotation spec="CODE">
-        <property name="tagInfo">%CODETagInfo</property>
-    </annotation>
-    <annotation spec="COL">
-        <property name="tagInfo">%COLTagInfo</property>
-    </annotation>
-    <annotation spec="COLGROUP">
-        <property name="tagInfo">%COLGROUPTagInfo</property>
-    </annotation>
-    <annotation spec="DD">
-        <property name="tagInfo">%DDTagInfo</property>
-    </annotation>
-    <annotation spec="DEL">
-        <property name="tagInfo">%DELTagInfo</property>
-    </annotation>
-    <annotation spec="DFN">
-        <property name="tagInfo">%DFNTagInfo</property>
-    </annotation>
-    <annotation spec="DIR">
-        <property name="tagInfo">%DIRTagInfo</property>
-    </annotation>
-    <annotation spec="DIV">
-        <property name="tagInfo">%DIVTagInfo</property>
-    </annotation>
-    <annotation spec="DL">
-        <property name="tagInfo">%DLTagInfo</property>
-    </annotation>
-    <annotation spec="DT">
-        <property name="tagInfo">%DTTagInfo</property>
-    </annotation>
-    <annotation spec="EM">
-        <property name="tagInfo">%EMTagInfo</property>
-    </annotation>
-    <annotation spec="EMBED">
-        <property name="tagInfo">%EMBEDTagInfo</property>
-    </annotation>
-    <annotation spec="FIELDSET">
-        <property name="tagInfo">%FIELDSETTagInfo</property>
-    </annotation>
-    <annotation spec="FONT">
-        <property name="tagInfo">%FONTTagInfo</property>
-    </annotation>
-    <annotation spec="FORM">
-        <property name="tagInfo">%FORMTagInfo</property>
-    </annotation>
-    <annotation spec="FRAME">
-        <property name="tagInfo">%FRAMETagInfo</property>
-    </annotation>
-    <annotation spec="FRAMESET">
-        <property name="tagInfo">%FRAMESETTagInfo</property>
-    </annotation>
-    <annotation spec="H1">
-        <property name="tagInfo">%H1TagInfo</property>
-    </annotation>
-    <annotation spec="H2">
-        <property name="tagInfo">%H2TagInfo</property>
-    </annotation>
-    <annotation spec="H3">
-        <property name="tagInfo">%H3TagInfo</property>
-    </annotation>
-    <annotation spec="H4">
-        <property name="tagInfo">%H4TagInfo</property>
-    </annotation>
-    <annotation spec="H5">
-        <property name="tagInfo">%H5TagInfo</property>
-    </annotation>
-    <annotation spec="H6">
-        <property name="tagInfo">%H6TagInfo</property>
-    </annotation>
-    <annotation spec="HEAD">
-        <property name="tagInfo">%HEADTagInfo</property>
-    </annotation>
-    <annotation spec="HR">
-        <property name="tagInfo">%HRTagInfo</property>
-    </annotation>
-    <annotation spec="HTML">
-        <property name="tagInfo">%HTMLTagInfo</property>
-    </annotation>
-    <annotation spec="I">
-        <property name="tagInfo">%ITagInfo</property>
-    </annotation>
-    <annotation spec="IFRAME">
-        <property name="tagInfo">%IFRAMETagInfo</property>
-    </annotation>
-    <annotation spec="IMG">
-        <property name="tagInfo">%IMGTagInfo</property>
-    </annotation>
-    <annotation spec="INPUT">
-        <property name="tagInfo">%INPUTTagInfo</property>
-    </annotation>
-    <annotation spec="INS">
-        <property name="tagInfo">%INSTagInfo</property>
-    </annotation>
-    <annotation spec="ISINDEX">
-        <property name="tagInfo">%ISINDEXTagInfo</property>
-    </annotation>
-    <annotation spec="KBD">
-        <property name="tagInfo">%KBDTagInfo</property>
-    </annotation>
-    <annotation spec="LABEL">
-        <property name="tagInfo">%LABELTagInfo</property>
-    </annotation>
-    <annotation spec="LEGEND">
-        <property name="tagInfo">%LEGENDTagInfo</property>
-    </annotation>
-    <annotation spec="LI">
-        <property name="tagInfo">%LITagInfo</property>
-    </annotation>
-    <annotation spec="LINK">
-        <property name="tagInfo">%LINKTagInfo</property>
-    </annotation>
-    <annotation spec="MAP">
-        <property name="tagInfo">%MAPTagInfo</property>
-    </annotation>
-    <annotation spec="MARQUEE">
-        <property name="tagInfo">%MARQUEETagInfo</property>
-    </annotation>
-    <annotation spec="MENU">
-        <property name="tagInfo">%MENUTagInfo</property>
-    </annotation>
-    <annotation spec="META">
-        <property name="tagInfo">%METATagInfo</property>
-    </annotation>
-    <annotation spec="NOBR">
-        <property name="tagInfo">%NOBRTagInfo</property>
-    </annotation>
-    <annotation spec="NOFRAMES">
-        <property name="tagInfo">%NOFRAMESTagInfo</property>
-    </annotation>
-    <annotation spec="NOSCRIPT">
-        <property name="tagInfo">%NOSCRIPTTagInfo</property>
-    </annotation>
-    <annotation spec="OBJECT">
-        <property name="tagInfo">%OBJECTTagInfo</property>
-    </annotation>
-    <annotation spec="OL">
-        <property name="tagInfo">%OLTagInfo</property>
-    </annotation>
-    <annotation spec="OPTGROUP">
-        <property name="tagInfo">%OPTGROUPTagInfo</property>
-    </annotation>
-    <annotation spec="OPTION">
-        <property name="tagInfo">%OPTIONTagInfo</property>
-    </annotation>
-    <annotation spec="P">
-        <property name="tagInfo">%PTagInfo</property>
-    </annotation>
-    <annotation spec="PARAM">
-        <property name="tagInfo">%PARAMTagInfo</property>
-    </annotation>
-    <annotation spec="PRE">
-        <property name="tagInfo">%PRETagInfo</property>
-    </annotation>
-    <annotation spec="Q">
-        <property name="tagInfo">%QTagInfo</property>
-    </annotation>
-    <annotation spec="S">
-        <property name="tagInfo">%STagInfo</property>
-    </annotation>
-    <annotation spec="SAMP">
-        <property name="tagInfo">%SAMPTagInfo</property>
-    </annotation>
-    <annotation spec="SCRIPT">
-        <property name="tagInfo">%SCRIPTTagInfo</property>
-    </annotation>
-    <annotation spec="SELECT">
-        <property name="tagInfo">%SELECTTagInfo</property>
-    </annotation>
-    <annotation spec="SMALL">
-        <property name="tagInfo">%SMALLTagInfo</property>
-    </annotation>
-    <annotation spec="SPAN">
-        <property name="tagInfo">%SPANTagInfo</property>
-    </annotation>
-    <annotation spec="STRIKE">
-        <property name="tagInfo">%STRIKETagInfo</property>
-    </annotation>
-    <annotation spec="STRONG">
-        <property name="tagInfo">%STRONGTagInfo</property>
-    </annotation>
-    <annotation spec="STYLE">
-        <property name="tagInfo">%STYLETagInfo</property>
-    </annotation>
-    <annotation spec="SUB">
-        <property name="tagInfo">%SUBTagInfo</property>
-    </annotation>
-    <annotation spec="SUP">
-        <property name="tagInfo">%SUPTagInfo</property>
-    </annotation>
-    <annotation spec="TABLE">
-        <property name="tagInfo">%TABLETagInfo</property>
-    </annotation>
-    <annotation spec="TBODY">
-        <property name="tagInfo">%TBODYTagInfo</property>
-    </annotation>
-    <annotation spec="TD">
-        <property name="tagInfo">%TDTagInfo</property>
-    </annotation>
-    <annotation spec="TEXTAREA">
-        <property name="tagInfo">%TEXTAREATagInfo</property>
-    </annotation>
-    <annotation spec="TFOOT">
-        <property name="tagInfo">%TFOOTTagInfo</property>
-    </annotation>
-    <annotation spec="TH">
-        <property name="tagInfo">%THTagInfo</property>
-    </annotation>
-    <annotation spec="THEAD">
-        <property name="tagInfo">%THEADTagInfo</property>
-    </annotation>
-    <annotation spec="TITLE">
-        <property name="tagInfo">%TITLETagInfo</property>
-    </annotation>
-    <annotation spec="TR">
-        <property name="tagInfo">%TRTagInfo</property>
-    </annotation>
-    <annotation spec="TT">
-        <property name="tagInfo">%TTTagInfo</property>
-    </annotation>
-    <annotation spec="U">
-        <property name="tagInfo">%UTagInfo</property>
-    </annotation>
-    <annotation spec="UL">
-        <property name="tagInfo">%ULTagInfo</property>
-    </annotation>
-    <annotation spec="VAR">
-        <property name="tagInfo">%VARTagInfo</property>
-    </annotation>
-    <annotation spec="WBR">
-        <property name="tagInfo">%WBRTagInfo</property>
-    </annotation>
-</abstractGrammarAnnotations>
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/plugin.properties b/bundles/org.eclipse.wst.html.core/plugin.properties
deleted file mode 100644
index 7ba2487..0000000
--- a/bundles/org.eclipse.wst.html.core/plugin.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2004, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-providerName=Eclipse.org
-pluginName=Structured Source HTML Model
-Structured_HTML_Document_Factory_Extension.name=Structured HTML Document Factory Extension
-HTML_Content_Type_Extension_Element.name=HTML
-_taskMarker.name=HTML Task
-_validationMarker.name=HTML Problem
diff --git a/bundles/org.eclipse.wst.html.core/plugin.xml b/bundles/org.eclipse.wst.html.core/plugin.xml
deleted file mode 100644
index 0bd5628..0000000
--- a/bundles/org.eclipse.wst.html.core/plugin.xml
+++ /dev/null
@@ -1,213 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-	<extension point="org.eclipse.wst.sse.core.modelHandler">
-		<modelHandler
-			default="no"
-			class="org.eclipse.wst.html.core.internal.modelhandler.ModelHandlerForHTML"
-			associatedContentTypeId="org.eclipse.wst.html.core.htmlsource"
-			id="org.eclipse.wst.html.core.internal.modelhandler">
-		</modelHandler>
-	</extension>
-
-	<extension point="org.eclipse.wst.sse.core.embeddedTypeHandler">
-		<embeddedTypeHandler
-			class="org.eclipse.wst.html.core.internal.modelhandler.EmbeddedHTML">
-		</embeddedTypeHandler>
-	</extension>
-
-	<extension point="org.eclipse.wst.sse.core.taskscanner">
-		<scanner
-			id="org.eclipse.wst.html.core.internal.tasks.HTMLFileTaskScanner"
-			class="org.eclipse.wst.xml.core.internal.tasks.XMLFileTaskScanner:org.eclipse.wst.html.core.taskMarker"
-			contentTypeIds="org.eclipse.wst.html.core.htmlsource" />
-	</extension>
-	<extension
-		id="taskMarker"
-		name="%_taskMarker.name"
-		point="org.eclipse.core.resources.markers">
-		<super type="org.eclipse.core.resources.taskmarker"/>
-		<persistent value="true"/>
-	</extension>
-    <extension
-       id="validationMarker"
-        name="%_validationMarker.name"
-        point="org.eclipse.core.resources.markers">
-      <super type="org.eclipse.wst.validation.problemmarker"/>
-      <persistent value="true"/>
-    </extension>
-
-	<extension
-		point="org.eclipse.core.filebuffers.documentCreation"
-		id="org.eclipse.wst.html.core.documentfactories"
-		name="%Structured_HTML_Document_Factory_Extension.name">
-		<factory
-			contentTypeId="org.eclipse.wst.html.core.htmlsource"
-			class="org.eclipse.wst.sse.core.internal.filebuffers.BasicStructuredDocumentFactory" />
-	</extension>
-
-	<extension point="org.eclipse.wst.sse.core.commentElementHandler">
-		<handler-custom
-			commenttype="xml"
-			class="org.eclipse.wst.html.core.internal.commentelement.handlers.CommentElementHandlerForSSI">
-			<startwith prefix="#"></startwith>
-		</handler-custom>
-	</extension>
-
-	<extension point="org.eclipse.team.core.fileTypes">
-		<fileTypes
-			type="text"
-			extension="html">
-		</fileTypes>
-		<fileTypes
-			type="text"
-			extension="htm">
-		</fileTypes>
-		<fileTypes
-			type="text"
-			extension="xhtml">
-		</fileTypes>
-		<fileTypes
-			type="text"
-			extension="htpl">
-		</fileTypes>
-		<fileTypes
-			type="text"
-			extension="wml">
-		</fileTypes>
-		<fileTypes
-			type="text"
-			extension="shtml">
-		</fileTypes>
-		<fileTypes
-			type="text"
-			extension="shtm">
-		</fileTypes>
-	</extension>
-
-	<extension point="org.eclipse.wst.sse.core.formatProcessors">
-		<processor
-			class="org.eclipse.wst.html.core.internal.format.HTMLFormatProcessorImpl"
-			contentTypeId="org.eclipse.wst.html.core.htmlsource">
-		</processor>
-	</extension>
-
-	<!-- Extension point for taghelp documentation -->
-	<extension point="org.eclipse.wst.xml.core.annotationFiles">
-		<annotationFile
-			location="data/htmref.xml"
-			publicId="-//W3C//DTD XHTML 1.0 Strict//EN">
-		</annotationFile>
-		<annotationFile
-			location="data/htmref.xml"
-			publicId="-//W3C//DTD XHTML 1.0 Transitional//EN">
-		</annotationFile>
-		<annotationFile
-			location="data/htmref.xml"
-			publicId="-//W3C//DTD XHTML 1.0 Frameset//EN">
-		</annotationFile>
-		<annotationFile
-			location="data/htmref.xml"
-			publicId="-//W3C//DTD XHTML Basic 1.0//EN">
-		</annotationFile>
-		<annotationFile
-			location="data/htmref.xml"
-			publicId="-//W3C//DTD XHTML 1.1//EN">
-		</annotationFile>
-		<annotationFile
-			location="data/htmref.xml"
-			publicId="-//WAPFORUM//DTD XHTML Mobile 1.0//EN">
-		</annotationFile>
-	</extension>
-
-	<extension point="org.eclipse.core.runtime.contentTypes">
-		<content-type
-			file-extensions="html,htm,xhtml,htpl,wml,shtml,shtm"
-			priority="high"
-			name="%HTML_Content_Type_Extension_Element.name"
-			id="htmlsource"
-			base-type="org.eclipse.core.runtime.text">
-			<!-- note: no default-charset for HTML, should use 'platform' -->
-			<describer
-				class="org.eclipse.wst.html.core.internal.contenttype.ContentDescriberForHTML" />
-		</content-type>
-	</extension>
-
-<!-- moved to where the dtd's are contributed
-
-	<extension point="org.eclipse.wst.sse.core.documentTypes">
-		<documentType
-			elementName="html"
-			displayName="XHTML 1.0 Strict"
-			namespaceURI="http://www.w3.org/1999/xhtml"
-			isXHTML="true"
-			hasFrameset="false"
-			publicID="-//W3C//DTD XHTML 1.0 Strict//EN"
-			systemID="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-		</documentType>
-		<documentType
-			elementName="html"
-			displayName="XHTML 1.0 Transitional"
-			namespaceURI="http://www.w3.org/1999/xhtml"
-			isXHTML="true"
-			hasFrameset="false"
-			publicID="-//W3C//DTD XHTML 1.0 Transitional//EN"
-			defaultXHTML="true"
-			systemID="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-		</documentType>
-		<documentType
-			elementName="html"
-			displayName="XHTML 1.0 Frameset"
-			namespaceURI="http://www.w3.org/1999/xhtml"
-			isXHTML="true"
-			hasFrameset="true"
-			publicID="-//W3C//DTD XHTML 1.0 Frameset//EN"
-			systemID="http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
-		</documentType>
-		<documentType
-			elementName="html"
-			displayName="XHTML Basic 1.0"
-			namespaceURI="http://www.w3.org/1999/xhtml"
-			isXHTML="true"
-			hasFrameset="false"
-			publicID="-//W3C//DTD XHTML Basic 1.0//EN"
-			systemID="http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
-		</documentType>
-		<documentType
-			elementName="html"
-			displayName="XHTML 1.1"
-			namespaceURI="http://www.w3.org/1999/xhtml"
-			isXHTML="true"
-			hasFrameset="false"
-			publicID="-//W3C//DTD XHTML 1.1//EN"
-			systemID="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-		</documentType>
-		<documentType
-			elementName="html"
-			displayName="XHTML MP 1.0"
-			namespaceURI="http://www.w3.org/1999/xhtml"
-			isXHTML="true"
-			hasFrameset="false"
-			publicID="-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
-			systemID="http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
-		</documentType>
-		<documentType
-			elementName="wml"
-			displayName="WML 1.3"
-			namespaceURI=""
-			isWML="true"
-			hasFrameset="false"
-			publicID="-//WAPFORUM//DTD WML 1.3//EN"
-			defaultWML="true"
-			systemID="http://www.wapforum.org/DTD/wml13.dtd">
-		</documentType>
-	</extension>
--->
-	<!-- initialize html core preferences -->
-	<extension point="org.eclipse.core.runtime.preferences">
-		<initializer
-			class="org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceInitializer" />
-	</extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLContentBuilder.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLContentBuilder.java
deleted file mode 100644
index ce33f1d..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLContentBuilder.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal;
-
-
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMContentBuilderImpl;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-public class HTMLContentBuilder extends DOMContentBuilderImpl {
-
-	private int fTagCase;
-	private int fAttrCase;
-
-	/**
-	 * DOMContentBuilder constructor comment.
-	 * @param document org.w3c.dom.Document
-	 */
-	public HTMLContentBuilder(Document document) {
-		super(document);
-		Preferences prefs = HTMLCorePlugin.getDefault().getPluginPreferences();
-		fTagCase = prefs.getInt(HTMLCorePreferenceNames.TAG_NAME_CASE);
-		fAttrCase = prefs.getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE);
-		//	Element caseSettings = HTMLPreferenceManager.getHTMLInstance().getElement(PreferenceNames.PREFERRED_CASE);
-		//	fTagCase = caseSettings.getAttribute(PreferenceNames.TAGNAME);
-		//	fAttrCase = caseSettings.getAttribute(PreferenceNames.ATTRIBUTENAME);
-	}
-
-	public String computeName(CMNode cmnode, Node parent) {
-		String name = super.computeName(cmnode, parent);
-		// don't change the case unless we're certain it is meaningless
-		//	if (cmnode instanceof HTMLCMNode && ((HTMLCMNode) cmnode).shouldIgnoreCase()) {
-		if (shouldIgnoreCase(cmnode)) {
-			if (cmnode.getNodeType() == CMNode.ELEMENT_DECLARATION) {
-				if (fTagCase == HTMLCorePreferenceNames.LOWER)
-					name = name.toLowerCase();
-				else if (fTagCase == HTMLCorePreferenceNames.UPPER)
-					name = name.toUpperCase();
-				// else do nothing
-			}
-			else if (cmnode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) {
-				if (fAttrCase == HTMLCorePreferenceNames.LOWER)
-					name = name.toLowerCase();
-				else if (fAttrCase == HTMLCorePreferenceNames.UPPER)
-					name = name.toUpperCase();
-				// else do nothing
-			}
-		}
-		return name;
-
-	}
-
-	private boolean shouldIgnoreCase(CMNode cmnode) {
-		if (!cmnode.supports(HTMLCMProperties.SHOULD_IGNORE_CASE))
-			return false;
-		return ((Boolean) cmnode.getProperty(HTMLCMProperties.SHOULD_IGNORE_CASE)).booleanValue();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCoreMessages.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCoreMessages.java
deleted file mode 100644
index 92f6df1..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCoreMessages.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Strings used by HTML Core
- * 
- * @plannedfor 1.0
- */
-public class HTMLCoreMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.wst.html.core.internal.HTMLCorePluginResources";//$NON-NLS-1$
-
-	public static String No_error__UI_;
-	public static String Undefined_attribute_name___ERROR_;
-	public static String Undefined_attribute_value__ERROR_;
-	public static String Multiple_values_specified__ERROR_;
-	public static String Attribute_name___0___uses__ERROR_;
-	public static String Invalid_attribute_name___0_ERROR_;
-	public static String Invalid_attribute___0____ERROR_;
-	public static String Invalid_location_of_tag____ERROR_;
-	public static String Duplicate_tag___0____ERROR_;
-	public static String No_start_tag____0_____ERROR_;
-	public static String No_end_tag_____0_____ERROR_;
-	public static String End_tag_____0____not_neede_ERROR_;
-	public static String Unknown_tag___0____ERROR_;
-	public static String Tag_name___0___uses_wrong__ERROR_;
-	public static String Invalid_tag_name___0____ERROR_;
-	public static String Invalid_JSP_directive___0__ERROR_;
-	public static String Invalid_text_string___0____ERROR_;
-	public static String Invalid_character_used_in__ERROR_;
-	public static String Unknown_error__ERROR_;
-	public static String Start_tag____0____not_clos_ERROR_;
-	public static String End_tag_____0____not_close_ERROR_;
-	public static String Attribute_value___0___uses_ERROR_;
-	public static String Comment_not_closed__ERROR_;
-	public static String DOCTYPE_declaration_not_cl_ERROR_;
-	public static String Processing_instruction_not_ERROR_;
-	public static String CDATA_section_not_closed__ERROR_;
-	public static String _ERROR_Tag___0___should_be_an_empty_element_tag_1;
-	public static String _ERROR_Attribute_value___0___not_closed__1;
-	public static String HTMLContentPropertiesManager_Updating;
-	public static String HTMLContentPropertiesManager_Problems_Updating;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, HTMLCoreMessages.class);
-	}
-	
-	private HTMLCoreMessages() {
-		// cannot create new instance
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePlugin.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePlugin.java
deleted file mode 100644
index d1a486b..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePlugin.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.wst.html.core.internal.contentproperties.HTMLContentPropertiesManager;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class HTMLCorePlugin extends Plugin {
-	// The shared instance.
-	private static HTMLCorePlugin plugin;
-
-	/**
-	 * The constructor.
-	 */
-	public HTMLCorePlugin() {
-		super();
-		plugin = this;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static HTMLCorePlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns the workspace instance.
-	 */
-	public static IWorkspace getWorkspace() {
-		return ResourcesPlugin.getWorkspace();
-	}
-
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-
-		// listen for resource changes to update content properties keys
-		HTMLContentPropertiesManager.startup();
-	}
-
-	public void stop(BundleContext context) throws Exception {
-		// stop listenning for resource changes to update content properties
-		// keys
-		HTMLContentPropertiesManager.shutdown();
-
-		super.stop(context);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePluginResources.properties b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePluginResources.properties
deleted file mode 100644
index 7cb04b6..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePluginResources.properties
+++ /dev/null
@@ -1,42 +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
-###############################################################################
-No_error__UI_=No error.
-Undefined_attribute_name___ERROR_=Undefined attribute name ({0}).
-Undefined_attribute_value__ERROR_=Undefined attribute value ({0}).
-Multiple_values_specified__ERROR_=Multiple values specified for an attribute ({0}).
-Attribute_name___0___uses__ERROR_=Attribute name ({0}) uses wrong case character.
-Invalid_attribute_name___0_ERROR_=Invalid attribute name ({0}).
-Invalid_attribute___0____ERROR_=Invalid attribute ({0}).
-Invalid_location_of_tag____ERROR_=Invalid location of tag ({0}).
-Duplicate_tag___0____ERROR_=Duplicate tag ({0}).
-No_start_tag____0_____ERROR_=No start tag (<{0}>).
-No_end_tag_____0_____ERROR_=No end tag (</{0}>).
-End_tag_____0____not_neede_ERROR_=End tag (</{0}>) not needed.
-Unknown_tag___0____ERROR_=Unknown tag ({0}).
-Tag_name___0___uses_wrong__ERROR_=Tag name ({0}) uses wrong case character.
-Invalid_tag_name___0____ERROR_=Invalid tag name ({0}).
-Invalid_JSP_directive___0__ERROR_=Invalid JSP directive ({0}).
-Invalid_text_string___0____ERROR_=Invalid text string ({0}).
-Invalid_character_used_in__ERROR_=Invalid character used in text string ({0}).
-Unknown_error__ERROR_=Unknown error.
-Start_tag____0____not_clos_ERROR_=Start tag (<{0}>) not closed.
-End_tag_____0____not_close_ERROR_=End tag (</{0}>) not closed.
-Attribute_value___0___uses_ERROR_=Attribute value ({0}) uses wrong case character.
-Comment_not_closed__ERROR_=Comment not closed.
-DOCTYPE_declaration_not_cl_ERROR_=DOCTYPE declaration not closed.
-Processing_instruction_not_ERROR_=Processing instruction not closed.
-CDATA_section_not_closed__ERROR_=CDATA section not closed.
-# From here, the new messages are added for V5
-_ERROR_Tag___0___should_be_an_empty_element_tag_1=Tag ({0}) should be an empty-element tag.
-_ERROR_Attribute_value___0___not_closed__1=Attribute value ({0}) not closed.
-#
-HTMLContentPropertiesManager_Updating=Updating Web Content Settings
-HTMLContentPropertiesManager_Problems_Updating=Problem saving Web Content Settings for {0}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/Logger.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/Logger.java
deleted file mode 100644
index c547950..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/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.wst.html.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.wst.html.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.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/AbstractNodeCleanupHandler.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/AbstractNodeCleanupHandler.java
deleted file mode 100644
index b435610..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/AbstractNodeCleanupHandler.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.cleanup;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
-import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler;
-import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences;
-import org.eclipse.wst.sse.core.internal.cleanup.StructuredCleanupPreferences;
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-
-abstract class AbstractNodeCleanupHandler implements IStructuredCleanupHandler {
-
-	protected IStructuredCleanupPreferences fCleanupPreferences = null;
-	protected IProgressMonitor fProgressMonitor = null;
-
-	public void setCleanupPreferences(IStructuredCleanupPreferences cleanupPreferences) {
-
-		fCleanupPreferences = cleanupPreferences;
-	}
-
-
-	public IStructuredCleanupPreferences getCleanupPreferences() {
-		if (fCleanupPreferences == null) {
-			fCleanupPreferences = new StructuredCleanupPreferences();
-	
-			Preferences preferences = getModelPreferences();
-			if (preferences != null) {
-				fCleanupPreferences.setTagNameCase(preferences.getInt(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE));
-				fCleanupPreferences.setAttrNameCase(preferences.getInt(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE));
-				fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(HTMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS));
-				fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(HTMLCorePreferenceNames.INSERT_REQUIRED_ATTRS));
-				fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(HTMLCorePreferenceNames.INSERT_MISSING_TAGS));
-				fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(HTMLCorePreferenceNames.QUOTE_ATTR_VALUES));
-				fCleanupPreferences.setFormatSource(preferences.getBoolean(HTMLCorePreferenceNames.FORMAT_SOURCE));
-				fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(HTMLCorePreferenceNames.CONVERT_EOL_CODES));
-				fCleanupPreferences.setEOLCode(preferences.getString(HTMLCorePreferenceNames.CLEANUP_EOL_CODE));
-			}
-		}
-
-		return fCleanupPreferences;
-	}
-
-
-	public void setProgressMonitor(IProgressMonitor progressMonitor) {
-
-		fProgressMonitor = progressMonitor;
-	}
-
-	static protected StructuredDocumentEvent replaceSource(IDOMModel model, Object requester, int offset, int length, String source) {
-
-		StructuredDocumentEvent result = null;
-		if (model == null)
-			return result;
-		IStructuredDocument structuredDocument = model.getStructuredDocument();
-		if (structuredDocument == null)
-			return result;
-		if (source == null)
-			source = new String();
-		if (structuredDocument.containsReadOnly(offset, length))
-			return result;
-		if (requester == null) {
-			requester = structuredDocument;
-		}
-		return structuredDocument.replaceText(requester, offset, length, source);
-	}
-
-	protected Preferences getModelPreferences() {
-		return HTMLCorePlugin.getDefault().getPluginPreferences();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/CSSTextNodeCleanupHandler.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/CSSTextNodeCleanupHandler.java
deleted file mode 100644
index 05675c6..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/CSSTextNodeCleanupHandler.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.cleanup;
-
-
-
-import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatter;
-import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatterFactory;
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Node;
-
-// nakamori_TODO: check and remove
-
-public class CSSTextNodeCleanupHandler extends AbstractNodeCleanupHandler {
-
-	public Node cleanup(Node node) {
-		if (node == null)
-			return node;
-		IDOMModel model = ((IDOMNode) node).getModel();
-		if (model == null)
-			return node;
-		IStructuredDocument structuredDocument = model.getStructuredDocument();
-		if (structuredDocument == null)
-			return node;
-
-		String content = getCSSContent(node);
-		if (content == null)
-			return node;
-
-		int offset = ((IDOMNode) node).getStartOffset();
-		int length = ((IDOMNode) node).getEndOffset() - offset;
-		replaceSource(model, this, offset, length, content);
-		return (IDOMNode) model.getIndexedRegion(offset);
-	}
-
-	/**
-	 */
-	private String getCSSContent(Node text) {
-		ICSSModel model = getCSSModel(text);
-		if (model == null)
-			return null;
-		ICSSNode document = model.getDocument();
-		if (document == null)
-			return null;
-		INodeNotifier notifier = (INodeNotifier) document;
-		CSSSourceFormatter formatter = (CSSSourceFormatter) notifier.getAdapterFor(CSSSourceFormatter.class);
-		// try another way to get formatter
-		if (formatter == null)
-			formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter(notifier);
-		if (formatter == null)
-			return null;
-		StringBuffer buffer = formatter.cleanup(document);
-		if (buffer == null)
-			return null;
-		return buffer.toString();
-	}
-
-	/**
-	 */
-	private ICSSModel getCSSModel(Node text) {
-		if (text == null)
-			return null;
-		INodeNotifier notifier = (INodeNotifier) text.getParentNode();
-		if (notifier == null)
-			return null;
-		INodeAdapter adapter = notifier.getAdapterFor(IStyleSheetAdapter.class);
-		if (adapter == null)
-			return null;
-		if (!(adapter instanceof IStyleSheetAdapter))
-			return null;
-		IStyleSheetAdapter styleAdapter = (IStyleSheetAdapter) adapter;
-		return styleAdapter.getModel();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/ElementNodeCleanupHandler.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/ElementNodeCleanupHandler.java
deleted file mode 100644
index 11af74b..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/ElementNodeCleanupHandler.java
+++ /dev/null
@@ -1,695 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.cleanup;
-
-
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.text.edits.InsertEdit;
-import org.eclipse.text.edits.MultiTextEdit;
-import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatter;
-import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatterFactory;
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleDeclarationAdapter;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
-import org.eclipse.wst.html.core.internal.Logger;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
-import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.ISourceGenerator;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-// nakamori_TODO: check and remove CSS formatting
-
-public class ElementNodeCleanupHandler extends AbstractNodeCleanupHandler {
-
-	/** Non-NLS strings */
-	protected static final String START_TAG_OPEN = "<"; //$NON-NLS-1$
-	protected static final String END_TAG_OPEN = "</"; //$NON-NLS-1$
-	protected static final String TAG_CLOSE = ">"; //$NON-NLS-1$
-	protected static final String EMPTY_TAG_CLOSE = "/>"; //$NON-NLS-1$
-	protected static final String SINGLE_QUOTES = "''"; //$NON-NLS-1$
-	protected static final String DOUBLE_QUOTES = "\"\""; //$NON-NLS-1$
-	protected static final char SINGLE_QUOTE = '\''; //$NON-NLS-1$
-	protected static final char DOUBLE_QUOTE = '\"'; //$NON-NLS-1$
-
-	public Node cleanup(Node node) {
-		IDOMNode renamedNode = (IDOMNode) cleanupChildren(node);
-
-		// call quoteAttrValue() first so it will close any unclosed attr
-		// quoteAttrValue() will return the new start tag if there is a
-		// structure change
-		renamedNode = quoteAttrValue(renamedNode);
-
-		// insert tag close if missing
-		// if node is not comment tag
-		// and not implicit tag
-		if (!((IDOMElement) renamedNode).isCommentTag() && (renamedNode.getStartStructuredDocumentRegion() != null)) {
-			IDOMModel structuredModel = renamedNode.getModel();
-
-			// save start offset before insertTagClose()
-			// or else renamedNode.getStartOffset() will be zero if
-			// renamedNode replaced by insertTagClose()
-			int startTagStartOffset = renamedNode.getStartOffset();
-
-			// for start tag
-			IStructuredDocumentRegion startTagStructuredDocumentRegion = renamedNode.getStartStructuredDocumentRegion();
-			insertTagClose(structuredModel, startTagStructuredDocumentRegion);
-
-			// update renamedNode and startTagStructuredDocumentRegion after
-			// insertTagClose()
-			renamedNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset);
-			startTagStructuredDocumentRegion = renamedNode.getStartStructuredDocumentRegion();
-
-			// for end tag
-			IStructuredDocumentRegion endTagStructuredDocumentRegion = renamedNode.getEndStructuredDocumentRegion();
-			if (endTagStructuredDocumentRegion != startTagStructuredDocumentRegion)
-				insertTagClose(structuredModel, endTagStructuredDocumentRegion);
-		}
-
-		// call insertMissingTags() next, it will generate implicit tags if
-		// there are any
-		// insertMissingTags() will return the new missing start tag if one is
-		// missing
-		// applyTagNameCase() will return the renamed node.
-		// The renamed/new node will be saved and returned to caller when all
-		// cleanup is done.
-		renamedNode = insertMissingTags(renamedNode);
-		renamedNode = insertRequiredAttrs(renamedNode);
-		renamedNode = applyTagNameCase(renamedNode);
-		applyAttrNameCase(renamedNode);
-		cleanupCSSAttrValue(renamedNode);
-
-		return renamedNode;
-	}
-
-	/**
-	 * Checks if cleanup should modify case. Returns true case should be
-	 * preserved, false otherwise.
-	 * 
-	 * @param element
-	 * @return true if element is case sensitive, false otherwise
-	 */
-	private boolean shouldPreserveCase(IDOMElement element) {
-		// case option can be applied to no namespace tags
-		return !element.isGlobalTag();
-		/*
-		 * ModelQueryAdapter mqadapter = (ModelQueryAdapter)
-		 * element.getAdapterFor(ModelQueryAdapter.class); ModelQuery mq =
-		 * null; CMNode nodedecl = null; if (mqadapter != null) mq =
-		 * mqadapter.getModelQuery(); if (mq != null) nodedecl =
-		 * mq.getCMNode(node); // if a Node isn't recognized as HTML or is and
-		 * cares about case, do not alter it // if (nodedecl == null ||
-		 * (nodedecl instanceof HTMLCMNode && ((HTMLCMNode)
-		 * nodedecl).shouldIgnoreCase())) if (!
-		 * nodedecl.supports(HTMLCMProperties.SHOULD_IGNORE_CASE)) return
-		 * false; return
-		 * ((Boolean)cmnode.getProperty(HTMLCMProperties.SHOULD_IGNORE_CASE)).booleanValue();
-		 */
-	}
-
-	/**
-	 * Checks if cleanup should force modifying element name to all lowercase.
-	 * 
-	 * @param element
-	 * @return true if cleanup should lowercase element name, false otherwise
-	 */
-	private boolean isXMLTag(IDOMElement element) {
-		return element.isXMLTag();
-	}
-
-	protected void applyAttrNameCase(IDOMNode node) {
-		IDOMElement element = (IDOMElement) node;
-		if (element.isCommentTag())
-			return; // do nothing
-
-		int attrNameCase = HTMLCorePreferenceNames.ASIS;
-		if (!shouldPreserveCase(element)) {
-			if (isXMLTag(element))
-				attrNameCase = HTMLCorePreferenceNames.LOWER;
-			else
-				attrNameCase = getCleanupPreferences().getAttrNameCase();
-		}
-
-		NamedNodeMap attributes = node.getAttributes();
-		int attributesLength = attributes.getLength();
-
-		for (int i = 0; i < attributesLength; i++) {
-			IDOMNode eachAttr = (IDOMNode) attributes.item(i);
-			String oldAttrName = eachAttr.getNodeName();
-			String newAttrName = oldAttrName;
-			/*
-			 * 254961 - all HTML tag names and attribute names should be in
-			 * English even for HTML files in other languages like Japanese or
-			 * Turkish. English locale should be used to convert between
-			 * uppercase and lowercase (otherwise "link" would be converted to
-			 * Turkish "I Overdot Capital").
-			 */
-			if (attrNameCase == HTMLCorePreferenceNames.LOWER)
-				newAttrName = oldAttrName.toLowerCase(Locale.US);
-			else if (attrNameCase == HTMLCorePreferenceNames.UPPER)
-				newAttrName = oldAttrName.toUpperCase(Locale.US);
-
-			if (newAttrName.compareTo(oldAttrName) != 0) {
-				int attrNameStartOffset = eachAttr.getStartOffset();
-				int attrNameLength = oldAttrName.length();
-
-				IDOMModel structuredModel = node.getModel();
-				IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-				replaceSource(structuredModel, structuredDocument, attrNameStartOffset, attrNameLength, newAttrName);
-			}
-		}
-	}
-
-	protected IDOMNode applyTagNameCase(IDOMNode node) {
-		IDOMElement element = (IDOMElement) node;
-		if (element.isCommentTag())
-			return node; // do nothing
-
-		int tagNameCase = HTMLCorePreferenceNames.ASIS;
-
-		if (!shouldPreserveCase(element)) {
-			if (isXMLTag(element))
-				tagNameCase = HTMLCorePreferenceNames.LOWER;
-			else
-				tagNameCase = getCleanupPreferences().getTagNameCase();
-		}
-
-		String oldTagName = node.getNodeName();
-		String newTagName = oldTagName;
-		IDOMNode newNode = node;
-
-		/*
-		 * 254961 - all HTML tag names and attribute names should be in
-		 * English even for HTML files in other languages like Japanese or
-		 * Turkish. English locale should be used to convert between uppercase
-		 * and lowercase (otherwise "link" would be converted to Turkish "I
-		 * Overdot Capital").
-		 */
-		if (tagNameCase == HTMLCorePreferenceNames.LOWER)
-			newTagName = oldTagName.toLowerCase(Locale.US);
-		else if (tagNameCase == HTMLCorePreferenceNames.UPPER)
-			newTagName = oldTagName.toUpperCase(Locale.US);
-
-		IDOMModel structuredModel = node.getModel();
-		IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-
-		IStructuredDocumentRegion startTagStructuredDocumentRegion = node.getStartStructuredDocumentRegion();
-		if (startTagStructuredDocumentRegion != null) {
-			ITextRegionList regions = startTagStructuredDocumentRegion.getRegions();
-			if (regions != null && regions.size() > 0) {
-				ITextRegion startTagNameRegion = regions.get(1);
-				int startTagNameStartOffset = startTagStructuredDocumentRegion.getStartOffset(startTagNameRegion);
-				int startTagNameLength = startTagStructuredDocumentRegion.getTextEndOffset(startTagNameRegion) - startTagNameStartOffset;
-
-				replaceSource(structuredModel, structuredDocument, startTagNameStartOffset, startTagNameLength, newTagName);
-				newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagNameStartOffset); // save
-				// new
-				// node
-			}
-		}
-
-		IStructuredDocumentRegion endTagStructuredDocumentRegion = node.getEndStructuredDocumentRegion();
-		if (endTagStructuredDocumentRegion != null) {
-			ITextRegionList regions = endTagStructuredDocumentRegion.getRegions();
-			if (regions != null && regions.size() > 0) {
-				ITextRegion endTagNameRegion = regions.get(1);
-				int endTagNameStartOffset = endTagStructuredDocumentRegion.getStartOffset(endTagNameRegion);
-				int endTagNameLength = endTagStructuredDocumentRegion.getTextEndOffset(endTagNameRegion) - endTagNameStartOffset;
-
-				if (startTagStructuredDocumentRegion != endTagStructuredDocumentRegion)
-					replaceSource(structuredModel, structuredDocument, endTagNameStartOffset, endTagNameLength, newTagName);
-			}
-		}
-
-		return newNode;
-	}
-
-	protected Node cleanupChildren(Node node) {
-		Node parentNode = node;
-
-		if (node != null) {
-			Node childNode = node.getFirstChild();
-			HTMLCleanupHandlerFactory factory = HTMLCleanupHandlerFactory.getInstance();
-			while (childNode != null) {
-				// cleanup this child node
-				IStructuredCleanupHandler cleanupHandler = factory.createHandler(childNode, getCleanupPreferences());
-				childNode = cleanupHandler.cleanup(childNode);
-
-				// get new parent node
-				parentNode = childNode.getParentNode();
-
-				// get next child node
-				childNode = childNode.getNextSibling();
-			}
-		}
-
-		return parentNode;
-	}
-
-	/**
-	 */
-	protected void cleanupCSSAttrValue(IDOMNode node) {
-		if (node == null || node.getNodeType() != Node.ELEMENT_NODE)
-			return;
-		IDOMElement element = (IDOMElement) node;
-		if (!element.isGlobalTag())
-			return;
-
-		Attr attr = element.getAttributeNode("style"); //$NON-NLS-1$
-		if (attr == null)
-			return;
-		String value = getCSSValue(attr);
-		if (value == null)
-			return;
-		String oldValue = ((IDOMNode) attr).getValueSource();
-		if (oldValue != null && value.equals(oldValue))
-			return;
-		attr.setValue(value);
-	}
-
-	/**
-	 */
-	private ICSSModel getCSSModel(Attr attr) {
-		if (attr == null)
-			return null;
-		INodeNotifier notifier = (INodeNotifier) attr.getOwnerElement();
-		if (notifier == null)
-			return null;
-		INodeAdapter adapter = notifier.getAdapterFor(IStyleDeclarationAdapter.class);
-		if (adapter == null)
-			return null;
-		if (!(adapter instanceof IStyleDeclarationAdapter))
-			return null;
-		IStyleDeclarationAdapter styleAdapter = (IStyleDeclarationAdapter) adapter;
-		return styleAdapter.getModel();
-	}
-
-	/**
-	 */
-	private String getCSSValue(Attr attr) {
-		ICSSModel model = getCSSModel(attr);
-		if (model == null)
-			return null;
-		ICSSNode document = model.getDocument();
-		if (document == null)
-			return null;
-		INodeNotifier notifier = (INodeNotifier) document;
-		CSSSourceFormatter formatter = (CSSSourceFormatter) notifier.getAdapterFor(CSSSourceFormatter.class);
-		// try another way to get formatter
-		if (formatter == null)
-			formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter(notifier);
-		if (formatter == null)
-			return null;
-		StringBuffer buffer = formatter.cleanup(document);
-		if (buffer == null)
-			return null;
-		return buffer.toString();
-	}
-
-	private boolean isEmptyElement(IDOMElement element) {
-		Document document = element.getOwnerDocument();
-		if (document == null)
-			// undefined tag, return default
-			return false;
-
-		ModelQuery modelQuery = ModelQueryUtil.getModelQuery(document);
-		if (modelQuery == null)
-			// undefined tag, return default
-			return false;
-
-		CMElementDeclaration decl = modelQuery.getCMElementDeclaration(element);
-		if (decl == null)
-			// undefined tag, return default
-			return false;
-
-		return (decl.getContentType() == CMElementDeclaration.EMPTY);
-	}
-
-	protected IDOMNode insertEndTag(IDOMNode node) {
-		IDOMElement element = (IDOMElement) node;
-
-		int startTagStartOffset = node.getStartOffset();
-		IDOMModel structuredModel = node.getModel();
-		IDOMNode newNode = null;
-
-		if (element.isCommentTag()) {
-			// do nothing
-		}
-		else if (isEmptyElement(element)) {
-			IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-			IStructuredDocumentRegion startStructuredDocumentRegion = node.getStartStructuredDocumentRegion();
-			ITextRegionList regions = startStructuredDocumentRegion.getRegions();
-			ITextRegion lastRegion = regions.get(regions.size() - 1);
-			replaceSource(structuredModel, structuredDocument, startStructuredDocumentRegion.getStartOffset(lastRegion), lastRegion.getLength(), EMPTY_TAG_CLOSE);
-
-			if (regions.size() > 1) {
-				ITextRegion regionBeforeTagClose = regions.get(regions.size() - 1 - 1);
-
-				// insert a space separator before tag close if the previous
-				// region does not have extra spaces
-				if (regionBeforeTagClose.getTextLength() == regionBeforeTagClose.getLength())
-					replaceSource(structuredModel, structuredDocument, startStructuredDocumentRegion.getStartOffset(lastRegion), 0, " "); //$NON-NLS-1$
-			}
-		}
-		else {
-			String tagName = node.getNodeName();
-			String endTag = END_TAG_OPEN.concat(tagName).concat(TAG_CLOSE);
-
-			IDOMNode lastChild = (IDOMNode) node.getLastChild();
-			int endTagStartOffset = 0;
-			if (lastChild != null)
-				// if this node has children, insert the end tag after the
-				// last child
-				endTagStartOffset = lastChild.getEndOffset();
-			else
-				// if this node does not has children, insert the end tag
-				// after the start tag
-				endTagStartOffset = node.getEndOffset();
-
-			IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-			replaceSource(structuredModel, structuredDocument, endTagStartOffset, 0, endTag);
-		}
-
-		newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset); // save
-		// new
-		// node
-
-		return newNode;
-	}
-
-	protected IDOMNode insertMissingTags(IDOMNode node) {
-		boolean insertMissingTags = getCleanupPreferences().getInsertMissingTags();
-		IDOMNode newNode = node;
-
-		if (insertMissingTags) {
-			IStructuredDocumentRegion startTagStructuredDocumentRegion = node.getStartStructuredDocumentRegion();
-			if (startTagStructuredDocumentRegion == null) {
-				// implicit start tag; generate tag for it
-				newNode = insertStartTag(node);
-				startTagStructuredDocumentRegion = newNode.getStartStructuredDocumentRegion();
-			}
-
-			IStructuredDocumentRegion endTagStructuredDocumentRegion = newNode.getEndStructuredDocumentRegion();
-
-			ITextRegionList regionList = startTagStructuredDocumentRegion.getRegions();
-			if (startTagStructuredDocumentRegion != null && regionList != null && regionList.get(regionList.size() - 1).getType() == DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
-
-			}
-			else {
-				if (startTagStructuredDocumentRegion == null) {
-					// start tag missing
-					if (isStartTagRequired(newNode))
-						newNode = insertStartTag(newNode);
-				}
-				else if (endTagStructuredDocumentRegion == null) {
-					// end tag missing
-					if (isEndTagRequired(newNode))
-						newNode = insertEndTag(newNode);
-				}
-			}
-		}
-
-		return newNode;
-	}
-
-	protected IDOMNode insertStartTag(IDOMNode node) {
-		IDOMElement element = (IDOMElement) node;
-		if (element.isCommentTag())
-			return node; // do nothing
-
-		IDOMNode newNode = null;
-
-		String tagName = node.getNodeName();
-		String startTag = START_TAG_OPEN.concat(tagName).concat(TAG_CLOSE);
-		int startTagStartOffset = node.getStartOffset();
-
-		IDOMModel structuredModel = node.getModel();
-		IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-		replaceSource(structuredModel, structuredDocument, startTagStartOffset, 0, startTag);
-		newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset); // save
-		// new
-		// node
-
-		return newNode;
-	}
-
-	protected void insertTagClose(IDOMModel structuredModel, IStructuredDocumentRegion flatNode) {
-		if ((flatNode != null) && (flatNode.getRegions() != null)) {
-			ITextRegionList regionList = flatNode.getRegions();
-			ITextRegion lastRegion = regionList.get(regionList.size() - 1);
-			if (lastRegion != null) {
-				String regionType = lastRegion.getType();
-				if ((regionType != DOMRegionContext.XML_EMPTY_TAG_CLOSE) && (regionType != DOMRegionContext.XML_TAG_CLOSE)) {
-					IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-
-					// insert ">" after lastRegion of flatNode
-					// as in "<a</a>" if flatNode is for start tag, or in
-					// "<a></a" if flatNode is for end tag
-					replaceSource(structuredModel, structuredDocument, flatNode.getTextEndOffset(lastRegion), 0, ">"); //$NON-NLS-1$
-				}
-			}
-		}
-	}
-
-	protected boolean isEndTagRequired(IDOMNode node) {
-		if (node == null)
-			return false;
-		return node.isContainer();
-	}
-
-	/**
-	 * The end tags of HTML EMPTY content type, such as IMG, and HTML
-	 * undefined tags are parsed separately from the start tags. So inserting
-	 * the missing start tag is useless and even harmful.
-	 */
-	protected boolean isStartTagRequired(IDOMNode node) {
-		if (node == null)
-			return false;
-		return node.isContainer();
-	}
-
-	protected boolean isXMLType(IDOMModel structuredModel) {
-		boolean result = false;
-
-		if (structuredModel != null && structuredModel != null) {
-			IDOMDocument document = structuredModel.getDocument();
-
-			if (document != null)
-				result = document.isXMLType();
-		}
-
-		return result;
-	}
-
-	protected IDOMNode quoteAttrValue(IDOMNode node) {
-		IDOMElement element = (IDOMElement) node;
-		if (element.isCommentTag())
-			return node; // do nothing
-
-		boolean quoteAttrValues = getCleanupPreferences().getQuoteAttrValues();
-		IDOMNode newNode = node;
-
-		if (quoteAttrValues) {
-			NamedNodeMap attributes = newNode.getAttributes();
-			int attributesLength = attributes.getLength();
-			ISourceGenerator generator = node.getModel().getGenerator();
-
-			for (int i = 0; i < attributesLength; i++) {
-				attributes = newNode.getAttributes();
-				attributesLength = attributes.getLength();
-				IDOMAttr eachAttr = (IDOMAttr) attributes.item(i);
-				// ITextRegion oldAttrValueRegion = eachAttr.getValueRegion();
-				String oldAttrValue = eachAttr.getValueRegionText();
-				if (oldAttrValue == null) {
-					IDOMModel structuredModel = node.getModel();
-					if (isXMLType(structuredModel)) {
-						// TODO: Kit, please check. Is there any way to not
-						// rely on getting regions from attributes?
-						String newAttrValue = "=\"" + eachAttr.getNameRegionText() + "\""; //$NON-NLS-1$ //$NON-NLS-2$
-
-						IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-						replaceSource(structuredModel, structuredDocument, eachAttr.getNameRegionEndOffset(), 0, newAttrValue);
-						newNode = (IDOMNode) structuredModel.getIndexedRegion(node.getStartOffset()); // save
-						// new
-						// node
-					}
-				}
-				else {
-
-					char quote = StringUtils.isQuoted(oldAttrValue) ? oldAttrValue.charAt(0) : DOUBLE_QUOTE;
-					String newAttrValue = generator.generateAttrValue(eachAttr, quote);
-
-					// There is a problem in
-					// StructuredDocumentRegionUtil.getAttrValue(ITextRegion)
-					// when the region is instanceof ContextRegion.
-					// Workaround for now...
-					if (oldAttrValue.length() == 1) {
-						char firstChar = oldAttrValue.charAt(0);
-						if (firstChar == SINGLE_QUOTE)
-							newAttrValue = SINGLE_QUOTES;
-						else if (firstChar == DOUBLE_QUOTE)
-							newAttrValue = DOUBLE_QUOTES;
-					}
-
-					if (newAttrValue != null) {
-						if (newAttrValue.compareTo(oldAttrValue) != 0) {
-							int attrValueStartOffset = eachAttr.getValueRegionStartOffset();
-							int attrValueLength = oldAttrValue.length();
-							int startTagStartOffset = node.getStartOffset();
-
-							IDOMModel structuredModel = node.getModel();
-							IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-							replaceSource(structuredModel, structuredDocument, attrValueStartOffset, attrValueLength, newAttrValue);
-							newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset); // save
-							// new
-							// node
-						}
-					}
-				}
-			}
-		}
-
-		return newNode;
-	}
-
-	private IDOMNode insertRequiredAttrs(IDOMNode node) {
-		boolean insertRequiredAttrs = getCleanupPreferences().getInsertRequiredAttrs();
-		IDOMNode newNode = node;
-
-		if (insertRequiredAttrs) {
-			List requiredAttrs = getRequiredAttrs(newNode);
-			if (requiredAttrs.size() > 0) {
-				NamedNodeMap currentAttrs = node.getAttributes();
-				List insertAttrs = new ArrayList();
-				if (currentAttrs.getLength() == 0)
-					insertAttrs.addAll(requiredAttrs);
-				else {
-					for (int i = 0; i < requiredAttrs.size(); i++) {
-						String requiredAttrName = ((CMAttributeDeclaration) requiredAttrs.get(i)).getAttrName();
-						boolean found = false;
-						for (int j = 0; j < currentAttrs.getLength(); j++) {
-							String currentAttrName = currentAttrs.item(j).getNodeName();
-							if (requiredAttrName.compareToIgnoreCase(currentAttrName) == 0) {
-								found = true;
-								break;
-							}
-						}
-						if (!found)
-							insertAttrs.add(requiredAttrs.get(i));
-					}
-				}
-				if (insertAttrs.size() > 0) {
-					IStructuredDocumentRegion startStructuredDocumentRegion = newNode.getStartStructuredDocumentRegion();
-					int index = startStructuredDocumentRegion.getEndOffset();
-					ITextRegion lastRegion = startStructuredDocumentRegion.getLastRegion();
-					if (lastRegion.getType() == DOMRegionContext.XML_TAG_CLOSE) {
-						index--;
-						lastRegion = startStructuredDocumentRegion.getRegionAtCharacterOffset(index - 1);
-					}
-					else if (lastRegion.getType() == DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
-						index = index - 2;
-						lastRegion = startStructuredDocumentRegion.getRegionAtCharacterOffset(index - 1);
-					}
-					MultiTextEdit multiTextEdit = new MultiTextEdit();
-					try {
-						for (int i = insertAttrs.size() - 1; i >= 0; i--) {
-							CMAttributeDeclaration attrDecl = (CMAttributeDeclaration) insertAttrs.get(i);
-							String requiredAttributeName = attrDecl.getAttrName();
-							String defaultValue = attrDecl.getDefaultValue();
-							if (defaultValue == null)
-								defaultValue = ""; //$NON-NLS-1$
-							String nameAndDefaultValue = " "; //$NON-NLS-1$
-							if (i == 0 && lastRegion.getLength() > lastRegion.getTextLength())
-								nameAndDefaultValue = ""; //$NON-NLS-1$
-							nameAndDefaultValue += requiredAttributeName + "=\"" + defaultValue + "\""; //$NON-NLS-1$ //$NON-NLS-2$
-							multiTextEdit.addChild(new InsertEdit(index, nameAndDefaultValue));
-							// BUG3381: MultiTextEdit applies all child
-							// TextEdit's basing on offsets
-							// in the document before the first TextEdit, not
-							// after each
-							// child TextEdit. Therefore, do not need to
-							// advance the index.
-							// index += nameAndDefaultValue.length();
-						}
-						multiTextEdit.apply(newNode.getStructuredDocument());
-					}
-					catch (BadLocationException e) {
-						// log or now, unless we find reason not to
-						Logger.log(Logger.INFO, e.getMessage());
-					}
-				}
-			}
-		}
-
-		return newNode;
-	}
-
-
-	protected ModelQuery getModelQuery(Node node) {
-		ModelQuery result = null;
-		if (node.getNodeType() == Node.DOCUMENT_NODE) {
-			result = ModelQueryUtil.getModelQuery((Document) node);
-		}
-		else {
-			result = ModelQueryUtil.getModelQuery(node.getOwnerDocument());
-		}
-		return result;
-	}
-
-	protected List getRequiredAttrs(Node node) {
-		List result = new ArrayList();
-
-		ModelQuery modelQuery = getModelQuery(node);
-		if (modelQuery != null) {
-			CMElementDeclaration elementDecl = modelQuery.getCMElementDeclaration((Element) node);
-			if (elementDecl != null) {
-				CMNamedNodeMap attrMap = elementDecl.getAttributes();
-				Iterator it = attrMap.iterator();
-				CMAttributeDeclaration attr = null;
-				while (it.hasNext()) {
-					attr = (CMAttributeDeclaration) it.next();
-					if (attr.getUsage() == CMAttributeDeclaration.REQUIRED) {
-						result.add(attr);
-					}
-				}
-			}
-		}
-
-		return result;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupHandlerFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupHandlerFactory.java
deleted file mode 100644
index 8dfc778..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupHandlerFactory.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.cleanup;
-
-
-
-import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler;
-import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.Node;
-
-// nakamori_TODO: check and remove CSS formatting
-
-class HTMLCleanupHandlerFactory {
-
-
-
-	private static HTMLCleanupHandlerFactory fInstance = null;
-
-	static synchronized HTMLCleanupHandlerFactory getInstance() {
-		if (fInstance == null) {
-			fInstance = new HTMLCleanupHandlerFactory();
-		}
-		return fInstance;
-	}
-
-	private HTMLCleanupHandlerFactory() {
-		super();
-	}
-
-	IStructuredCleanupHandler createHandler(Node node, IStructuredCleanupPreferences cleanupPreferences) {
-		short nodeType = node.getNodeType();
-		IStructuredCleanupHandler handler = null;
-		switch (nodeType) {
-			case Node.ELEMENT_NODE : {
-				if (isXMLTag(node))
-					handler = new ElementNodeCleanupHandler();
-				else
-					handler = new JSPElementNodeCleanupHandler();
-				break;
-			}
-			case Node.TEXT_NODE : {
-				if (isParentStyleTag(node))
-					handler = new CSSTextNodeCleanupHandler();
-				else
-					handler = new NodeCleanupHandler();
-				break;
-			}
-			default : {
-				handler = new NodeCleanupHandler();
-			}
-		}
-
-		handler.setCleanupPreferences(cleanupPreferences);
-
-		return handler;
-	}
-	
-	private boolean isXMLTag(Node node) {
-		if(node instanceof IDOMNode) {
-			IStructuredDocumentRegion region = ((IDOMNode) node).getFirstStructuredDocumentRegion();
-			return (DOMRegionContext.XML_TAG_NAME == region.getType());
-		}
-		return false;
-	}
-
-	private boolean isParentStyleTag(Node node) {
-		if (node == null)
-			return false;
-		if (node.getNodeType() != Node.TEXT_NODE)
-			return false;
-		if (!(node instanceof IDOMNode))
-			return false;
-		IStructuredDocumentRegion flatNode = ((IDOMNode) node).getFirstStructuredDocumentRegion();
-		if (flatNode == null)
-			return false;
-		if (flatNode.getType() != DOMRegionContext.BLOCK_TEXT)
-			return false;
-
-		// check if the parent is STYLE element
-		Node parent = node.getParentNode();
-		if (parent == null)
-			return false;
-		if (parent.getNodeType() != Node.ELEMENT_NODE)
-			return false;
-		String name = parent.getNodeName();
-		if (name == null)
-			return false;
-		if (!name.equalsIgnoreCase("STYLE"))//$NON-NLS-1$
-			return false;
-		return true;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupProcessorImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupProcessorImpl.java
deleted file mode 100644
index 94b2929..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupProcessorImpl.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.cleanup;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.format.HTMLFormatProcessorImpl;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
-import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML;
-import org.eclipse.wst.sse.core.internal.cleanup.AbstractStructuredCleanupProcessor;
-import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler;
-import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences;
-import org.eclipse.wst.sse.core.internal.cleanup.StructuredCleanupPreferences;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
-import org.w3c.dom.Node;
-
-public class HTMLCleanupProcessorImpl extends AbstractStructuredCleanupProcessor {
-	private IStructuredCleanupPreferences fCleanupPreferences = null;
-	
-	protected String getContentType() {
-		return ContentTypeIdForHTML.ContentTypeID_HTML;
-	}
-
-	protected IStructuredCleanupHandler getCleanupHandler(Node node) {
-		return HTMLCleanupHandlerFactory.getInstance().createHandler(node, getCleanupPreferences());
-	}
-
-	public IStructuredCleanupPreferences getCleanupPreferences() {
-		if (fCleanupPreferences == null) {
-			fCleanupPreferences = new StructuredCleanupPreferences();
-
-			Preferences preferences = getModelPreferences();
-			if (preferences != null) {
-				fCleanupPreferences.setTagNameCase(preferences.getInt(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE));
-				fCleanupPreferences.setAttrNameCase(preferences.getInt(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE));
-				fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(HTMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS));
-				fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(HTMLCorePreferenceNames.INSERT_REQUIRED_ATTRS));
-				fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(HTMLCorePreferenceNames.INSERT_MISSING_TAGS));
-				fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(HTMLCorePreferenceNames.QUOTE_ATTR_VALUES));
-				fCleanupPreferences.setFormatSource(preferences.getBoolean(HTMLCorePreferenceNames.FORMAT_SOURCE));
-				fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(HTMLCorePreferenceNames.CONVERT_EOL_CODES));
-				fCleanupPreferences.setEOLCode(preferences.getString(HTMLCorePreferenceNames.CLEANUP_EOL_CODE));
-			}
-		}
-
-		return fCleanupPreferences;
-	}
-	
-	protected IStructuredFormatProcessor getFormatProcessor() {
-		return new HTMLFormatProcessorImpl();
-	}
-
-	protected Preferences getModelPreferences() {
-		return HTMLCorePlugin.getDefault().getPluginPreferences();
-	}
-	
-	protected void refreshCleanupPreferences() {
-		fCleanupPreferences = null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/JSPElementNodeCleanupHandler.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/JSPElementNodeCleanupHandler.java
deleted file mode 100644
index a289144..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/JSPElementNodeCleanupHandler.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.cleanup;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Node;
-
-public class JSPElementNodeCleanupHandler extends ElementNodeCleanupHandler {
-
-	public Node cleanup(Node node) {
-		/* <jsp:root> should cleanup its descendant nodes */
-		if(node instanceof IDOMNode) {
-			IStructuredDocumentRegion region = ((IDOMNode) node).getFirstStructuredDocumentRegion();
-			if("JSP_ROOT_TAG_NAME".equals(region.getType())) //$NON-NLS-1$
-				return super.cleanup(node);
-		}
-		return node;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/NodeCleanupHandler.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/NodeCleanupHandler.java
deleted file mode 100644
index c31f34e..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/NodeCleanupHandler.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.wst.html.core.internal.cleanup;
-
-
-
-import org.w3c.dom.Node;
-
-public class NodeCleanupHandler extends AbstractNodeCleanupHandler {
-
-	public Node cleanup(Node node) {
-		return node;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/commentelement/handlers/CommentElementHandlerForSSI.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/commentelement/handlers/CommentElementHandlerForSSI.java
deleted file mode 100644
index 3a528bc..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/commentelement/handlers/CommentElementHandlerForSSI.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.commentelement.handlers;
-
-
-
-import org.eclipse.wst.xml.core.internal.commentelement.CommentElementHandler;
-import org.eclipse.wst.xml.core.internal.commentelement.util.CommentElementFactory;
-import org.eclipse.wst.xml.core.internal.commentelement.util.TagScanner;
-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.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.ISourceGenerator;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-
-public class CommentElementHandlerForSSI implements CommentElementHandler {
-
-	public Element createElement(Document document, String data, boolean isJSPTag) {
-		ModelQuery modelQuery = ModelQueryUtil.getModelQuery(document);
-		if (modelQuery == null) {
-			return null;
-		}
-		CMDocument cm = modelQuery.getCorrespondingCMDocument(document);
-		if (cm == null) {
-			return null;
-		}
-		CMNamedNodeMap map = cm.getElements();
-		if (map == null) {
-			return null;
-		}
-
-		TagScanner scanner = new TagScanner(data, 1);
-		String name = scanner.nextName();
-		if (name == null) {
-			return null;
-		}
-		StringBuffer buffer = new StringBuffer(name.length() + 4);
-		buffer.append(SSI_PREFIX);
-		buffer.append(':');
-		buffer.append(name);
-		String tagName = buffer.toString();
-		// check if valid (defined) SSI tag or not
-		if (map.getNamedItem(tagName) == null) {
-			return null;
-		}
-
-		CommentElementFactory factory = new CommentElementFactory(document, isJSPTag, this);
-		Element element = factory.create(tagName, CommentElementFactory.IS_START);
-
-		// set attributes
-		String attrName = scanner.nextName();
-		while (attrName != null) {
-			String attrValue = scanner.nextValue();
-			Attr attr = document.createAttribute(attrName);
-			if (attr != null) {
-				if (attrValue != null)
-					attr.setValue(attrValue);
-				element.setAttributeNode(attr);
-			}
-			attrName = scanner.nextName();
-		}
-		return element;
-	}
-
-	public String generateStartTagContent(IDOMElement element) {
-		ISourceGenerator generator = element.getModel().getGenerator();
-		StringBuffer buffer = new StringBuffer();
-
-		buffer.append('#');
-		buffer.append(element.getLocalName());
-
-		NamedNodeMap attributes = element.getAttributes();
-		int length = attributes.getLength();
-		for (int i = 0; i < length; i++) {
-			Attr attr = (Attr) attributes.item(i);
-			if (attr == null) {
-				continue;
-			}
-			buffer.append(' ');
-			String attrName = generator.generateAttrName(attr);
-			if (attrName != null) {
-				buffer.append(attrName);
-			}
-			String attrValue = generator.generateAttrValue(attr);
-			if (attrValue != null) {
-				// attr name only for HTML boolean and JSP
-				buffer.append('=');
-				buffer.append(attrValue);
-			}
-		}
-
-		return buffer.toString();
-	}
-
-	public String generateEndTagContent(IDOMElement element) {
-		return null; // always empty
-	}
-
-	public boolean isEmpty() {
-		return true;
-	}
-
-	public boolean isCommentElement(IDOMElement element) {
-		if (element == null) {
-			return false;
-		}
-		Document document = element.getOwnerDocument();
-		ModelQuery modelQuery = ModelQueryUtil.getModelQuery(document);
-		if (modelQuery == null) {
-			return false;
-		}
-		CMDocument cm = modelQuery.getCorrespondingCMDocument(document);
-		if (cm == null) {
-			return false;
-		}
-		CMNamedNodeMap map = cm.getElements();
-		if (map == null) {
-			return false;
-		}
-		String prefix = element.getPrefix();
-		if (prefix == null || !prefix.equals(SSI_PREFIX)) {
-			return false;
-		}
-		String tagName = element.getTagName();
-		if (tagName.length() <= 4) {
-			return false;
-		}
-		if (map.getNamedItem(tagName) == null) {
-			return false;
-		}
-		else {
-			return true;
-		}
-	}
-
-	private static final String SSI_PREFIX = "ssi";//$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/AttributeCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/AttributeCollection.java
deleted file mode 100644
index ab2a71c..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/AttributeCollection.java
+++ /dev/null
@@ -1,1285 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * Factory for attribute declarations.
- */
-final class AttributeCollection extends CMNamedNodeMapImpl implements HTML40Namespace {
-
-	/** bodycolors. */
-	private static final String[] BODYCOLORS = {ATTR_NAME_BGCOLOR, ATTR_NAME_TEXT, ATTR_NAME_LINK, ATTR_NAME_VLINK, HTML40Namespace.ATTR_NAME_ALINK};
-	/** coreattrs. */
-	private static final String[] CORE = {ATTR_NAME_ID, ATTR_NAME_CLASS, ATTR_NAME_STYLE, ATTR_NAME_TITLE};
-	/** events. */
-	private static final String[] EVENTS = {ATTR_NAME_ONCLICK, ATTR_NAME_ONDBLCLICK, ATTR_NAME_ONMOUSEDOWN, ATTR_NAME_ONMOUSEUP, ATTR_NAME_ONMOUSEOVER, ATTR_NAME_ONMOUSEMOVE, ATTR_NAME_ONMOUSEOUT, ATTR_NAME_ONKEYPRESS, ATTR_NAME_ONKEYDOWN, ATTR_NAME_ONKEYUP, ATTR_NAME_ONHELP};
-	/** i18n. lang, dir */
-	private static final String[] I18N = {ATTR_NAME_LANG, ATTR_NAME_DIR};
-	/** cellhaligh. */
-	private static final String[] CELLHALIGN = {ATTR_NAME_CHAR, ATTR_NAME_CHAROFF};
-
-	/**
-	 * constructor.
-	 */
-	public AttributeCollection() {
-		super();
-	}
-
-	/**
-	 * Create an attribute declaration.
-	 * 
-	 * @param attrName
-	 *            java.lang.String
-	 */
-	private HTMLAttrDeclImpl create(String attrName) {
-		HTMLAttrDeclImpl attr = null;
-		HTMLCMDataTypeImpl atype = null;
-
-		if (attrName.equalsIgnoreCase(ATTR_NAME_ABBR)) {
-			// (abbr %Text; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ABBR, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ACCEPT)) {
-			// (accept %ContentTypes; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ACCEPT, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ACCEPT_CHARSET)) {
-			// (accept-charset %Charsets;; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CHARSETS);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ACCEPT_CHARSET, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ACTION)) {
-			// (action %URI #REQUIRED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ACTION, atype, CMAttributeDeclaration.REQUIRED);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ARCHIVE)) {
-			// (archive CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ARCHIVE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ACCESSKEY)) {
-			// (accesskey %Character; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CHARACTER);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ACCESSKEY, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ALINK)) {
-			// (alink %Color; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ALINK, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ALT)) {
-			// (alt %Text; #REQUIRED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ALT, atype, CMAttributeDeclaration.REQUIRED);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_AUTOSTART)) {
-			// (autostart (true|false) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_AUTOSTART, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_AUTOPLAY)) {
-			// (autoplay (true|false) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_AUTOPLAY, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_AUTOSIZE)) {
-			// (autosize (true|false) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_AUTOSIZE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_AXIS)) {
-			// (axis CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_AXIS, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_BACKGROUND)) {
-			// (background %URI; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_BACKGROUND, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_BEHAVIOR)) {
-			// (behavior (scroll|slide|alternate) scroll)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_SCROLL, ATTR_VALUE_SLIDE, ATTR_VALUE_ALTERNATE};
-			atype.setEnumValues(values);
-			atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_SCROLL);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_BEHAVIOR, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_BGCOLOR)) {
-			// (bgcolor %Color; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_BGCOLOR, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_BORDER)) {
-			// (border %Pixels; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_BORDER, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_CELLSPACING)) {
-			// (cellspacing %Length; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LENGTH);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_CELLSPACING, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_CELLPADDING)) {
-			// (cellpadding %Length; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LENGTH);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_CELLPADDING, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_CGI)) {
-			// (cgi %URI; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_CGI, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_CHAR)) {
-			// (char %Character; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CHARACTER);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_CHAR, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_CHAROFF)) {
-			// (charoff %Length; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LENGTH);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_CHAROFF, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_CHARSET)) {
-			// (charset %Charset; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CHARSET);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_CHARSET, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_CITE)) {
-			// (cite %URI; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_CITE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_CLASS)) {
-			// (class CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_CLASS, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_CLASSID)) {
-			// (classid %URI #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_CLASSID, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_CMD)) {
-			// (cmd CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_CMD, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_CHECKED)) {
-			// (checked (checked) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_NAME_CHECKED};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_CHECKED, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_CLEAR)) {
-			// (clear (left | all | right | none) none)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_LEFT, ATTR_VALUE_ALL, ATTR_VALUE_RIGHT, ATTR_VALUE_NONE};
-			atype.setEnumValues(values);
-			atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_NONE);
-
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_CLEAR, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_CODE)) {
-			// (code CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_CODE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_CODEBASE)) {
-			// (codebase %URI; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_CODEBASE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_CODETYPE)) {
-			// (codetype %CotentType; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_CODETYPE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_COLOR)) {
-			// (color %Color; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_COLOR, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_COMPACT)) {
-			// (compact (compact) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_NAME_COMPACT};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_COMPACT, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_COLS)) {
-			// (cols NUMBER #REQUIRED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_COLS, atype, CMAttributeDeclaration.REQUIRED);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_COLSPAN)) {
-			// (colspan NUMBER 1)
-			atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-			atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_1);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_COLSPAN, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_CONTENT)) {
-			// (content CDATA #REQUIRED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_CONTENT, atype, CMAttributeDeclaration.REQUIRED);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_CONTROLLER)) {
-			// (controller (true|false) true)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
-			atype.setEnumValues(values);
-			atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_TRUE);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_CONTROLLER, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_COORDS)) {
-			// (coords %Coords; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COORDS);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_COORDS, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_DATA)) {
-			// (data %URI; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_DATA, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_DATETIME)) {
-			// (datetime %Datetime; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.DATETIME);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_DATETIME, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_DATAPAGESIZE)) {
-			// (datapagesize CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_DATAPAGESIZE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_DECLARE)) {
-			// (declare (declare) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_NAME_DECLARE};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_DECLARE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_DEFER)) {
-			// (defer (defer) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_NAME_DEFER};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_DEFER, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_DIR)) {
-			// (dir (ltr|rtl) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_LTR, ATTR_VALUE_RTL};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_DIR, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_DIRECTION)) {
-			// (direction (left|right|up|down) left)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT, ATTR_VALUE_UP, ATTR_VALUE_DOWN};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_DIRECTION, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_DIRECTKEY)) {
-			// (directkey %Character; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CHARACTER);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_DIRECTKEY, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_DISABLED)) {
-			// (disabled (disabled) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			// boolean attribute must have the same value as its name.
-			String[] values = {ATTR_NAME_DISABLED};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_DISABLED, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ENCTYPE)) {
-			// (enctype %ContentType; "application/x-www-form-urlencoded")
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE);
-			atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_WWW_FORM_URLENCODED);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ENCTYPE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ERRMSG)) {
-			// (errmsg CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ERRMSG, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_EVENT)) {
-			// (event CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_EVENT, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_FACE)) {
-			// (face CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_FACE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_FILE)) {
-			// (file %URI; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_FILE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_FOR)) {
-			// (for %URI; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_FOR, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_FRAME)) {
-			// (frame %TFrame; #IMPLIED)
-			// %TFrame; is
-			// (void|above|below|hsides|lhs|rhs|vsides|box|border).
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_VOID, ATTR_VALUE_ABOVE, ATTR_VALUE_BELOW, ATTR_VALUE_HSIDES, ATTR_VALUE_LHS, ATTR_VALUE_RHS, ATTR_VALUE_VSIDES, ATTR_VALUE_BOX, ATTR_VALUE_BORDER};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_FRAME, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_FRAMEBORDER)) {
-			// (frameborder (1|0) 1)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_1, ATTR_VALUE_0};
-			atype.setEnumValues(values);
-			atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_1);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_FRAMEBORDER, atype, CMAttributeDeclaration.OPTIONAL);
-
-			// <<D215684
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_FRAMESPACING)) {
-			// (framespacing CDATA; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_FRAMESPACING, atype, CMAttributeDeclaration.OPTIONAL);
-			// D215684
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_HEADERS)) {
-			// (HEADERS IDREFS; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.IDREFS);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_HEADERS, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_HEIGHT)) {
-			// (height %Length; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LENGTH);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_HEIGHT, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_HIDDEN)) {
-			// (hidden CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_HIDDEN, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_HREF)) {
-			// (href %URI; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_HREF, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_HREFLANG)) {
-			// (hreflang %LanguageCode; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LANGUAGE_CODE);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_HREFLANG, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_HSPACE)) {
-			// (hspace %Pixels; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_HSPACE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_HTTP_EQUIV)) {
-			// (http-equiv NAME #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.NAME);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_HTTP_EQUIV, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ID)) {
-			// (id ID #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ID);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ID, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ISMAP)) {
-			// (ismap (ismap) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_NAME_ISMAP};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ISMAP, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ISTYLE)) {
-			// (istyle CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ISTYLE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_LABEL)) {
-			// (label %Text; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_LABEL, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_LANG)) {
-			// (lang %LanguageCode; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LANGUAGE_CODE);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_LANG, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_LANGUAGE)) {
-			// (language %CDATA; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_LANGUAGE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_LINK)) {
-			// (link %Color; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_LINK, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_LONGDESC)) {
-			// (longdesc %URI; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_LONGDESC, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_LOOP)) {
-			// (loop CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_LOOP, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_MACRO)) {
-			// (macro CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_MACRO, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_MAPFILE)) {
-			// (mapfile %URI; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_MAPFILE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_MARGINWIDTH)) {
-			// (marginwidth %Pixels; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_MARGINWIDTH, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_MARGINHEIGHT)) {
-			// (marginheight %Pixels; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_MARGINHEIGHT, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_MAXLENGTH)) {
-			// (maxlength NUMBER #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_MAXLENGTH, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_MAYSCRIPT)) {
-			// (mayscript (mayscript) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_NAME_MAYSCRIPT};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_MAYSCRIPT, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_MEDIA)) {
-			// (media %MediaDesc; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.MEDIA_DESC);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_MEDIA, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_METHOD)) {
-			// (method (GET|POST) GET)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_GET, ATTR_VALUE_POST};
-			atype.setEnumValues(values);
-			atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_GET);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_METHOD, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_MULTIPLE)) {
-			// (multiple (multiple) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_NAME_MULTIPLE};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_MULTIPLE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_NAME)) {
-			// (name CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_NAME, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_NOHREF)) {
-			// (nohref (nohref) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_NAME_NOHREF};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_NOHREF, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_NORESIZE)) {
-			// (noresize (noresize) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_NAME_NORESIZE};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_NORESIZE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_NOSHADE)) {
-			// (noshade (noshade) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_NAME_NOSHADE};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_NOSHADE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_NOWRAP)) {
-			// (nowrap (nowrap) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_NAME_NOWRAP};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_NOWRAP, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_OBJECT)) {
-			// (object CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_NAME_OBJECT};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_OBJECT, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONBLUR)) {
-			// (onblur %Script; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONBLUR, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONCLICK)) {
-			// (onclick %Script; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONCLICK, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONCHANGE)) {
-			// (onchange %Script; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONCHANGE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONDBLCLICK)) {
-			// (ondblclick %Script; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONDBLCLICK, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONFOCUS)) {
-			// (onfocus %Script; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONFOCUS, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONHELP)) {
-			// (onhelp %Script; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONHELP, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONKEYPRESS)) {
-			// (onkeypress %Script; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONKEYPRESS, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONKEYDOWN)) {
-			// (onkeydown %Script; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONKEYDOWN, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONKEYUP)) {
-			// (onkyeup %Script; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONKEYUP, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONLOAD)) {
-			// (onload %Script; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONLOAD, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONMOUSEDOWN)) {
-			// (onmousedown %Script; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONMOUSEDOWN, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONMOUSEUP)) {
-			// (onmouseup %Script; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONMOUSEUP, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONMOUSEOVER)) {
-			// (onmouseover %Script; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONMOUSEOVER, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONMOUSEMOVE)) {
-			// (onmousemove %Script; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONMOUSEMOVE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONMOUSEOUT)) {
-			// (onmouseout %Script; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONMOUSEOUT, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONRESET)) {
-			// (onreset %Script; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONRESET, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONSELECT)) {
-			// (onselect %Script; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONSELECT, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONSUBMIT)) {
-			// (onsubmit %Script; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONSUBMIT, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ONUNLOAD)) {
-			// (onunload %Script; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ONUNLOAD, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_PALETTE)) {
-			// (palette CDATA; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_PALETTE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_PANEL)) {
-			// (panel CDATA; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_PANEL, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_PLAYCOUNT)) {
-			// (playcount NUMBER; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_PLAYCOUNT, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_PROFILE)) {
-			// (profile %URI; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_PROFILE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_PROMPT)) {
-			// (prompt %Text; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_PROMPT, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_READONLY)) {
-			// (readonly (readonly) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_NAME_READONLY};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_READONLY, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_REPEAT)) {
-			// (repeat CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_REPEAT, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_REL)) {
-			// (rel %LinkTypes; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LINK_TYPES);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_REL, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_REV)) {
-			// (rev %LinkTypes; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LINK_TYPES);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_REV, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ROWS)) {
-			// (rows NUMBER #REQUIRED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ROWS, atype, CMAttributeDeclaration.REQUIRED);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ROWSPAN)) {
-			// (rowspan NUMBER 1)
-			atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-			atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_1);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ROWSPAN, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_RULES)) {
-			// (rules %TRules; #IMPLIED)
-			// %TRules; is (none | groups | rows | cols | all).
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_NONE, ATTR_VALUE_GROUPS, ATTR_VALUE_ROWS, ATTR_VALUE_COLS, ATTR_VALUE_ALL};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_RULES, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_SCALE)) {
-			// (scale CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_SCALE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_SCHEME)) {
-			// (scheme CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_SCHEME, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_SELECTED)) {
-			// (selected (selected) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_NAME_SELECTED};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_SELECTED, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_SCOPE)) {
-			// (SCOPE %Scope; #IMPLIED)
-			// %Scope; is (row|col|rowgroup|colgroup)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_ROW, ATTR_VALUE_COL, ATTR_VALUE_ROWGROUP, ATTR_VALUE_COLGROUP};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_SCOPE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_SCROLLAMOUNT)) {
-			// (scrollamount NUMBER #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_SCROLLAMOUNT, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_SCROLLDELAY)) {
-			// (scrolldelay NUMBER #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_SCROLLDELAY, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_SCROLLING)) {
-			// (scrolling (yes|no|auto) auto)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_YES, ATTR_VALUE_NO, ATTR_VALUE_AUTO};
-			atype.setEnumValues(values);
-			atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_AUTO);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_SCROLLING, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_SHAPE)) {
-			// (shape %Shape; rect): %Shape; is (rect|circle|poly|default).
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_RECT, ATTR_VALUE_CIRCLE, ATTR_VALUE_POLY, ATTR_VALUE_DEFAULT};
-			atype.setEnumValues(values);
-			atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_RECT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_SHAPE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_SHOWCONTROLS)) {
-			// (showcontrols (true|false) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_SHOWCONTROLS, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_SIZE)) {
-			// (size %Pixels; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_SIZE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_SIZEFMT)) {
-			// (sizefmt CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_SIZEFMT, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_SPAN)) {
-			// (span NUMBER 1)
-			atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-			atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_1);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_SPAN, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_SRC)) {
-			// (src %URI; #IMPLIED)
-			// NOTE: "src" attributes are defined in several elements.
-			// The definition of IMG is different from others.
-			// So, it should be locally defined.
-			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_SRC, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_START)) {
-			// (start NUMBER #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_START, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_STANDBY)) {
-			// (standby %Text; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_STANDBY, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_STYLE)) {
-			// (style %StyleSheet; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.STYLE_SHEET);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_STYLE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_SUMMARY)) {
-			// (summary %Text; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_SUMMARY, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_TABINDEX)) {
-			// (tabindex NUMBER #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_TABINDEX, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_TARGET)) {
-			// (target %FrameTarget; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.FRAME_TARGET);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_TARGET, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_TEXT)) {
-			// (text %Color; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_TEXT, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_TEXTFOCUS)) {
-			// (textfocus CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_TEXTFOCUS, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_TITLE)) {
-			// (title %Text; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_TITLE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_TIMEFMT)) {
-			// (timefmt CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_TIMEFMT, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_TRUESPEED)) {
-			// (truespeed (truespeed) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_NAME_TRUESPEED};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_TRUESPEED, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_TYPE)) {
-			// (type %CotentType; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_USEMAP)) {
-			// (usemap %URI; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_USEMAP, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_VALIGN)) {
-			// (valign (top|middle|bottom|baseline) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_TOP, ATTR_VALUE_MIDDLE, ATTR_VALUE_BOTTOM, ATTR_VALUE_BASELINE};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_VALIGN, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_VALUE)) {
-			// (value CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_VALUE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_VALUETYPE)) {
-			// (valuetype (DATA|REF|OBJECT) DATA)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_DATA, ATTR_VALUE_REF, ATTR_VALUE_OBJECT};
-			atype.setEnumValues(values);
-			atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_DATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_VALUETYPE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_VAR)) {
-			// (var CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_VAR, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_VERSION)) {
-			// (version CDATA #FIXED '%HTML.Version;)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			atype.setImpliedValue(CMDataType.IMPLIED_VALUE_FIXED, ATTR_VALUE_VERSION_TRANSITIONAL);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_VERSION, atype, CMAttributeDeclaration.FIXED);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_VIRTUAL)) {
-			// (virtual %URI; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_VIRTUAL, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_VLINK)) {
-			// (vlink %Color; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_VLINK, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_VOLUME)) {
-			// (volume CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_VOLUME, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_WIDTH)) {
-			// (width %Length; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LENGTH);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_WIDTH, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_VSPACE)) {
-			// (vspace %Pixels; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_VSPACE, atype, CMAttributeDeclaration.OPTIONAL);
-
-			// <<D205514
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_TOPMARGIN)) {
-			// (topmargin, CDATA, #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_TOPMARGIN, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_BOTTOMMARGIN)) {
-			// (bottommargin, CDATA, #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_BOTTOMMARGIN, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_LEFTMARGIN)) {
-			// (leftmargin, CDATA, #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_LEFTMARGIN, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_RIGHTMARGIN)) {
-			// (rightmargin, CDATA, #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_RIGHTMARGIN, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_BORDERCOLOR)) {
-			// (bordercolor, %Color; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_BORDERCOLOR, atype, CMAttributeDeclaration.OPTIONAL);
-			// D205514
-
-		}
-		else {
-			// unknown attribute; maybe error.
-			// should warn.
-			attr = null;
-		}
-
-		return attr;
-	}
-
-	/**
-	 * Get align attribute which has %CAlign; as values.. At this time
-	 * (4/19/2001), it is identical to %LAlign;.
-	 * 
-	 */
-	public static final HTMLAttrDeclImpl createAlignForCaption() {
-		// align (local)
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-		// set enum values
-		String[] values = {ATTR_VALUE_TOP, ATTR_VALUE_BOTTOM, ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT};
-		atype.setEnumValues(values);
-
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL);
-		return attr;
-	}
-
-	/**
-	 * Get align attribute which has %IAlign; as values..
-	 */
-	public static final HTMLAttrDeclImpl createAlignForImage() {
-		// align (local)
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-		// set enum values
-		String[] values = {ATTR_VALUE_TOP, ATTR_VALUE_MIDDLE, ATTR_VALUE_BOTTOM, ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT};
-		atype.setEnumValues(values);
-
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL);
-		return attr;
-	}
-
-	/**
-	 * Get align attribute which has %LAlign; as values..
-	 */
-	public static final HTMLAttrDeclImpl createAlignForLegend() {
-		// align (local)
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-		// set enum values
-		String[] values = {ATTR_VALUE_TOP, ATTR_VALUE_BOTTOM, ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT};
-		atype.setEnumValues(values);
-
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL);
-		return attr;
-	}
-
-	/**
-	 * Create an attribute declaration for <code>align</code> in several
-	 * elements, like <code>P</code>, <code>DIV</code>. The values are
-	 * different from attributes those have the same name in other elements (<code>IMG</code>
-	 * and <code>TABLE</code>). So, it can't treat as global attributes.
-	 * <strong>NOTE: These attribute declaration has no owner CMDocument
-	 * instance.</strong>
-	 */
-	public static final HTMLAttrDeclImpl createAlignForParagraph() {
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-		// set enum values: left|center|right|justify
-		String[] values = {ATTR_VALUE_LEFT, ATTR_VALUE_CENTER, ATTR_VALUE_RIGHT, ATTR_VALUE_JUSTIFY};
-		atype.setEnumValues(values);
-
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL);
-		return attr;
-	}
-
-	/**
-	 * Get %attrs; declarations. %attrs; consists of %coreattrs;, %i18n, and
-	 * %events;.
-	 */
-	public void getAttrs(CMNamedNodeMapImpl declarations) {
-		// %coreattrs;
-		Iterator names = Arrays.asList(CORE).iterator();
-		getDeclarations(declarations, names);
-		// %i18n;
-		names = Arrays.asList(I18N).iterator();
-		getDeclarations(declarations, names);
-		// %events;
-		names = Arrays.asList(EVENTS).iterator();
-		getDeclarations(declarations, names);
-	}
-
-	/**
-	 * Get %bodycolors; declarations.
-	 */
-	public void getBodycolors(CMNamedNodeMapImpl declarations) {
-		Iterator names = Arrays.asList(BODYCOLORS).iterator();
-		getDeclarations(declarations, names);
-	}
-
-	/**
-	 * Get %cellhalign; declarations. %cellhaligh; consists of: - (align
-	 * (left|center|right|justify|char) #IMPLIED) - (char %Character;
-	 * #IMPLIED) - (charoff %Length; #IMPLIED)
-	 */
-	public void getCellhalign(CMNamedNodeMapImpl declarations) {
-		// (align (left|center|right|justify|char) #IMPLIED) should be defined
-		// locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-		// set enum values
-		String[] values = {ATTR_VALUE_LEFT, ATTR_VALUE_CENTER, ATTR_VALUE_RIGHT, ATTR_VALUE_JUSTIFY, ATTR_VALUE_CHAR};
-		atype.setEnumValues(values);
-
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL);
-		declarations.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr);
-
-		// the rest.
-		Iterator names = Arrays.asList(CELLHALIGN).iterator();
-		getDeclarations(declarations, names);
-	}
-
-	/**
-	 * Get %cellvalign; declarations. %cellhaligh; is: - (valign
-	 * (top|middle|bottom|baseline) #IMPLIED)
-	 */
-	public void getCellvalign(CMNamedNodeMapImpl declarations) {
-		HTMLAttributeDeclaration dec = getDeclaration(HTML40Namespace.ATTR_NAME_VALIGN);
-		if (dec != null)
-			declarations.putNamedItem(HTML40Namespace.ATTR_NAME_VALIGN, dec);
-	}
-
-	/**
-	 * Get %coreattrs; declarations.
-	 */
-	public void getCore(CMNamedNodeMapImpl declarations) {
-		Iterator names = Arrays.asList(CORE).iterator();
-		getDeclarations(declarations, names);
-	}
-
-	/**
-	 * Get a global attribute declaration.
-	 * 
-	 * @param attrName
-	 *            java.lang.String
-	 */
-	public HTMLAttributeDeclaration getDeclaration(String attrName) {
-		CMNode cmnode = getNamedItem(attrName);
-		if (cmnode != null)
-			return (HTMLAttributeDeclaration) cmnode; // already exists.
-
-		HTMLAttrDeclImpl dec = create(attrName);
-		if (dec != null)
-			putNamedItem(attrName, dec);
-
-		return dec;
-	}
-
-	/**
-	 * Get declarations which are specified by names.
-	 * 
-	 * @param names
-	 *            java.util.Iterator
-	 */
-	public void getDeclarations(CMNamedNodeMapImpl declarations, Iterator names) {
-		while (names.hasNext()) {
-			String attrName = (String) names.next();
-			HTMLAttributeDeclaration dec = getDeclaration(attrName);
-			if (dec != null)
-				declarations.putNamedItem(attrName, dec);
-		}
-	}
-
-	/**
-	 * Get %events; declarations.
-	 */
-	public void getEvents(CMNamedNodeMapImpl declarations) {
-		Iterator names = Arrays.asList(EVENTS).iterator();
-		getDeclarations(declarations, names);
-	}
-
-	/**
-	 * Get %i18n; declarations.
-	 */
-	public void getI18n(CMNamedNodeMapImpl declarations) {
-		Iterator names = Arrays.asList(I18N).iterator();
-		getDeclarations(declarations, names);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMContentImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMContentImpl.java
deleted file mode 100644
index 07973a5..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMContentImpl.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.wst.html.core.internal.contentmodel;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-
-
-
-/**
- * Implementation of CMContent for HTML CM.
- */
-abstract class CMContentImpl extends CMNodeImpl implements CMContent {
-
-	public static final int UNBOUNDED = -1;
-	/**  -1: it's UNBOUNDED. */
-	private int maxOccur = UNBOUNDED;
-	/**  0: it's OPTIONAL, 1, it's REQUIRED. */
-	private int minOccur = 0;
-
-	/**
-	 * The primary consturctor.
-	 * Use this one for usual cases.<br>
-	 */
-	public CMContentImpl(String name, int min, int max) {
-		super(name);
-		minOccur = min;
-		maxOccur = max;
-	}
-
-	/**
-	 * 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;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMGroupImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMGroupImpl.java
deleted file mode 100644
index 0108c61..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMGroupImpl.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-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;
-
-/**
- */
-class CMGroupImpl extends CMContentImpl implements CMGroup {
-
-	private int operator = CMGroup.SEQUENCE;
-	private CMNodeListImpl children = null;
-
-	/**
-	 * CMGroupImpl constructor comment.
-	 */
-	public CMGroupImpl(int op, int minOccur, int maxOccur) {
-		super(null, minOccur, maxOccur);
-		switch (op) {
-			case CMGroup.ALL :
-			case CMGroup.CHOICE :
-			case CMGroup.SEQUENCE :
-				operator = op;
-				break;
-			default :
-				// should warn.
-				break;
-		}
-	}
-
-	/**
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 * @param org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 */
-	protected CMNode appendChild(CMNode child) {
-		if (child == null)
-			return null;
-		if (children == null)
-			children = new CMNodeListImpl();
-		return children.appendNode(child);
-	}
-
-	/**
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList
-	 */
-	public CMNodeList getChildNodes() {
-		return children;
-	}
-
-	/**
-	 * getNodeType method
-	 * @return int
-	 *
-	 * Returns one of :
-	 * ELEMENT_DECLARATION, ATTRIBUTE_DECLARATION, GROUP, ENTITY_DECLARATION.
-	 */
-	public int getNodeType() {
-		return CMNode.GROUP;
-	}
-
-	/**
-	 * getOperation method
-	 * @return int
-	 *
-	 * Returns one of :
-	 * ALONE (a), SEQUENCE (a,b), CHOICE (a|b), ALL (a&b).
-	 */
-	public int getOperator() {
-		return operator;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamedNodeMapImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamedNodeMapImpl.java
deleted file mode 100644
index f8a5e60..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamedNodeMapImpl.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Locale;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * An implementation of the CMNamedNodeMap interface. This class is intented
- * to be used as a container of attribute declarations. If someone wants to
- * use this class for other purpose, he must pay attention to the fact that
- * this class is tolerant of the key name case. That is, this class does not
- * distinguish "name", "NAME", and "Name" as a key name.
- */
-class CMNamedNodeMapImpl implements CMNamedNodeMap {
-
-	private Hashtable items = null;
-
-	/**
-	 */
-	public CMNamedNodeMapImpl() {
-		super();
-		items = new Hashtable();
-	}
-
-	/**
-	 * getLength method
-	 * 
-	 * @return int
-	 */
-	public int getLength() {
-		return items.size();
-	}
-
-	/**
-	 * getNamedItem method
-	 * 
-	 * @return CMNode <code>null</code> for unknown keys.
-	 * @param name
-	 *            java.lang.String
-	 */
-	public CMNode getNamedItem(String name) {
-		String cookedName = makeCanonicalForm(name);
-		if (!items.containsKey(cookedName))
-			return null;
-		return (CMNode) items.get(cookedName);
-	}
-
-	/**
-	 * item method
-	 * 
-	 * @return CMNode
-	 * @param index
-	 *            int
-	 */
-	public CMNode item(int index) {
-		Iterator iter = iterator();
-		while (iter.hasNext()) {
-			CMNode node = (CMNode) iter.next();
-			if (--index < 0)
-				return node;
-		}
-		return null;
-	}
-
-	/**
-	 * @return java.util.Iterator
-	 */
-	public Iterator iterator() {
-		return items.values().iterator();
-	}
-
-	/**
-	 * @return java.lang.String
-	 * @param rawForm
-	 *            java.lang.String
-	 */
-	private String makeCanonicalForm(String raw) {
-		// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=100152
-		// we are able to "cheat" here a little and use US Locale
-		// to get a good cononical form, since we are using this only
-		// for HTML and JSP standard tags.
-		// Long term, for similar needs with XML 1.1 (for example)
-		// we should use a class such as com.ibm.icu.text.Normalizer
-		return raw.toUpperCase(Locale.US);
-	}
-
-	/**
-	 * @param key
-	 *            java.lang.String
-	 * @param item
-	 *            java.lang.String
-	 */
-	void putNamedItem(String name, CMNode item) {
-		String cookedName = makeCanonicalForm(name);
-		if (items.containsKey(cookedName))
-			return; // already registered.
-		items.put(cookedName, item);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamespaceImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamespaceImpl.java
deleted file mode 100644
index 6ef737a..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamespaceImpl.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * CMNamespace implementation.
- */
-class CMNamespaceImpl extends CMNodeImpl implements CMNamespace {
-
-	private java.lang.String prefix = null;
-
-	/**
-	 * CMNamespaceImpl constructor comment.
-	 */
-	public CMNamespaceImpl(String uri, String pfx) {
-		super(uri);
-		prefix = pfx;
-	}
-
-	/**
-	 * getNodeType method
-	 * @return int
-	 *
-	 * Returns one of :
-	 *
-	 */
-	public int getNodeType() {
-		return CMNode.NAME_SPACE;
-	}
-
-	/**
-	 * getPrefix method
-	 * @return java.lang.String
-	 */
-	public String getPrefix() {
-		return prefix;
-	}
-
-	/**
-	 * getURI method
-	 * @return java.lang.String
-	 */
-	public String getURI() {
-		return getNodeName();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeImpl.java
deleted file mode 100644
index 2f6eb44..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeImpl.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-
-
-/**
- */
-abstract class CMNodeImpl implements CMNode {
-
-	private java.lang.String name = null;
-
-	/**
-	 * CMNodeImpl constructor comment.
-	 */
-	public CMNodeImpl(String nm) {
-		super();
-		name = nm;
-	}
-
-	/**
-	 * getNodeName method
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return name;
-	}
-
-	/**
-	 * getProperty method
-	 * @return java.lang.Object
-	 *
-	 * Returns the object property desciped by the propertyName
-	 *
-	 */
-	public Object getProperty(String propertyName) {
-		if (propertyName.equals(HTMLCMProperties.IS_XHTML))
-			return new Boolean(false);
-		return null;
-	}
-
-	/**
-	 * supports method
-	 * @return boolean
-	 *
-	 * Returns true if the CMNode supports a specified property
-	 *
-	 */
-	public boolean supports(String propertyName) {
-		if (propertyName.equals(HTMLCMProperties.IS_XHTML))
-			return true;
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeListImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeListImpl.java
deleted file mode 100644
index 08bf21a..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeListImpl.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.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-
-/**
- * Analog of dom.NodeList for CM.
- * So, the implementation is very similar to
- * NodeListImpl<br>
- */
-class CMNodeListImpl implements CMNodeList {
-
-	private java.util.Vector nodes = null;
-
-	/**
-	 * CMNodeListImpl constructor comment.
-	 */
-	public CMNodeListImpl() {
-		super();
-		nodes = new java.util.Vector();
-	}
-
-	/**
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 * @param node org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 */
-	protected CMNode appendNode(CMNode node) {
-		nodes.addElement(node);
-		return 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.elementAt(index);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinition.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinition.java
deleted file mode 100644
index 91dba7c..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinition.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-
-/**
- * This class is intended to represent a complex type definition
- * in XML Schema.<br>
- */
-abstract class ComplexTypeDefinition {
-
-	protected CMGroupImpl content = null;
-	protected ElementCollection collection = null;
-	protected String primaryCandidateName = null;
-
-	/**
-	 * ComplexTypeDefinition constructor comment.
-	 */
-	public ComplexTypeDefinition(ElementCollection elementCollection) {
-		super();
-		collection = elementCollection;
-		createContent();
-	}
-
-	/**
-	 * Create an actual content model.
-	 * This method should be called once and only once in the constructor.<br>
-	 */
-	protected abstract void createContent();
-
-	/**
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMGroup
-	 */
-	public CMGroup getContent() {
-		return content;
-	}
-
-	/**
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	/* NOTE: Do we need LOGICAL type?
-	 * -- 3/7/2001
-	 */
-	public abstract int getContentType();
-
-	/**
-	 * Get content hint.
-	 */
-	public HTMLElementDeclaration getPrimaryCandidate() {
-		if (primaryCandidateName == null)
-			return null;
-		return (HTMLElementDeclaration) collection.getNamedItem(primaryCandidateName);
-	}
-
-	/**
-	 * Name of complex type definition.
-	 * Each singleton must know its own name.
-	 * All names should be defined in
-	 * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br>
-	 * @return java.lang.String
-	 */
-	public abstract String getTypeName();
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinitionFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinitionFactory.java
deleted file mode 100644
index 9a38d53..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinitionFactory.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-/**
- * Factory of ComplexTypeDefinition.
- */
-final class ComplexTypeDefinitionFactory {
-
-	private static ComplexTypeDefinitionFactory instance = null;
-	private java.util.Hashtable definitions = null;
-	// constants for complex type name
-	/** for ADDRESS. */
-	public final static String CTYPE_ADDRESS = "CTYPE_ADDRESS";//$NON-NLS-1$
-	/** CDATA content. No ComplexTypeDefinition instance shuld be created. */
-	public final static String CTYPE_CDATA = "CTYPE_CDATA";//$NON-NLS-1$
-	/** col group content. COL* */
-	public final static String CTYPE_COLUMN_GROUP = "CTYPE_COLUMN_GROUP";//$NON-NLS-1$
-	/** for DL. */
-	public final static String CTYPE_DEFINITION_LIST = "CTYPE_DEFINITION_LIST";//$NON-NLS-1$
-	/** for EMBED. */
-	public final static String CTYPE_EMBED = "CTYPE_EMBED";//$NON-NLS-1$
-	/** empty content. No ComplexTypeDefinition instance should be created. */
-	public final static String CTYPE_EMPTY = "CTYPE_EMPTY";//$NON-NLS-1$
-	/** for FIELDSET. */
-	public final static String CTYPE_FIELDSET = "CTYPE_FIELDSET";//$NON-NLS-1$
-	/** for FRAMESET. */
-	public final static String CTYPE_FRAMESET = "CTYPE_FRAMESET";//$NON-NLS-1$
-	/** flow content. (%flow;)* */
-	public final static String CTYPE_FLOW_CONTAINER = "CTYPE_FLOW_CONTAINER";//$NON-NLS-1$
-	/** html content. HEAD, (FRAMESET|BODY) */
-	public final static String CTYPE_HTML = "CTYPE_HTML";//$NON-NLS-1$
-	/** head content. TITLE & ISINDEX? & BASE? */
-	public final static String CTYPE_HEAD = "CTYPE_HEAD";//$NON-NLS-1$
-	/** inline content. (%inline;)* */
-	public final static String CTYPE_INLINE_CONTAINER = "CTYPE_INLINE_CONTAINER";//$NON-NLS-1$
-	/** list item container. (LI)+ */
-	public final static String CTYPE_LI_CONTAINER = "CTYPE_LI_CONTAINER";//$NON-NLS-1$
-	/** for MAP. */
-	public final static String CTYPE_MAP = "CTYPE_MAP";//$NON-NLS-1$
-	/** noframes content. */
-	public final static String CTYPE_NOFRAMES_CONTENT = "CTYPE_NOFRAMES_CONTENT";//$NON-NLS-1$
-	/** for OPTGROUP. */
-	public final static String CTYPE_OPTION_CONTAINER = "CTYPE_OPTION_CONTAINER";//$NON-NLS-1$
-	/** param container. For OBJECT/APPLET. */
-	public final static String CTYPE_PARAM_CONTAINER = "CTYPE_PARAM_CONTAINER";//$NON-NLS-1$
-	/** PCDATA content. No ComplexTypeDefinition instance shuld be created. */
-	public final static String CTYPE_PCDATA = "CTYPE_PCDATA";//$NON-NLS-1$
-	/** for SELECT. */
-	public final static String CTYPE_SELECT = "CTYPE_SELECT";//$NON-NLS-1$
-	/** table content. CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+ */
-	public final static String CTYPE_TABLE = "CTYPE_TABLE";//$NON-NLS-1$
-	/** table cell contaier. (TH|TD)+ */
-	public final static String CTYPE_TCELL_CONTAINER = "CTYPE_TCELL_CONTAINER";//$NON-NLS-1$
-	/** table record container. (TR)+ */
-	public final static String CTYPE_TR_CONTAINER = "CTYPE_TR_CONTAINER";//$NON-NLS-1$
-
-	/**
-	 * ComplexTypeDefinitionFactory constructor comment.
-	 */
-	private ComplexTypeDefinitionFactory() {
-		super();
-		definitions = new java.util.Hashtable();
-	}
-
-	/**
-	 * Factory method for ComplexTypeDefinition.
-	 * Each instance created in this method must be registered into
-	 * the map with its name.
-	 * @param definitionName java.lang.String
-	 * @param elementCollection ElementCollection
-	 */
-	public ComplexTypeDefinition createTypeDefinition(String definitionName, ElementCollection elementCollection) {
-		if (definitions.containsKey(definitionName)) {
-			return (ComplexTypeDefinition) definitions.get(definitionName);
-		}
-
-		ComplexTypeDefinition def = null;
-		if (definitionName == CTYPE_ADDRESS) {
-			def = new CtdAddress(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_COLUMN_GROUP) {
-			def = new CtdColumnGroup(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_DEFINITION_LIST) {
-			def = new CtdDl(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_EMBED) {
-			def = new CtdEmbed(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_FIELDSET) {
-			def = new CtdFieldset(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_FLOW_CONTAINER) {
-			def = new CtdFlowContainer(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_FRAMESET) {
-			def = new CtdFrameset(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_HEAD) {
-			def = new CtdHead(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_HTML) {
-			def = new CtdHtml(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_INLINE_CONTAINER) {
-			def = new CtdInlineContainer(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_LI_CONTAINER) {
-			def = new CtdLiContainer(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_MAP) {
-			def = new CtdMap(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_NOFRAMES_CONTENT) {
-			def = new CtdNoframesContent(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_OPTION_CONTAINER) {
-			def = new CtdOptionContainer(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_PARAM_CONTAINER) {
-			def = new CtdParamContainer(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_SELECT) {
-			def = new CtdSelect(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_TABLE) {
-			def = new CtdTable(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_TCELL_CONTAINER) {
-			def = new CtdTableCellContainer(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_TR_CONTAINER) {
-			def = new CtdTrContainer(elementCollection);
-
-		}
-		else {
-			def = null;
-		}
-		if (def == null)
-			return null; // fail to create.
-		definitions.put(definitionName, def);
-		return def;
-	}
-
-	/**
-	 * For singleton.
-	 */
-	public synchronized static ComplexTypeDefinitionFactory getInstance() {
-		if (instance != null)
-			return instance;
-		instance = new ComplexTypeDefinitionFactory();
-		return instance;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdAddress.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdAddress.java
deleted file mode 100644
index 76847d0..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdAddress.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-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;
-
-/**
- * for ADDRESS.
- */
-final class CtdAddress extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdAddress(ElementCollection elementCollection) {
-		super(elementCollection);
-	}
-
-	/**
-	 * ((%inline) | P)*.
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// ( | )*
-		content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED);
-		// (%inline)
-		CMGroupImpl inlines = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-		if (inlines == null)
-			return;
-		collection.getInline(inlines);
-		content.appendChild(inlines);
-		// P
-		CMNode p = collection.getNamedItem(HTML40Namespace.ElementName.P);
-		if (p != null)
-			content.appendChild(p);
-	}
-
-	/**
-	 * ((%inline) | P)*.
-	 * Because %inline; contains #PCDATA, the type is MIXED.
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.MIXED;
-	}
-
-	/**
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_ADDRESS;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdColumnGroup.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdColumnGroup.java
deleted file mode 100644
index 623399d..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdColumnGroup.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.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-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;
-
-/**
- * COL group.
- * (COL)*
- */
-final class CtdColumnGroup extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdColumnGroup(ElementCollection elementCollection) {
-		super(elementCollection);
-	}
-
-	/**
-	 * (COL)*
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// ( )*
-		content = new CMGroupImpl(CMGroup.SEQUENCE, 0, CMContentImpl.UNBOUNDED);
-		// COL
-		CMNode dec = collection.getNamedItem(HTML40Namespace.ElementName.COL);
-		if (dec != null)
-			content.appendChild(dec);
-	}
-
-	/**
-	 * (COL)*
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	/**
-	 * Name of complex type definition.
-	 * Each singleton must know its own name.
-	 * All names should be defined in
-	 * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br>
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_COLUMN_GROUP;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdDl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdDl.java
deleted file mode 100644
index 626eb8f..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdDl.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.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-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;
-
-/**
- * for DL.
- */
-final class CtdDl extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdDl(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = HTML40Namespace.ElementName.DT;
-	}
-
-	/**
-	 * (DT | DD)+
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// ( | )+
-		content = new CMGroupImpl(CMGroup.CHOICE, 1, CMContentImpl.UNBOUNDED);
-		// DT
-		CMNode dec = collection.getNamedItem(HTML40Namespace.ElementName.DT);
-		if (dec != null)
-			content.appendChild(dec);
-		// DD
-		dec = collection.getNamedItem(HTML40Namespace.ElementName.DD);
-		if (dec != null)
-			content.appendChild(dec);
-	}
-
-	/**
-	 * (DT | DD)+.
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	/**
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_DEFINITION_LIST;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdEmbed.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdEmbed.java
deleted file mode 100644
index da5e725..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdEmbed.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-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;
-
-/**
- * for EMBED.
- */
-final class CtdEmbed extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdEmbed(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = HTML40Namespace.ElementName.NOEMBED;
-	}
-
-	/**
-	 * (NOEMBED).
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// ( )
-		content = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1);
-		// NOEMBED
-		CMNode noembed = collection.getNamedItem(HTML40Namespace.ElementName.NOEMBED);
-		if (noembed != null)
-			content.appendChild(noembed);
-	}
-
-	/**
-	 * (NOEMBED).
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	/**
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_EMBED;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFieldset.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFieldset.java
deleted file mode 100644
index b4f2dfd..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFieldset.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-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;
-
-/**
- * for FIELDSET.
- */
-final class CtdFieldset extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdFieldset(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = HTML40Namespace.ElementName.LEGEND;
-	}
-
-	/**
-	 * (#PCDATA, LEGEND, (%flow;)*)
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// ( , , )
-		content = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1);
-		// #PCDATA
-		// ...??
-
-		// LEGEND
-		CMNode dec = collection.getNamedItem(HTML40Namespace.ElementName.LEGEND);
-		if (dec != null)
-			content.appendChild(dec);
-		// (%flow;)*
-		CMGroupImpl flows = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED);
-		if (flows == null)
-			return;
-		collection.getFlow(flows);
-		content.appendChild(flows);
-	}
-
-	/**
-	 * (#PCDATA, LEGEND, (%flow;)*)
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.MIXED;
-	}
-
-	/**
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_FIELDSET;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFlowContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFlowContainer.java
deleted file mode 100644
index 6c7a08b..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFlowContainer.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
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-
-/**
- * Complex type definition for containers of <code>%flow;</code>.
- */
-final class CtdFlowContainer extends ComplexTypeDefinition {
-
-	/**
-	 */
-	public CtdFlowContainer(ElementCollection elementCollection) {
-		super(elementCollection);
-	}
-
-	/**
-	 * (%flow;)*
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED);
-		collection.getFlow(content);
-	}
-
-	public int getContentType() {
-		return CMElementDeclaration.MIXED;
-	}
-
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_FLOW_CONTAINER;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFrameset.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFrameset.java
deleted file mode 100644
index 03da4b4..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFrameset.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-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;
-
-/**
- * for FRAMESET.
- * ((FRAMESET | FRAME)+ & NOFRAMES?)
- */
-final class CtdFrameset extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdFrameset(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = HTML40Namespace.ElementName.FRAME;
-	}
-
-	/**
-	 * ((FRAMESET | FRAME)+ & NOFRAMES?).
-	 * --> ((FRAMESET | FRAME)+ & (NOFRAMES)?)
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// ( & )
-		content = new CMGroupImpl(CMGroup.ALL, 1, 1);
-
-		// ( | )+
-		CMGroupImpl group = new CMGroupImpl(CMGroup.CHOICE, 1, CMContentImpl.UNBOUNDED);
-		if (group == null)
-			return;
-		content.appendChild(group);
-
-		// FRAMESET
-		CMNode dec = collection.getNamedItem(HTML40Namespace.ElementName.FRAMESET);
-		if (dec != null)
-			group.appendChild(dec);
-		// FRAME
-		dec = collection.getNamedItem(HTML40Namespace.ElementName.FRAME);
-		if (dec != null)
-			group.appendChild(dec);
-
-		// ( )?
-		group = new CMGroupImpl(CMGroup.SEQUENCE, 0, 1);
-		if (group == null)
-			return;
-		content.appendChild(group);
-
-		// NOFRAMES
-		dec = collection.getNamedItem(HTML40Namespace.ElementName.NOFRAMES);
-		if (dec != null)
-			group.appendChild(dec);
-	}
-
-	/**
-	 * ((FRAMESET | FRAME)+ & NOFRAMES?)
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	/**
-	 * Name of complex type definition.
-	 * Each singleton must know its own name.
-	 * All names should be defined in
-	 * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br>
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_FRAMESET;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHead.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHead.java
deleted file mode 100644
index 48bc24f..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHead.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-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;
-
-/**
- * Complex type definition for the head content.
- * Content Model: (TITLE & ISINDEX? & BASE?)
- */
-final class CtdHead extends ComplexTypeDefinition {
-
-	/**
-	 */
-	public CtdHead(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = HTML40Namespace.ElementName.TITLE;
-	}
-
-	/**
-	 * for HEAD.
-	 * To avoid using inclusion, the content model comes from the XHTML 1.0.
-	 *
-	 * (%head.misc;, ((title, %head.misc;, (base, %head.misc;)?) | (base, %head.misc;, (title, %head.misc;))))
-	 * And %head.misc; is:
-	 * (script|style|meta|link|object|isindex)*
-	 *
-	 * 0: (%head.misc, A)
-	 * A: (B | C)
-	 * B: (title, %head.misc;, D)
-	 * C: (base, %head.misc;, E)
-	 * D: (base, %head.misc;)?
-	 * E: (title, %head.misc;)
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// At 1st, create %head.misc; content.
-		// %head.misc;
-		//   ( | )*
-		CMGroupImpl misc = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED);
-		if (misc == null)
-			return;
-		String[] names = {HTML40Namespace.ElementName.SCRIPT, HTML40Namespace.ElementName.STYLE, HTML40Namespace.ElementName.META, HTML40Namespace.ElementName.LINK, HTML40Namespace.ElementName.OBJECT, HTML40Namespace.ElementName.ISINDEX};
-		collection.getDeclarations(misc, Arrays.asList(names).iterator());
-		// 2nd, get a title
-		CMNode title = collection.getNamedItem(HTML40Namespace.ElementName.TITLE);
-		// 3rd, get a base
-		CMNode base = collection.getNamedItem(HTML40Namespace.ElementName.BASE);
-		if (title == null || base == null)
-			return;
-
-		// Top level content is a sequence of %head.misc; and A.
-		// 0: (%head.misc;, A)
-		//   create a sequence
-		content = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1);
-		if (content == null)
-			return;
-		//   append %head.misc;
-		content.appendChild(misc);
-		//   create A and append it to the top level.
-		{
-			// A is a choice of B and C.
-			// A: (B | C)
-			//   create a choice
-			CMGroupImpl gA = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-			if (gA == null)
-				return;
-			//   append A to the top level.
-			content.appendChild(gA);
-
-			// create B and append it to A
-			{
-				// B is a sequence of title, %head.misc;, and D.
-				// B: (title, %head.misc;, D)
-				//   create a sequence
-				CMGroupImpl gB = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1);
-				if (gB == null)
-					return;
-				//   append B to A.
-				gA.appendChild(gB);
-
-				//   append title to B
-				gB.appendChild(title);
-				//   append %head.misc; to B
-				gB.appendChild(misc);
-				//   create D and append it to B.
-				{
-					// D is a sequence of base, %head.misc;.
-					// D: (base, %head.misc;)?
-					//   create a sequence
-					CMGroupImpl gD = new CMGroupImpl(CMGroup.SEQUENCE, 0, 1);
-					if (gD == null)
-						return;
-					//   append D to B.
-					gB.appendChild(gD);
-
-					//   append base to D
-					gD.appendChild(base);
-					//   append %head.misc; to D.
-					gD.appendChild(misc);
-				}
-			}
-			// create C and append it to A
-			{
-				// C is a sequence of base, %head.misc;, and E
-				// C: (base, %head.misc;, E)
-				//   create a sequence
-				CMGroupImpl gC = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1);
-				if (gC == null)
-					return;
-				//   append C to A.
-				gA.appendChild(gC);
-
-				//   append base to C
-				gC.appendChild(base);
-				//   append %head.misc; to C
-				gC.appendChild(misc);
-
-				//   create E and append it to C.
-				{
-					// E is a sequence of title and %head.misc;.
-					// E: (title, %head.misc;)
-					//   create a sequence
-					CMGroupImpl gE = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1);
-					if (gE == null)
-						return;
-					//   append E to C.
-					gC.appendChild(gE);
-
-					//   append title to E
-					gE.appendChild(title);
-					//   append %head.misc; to E.
-					gE.appendChild(misc);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Element content.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	/**
-	 * Name of complex type definition.
-	 * Each singleton must know its own name.
-	 * All names should be defined in
-	 * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br>
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_HEAD;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHtml.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHtml.java
deleted file mode 100644
index d2396fc..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHtml.java
+++ /dev/null
@@ -1,334 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-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;
-
-/**
- * Complex type definition for <code>HTML</code>.<br>
- * Content Model:
- * HEAD, (FRAMESET|BODY)<br>
- */
-final class CtdHtml extends ComplexTypeDefinition {
-
-	/**
-	 */
-	public CtdHtml(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = HTML40Namespace.ElementName.HEAD;
-	}
-
-	/**
-	 * (%html.content;).
-	 * %html.content; is HEAD, (FRAMESET | BODY).
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// ( )
-		content = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1);
-		if (content == null)
-			return;
-
-		// HEAD
-		CMNode edec = collection.getNamedItem(HTML40Namespace.ElementName.HEAD);
-		if (edec != null)
-			content.appendChild(edec);
-
-		// ( | )
-		CMGroupImpl group = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-		content.appendChild(group);
-
-		// FRAMESET, BODY
-		String[] names = {HTML40Namespace.ElementName.FRAMESET, HTML40Namespace.ElementName.BODY};
-		collection.getDeclarations(group, Arrays.asList(names).iterator());
-
-		// since BODY start and end are omissable
-		// adding valid children of BODY here under HTML
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=97342
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.MAP);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.PRE);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.BDO);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.INPUT);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.P);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.NOSCRIPT);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.I);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.BUTTON);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.LABEL);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.U);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.H6);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.CENTER);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.BASEFONT);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.S);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.BLOCKQUOTE);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.H3);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.UL);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.B);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.SELECT);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.Q);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.STRIKE);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.SCRIPT);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.ABBR);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.BIG);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.H1);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.IMG);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.ACRONYM);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.DEL);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.NOFRAMES);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.TEXTAREA);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.H2);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.FONT);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.OBJECT);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.KBD);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.IFRAME);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.HR);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.H4);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.DIR);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.SAMP);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.INS);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.H5);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.SUP);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.A);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.DFN);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.ISINDEX);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.DL);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.VAR);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.FIELDSET);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.TABLE);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.BR);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.TT);
-		if (edec != null)
-			content.appendChild(edec);
-
-		edec = collection.getNamedItem(HTML40Namespace.ElementName.APPLET);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.OL);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.SMALL);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.CITE);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.FORM);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.DIV);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.CODE);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.SPAN);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.SUB);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.EM);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.MENU);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.ADDRESS);
-		if (edec != null)
-			content.appendChild(edec);
-
-	    edec = collection.getNamedItem(HTML40Namespace.ElementName.STRONG);
-		if (edec != null)
-			content.appendChild(edec);
-	}
-
-	/**
-	 * Element content.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_HTML;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdInlineContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdInlineContainer.java
deleted file mode 100644
index 7fbfeab..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdInlineContainer.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-
-/**
- * Complex type definition for (%inline;)*.
- */
-final class CtdInlineContainer extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdInlineContainer(ElementCollection elementCollection) {
-		super(elementCollection);
-	}
-
-	/**
-	 * (%inline)*.
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED);
-		collection.getInline(content);
-	}
-
-	public int getContentType() {
-		return CMElementDeclaration.MIXED;
-	}
-
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_INLINE_CONTAINER;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdLiContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdLiContainer.java
deleted file mode 100644
index 5ccb079..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdLiContainer.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.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-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;
-
-/**
- * List item container.
- * (LI)+
- */
-final class CtdLiContainer extends ComplexTypeDefinition {
-
-	/**
-	 * @param elemenCollection ElementCollection
-	 */
-	public CtdLiContainer(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = HTML40Namespace.ElementName.LI;
-	}
-
-	/**
-	 * (LI)+.
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// (LI)+
-		content = new CMGroupImpl(CMGroup.SEQUENCE, 1, CMContentImpl.UNBOUNDED);
-		CMNode li = collection.getNamedItem(HTML40Namespace.ElementName.LI);
-		if (li != null)
-			content.appendChild(li);
-	}
-
-	/**
-	 * ELEMENT content.<br>
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	/**
-	 * Name of complex type definition.
-	 * Each singleton must know its own name.
-	 * All names should be defined in
-	 * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br>
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_LI_CONTAINER;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdMap.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdMap.java
deleted file mode 100644
index 3ff2a16..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdMap.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-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;
-
-/**
- * for MAP.
- */
-final class CtdMap extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdMap(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = HTML40Namespace.ElementName.AREA;
-	}
-
-	/**
-	 * ((%block;) | AREA)+.
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// ( | )+
-		content = new CMGroupImpl(CMGroup.CHOICE, 1, CMContentImpl.UNBOUNDED);
-		// (%block;)
-		CMGroupImpl blocks = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-		if (blocks == null)
-			return;
-		collection.getBlock(blocks);
-		content.appendChild(blocks);
-		// AREA
-		CMNode area = collection.getNamedItem(HTML40Namespace.ElementName.AREA);
-		if (area != null)
-			content.appendChild(area);
-	}
-
-	/**
-	 * ((%block;) | AREA)+.
-	 * Because %block; consists of elements only, the type is ELEMENT.
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	/**
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_MAP;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdNoframesContent.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdNoframesContent.java
deleted file mode 100644
index d193a6c..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdNoframesContent.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-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;
-
-/**
- * for NOFRAMES.
- */
-final class CtdNoframesContent extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdNoframesContent(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = HTML40Namespace.ElementName.BODY;
-	}
-
-	/**
-	 * (BODY).
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// ( )
-		content = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1);
-		// BODY
-		CMNode dec = collection.getNamedItem(HTML40Namespace.ElementName.BODY);
-		if (dec != null)
-			content.appendChild(dec);
-	}
-
-	/**
-	 * (BODY)
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	/**
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_NOFRAMES_CONTENT;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdOptionContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdOptionContainer.java
deleted file mode 100644
index b53480a..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdOptionContainer.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-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;
-
-/**
- * OPTION container.
- * (OPTION)+
- */
-final class CtdOptionContainer extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdOptionContainer(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = HTML40Namespace.ElementName.OPTION;
-	}
-
-	/**
-	 * (OPTION)+.
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// ( )+
-		content = new CMGroupImpl(CMGroup.SEQUENCE, 1, CMContentImpl.UNBOUNDED);
-		// OPTION
-		CMNode dec = collection.getNamedItem(HTML40Namespace.ElementName.OPTION);
-		if (dec != null)
-			content.appendChild(dec);
-	}
-
-	/**
-	 * (OPTION)+
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	/**
-	 * Name of complex type definition.
-	 * Each singleton must know its own name.
-	 * All names should be defined in
-	 * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br>
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_OPTION_CONTAINER;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdParamContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdParamContainer.java
deleted file mode 100644
index 4732191..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdParamContainer.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-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;
-
-/**
- * PARAM container.  For OBJECT and APPLET.
- */
-final class CtdParamContainer extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdParamContainer(ElementCollection elementCollection) {
-		super(elementCollection);
-	}
-
-	/**
-	 * (PARAM | %flow;)*.
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// ( | )*
-		content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED);
-		// PARAM
-		CMNode param = collection.getNamedItem(HTML40Namespace.ElementName.PARAM);
-		if (param != null)
-			content.appendChild(param);
-		// %flow;
-		CMGroupImpl flows = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-		if (flows == null)
-			return;
-		collection.getInline(flows);
-		content.appendChild(flows);
-	}
-
-	/**
-	 * (PARAM | %flow;)*.
-	 * Because %flow; contains #PCDATA, the type is MIXED.
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.MIXED;
-	}
-
-	/**
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_PARAM_CONTAINER;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdSelect.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdSelect.java
deleted file mode 100644
index b1d1284..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdSelect.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.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-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;
-
-/**
- * for SELECT.
- */
-final class CtdSelect extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdSelect(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = HTML40Namespace.ElementName.OPTION;
-	}
-
-	/**
-	 * (OPTGROUP | OPTION)+.
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// ( | )+
-		content = new CMGroupImpl(CMGroup.CHOICE, 1, CMContentImpl.UNBOUNDED);
-		// OPTGROUP
-		CMNode dec = collection.getNamedItem(HTML40Namespace.ElementName.OPTGROUP);
-		if (dec != null)
-			content.appendChild(dec);
-		// OPTION
-		dec = collection.getNamedItem(HTML40Namespace.ElementName.OPTION);
-		if (dec != null)
-			content.appendChild(dec);
-	}
-
-	/**
-	 * (OPTGROUP | OPTION)+.
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	/**
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_SELECT;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTable.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTable.java
deleted file mode 100644
index 7fd73d5..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTable.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-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;
-
-/**
- * for TABLE.
- * (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+, TR+)
- */
-final class CtdTable extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdTable(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = HTML40Namespace.ElementName.TBODY;
-	}
-
-	/**
-	 * (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)
-	 * --> ((CAPTION)?, ((COL)* | (COLGROUP)*), (THEAD)?, (TFOOT)?, (TBODY)+, (TR)+)
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// ( , , , ,)
-		content = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1);
-
-		// (CAPTION)?
-		//     ( )?
-		CMGroupImpl wrap = new CMGroupImpl(CMGroup.SEQUENCE, 0, 1);
-		if (wrap == null)
-			return;
-		content.appendChild(wrap);
-		//     CAPTION
-		CMNode dec = collection.getNamedItem(HTML40Namespace.ElementName.CAPTION);
-		if (dec != null)
-			wrap.appendChild(dec);
-
-		// ((COL)* | (COLGROUP)*)
-		//     ( | )
-		CMGroupImpl group = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-		if (group == null)
-			return;
-		content.appendChild(group);
-		//         (COL)*
-		wrap = new CMGroupImpl(CMGroup.SEQUENCE, 0, CMContentImpl.UNBOUNDED);
-		if (wrap == null)
-			return;
-		group.appendChild(wrap);
-		dec = collection.getNamedItem(HTML40Namespace.ElementName.COL);
-		if (dec != null)
-			wrap.appendChild(dec);
-		//         (COLGROUP)*
-		wrap = new CMGroupImpl(CMGroup.SEQUENCE, 0, CMContentImpl.UNBOUNDED);
-		if (wrap == null)
-			return;
-		group.appendChild(wrap);
-		dec = collection.getNamedItem(HTML40Namespace.ElementName.COLGROUP);
-		if (dec != null)
-			wrap.appendChild(dec);
-
-		// (THEAD)?
-		wrap = new CMGroupImpl(CMGroup.SEQUENCE, 0, 1);
-		if (wrap == null)
-			return;
-		content.appendChild(wrap);
-		dec = collection.getNamedItem(HTML40Namespace.ElementName.THEAD);
-		if (dec != null)
-			wrap.appendChild(dec);
-
-		// (TFOOT)?
-		wrap = new CMGroupImpl(CMGroup.SEQUENCE, 0, 1);
-		if (wrap == null)
-			return;
-		content.appendChild(wrap);
-		dec = collection.getNamedItem(HTML40Namespace.ElementName.TFOOT);
-		if (dec != null)
-			wrap.appendChild(dec);
-
-		// (TBODY)+
-		// TBODY has optional start and end tags
-		wrap = new CMGroupImpl(CMGroup.SEQUENCE, 0, CMContentImpl.UNBOUNDED);
-		if (wrap == null)
-			return;
-		content.appendChild(wrap);
-		dec = collection.getNamedItem(HTML40Namespace.ElementName.TBODY);
-		if (dec != null)
-			wrap.appendChild(dec);
-
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=96101
-		// TBODY start and end tag are optional, so TR should be allowed here
-		// (TR)+
-		wrap = new CMGroupImpl(CMGroup.SEQUENCE, 1, CMContentImpl.UNBOUNDED);
-		if (wrap == null)
-			return;
-		content.appendChild(wrap);
-		dec = collection.getNamedItem(HTML40Namespace.ElementName.TR);
-		if (dec != null)
-			wrap.appendChild(dec);
-	}
-
-	/**
-	 * ((FRAMESET | FRAME)+ & NOFRAMES?)
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	/**
-	 * Name of complex type definition.
-	 * Each singleton must know its own name.
-	 * All names should be defined in
-	 * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br>
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_TABLE;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTableCellContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTableCellContainer.java
deleted file mode 100644
index a207876..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTableCellContainer.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-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;
-
-/**
- * Table cell container.
- * (TH | TD)+
- */
-final class CtdTableCellContainer extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdTableCellContainer(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = HTML40Namespace.ElementName.TD;
-	}
-
-	/**
-	 * (TH | TD)+.
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// ( )+
-		content = new CMGroupImpl(CMGroup.CHOICE, 1, CMContentImpl.UNBOUNDED);
-		// TH
-		CMNode dec = collection.getNamedItem(HTML40Namespace.ElementName.TH);
-		if (dec != null)
-			content.appendChild(dec);
-		// TD
-		dec = collection.getNamedItem(HTML40Namespace.ElementName.TD);
-		if (dec != null)
-			content.appendChild(dec);
-	}
-
-	/**
-	 * (TH | TD)+
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	/**
-	 * Name of complex type definition.
-	 * Each singleton must know its own name.
-	 * All names should be defined in
-	 * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br>
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_TCELL_CONTAINER;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTrContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTrContainer.java
deleted file mode 100644
index 734c204..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTrContainer.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.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-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;
-
-/**
- * Table record container.
- * (TR)+
- */
-final class CtdTrContainer extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdTrContainer(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = HTML40Namespace.ElementName.TR;
-	}
-
-	/**
-	 * (TR)+.
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// (TR)+
-		content = new CMGroupImpl(CMGroup.SEQUENCE, 1, CMContentImpl.UNBOUNDED);
-		CMNode tr = collection.getNamedItem(HTML40Namespace.ElementName.TR);
-		if (tr != null)
-			content.appendChild(tr);
-	}
-
-	/**
-	 * ELEMENT content.<br>
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	/**
-	 * Name of complex type definition.
-	 * Each singleton must know its own name.
-	 * All names should be defined in
-	 * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br>
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_TR_CONTAINER;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/DeclCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/DeclCollection.java
deleted file mode 100644
index d5aab54..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/DeclCollection.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Locale;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- */
-abstract class DeclCollection implements CMNamedNodeMap {
-
-
-	protected class DualMap {
-		public DualMap() {
-			super();
-		}
-
-		public DualMap(Object[] objects) {
-			super();
-			initialize(objects);
-		}
-
-		public int size() {
-			return table.length;
-		}
-
-		public Object getValue(int key) {
-			if (!isValidIndex(key))
-				return null;
-			return table[key];
-		}
-
-		public int getKey(Object value) {
-			Integer keyObj = (Integer) map.get(value);
-			if (keyObj == null)
-				return ID_UNKNOWN;
-			return keyObj.intValue();
-		}
-
-		protected void initialize(Object[] objects) {
-			if (objects == null)
-				return;
-			table = objects;
-			map = new HashMap();
-			for (int key = 0; key < objects.length; key++) {
-				Object value = table[key];
-				map.put(value, new Integer(key));
-			}
-		}
-
-		private Object[] table = null;
-		private HashMap map = null;
-
-		private boolean isValidIndex(int index) {
-			return index >= 0 && index < table.length;
-		}
-	}
-
-	protected class TolerantStringDualMap extends DualMap {
-		public TolerantStringDualMap(String[] names) {
-			super();
-			Object[] objects = new Object[names.length];
-			for (int i = 0; i < names.length; i++) {
-				objects[i] = makeCanonicalForm(names[i]);
-			}
-			initialize(objects);
-		}
-
-		public int getKey(Object value) {
-			try {
-				String name = (String) value;
-				return super.getKey(makeCanonicalForm(name));
-			}
-			catch (ClassCastException e) {
-				return ID_UNKNOWN;
-			}
-		}
-
-		private String makeCanonicalForm(String raw) {
-			// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=100152
-			// we are able to "cheat" here a little and use US Locale 
-			// to get a good cononical form, since we are using this only 
-			// for HTML and JSP standard tags. 
-			// Long term, for similar needs with XML 1.1 (for example)
-			// we should use a class such as com.ibm.icu.text.Normalizer
-			return raw.toUpperCase(Locale.US);
-		}
-	}
-
-	private class DeclIterator implements Iterator {
-		public DeclIterator() {
-			maxid = fDecls.length - 1;
-		}
-
-		public boolean hasNext() {
-			return id < maxid;
-		}
-
-		public Object next() {
-			if (!hasNext())
-				return null;
-			return item(++id);
-		}
-
-		public void remove() { /* nothing should be done. */
-		}
-
-		private int id = -1;
-		private int maxid = -1;
-	}
-
-	CMNode[] fDecls = null;
-	protected final static boolean STRICT_CASE = false;
-	protected final static boolean TOLERANT_CASE = true;
-	protected final static int ID_UNKNOWN = -1;
-	private DualMap fMap = null;
-
-	/**
-	 */
-	public DeclCollection(String[] names, boolean tolerant) {
-		super();
-		fDecls = new CMNode[names.length];
-		if (tolerant) {
-			fMap = new TolerantStringDualMap(names);
-		}
-		else {
-			fMap = new DualMap(names);
-		}
-	}
-
-	/**
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 * @param id int
-	 */
-	protected abstract CMNode create(String name);
-
-	/**
-	 */
-	public CMNamedNodeMap getDeclarations(String[] names) {
-		CMNamedNodeMapImpl map = new CMNamedNodeMapImpl();
-		for (int i = 0; i < names.length; i++) {
-			String name = names[i];
-			CMNode node = getNamedItem(name);
-			if (node == null)
-				continue;
-			map.putNamedItem(name, node);
-		}
-		return map;
-	}
-
-	/**
-	 * @param names java.util.Iterator
-	 */
-	public void getDeclarations(CMGroupImpl group, Iterator names) {
-		while (names.hasNext()) {
-			String entityName = (String) names.next();
-			CMNode dec = getNamedItem(entityName);
-			if (dec != null)
-				group.appendChild(dec);
-		}
-	}
-
-	/**
-	 * Map name to id.
-	 * @return int
-	 * @param name java.lang.String
-	 */
-	protected int getID(String name) {
-		return fMap.getKey(name);
-	}
-
-	/**
-	 * getLength method
-	 * @return int
-	 */
-	public int getLength() {
-		return fDecls.length;
-	}
-
-	/**
-	 * @return java.lang.String
-	 * @param id int
-	 */
-	protected String getName(int id) {
-		return (String) fMap.getValue(id);
-	}
-
-	/**
-	 * getNamedItem method
-	 * @return CMNode
-	 * @param name java.lang.String
-	 */
-	public CMNode getNamedItem(String name) {
-		int id = getID(name);
-		if (!isValidID(id))
-			return null;
-		return item(id);
-	}
-
-	/**
-	 * @return boolean
-	 * @param id int
-	 */
-	private boolean isValidID(int id) {
-		return id >= 0 && id < fDecls.length;
-	}
-
-	/**
-	 * item method
-	 * @return CMNode
-	 * @param index int
-	 */
-	public CMNode item(int index) {
-		if (!isValidID(index))
-			return null;
-		CMNode decl = fDecls[index];
-		if (decl != null)
-			return decl; // already exist.
-
-		decl = create(getName(index));
-		fDecls[index] = decl;
-		return decl;
-	}
-
-	/**
-	 */
-	public Iterator iterator() {
-		return new DeclIterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ElementCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ElementCollection.java
deleted file mode 100644
index 8349964..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ElementCollection.java
+++ /dev/null
@@ -1,881 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.lang.reflect.Field;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Vector;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * Factory for element declarations.
- */
-final class ElementCollection extends DeclCollection implements org.eclipse.wst.html.core.internal.provisional.HTML40Namespace.ElementName {
-
-
-	// Element IDs
-	private static class Ids {
-		public static final int ID_A = 0;
-		public static final int ID_ABBR = 1;
-		public static final int ID_ACRONYM = 2;
-		public static final int ID_ADDRESS = 3;
-		public static final int ID_APPLET = 4;
-		public static final int ID_AREA = 5;
-		public static final int ID_B = 6;
-		public static final int ID_BASE = 7;
-		public static final int ID_BASEFONT = 8;
-		public static final int ID_BDO = 9;
-		public static final int ID_BIG = 10;
-		public static final int ID_BLINK = 11;
-		public static final int ID_BLOCKQUOTE = 12;
-		public static final int ID_BODY = 13;
-		public static final int ID_BR = 14;
-		public static final int ID_BUTTON = 15;
-		public static final int ID_CAPTION = 16;
-		public static final int ID_CENTER = 17;
-		public static final int ID_CITE = 18;
-		public static final int ID_CODE = 19;
-		public static final int ID_COL = 20;
-		public static final int ID_COLGROUP = 21;
-		public static final int ID_DD = 22;
-		public static final int ID_DEL = 23;
-		public static final int ID_DFN = 24;
-		public static final int ID_DIR = 25;
-		public static final int ID_DIV = 26;
-		public static final int ID_DL = 27;
-		public static final int ID_DT = 28;
-		public static final int ID_EM = 29;
-		public static final int ID_EMBED = 30;
-		public static final int ID_FIELDSET = 31;
-		public static final int ID_FONT = 32;
-		public static final int ID_FORM = 33;
-		public static final int ID_FRAME = 34;
-		public static final int ID_FRAMESET = 35;
-		public static final int ID_H1 = 36;
-		public static final int ID_H2 = 37;
-		public static final int ID_H3 = 38;
-		public static final int ID_H4 = 39;
-		public static final int ID_H5 = 40;
-		public static final int ID_H6 = 41;
-		public static final int ID_HEAD = 42;
-		public static final int ID_HR = 43;
-		public static final int ID_HTML = 44;
-		public static final int ID_I = 45;
-		public static final int ID_IFRAME = 46;
-		public static final int ID_IMG = 47;
-		public static final int ID_INPUT = 48;
-		public static final int ID_INS = 49;
-		public static final int ID_ISINDEX = 50;
-		public static final int ID_KBD = 51;
-		public static final int ID_LABEL = 52;
-		public static final int ID_LEGEND = 53;
-		public static final int ID_LI = 54;
-		public static final int ID_LINK = 55;
-		public static final int ID_MAP = 56;
-		public static final int ID_MENU = 57;
-		public static final int ID_META = 58;
-		public static final int ID_NOEMBED = 59;
-		public static final int ID_NOFRAMES = 60;
-		public static final int ID_NOSCRIPT = 61;
-		public static final int ID_OBJECT = 62;
-		public static final int ID_OL = 63;
-		public static final int ID_OPTGROUP = 64;
-		public static final int ID_OPTION = 65;
-		public static final int ID_P = 66;
-		public static final int ID_PARAM = 67;
-		public static final int ID_PRE = 68;
-		public static final int ID_Q = 69;
-		public static final int ID_S = 70;
-		public static final int ID_SAMP = 71;
-		public static final int ID_SCRIPT = 72;
-		public static final int ID_SELECT = 73;
-		public static final int ID_SMALL = 74;
-		public static final int ID_SPAN = 75;
-		public static final int ID_STRIKE = 76;
-		public static final int ID_STRONG = 77;
-		public static final int ID_STYLE = 78;
-		public static final int ID_SUB = 79;
-		public static final int ID_SUP = 80;
-		public static final int ID_TABLE = 81;
-		public static final int ID_TBODY = 82;
-		public static final int ID_TD = 83;
-		public static final int ID_TEXTAREA = 84;
-		public static final int ID_TFOOT = 85;
-		public static final int ID_TH = 86;
-		public static final int ID_THEAD = 87;
-		public static final int ID_TITLE = 88;
-		public static final int ID_TR = 89;
-		public static final int ID_TT = 90;
-		public static final int ID_U = 91;
-		public static final int ID_UL = 92;
-		public static final int ID_VAR = 93;
-		public static final int ID_MARQUEE = 94;
-		public static final int ID_SSI_CONFIG = 95;
-		public static final int ID_SSI_ECHO = 96;
-		public static final int ID_SSI_EXEC = 97;
-		public static final int ID_SSI_FSIZE = 98;
-		public static final int ID_SSI_FLASTMOD = 99;
-		public static final int ID_SSI_INCLUDE = 100;
-		public static final int ID_SSI_PRINTENV = 101;
-		public static final int ID_SSI_SET = 102;
-		// <<D205513
-		public static final int ID_BGSOUND = 103;
-		public static final int ID_NOBR = 104;
-		public static final int ID_WBR = 105;
-
-		// D205513
-
-		public static int getNumOfIds() {
-			if (numofids != -1)
-				return numofids;
-
-			// NOTE: If the reflection is too slow, this method should
-			// just return the literal value, like 105.
-			// -- 5/25/2001
-			Class clazz = Ids.class;
-			Field[] fields = clazz.getFields();
-			numofids = 0;
-			for (int i = 0; i < fields.length; i++) {
-				String name = fields[i].getName();
-				if (name.startsWith("ID_"))//$NON-NLS-1$
-					numofids++;
-			}
-			return numofids;
-		}
-
-		// chache the result of the reflection.
-		private static int numofids = -1;
-	}
-
-	/** %fontstyle;. TT | I | B | U | S | STRIKE | BIG | SMALL | BLINK */
-	private static final String[] FONTSTYLE = {TT, I, B, U, S, STRIKE, BIG, SMALL, BLINK};
-	/** %formctl;. INPUT | SELECT | TEXTAREA | LABEL | BUTTON */
-	private static final String[] FORMCTL = {INPUT, SELECT, TEXTAREA, LABEL, BUTTON};
-	/** %phrase;.
-	 * EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE | ABBR | ACRONYM
-	 */
-	private static final String[] PHRASE = {EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE, ABBR, ACRONYM};
-	/** %special;.
-	 * A | IMG | APPLET | OBJECT | FONT | BASEFONT | BR | SCRIPT |
-	 * MAP | Q | SUB | SUP | SPAN | BDO | IFRAME | EMBED | MARQUEE |
-	 * D2W | SUBMIT
-	 * WBR | NOBR | BGSOUND
-	 */
-	private static final String[] SPECIAL = {A, IMG, APPLET, OBJECT, FONT, BASEFONT, BR, WBR, // D205513
-				SCRIPT, MAP, Q, SUB, SUP, SPAN, BDO, IFRAME, EMBED, BGSOUND, // D205513
-				MARQUEE, NOBR // D205513
-	};
-	/** %heading;. H[1-6] */
-	private static final String[] HEADING = {H1, H2, H3, H4, H5, H6};
-	/** %list;. UL | OL | DIR | MENU */
-	private static final String[] LIST = {UL, OL, DIR, MENU};
-	/** %preformatted;. PRE */
-	private static final String[] PREFORMATTED = {PRE};
-	private AttributeCollection attributeCollection = null;
-	private static String[] fNames = null;
-
-	static {
-		fNames = new String[Ids.getNumOfIds()];
-		fNames[Ids.ID_A] = A;
-		fNames[Ids.ID_ABBR] = ABBR;
-		fNames[Ids.ID_ACRONYM] = ACRONYM;
-		fNames[Ids.ID_ADDRESS] = ADDRESS;
-		fNames[Ids.ID_APPLET] = APPLET;
-		fNames[Ids.ID_AREA] = AREA;
-		fNames[Ids.ID_B] = B;
-		fNames[Ids.ID_BASE] = BASE;
-		fNames[Ids.ID_BASEFONT] = BASEFONT;
-		fNames[Ids.ID_BDO] = BDO;
-		fNames[Ids.ID_BIG] = BIG;
-		fNames[Ids.ID_BLINK] = BLINK;
-		fNames[Ids.ID_BLOCKQUOTE] = BLOCKQUOTE;
-		fNames[Ids.ID_BODY] = BODY;
-		fNames[Ids.ID_BR] = BR;
-		fNames[Ids.ID_BUTTON] = BUTTON;
-		fNames[Ids.ID_CAPTION] = CAPTION;
-		fNames[Ids.ID_CENTER] = CENTER;
-		fNames[Ids.ID_CITE] = CITE;
-		fNames[Ids.ID_CODE] = CODE;
-		fNames[Ids.ID_COL] = COL;
-		fNames[Ids.ID_COLGROUP] = COLGROUP;
-		fNames[Ids.ID_DD] = DD;
-		fNames[Ids.ID_DEL] = DEL;
-		fNames[Ids.ID_DFN] = DFN;
-		fNames[Ids.ID_DIR] = DIR;
-		fNames[Ids.ID_DIV] = DIV;
-		fNames[Ids.ID_DL] = DL;
-		fNames[Ids.ID_DT] = DT;
-		fNames[Ids.ID_EM] = EM;
-		fNames[Ids.ID_EMBED] = EMBED;
-		fNames[Ids.ID_FIELDSET] = FIELDSET;
-		fNames[Ids.ID_FONT] = FONT;
-		fNames[Ids.ID_FORM] = FORM;
-		fNames[Ids.ID_FRAME] = FRAME;
-		fNames[Ids.ID_FRAMESET] = FRAMESET;
-		fNames[Ids.ID_H1] = H1;
-		fNames[Ids.ID_H2] = H2;
-		fNames[Ids.ID_H3] = H3;
-		fNames[Ids.ID_H4] = H4;
-		fNames[Ids.ID_H5] = H5;
-		fNames[Ids.ID_H6] = H6;
-		fNames[Ids.ID_HEAD] = HEAD;
-		fNames[Ids.ID_HR] = HR;
-		fNames[Ids.ID_HTML] = HTML;
-		fNames[Ids.ID_I] = I;
-		fNames[Ids.ID_IFRAME] = IFRAME;
-		fNames[Ids.ID_IMG] = IMG;
-		fNames[Ids.ID_INPUT] = INPUT;
-		fNames[Ids.ID_INS] = INS;
-		fNames[Ids.ID_ISINDEX] = ISINDEX;
-		fNames[Ids.ID_KBD] = KBD;
-		fNames[Ids.ID_LABEL] = LABEL;
-		fNames[Ids.ID_LEGEND] = LEGEND;
-		fNames[Ids.ID_LI] = LI;
-		fNames[Ids.ID_LINK] = LINK;
-		fNames[Ids.ID_MAP] = MAP;
-		fNames[Ids.ID_MENU] = MENU;
-		fNames[Ids.ID_META] = META;
-		fNames[Ids.ID_NOEMBED] = NOEMBED;
-		fNames[Ids.ID_NOFRAMES] = NOFRAMES;
-		fNames[Ids.ID_NOSCRIPT] = NOSCRIPT;
-		fNames[Ids.ID_OBJECT] = OBJECT;
-		fNames[Ids.ID_OL] = OL;
-		fNames[Ids.ID_OPTGROUP] = OPTGROUP;
-		fNames[Ids.ID_OPTION] = OPTION;
-		fNames[Ids.ID_P] = P;
-		fNames[Ids.ID_PARAM] = PARAM;
-		fNames[Ids.ID_PRE] = PRE;
-		fNames[Ids.ID_Q] = Q;
-		fNames[Ids.ID_S] = S;
-		fNames[Ids.ID_SAMP] = SAMP;
-		fNames[Ids.ID_SCRIPT] = SCRIPT;
-		fNames[Ids.ID_SELECT] = SELECT;
-		fNames[Ids.ID_SMALL] = SMALL;
-		fNames[Ids.ID_SPAN] = SPAN;
-		fNames[Ids.ID_STRIKE] = STRIKE;
-		fNames[Ids.ID_STRONG] = STRONG;
-		fNames[Ids.ID_STYLE] = STYLE;
-		fNames[Ids.ID_SUB] = SUB;
-		fNames[Ids.ID_SUP] = SUP;
-		fNames[Ids.ID_TABLE] = TABLE;
-		fNames[Ids.ID_TBODY] = TBODY;
-		fNames[Ids.ID_TD] = TD;
-		fNames[Ids.ID_TEXTAREA] = TEXTAREA;
-		fNames[Ids.ID_TFOOT] = TFOOT;
-		fNames[Ids.ID_TH] = TH;
-		fNames[Ids.ID_THEAD] = THEAD;
-		fNames[Ids.ID_TITLE] = TITLE;
-		fNames[Ids.ID_TR] = TR;
-		fNames[Ids.ID_TT] = TT;
-		fNames[Ids.ID_U] = U;
-		fNames[Ids.ID_UL] = UL;
-		fNames[Ids.ID_VAR] = VAR;
-		fNames[Ids.ID_MARQUEE] = MARQUEE;
-		fNames[Ids.ID_SSI_CONFIG] = SSI_CONFIG;
-		fNames[Ids.ID_SSI_ECHO] = SSI_ECHO;
-		fNames[Ids.ID_SSI_EXEC] = SSI_EXEC;
-		fNames[Ids.ID_SSI_FSIZE] = SSI_FSIZE;
-		fNames[Ids.ID_SSI_FLASTMOD] = SSI_FLASTMOD;
-		fNames[Ids.ID_SSI_INCLUDE] = SSI_INCLUDE;
-		fNames[Ids.ID_SSI_PRINTENV] = SSI_PRINTENV;
-		fNames[Ids.ID_SSI_SET] = SSI_SET;
-		fNames[Ids.ID_BGSOUND] = BGSOUND;
-		fNames[Ids.ID_NOBR] = NOBR;
-		fNames[Ids.ID_WBR] = WBR;
-	}
-
-	/**
-	 */
-	public ElementCollection(AttributeCollection collection) {
-		super(fNames, TOLERANT_CASE);
-		attributeCollection = collection;
-	}
-
-	/**
-	 * Actually creates HTMLElementDeclaration instance.
-	 * @return HTMLElementDeclaration
-	 */
-	protected CMNode create(String elementName) {
-		HTMLElemDeclImpl edec = null;
-
-		if (elementName.equalsIgnoreCase(A)) {
-			edec = new HedA(this);
-		}
-		else if (elementName.equalsIgnoreCase(ABBR)) {
-			edec = new HedPhrase(ABBR, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(ACRONYM)) {
-			edec = new HedPhrase(ACRONYM, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(ADDRESS)) {
-			edec = new HedADDRESS(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(APPLET)) {
-			edec = new HedAPPLET(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(AREA)) {
-			edec = new HedAREA(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(B)) {
-			edec = new HedFontStyle(B, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(BASE)) {
-			edec = new HedBASE(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(BASEFONT)) {
-			edec = new HedBASEFONT(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(BDO)) {
-			edec = new HedBDO(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(BIG)) {
-			edec = new HedFontStyle(BIG, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(BLINK)) {
-			edec = new HedFontStyle(BLINK, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(BLOCKQUOTE)) {
-			edec = new HedBLOCKQUOTE(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(BODY)) {
-			edec = new HedBODY(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(BR)) {
-			edec = new HedBR(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(BUTTON)) {
-			edec = new HedBUTTON(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(CAPTION)) {
-			edec = new HedCAPTION(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(CENTER)) {
-			edec = new HedCENTER(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(CITE)) {
-			edec = new HedPhrase(CITE, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(CODE)) {
-			edec = new HedPhrase(CODE, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(COL)) {
-			edec = new HedCOL(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(COLGROUP)) {
-			edec = new HedCOLGROUP(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(DD)) {
-			edec = new HedDD(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(DEL)) {
-			edec = new HedMarkChanges(DEL, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(DFN)) {
-			edec = new HedPhrase(DFN, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(DIR)) {
-			edec = new HedMENU(DIR, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(DIV)) {
-			edec = new HedDIV(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(DL)) {
-			edec = new HedDL(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(DT)) {
-			edec = new HedDT(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(EM)) {
-			edec = new HedPhrase(EM, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(EMBED)) {
-			edec = new HedEMBED(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(FIELDSET)) {
-			edec = new HedFIELDSET(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(FONT)) {
-			edec = new HedFONT(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(FORM)) {
-			edec = new HedFORM(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(FRAME)) {
-			edec = new HedFRAME(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(FRAMESET)) {
-			edec = new HedFRAMESET(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(H1)) {
-			edec = new HedHeading(H1, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(H2)) {
-			edec = new HedHeading(H2, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(H3)) {
-			edec = new HedHeading(H3, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(H4)) {
-			edec = new HedHeading(H4, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(H5)) {
-			edec = new HedHeading(H5, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(H6)) {
-			edec = new HedHeading(H6, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(HEAD)) {
-			edec = new HedHEAD(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(HR)) {
-			edec = new HedHR(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(HTML)) {
-			edec = new HedHTML(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(I)) {
-			edec = new HedFontStyle(I, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(IFRAME)) {
-			edec = new HedIFRAME(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(IMG)) {
-			edec = new HedIMG(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(INPUT)) {
-			edec = new HedINPUT(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(INS)) {
-			edec = new HedMarkChanges(INS, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(ISINDEX)) {
-			edec = new HedISINDEX(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(KBD)) {
-			edec = new HedPhrase(KBD, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(LABEL)) {
-			edec = new HedLABEL(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(LEGEND)) {
-			edec = new HedLEGEND(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(LI)) {
-			edec = new HedLI(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(LINK)) {
-			edec = new HedLINK(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(MAP)) {
-			edec = new HedMAP(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(MARQUEE)) {
-			edec = new HedMARQUEE(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(MENU)) {
-			edec = new HedMENU(MENU, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(META)) {
-			edec = new HedMETA(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(NOEMBED)) {
-			edec = new HedNOEMBED(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(NOFRAMES)) {
-			edec = new HedNOFRAMES(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(NOSCRIPT)) {
-			edec = new HedNOSCRIPT(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(OBJECT)) {
-			edec = new HedOBJECT(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(OL)) {
-			edec = new HedOL(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(OPTGROUP)) {
-			edec = new HedOPTGROUP(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(OPTION)) {
-			edec = new HedOPTION(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(P)) {
-			edec = new HedP(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(PARAM)) {
-			edec = new HedPARAM(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(PRE)) {
-			edec = new HedPRE(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(Q)) {
-			edec = new HedQ(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(S)) {
-			edec = new HedFontStyle(S, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SAMP)) {
-			edec = new HedPhrase(SAMP, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SCRIPT)) {
-			edec = new HedSCRIPT(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SELECT)) {
-			edec = new HedSELECT(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SMALL)) {
-			edec = new HedFontStyle(SMALL, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SPAN)) {
-			edec = new HedSPAN(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(STRIKE)) {
-			edec = new HedFontStyle(STRIKE, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(STRONG)) {
-			edec = new HedPhrase(STRONG, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(STYLE)) {
-			edec = new HedSTYLE(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SUB)) {
-			edec = new HedScripts(SUB, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SUP)) {
-			edec = new HedScripts(SUP, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(TABLE)) {
-			edec = new HedTABLE(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(TBODY)) {
-			edec = new HedTableBody(TBODY, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(TD)) {
-			edec = new HedTableCell(TD, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(TEXTAREA)) {
-			edec = new HedTEXTAREA(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(TFOOT)) {
-			edec = new HedTableBody(TFOOT, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(TH)) {
-			edec = new HedTableCell(TH, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(THEAD)) {
-			edec = new HedTableBody(THEAD, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(TITLE)) {
-			edec = new HedTITLE(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(TR)) {
-			edec = new HedTR(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(TT)) {
-			edec = new HedFontStyle(TT, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(U)) {
-			edec = new HedFontStyle(U, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(UL)) {
-			edec = new HedUL(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(VAR)) {
-			edec = new HedPhrase(VAR, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SSI_CONFIG)) {
-			edec = new HedSSIConfig(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SSI_ECHO)) {
-			edec = new HedSSIEcho(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SSI_EXEC)) {
-			edec = new HedSSIExec(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SSI_FSIZE)) {
-			edec = new HedSSIFsize(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SSI_FLASTMOD)) {
-			edec = new HedSSIFlastmod(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SSI_INCLUDE)) {
-			edec = new HedSSIInclude(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SSI_PRINTENV)) {
-			edec = new HedSSIPrintenv(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SSI_SET)) {
-			edec = new HedSSISet(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(BGSOUND)) {
-			edec = new HedBGSOUND(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(NOBR)) {
-			edec = new HedNOBR(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(WBR)) {
-			edec = new HedWBR(this);
-
-		} // unknown
-		else {
-			// NOTE: We don't define the UNKNOWN element declaration.
-			// <code>null</code> for a declaration is a sign of
-			// the target element is unknown.
-			// -- 3/9/2001
-			edec = null;
-		}
-		return edec;
-	}
-
-	public AttributeCollection getAttributeCollection() {
-		return attributeCollection;
-	}
-
-	public final Collection getNamesOfBlock() {
-		// P, DL, DIV, CENTER, NOSCRIPT, NOFRAMES, BLOCKQUOTE, FORM, ISINDEX, HR,
-		// TABLE, FIELDSET, ADDRESS
-		String[] blockMisc = {P, DL, DIV, CENTER, NOSCRIPT, NOFRAMES, BLOCKQUOTE, FORM, ISINDEX, HR, TABLE, FIELDSET, ADDRESS};
-		Vector names = new Vector(Arrays.asList(blockMisc));
-		// %heading;
-		names.addAll(Arrays.asList(HEADING));
-		// %list;
-		names.addAll(Arrays.asList(LIST));
-		// %preformatted;
-		names.addAll(Arrays.asList(PREFORMATTED));
-
-		return names;
-	}
-
-	/**
-	 * %block;.
-	 * %block; is:
-	 * P | %heading; | %list; | %preformatted; | DL | DIV | CENTER |
-	 * NOSCRIPT | NOFRAMES | BLOCKQUOTE | FORM | ISINDEX | HR |
-	 * TABLE | FIELDSET | ADDRESS.<br>
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getBlock(CMGroupImpl group) {
-		if (group == null)
-			return;
-		getDeclarations(group, getNamesOfBlock().iterator());
-	}
-
-	/**
-	 * Create element declarations and store them
-	 * into a <code>CMGroupImpl</code> instance.
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getFlow(CMGroupImpl group) {
-		if (group == null)
-			return;
-		getBlock(group);
-		getInline(group);
-	}
-
-	/**
-	 * Create element declarations and store them into a <code>CMGroupImpl</code>
-	 * instance.<br>
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getFontstyle(CMGroupImpl group) {
-		if (group == null)
-			return;
-		getDeclarations(group, Arrays.asList(FONTSTYLE).iterator());
-	}
-
-	/**
-	 * Create element declarations and store them into a <code>CMGroupImpl</code>
-	 * instance.<br>
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getFormctrl(CMGroupImpl group) {
-		if (group == null)
-			return;
-		getDeclarations(group, Arrays.asList(FORMCTL).iterator());
-	}
-
-	/**
-	 * %heading;.
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getHeading(CMGroupImpl group) {
-		if (group == null)
-			return;
-
-		getDeclarations(group, Arrays.asList(HEADING).iterator());
-	}
-
-	/**
-	 * Create element declarations and store them
-	 * into a <code>CMGroupImpl</code> instance.
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getInline(CMGroupImpl group) {
-		if (group == null)
-			return;
-		getFontstyle(group);
-		getPhrase(group);
-		getSpecial(group);
-		getFormctrl(group);
-	}
-
-	/**
-	 * %list;.
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getList(CMGroupImpl group) {
-		if (group == null)
-			return;
-
-		getDeclarations(group, Arrays.asList(LIST).iterator());
-	}
-
-	/**
-	 * Create element declarations and store them into a <code>CMGroupImpl</code>
-	 * instance.<br>
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getPhrase(CMGroupImpl group) {
-		if (group == null)
-			return;
-		getDeclarations(group, Arrays.asList(PHRASE).iterator());
-	}
-
-	/**
-	 * %preformatted;
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getPreformatted(CMGroupImpl group) {
-		if (group == null)
-			return;
-
-		getDeclarations(group, Arrays.asList(PREFORMATTED).iterator());
-	}
-
-	/**
-	 * Create element declarations and store them into a <code>CMGroupImpl</code>
-	 * instance.<br>
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getSpecial(CMGroupImpl group) {
-		if (group == null)
-			return;
-		getDeclarations(group, Arrays.asList(SPECIAL).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/EntityCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/EntityCollection.java
deleted file mode 100644
index dda7041..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/EntityCollection.java
+++ /dev/null
@@ -1,837 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.lang.reflect.Field;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * Factory for entity declarations.
- */
-final class EntityCollection extends DeclCollection implements org.eclipse.wst.html.core.internal.provisional.HTML40Namespace.EntityName {
-
-
-	private static class Ids {
-		public static final int ID_AACUTE_L = 0;
-		public static final int ID_AACUTE_U = 1;
-		public static final int ID_ACIRC_L = 2;
-		public static final int ID_ACIRC_U = 3;
-		public static final int ID_ACUTE = 4;
-		public static final int ID_AELIG_L = 5;
-		public static final int ID_AELIG_U = 6;
-		public static final int ID_AGRAVE_L = 7;
-		public static final int ID_AGRAVE_U = 8;
-		public static final int ID_ALEFSYM = 9;
-		public static final int ID_ALPHA_L = 10;
-		public static final int ID_ALPHA_U = 11;
-		public static final int ID_AMP = 12;
-		public static final int ID_AND = 13;
-		public static final int ID_ANG = 14;
-		public static final int ID_ARING_L = 15;
-		public static final int ID_ARING_U = 16;
-		public static final int ID_ASYMP = 17;
-		public static final int ID_ATILDE_L = 18;
-		public static final int ID_ATILDE_U = 19;
-		public static final int ID_AUML_L = 20;
-		public static final int ID_AUML_U = 21;
-		public static final int ID_BDQUO = 22;
-		public static final int ID_BETA_L = 23;
-		public static final int ID_BETA_U = 24;
-		public static final int ID_BRVBAR = 25;
-		public static final int ID_BULL = 26;
-		public static final int ID_CAP = 27;
-		public static final int ID_CCEDIL_L = 28;
-		public static final int ID_CCEDIL_U = 29;
-		public static final int ID_CEDIL = 30;
-		public static final int ID_CENT = 31;
-		public static final int ID_CHI_L = 32;
-		public static final int ID_CHI_U = 33;
-		public static final int ID_CIRC = 34;
-		public static final int ID_CLUBS = 35;
-		public static final int ID_CONG = 36;
-		public static final int ID_COPY = 37;
-		public static final int ID_CRARR = 38;
-		public static final int ID_CUP = 39;
-		public static final int ID_CURREN = 40;
-		public static final int ID_DAGGER_L = 41;
-		public static final int ID_DAGGER_U = 42;
-		public static final int ID_DARR_L = 43;
-		public static final int ID_DARR_U = 44;
-		public static final int ID_DEG = 45;
-		public static final int ID_DELTA_L = 46;
-		public static final int ID_DELTA_U = 47;
-		public static final int ID_DIAMS = 48;
-		public static final int ID_DIVIDE = 49;
-		public static final int ID_EACUTE_L = 50;
-		public static final int ID_EACUTE_U = 51;
-		public static final int ID_ECIRC_L = 52;
-		public static final int ID_ECIRC_U = 53;
-		public static final int ID_EGRAVE_L = 54;
-		public static final int ID_EGRAVE_U = 55;
-		public static final int ID_EMPTY = 56;
-		public static final int ID_EMSP = 57;
-		public static final int ID_ENSP = 58;
-		public static final int ID_EPSILON_L = 59;
-		public static final int ID_EPSILON_U = 60;
-		public static final int ID_EQUIV = 61;
-		public static final int ID_ETA_L = 62;
-		public static final int ID_ETA_U = 63;
-		public static final int ID_ETH_L = 64;
-		public static final int ID_ETH_U = 65;
-		public static final int ID_EUML_L = 66;
-		public static final int ID_EUML_U = 67;
-		public static final int ID_EURO = 68;
-		public static final int ID_EXIST = 69;
-		public static final int ID_FNOF = 70;
-		public static final int ID_FORALL = 71;
-		public static final int ID_FRAC12 = 72;
-		public static final int ID_FRAC14 = 73;
-		public static final int ID_FRAC34 = 74;
-		public static final int ID_FRASL = 75;
-		public static final int ID_GAMMA_L = 76;
-		public static final int ID_GAMMA_U = 77;
-		public static final int ID_GE = 78;
-		public static final int ID_GT = 79;
-		public static final int ID_HARR_L = 80;
-		public static final int ID_HARR_U = 81;
-		public static final int ID_HEARTS = 82;
-		public static final int ID_HELLIP = 83;
-		public static final int ID_IACUTE_L = 84;
-		public static final int ID_IACUTE_U = 85;
-		public static final int ID_ICIRC_L = 86;
-		public static final int ID_ICIRC_U = 87;
-		public static final int ID_IEXCL = 88;
-		public static final int ID_IGRAVE_L = 89;
-		public static final int ID_IGRAVE_U = 90;
-		public static final int ID_IMAGE = 91;
-		public static final int ID_INFIN = 92;
-		public static final int ID_INT = 93;
-		public static final int ID_IOTA_L = 94;
-		public static final int ID_IOTA_U = 95;
-		public static final int ID_IQUEST = 96;
-		public static final int ID_ISIN = 97;
-		public static final int ID_IUML_L = 98;
-		public static final int ID_IUML_U = 99;
-		public static final int ID_KAPPA_L = 100;
-		public static final int ID_KAPPA_U = 101;
-		public static final int ID_LAMBDA_L = 102;
-		public static final int ID_LAMBDA_U = 103;
-		public static final int ID_LANG = 104;
-		public static final int ID_LAQUO = 105;
-		public static final int ID_LARR_L = 106;
-		public static final int ID_LARR_U = 107;
-		public static final int ID_LCEIL = 108;
-		public static final int ID_LDQUO = 109;
-		public static final int ID_LE = 110;
-		public static final int ID_LFLOOR = 111;
-		public static final int ID_LOWAST = 112;
-		public static final int ID_LOZ = 113;
-		public static final int ID_LRM = 114;
-		public static final int ID_LSAQUO = 115;
-		public static final int ID_LSQUO = 116;
-		public static final int ID_LT = 117;
-		public static final int ID_MACR = 118;
-		public static final int ID_MDASH = 119;
-		public static final int ID_MICRO = 120;
-		public static final int ID_MIDDOT = 121;
-		public static final int ID_MINUS = 122;
-		public static final int ID_MU_L = 123;
-		public static final int ID_MU_U = 124;
-		public static final int ID_NABLA = 125;
-		public static final int ID_NBSP = 126;
-		public static final int ID_NDASH = 127;
-		public static final int ID_NE = 128;
-		public static final int ID_NI = 129;
-		public static final int ID_NOT = 130;
-		public static final int ID_NOTIN = 131;
-		public static final int ID_NSUB = 132;
-		public static final int ID_NTILDE_L = 133;
-		public static final int ID_NTILDE_U = 134;
-		public static final int ID_NU_L = 135;
-		public static final int ID_NU_U = 136;
-		public static final int ID_OACUTE_L = 137;
-		public static final int ID_OACUTE_U = 138;
-		public static final int ID_OCIRC_L = 139;
-		public static final int ID_OCIRC_U = 140;
-		public static final int ID_OELIG_L = 141;
-		public static final int ID_OELIG_U = 142;
-		public static final int ID_OGRAVE_L = 143;
-		public static final int ID_OGRAVE_U = 144;
-		public static final int ID_OLINE = 145;
-		public static final int ID_OMEGA_L = 146;
-		public static final int ID_OMEGA_U = 147;
-		public static final int ID_OMICRON_L = 148;
-		public static final int ID_OMICRON_U = 149;
-		public static final int ID_OPLUS = 150;
-		public static final int ID_OR = 151;
-		public static final int ID_ORDF = 152;
-		public static final int ID_ORDM = 153;
-		public static final int ID_OSLASH_L = 154;
-		public static final int ID_OSLASH_U = 155;
-		public static final int ID_OTILDE_L = 156;
-		public static final int ID_OTILDE_U = 157;
-		public static final int ID_OTIMES = 158;
-		public static final int ID_OUML_L = 159;
-		public static final int ID_OUML_U = 160;
-		public static final int ID_PARA = 161;
-		public static final int ID_PART = 162;
-		public static final int ID_PERMIL = 163;
-		public static final int ID_PERP = 164;
-		public static final int ID_PHI_L = 165;
-		public static final int ID_PHI_U = 166;
-		public static final int ID_PIV = 167;
-		public static final int ID_PI_L = 168;
-		public static final int ID_PI_U = 169;
-		public static final int ID_PLUSMN = 170;
-		public static final int ID_POUND = 171;
-		public static final int ID_PRIME_L = 172;
-		public static final int ID_PRIME_U = 173;
-		public static final int ID_PROD = 174;
-		public static final int ID_PROP = 175;
-		public static final int ID_PSI_L = 176;
-		public static final int ID_PSI_U = 177;
-		public static final int ID_QUOT = 178;
-		public static final int ID_RADIC = 179;
-		public static final int ID_RANG = 180;
-		public static final int ID_RAQUO = 181;
-		public static final int ID_RARR_L = 182;
-		public static final int ID_RARR_U = 183;
-		public static final int ID_RCEIL = 184;
-		public static final int ID_RDQUO = 185;
-		public static final int ID_REAL = 186;
-		public static final int ID_REG = 187;
-		public static final int ID_RFLOOR = 188;
-		public static final int ID_RHO_L = 189;
-		public static final int ID_RHO_U = 190;
-		public static final int ID_RLM = 191;
-		public static final int ID_RSAQUO = 192;
-		public static final int ID_RSQUO = 193;
-		public static final int ID_SBQUO = 194;
-		public static final int ID_SCARON_L = 195;
-		public static final int ID_SCARON_U = 196;
-		public static final int ID_SDOT = 197;
-		public static final int ID_SECT = 198;
-		public static final int ID_SHY = 199;
-		public static final int ID_SIGMAF = 200;
-		public static final int ID_SIGMA_L = 201;
-		public static final int ID_SIGMA_U = 202;
-		public static final int ID_SIM = 203;
-		public static final int ID_SPADES = 204;
-		public static final int ID_SUB = 205;
-		public static final int ID_SUBE = 206;
-		public static final int ID_SUM = 207;
-		public static final int ID_SUP = 208;
-		public static final int ID_SUP1 = 209;
-		public static final int ID_SUP2 = 210;
-		public static final int ID_SUP3 = 211;
-		public static final int ID_SUPE = 212;
-		public static final int ID_SZLIG = 213;
-		public static final int ID_TAU_L = 214;
-		public static final int ID_TAU_U = 215;
-		public static final int ID_THERE4 = 216;
-		public static final int ID_THETASYM = 217;
-		public static final int ID_THETA_L = 218;
-		public static final int ID_THETA_U = 219;
-		public static final int ID_THINSP = 220;
-		public static final int ID_THORN_L = 221;
-		public static final int ID_THORN_U = 222;
-		public static final int ID_TILDE = 223;
-		public static final int ID_TIMES = 224;
-		public static final int ID_TRADE = 225;
-		public static final int ID_UACUTE_L = 226;
-		public static final int ID_UACUTE_U = 227;
-		public static final int ID_UARR_L = 228;
-		public static final int ID_UARR_U = 229;
-		public static final int ID_UCIRC_L = 230;
-		public static final int ID_UCIRC_U = 231;
-		public static final int ID_UGRAVE_L = 232;
-		public static final int ID_UGRAVE_U = 233;
-		public static final int ID_UML = 234;
-		public static final int ID_UPSIH = 235;
-		public static final int ID_UPSILON_L = 236;
-		public static final int ID_UPSILON_U = 237;
-		public static final int ID_UUML_L = 238;
-		public static final int ID_UUML_U = 239;
-		public static final int ID_WEIERP = 240;
-		public static final int ID_XI_L = 241;
-		public static final int ID_XI_U = 242;
-		public static final int ID_YACUTE_L = 243;
-		public static final int ID_YACUTE_U = 244;
-		public static final int ID_YEN = 245;
-		public static final int ID_YUML_L = 246;
-		public static final int ID_YUML_U = 247;
-		public static final int ID_ZETA_L = 248;
-		public static final int ID_ZETA_U = 249;
-		public static final int ID_ZWJ = 250;
-		public static final int ID_ZWNJ = 251;
-
-		public static int getNumOfIds() {
-			if (numofids != -1)
-				return numofids;
-
-			// NOTE: If the reflection is too slow, this method should
-			// just return the literal value, like 252.
-			// -- 5/24/2001
-			Class clazz = Ids.class;
-			Field[] fields = clazz.getFields();
-			numofids = 0;
-			for (int i = 0; i < fields.length; i++) {
-				String name = fields[i].getName();
-				if (name.startsWith("ID_"))//$NON-NLS-1$
-					numofids++;
-			}
-			return numofids;
-		}
-
-		// chache the result of the reflection.
-		private static int numofids = -1;
-	}
-
-	private static String[] names = null;
-
-	static {
-		names = new String[Ids.getNumOfIds()];
-		names[Ids.ID_AACUTE_L] = AACUTE_L;
-		names[Ids.ID_AACUTE_U] = AACUTE_U;
-		names[Ids.ID_ACIRC_L] = ACIRC_L;
-		names[Ids.ID_ACIRC_U] = ACIRC_U;
-		names[Ids.ID_ACUTE] = ACUTE;
-		names[Ids.ID_AELIG_L] = AELIG_L;
-		names[Ids.ID_AELIG_U] = AELIG_U;
-		names[Ids.ID_AGRAVE_L] = AGRAVE_L;
-		names[Ids.ID_AGRAVE_U] = AGRAVE_U;
-		names[Ids.ID_ALEFSYM] = ALEFSYM;
-		names[Ids.ID_ALPHA_L] = ALPHA_L;
-		names[Ids.ID_ALPHA_U] = ALPHA_U;
-		names[Ids.ID_AMP] = AMP;
-		names[Ids.ID_AND] = AND;
-		names[Ids.ID_ANG] = ANG;
-		names[Ids.ID_ARING_L] = ARING_L;
-		names[Ids.ID_ARING_U] = ARING_U;
-		names[Ids.ID_ASYMP] = ASYMP;
-		names[Ids.ID_ATILDE_L] = ATILDE_L;
-		names[Ids.ID_ATILDE_U] = ATILDE_U;
-		names[Ids.ID_AUML_L] = AUML_L;
-		names[Ids.ID_AUML_U] = AUML_U;
-		names[Ids.ID_BDQUO] = BDQUO;
-		names[Ids.ID_BETA_L] = BETA_L;
-		names[Ids.ID_BETA_U] = BETA_U;
-		names[Ids.ID_BRVBAR] = BRVBAR;
-		names[Ids.ID_BULL] = BULL;
-		names[Ids.ID_CAP] = CAP;
-		names[Ids.ID_CCEDIL_L] = CCEDIL_L;
-		names[Ids.ID_CCEDIL_U] = CCEDIL_U;
-		names[Ids.ID_CEDIL] = CEDIL;
-		names[Ids.ID_CENT] = CENT;
-		names[Ids.ID_CHI_L] = CHI_L;
-		names[Ids.ID_CHI_U] = CHI_U;
-		names[Ids.ID_CIRC] = CIRC;
-		names[Ids.ID_CLUBS] = CLUBS;
-		names[Ids.ID_CONG] = CONG;
-		names[Ids.ID_COPY] = COPY;
-		names[Ids.ID_CRARR] = CRARR;
-		names[Ids.ID_CUP] = CUP;
-		names[Ids.ID_CURREN] = CURREN;
-		names[Ids.ID_DAGGER_L] = DAGGER_L;
-		names[Ids.ID_DAGGER_U] = DAGGER_U;
-		names[Ids.ID_DARR_L] = DARR_L;
-		names[Ids.ID_DARR_U] = DARR_U;
-		names[Ids.ID_DEG] = DEG;
-		names[Ids.ID_DELTA_L] = DELTA_L;
-		names[Ids.ID_DELTA_U] = DELTA_U;
-		names[Ids.ID_DIAMS] = DIAMS;
-		names[Ids.ID_DIVIDE] = DIVIDE;
-		names[Ids.ID_EACUTE_L] = EACUTE_L;
-		names[Ids.ID_EACUTE_U] = EACUTE_U;
-		names[Ids.ID_ECIRC_L] = ECIRC_L;
-		names[Ids.ID_ECIRC_U] = ECIRC_U;
-		names[Ids.ID_EGRAVE_L] = EGRAVE_L;
-		names[Ids.ID_EGRAVE_U] = EGRAVE_U;
-		names[Ids.ID_EMPTY] = EMPTY;
-		names[Ids.ID_EMSP] = EMSP;
-		names[Ids.ID_ENSP] = ENSP;
-		names[Ids.ID_EPSILON_L] = EPSILON_L;
-		names[Ids.ID_EPSILON_U] = EPSILON_U;
-		names[Ids.ID_EQUIV] = EQUIV;
-		names[Ids.ID_ETA_L] = ETA_L;
-		names[Ids.ID_ETA_U] = ETA_U;
-		names[Ids.ID_ETH_L] = ETH_L;
-		names[Ids.ID_ETH_U] = ETH_U;
-		names[Ids.ID_EUML_L] = EUML_L;
-		names[Ids.ID_EUML_U] = EUML_U;
-		names[Ids.ID_EURO] = EURO;
-		names[Ids.ID_EXIST] = EXIST;
-		names[Ids.ID_FNOF] = FNOF;
-		names[Ids.ID_FORALL] = FORALL;
-		names[Ids.ID_FRAC12] = FRAC12;
-		names[Ids.ID_FRAC14] = FRAC14;
-		names[Ids.ID_FRAC34] = FRAC34;
-		names[Ids.ID_FRASL] = FRASL;
-		names[Ids.ID_GAMMA_L] = GAMMA_L;
-		names[Ids.ID_GAMMA_U] = GAMMA_U;
-		names[Ids.ID_GE] = GE;
-		names[Ids.ID_GT] = GT;
-		names[Ids.ID_HARR_L] = HARR_L;
-		names[Ids.ID_HARR_U] = HARR_U;
-		names[Ids.ID_HEARTS] = HEARTS;
-		names[Ids.ID_HELLIP] = HELLIP;
-		names[Ids.ID_IACUTE_L] = IACUTE_L;
-		names[Ids.ID_IACUTE_U] = IACUTE_U;
-		names[Ids.ID_ICIRC_L] = ICIRC_L;
-		names[Ids.ID_ICIRC_U] = ICIRC_U;
-		names[Ids.ID_IEXCL] = IEXCL;
-		names[Ids.ID_IGRAVE_L] = IGRAVE_L;
-		names[Ids.ID_IGRAVE_U] = IGRAVE_U;
-		names[Ids.ID_IMAGE] = IMAGE;
-		names[Ids.ID_INFIN] = INFIN;
-		names[Ids.ID_INT] = INT;
-		names[Ids.ID_IOTA_L] = IOTA_L;
-		names[Ids.ID_IOTA_U] = IOTA_U;
-		names[Ids.ID_IQUEST] = IQUEST;
-		names[Ids.ID_ISIN] = ISIN;
-		names[Ids.ID_IUML_L] = IUML_L;
-		names[Ids.ID_IUML_U] = IUML_U;
-		names[Ids.ID_KAPPA_L] = KAPPA_L;
-		names[Ids.ID_KAPPA_U] = KAPPA_U;
-		names[Ids.ID_LAMBDA_L] = LAMBDA_L;
-		names[Ids.ID_LAMBDA_U] = LAMBDA_U;
-		names[Ids.ID_LANG] = LANG;
-		names[Ids.ID_LAQUO] = LAQUO;
-		names[Ids.ID_LARR_L] = LARR_L;
-		names[Ids.ID_LARR_U] = LARR_U;
-		names[Ids.ID_LCEIL] = LCEIL;
-		names[Ids.ID_LDQUO] = LDQUO;
-		names[Ids.ID_LE] = LE;
-		names[Ids.ID_LFLOOR] = LFLOOR;
-		names[Ids.ID_LOWAST] = LOWAST;
-		names[Ids.ID_LOZ] = LOZ;
-		names[Ids.ID_LRM] = LRM;
-		names[Ids.ID_LSAQUO] = LSAQUO;
-		names[Ids.ID_LSQUO] = LSQUO;
-		names[Ids.ID_LT] = LT;
-		names[Ids.ID_MACR] = MACR;
-		names[Ids.ID_MDASH] = MDASH;
-		names[Ids.ID_MICRO] = MICRO;
-		names[Ids.ID_MIDDOT] = MIDDOT;
-		names[Ids.ID_MINUS] = MINUS;
-		names[Ids.ID_MU_L] = MU_L;
-		names[Ids.ID_MU_U] = MU_U;
-		names[Ids.ID_NABLA] = NABLA;
-		names[Ids.ID_NBSP] = NBSP;
-		names[Ids.ID_NDASH] = NDASH;
-		names[Ids.ID_NE] = NE;
-		names[Ids.ID_NI] = NI;
-		names[Ids.ID_NOT] = NOT;
-		names[Ids.ID_NOTIN] = NOTIN;
-		names[Ids.ID_NSUB] = NSUB;
-		names[Ids.ID_NTILDE_L] = NTILDE_L;
-		names[Ids.ID_NTILDE_U] = NTILDE_U;
-		names[Ids.ID_NU_L] = NU_L;
-		names[Ids.ID_NU_U] = NU_U;
-		names[Ids.ID_OACUTE_L] = OACUTE_L;
-		names[Ids.ID_OACUTE_U] = OACUTE_U;
-		names[Ids.ID_OCIRC_L] = OCIRC_L;
-		names[Ids.ID_OCIRC_U] = OCIRC_U;
-		names[Ids.ID_OELIG_L] = OELIG_L;
-		names[Ids.ID_OELIG_U] = OELIG_U;
-		names[Ids.ID_OGRAVE_L] = OGRAVE_L;
-		names[Ids.ID_OGRAVE_U] = OGRAVE_U;
-		names[Ids.ID_OLINE] = OLINE;
-		names[Ids.ID_OMEGA_L] = OMEGA_L;
-		names[Ids.ID_OMEGA_U] = OMEGA_U;
-		names[Ids.ID_OMICRON_L] = OMICRON_L;
-		names[Ids.ID_OMICRON_U] = OMICRON_U;
-		names[Ids.ID_OPLUS] = OPLUS;
-		names[Ids.ID_OR] = OR;
-		names[Ids.ID_ORDF] = ORDF;
-		names[Ids.ID_ORDM] = ORDM;
-		names[Ids.ID_OSLASH_L] = OSLASH_L;
-		names[Ids.ID_OSLASH_U] = OSLASH_U;
-		names[Ids.ID_OTILDE_L] = OTILDE_L;
-		names[Ids.ID_OTILDE_U] = OTILDE_U;
-		names[Ids.ID_OTIMES] = OTIMES;
-		names[Ids.ID_OUML_L] = OUML_L;
-		names[Ids.ID_OUML_U] = OUML_U;
-		names[Ids.ID_PARA] = PARA;
-		names[Ids.ID_PART] = PART;
-		names[Ids.ID_PERMIL] = PERMIL;
-		names[Ids.ID_PERP] = PERP;
-		names[Ids.ID_PHI_L] = PHI_L;
-		names[Ids.ID_PHI_U] = PHI_U;
-		names[Ids.ID_PIV] = PIV;
-		names[Ids.ID_PI_L] = PI_L;
-		names[Ids.ID_PI_U] = PI_U;
-		names[Ids.ID_PLUSMN] = PLUSMN;
-		names[Ids.ID_POUND] = POUND;
-		names[Ids.ID_PRIME_L] = PRIME_L;
-		names[Ids.ID_PRIME_U] = PRIME_U;
-		names[Ids.ID_PROD] = PROD;
-		names[Ids.ID_PROP] = PROP;
-		names[Ids.ID_PSI_L] = PSI_L;
-		names[Ids.ID_PSI_U] = PSI_U;
-		names[Ids.ID_QUOT] = QUOT;
-		names[Ids.ID_RADIC] = RADIC;
-		names[Ids.ID_RANG] = RANG;
-		names[Ids.ID_RAQUO] = RAQUO;
-		names[Ids.ID_RARR_L] = RARR_L;
-		names[Ids.ID_RARR_U] = RARR_U;
-		names[Ids.ID_RCEIL] = RCEIL;
-		names[Ids.ID_RDQUO] = RDQUO;
-		names[Ids.ID_REAL] = REAL;
-		names[Ids.ID_REG] = REG;
-		names[Ids.ID_RFLOOR] = RFLOOR;
-		names[Ids.ID_RHO_L] = RHO_L;
-		names[Ids.ID_RHO_U] = RHO_U;
-		names[Ids.ID_RLM] = RLM;
-		names[Ids.ID_RSAQUO] = RSAQUO;
-		names[Ids.ID_RSQUO] = RSQUO;
-		names[Ids.ID_SBQUO] = SBQUO;
-		names[Ids.ID_SCARON_L] = SCARON_L;
-		names[Ids.ID_SCARON_U] = SCARON_U;
-		names[Ids.ID_SDOT] = SDOT;
-		names[Ids.ID_SECT] = SECT;
-		names[Ids.ID_SHY] = SHY;
-		names[Ids.ID_SIGMAF] = SIGMAF;
-		names[Ids.ID_SIGMA_L] = SIGMA_L;
-		names[Ids.ID_SIGMA_U] = SIGMA_U;
-		names[Ids.ID_SIM] = SIM;
-		names[Ids.ID_SPADES] = SPADES;
-		names[Ids.ID_SUB] = SUB;
-		names[Ids.ID_SUBE] = SUBE;
-		names[Ids.ID_SUM] = SUM;
-		names[Ids.ID_SUP] = SUP;
-		names[Ids.ID_SUP1] = SUP1;
-		names[Ids.ID_SUP2] = SUP2;
-		names[Ids.ID_SUP3] = SUP3;
-		names[Ids.ID_SUPE] = SUPE;
-		names[Ids.ID_SZLIG] = SZLIG;
-		names[Ids.ID_TAU_L] = TAU_L;
-		names[Ids.ID_TAU_U] = TAU_U;
-		names[Ids.ID_THERE4] = THERE4;
-		names[Ids.ID_THETASYM] = THETASYM;
-		names[Ids.ID_THETA_L] = THETA_L;
-		names[Ids.ID_THETA_U] = THETA_U;
-		names[Ids.ID_THINSP] = THINSP;
-		names[Ids.ID_THORN_L] = THORN_L;
-		names[Ids.ID_THORN_U] = THORN_U;
-		names[Ids.ID_TILDE] = TILDE;
-		names[Ids.ID_TIMES] = TIMES;
-		names[Ids.ID_TRADE] = TRADE;
-		names[Ids.ID_UACUTE_L] = UACUTE_L;
-		names[Ids.ID_UACUTE_U] = UACUTE_U;
-		names[Ids.ID_UARR_L] = UARR_L;
-		names[Ids.ID_UARR_U] = UARR_U;
-		names[Ids.ID_UCIRC_L] = UCIRC_L;
-		names[Ids.ID_UCIRC_U] = UCIRC_U;
-		names[Ids.ID_UGRAVE_L] = UGRAVE_L;
-		names[Ids.ID_UGRAVE_U] = UGRAVE_U;
-		names[Ids.ID_UML] = UML;
-		names[Ids.ID_UPSIH] = UPSIH;
-		names[Ids.ID_UPSILON_L] = UPSILON_L;
-		names[Ids.ID_UPSILON_U] = UPSILON_U;
-		names[Ids.ID_UUML_L] = UUML_L;
-		names[Ids.ID_UUML_U] = UUML_U;
-		names[Ids.ID_WEIERP] = WEIERP;
-		names[Ids.ID_XI_L] = XI_L;
-		names[Ids.ID_XI_U] = XI_U;
-		names[Ids.ID_YACUTE_L] = YACUTE_L;
-		names[Ids.ID_YACUTE_U] = YACUTE_U;
-		names[Ids.ID_YEN] = YEN;
-		names[Ids.ID_YUML_L] = YUML_L;
-		names[Ids.ID_YUML_U] = YUML_U;
-		names[Ids.ID_ZETA_L] = ZETA_L;
-		names[Ids.ID_ZETA_U] = ZETA_U;
-		names[Ids.ID_ZWJ] = ZWJ;
-		names[Ids.ID_ZWNJ] = ZWNJ;
-	}
-	private static char[] values = null;
-
-	static {
-		values = new char[Ids.getNumOfIds()];
-		values[Ids.ID_AACUTE_L] = 225;
-		values[Ids.ID_AACUTE_U] = 193;
-		values[Ids.ID_ACIRC_L] = 226;
-		values[Ids.ID_ACIRC_U] = 194;
-		values[Ids.ID_ACUTE] = 180;
-		values[Ids.ID_AELIG_L] = 230;
-		values[Ids.ID_AELIG_U] = 198;
-		values[Ids.ID_AGRAVE_L] = 224;
-		values[Ids.ID_AGRAVE_U] = 192;
-		values[Ids.ID_ALEFSYM] = 8501;
-		values[Ids.ID_ALPHA_L] = 945;
-		values[Ids.ID_ALPHA_U] = 913;
-		values[Ids.ID_AMP] = 38;
-		values[Ids.ID_AND] = 8743;
-		values[Ids.ID_ANG] = 8736;
-		values[Ids.ID_ARING_L] = 229;
-		values[Ids.ID_ARING_U] = 197;
-		values[Ids.ID_ASYMP] = 8776;
-		values[Ids.ID_ATILDE_L] = 227;
-		values[Ids.ID_ATILDE_U] = 195;
-		values[Ids.ID_AUML_L] = 228;
-		values[Ids.ID_AUML_U] = 196;
-		values[Ids.ID_BDQUO] = 8222;
-		values[Ids.ID_BETA_L] = 946;
-		values[Ids.ID_BETA_U] = 914;
-		values[Ids.ID_BRVBAR] = 166;
-		values[Ids.ID_BULL] = 8226;
-		values[Ids.ID_CAP] = 8745;
-		values[Ids.ID_CCEDIL_L] = 231;
-		values[Ids.ID_CCEDIL_U] = 199;
-		values[Ids.ID_CEDIL] = 184;
-		values[Ids.ID_CENT] = 162;
-		values[Ids.ID_CHI_L] = 967;
-		values[Ids.ID_CHI_U] = 935;
-		values[Ids.ID_CIRC] = 710;
-		values[Ids.ID_CLUBS] = 9827;
-		values[Ids.ID_CONG] = 8773;
-		values[Ids.ID_COPY] = 169;
-		values[Ids.ID_CRARR] = 8629;
-		values[Ids.ID_CUP] = 8746;
-		values[Ids.ID_CURREN] = 164;
-		values[Ids.ID_DAGGER_L] = 8224;
-		values[Ids.ID_DAGGER_U] = 8225;
-		values[Ids.ID_DARR_L] = 8595;
-		values[Ids.ID_DARR_U] = 8659;
-		values[Ids.ID_DEG] = 176;
-		values[Ids.ID_DELTA_L] = 948;
-		values[Ids.ID_DELTA_U] = 916;
-		values[Ids.ID_DIAMS] = 9830;
-		values[Ids.ID_DIVIDE] = 247;
-		values[Ids.ID_EACUTE_L] = 233;
-		values[Ids.ID_EACUTE_U] = 201;
-		values[Ids.ID_ECIRC_L] = 234;
-		values[Ids.ID_ECIRC_U] = 202;
-		values[Ids.ID_EGRAVE_L] = 232;
-		values[Ids.ID_EGRAVE_U] = 200;
-		values[Ids.ID_EMPTY] = 8709;
-		values[Ids.ID_EMSP] = 8195;
-		values[Ids.ID_ENSP] = 8194;
-		values[Ids.ID_EPSILON_L] = 949;
-		values[Ids.ID_EPSILON_U] = 917;
-		values[Ids.ID_EQUIV] = 8801;
-		values[Ids.ID_ETA_L] = 951;
-		values[Ids.ID_ETA_U] = 919;
-		values[Ids.ID_ETH_L] = 240;
-		values[Ids.ID_ETH_U] = 208;
-		values[Ids.ID_EUML_L] = 235;
-		values[Ids.ID_EUML_U] = 203;
-		values[Ids.ID_EURO] = 8364;
-		values[Ids.ID_EXIST] = 8707;
-		values[Ids.ID_FNOF] = 402;
-		values[Ids.ID_FORALL] = 8704;
-		values[Ids.ID_FRAC12] = 189;
-		values[Ids.ID_FRAC14] = 188;
-		values[Ids.ID_FRAC34] = 190;
-		values[Ids.ID_FRASL] = 8260;
-		values[Ids.ID_GAMMA_L] = 947;
-		values[Ids.ID_GAMMA_U] = 915;
-		values[Ids.ID_GE] = 8805;
-		values[Ids.ID_GT] = 62;
-		values[Ids.ID_HARR_L] = 8596;
-		values[Ids.ID_HARR_U] = 8660;
-		values[Ids.ID_HEARTS] = 9829;
-		values[Ids.ID_HELLIP] = 8230;
-		values[Ids.ID_IACUTE_L] = 237;
-		values[Ids.ID_IACUTE_U] = 205;
-		values[Ids.ID_ICIRC_L] = 238;
-		values[Ids.ID_ICIRC_U] = 206;
-		values[Ids.ID_IEXCL] = 161;
-		values[Ids.ID_IGRAVE_L] = 236;
-		values[Ids.ID_IGRAVE_U] = 204;
-		values[Ids.ID_IMAGE] = 8465;
-		values[Ids.ID_INFIN] = 8734;
-		values[Ids.ID_INT] = 8747;
-		values[Ids.ID_IOTA_L] = 953;
-		values[Ids.ID_IOTA_U] = 921;
-		values[Ids.ID_IQUEST] = 191;
-		values[Ids.ID_ISIN] = 8712;
-		values[Ids.ID_IUML_L] = 239;
-		values[Ids.ID_IUML_U] = 207;
-		values[Ids.ID_KAPPA_L] = 954;
-		values[Ids.ID_KAPPA_U] = 922;
-		values[Ids.ID_LAMBDA_L] = 955;
-		values[Ids.ID_LAMBDA_U] = 923;
-		values[Ids.ID_LANG] = 9001;
-		values[Ids.ID_LAQUO] = 171;
-		values[Ids.ID_LARR_L] = 8592;
-		values[Ids.ID_LARR_U] = 8656;
-		values[Ids.ID_LCEIL] = 8968;
-		values[Ids.ID_LDQUO] = 8220;
-		values[Ids.ID_LE] = 8804;
-		values[Ids.ID_LFLOOR] = 8970;
-		values[Ids.ID_LOWAST] = 8727;
-		values[Ids.ID_LOZ] = 9674;
-		values[Ids.ID_LRM] = 8206;
-		values[Ids.ID_LSAQUO] = 8249;
-		values[Ids.ID_LSQUO] = 8216;
-		values[Ids.ID_LT] = 60;
-		values[Ids.ID_MACR] = 175;
-		values[Ids.ID_MDASH] = 8212;
-		values[Ids.ID_MICRO] = 181;
-		values[Ids.ID_MIDDOT] = 183;
-		values[Ids.ID_MINUS] = 8722;
-		values[Ids.ID_MU_L] = 956;
-		values[Ids.ID_MU_U] = 924;
-		values[Ids.ID_NABLA] = 8711;
-		values[Ids.ID_NBSP] = 160;
-		values[Ids.ID_NDASH] = 8211;
-		values[Ids.ID_NE] = 8800;
-		values[Ids.ID_NI] = 8715;
-		values[Ids.ID_NOT] = 172;
-		values[Ids.ID_NOTIN] = 8713;
-		values[Ids.ID_NSUB] = 8836;
-		values[Ids.ID_NTILDE_L] = 241;
-		values[Ids.ID_NTILDE_U] = 209;
-		values[Ids.ID_NU_L] = 957;
-		values[Ids.ID_NU_U] = 925;
-		values[Ids.ID_OACUTE_L] = 243;
-		values[Ids.ID_OACUTE_U] = 211;
-		values[Ids.ID_OCIRC_L] = 244;
-		values[Ids.ID_OCIRC_U] = 212;
-		values[Ids.ID_OELIG_L] = 339;
-		values[Ids.ID_OELIG_U] = 338;
-		values[Ids.ID_OGRAVE_L] = 242;
-		values[Ids.ID_OGRAVE_U] = 210;
-		values[Ids.ID_OLINE] = 8254;
-		values[Ids.ID_OMEGA_L] = 969;
-		values[Ids.ID_OMEGA_U] = 937;
-		values[Ids.ID_OMICRON_L] = 959;
-		values[Ids.ID_OMICRON_U] = 927;
-		values[Ids.ID_OPLUS] = 8853;
-		values[Ids.ID_OR] = 8744;
-		values[Ids.ID_ORDF] = 170;
-		values[Ids.ID_ORDM] = 186;
-		values[Ids.ID_OSLASH_L] = 248;
-		values[Ids.ID_OSLASH_U] = 216;
-		values[Ids.ID_OTILDE_L] = 245;
-		values[Ids.ID_OTILDE_U] = 213;
-		values[Ids.ID_OTIMES] = 8855;
-		values[Ids.ID_OUML_L] = 246;
-		values[Ids.ID_OUML_U] = 214;
-		values[Ids.ID_PARA] = 182;
-		values[Ids.ID_PART] = 8706;
-		values[Ids.ID_PERMIL] = 8240;
-		values[Ids.ID_PERP] = 8869;
-		values[Ids.ID_PHI_L] = 966;
-		values[Ids.ID_PHI_U] = 934;
-		values[Ids.ID_PIV] = 982;
-		values[Ids.ID_PI_L] = 960;
-		values[Ids.ID_PI_U] = 928;
-		values[Ids.ID_PLUSMN] = 177;
-		values[Ids.ID_POUND] = 163;
-		values[Ids.ID_PRIME_L] = 8242;
-		values[Ids.ID_PRIME_U] = 8243;
-		values[Ids.ID_PROD] = 8719;
-		values[Ids.ID_PROP] = 8733;
-		values[Ids.ID_PSI_L] = 968;
-		values[Ids.ID_PSI_U] = 936;
-		values[Ids.ID_QUOT] = 34;
-		values[Ids.ID_RADIC] = 8730;
-		values[Ids.ID_RANG] = 9002;
-		values[Ids.ID_RAQUO] = 187;
-		values[Ids.ID_RARR_L] = 8594;
-		values[Ids.ID_RARR_U] = 8658;
-		values[Ids.ID_RCEIL] = 8969;
-		values[Ids.ID_RDQUO] = 8221;
-		values[Ids.ID_REAL] = 8476;
-		values[Ids.ID_REG] = 174;
-		values[Ids.ID_RFLOOR] = 8971;
-		values[Ids.ID_RHO_L] = 961;
-		values[Ids.ID_RHO_U] = 929;
-		values[Ids.ID_RLM] = 8207;
-		values[Ids.ID_RSAQUO] = 8250;
-		values[Ids.ID_RSQUO] = 8217;
-		values[Ids.ID_SBQUO] = 8218;
-		values[Ids.ID_SCARON_L] = 353;
-		values[Ids.ID_SCARON_U] = 352;
-		values[Ids.ID_SDOT] = 8901;
-		values[Ids.ID_SECT] = 167;
-		values[Ids.ID_SHY] = 173;
-		values[Ids.ID_SIGMAF] = 962;
-		values[Ids.ID_SIGMA_L] = 963;
-		values[Ids.ID_SIGMA_U] = 931;
-		values[Ids.ID_SIM] = 8764;
-		values[Ids.ID_SPADES] = 9824;
-		values[Ids.ID_SUB] = 8834;
-		values[Ids.ID_SUBE] = 8838;
-		values[Ids.ID_SUM] = 8721;
-		values[Ids.ID_SUP] = 8835;
-		values[Ids.ID_SUP1] = 185;
-		values[Ids.ID_SUP2] = 178;
-		values[Ids.ID_SUP3] = 179;
-		values[Ids.ID_SUPE] = 8839;
-		values[Ids.ID_SZLIG] = 223;
-		values[Ids.ID_TAU_L] = 964;
-		values[Ids.ID_TAU_U] = 932;
-		values[Ids.ID_THERE4] = 8756;
-		values[Ids.ID_THETASYM] = 977;
-		values[Ids.ID_THETA_L] = 952;
-		values[Ids.ID_THETA_U] = 920;
-		values[Ids.ID_THINSP] = 8201;
-		values[Ids.ID_THORN_L] = 254;
-		values[Ids.ID_THORN_U] = 222;
-		values[Ids.ID_TILDE] = 732;
-		values[Ids.ID_TIMES] = 215;
-		values[Ids.ID_TRADE] = 8482;
-		values[Ids.ID_UACUTE_L] = 250;
-		values[Ids.ID_UACUTE_U] = 218;
-		values[Ids.ID_UARR_L] = 8593;
-		values[Ids.ID_UARR_U] = 8657;
-		values[Ids.ID_UCIRC_L] = 251;
-		values[Ids.ID_UCIRC_U] = 219;
-		values[Ids.ID_UGRAVE_L] = 249;
-		values[Ids.ID_UGRAVE_U] = 217;
-		values[Ids.ID_UML] = 168;
-		values[Ids.ID_UPSIH] = 978;
-		values[Ids.ID_UPSILON_L] = 965;
-		values[Ids.ID_UPSILON_U] = 933;
-		values[Ids.ID_UUML_L] = 252;
-		values[Ids.ID_UUML_U] = 220;
-		values[Ids.ID_WEIERP] = 8472;
-		values[Ids.ID_XI_L] = 958;
-		values[Ids.ID_XI_U] = 926;
-		values[Ids.ID_YACUTE_L] = 253;
-		values[Ids.ID_YACUTE_U] = 221;
-		values[Ids.ID_YEN] = 165;
-		values[Ids.ID_YUML_L] = 255;
-		values[Ids.ID_YUML_U] = 376;
-		values[Ids.ID_ZETA_L] = 950;
-		values[Ids.ID_ZETA_U] = 918;
-		values[Ids.ID_ZWJ] = 8205;
-		values[Ids.ID_ZWNJ] = 8204;
-	}
-
-	/**
-	 */
-	public EntityCollection() {
-		super(names, STRICT_CASE);
-	}
-
-	/**
-	 * Create an entity declaration.
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 * @param attrName java.lang.String
-	 */
-	protected CMNode create(String entityName) {
-		int id = getID(entityName);
-		if (id == ID_UNKNOWN)
-			return null;
-
-		String value = String.valueOf(values[id]);
-		HTMLEntityDeclImpl dec = new HTMLEntityDeclImpl(entityName, value);
-
-		return dec;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HCMDocImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HCMDocImpl.java
deleted file mode 100644
index 0ba233a..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HCMDocImpl.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-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;
-
-/**
- * CMDocument implementation for the HTML.
- */
-class HCMDocImpl extends CMNodeImpl implements HTMLCMDocument {
-
-	/** Namespace for all names of elements, entities and attributes. */
-	private CMNamespaceImpl namespace = null;
-	private ElementCollection elements = null;
-	private EntityCollection entities = null;
-	private AttributeCollection attributes = null;
-
-	/**
-	 */
-	public HCMDocImpl(String docTypeName, CMNamespaceImpl targetNamespace) {
-		super(docTypeName);
-		namespace = targetNamespace;
-		attributes = new AttributeCollection();
-		elements = new ElementCollection(attributes);
-		entities = new EntityCollection();
-	}
-
-	AttributeCollection getAttributes() {
-		return attributes;
-	}
-
-	public HTMLElementDeclaration getElementDeclaration(String elementName) {
-		if (elements == null)
-			return null;
-		return (HTMLElementDeclaration) elements.getNamedItem(elementName);
-	}
-
-	/**
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMDocument
-	 */
-	public CMNamedNodeMap getElements() {
-		return elements;
-	}
-
-	/**
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMDocument
-	 */
-	public CMNamedNodeMap getEntities() {
-		return entities;
-	}
-
-	public HTMLEntityDeclaration getEntityDeclaration(String entityName) {
-		if (entities == null)
-			return null;
-		return (HTMLEntityDeclaration) entities.getNamedItem(entityName);
-	}
-
-	/**
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMDocument
-	 */
-	public CMNamespace getNamespace() {
-		return namespace;
-	}
-
-	/**
-	 * @see CMNode
-	 */
-	public int getNodeType() {
-		return CMNode.DOCUMENT;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttrDeclImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttrDeclImpl.java
deleted file mode 100644
index ce938e3..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttrDeclImpl.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-import java.util.Enumeration;
-import java.util.Vector;
-
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * Implementation class of {@link <code>HTMLAttributeDeclaration</code>} interface.<br>
- */
-class HTMLAttrDeclImpl extends CMNodeImpl implements HTMLAttributeDeclaration {
-
-	private HTMLCMDataTypeImpl type = null;
-	private int usage = 0;
-
-	/**
-	 */
-	public HTMLAttrDeclImpl(String attrName, HTMLCMDataTypeImpl valueType, int valueUsage) {
-		super(attrName);
-		this.type = valueType;
-
-		switch (valueUsage) {
-			case OPTIONAL :
-			case REQUIRED :
-			case FIXED :
-			case PROHIBITED :
-				this.usage = valueUsage;
-				break;
-			default :
-				// should warn...
-				this.usage = OPTIONAL; // fall back
-				break;
-		}
-	}
-
-	/**
-	 * getAttrName method
-	 * @return java.lang.String
-	 */
-	public String getAttrName() {
-		return getNodeName();
-	}
-
-	/**
-	 * getAttrType method
-	 * @return CMDataType
-	 */
-	public CMDataType getAttrType() {
-		return type;
-	}
-
-	/**
-	 * @deprecated by superinterface
-	 */
-	public String getDefaultValue() {
-		if (type.getImpliedValueKind() != CMDataType.IMPLIED_VALUE_DEFAULT)
-			return null;
-		return type.getImpliedValue();
-	}
-
-	/**
-	 * @deprecated by superinterface
-	 */
-	public Enumeration getEnumAttr() {
-		Vector v = new Vector(Arrays.asList(type.getEnumeratedValues()));
-		return v.elements();
-	}
-
-	/**
-	 * getNodeType method
-	 * @return int
-	 *
-	 * Returns one of :
-	 * ELEMENT_DECLARATION, ATTRIBUTE_DECLARATION, GROUP, ENTITY_DECLARATION.
-	 */
-	public int getNodeType() {
-		return CMNode.ATTRIBUTE_DECLARATION;
-	}
-
-	/**
-	 * @return int
-	 */
-	public int getUsage() {
-		return usage;
-	}
-
-	/**
-	 */
-	public boolean supports(String propertyName) {
-		if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE))
-			return true;
-		else if (propertyName.equals(HTMLCMProperties.IS_SCRIPTABLE))
-			return true;
-		return super.supports(propertyName);
-	}
-
-	/**
-	 */
-	public Object getProperty(String propertyName) {
-		if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE))
-			return new Boolean(true);
-		else if (propertyName.equals(HTMLCMProperties.IS_SCRIPTABLE)) {
-			return getAttrType().getDataTypeName() == HTMLCMDataType.SCRIPT ? new Boolean(true) : new Boolean(false);
-		}
-		return super.getProperty(propertyName);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttributeDeclaration.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttributeDeclaration.java
deleted file mode 100644
index 675dc59..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttributeDeclaration.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-
-
-
-/**
- * This interface is intended to be a public interface which has
- * interfaces defined in both of {@link <code>CMAttributeDeclaration</code>}
- * and {@link <code>HTMLCMNode</code>}.<br>
- */
-public interface HTMLAttributeDeclaration extends CMAttributeDeclaration {
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataType.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataType.java
deleted file mode 100644
index fba0b86..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataType.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-
-/**
- * HTML extension for data types.
- */
-public interface HTMLCMDataType extends CMDataType {
-
-	/** Boolean; it should be defined in CMDataType. */
-	public static final String BOOLEAN = "BOOLEAN"; //$NON-NLS-1$
-	public static final String COLOR = "COLOR"; //$NON-NLS-1$
-	public static final String EVENT = "EVENT"; //$NON-NLS-1$
-	public static final String IDREFS = "IDREFS"; //$NON-NLS-1$
-	/** Name; it should be defined in CMDataType. */
-	public static final String NAME = "NAME"; //$NON-NLS-1$
-	// Following types are just aliases.
-	/** %Character; == CDATA */
-	public static final String CHARACTER = CMDataType.CDATA;
-	/** %Charset; == CDATA */
-	public static final String CHARSET = CMDataType.CDATA;
-	/** %Charsets; == CDATA */
-	public static final String CHARSETS = CMDataType.CDATA;
-	/** %ContentType; == CDATA */
-	public static final String CONTENT_TYPE = CMDataType.CDATA;
-	/** %Coords; == CDATA */
-	public static final String COORDS = CMDataType.CDATA;
-	/** %Datetime; == CDATA */
-	public static final String DATETIME = CMDataType.CDATA;
-	/** %FrameTarget; == CDATA */
-	public static final String FRAME_TARGET = CMDataType.CDATA;
-	/** %LanguageCode; == NAME */
-	public static final String LANGUAGE_CODE = NAME;
-	/** %Length; == CDATA */
-	public static final String LENGTH = CMDataType.CDATA;
-	/** %LinkTypes; == CDATA */
-	public static final String LINK_TYPES = CMDataType.CDATA;
-	/** %LIStyle; == CDATA */
-	public static final String LI_STYLE = CMDataType.CDATA;
-	/** %MediaDesc; == CDATA */
-	public static final String MEDIA_DESC = CMDataType.CDATA;
-	/** %MultiLength; == CDATA */
-	public static final String MULTI_LENGTH = CMDataType.CDATA;
-	/** %OLStyle; == CDATA */
-	public static final String OL_STYLE = CMDataType.CDATA;
-	/** %Pixles; == CDATA */
-	public static final String PIXELS = CMDataType.CDATA;
-	/** %Script; == EVENT */
-	public static final String SCRIPT = EVENT;
-	/** %StyleSheet; == EVENT */
-	public static final String STYLE_SHEET = CMDataType.CDATA;
-	/** %Text; == CDATA */
-	public static final String TEXT = CMDataType.CDATA;
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataTypeImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataTypeImpl.java
deleted file mode 100644
index 6e50c74..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataTypeImpl.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-
-
-/**
- */
-class HTMLCMDataTypeImpl extends CMNodeImpl implements HTMLCMDataType {
-
-	private int impliedValueKind = IMPLIED_VALUE_NONE;
-	private String impliedValue = null;
-	private final static String[] emptyArray = new String[0];
-	private String[] enumValues = emptyArray;
-	private String instanceValue = null;
-
-	/**
-	 * HTMLCMDataTypeImpl constructor comment.
-	 * @param nm java.lang.String
-	 */
-	public HTMLCMDataTypeImpl(String typeName) {
-		super(typeName);
-	}
-
-	/**
-	 * HTMLCMDataTypeImpl constructor comment.
-	 * @param nm java.lang.String
-	 */
-	public HTMLCMDataTypeImpl(String typeName, String instanceValue) {
-		super(typeName);
-		this.instanceValue = instanceValue;
-	}
-
-	/**
-	 * 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 instanceValue;
-	}
-
-	/**
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMDataType
-	 */
-	public String getDataTypeName() {
-		return getNodeName();
-	}
-
-	/**
-	 * getTypeName method
-	 * @return java.lang.String[]
-	 *
-	 */
-	public String[] getEnumeratedValues() {
-		return enumValues;
-	}
-
-	/**
-	 * getTypeName method
-	 * @return java.lang.String  
-	 *
-	 * Returns the implied value or null if none exists.
-	 */
-	public String getImpliedValue() {
-		return impliedValue;
-	}
-
-	/**
-	 * getImpliedValueKind method
-	 * @return int
-	 *
-	 * Returns one of :
-	 * IMPLIED_VALUE_NONE, IMPLIED_VALUE_FIXED, IMPLIED_VALUE_DEFAULT.
-	 */
-	public int getImpliedValueKind() {
-		return impliedValueKind;
-	}
-
-	/**
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 */
-	public int getNodeType() {
-		return CMNode.DATA_TYPE;
-	}
-
-	/**
-	 */
-	void setEnumValues(String[] values) {
-		enumValues = new String[values.length];
-		for (int i = 0; i < values.length; i++) {
-			enumValues[i] = values[i];
-		}
-	}
-
-	/**
-	 * package scope.
-	 */
-	void setImpliedValue(int kind, String value) {
-		switch (kind) {
-			case IMPLIED_VALUE_FIXED :
-			case IMPLIED_VALUE_DEFAULT :
-				impliedValueKind = kind;
-				impliedValue = value;
-				break;
-			case IMPLIED_VALUE_NONE :
-			default :
-				impliedValueKind = IMPLIED_VALUE_NONE;
-				impliedValue = null; // maybe a null string?
-				break;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocument.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocument.java
deleted file mode 100644
index af6c7d9..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocument.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.wst.html.core.internal.contentmodel;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-
-
-
-/**
- * HTML extension for CMDocument.
- * This interface provides some short hand methods to get declarations
- * by a name.
- */
-public interface HTMLCMDocument extends CMDocument {
-
-	/**
-	 * A short hand method to get a element declaration for a HTML element.<br>
-	 * @param elementName java.lang.String
-	 */
-	HTMLElementDeclaration getElementDeclaration(String elementName);
-
-	/**
-	 * A short hand method to get a entity declaration of HTML documents.<br>
-	 * @param entityName java.lang.String
-	 */
-	HTMLEntityDeclaration getEntityDeclaration(String entityName);
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocumentFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocumentFactory.java
deleted file mode 100644
index 28316ec..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocumentFactory.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-import java.util.Hashtable;
-import java.util.List;
-
-import org.eclipse.wst.html.core.internal.contentmodel.chtml.CHCMDocImpl;
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocType;
-
-/**
- * INodeAdapter factory for HTML and JSP documents.
- */
-public final class HTMLCMDocumentFactory {
-
-	private static Hashtable cmdocs = new Hashtable();
-	private static List supportedCMtypes = Arrays.asList(new Object[]{CMDocType.HTML_DOC_TYPE, CMDocType.CHTML_DOC_TYPE, CMDocType.JSP11_DOC_TYPE, CMDocType.JSP12_DOC_TYPE, CMDocType.JSP20_DOC_TYPE, CMDocType.TAG20_DOC_TYPE});
-
-	private static JCMDocImpl jsp11doc = null;
-
-	/**
-	 * HTMLCMAdapterFactory constructor.
-	 */
-	private HTMLCMDocumentFactory() {
-		super();
-	}
-
-	/**
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMDocument
-	 * @param cmtype
-	 *            java.lang.String
-	 */
-	public static CMDocument getCMDocument(String cmtype) {
-		Object obj = cmdocs.get(cmtype);
-		if (obj == null && cmtype != null) {
-			if (supportedCMtypes.contains(cmtype)) {
-				obj = doCreateCMDocument(cmtype);
-				cmdocs.put(cmtype, obj);
-			}
-		}
-
-		return (CMDocument) obj;
-	}
-
-	private static Object doCreateCMDocument(String cmtype) {
-		if (CMDocType.HTML_DOC_TYPE.equals(cmtype)) {
-			CMNamespaceImpl h40ns = new CMNamespaceImpl(HTML40Namespace.HTML40_URI, HTML40Namespace.HTML40_TAG_PREFIX);
-			HCMDocImpl html40doc = new HCMDocImpl(CMDocType.HTML_DOC_TYPE, h40ns);
-			return html40doc;
-		}
-
-		else if (CMDocType.JSP20_DOC_TYPE.equals(cmtype)) {
-			CMNamespaceImpl j20ns = new CMNamespaceImpl(JSP20Namespace.JSP20_URI, JSP11Namespace.JSP_TAG_PREFIX);
-			JCM20DocImpl jsp20doc = new JCM20DocImpl(CMDocType.JSP20_DOC_TYPE, j20ns);
-			return jsp20doc;
-		}
-
-		else if (CMDocType.TAG20_DOC_TYPE.equals(cmtype)) {
-			CMNamespaceImpl j20ns = new CMNamespaceImpl(JSP20Namespace.JSP20_URI, JSP11Namespace.JSP_TAG_PREFIX);
-			TagCMDocImpl tag20doc = new TagCMDocImpl(CMDocType.TAG20_DOC_TYPE, j20ns);
-			return tag20doc;
-		}
-
-		else if (CMDocType.JSP11_DOC_TYPE.equals(cmtype) || CMDocType.JSP12_DOC_TYPE.equals(cmtype)) {
-			if (jsp11doc == null) {
-				CMNamespaceImpl j11ns = new CMNamespaceImpl(JSP11Namespace.JSP11_URI, JSP11Namespace.JSP_TAG_PREFIX);
-				jsp11doc = new JCMDocImpl(CMDocType.JSP11_DOC_TYPE, j11ns);
-			}
-			return jsp11doc;
-		}
-
-		else if (CMDocType.CHTML_DOC_TYPE.equals(cmtype)) {
-			CMNamespaceImpl cH40ns = new CMNamespaceImpl(HTML40Namespace.HTML40_URI, HTML40Namespace.HTML40_TAG_PREFIX);
-			CHCMDocImpl chtmldoc = new CHCMDocImpl(CMDocType.CHTML_DOC_TYPE, cH40ns);
-			return chtmldoc;
-		}
-
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMNode.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMNode.java
deleted file mode 100644
index a3623ec..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMNode.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-/**
- * In HTML Documents, name and value of an attribute/element/entity
- * should be treated ignoring theirs case.  However, in XML documents,
- * they should be distinguished with sensitiveness of their case.
- * CMNode is basically designed to represent DTDs or Schemas for XML
- * documents.  So, it doesn't have interfaces to retrieve such information.
- * However, declarations in the HTML CM should provide such information.
- * This intermediate interface is intended to provide whether ignore cases
- * or not.<br>
- */
-interface HTMLCMNode extends org.eclipse.wst.xml.core.internal.contentmodel.CMNode {
-
-	/**
-	 * Returns <code>true</code>, if declaration is for HTML attribute/element/entity.
-	 * Otherwise, returns <code>false</code>.
-	 * @return boolean
-	 */
-	boolean shouldIgnoreCase();
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElemDeclImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElemDeclImpl.java
deleted file mode 100644
index f0b1471..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElemDeclImpl.java
+++ /dev/null
@@ -1,366 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-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.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * Base class for all Hed???? classes.
- */
-abstract class HTMLElemDeclImpl extends CMContentImpl implements HTMLElementDeclaration, HTMLPropertyDeclaration {
-
-	// DTD
-	protected CMNamedNodeMapImpl attributes = null;
-	protected String typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_EMPTY;
-	/** Never access this field directly.  Instead, use getComplexTypeDefinition method. */
-	private ComplexTypeDefinition typeDefinition = null;
-	protected CMGroupImpl inclusion = null;
-	protected CMGroupImpl exclusion = null;
-	// advanced information
-	protected CMNamedNodeMap prohibitedAncestors = null;
-	protected int correctionType = CORRECT_NONE;
-	protected int formatType = FORMAT_HTML;
-	protected int layoutType = LAYOUT_NONE;
-	protected int omitType = OMIT_NONE;
-	protected boolean keepSpaces = false;
-	protected boolean indentChild = false;
-	protected ElementCollection elementCollection = null;
-	protected AttributeCollection attributeCollection = null;
-	protected final static CMNamedNodeMap EMPTY_MAP = new CMNamedNodeMap() {
-		public int getLength() {
-			return 0;
-		}
-
-		public CMNode getNamedItem(String name) {
-			return null;
-		}
-
-		public CMNode item(int index) {
-			return null;
-		}
-
-		public Iterator iterator() {
-			return new Iterator() {
-				public boolean hasNext() {
-					return false;
-				}
-
-				public Object next() {
-					return null;
-				}
-
-				public void remove() {
-				}
-			};
-		}
-	};
-
-	/**
-	 * HTMLElemDeclImpl constructor.
-	 * In the HTML DTD, an element declaration has no specification
-	 * for its occurrence.  Occurrence is specifed in content model, like
-	 * <code>(LI)+</code>.  To avoid confusion (and complexity),
-	 * occurrence of an element declaration is always 1 (it means, min = 1 and
-	 * max = 1).  Instead, occurrence of CMGroup represents actual occurrence
-	 * of the content.
-	 * <br>
-	 * @param name java.lang.String
-	 */
-	public HTMLElemDeclImpl(String elementName, ElementCollection collection) {
-		super(elementName, 1, 1);
-		elementCollection = collection;
-		attributeCollection = collection.getAttributeCollection();
-	}
-
-	/**
-	 */
-	protected abstract void createAttributeDeclarations();
-
-	private ComplexTypeDefinition createComplexTypeDefinition() {
-		if (typeDefinitionName.equals(ComplexTypeDefinitionFactory.CTYPE_CDATA) || typeDefinitionName.equals(ComplexTypeDefinitionFactory.CTYPE_EMPTY) || typeDefinitionName.equals(ComplexTypeDefinitionFactory.CTYPE_PCDATA))
-			return null;
-
-		ComplexTypeDefinitionFactory factory = ComplexTypeDefinitionFactory.getInstance();
-		if (factory == null)
-			return null; // fatal error.
-
-		ComplexTypeDefinition def = factory.createTypeDefinition(typeDefinitionName, elementCollection);
-		return def;
-	}
-
-	/**
-	 * Get an attribute declaration.
-	 */
-	public HTMLAttributeDeclaration getAttributeDeclaration(String attrName) {
-		if (attributes == null) {
-			createAttributeDeclarations();
-			if (attributes == null)
-				return null; // fail to create
-		}
-
-		CMNode cmnode = attributes.getNamedItem(attrName);
-		if (cmnode == null) {
-			return null;
-		}
-		else {
-			return (HTMLAttributeDeclaration) cmnode; // already exists.
-		}
-	}
-
-	/**
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration
-	 */
-	public CMNamedNodeMap getAttributes() {
-		if (attributes == null)
-			createAttributeDeclarations(); // lazy eval.
-		return attributes;
-	}
-
-	/**
-	 * Get an instance of complex type definition.
-	 */
-	private ComplexTypeDefinition getComplexTypeDefinition() {
-		if (typeDefinition == null)
-			typeDefinition = createComplexTypeDefinition();
-		return typeDefinition;
-	}
-
-	/**
-	 * Content.<br>
-	 * Element declarations which type is EMPTY or CDATA (maybe PCDATA)
-	 * <strong>MUST</strong> override this method and always return null.
-	 * This default implementation always tries to create a complex type definition
-	 * instance and access to it.
-	 * <br>
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration
-	 */
-	public CMContent getContent() {
-		ComplexTypeDefinition def = getComplexTypeDefinition(); // lazy eval.
-		return (def != null) ? def.getContent() : null;
-	}
-
-	/**
-	 * Content type.<br>
-	 * Element declarations which type is EMPTY or CDATA (maybe PCDATA)
-	 * <strong>MUST</strong> override this method and return an appropriate type.
-	 * This default implementation always tries to create a complex type definition
-	 * instance and access to it.
-	 * <br>
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration
-	 */
-	public int getContentType() {
-		ComplexTypeDefinition def = getComplexTypeDefinition(); // lazy eval.
-		return (def != null) ? def.getContentType() : CMElementDeclaration.CDATA;
-	}
-
-	/**
-	 * @see HTMLElementDeclaration#getCorrectionType
-	 */
-	public int getCorrectionType() {
-		return correctionType;
-	}
-
-	/**
-	 * HTML element doesn't have any data type.  So, this method always
-	 * returns <code>null</code>.<br>
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration
-	 */
-	public CMDataType getDataType() {
-		return null;
-	}
-
-	/**
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration
-	 */
-	public String getElementName() {
-		return getNodeName();
-	}
-
-	/**
-	 * Exclusion.
-	 * Almost elements don't have a exclusion.
-	 * Only classes those have exclusion should override this method.
-	 */
-	public CMContent getExclusion() {
-		return null;
-	}
-
-	/**
-	 * Default format type is <code>FORMAT_HTML</code>.<br>
-	 */
-	public int getFormatType() {
-		return formatType;
-	}
-
-	/**
-	 * Inclusion.
-	 * Almost elements don't have a inclusion.
-	 * Only classes those have inclusion should override this method.
-	 */
-	public CMContent getInclusion() {
-		return null;
-	}
-
-	/**
-	 */
-	public int getLayoutType() {
-		return layoutType;
-	}
-
-	/**
-	 * Line break hint is strongly related to layout type.
-	 * Indeed, in the C++DOM, it is determined from layout type only.
-	 * So, this implementation, as the default implementation for all declarations,
-	 * also determines from layout type only.<br>
-	 * @return int
-	 */
-	public int getLineBreakHint() {
-		switch (getLayoutType()) {
-			case HTMLElementDeclaration.LAYOUT_BLOCK :
-				return HTMLElementDeclaration.BREAK_BEFORE_START_AND_AFTER_END;
-			case HTMLElementDeclaration.LAYOUT_BREAK :
-				return HTMLElementDeclaration.BREAK_AFTER_START;
-			case HTMLElementDeclaration.LAYOUT_HIDDEN :
-				return HTMLElementDeclaration.BREAK_BEFORE_START_AND_AFTER_END;
-			default :
-				return HTMLElementDeclaration.BREAK_NONE;
-		}
-	}
-
-	/**
-	 * No HTML element has local elements.  So, this method always
-	 * returns an empty map.
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration
-	 */
-	public CMNamedNodeMap getLocalElements() {
-		return EMPTY_MAP;
-	}
-
-	/**
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 */
-	public int getNodeType() {
-		return CMNode.ELEMENT_DECLARATION;
-	}
-
-	/**
-	 */
-	public int getOmitType() {
-		return omitType;
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		return EMPTY_MAP;
-	}
-
-	/**
-	 */
-	public boolean supports(String propertyName) {
-		if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) {
-			return true;
-		}
-		else if (propertyName.equals(HTMLCMProperties.CONTENT_HINT)) {
-			ComplexTypeDefinition def = getComplexTypeDefinition();
-			return (def != null);
-		}
-		else {
-			PropertyProvider pp = PropertyProviderFactory.getProvider(propertyName);
-			if (pp == null)
-				return false;
-			return pp.supports(this);
-		}
-
-	}
-
-	/**
-	 */
-	public Object getProperty(String propertyName) {
-		if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) {
-			return new Boolean(true);
-		}
-		else if (propertyName.equals(HTMLCMProperties.CONTENT_HINT)) {
-			ComplexTypeDefinition def = getComplexTypeDefinition();
-			return (def != null) ? def.getPrimaryCandidate() : null;
-		}
-		else {
-			PropertyProvider pp = PropertyProviderFactory.getProvider(propertyName);
-			if (pp == null)
-				return null;
-			return pp.get(this);
-		}
-	}
-
-	/**
-	 * Return element names which terminates this element.<br>
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return null;
-	}
-
-	/**
-	 * return true when the element is a JSP element.
-	 */
-	public boolean isJSP() {
-		return false;
-	}
-
-	/**
-	 * In some elements, such as APPLET, a source generator should indent child
-	 * elements that their parents.  That is, a source generator should generate
-	 * source  of APPLET and PARAMS like this:
-	 * <PRE>
-	 *   &lt;APPLET ...&gt;
-	 *     &lt;PARAM ... &gt;
-	 *     &lt;PARAM ... &gt;
-	 *   &lt;/APPLET&gt;
-	 * <PRE>
-	 * @return boolean
-	 */
-	public boolean shouldIndentChildSource() {
-		return indentChild;
-	}
-
-	/**
-	 * Most of elements can compact spaces in their child text nodes.
-	 * Some special elements should keep them in their source.
-	 * @return boolean
-	 */
-	public boolean shouldKeepSpaces() {
-		return keepSpaces;
-	}
-
-	/**
-	 * @return boolean
-	 */
-	public boolean shouldTerminateAt(HTMLElementDeclaration nextElement) {
-		Iterator i = getTerminators();
-		if (i == null)
-			return false;
-		String nextName = nextElement.getElementName();
-		while (i.hasNext()) {
-			if (nextName.equals(i.next()))
-				return true;
-		}
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElementDeclaration.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElementDeclaration.java
deleted file mode 100644
index 8dbf0c8..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElementDeclaration.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-
-/**
- * This interface is intended to be a public interface which has
- * interfaces defined in both of {@link <code>CMElementDeclaration</code>}
- * and {@link <code>HTMLCMNode</code>}.<br>
- * In addition to this, some interfaces are added to this interface,
- * those are specially to HTML elements.<br>
- */
-public interface HTMLElementDeclaration extends CMElementDeclaration {
-
-	/** Tag ommission; Not ommisible. */
-	int OMIT_NONE = 0;
-	/** Tag ommission; Both tags are ommisible. */
-	int OMIT_BOTH = 1;
-	/** Tag ommission; The end tag is ommisible. */
-	int OMIT_END = 2;
-	/** Tag ommission; The end tag is ommitted when created. */
-	int OMIT_END_DEFAULT = 3;
-	/** Tag ommission; The end tag must be omitted. */
-	int OMIT_END_MUST = 4;
-	/** Line Break; No break. */
-	int BREAK_NONE = 10;
-	/** Line Break; Break after the start tag. */
-	int BREAK_AFTER_START = 11;
-	/** Line Break; Break both before the start tagn and after the end tag. */
-	int BREAK_BEFORE_START_AND_AFTER_END = 12;
-	/* Layout */
-	/** initial value; the value should never returns to client programs. */
-	int LAYOUT_NONE = 100;
-	int LAYOUT_BLOCK = 101;
-	int LAYOUT_WRAP = 102;
-	/** No wrap object; like IMG, APPLET,... */
-	int LAYOUT_OBJECT = 103;
-	/** BR */
-	int LAYOUT_BREAK = 104;
-	/** Hidden object; like HTML or HEAD */
-	int LAYOUT_HIDDEN = 105;
-	/* Correction */
-	/** Correct; No correct. */
-	int CORRECT_NONE = 1000;
-	/** Correct; Meaningless when the content is empty. */
-	int CORRECT_EMPTY = 1001;
-	/** Correct; Meaningless when no attribut is set. */
-	int CORRECT_NEUTRAL = 1002;
-	/** Correct; Meaningless when same element is nested. */
-	int CORRECT_DUPLICATED = 1003;
-	/** Format; HTML */
-	int FORMAT_HTML = 10000;
-	/** Format; SSI */
-	int FORMAT_SSI = 10001;
-	/** Format; JSP script */
-	int FORMAT_JSP_SCRIPT = 10002;
-	/** Format; JSP directive */
-	int FORMAT_JSP_DIRECTIVE = 10003;
-	/** Format; XML */
-	int FORMAT_XML = 10004;
-	/** Format; MW */
-	int FORMAT_MW = 10005;
-
-	/**
-	 * A short hand method to get an attribute declaration of a HTML element.
-	 * @param attrName java.lang.String
-	 */
-	HTMLAttributeDeclaration getAttributeDeclaration(String attrName);
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclImpl.java
deleted file mode 100644
index d43db28..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclImpl.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-
-
-/**
- */
-class HTMLEntityDeclImpl extends CMNodeImpl implements HTMLEntityDeclaration {
-
-	private java.lang.String value = null;
-
-	/**
-	 * CMEntityDeclImpl constructor comment.
-	 * @param entityName java.lang.String; Entity name.
-	 * @param entityValue java.lang.String; Value string.
-	 */
-	public HTMLEntityDeclImpl(String entityName, String entityValue) {
-		super(entityName);
-		value = entityValue;
-	}
-
-	/**
-	 * getName method
-	 * @return java.lang.String
-	 */
-	public String getName() {
-		return getNodeName();
-	}
-
-	/**
-	 * Get CMNode type.<br>
-	 * @return int; Always return ENTITY_DECLARATION.
-	 */
-	public int getNodeType() {
-		return CMNode.ENTITY_DECLARATION;
-	}
-
-	/**
-	 * getValue method
-	 * @return java.lang.String
-	 */
-	public String getValue() {
-		return value;
-	}
-
-	/**
-	 */
-	public boolean supports(String propertyName) {
-		if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE))
-			return true;
-		return super.supports(propertyName);
-	}
-
-	/**
-	 * Entities in HTML documents are always treated with ignoring cases.
-	 * Because no special entities are defined in JSP 1.0, this method
-	 * can always return <code>true</code>.<br>
-	 */
-	public Object getProperty(String propertyName) {
-		if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE))
-			return new Boolean(true);
-		return super.getProperty(propertyName);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclaration.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclaration.java
deleted file mode 100644
index 1f7b2d3..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclaration.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.wst.html.core.internal.contentmodel;
-
-
-
-/**
- * This interface is intended to be a public interface which has
- * interfaces defined in both of {@link <code>CMEntityDeclaration</code>}
- * and {@link <code>HTMLCMNode</code>}.<br>
- */
-public interface HTMLEntityDeclaration extends org.eclipse.wst.xml.core.internal.contentmodel.CMEntityDeclaration {
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLPropertyDeclaration.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLPropertyDeclaration.java
deleted file mode 100644
index 448bfb3..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLPropertyDeclaration.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * This interface is commonly used in declaration implementation, and internal use.
- * Use getProperty() method for public use.
- */
-public interface HTMLPropertyDeclaration {
-	/**
-	 * To determin the type, look up the following keywords in C++DOM/DTDParser.cpp:
-	 * <ul>
-	 *   <li>CORRECT_DUPLICATED - <code>GROUP_NODUP</code></li>
-	 *   <li>CORRECT_EMPTY - <code>GROUP_COMPACT</code></li>
-	 *   <li>CORRECT_NEUTRAL - <code>GROUP_NEUTRAL</code></li>
-	 *   <li>CORRECT_NONE - <code>(N/A)</code></li>
-	 * </ul>
-	 * @return int
-	 */
-	int getCorrectionType();
-	/**
-	 * Get the list of declarations those should be excluded from the content.<br>
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMContent
-	 */
-	CMContent getExclusion();
-	/**
-	 * To determin the type, see the following files in the C++DOM:
-	 *   ElementType.cpp - ElementType#setGroup().
-	 *   Element.cpp - Element#getStartTag().
-	 * @return int
-	 */
-	int getFormatType();
-	/**
-	 * Get the list of declarations those should be included into the content.<br>
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMContent
-	 */
-	CMContent getInclusion();
-	/**
-	 * To determin the type, look up the following keywords in C++DOM/DTDParser.cpp:
-	 * <ul>
-	 *   <li>LAYOUT_BLOCK - <code>GROUP_BLOCK</code></li>
-	 *   <li>LAYOUT_BREAK - <code>GROUP_BREAK</code></li>
-	 *   <li>LAYOUT_HIDDEN - <code>GROUP_HIDDEN</code></li>
-	 *   <li>LAYOUT_NONE - <code>(N/A)</code></li>
-	 *   <li>LAYOUT_OBJECT - <code>GROUP_NOWRAP</code></li>
-	 *   <li>LAYOUT_WRAP - <code>(N/A)</code></li>
-	 * </ul>
-	 * @return int
-	 */
-	int getLayoutType();
-	/**
-	 * To determine the type, see <code>Element::isBreakingBeforeElement()</code>
-	 * and <code>Element::isBreakingAfterElement()</code> defined in C++DOM/Element.cpp.<br>
-	 * @return int
-	 */
-	int getLineBreakHint();
-	/**
-	 * To determine the type, Check the HTML DTD.
-	 * And look up <code>GROUP_NOEND</code> in C++DOM/DTDParser.cpp.<br>
-	 * @return int
-	 */
-	int getOmitType();
-	/**
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap
-	 */
-	CMNamedNodeMap getProhibitedAncestors();
-	/**
-	 * return true when the element is a JSP element.
-	 */
-	boolean isJSP();
-	/**
-	 * @return boolean
-	 */
-	boolean shouldIndentChildSource();
-	/**
-	 * Some elements should keep spaces in its child text nodes.
-	 * For example, PRE and TEXTAREA.  This method returns true,
-	 * if a target element is one of such elements.
-	 * @return boolean
-	 */
-	boolean shouldKeepSpaces();
-	/**
-	 * Returns <code>true</code>, if <code>nextElement</code> terminates
-	 * the current element.
-	 * Some elements like <code>P</code> terminates other <code>P</code>.
-	 * That is, when <code>&lt;P&gt;</code> appears at the next to <code>P</code>,
-	 * which end tags is omitted, it represents not only the beginning of the
-	 * new <code>P</code> element but also the end of the previous <code>P</code>.
-	 */
-	boolean shouldTerminateAt(HTMLElementDeclaration nextElement);
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedA.java
deleted file mode 100644
index 92eb28e..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedA.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-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;
-
-/**
- * A.
- */
-final class HedA extends HedInlineContainer {
-
-	/**
-	 */
-	public HedA(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.A, collection);
-		// CORRECT_EMPTY - GROUP_COMPACT
-		correctionType = CORRECT_EMPTY;
-	}
-
-	/**
-	 * %attrs;
-	 * (charset %Charset; #IMPLIED)
-	 * (type %ContentType; #IMPLIED)
-	 * (name CDATA #IMPLIED)
-	 * (href %URI; #IMPLIED)
-	 * (hreflang %LanguageCode; #IMPLIED)
-	 * (target %FrameTarget; #IMPLIED)
-	 * (rel %LinkTypes; #IMPLIED)
-	 * (rev %LinkTypes; #IMPLIED)
-	 * (accesskey %Character; #IMPLIED)
-	 * (directkey %Character; #IMPLIED)
-	 * (shape %Shape; rect)
-	 * (coords %Coords; #IMPLIED)
-	 * (tabindex NUMBER #IMPLIED)
-	 * (onfocus %Script; #IMPLIED)
-	 * (onblur %Script; #IMPLIED) 
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_CHARSET, HTML40Namespace.ATTR_NAME_TYPE, HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_HREF, HTML40Namespace.ATTR_NAME_HREFLANG, HTML40Namespace.ATTR_NAME_TARGET, HTML40Namespace.ATTR_NAME_REL, HTML40Namespace.ATTR_NAME_REV, HTML40Namespace.ATTR_NAME_ACCESSKEY, HTML40Namespace.ATTR_NAME_DIRECTKEY, HTML40Namespace.ATTR_NAME_SHAPE, HTML40Namespace.ATTR_NAME_COORDS, HTML40Namespace.ATTR_NAME_TABINDEX, HTML40Namespace.ATTR_NAME_ONFOCUS, HTML40Namespace.ATTR_NAME_ONBLUR};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 * Exclusion.
-	 * <code>A</code> has the exclusion.
-	 * It is <code>A</code> itself.
-	 */
-	public CMContent getExclusion() {
-		if (exclusion != null)
-			return exclusion; // already created.
-		if (elementCollection == null)
-			return null;
-
-		exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-		CMNode a = elementCollection.getNamedItem(HTML40Namespace.ElementName.A);
-		if (a != null)
-			exclusion.appendChild(a);
-
-		return exclusion;
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.A, HTML40Namespace.ElementName.BUTTON};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedADDRESS.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedADDRESS.java
deleted file mode 100644
index b4913f4..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedADDRESS.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.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * ADDRESS.
- */
-final class HedADDRESS extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedADDRESS(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.ADDRESS, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_ADDRESS;
-		correctionType = CORRECT_EMPTY;
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * %attrs;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAPPLET.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAPPLET.java
deleted file mode 100644
index 9a546f7..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAPPLET.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * APPLET.
- */
-final class HedAPPLET extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedAPPLET(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.APPLET, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_PARAM_CONTAINER;
-		layoutType = LAYOUT_OBJECT;
-		indentChild = true;
-	}
-
-	/**
-	 * %coreattrs;
-	 * (codebase %URI; #IMPLIED)
-	 * (archive CDATA #IMPLIED)
-	 * (code CDATA #IMPLIED)
-	 * (object CDATA #IMPLIED)
-	 * (alt %Text; #IMPLIED) ... should be defined locally.
-	 * (name CDATA #IMPLIED)
-	 * (width %Length; #REQUIRED)
-	 * (height %Length; #REQUIRED)
-	 * (align %IAlign; #IMPLIED)
-	 * (hspace %Pixels; #IMPLIED)
-	 * (vspace %Pixels; #IMPLIED)
-	 * (mayscript (mayscript) #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %coreattrs;
-		attributeCollection.getCore(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_CODEBASE, HTML40Namespace.ATTR_NAME_ARCHIVE, HTML40Namespace.ATTR_NAME_CODE, HTML40Namespace.ATTR_NAME_OBJECT, HTML40Namespace.ATTR_NAME_ALT, HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_WIDTH, HTML40Namespace.ATTR_NAME_HEIGHT, HTML40Namespace.ATTR_NAME_HSPACE, HTML40Namespace.ATTR_NAME_VSPACE, HTML40Namespace.ATTR_NAME_MAYSCRIPT};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-
-		// %align; ... should be defined locally.
-		HTMLAttrDeclImpl attr = AttributeCollection.createAlignForImage();
-		if (attr != null)
-			attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAREA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAREA.java
deleted file mode 100644
index 3afad06..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAREA.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * AREA.
- */
-final class HedAREA extends HedEmpty {
-
-	/**
-	 */
-	public HedAREA(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.AREA, collection);
-		// LAYOUT_HIDDEN.
-		// Because, AREA is GROUP_HIDDEN in the C++DOM/DTDParser.cpp.
-		layoutType = LAYOUT_HIDDEN;
-	}
-
-	/**
-	 * AREA.
-	 * %attrs;
-	 * (shape %Shape; rect)
-	 * (coords %Coords; #IMPLIED)
-	 * (href %URI; #IMPLIED)
-	 * (target %FrameTarget; #IMPLIED)
-	 * (nohref (nohref) #IMPLIED)
-	 * (alt %Text; #REQUIRED)
-	 * (tabindex NUMBER #IMPLIED)
-	 * (accesskey %Character; #IMPLIED)
-	 * (onfocus %Script; #IMPLIED)
-	 * (onblur %Script; #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_SHAPE, HTML40Namespace.ATTR_NAME_COORDS, HTML40Namespace.ATTR_NAME_HREF, HTML40Namespace.ATTR_NAME_TARGET, HTML40Namespace.ATTR_NAME_NOHREF, HTML40Namespace.ATTR_NAME_ALT, HTML40Namespace.ATTR_NAME_TABINDEX, HTML40Namespace.ATTR_NAME_ACCESSKEY, HTML40Namespace.ATTR_NAME_ONFOCUS, HTML40Namespace.ATTR_NAME_ONBLUR};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASE.java
deleted file mode 100644
index e528814..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASE.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * BASE.
- */
-final class HedBASE extends HedEmpty {
-
-	/**
-	 */
-	public HedBASE(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.BASE, collection);
-		// LAYOUT_HIDDEN.
-		// Because, BASE is GROUP_HIDDEN in the C++DOM/DTDParser.cpp.
-		layoutType = LAYOUT_HIDDEN;
-	}
-
-	/**
-	 * BASE.
-	 * (href %URI; #IMPLIED)
-	 * (target %FrameTarget; #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		String[] names = {HTML40Namespace.ATTR_NAME_HREF, HTML40Namespace.ATTR_NAME_TARGET};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASEFONT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASEFONT.java
deleted file mode 100644
index 2c9109b..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASEFONT.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-
-/**
- * BASEFONT.
- */
-final class HedBASEFONT extends HedEmpty {
-
-	/**
-	 */
-	public HedBASEFONT(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.BASEFONT, collection);
-		// LAYOUT_OBJECT - GROUP_NOWRAP.
-		layoutType = LAYOUT_OBJECT;
-	}
-
-	/**
-	 * BASEFONT.
-	 * (id ID #IMPLIED)
-	 * (size CDATA #REQUIRED) ... should be localy defined.
-	 * (color %Color; #IMPLIED)
-	 * (face CDATA #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		String[] names = {HTML40Namespace.ATTR_NAME_ID, HTML40Namespace.ATTR_NAME_COLOR, HTML40Namespace.ATTR_NAME_FACE};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-
-		// (size CDATA #REQUIRED) ... should be localy defined.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_SIZE, atype, CMAttributeDeclaration.REQUIRED);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_SIZE, attr);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBDO.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBDO.java
deleted file mode 100644
index bcee51f..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBDO.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-
-/**
- * BDO.
- */
-final class HedBDO extends HedInlineContainer {
-
-	/**
-	 */
-	public HedBDO(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.BDO, collection);
-		// CORRECT_EMPTY - GROUP_COMPACT
-		correctionType = CORRECT_EMPTY;
-	}
-
-	/**
-	 * %coreattrs;
-	 * (lang %LanguageCode; #IMPLIED)
-	 * (dir (ltr|rtl) #REQUIRED) ... should be defined locally.
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %coreattrs;
-		attributeCollection.getCore(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_LANG};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-
-		//  (dir (ltr|rtl) #REQUIRED) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-		String[] values = {HTML40Namespace.ATTR_VALUE_LTR, HTML40Namespace.ATTR_VALUE_RTL};
-		atype.setEnumValues(values);
-
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_DIR, atype, CMAttributeDeclaration.REQUIRED);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_DIR, attr);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBGSOUND.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBGSOUND.java
deleted file mode 100644
index 3e731d8..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBGSOUND.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-
-
-
-final class HedBGSOUND extends HedEmpty {
-
-	public HedBGSOUND(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.BGSOUND, collection);
-		layoutType = LAYOUT_OBJECT;
-	}
-
-	/**
-	 * (src, CDATA, #IMPLIED)
-	 * (loop, CDATA, #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return;
-		if (attributeCollection == null)
-			return; // fatal
-		attributes = new CMNamedNodeMapImpl();
-		// src
-		HTMLAttributeDeclaration attr = attributeCollection.getDeclaration(HTML40Namespace.ATTR_NAME_SRC);
-		if (attr != null)
-			attributes.putNamedItem(HTML40Namespace.ATTR_NAME_SRC, attr);
-		// loop
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-		atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, HTML40Namespace.ATTR_VALUE_INFINITE);
-		attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_LOOP, atype, CMAttributeDeclaration.OPTIONAL);
-		if (attr != null)
-			attributes.putNamedItem(HTML40Namespace.ATTR_NAME_LOOP, attr);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBLOCKQUOTE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBLOCKQUOTE.java
deleted file mode 100644
index d1cb608..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBLOCKQUOTE.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.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * BLOCKQUOTE.
- */
-final class HedBLOCKQUOTE extends HedFlowContainer {
-
-	/**
-	 */
-	public HedBLOCKQUOTE(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.BLOCKQUOTE, collection);
-		correctionType = CORRECT_EMPTY;
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * %attrs;
-	 * (cite %URI; #IMPLIED) 
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_CITE};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBODY.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBODY.java
deleted file mode 100644
index 3324a9a..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBODY.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-
-/**
- * BODY.
- */
-final class HedBODY extends HedFlowContainer {
-
-	private static String[] terminators = {HTML40Namespace.ElementName.HEAD, HTML40Namespace.ElementName.BODY, HTML40Namespace.ElementName.FRAMESET, HTML40Namespace.ElementName.HTML};
-
-	/**
-	 */
-	public HedBODY(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.BODY, collection);
-		layoutType = LAYOUT_BLOCK;
-		omitType = OMIT_BOTH;
-	}
-
-	/**
-	 * %attrs;
-	 * %bodycolors;
-	 * (onload %Script; #IMPLIED)
-	 * (onunload %Script; #IMPLIED)
-	 * (background %URI; #IMPLIED)
-	 * (marginwidth %Pixels; #IMPLIED) ... D205514
-	 * (marginheight %Pixels; #IMPLIED) .. D205514
-	 * (topmargin, CDATA, #IMPLIED) ...... D205514
-	 * (bottommargin, CDATA, #IMPLIED) ... D205514
-	 * (leftmargin, CDATA, #IMPLIED) ..... D205514
-	 * (rightmargin, CDATA, #IMPLIED) .... D205514
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-		// %bodycolors;
-		attributeCollection.getBodycolors(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_ONLOAD, HTML40Namespace.ATTR_NAME_ONUNLOAD, HTML40Namespace.ATTR_NAME_BACKGROUND,
-		// <<D205514
-					HTML40Namespace.ATTR_NAME_MARGINWIDTH, HTML40Namespace.ATTR_NAME_MARGINHEIGHT, HTML40Namespace.ATTR_NAME_TOPMARGIN, HTML40Namespace.ATTR_NAME_BOTTOMMARGIN, HTML40Namespace.ATTR_NAME_LEFTMARGIN, HTML40Namespace.ATTR_NAME_RIGHTMARGIN
-		// D205514
-		};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 * Inclusion.
-	 * "Lazy eval."<br>
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMContent
-	 */
-	public CMContent getInclusion() {
-		if (inclusion != null)
-			return inclusion; // already created.
-		if (elementCollection == null)
-			return null;
-
-		// (INS|DEL)
-		inclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-		String[] names = {HTML40Namespace.ElementName.INS, HTML40Namespace.ElementName.DEL};
-		elementCollection.getDeclarations(inclusion, Arrays.asList(names).iterator());
-		return inclusion;
-	}
-
-	/**
-	 * BODY has terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return Arrays.asList(terminators).iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBR.java
deleted file mode 100644
index 45fa6ce..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBR.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-
-/**
- * BR.
- */
-final class HedBR extends HedEmpty {
-
-	/**
-	 */
-	public HedBR(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.BR, collection);
-		// LAYOUT_BREAK.
-		// Because, BR is GROUP_BREAK in the C++DOM/DTDParser.cpp.
-		layoutType = LAYOUT_BREAK;
-	}
-
-	/**
-	 * BR.
-	 * %coreattrs;
-	 * (clear (left | all | right | none) none)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %coreattrs;
-		attributeCollection.getCore(attributes);
-		// clear
-		HTMLAttributeDeclaration attr = attributeCollection.getDeclaration(HTML40Namespace.ATTR_NAME_CLEAR);
-		if (attr != null)
-			attributes.putNamedItem(HTML40Namespace.ATTR_NAME_CLEAR, attr);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBUTTON.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBUTTON.java
deleted file mode 100644
index 9754980..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBUTTON.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * BUTTON.
- */
-final class HedBUTTON extends HedFlowContainer {
-
-	/**
-	 */
-	public HedBUTTON(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.BUTTON, collection);
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * %attrs;
-	 * %reserved; ... empty.
-	 * (name CDATA #IMPLIED)
-	 * (value CDATA #IMPLIED)
-	 * (type (button|submit|reset) submit) ... should be defined locally.
-	 * (disabled (disabled) #IMPLIED)
-	 * (tabindex NUMBER #IMPLIED)
-	 * (accesskey %Character; #IMPLIED)
-	 * (onfocus %Script; #IMPLIED)
-	 * (onblur %Script; #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_VALUE, HTML40Namespace.ATTR_NAME_DISABLED, HTML40Namespace.ATTR_NAME_TABINDEX, HTML40Namespace.ATTR_NAME_ACCESSKEY, HTML40Namespace.ATTR_NAME_ONFOCUS, HTML40Namespace.ATTR_NAME_ONBLUR};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-
-		// (type (button|submit|reset) submit) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-		String[] values = {HTML40Namespace.ATTR_VALUE_BUTTON, HTML40Namespace.ATTR_VALUE_SUBMIT, HTML40Namespace.ATTR_VALUE_RESET};
-		atype.setEnumValues(values);
-
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr);
-	}
-
-	/**
-	 * Exclusion.
-	 * <code>FORM</code> has the exclusion.
-	 * It is <code>FORM</code> itself.
-	 */
-	public CMContent getExclusion() {
-		if (exclusion != null)
-			return exclusion; // already created.
-		if (elementCollection == null)
-			return null; // fatal
-
-		exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-		String[] names = {HTML40Namespace.ElementName.A, HTML40Namespace.ElementName.FORM, HTML40Namespace.ElementName.ISINDEX, HTML40Namespace.ElementName.FIELDSET, HTML40Namespace.ElementName.IFRAME};
-		elementCollection.getDeclarations(exclusion, Arrays.asList(names).iterator());
-		elementCollection.getFormctrl(exclusion);
-
-		return exclusion;
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.BUTTON};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCAPTION.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCAPTION.java
deleted file mode 100644
index 82b07dc..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCAPTION.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-
-/**
- * CAPTION.
- */
-final class HedCAPTION extends HedInlineContainer {
-
-	/**
-	 */
-	public HedCAPTION(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.CAPTION, collection);
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * %attrs;
-	 * (align %CAlign; #IMPLIED) ... should be defined locally.
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		HTMLAttrDeclImpl attr = AttributeCollection.createAlignForCaption();
-		if (attr != null)
-			attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCENTER.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCENTER.java
deleted file mode 100644
index 9d5184f..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCENTER.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * CENTER.
- */
-final class HedCENTER extends HedFlowContainer {
-
-	/**
-	 */
-	public HedCENTER(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.CENTER, collection);
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * %attrs;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOL.java
deleted file mode 100644
index 14f3226..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOL.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-
-/**
- * COL.
- */
-final class HedCOL extends HedEmpty {
-
-	/**
-	 */
-	public HedCOL(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.COL, collection);
-		// LAYOUT_BLOCK.
-		// Because, COL is GROUP_BLOCK in the C++DOM/DTDParser.cpp.
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * COL.
-	 * %attrs;
-	 * (span NUMBER 1)
-	 * (width %MultiLength; #IMPLIED) ... should be defined locally.
-	 * %cellhalign;
-	 * %cellvalign;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		// (span NUMBER 1)
-		String[] names = {HTML40Namespace.ATTR_NAME_SPAN};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-
-		// (width %MultiLength; #IMPLIED) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.MULTI_LENGTH);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_WIDTH, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_WIDTH, attr);
-
-		// %cellhalign;
-		attributeCollection.getCellhalign(attributes);
-		// %cellvalign;
-		attributeCollection.getCellvalign(attributes);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOLGROUP.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOLGROUP.java
deleted file mode 100644
index bd2e74f..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOLGROUP.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-
-/**
- * COLGROUP.
- */
-final class HedCOLGROUP extends HTMLElemDeclImpl {
-
-	private static String[] terminators = {HTML40Namespace.ElementName.COLGROUP, HTML40Namespace.ElementName.CAPTION, HTML40Namespace.ElementName.THEAD, HTML40Namespace.ElementName.TBODY, HTML40Namespace.ElementName.TFOOT, HTML40Namespace.ElementName.TR};
-
-	public HedCOLGROUP(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.COLGROUP, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_COLUMN_GROUP;
-		layoutType = LAYOUT_BLOCK;
-		omitType = OMIT_END;
-		indentChild = true;
-	}
-
-	/**
-	 * %attrs;
-	 * (span NUMBER 1)
-	 * (width %MultiLength; #IMPLIED) ... should be defined locally.
-	 * %cellhalign;
-	 * %cellvalign;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-		// %cellhalign;
-		attributeCollection.getCellhalign(attributes);
-		// %cellvalign;
-		attributeCollection.getCellvalign(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_SPAN};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-
-		// (width %MultiLength; #IMPLIED) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.MULTI_LENGTH);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_WIDTH, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_WIDTH, attr);
-	}
-
-	/**
-	 * LI has terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return Arrays.asList(terminators).iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDD.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDD.java
deleted file mode 100644
index 6004f84..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDD.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * DD.
- */
-final class HedDD extends HedFlowContainer {
-
-	private static String[] terminators = {HTML40Namespace.ElementName.DT, HTML40Namespace.ElementName.DD};
-
-	/**
-	 */
-	public HedDD(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.DD, collection);
-		correctionType = CORRECT_EMPTY;
-		layoutType = LAYOUT_BLOCK;
-		omitType = OMIT_END_DEFAULT;
-	}
-
-	/**
-	 * %attrs;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-	}
-
-	/**
-	 * DD has terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return Arrays.asList(terminators).iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDIV.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDIV.java
deleted file mode 100644
index b2cd2bc..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDIV.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.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * DIV.
- */
-final class HedDIV extends HedFlowContainer {
-
-	/**
-	 */
-	public HedDIV(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.DIV, collection);
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * %attrs;
-	 * %align;
-	 * %reserved;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-		// %align;
-		HTMLAttrDeclImpl attr = AttributeCollection.createAlignForParagraph();
-		if (attr != null)
-			attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr);
-		// %reserved; ... empty
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDL.java
deleted file mode 100644
index a45f2f8..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDL.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * DL.
- */
-final class HedDL extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedDL(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.DL, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_DEFINITION_LIST;
-		correctionType = CORRECT_EMPTY;
-		layoutType = LAYOUT_BLOCK;
-		indentChild = true;
-	}
-
-	/**
-	 * %arrays;
-	 * (compact (compact) #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_COMPACT};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDT.java
deleted file mode 100644
index c4797fb..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDT.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * DT.
- */
-final class HedDT extends HedInlineContainer {
-
-	private static String[] terminators = {HTML40Namespace.ElementName.DT, HTML40Namespace.ElementName.DD};
-
-	/**
-	 */
-	public HedDT(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.DT, collection);
-		correctionType = CORRECT_EMPTY;
-		layoutType = LAYOUT_BLOCK;
-		omitType = OMIT_END_DEFAULT;
-	}
-
-	/**
-	 * %attrs;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-	}
-
-	/**
-	 * DT has terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return Arrays.asList(terminators).iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEMBED.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEMBED.java
deleted file mode 100644
index c1e301d..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEMBED.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-
-/**
- * EMBED.
- */
-final class HedEMBED extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedEMBED(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.EMBED, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_EMBED;
-		layoutType = LAYOUT_OBJECT;
-		omitType = OMIT_END_DEFAULT;
-	}
-
-	/**
-	 * %coreattrs;
-	 * %events;
-	 * (src %URI; #REQUIRED) ... should be defined locally.
-	 * (height %Length; #IMPLIED)
-	 * (width %Length; #IMPLIED)
-	 * (align %IAlign; #IMPLIED) ... should be defined locally.
-	 * (hspace %Pixels; #IMPLIED)
-	 * (vspace %Pixels; #IMPLIED)
-	 * (loop CDATA #IMPLIED)
-	 * (hidden CDATA #IMPLIED)
-	 * (volume CDATA #IMPLIED)
-	 * (autostart (true|false) #IMPLIED)
-	 * (autoplay (true|false) #IMPLIED)
-	 * (autosize (true|false) #IMPLIED)
-	 * (controller (true|false) true)
-	 * (scale CDATA #IMPLIED)
-	 * (showcontrols (true|false) #IMPLIED)
-	 * (playcount NUMBER #IMPLIED)
-	 * (repeat CDATA #IMPLIED)
-	 * (panel CDATA #IMPLIED)
-	 * (text CDATA #IMPLIED)
-	 * (palette CDATA #IMPLIED)
-	 * (textfocus CDATA #IMPLIED)
-	 * (type CDATA #IMPLIED) ... should be defined locally.
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %coreattrs;
-		attributeCollection.getCore(attributes);
-		// %events;
-		attributeCollection.getEvents(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_HEIGHT, HTML40Namespace.ATTR_NAME_WIDTH, HTML40Namespace.ATTR_NAME_HSPACE, HTML40Namespace.ATTR_NAME_VSPACE, HTML40Namespace.ATTR_NAME_LOOP, HTML40Namespace.ATTR_NAME_HIDDEN, HTML40Namespace.ATTR_NAME_VOLUME, HTML40Namespace.ATTR_NAME_AUTOSTART, HTML40Namespace.ATTR_NAME_AUTOPLAY, HTML40Namespace.ATTR_NAME_AUTOSIZE, HTML40Namespace.ATTR_NAME_CONTROLLER, HTML40Namespace.ATTR_NAME_SCALE, HTML40Namespace.ATTR_NAME_SHOWCONTROLS, HTML40Namespace.ATTR_NAME_PLAYCOUNT, HTML40Namespace.ATTR_NAME_REPEAT, HTML40Namespace.ATTR_NAME_PANEL, HTML40Namespace.ATTR_NAME_TEXT, HTML40Namespace.ATTR_NAME_PALETTE, HTML40Namespace.ATTR_NAME_TEXTFOCUS};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-
-		HTMLCMDataTypeImpl atype = null;
-		HTMLAttrDeclImpl attr = null;
-		// (src %URI; #REQUIRED) ... should be defined locally.
-		atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-		attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_SRC, atype, CMAttributeDeclaration.REQUIRED);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_SRC, attr);
-
-		// (align %IAlign; #IMPLIED) ... should be defined locally.
-		attr = AttributeCollection.createAlignForImage();
-		if (attr != null)
-			attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr);
-
-		// (type CDATA #IMPLIED) ... should be defined locally.
-		atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-		attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEmpty.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEmpty.java
deleted file mode 100644
index 4a24b80..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEmpty.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
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-
-/**
- * Base class for EMPTY type element declarations.
- */
-abstract class HedEmpty extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedEmpty(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_EMPTY;
-		// EMPTY type has no end tag.
-		omitType = OMIT_END_MUST;
-	}
-
-	/**
-	 * Content.<br>
-	 * EMPTY type always returns <code>null</code>.
-	 * <br>
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMContent
-	 */
-	public CMContent getContent() {
-		return null;
-	}
-
-	/**
-	 * Content type.<br>
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.EMPTY;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFIELDSET.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFIELDSET.java
deleted file mode 100644
index f47fbcb..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFIELDSET.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * FIELDSET.
- */
-final class HedFIELDSET extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedFIELDSET(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.FIELDSET, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_FIELDSET;
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * %attrs;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.BUTTON, HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFONT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFONT.java
deleted file mode 100644
index 61dd455..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFONT.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.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-
-/**
- * FONT.
- */
-final class HedFONT extends HedInlineContainer {
-
-	/**
-	 */
-	public HedFONT(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.FONT, collection);
-		// CORRECT_EMPTY - GROUP_COMPACT
-		correctionType = CORRECT_EMPTY;
-	}
-
-	/**
-	 * %coreattrs;
-	 * %i18n;
-	 * (size CDATA #IMPLIED) ... should be defined locally.
-	 * (color %Color; #IMPLIED)
-	 * (face CDATA #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %coreattrs;
-		attributeCollection.getCore(attributes);
-		// %i18n;
-		attributeCollection.getI18n(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_COLOR, HTML40Namespace.ATTR_NAME_FACE};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-
-		// (size CDATA #IMPLIED) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_SIZE, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_SIZE, attr);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFORM.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFORM.java
deleted file mode 100644
index 9986faa..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFORM.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-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;
-
-/**
- * FORM.
- */
-final class HedFORM extends HedFlowContainer {
-
-	/**
-	 */
-	public HedFORM(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.FORM, collection);
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * %attrs;
-	 * (action %URI; #REQUIRED)
-	 * (method (GET|POST) GET)
-	 * (enctype %ContentType; "application/x-www-form-urlencoded")
-	 * (accept %ContentTypes; #IMPLIED)
-	 * (name CDATA #IMPLIED)
-	 * (onsubmit %Script; #IMPLIED)
-	 * (onreset %Script; #IMPLIED)
-	 * (target %FrameTarget; #IMPLIED)
-	 * (accept-charset %Charsets; #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_ACTION, HTML40Namespace.ATTR_NAME_METHOD, HTML40Namespace.ATTR_NAME_ENCTYPE, HTML40Namespace.ATTR_NAME_ACCEPT, HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_ONSUBMIT, HTML40Namespace.ATTR_NAME_ONRESET, HTML40Namespace.ATTR_NAME_TARGET, HTML40Namespace.ATTR_NAME_ACCEPT_CHARSET};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 * Exclusion.
-	 * <code>FORM</code> has the exclusion.
-	 * It is <code>FORM</code> itself.
-	 */
-	public CMContent getExclusion() {
-		if (exclusion != null)
-			return exclusion; // already created.
-		if (elementCollection == null)
-			return null; // fatal
-
-		exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-		CMNode form = elementCollection.getNamedItem(HTML40Namespace.ElementName.FORM);
-		if (form != null)
-			exclusion.appendChild(form);
-
-		return exclusion;
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.BUTTON, HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.FORM, HTML40Namespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAME.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAME.java
deleted file mode 100644
index 768fe24..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAME.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.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * FRAME.
- */
-final class HedFRAME extends HedEmpty {
-
-	/**
-	 */
-	public HedFRAME(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.FRAME, collection);
-		// LAYOUT_HIDDEN.
-		// Because, FRAME is GROUP_HIDDEN in the C++DOM/DTDParser.cpp.
-		layoutType = LAYOUT_HIDDEN;
-	}
-
-	/**
-	 * FRAME.
-	 * %coreattrs;
-	 * (longdesc %URI; #IMPLIED)
-	 * (name CDATA #IMPLIED)
-	 * (src %URI; #IMPLIED)
-	 * (frameborder (1|0) 1)
-	 * (marginwidth %Pixels; #IMPLIED)
-	 * (marginheight %Pixels; #IMPLIED)
-	 * (noresize (noresize) #IMPLIED)
-	 * (scrolling (yes|no|auto) auto)
-	 * (bordercolor %Color #IMPLIED) ... D205514
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %coreattrs;
-		attributeCollection.getCore(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_LONGDESC, HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_SRC, HTML40Namespace.ATTR_NAME_FRAMEBORDER, HTML40Namespace.ATTR_NAME_MARGINWIDTH, HTML40Namespace.ATTR_NAME_MARGINHEIGHT, HTML40Namespace.ATTR_NAME_NORESIZE, HTML40Namespace.ATTR_NAME_SCROLLING, HTML40Namespace.ATTR_NAME_BORDERCOLOR // D20554
-		};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAMESET.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAMESET.java
deleted file mode 100644
index 66000dc..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAMESET.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-
-/**
- * FRAMESET.
- */
-final class HedFRAMESET extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedFRAMESET(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.FRAMESET, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_FRAMESET;
-		layoutType = LAYOUT_HIDDEN;
-		indentChild = true;
-	}
-
-	/**
-	 * %coreattrs;
-	 * (rows %MultiLengths; #IMPLIED) ... should be defined locally.
-	 * (cols %MultiLengths; #IMPLIED) ... should be defined locally.
-	 * (onload %Script; #IMPLIED)
-	 * (onunload %Script; #IMPLIED)
-	 * (frameborder (yes|no) #IMPLIED) ... should be defined locally.
-	 * (border %Pixels; #IMPLIED)
-	 * (bordercolor %Color #IMPLIED) ... D205514
-	 * (framespacing CDATA #IMPLIED) ... D215684
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getCore(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_ONLOAD, HTML40Namespace.ATTR_NAME_ONUNLOAD, HTML40Namespace.ATTR_NAME_BORDER, HTML40Namespace.ATTR_NAME_BORDERCOLOR, // D205514
-					HTML40Namespace.ATTR_NAME_FRAMESPACING // D215684
-		};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-
-		HTMLCMDataTypeImpl atype = null;
-		HTMLAttrDeclImpl attr = null;
-		// (rows %MultiLengths; #IMPLIED) ... should be defined locally.
-		atype = new HTMLCMDataTypeImpl(HTMLCMDataType.MULTI_LENGTH);
-		attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_ROWS, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ROWS, attr);
-
-		// (cols %MultiLengths; #IMPLIED) ... should be defined locally.
-		attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_COLS, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_COLS, attr);
-
-		// (frameborder (yes|no) #IMPLIED) ... should be defined locally.
-		atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-		String[] values = {HTML40Namespace.ATTR_VALUE_YES, HTML40Namespace.ATTR_VALUE_NO};
-		atype.setEnumValues(values);
-		attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_FRAMEBORDER, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_FRAMEBORDER, attr);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFlowContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFlowContainer.java
deleted file mode 100644
index bf211b2..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFlowContainer.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-/**
- * Base class for (%flow;)* containers.
- */
-abstract class HedFlowContainer extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedFlowContainer(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_FLOW_CONTAINER;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFontStyle.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFontStyle.java
deleted file mode 100644
index d86b142..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFontStyle.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * %fontstyle;
- */
-final class HedFontStyle extends HedInlineContainer {
-
-	/**
-	 */
-	public HedFontStyle(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-		if (elementName.equalsIgnoreCase(HTML40Namespace.ElementName.BIG) || elementName.equalsIgnoreCase(HTML40Namespace.ElementName.SMALL)) {
-			correctionType = CORRECT_EMPTY;
-		}
-		else { // B, I, U, ...
-			correctionType = CORRECT_DUPLICATED;
-		}
-	}
-
-	/**
-	 * %attrs;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		String myName = getElementName();
-		if (!myName.equalsIgnoreCase(HTML40Namespace.ElementName.BIG) && !myName.equalsIgnoreCase(HTML40Namespace.ElementName.SMALL))
-			return EMPTY_MAP;
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.PRE};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHEAD.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHEAD.java
deleted file mode 100644
index 691a061..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHEAD.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * HTML.
- */
-final class HedHEAD extends HTMLElemDeclImpl {
-
-	private static String[] terminators = {HTML40Namespace.ElementName.HEAD, HTML40Namespace.ElementName.BODY, HTML40Namespace.ElementName.FRAMESET, HTML40Namespace.ElementName.HTML};
-
-	/**
-	 */
-	public HedHEAD(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.HEAD, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_HEAD;
-		layoutType = LAYOUT_HIDDEN;
-		omitType = OMIT_BOTH;
-	}
-
-	/**
-	 * Create all attribute declarations.
-	 * This method is called once in the constructor of the super class.
-	 * The <code>HEAD</code> element may have the following attributes:
-	 * <table>
-	 * <tbody>
-	 *   <tr>
-	 *     <th>NAME</th><th>TYPE</th><th>USAGE</th><th>DEFAULT (INITIAL) VALUE</th><th>MEMO</th>
-	 *   </tr>
-	 *   <tr>
-	 *     <td>%i18n;</td><td>-</td><td>-</td><td>-</td><td>-</td>
-	 *   </tr>
-	 *   <tr>
-	 *     <td>profile</td><td>URI</td><td>#IMPLIED</td><td>N/A</td><td>-</td>
-	 *   </tr>
-	 * </tbody>
-	 * </table>
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %i18n;
-		attributeCollection.getI18n(attributes);
-		// profile
-		HTMLAttributeDeclaration adec = attributeCollection.getDeclaration(HTML40Namespace.ATTR_NAME_PROFILE);
-		if (adec != null)
-			attributes.putNamedItem(HTML40Namespace.ATTR_NAME_PROFILE, adec);
-	}
-
-	/**
-	 * HEAD has terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return Arrays.asList(terminators).iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHR.java
deleted file mode 100644
index 868b5c7..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHR.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
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * HR.
- */
-final class HedHR extends HedEmpty {
-
-	/**
-	 */
-	public HedHR(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.HR, collection);
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * %attrs
-	 * (align (left|center|right) #IMPLIED) ... should be defined locally.
-	 * (noshade (noshade) #IMPLIED)
-	 * (size %Pixels; #IMPLIED)
-	 * (width %Length; #IMPLIED)
-	 * (color %Color; #IMPLIED) ... D205514
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		// (align (left|center|right) #IMPLIED) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-		String[] values = {HTML40Namespace.ATTR_VALUE_LEFT, HTML40Namespace.ATTR_VALUE_CENTER, HTML40Namespace.ATTR_VALUE_RIGHT};
-		atype.setEnumValues(values);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr);
-
-		// the rest.
-		String[] names = {HTML40Namespace.ATTR_NAME_NOSHADE, HTML40Namespace.ATTR_NAME_SIZE, HTML40Namespace.ATTR_NAME_WIDTH, HTML40Namespace.ATTR_NAME_COLOR // D205514
-		};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHTML.java
deleted file mode 100644
index 99b6332..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHTML.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * HTML.
- */
-final class HedHTML extends HTMLElemDeclImpl {
-
-	private static String[] terminators = {HTML40Namespace.ElementName.HTML};
-
-	/**
-	 */
-	public HedHTML(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.HTML, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_HTML;
-		layoutType = LAYOUT_HIDDEN;
-		omitType = OMIT_BOTH;
-	}
-
-	/**
-	 * Create all attribute declarations.
-	 * This method is called once in the constructor of the super class.
-	 * The <code>HTML</code> element may have the following attributes:
-	 * <table>
-	 * <tbody>
-	 *   <tr>
-	 *     <th>NAME</th><th>TYPE</th><th>USAGE</th><th>DEFAULT (INITIAL) VALUE</th><th>MEMO</th>
-	 *   </tr>
-	 *   <tr>
-	 *     <td><code>%i18n;</code></td><td>-</td><td>-</td><td>-</td>
-	 *     <td>{@link PDCMDocImpl#getAttrDeclarationsI18n}</td>
-	 *   </tr>
-	 *   <tr>
-	 *     <td>version</td><td>CDATA</td><td>#FIXED</td>
-	 *     <td>{@link HTML_VERSION_TRANSITIONAL}</td><td>deplecated in HTML4.01</td>
-	 *   </tr>
-	 * </tbody>
-	 * </table>
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %i18n;
-		attributeCollection.getI18n(attributes);
-		// version
-		HTMLAttributeDeclaration adec = attributeCollection.getDeclaration(HTML40Namespace.ATTR_NAME_VERSION);
-		if (adec != null)
-			attributes.putNamedItem(HTML40Namespace.ATTR_NAME_VERSION, adec);
-	}
-
-	/**
-	 * HTML has terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return Arrays.asList(terminators).iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHeading.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHeading.java
deleted file mode 100644
index 6a17c16..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHeading.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * H[1-6].
- */
-final class HedHeading extends HedInlineContainer {
-
-	/**
-	 */
-	public HedHeading(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-		correctionType = CORRECT_EMPTY;
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * Create all attribute declarations.
-	 * This method is called once in the constructor of the super class.
-	 * The <code>H1</code> element may have the following attributes:
-	 * <table>
-	 * <tbody>
-	 *   <tr>
-	 *     <th>NAME</th><th>TYPE</th><th>USAGE</th><th>DEFAULT (INITIAL) VALUE</th><th>MEMO</th>
-	 *   </tr>
-	 *   <tr>
-	 *     <td>%attrs;</td><td>-</td><td>-</td><td>-</td><td>-</td>
-	 *   </tr>
-	 *   <tr>
-	 *     <td>%align;</td><td>-</td><td>-</td><td>-</td><td>-</td>
-	 *   </tr>
-	 * </tbody>
-	 * </table>
-	 * <p><b>%align;</b> means <code>align (left|center|right|justify) #IMPLIED</code>.
-	 * Unfortunately, this <code>align</code> is different from one in
-	 * <code>IMG</code> or <code>TABLE</code>.  So, the attribute declaration
-	 * of <code>align</code> should be localy created and it shouldn't be registered
-	 * in a <code>HCMDocImpl</code> instance.</p>
-	 * <p>However, %align is used in sevaral times.  I wouldn't write same code
-	 * in many times.  So, I add a new utility method into <code>CMUtil</code>
-	 * to create the attribute declaration.</p>
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-		// align
-		HTMLAttrDeclImpl attr = AttributeCollection.createAlignForParagraph();
-		if (attr != null)
-			attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr);
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIFRAME.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIFRAME.java
deleted file mode 100644
index 191615e..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIFRAME.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * IFRAME.
- */
-final class HedIFRAME extends HedFlowContainer {
-
-	/**
-	 */
-	public HedIFRAME(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.IFRAME, collection);
-		layoutType = LAYOUT_OBJECT;
-	}
-
-	/**
-	 * %coreattrs;
-	 * (longdesc %URI; #IMPLIED)
-	 * (name CDATA #IMPLIED)
-	 * (src %URI; #IMPLIED)
-	 * (frameborder (1|0) 1)
-	 * (marginwidth %Pixels; #IMPLIED)
-	 * (marginheight %Pixels; #IMPLIED)
-	 * (scrolling (yes|no|auto) auto)
-	 * (align %IAlign; #IMPLIED) ... should be defined locally.
-	 * (height %Length; #IMPLIED)
-	 * (width %Length; #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %coreattrs;
-		attributeCollection.getCore(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_LONGDESC, HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_SRC, HTML40Namespace.ATTR_NAME_FRAMEBORDER, HTML40Namespace.ATTR_NAME_MARGINWIDTH, HTML40Namespace.ATTR_NAME_MARGINHEIGHT, HTML40Namespace.ATTR_NAME_SCROLLING, HTML40Namespace.ATTR_NAME_HEIGHT, HTML40Namespace.ATTR_NAME_WIDTH};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-
-		// align
-		HTMLAttrDeclImpl attr = AttributeCollection.createAlignForImage();
-		if (attr != null)
-			attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr);
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.BUTTON};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIMG.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIMG.java
deleted file mode 100644
index 1e1805e..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIMG.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * IMG.
- */
-final class HedIMG extends HedEmpty {
-
-	/**
-	 */
-	public HedIMG(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.IMG, collection);
-		layoutType = LAYOUT_OBJECT;
-	}
-
-	/**
-	 * IMG.
-	 * %attrs;
-	 * (src %URI; #REQUIRED): should be defined locally.
-	 * (alt %Text; #REQUIRED)
-	 * (longdesc %URI; #IMPLIED)
-	 * (name CDATA #IMPLIED)
-	 * (height %Length; #IMPLIED)
-	 * (width %Length; #IMPLIED)
-	 * (usemap %URI; #IMPLIED)
-	 * (ismap (ismap) #IMPLIED)
-	 * (align %IAlign; #IMPLIED): should be defined locally.
-	 * (border %Pixels; #IMPLIED)
-	 * (hspace %Pixels; #IMPLIED)
-	 * (vspace %Pixels; #IMPLIED)
-	 * (mapfile %URI; #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		// (src %URI; #REQUIRED): should be defined locally.
-		HTMLCMDataTypeImpl atype = null;
-		HTMLAttrDeclImpl attr = null;
-		atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-		attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_SRC, atype, CMAttributeDeclaration.REQUIRED);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_SRC, attr);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_ALT, HTML40Namespace.ATTR_NAME_LONGDESC, HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_HEIGHT, HTML40Namespace.ATTR_NAME_WIDTH, HTML40Namespace.ATTR_NAME_USEMAP, HTML40Namespace.ATTR_NAME_ISMAP, HTML40Namespace.ATTR_NAME_BORDER, HTML40Namespace.ATTR_NAME_HSPACE, HTML40Namespace.ATTR_NAME_VSPACE, HTML40Namespace.ATTR_NAME_MAPFILE};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-
-		// align (local); should be defined locally.
-		attr = AttributeCollection.createAlignForImage();
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr);
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.PRE};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedINPUT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedINPUT.java
deleted file mode 100644
index 60b3049..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedINPUT.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * INPUT.
- */
-final class HedINPUT extends HedEmpty {
-
-	/**
-	 */
-	public HedINPUT(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.INPUT, collection);
-		layoutType = LAYOUT_OBJECT;
-	}
-
-	/**
-	 * INPUT.
-	 * %attrs;
-	 * (type %InputType; TEXT) ... should be defined locally.
-	 * (name CDATA #IMPLIED)
-	 * (value CDATA #IMPLIED)
-	 * (checked (checked) #IMPLIED)
-	 * (disabled (disabled) #IMPLIED)
-	 * (readonly (readonly) #IMPLIED)
-	 * (size CDATA #IMPLIED) ... should be defined locally.
-	 * (maxlength NUMBER #IMPLIED)
-	 * (src %URI; #IMPLIED)
-	 * (alt CDATA #IMPLIED) ... should be defined locally.
-	 * (usemap %URI; #IMPLIED)
-	 * (ismap (ismap) #IMPLIED)
-	 * (tabindex NUMBER #IMPLIED)
-	 * (accesskey %Character; #IMPLIED)
-	 * (onfocus %Script; #IMPLIED)
-	 * (onblur %Script; #IMPLIED)
-	 * (onselect %Script; #IMPLIED)
-	 * (onchange %Script; #IMPLIED)
-	 * (accept %ContentTypes; #IMPLIED)
-	 * (align %IAlign; #IMPLIED) ... should be defined locally.
-	 * (istyle CDATA #IMPLIED)
-	 * <<D215684
-	 * (width CDATA; #IMPLIED)
-	 * (height CDATA; #IMPLIED)
-	 * (border CDATA; #IMPLIED)
-	 * D215684
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		HTMLCMDataTypeImpl atype = null;
-		HTMLAttrDeclImpl attr = null;
-		// (type %InputType; TEXT) ... should be defined locally.
-		// NOTE: %InputType is ENUM;
-		// (text | password | checkbox | radio | submit | reset |
-		//  file | hidden | image | button)
-		atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-		String[] values = {HTML40Namespace.ATTR_VALUE_TEXT, HTML40Namespace.ATTR_VALUE_PASSWORD, HTML40Namespace.ATTR_VALUE_CHECKBOX, HTML40Namespace.ATTR_VALUE_RADIO, HTML40Namespace.ATTR_VALUE_SUBMIT, HTML40Namespace.ATTR_VALUE_RESET, HTML40Namespace.ATTR_VALUE_FILE, HTML40Namespace.ATTR_VALUE_HIDDEN, HTML40Namespace.ATTR_VALUE_IMAGE, HTML40Namespace.ATTR_VALUE_BUTTON};
-		atype.setEnumValues(values);
-		atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, HTML40Namespace.ATTR_VALUE_TEXT);
-		attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr);
-
-		// (size CDATA #IMPLIED) ... should be defined locally.
-		atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-		attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_SIZE, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_SIZE, attr);
-
-		// (alt CDATA #IMPLIED) ... should be defined locally.
-		atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-		attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_ALT, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALT, attr);
-
-		// (align %IAlign; #IMPLIED) ... should be defined locally.
-		attr = AttributeCollection.createAlignForImage();
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr);
-
-		// the rest.
-		String[] names = {HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_VALUE, HTML40Namespace.ATTR_NAME_CHECKED, HTML40Namespace.ATTR_NAME_DISABLED, HTML40Namespace.ATTR_NAME_READONLY, HTML40Namespace.ATTR_NAME_SIZE, HTML40Namespace.ATTR_NAME_MAXLENGTH, HTML40Namespace.ATTR_NAME_SRC, HTML40Namespace.ATTR_NAME_ALT, HTML40Namespace.ATTR_NAME_USEMAP, HTML40Namespace.ATTR_NAME_ISMAP, HTML40Namespace.ATTR_NAME_TABINDEX, HTML40Namespace.ATTR_NAME_ACCESSKEY, HTML40Namespace.ATTR_NAME_ONFOCUS, HTML40Namespace.ATTR_NAME_ONBLUR, HTML40Namespace.ATTR_NAME_ONSELECT, HTML40Namespace.ATTR_NAME_ONCHANGE, HTML40Namespace.ATTR_NAME_ACCEPT, HTML40Namespace.ATTR_NAME_ALIGN, HTML40Namespace.ATTR_NAME_ISTYLE,
-		//<<D215684
-					HTML40Namespace.ATTR_NAME_WIDTH, HTML40Namespace.ATTR_NAME_HEIGHT, HTML40Namespace.ATTR_NAME_BORDER
-		//<D215684
-		};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.BUTTON};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedISINDEX.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedISINDEX.java
deleted file mode 100644
index 8c744d6..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedISINDEX.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * ISINDEX.
- */
-final class HedISINDEX extends HedEmpty {
-
-	/**
-	 */
-	public HedISINDEX(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.ISINDEX, collection);
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * ISINDEX.
-	 * %coreattrs;
-	 * %i18n;
-	 * (prompt %Text; #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %coreattrs;
-		attributeCollection.getCore(attributes);
-		// %i18n;
-		attributeCollection.getI18n(attributes);
-
-		HTMLAttributeDeclaration attr = attributeCollection.getDeclaration(HTML40Namespace.ATTR_NAME_PROMPT);
-		if (attr != null)
-			attributes.putNamedItem(HTML40Namespace.ATTR_NAME_PROMPT, attr);
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.BUTTON, HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedInlineContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedInlineContainer.java
deleted file mode 100644
index dd08221..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedInlineContainer.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-/**
- * Base class for (%inline;)* containers.
- */
-abstract class HedInlineContainer extends HTMLElemDeclImpl {
-
-	/**
-	 * HedInlineContainer.
-	 * @param elementName java.lang.String
-	 * @param collection ElementCollection
-	 */
-	public HedInlineContainer(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_INLINE_CONTAINER;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLABEL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLABEL.java
deleted file mode 100644
index e001032..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLABEL.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * LABEL.
- */
-final class HedLABEL extends HedInlineContainer {
-
-	/**
-	 */
-	public HedLABEL(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.LABEL, collection);
-	}
-
-	/**
-	 * %attrs;
-	 * (for IDREF #IMPLIED) ... should be defined locally.
-	 * (accesskey %Character; #IMPLIED)
-	 * (onfocus %Script; #IMPLIED)
-	 * (onblur %Script; #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		// (for IDREF #IMPLIED) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.IDREF);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_FOR, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_FOR, attr);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_ACCESSKEY, HTML40Namespace.ATTR_NAME_ONFOCUS, HTML40Namespace.ATTR_NAME_ONBLUR};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 * Exclusion.
-	 * <code>LABEL</code> has the exclusion.
-	 * It is <code>LABEL</code> itself.
-	 */
-	public CMContent getExclusion() {
-		if (exclusion != null)
-			return exclusion; // already created.
-		if (elementCollection == null)
-			return null;
-
-		exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-		CMNode label = elementCollection.getNamedItem(HTML40Namespace.ElementName.LABEL);
-		if (label != null)
-			exclusion.appendChild(label);
-
-		return exclusion;
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.BUTTON, HTML40Namespace.ElementName.LABEL};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLEGEND.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLEGEND.java
deleted file mode 100644
index 5e3928b..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLEGEND.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.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * LEGEND.
- */
-final class HedLEGEND extends HedInlineContainer {
-
-	/**
-	 */
-	public HedLEGEND(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.LEGEND, collection);
-	}
-
-	/**
-	 * (accesskey %Character; #IMPLIED)
-	 * (align %LAlign; #IMPLIED) ... shuld be defined locally.
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_ACCESSKEY};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-
-		// align
-		HTMLAttrDeclImpl attr = AttributeCollection.createAlignForLegend();
-		if (attr != null)
-			attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLI.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLI.java
deleted file mode 100644
index f43785e..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLI.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-
-/**
- * LI.
- */
-final class HedLI extends HedFlowContainer {
-
-	private static String[] terminators = {HTML40Namespace.ElementName.LI};
-
-	/**
-	 */
-	public HedLI(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.LI, collection);
-		layoutType = LAYOUT_BLOCK;
-		omitType = OMIT_END_DEFAULT;
-	}
-
-	/**
-	 * %attrs;
-	 * (type %LIStyle; #IMPLIED) ... should be defined locally.
-	 * (value NUMBER #IMPLIED) ... should be defined locally.
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		// (type %LIStyle; #IMPLIED) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LI_STYLE);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr);
-
-		// (value NUMBER #IMPLIED) ... should be defined locally.
-		atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-		attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_VALUE, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_VALUE, attr);
-	}
-
-	/**
-	 * LI has terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return Arrays.asList(terminators).iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLINK.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLINK.java
deleted file mode 100644
index bfe132c..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLINK.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.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-
-/**
- * LINK.
- */
-final class HedLINK extends HedEmpty {
-
-	/**
-	 */
-	public HedLINK(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.LINK, collection);
-		layoutType = LAYOUT_HIDDEN;
-	}
-
-	/**
-	 * LINK.
-	 * %attrs;
-	 * (charset %Charset; #IMPLIED)
-	 * (href %URI; #IMPLIED)
-	 * (hreflang %LanguageCode; #IMPLIED)
-	 * (type %ContentType; #IMPLIED): should be defined locally.
-	 * (rel %LinkTypes; #IMPLIED)
-	 * (rev %LinkTypes; #IMPLIED)
-	 * (media %MediaDesc; #IMPLIED)
-	 * (target %FrameTarget; #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_CHARSET, HTML40Namespace.ATTR_NAME_HREF, HTML40Namespace.ATTR_NAME_HREFLANG, HTML40Namespace.ATTR_NAME_REL, HTML40Namespace.ATTR_NAME_REV, HTML40Namespace.ATTR_NAME_MEDIA, HTML40Namespace.ATTR_NAME_TARGET};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-
-		// (type %ContentType; #IMPLIED)
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedListItemContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedListItemContainer.java
deleted file mode 100644
index a7ccf63..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedListItemContainer.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.wst.html.core.internal.contentmodel;
-
-
-
-/**
- * Base class for list item container declarations.
- * - OL, UL, MENU, DIR.
- */
-abstract class HedListItemContainer extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedListItemContainer(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_LI_CONTAINER;
-		correctionType = CORRECT_EMPTY;
-		layoutType = LAYOUT_BLOCK;
-		indentChild = true;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMAP.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMAP.java
deleted file mode 100644
index 2a3c2a7..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMAP.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-
-
-
-/**
- * MAP.
- */
-final class HedMAP extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedMAP(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.MAP, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_MAP;
-		layoutType = LAYOUT_OBJECT;
-		indentChild = true;
-	}
-
-	/**
-	 * %attrs;
-	 * (name CDATA #REQUIRED) ... should be defined locally
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		// (name CDATA #REQUIRED) ... should be defined locally
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_NAME, atype, CMAttributeDeclaration.REQUIRED);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_NAME, attr);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMARQUEE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMARQUEE.java
deleted file mode 100644
index f8653e2..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMARQUEE.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-
-/**
- * MARQUEE.
- */
-final class HedMARQUEE extends HedFlowContainer {
-
-	/**
-	 */
-	public HedMARQUEE(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.MARQUEE, collection);
-		layoutType = LAYOUT_OBJECT;
-	}
-
-	/**
-	 * %attrs;
-	 * (behavior (scroll|slide|alternate) scroll)
-	 * (bgcolor %Color; #IMPLIED)
-	 * (direction (left|right|up|down) left)
-	 * (height CDATA #IMPLIED) ... should be defined locally.
-	 * (hspace NUMBER #IMPLIED) ... should be defined locally.
-	 * (loop CDATA #IMPLIED)
-	 * (scrollamount NUMBER #IMPLIED)
-	 * (scrolldelay NUMBER #IMPLIED)
-	 * (vspace NUMBER #IMPLIED) ... should be defined locally.
-	 * (width CDATA #IMPLIED) ... should be defined locally.
-	 * (truespeed (truespeed) #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_BEHAVIOR, HTML40Namespace.ATTR_NAME_BGCOLOR, HTML40Namespace.ATTR_NAME_DIRECTION, HTML40Namespace.ATTR_NAME_LOOP, HTML40Namespace.ATTR_NAME_SCROLLAMOUNT, HTML40Namespace.ATTR_NAME_SCROLLDELAY, HTML40Namespace.ATTR_NAME_TRUESPEED};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-
-		HTMLCMDataTypeImpl atype = null;
-		HTMLAttrDeclImpl attr = null;
-		// (height CDATA #IMPLIED) ... should be defined locally.
-		atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-		attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_HEIGHT, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_HEIGHT, attr);
-
-		// (width CDATA #IMPLIED) ... should be defined locally.
-		attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_WIDTH, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_WIDTH, attr);
-
-		// (hspace NUMBER #IMPLIED) ... should be defined locally.
-		atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-		attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_HSPACE, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_HSPACE, attr);
-
-		// (vspace NUMBER #IMPLIED) ... should be defined locally.
-		attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_VSPACE, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_VSPACE, attr);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMENU.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMENU.java
deleted file mode 100644
index 0142558..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMENU.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * MENU/DIR.
- */
-final class HedMENU extends HedListItemContainer {
-
-	/**
-	 */
-	public HedMENU(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-	}
-
-	/**
-	 * MENU/DIR.
-	 * (compact (compact) #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_COMPACT};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 * Exclusion.
-	 * <code>MENU/DIR</code> has the exclusion.
-	 * It is <code>%block;</code>.
-	 * %block; is:
-	 * P | %heading; | %list; | %preformatted; | DL | DIV | CENTER |
-	 * NOSCRIPT | NOFRAMES | BLOCKQUOTE | FORM | ISINDEX | HR |
-	 * TABLE | FIELDSET | ADDRESS.
-	 * %heading; is: H1 | H2 | H3 | H4 | H5 | H6.
-	 * %list; is : UL | OL | DIR | MENU.
-	 * %preformatted; is PRE.
-	 */
-	public CMContent getExclusion() {
-		if (exclusion != null)
-			return exclusion; // already created.
-		if (elementCollection == null)
-			return null;
-
-		// %block;
-		exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-		String[] names = {HTML40Namespace.ElementName.P, HTML40Namespace.ElementName.H1, HTML40Namespace.ElementName.H2, HTML40Namespace.ElementName.H3, HTML40Namespace.ElementName.H4, HTML40Namespace.ElementName.H5, HTML40Namespace.ElementName.H6, HTML40Namespace.ElementName.UL, HTML40Namespace.ElementName.OL, HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU, HTML40Namespace.ElementName.PRE, HTML40Namespace.ElementName.DL, HTML40Namespace.ElementName.DIV, HTML40Namespace.ElementName.CENTER, HTML40Namespace.ElementName.NOSCRIPT, HTML40Namespace.ElementName.NOFRAMES, HTML40Namespace.ElementName.BLOCKQUOTE, HTML40Namespace.ElementName.FORM, HTML40Namespace.ElementName.ISINDEX, HTML40Namespace.ElementName.HR, HTML40Namespace.ElementName.TABLE, HTML40Namespace.ElementName.FIELDSET, HTML40Namespace.ElementName.ADDRESS};
-		elementCollection.getDeclarations(exclusion, Arrays.asList(names).iterator());
-		return exclusion;
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMETA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMETA.java
deleted file mode 100644
index d5b232c..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMETA.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-
-/**
- * META.
- */
-final class HedMETA extends HedEmpty {
-
-	/**
-	 */
-	public HedMETA(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.META, collection);
-		layoutType = LAYOUT_HIDDEN;
-	}
-
-	/**
-	 * META.
-	 * %i18n;
-	 * (http-equiv NAME #IMPLIED)
-	 * (name NAME #IMPLIED) ... should be defined locally.
-	 * (content CDATA #REQUIRED)
-	 * (scheme CDATA #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %i18n;
-		attributeCollection.getI18n(attributes);
-
-		// (name NAME #IMPLIED) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.NAME);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_NAME, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_NAME, attr);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_HTTP_EQUIV, HTML40Namespace.ATTR_NAME_CONTENT, HTML40Namespace.ATTR_NAME_SCHEME};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMarkChanges.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMarkChanges.java
deleted file mode 100644
index 92c3d0c..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMarkChanges.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * (INS|DEL)
- */
-final class HedMarkChanges extends HedFlowContainer {
-
-	/**
-	 */
-	public HedMarkChanges(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-	}
-
-	/**
-	 * %attrs;
-	 * (cite %URI; #IMPLIED)
-	 * (datetime %Datetime; #IMPLIED) 
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_CITE, HTML40Namespace.ATTR_NAME_DATETIME};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOBR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOBR.java
deleted file mode 100644
index 42adbd1..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOBR.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.wst.html.core.internal.contentmodel;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * NOBR -- not standard tag but it is commonly used.
- */
-final class HedNOBR extends HedInlineContainer {
-
-
-	public HedNOBR(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.NOBR, collection);
-		correctionType = HTMLElementDeclaration.CORRECT_DUPLICATED;
-	}
-
-	protected void createAttributeDeclarations() {
-		// No attributes is defined.
-		if (attributes != null)
-			return;
-		attributes = new CMNamedNodeMapImpl();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOEMBED.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOEMBED.java
deleted file mode 100644
index ed71166..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOEMBED.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-
-/**
- * NOEMBED.
- */
-final class HedNOEMBED extends HedFlowContainer {
-
-	/**
-	 */
-	public HedNOEMBED(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.NOEMBED, collection);
-	}
-
-	/**
-	 * %coreattrs;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %coreattrs;
-		attributeCollection.getCore(attributes);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOFRAMES.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOFRAMES.java
deleted file mode 100644
index 2ad931b..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOFRAMES.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.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-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;
-
-/**
- * NOFRAMES.
- */
-final class HedNOFRAMES extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedNOFRAMES(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.NOFRAMES, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_NOFRAMES_CONTENT;
-		layoutType = LAYOUT_HIDDEN;
-	}
-
-	/**
-	 * %attrs;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-	}
-
-	/**
-	 * Exclusion.
-	 * <code>NOFRAMES</code> has the exclusion.
-	 * It is <code>NOFRAMES</code> itself.
-	 */
-	public CMContent getExclusion() {
-		if (exclusion != null)
-			return exclusion; // already created.
-		if (elementCollection == null)
-			return null;
-
-		exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-		CMNode label = elementCollection.getNamedItem(HTML40Namespace.ElementName.NOFRAMES);
-		if (label != null)
-			exclusion.appendChild(label);
-
-		return exclusion;
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU, HTML40Namespace.ElementName.NOFRAMES};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOSCRIPT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOSCRIPT.java
deleted file mode 100644
index 2747c23..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOSCRIPT.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * NOSCRIPT.
- */
-final class HedNOSCRIPT extends HedFlowContainer {
-
-	/**
-	 */
-	public HedNOSCRIPT(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.NOSCRIPT, collection);
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * %attrs;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOBJECT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOBJECT.java
deleted file mode 100644
index ad48e2f..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOBJECT.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * OBJECT.
- */
-final class HedOBJECT extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedOBJECT(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.OBJECT, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_PARAM_CONTAINER;
-		layoutType = LAYOUT_OBJECT;
-		indentChild = true;
-	}
-
-	/**
-	 * %attrs;
-	 * %reserved; ... empty.
-	 * (declare (declare) #IMPLIED)
-	 * (classid %URI; #IMPLIED)
-	 * (codebase %URI; #IMPLIED)
-	 * (data %URI; #IMPLIED)
-	 * (type %ContentType; #IMPLIED)
-	 * (codetype %ContentType; #IMPLIED)
-	 * (archive CDATA #IMPLIED)
-	 * (standby %Text; #IMPLIED)
-	 * (height %Length; #IMPLIED)
-	 * (width %Length; #IMPLIED)
-	 * (usemap %URI; #IMPLIED)
-	 * (name CDATA #IMPLIED)
-	 * (tabindex NUMBER #IMPLIED)
-	 * (align %IAlign; #IMPLIED) ... should be defined locally.
-	 * (border %Pixels; #IMPLIED)
-	 * (hspace %Pixels; #IMPLIED)
-	 * (vspace %Pixels; #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-		// %reserved; ... empty.
-
-		String[] names = {HTML40Namespace.ATTR_NAME_DECLARE, HTML40Namespace.ATTR_NAME_CLASSID, HTML40Namespace.ATTR_NAME_CODEBASE, HTML40Namespace.ATTR_NAME_DATA, HTML40Namespace.ATTR_NAME_TYPE, HTML40Namespace.ATTR_NAME_CODETYPE, HTML40Namespace.ATTR_NAME_ARCHIVE, HTML40Namespace.ATTR_NAME_STANDBY, HTML40Namespace.ATTR_NAME_HEIGHT, HTML40Namespace.ATTR_NAME_WIDTH, HTML40Namespace.ATTR_NAME_USEMAP, HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_TABINDEX, HTML40Namespace.ATTR_NAME_BORDER, HTML40Namespace.ATTR_NAME_HSPACE, HTML40Namespace.ATTR_NAME_VSPACE};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-		// %align; ... should be defined locally.
-		HTMLAttrDeclImpl attr = AttributeCollection.createAlignForImage();
-		if (attr != null)
-			attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr);
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.PRE};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOL.java
deleted file mode 100644
index 6668b90..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOL.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * OL.
- */
-final class HedOL extends HedListItemContainer {
-
-	/**
-	 */
-	public HedOL(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.OL, collection);
-	}
-
-	/**
-	 * OL.
-	 * (type %OLStyle; #IMPLIED) ... should be defined locally.
-	 * (compact (compact) #IMPLIED)
-	 * (start NUMBER #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		// (type %OLStyle; #IMPLIED) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.OL_STYLE);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr);
-
-		// the rest.
-		String[] names = {HTML40Namespace.ATTR_NAME_COMPACT, HTML40Namespace.ATTR_NAME_START};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTGROUP.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTGROUP.java
deleted file mode 100644
index 87a3fc3..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTGROUP.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-
-/**
- * OPTGROUP.
- */
-final class HedOPTGROUP extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedOPTGROUP(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.OPTGROUP, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_OPTION_CONTAINER;
-		layoutType = LAYOUT_HIDDEN;
-		indentChild = true;
-	}
-
-	/**
-	 * %attrs;
-	 * (disabled (disabled) #IMPLIED)
-	 * (label %Text; #REQUIRED) ... should be defined locally.
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-		// (disabled (disabled) #IMPLIED)
-		String[] names = {HTML40Namespace.ATTR_NAME_DISABLED};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-
-		// (label %Text; #REQUIRED) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_LABEL, atype, CMAttributeDeclaration.REQUIRED);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_LABEL, attr);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTION.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTION.java
deleted file mode 100644
index b225ee8..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTION.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * OPTION.
- */
-final class HedOPTION extends HedPcdata {
-
-	private static String[] terminators = {HTML40Namespace.ElementName.OPTION};
-
-	/**
-	 */
-	public HedOPTION(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.OPTION, collection);
-		layoutType = LAYOUT_HIDDEN;
-		omitType = OMIT_END;
-	}
-
-	/**
-	 * OPTION.
-	 * %attrs;
-	 * (selected (selected) #IMPLIED)
-	 * (disabled (disabled) #IMPLIED)
-	 * (label %Text; #IMPLIED)
-	 * (value CDATA #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_SELECTED, HTML40Namespace.ATTR_NAME_DISABLED, HTML40Namespace.ATTR_NAME_LABEL, HTML40Namespace.ATTR_NAME_VALUE};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 * OPTION has terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return Arrays.asList(terminators).iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedP.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedP.java
deleted file mode 100644
index 70feed7..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedP.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Vector;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * P.
- */
-final class HedP extends HedInlineContainer {
-
-	private static Collection terminators = null;
-
-	/**
-	 */
-	public HedP(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.P, collection);
-		correctionType = CORRECT_EMPTY;
-		layoutType = LAYOUT_BLOCK;
-		omitType = OMIT_END;
-	}
-
-	/**
-	 * Create all attribute declarations.
-	 * This method is called once in the constructor of the super class.
-	 * The <code>P</code> element may have the following attributes:
-	 * <table>
-	 * <tbody>
-	 *   <tr>
-	 *     <th>NAME</th><th>TYPE</th><th>USAGE</th><th>DEFAULT (INITIAL) VALUE</th><th>MEMO</th>
-	 *   </tr>
-	 *   <tr>
-	 *     <td>%attrs;</td><td>-</td><td>-</td><td>-</td><td>-</td>
-	 *   </tr>
-	 *   <tr>
-	 *     <td>%align;</td><td>-</td><td>-</td><td>-</td><td>-</td>
-	 *   </tr>
-	 * </tbody>
-	 * </table>
-	 * <p><b>%align;</b> means <code>align (left|center|right|justify) #IMPLIED</code>.
-	 * Unfortunately, this <code>align</code> is different from one in
-	 * <code>IMG</code> or <code>TABLE</code>.  So, the attribute declaration
-	 * of <code>align</code> should be localy created and it shouldn't be registered
-	 * in a <code>HCMDocImpl</code> instance.</p>
-	 * <p>However, %align is used in sevaral times.  I wouldn't write same code
-	 * in many times.  So, I add a new utility method into <code>CMUtil</code>
-	 * to create the attribute declaration.</p>
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-		attributes = new CMNamedNodeMapImpl();
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-		// align
-		HTMLAttrDeclImpl adec = AttributeCollection.createAlignForParagraph();
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, adec);
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-		String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-		return prohibitedAncestors;
-	}
-
-	/**
-	 * Return names of terminators.
-	 * <code>P</code> has terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		if (terminators != null)
-			return terminators.iterator();
-		//<<D217982
-		terminators = new Vector();
-		terminators.addAll(elementCollection.getNamesOfBlock());
-		terminators.add(HTML40Namespace.ElementName.LI);
-		terminators.add(HTML40Namespace.ElementName.DT);
-		terminators.add(HTML40Namespace.ElementName.DD);
-		//D217982
-		return terminators.iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPARAM.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPARAM.java
deleted file mode 100644
index 5541a1f..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPARAM.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-
-/**
- * PARAM.
- */
-final class HedPARAM extends HedEmpty {
-
-	/**
-	 */
-	public HedPARAM(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.PARAM, collection);
-		layoutType = LAYOUT_HIDDEN;
-	}
-
-	/**
-	 * PARAM.
-	 * (id ID #IMPLIED)
-	 * (name CDATA #REQUIRED) ... should be defined locally.
-	 * (value CDATA #IMPLIED)
-	 * (valuetype (DATA|REF|OBJECT) DATA)
-	 * (type %ContentType; #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		String[] names = {HTML40Namespace.ATTR_NAME_ID, HTML40Namespace.ATTR_NAME_VALUE, HTML40Namespace.ATTR_NAME_VALUETYPE, HTML40Namespace.ATTR_NAME_TYPE};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-
-		// (name CDATA #REQUIRED) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_NAME, atype, CMAttributeDeclaration.REQUIRED);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_NAME, attr);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPRE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPRE.java
deleted file mode 100644
index 2ba3479..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPRE.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * PRE.
- */
-final class HedPRE extends HedInlineContainer {
-
-	/**
-	 * PRE element should keep spaces in its source.
-	 */
-	public HedPRE(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.PRE, collection);
-		// CORRECT_EMPTY - GROUP_COMPACT
-		correctionType = CORRECT_EMPTY;
-
-		keepSpaces = true;
-	}
-
-	/**
-	 * %attrs;
-	 * (width NUMBER #IMPLIED) ... should be defined locally.
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-		// (width NUMBER #IMPLIED) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_WIDTH, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_WIDTH, attr);
-	}
-
-	/**
-	 * Exclusion.
-	 * <code>PRE</code> has the exclusion.
-	 * It is <code>%pre.exclusion;</code>.
-	 * %pre.exclusion is:
-	 * IMG | OBJECT | APPLET | BIG | SMALL | SUB | SUP | FONT | BASEFONT
-	 */
-	public CMContent getExclusion() {
-		if (exclusion != null)
-			return exclusion; // already created.
-		if (elementCollection == null)
-			return null;
-
-		exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-		String[] names = {HTML40Namespace.ElementName.IMG, HTML40Namespace.ElementName.OBJECT, HTML40Namespace.ElementName.APPLET, HTML40Namespace.ElementName.BIG, HTML40Namespace.ElementName.SMALL, HTML40Namespace.ElementName.SUB, HTML40Namespace.ElementName.SUP, HTML40Namespace.ElementName.FONT, HTML40Namespace.ElementName.BASEFONT};
-		elementCollection.getDeclarations(exclusion, Arrays.asList(names).iterator());
-
-		return exclusion;
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPcdata.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPcdata.java
deleted file mode 100644
index 5561495..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPcdata.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-
-/**
- * Base class for PCDATA type element declarations.<br>
- */
-abstract class HedPcdata extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedPcdata(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_PCDATA;
-	}
-
-	/**
-	 * Content.<br>
-	 * PCDATA type always returns <code>null</code>.
-	 * <br>
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMContent
-	 */
-	public CMContent getContent() {
-		return null;
-	}
-
-	/**
-	 * Content type.<br>
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.PCDATA;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPhrase.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPhrase.java
deleted file mode 100644
index 0e680d5..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPhrase.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.wst.html.core.internal.contentmodel;
-
-
-
-/**
- * %phrase;
- */
-final class HedPhrase extends HedInlineContainer {
-
-	/**
-	 */
-	public HedPhrase(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-		correctionType = HTMLElementDeclaration.CORRECT_DUPLICATED;
-	}
-
-	/**
-	 * %attrs;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedQ.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedQ.java
deleted file mode 100644
index 185b757..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedQ.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
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * Q.
- */
-final class HedQ extends HedInlineContainer {
-
-	/**
-	 */
-	public HedQ(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.Q, collection);
-		correctionType = CORRECT_DUPLICATED;
-	}
-
-	/**
-	 * %attrs;
-	 * (cite %URI; #IMPLIED) 
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_CITE};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSCRIPT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSCRIPT.java
deleted file mode 100644
index ae910b7..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSCRIPT.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-
-/**
- * SCRIPT.
- */
-final class HedSCRIPT extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedSCRIPT(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.SCRIPT, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_CDATA;
-		layoutType = LAYOUT_OBJECT;
-	}
-
-	/**
-	 * SCRIPT.
-	 * (charset %Charset; #IMPLIED)
-	 * (type %ContentType; #REQUIRED) ... should be defined locally.
-	 * (language CDATA #IMPLIED)
-	 * (src %URI; #IMPLIED)
-	 * (defer (defer) #IMPLIED)
-	 * (event CDATA #IMPLIED)
-	 * (for %URI; #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		String[] names = {HTML40Namespace.ATTR_NAME_CHARSET, HTML40Namespace.ATTR_NAME_LANGUAGE, HTML40Namespace.ATTR_NAME_SRC, HTML40Namespace.ATTR_NAME_DEFER, HTML40Namespace.ATTR_NAME_EVENT, HTML40Namespace.ATTR_NAME_FOR};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-
-		// (type %ContentType; #REQUIRED) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE);
-		atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, "text/javascript"); //$NON-NLS-1$
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.REQUIRED);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr);
-	}
-
-	/**
-	 * <code>SCRIPT</code> is CDATA type.
-	 * So, the method always returns <code>null</code>.
-	 * <br>
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMContent
-	 */
-	public CMContent getContent() {
-		return null;
-	}
-
-	/**
-	 * CDATA content.<br>
-	 * @return int
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.CDATA;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSELECT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSELECT.java
deleted file mode 100644
index 78c3a08..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSELECT.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.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * SELECT.
- */
-final class HedSELECT extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedSELECT(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.SELECT, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_SELECT;
-		layoutType = LAYOUT_OBJECT;
-		indentChild = true;
-	}
-
-	/**
-	 * %attrs;
-	 * %reserved;
-	 * (name CDATA #IMPLIED)
-	 * (size NUMBER #IMPLIED) ... should be defined locally.
-	 * (multiple (multiple) #IMPLIED)
-	 * (disabled (disabled) #IMPLIED)
-	 * (tabindex NUMBER #IMPLIED)
-	 * (onfocus %Script; #IMPLIED)
-	 * (onblur %Script; #IMPLIED)
-	 * (onchange %Script; #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		// (size NUMBER #IMPLIED) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_SIZE, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_SIZE, attr);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_MULTIPLE, HTML40Namespace.ATTR_NAME_DISABLED, HTML40Namespace.ATTR_NAME_TABINDEX, HTML40Namespace.ATTR_NAME_ONFOCUS, HTML40Namespace.ATTR_NAME_ONBLUR, HTML40Namespace.ATTR_NAME_ONCHANGE};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.BUTTON};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSPAN.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSPAN.java
deleted file mode 100644
index 42932f6..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSPAN.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-
-/**
- * SPAN.
- */
-final class HedSPAN extends HedInlineContainer {
-
-	/**
-	 * SPAN.
-	 */
-	public HedSPAN(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.SPAN, collection);
-	}
-
-	/**
-	 * %attrs;
-	 * %reserved; ... empty.
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIBase.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIBase.java
deleted file mode 100644
index 46c7a80..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIBase.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-
-
-
-/**
- * Base class for SSI declarations.
- */
-abstract class HedSSIBase extends HedEmpty {
-
-	/**
-	 */
-	public HedSSIBase(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-		layoutType = LAYOUT_OBJECT;
-	}
-
-	/**
-	 */
-	public int getFormatType() {
-		return HTMLElementDeclaration.FORMAT_SSI;
-	}
-
-	/**
-	 */
-	public boolean supports(String propName) {
-		if (propName.equals(HTMLCMProperties.IS_SSI))
-			return true;
-		return super.supports(propName);
-	}
-
-	/*
-	 */
-	public Object getProperty(String propName) {
-		if (propName.equals(HTMLCMProperties.IS_SSI))
-			return new Boolean(true);
-		return super.getProperty(propName);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIConfig.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIConfig.java
deleted file mode 100644
index b8406a9..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIConfig.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * SSI:CONFIG.
- */
-final class HedSSIConfig extends HedSSIBase {
-
-	/**
-	 */
-	public HedSSIConfig(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.SSI_CONFIG, collection);
-	}
-
-	/**
-	 * SSI:CONFIG.
-	 * (errmsg CDATA #IMPLIED)
-	 * (sizefmt CDATA #IMPLIED)
-	 * (timefmt CDATA #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		String[] names = {HTML40Namespace.ATTR_NAME_ERRMSG, HTML40Namespace.ATTR_NAME_SIZEFMT, HTML40Namespace.ATTR_NAME_TIMEFMT};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIEcho.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIEcho.java
deleted file mode 100644
index 4738812..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIEcho.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * SSI:ECHO.
- */
-final class HedSSIEcho extends HedSSIBase {
-
-	/**
-	 */
-	public HedSSIEcho(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.SSI_ECHO, collection);
-	}
-
-	/**
-	 * SSI:ECHO
-	 * (var CDATA #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		String[] names = {HTML40Namespace.ATTR_NAME_VAR};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIExec.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIExec.java
deleted file mode 100644
index 2824d57..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIExec.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * SSI:EXEC.
- */
-final class HedSSIExec extends HedSSIBase {
-
-	/**
-	 */
-	public HedSSIExec(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.SSI_EXEC, collection);
-	}
-
-	/**
-	 * SSI:EXEC
-	 * (cgi %URI; #IMPLIED)
-	 * (cmd CDATA #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		String[] names = {HTML40Namespace.ATTR_NAME_CGI, HTML40Namespace.ATTR_NAME_CMD};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFlastmod.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFlastmod.java
deleted file mode 100644
index 50ebdf9..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFlastmod.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * SSI:FLASTMOD.
- */
-final class HedSSIFlastmod extends HedSSIBase {
-
-	/**
-	 */
-	public HedSSIFlastmod(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.SSI_FLASTMOD, collection);
-	}
-
-	/**
-	 * SSI:FLASTMOD
-	 * (file %URI; #IMPLIED)
-	 * (virtual %URI #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		String[] names = {HTML40Namespace.ATTR_NAME_FILE, HTML40Namespace.ATTR_NAME_VIRTUAL};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFsize.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFsize.java
deleted file mode 100644
index f2bdbf0..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFsize.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * SSI:FSIZE.
- */
-final class HedSSIFsize extends HedSSIBase {
-
-	/**
-	 */
-	public HedSSIFsize(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.SSI_FSIZE, collection);
-	}
-
-	/**
-	 * SSI:FSIZE
-	 * (file %URI; #IMPLIED)
-	 * (virtual %URI #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		String[] names = {HTML40Namespace.ATTR_NAME_FILE, HTML40Namespace.ATTR_NAME_VIRTUAL};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIInclude.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIInclude.java
deleted file mode 100644
index 63224d8..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIInclude.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * SSI:INCLUDE.
- */
-final class HedSSIInclude extends HedSSIBase {
-
-	/**
-	 */
-	public HedSSIInclude(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.SSI_INCLUDE, collection);
-	}
-
-	/**
-	 * SSI:INCLUDE
-	 * (file %URI; #IMPLIED)
-	 * (virtual %URI #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		String[] names = {HTML40Namespace.ATTR_NAME_FILE, HTML40Namespace.ATTR_NAME_VIRTUAL};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIPrintenv.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIPrintenv.java
deleted file mode 100644
index bc10b56..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIPrintenv.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
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * SSI:PRINTENV.
- */
-final class HedSSIPrintenv extends HedSSIBase {
-
-	/**
-	 */
-	public HedSSIPrintenv(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.SSI_PRINTENV, collection);
-	}
-
-	/**
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-	}
-
-	/**
-	 * SSI:PRINTENV has no attributes.  So, this method should
-	 * always return <code>null</code>.
-	 * Note: Since somebody doesn't expect null is returned, return the empty attribute
-	 * like a custom tag which doesn't have attributes
-	 */
-	public CMNamedNodeMap getAttributes() {
-		return super.getAttributes();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSISet.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSISet.java
deleted file mode 100644
index 182b85c..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSISet.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * SSI:SET.
- */
-final class HedSSISet extends HedSSIBase {
-
-	/**
-	 */
-	public HedSSISet(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.SSI_SET, collection);
-	}
-
-	/**
-	 * SSI:SET
-	 * (var CDATA #IMPLIED)
-	 * (value CDATA #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		String[] names = {HTML40Namespace.ATTR_NAME_VAR, HTML40Namespace.ATTR_NAME_VALUE};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSTYLE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSTYLE.java
deleted file mode 100644
index 985b7fa..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSTYLE.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.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-
-/**
- * STYLE.
- */
-final class HedSTYLE extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedSTYLE(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.STYLE, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_CDATA;
-		layoutType = LAYOUT_HIDDEN;
-	}
-
-	/**
-	 * STYLE
-	 * %i18n;
-	 * (type %ContentType; #REQUIRED) ... should be defined locally.
-	 * (media %MediaDesc; #IMPLIED)
-	 * (title %Text; #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %i18n;
-		attributeCollection.getI18n(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_MEDIA, HTML40Namespace.ATTR_NAME_TITLE};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-		// (type %ContentType; #REQUIRED) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE);
-		atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, "text/css"); //$NON-NLS-1$
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.REQUIRED);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr);
-	}
-
-	/**
-	 * Content.<br>
-	 * <code>STYLE</code> is CDATA content type.  So, it always returns <code>null</code>.
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMContent
-	 */
-	public CMContent getContent() {
-		return null;
-	}
-
-	/**
-	 * CDATA content.<br>
-	 * @return int
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.CDATA;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedScripts.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedScripts.java
deleted file mode 100644
index 76bf70e..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedScripts.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * SUB and SUP.
- */
-final class HedScripts extends HedInlineContainer {
-
-	/**
-	 */
-	public HedScripts(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-		correctionType = CORRECT_EMPTY;
-	}
-
-	/**
-	 * %attrs;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.PRE};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTABLE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTABLE.java
deleted file mode 100644
index bed267c..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTABLE.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * TABLE.
- */
-final class HedTABLE extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedTABLE(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.TABLE, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_TABLE;
-		layoutType = LAYOUT_BLOCK;
-		indentChild = true;
-	}
-
-	/**
-	 * TABLE.
-	 * %attrs;
-	 * %reserved;
-	 * (summary %Text; #IMPLIED)
-	 * (width %Length; #IMPLIED)
-	 * (border %Pixels; #IMPLIED)
-	 * (frame %TFrame; #IMPLIED)
-	 * (rules %TRules; #IMPLIED)
-	 * (cellspacing %Length; #IMPLIED)
-	 * (cellpadding %Length; #IMPLIED)
-	 * (align %TAlign; #IMPLIED)
-	 * (bgcolor %Color; #IMPLIED)
-	 * (datapagesize CDATA #IMPLIED)
-	 * (height %Pixels; #IMPLIED)
-	 * (background %URI; #IMPLIED)
-	 * (bordercolor %Color #IMPLIED) ... D205514
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-		// %reserved;
-		// ... %reserved; is empty in the current DTD.
-
-		String[] names = {HTML40Namespace.ATTR_NAME_SUMMARY, HTML40Namespace.ATTR_NAME_WIDTH, HTML40Namespace.ATTR_NAME_BORDER, HTML40Namespace.ATTR_NAME_FRAME, HTML40Namespace.ATTR_NAME_RULES, HTML40Namespace.ATTR_NAME_CELLSPACING, HTML40Namespace.ATTR_NAME_CELLPADDING, HTML40Namespace.ATTR_NAME_BGCOLOR, HTML40Namespace.ATTR_NAME_DATAPAGESIZE, HTML40Namespace.ATTR_NAME_HEIGHT, HTML40Namespace.ATTR_NAME_BACKGROUND, HTML40Namespace.ATTR_NAME_BORDERCOLOR // D205514
-		};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-
-		// align (local)
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-		String[] alignValues = {HTML40Namespace.ATTR_VALUE_LEFT, HTML40Namespace.ATTR_VALUE_CENTER, HTML40Namespace.ATTR_VALUE_RIGHT};
-		atype.setEnumValues(alignValues);
-		HTMLAttrDeclImpl adec = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, adec);
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTEXTAREA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTEXTAREA.java
deleted file mode 100644
index f8a61c6..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTEXTAREA.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
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * TEXTAREA.
- */
-final class HedTEXTAREA extends HedPcdata {
-
-	/**
-	 * TEXTAREA should keep spaces in its source.
-	 */
-	public HedTEXTAREA(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.TEXTAREA, collection);
-		layoutType = LAYOUT_OBJECT;
-
-		keepSpaces = true;
-	}
-
-	/**
-	 * TEXTAREA.
-	 * %attrs;
-	 * %reserved; ... empty
-	 * (name CDATA #IMPLIED)
-	 * (rows NUMBER #REQUIRED)
-	 * (cols NUMBER #REQUIRED)
-	 * (disabled (disabled) #IMPLIED)
-	 * (readonly (readonly) #IMPLIED)
-	 * (tabindex NUMBER #IMPLIED)
-	 * (accesskey %Character; #IMPLIED)
-	 * (onfocus %Script; #IMPLIED)
-	 * (onblur %Script; #IMPLIED)
-	 * (onselect %Script; #IMPLIED)
-	 * (onchange %Script; #IMPLIED)
-	 * (istyle CDATA #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_ROWS, HTML40Namespace.ATTR_NAME_COLS, HTML40Namespace.ATTR_NAME_DISABLED, HTML40Namespace.ATTR_NAME_READONLY, HTML40Namespace.ATTR_NAME_TABINDEX, HTML40Namespace.ATTR_NAME_ACCESSKEY, HTML40Namespace.ATTR_NAME_ONFOCUS, HTML40Namespace.ATTR_NAME_ONBLUR, HTML40Namespace.ATTR_NAME_ONSELECT, HTML40Namespace.ATTR_NAME_ONCHANGE, HTML40Namespace.ATTR_NAME_ISTYLE};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.BUTTON};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTITLE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTITLE.java
deleted file mode 100644
index 6919004..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTITLE.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-
-/**
- * TITLE.
- */
-final class HedTITLE extends HedPcdata {
-
-	/**
-	 */
-	public HedTITLE(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.TITLE, collection);
-		layoutType = LAYOUT_HIDDEN;
-	}
-
-	/**
-	 * TITLE.
-	 * %i18n;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %i18n;
-		attributeCollection.getI18n(attributes);
-	}
-
-	/**
-	 * Exclusion.
-	 * <code>TITLE</code> has the exclusion.
-	 * It is <code>%head.misc;</code>.
-	 * %head.misc; is <code>SCRIPT|STYLE|META|LINK|OBJECT</code>.
-	 */
-	public CMContent getExclusion() {
-		if (exclusion != null)
-			return exclusion; // already created.
-		if (elementCollection == null)
-			return null;
-
-		// (SCRIPT|STYLE|META|LINK|OBJECT)
-		exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-
-		String[] names = {HTML40Namespace.ElementName.SCRIPT, HTML40Namespace.ElementName.STYLE, HTML40Namespace.ElementName.META, HTML40Namespace.ElementName.LINK, HTML40Namespace.ElementName.OBJECT};
-		elementCollection.getDeclarations(exclusion, Arrays.asList(names).iterator());
-		return exclusion;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTR.java
deleted file mode 100644
index d68a54a..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTR.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * TR.
- */
-final class HedTR extends HTMLElemDeclImpl {
-
-	private static String[] terminators = {HTML40Namespace.ElementName.TR};
-
-	/**
-	 */
-	public HedTR(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.TR, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_TCELL_CONTAINER;
-		layoutType = LAYOUT_BLOCK;
-		omitType = OMIT_END;
-		indentChild = true;
-	}
-
-	/**
-	 * %attrs;
-	 * %cellhalign;
-	 * %cellvalign;
-	 * (bgcolor %Color; #IMPLIED)
-	 * (background %URI; #IMPLIED)
-	 * (bordercolor %Color #IMPLIED) ... D205514
-	 * (height %Length #IMPLIED) bug2246
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-		// %cellhalign;
-		attributeCollection.getCellhalign(attributes);
-		// %cellvalign;
-		attributeCollection.getCellvalign(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_BGCOLOR, HTML40Namespace.ATTR_NAME_BACKGROUND, HTML40Namespace.ATTR_NAME_BORDERCOLOR, HTML40Namespace.ATTR_NAME_HEIGHT // D205514
-		};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 * TR has terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return Arrays.asList(terminators).iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableBody.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableBody.java
deleted file mode 100644
index f66eeef..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableBody.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * THEAD/TFOOT/TBODY
- */
-final class HedTableBody extends HTMLElemDeclImpl {
-
-	private static String[] terminators = {HTML40Namespace.ElementName.CAPTION, HTML40Namespace.ElementName.COL, HTML40Namespace.ElementName.COLGROUP, HTML40Namespace.ElementName.THEAD, HTML40Namespace.ElementName.TBODY, HTML40Namespace.ElementName.TFOOT};
-
-	/**
-	 */
-	public HedTableBody(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_TR_CONTAINER;
-		correctionType = CORRECT_EMPTY;
-		layoutType = LAYOUT_BLOCK;
-		if (elementName == HTML40Namespace.ElementName.TBODY) {
-			omitType = OMIT_BOTH;
-		}
-		else {
-			omitType = OMIT_END;
-		}
-		indentChild = true;
-	}
-
-	/**
-	 * TBODY/TFOOT/THEAD
-	 * %attrs;
-	 * %cellhalign;
-	 * %cellvalign;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-		// %cellhalign;
-		attributeCollection.getCellhalign(attributes);
-		// %cellvalign;
-		attributeCollection.getCellvalign(attributes);
-	}
-
-	/**
-	 * THEAD, TFOOT and TBODY have terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return Arrays.asList(terminators).iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableCell.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableCell.java
deleted file mode 100644
index 14fcb49..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableCell.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-/**
- * (TH | TD).
- */
-final class HedTableCell extends HedFlowContainer {
-
-	private static String[] terminators = {HTML40Namespace.ElementName.TR, HTML40Namespace.ElementName.TH, HTML40Namespace.ElementName.TD};
-
-	/**
-	 */
-	public HedTableCell(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-		layoutType = LAYOUT_BLOCK;
-		omitType = OMIT_END;
-	}
-
-	/**
-	 * %attrs;
-	 * (abbr %Text; #IMPLIED)
-	 * (axis CDATA #IMPLIED)
-	 * (headers IDREFS #IMPLIED)
-	 * (scope %Scope; #IMPLIED)
-	 * (rowspan NUMBER 1)
-	 * (colspan NUMBER 1)
-	 * %cellhalign;
-	 * %cellvalign;
-	 * (nowrap (nowrap) #IMPLIED)
-	 * (bgcolor %Color; #IMPLIED)
-	 * (width %Length; #IMPLIED)
-	 * (height %Length; #IMPLIED)
-	 * (background %URI; #IMPLIED)
-	 * (bordercolor %Color #IMPLIED) ... D205514
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-		// %cellhalign;
-		attributeCollection.getCellhalign(attributes);
-		// %cellvalign;
-		attributeCollection.getCellvalign(attributes);
-
-		String[] names = {HTML40Namespace.ATTR_NAME_ABBR, HTML40Namespace.ATTR_NAME_AXIS, HTML40Namespace.ATTR_NAME_HEADERS, HTML40Namespace.ATTR_NAME_SCOPE, HTML40Namespace.ATTR_NAME_ROWSPAN, HTML40Namespace.ATTR_NAME_COLSPAN, HTML40Namespace.ATTR_NAME_NOWRAP, HTML40Namespace.ATTR_NAME_BGCOLOR, HTML40Namespace.ATTR_NAME_WIDTH, HTML40Namespace.ATTR_NAME_HEIGHT, HTML40Namespace.ATTR_NAME_BACKGROUND, HTML40Namespace.ATTR_NAME_BORDERCOLOR // D205514
-		};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 * TH and TD have terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return Arrays.asList(terminators).iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedUL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedUL.java
deleted file mode 100644
index 041c5a5..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedUL.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * UL.
- */
-final class HedUL extends HedListItemContainer {
-
-	/**
-	 */
-	public HedUL(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.UL, collection);
-	}
-
-	/**
-	 * UL.
-	 * (type %ULStyle; #IMPLIED) ... should be defined locally.
-	 * (compact (compact) #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		// (type %ULStyle; #IMPLIED) ... should be defined locally.
-		// %ULStyle; is (disc|square|circle).
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-		String[] values = {HTML40Namespace.ATTR_VALUE_DISC, HTML40Namespace.ATTR_VALUE_SQUARE, HTML40Namespace.ATTR_VALUE_CIRCLE};
-		atype.setEnumValues(values);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr);
-
-		// the rest.
-		String[] names = {HTML40Namespace.ATTR_NAME_COMPACT};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedWBR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedWBR.java
deleted file mode 100644
index f958fe7..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedWBR.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-
-final class HedWBR extends HedEmpty {
-
-	public HedWBR(ElementCollection collection) {
-		super(HTML40Namespace.ElementName.WBR, collection);
-		// LAYOUT_BREAK.
-		// same as BR.
-		layoutType = LAYOUT_BREAK;
-	}
-
-	protected void createAttributeDeclarations() {
-		// No attributes is defined.
-		if (attributes != null)
-			return;
-		attributes = new CMNamedNodeMapImpl();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JCM20DocImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JCM20DocImpl.java
deleted file mode 100644
index 767b594..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JCM20DocImpl.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-
-/**
- * Implementation of CMDocument for JSP 2.0.
- */
-class JCM20DocImpl extends JCMDocImpl {
-	/**
-	 * JCM20DocImpl constructor comment.
-	 */
-	public JCM20DocImpl(String docTypeName, CMNamespaceImpl targetNamespace) {
-		super(docTypeName, targetNamespace, new JSP20ElementCollection());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JCMDocImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JCMDocImpl.java
deleted file mode 100644
index b5fe4da..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JCMDocImpl.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
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * Implementation of CMDocument for JSP 1.1 and JSP 1.2.
- */
-class JCMDocImpl extends CMNodeImpl implements JSPCMDocument {
-
-	/** Namespace for all names of elements, entities and attributes. */
-	private CMNamespaceImpl namespace = null;
-	private JSPElementCollection elements = null;
-
-	/**
-	 * HCMDocImpl constructor comment.
-	 */
-	public JCMDocImpl(String docTypeName, CMNamespaceImpl targetNamespace) {
-		this(docTypeName, targetNamespace, new JSPElementCollection());
-	}
-
-	JCMDocImpl(String docTypeName, CMNamespaceImpl targetNamespace, JSPElementCollection collection) {
-		super(docTypeName);
-		namespace = targetNamespace;
-		elements = collection;
-	}
-
-	public HTMLElementDeclaration getElementDeclaration(String elementName) {
-		if (elements == null)
-			return null;
-		return (HTMLElementDeclaration) elements.getNamedItem(elementName);
-	}
-
-	/**
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMDocument
-	 */
-	public CMNamedNodeMap getElements() {
-		return elements;
-	}
-
-	/**
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMDocument
-	 */
-	public CMNamedNodeMap getEntities() {
-		return null;
-	}
-
-	public HTMLEntityDeclaration getEntityDeclaration(String entityName) {
-		return null;
-	}
-
-	/**
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMDocument
-	 */
-	public org.eclipse.wst.xml.core.internal.contentmodel.CMNamespace getNamespace() {
-		return namespace;
-	}
-
-	/**
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 */
-	public int getNodeType() {
-		return CMNode.DOCUMENT;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP11Namespace.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP11Namespace.java
deleted file mode 100644
index 4d1a9b8..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP11Namespace.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.wst.html.core.internal.contentmodel;
-
-
-/**
- * JSP 1.1 Namespace. Note, this interface was 
- * copied form JSP core packages. One implication 
- * is that extra care is needed in using '==' instead 
- * of '.equals'.
- */
-public interface JSP11Namespace {
-
-	public static interface ElementName {
-		// Element names
-		public static final String SCRIPTLET = "jsp:scriptlet"; //$NON-NLS-1$
-		public static final String EXPRESSION = "jsp:expression"; //$NON-NLS-1$
-		public static final String DECLARATION = "jsp:declaration"; //$NON-NLS-1$
-		public static final String DIRECTIVE_PAGE = "jsp:directive.page"; //$NON-NLS-1$
-		public static final String DIRECTIVE_INCLUDE = "jsp:directive.include"; //$NON-NLS-1$
-		public static final String DIRECTIVE_TAGLIB = "jsp:directive.taglib"; //$NON-NLS-1$
-		public static final String USEBEAN = "jsp:useBean"; //$NON-NLS-1$
-		public static final String SETPROPERTY = "jsp:setProperty"; //$NON-NLS-1$
-		public static final String GETPROPERTY = "jsp:getProperty"; //$NON-NLS-1$
-		public static final String INCLUDE = "jsp:include"; //$NON-NLS-1$
-		public static final String FORWARD = "jsp:forward"; //$NON-NLS-1$
-		public static final String PLUGIN = "jsp:plugin"; //$NON-NLS-1$
-		public static final String PARAMS = "jsp:params"; //$NON-NLS-1$
-		public static final String FALLBACK = "jsp:fallback"; //$NON-NLS-1$
-		public static final String PARAM = "jsp:param"; //$NON-NLS-1$
-		public static final String ROOT = "jsp:root"; //$NON-NLS-1$
-		public static final String TEXT = "jsp:text"; //$NON-NLS-1$
-	}
-
-	public static final String JSP11_URI = ""; //$NON-NLS-1$
-	public static final String JSP_TAG_PREFIX = "jsp"; //$NON-NLS-1$
-	// attribute names
-	//   directive.page
-	public static final String ATTR_NAME_LANGUAGE = "language"; //$NON-NLS-1$
-	public static final String ATTR_NAME_EXTENDS = "extends"; //$NON-NLS-1$
-	public static final String ATTR_NAME_CONTENT_TYPE = "contentType"; //$NON-NLS-1$
-	public static final String ATTR_NAME_IMPORT = "import"; //$NON-NLS-1$
-	public static final String ATTR_NAME_SESSION = "session"; //$NON-NLS-1$
-	public static final String ATTR_NAME_BUFFER = "buffer"; //$NON-NLS-1$
-	public static final String ATTR_NAME_AUTOFLUSH = "autoFlush"; //$NON-NLS-1$
-	public static final String ATTR_NAME_IS_THREAD_SAFE = "isThreadSafe"; //$NON-NLS-1$
-	public static final String ATTR_NAME_INFO = "info"; //$NON-NLS-1$
-	public static final String ATTR_NAME_ERROR_PAGE = "errorPage"; //$NON-NLS-1$
-	public static final String ATTR_NAME_IS_ERROR_PAGE = "isErrorPage"; //$NON-NLS-1$
-	public static final String ATTR_NAME_PAGE_ENCODING = "pageEncoding"; //$NON-NLS-1$
-	//   directive.include
-	public static final String ATTR_NAME_FILE = "file"; //$NON-NLS-1$
-	//   directive.taglib
-	public static final String ATTR_NAME_URI = "uri"; //$NON-NLS-1$
-	public static final String ATTR_NAME_PREFIX = "prefix"; //$NON-NLS-1$
-	//   useBean
-	public static final String ATTR_NAME_ID = "id"; //$NON-NLS-1$
-	public static final String ATTR_NAME_SCOPE = "scope"; //$NON-NLS-1$
-	public static final String ATTR_NAME_CLASS = "class"; //$NON-NLS-1$
-	public static final String ATTR_NAME_BEAN_NAME = "beanName"; //$NON-NLS-1$
-	public static final String ATTR_NAME_TYPE = "type"; //$NON-NLS-1$
-	//   setProperty
-	public static final String ATTR_NAME_NAME = "name"; //$NON-NLS-1$
-	public static final String ATTR_NAME_PROPERTY = "property"; //$NON-NLS-1$
-	public static final String ATTR_NAME_VALUE = "value"; //$NON-NLS-1$
-	public static final String ATTR_NAME_PARAM = "param"; //$NON-NLS-1$
-	//   include
-	public static final String ATTR_NAME_PAGE = "page"; //$NON-NLS-1$
-	public static final String ATTR_NAME_FLUSH = "flush"; //$NON-NLS-1$
-	//   plugin
-	public static final String ATTR_NAME_CODE = "code"; //$NON-NLS-1$
-	public static final String ATTR_NAME_CODEBASE = "codebase"; //$NON-NLS-1$
-	public static final String ATTR_NAME_ALIGN = "align"; //$NON-NLS-1$
-	public static final String ATTR_NAME_ARCHIVE = "archive"; //$NON-NLS-1$
-	public static final String ATTR_NAME_HEIGHT = "height"; //$NON-NLS-1$
-	public static final String ATTR_NAME_HSPACE = "hspace"; //$NON-NLS-1$
-	public static final String ATTR_NAME_JREVERSION = "jreversion"; //$NON-NLS-1$
-	public static final String ATTR_NAME_VSPACE = "vspace"; //$NON-NLS-1$
-	public static final String ATTR_NAME_WIDTH = "width"; //$NON-NLS-1$
-	public static final String ATTR_NAME_NSPLUGINURL = "nspluginurl"; //$NON-NLS-1$
-	public static final String ATTR_NAME_IEPLUGINURL = "iepluginurl"; //$NON-NLS-1$
-	//   root
-	public static final String ATTR_NAME_XMLNS_JSP = "xmlns:jsp"; //$NON-NLS-1$
-	public static final String ATTR_NAME_VERSION = "version"; //$NON-NLS-1$
-	// attribute values
-	public static final String ATTR_VALUE_TRUE = "true"; //$NON-NLS-1$
-	public static final String ATTR_VALUE_FALSE = "false"; //$NON-NLS-1$
-	public static final String ATTR_VALUE_JAVA = "java"; //$NON-NLS-1$
-	public static final String ATTR_VALUE_CT_DEFAULT = "text/html; charset=ISO-8859-1";//D195366 //$NON-NLS-1$
-	public static final String ATTR_VALUE_BUFSIZ_DEFAULT = "8kb"; //$NON-NLS-1$
-	public static final String ATTR_VALUE_PAGE = "page"; //$NON-NLS-1$
-	public static final String ATTR_VALUE_SESSION = "session"; //$NON-NLS-1$
-	public static final String ATTR_VALUE_REQUEST = "request"; //$NON-NLS-1$
-	public static final String ATTR_VALUE_APPLICATION = "application"; //$NON-NLS-1$
-	public static final String ATTR_VALUE_BEAN = "bean"; //$NON-NLS-1$
-	public static final String ATTR_VALUE_APPLET = "applet"; //$NON-NLS-1$
-	public static final String ATTR_VALUE_TOP = "top"; //$NON-NLS-1$
-	public static final String ATTR_VALUE_MIDDLE = "middle"; //$NON-NLS-1$
-	public static final String ATTR_VALUE_BOTTOM = "bottom"; //$NON-NLS-1$
-	public static final String ATTR_VALUE_LEFT = "left"; //$NON-NLS-1$
-	public static final String ATTR_VALUE_RIGHT = "right"; //$NON-NLS-1$
-	public static final String ATTR_VALUE_JVER11 = "1.1"; //$NON-NLS-1$
-	public static final String ATTR_VALUE_XMLNS_JSP = "http://java.sun.com/JSP/Page"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20ElementCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20ElementCollection.java
deleted file mode 100644
index 3ca1dad..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20ElementCollection.java
+++ /dev/null
@@ -1,491 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.lang.reflect.Field;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * Factory for element declarations of JSP 1.1 and JSP 1.2.
- */
-final class JSP20ElementCollection extends JSPElementCollection implements JSP20Namespace.ElementName {
-
-	// element IDs
-	private static class Ids20 extends Ids {
-		public static final int ID_BODY = 17;
-		public static final int ID_ATTRIBUTE = 18;
-		public static final int ID_ELEMENT = 19;
-		public static final int ID_OUTPUT = 20;
-
-		public static int getNumOfIds() {
-			if (numofids != -1)
-				return numofids;
-
-			// NOTE: If the reflection is too slow, this method should
-			// just return the literal value, like 105.
-			// -- 5/25/2001
-			Class clazz = Ids20.class;
-			Field[] fields = clazz.getFields();
-			numofids = 0;
-			for (int i = 0; i < fields.length; i++) {
-				String name = fields[i].getName();
-				if (name.startsWith("ID_"))//$NON-NLS-1$
-					numofids++;
-			}
-			return numofids;
-		}
-
-		// chache the result of the reflection.
-		private static int numofids = -1;
-	}
-
-	// attribute creater
-	private class JACreater20 extends JACreater {
-		public JACreater20() {
-			super();
-		}
-
-		public CMNamedNodeMapImpl getDeclarations(int eid) {
-			switch (eid) {
-				case Ids20.ID_ATTRIBUTE :
-					createForAttribute();
-					break;
-				case Ids20.ID_ELEMENT :
-					createForElement();
-					break;
-				case Ids20.ID_BODY :
-					createForBody();
-					break;
-				case Ids20.ID_OUTPUT :
-					createForOutput();
-					break;
-				case Ids.ID_DIRECTIVE_TAGLIB :
-					createForDirTaglib();
-					break;
-				case Ids.ID_DIRECTIVE_PAGE :
-					createForDirPage();
-					break;
-				case Ids.ID_ROOT :
-					createForRoot();
-					break;
-				case Ids.ID_PLUGIN :
-					createForPlugin();
-					break;
-				default :
-					super.getDeclarations(eid);
-			}
-			return declarations;
-		}
-
-		private void createForBody() {
-		}
-
-		private void createForOutput() {
-			AttrDecl adec = new AttrDecl(JSP20Namespace.ATTR_NAME_OMIT_XML_DECL);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE, JSP20Namespace.ATTR_VALUE_YES, JSP20Namespace.ATTR_VALUE_NO};
-			adec.type.setEnumValues(values);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_NO);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_OMIT_XML_DECL, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_ROOT_ELEMENT);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DOCTYPE_ROOT_ELEMENT, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_SYSTEM);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DOCTYPE_SYSTEM, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_PUBLIC);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DOCTYPE_PUBLIC, adec);
-		}
-
-		/**
-		 * Changed in 2.0
-		 */
-		void createForDirTaglib() {
-			// ("uri" URI OPTIONAL)
-			AttrDecl adec = new AttrDecl(ATTR_NAME_URI);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(ATTR_NAME_URI, adec);
-
-			// ("tagdir" URI OPTIONAL)
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_TAGDIR);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_TAGDIR, adec);
-
-			// ("prefix" CDATA REQUIRED)
-			adec = new AttrDecl(ATTR_NAME_PREFIX);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_PREFIX, adec);
-		}
-		
-		void createForDirPage() {
-			AttrDecl adec = null;
-			// ("language" CDATA DECLARED "java")
-			adec = new AttrDecl(ATTR_NAME_LANGUAGE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_JAVA);
-			declarations.putNamedItem(ATTR_NAME_LANGUAGE, adec);
-
-			// ("extends" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_EXTENDS);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_EXTENDS, adec);
-
-			// ("import" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_IMPORT);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_IMPORT, adec);
-
-			// ("session" ENUM DECLARED (true|false) "true")
-			adec = createBoolType(ATTR_NAME_SESSION, ATTR_VALUE_TRUE);
-			if (adec != null)
-				declarations.putNamedItem(ATTR_NAME_SESSION, adec);
-
-			// ("buffer" CDATA DECLARED "8kb")
-			adec = new AttrDecl(ATTR_NAME_BUFFER);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_BUFSIZ_DEFAULT);
-			declarations.putNamedItem(ATTR_NAME_BUFFER, adec);
-
-			// ("autoFlush" ENUM DECLARED (true|false) "true")
-			adec = createBoolType(ATTR_NAME_AUTOFLUSH, ATTR_VALUE_TRUE);
-			if (adec != null)
-				declarations.putNamedItem(ATTR_NAME_AUTOFLUSH, adec);
-
-			// ("isThreadSafe" ENUM DECLARED (true|false) "true")
-			adec = createBoolType(ATTR_NAME_IS_THREAD_SAFE, ATTR_VALUE_TRUE);
-			if (adec != null)
-				declarations.putNamedItem(ATTR_NAME_IS_THREAD_SAFE, adec);
-
-			// ("info" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_INFO);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_INFO, adec);
-
-			// ("errorPage" URI IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_ERROR_PAGE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			declarations.putNamedItem(ATTR_NAME_ERROR_PAGE, adec);
-
-			// ("isErrorPage" ENUM DECLARED (true|false) "false")
-			adec = createBoolType(ATTR_NAME_IS_ERROR_PAGE, ATTR_VALUE_FALSE);
-			if (adec != null)
-				declarations.putNamedItem(ATTR_NAME_IS_ERROR_PAGE, adec);
-
-			// ("contentType" CDATA DECLARED "text/html; ISO-8859-1")
-			adec = new AttrDecl(ATTR_NAME_CONTENT_TYPE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_CT_DEFAULT);
-			declarations.putNamedItem(ATTR_NAME_CONTENT_TYPE, adec);
-
-			// ("pageEncoding" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_PAGE_ENCODING);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_ENCODING_DEFAULT);
-			declarations.putNamedItem(ATTR_NAME_PAGE_ENCODING, adec);
-
-			// ("isELIgnored" ENUM DECLARED (true|false) "false")
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_ISELIGNORED);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
-			adec.type.setEnumValues(values);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_ISELIGNORED, adec);
-		}
-		
-		private void createForElement() {
-			AttrDecl adec = new AttrDecl(ATTR_NAME_NAME);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_NAME, adec);
-		}
-
-		private void createForAttribute() {
-			AttrDecl adec = new AttrDecl(ATTR_NAME_NAME);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_NAME, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_TRIM);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
-			adec.type.setEnumValues(values);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_TRUE);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_TRIM, adec);
-		}
-		
-		private void createForRoot() {
-			// ("xmlns:jsp" CDATA "http://java.sun.com/JSP/Page")
-			AttrDecl adec = new AttrDecl(ATTR_NAME_XMLNS_JSP);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_XMLNS_JSP);
-			declarations.putNamedItem(ATTR_NAME_XMLNS_JSP, adec);
-			// ("version" CDATA REQUIRED)
-			adec = new AttrDecl(ATTR_NAME_VERSION);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_JSP_VER_20);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_VERSION, adec);
-		}
-		
-		private void createForPlugin() {
-			// ("type" ENUM REQUIRED (bean|applet))
-			AttrDecl adec = new AttrDecl(ATTR_NAME_TYPE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			String[] values = {ATTR_VALUE_BEAN, ATTR_VALUE_APPLET};
-			adec.type.setEnumValues(values);
-			declarations.putNamedItem(ATTR_NAME_TYPE, adec);
-
-			// ("code" CDATA REQUIRED)
-			adec = new AttrDecl(ATTR_NAME_CODE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_CODE, adec);
-
-			// ("codebase" URI REQUIRED)
-			adec = new AttrDecl(ATTR_NAME_CODEBASE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_CODEBASE, adec);
-
-			// ("align" ENUM IMPLIED (top|middle|bottom|left|right))
-			adec = new AttrDecl(ATTR_NAME_ALIGN);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] aligns = {ATTR_VALUE_TOP, ATTR_VALUE_MIDDLE, ATTR_VALUE_BOTTOM, ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT};
-			adec.type.setEnumValues(aligns);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_BOTTOM);
-			declarations.putNamedItem(ATTR_NAME_ALIGN, adec);
-
-			// ("archive" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_ARCHIVE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_ARCHIVE, adec);
-
-			// ("height" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_HEIGHT);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_HEIGHT, adec);
-
-			// ("hspace" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_HSPACE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_HSPACE, adec);
-
-			// ("jreversion" CDATA DECLARED "1.1")
-			adec = new AttrDecl(ATTR_NAME_JREVERSION);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_JVER12);
-			declarations.putNamedItem(ATTR_NAME_JREVERSION, adec);
-
-			// ("name" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_NAME);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_NAME, adec);
-
-			// ("vspace" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_VSPACE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_VSPACE, adec);
-
-			// ("width" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_WIDTH);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_WIDTH, adec);
-
-			// ("nspluginurl" URI IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_NSPLUGINURL);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			declarations.putNamedItem(ATTR_NAME_NSPLUGINURL, adec);
-
-			// ("iepluginurl" URI IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_IEPLUGINURL);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			declarations.putNamedItem(ATTR_NAME_IEPLUGINURL, adec);
-			
-			// ("mayscript" ENUM IMPLIED (true | false)
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_MAYSCRIPT);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			adec.type.setEnumValues(new String[] {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE});
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_MAYSCRIPT, adec);
-		}
-	}
-
-	private static String[] names = null;
-
-	static {
-		names = new String[Ids20.getNumOfIds()];
-		names[Ids.ID_SCRIPTLET] = SCRIPTLET;
-		names[Ids.ID_EXPRESSION] = EXPRESSION;
-		names[Ids.ID_DECLARATION] = DECLARATION;
-		names[Ids.ID_DIRECTIVE_PAGE] = DIRECTIVE_PAGE;
-		names[Ids.ID_DIRECTIVE_INCLUDE] = DIRECTIVE_INCLUDE;
-		names[Ids.ID_DIRECTIVE_TAGLIB] = DIRECTIVE_TAGLIB;
-		names[Ids.ID_USEBEAN] = USEBEAN;
-		names[Ids.ID_SETPROPERTY] = SETPROPERTY;
-		names[Ids.ID_GETPROPERTY] = GETPROPERTY;
-		names[Ids.ID_INCLUDE] = INCLUDE;
-		names[Ids.ID_FORWARD] = FORWARD;
-		names[Ids.ID_PLUGIN] = PLUGIN;
-		names[Ids.ID_PARAMS] = PARAMS;
-		names[Ids.ID_FALLBACK] = FALLBACK;
-		names[Ids.ID_PARAM] = PARAM;
-		names[Ids.ID_ROOT] = ROOT;
-		names[Ids.ID_TEXT] = TEXT;
-		names[Ids20.ID_BODY] = JSP20Namespace.ElementName.BODY;
-		names[Ids20.ID_ATTRIBUTE] = JSP20Namespace.ElementName.ATTRIBUTE;
-		names[Ids20.ID_ELEMENT] = JSP20Namespace.ElementName.ELEMENT;
-		names[Ids20.ID_OUTPUT] = JSP20Namespace.ElementName.OUTPUT;
-	}
-
-	/**
-	 */
-	public JSP20ElementCollection() {
-		super(JSP20ElementCollection.names, TOLERANT_CASE);
-	}
-
-	/**
-	 * @param eid
-	 *            int
-	 */
-	CMGroupImpl createContent(int eid) {
-		if (eid == ID_UNKNOWN)
-			return null;
-
-		CMGroupImpl content = null;
-		CMNode child = null;
-
-		switch (eid) {
-			case Ids.ID_ROOT :
-				content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED);
-				int validChildren[] = {
-				// %Directives;
-							Ids.ID_TEXT, Ids.ID_DIRECTIVE_PAGE, Ids.ID_DIRECTIVE_INCLUDE, Ids20.ID_BODY, Ids20.ID_ATTRIBUTE,
-							// %Scripts;
-							Ids.ID_SCRIPTLET, Ids.ID_DECLARATION, Ids.ID_EXPRESSION,
-							// %Actions;
-							Ids.ID_USEBEAN, Ids.ID_SETPROPERTY, Ids.ID_GETPROPERTY, Ids.ID_INCLUDE, Ids.ID_FORWARD, Ids.ID_PLUGIN};
-				for (int i = 0; i < validChildren.length; i++) {
-					child = item(validChildren[i]);
-					if (child != null)
-						content.appendChild(child);
-				}
-				break;
-			default :
-				content = super.createContent(eid);
-				break;
-		}
-
-		return content;
-	}
-
-	/**
-	 * @param eid
-	 *            int
-	 */
-	HTMLElementDeclaration createElemDecl(int eid) {
-		if (eid == ID_UNKNOWN)
-			return null;
-
-		TypePacket packet = new TypePacket();
-		switch (eid) {
-			case Ids20.ID_BODY :
-				// declaration
-				packet.name = JSP20Namespace.ElementName.BODY;
-				packet.content = CMElementDeclaration.CDATA;
-				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
-				packet.indentChild = true;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
-				break;
-			case Ids20.ID_ELEMENT :
-				// declaration
-				packet.name = JSP20Namespace.ElementName.ELEMENT;
-				packet.content = CMElementDeclaration.CDATA;
-				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
-				packet.indentChild = true;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
-				break;
-			case Ids20.ID_ATTRIBUTE :
-				// declaration
-				packet.name = JSP20Namespace.ElementName.ATTRIBUTE;
-				packet.content = CMElementDeclaration.CDATA;
-				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
-				packet.indentChild = true;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
-				break;
-			case Ids20.ID_OUTPUT :
-				// declaration
-				packet.name = JSP20Namespace.ElementName.OUTPUT;
-				packet.content = CMElementDeclaration.CDATA;
-				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
-				packet.indentChild = true;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
-				break;
-			case Ids.ID_DIRECTIVE_TAGLIB :
-				// directive.taglib
-				packet.name = DIRECTIVE_TAGLIB;
-				packet.omit = HTMLElementDeclaration.OMIT_END;
-				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE;
-				break;
-			case Ids.ID_DIRECTIVE_PAGE :
-				// directive.page
-				packet.name = DIRECTIVE_PAGE;
-				packet.omit = HTMLElementDeclaration.OMIT_END;
-				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE;
-				break;
-			case Ids.ID_ROOT :
-				packet.name = ROOT;
-				packet.content = CMElementDeclaration.ELEMENT;
-				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; // same as HTML
-				break;
-			case Ids.ID_PLUGIN :
-				// plugin
-				packet.name = PLUGIN;
-				packet.content = CMElementDeclaration.ELEMENT;
-				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
-				packet.indentChild = true;
-				break;
-			default :
-				return super.createElemDecl(eid);
-		}
-		ElemDecl decl = new ElemDecl(packet);
-
-		CMGroupImpl content = createContent(eid);
-		if (content != null)
-			decl.setContent(content);
-
-		JACreater20 creater = new JACreater20();
-		decl.setAttributes(creater.getDeclarations(eid));
-
-		return decl;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20Namespace.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20Namespace.java
deleted file mode 100644
index ee138a2..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20Namespace.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-/**
- * New names for JSP 2.0 spec.
- * 
- * @deprecated - use
- *             org.eclipse.jst.jsp.core.internal.provisional.JSP20Namespace
- */
-
-public interface JSP20Namespace extends JSP11Namespace {
-	public static String JSP20_URI = "";//$NON-NLS-1$
-
-	/**
-	 * New elements for JSP 2.0 spec.
-	 */
-	public static interface ElementName extends JSP11Namespace.ElementName {
-		String DIRECTIVE_TAG = "jsp:directive.tag"; //$NON-NLS-1$
-		String DIRECTIVE_ATTRIBUTE = "jsp:directive.attribute"; //$NON-NLS-1$
-		String DIRECTIVE_VARIABLE = "jsp:directive.variable"; //$NON-NLS-1$
-		String BODY = "jsp:body"; //$NON-NLS-1$
-		String ATTRIBUTE = "jsp:attribute"; //$NON-NLS-1$
-		String ELEMENT = "jsp:element"; //$NON-NLS-1$
-		String DOBODY = "jsp:doBody";
-		String INVOKE = "jsp:invoke";
-		String OUTPUT = "jsp:output";
-	}
-
-	String ATTR_NAME_TAGDIR = "tagdir"; //$NON-NLS-1$
-
-	String ATTR_NAME_DISPLAY_NAME = "display-name"; //$NON-NLS-1$
-	String ATTR_NAME_BODY_CONTENT = "body-content"; //$NON-NLS-1$
-	String ATTR_NAME_SMALL_ICON = "small-icon"; //$NON-NLS-1$
-	String ATTR_NAME_LARGE_ICON = "large-icon"; //$NON-NLS-1$
-	String ATTR_NAME_DESCRIPTION = "description"; //$NON-NLS-1$
-	String ATTR_NAME_EXAMPLE = "example"; //$NON-NLS-1$
-	String ATTR_NAME_LANGUAGE = "language"; //$NON-NLS-1$
-	String ATTR_NAME_ISELIGNORED = "isELIgnored"; //$NON-NLS-1$
-
-	String ATTR_NAME_REQUIRED = "required"; //$NON-NLS-1$
-	String ATTR_NAME_FRAGMENT = "fragment"; //$NON-NLS-1$
-	String ATTR_NAME_RTEXPRVALUE = "rtexprvalue"; //$NON-NLS-1$
-	String ATTR_NAME_TYPE = "type"; //$NON-NLS-1$
-
-	String ATTR_NAME_NAME_GIVEN = "name-given"; //$NON-NLS-1$
-	String ATTR_NAME_NAME_FROM_ATTRIBUTE = "name-from-attribute"; //$NON-NLS-1$
-	String ATTR_NAME_ALIAS = "alias"; //$NON-NLS-1$
-	String ATTR_NAME_VARIABLE_CLASS = "variable-class"; //$NON-NLS-1$
-	String ATTR_NAME_DECLARE = "declare"; //$NON-NLS-1$
-
-	String ATTR_VALUE_SCRIPTLESS = "scriptless"; //$NON-NLS-1$
-	String ATTR_VALUE_TAGDEPENDENT = "tagdependent"; //$NON-NLS-1$
-	String ATTR_VALUE_EMPTY = "empty"; //$NON-NLS-1$
-
-	String ATTR_NAME_TRIM = "trim"; //$NON-NLS-1$
-
-	String ATTR_NAME_VAR = "var"; //$NON-NLS-1$
-	String ATTR_NAME_VARREADER = "varReader"; //$NON-NLS-1$
-
-	String ATTR_NAME_OMIT_XML_DECL = "omit-xml-declaration"; //$NON-NLS-1$
-	String ATTR_NAME_DOCTYPE_ROOT_ELEMENT = "doctype-root-element"; //$NON-NLS-1$
-	String ATTR_NAME_DOCTYPE_SYSTEM = "doctype-system"; //$NON-NLS-1$
-	String ATTR_NAME_DOCTYPE_PUBLIC = "doctype-public"; //$NON-NLS-1$
-
-	String ATTR_VALUE_NO = "no"; //$NON-NLS-1$
-	String ATTR_VALUE_YES = "yes"; //$NON-NLS-1$
-
-	String ATTR_VALUE_SCOPE_AT_END = "AT_END"; //$NON-NLS-1$
-	String ATTR_VALUE_SCOPE_AT_BEGIN = "AT_BEGIN"; //$NON-NLS-1$
-	String ATTR_VALUE_SCOPE_NESTED = "NESTED"; //$NON-NLS-1$
-
-	String ATTR_NAME_DYNAMIC_ATTRIBUTES = "dynamic-attributes"; //$NON-NLS-1$
-	
-	String ATTR_VALUE_ENCODING_DEFAULT = "ISO-8859-1"; //$NON-NLS-1$
-	
-	String ATTR_VALUE_VARIABLE_CLASS_DEFAULT = "java.lang.String"; //$NON-NLS-1$
-	
-	String ATTR_NAME_MAYSCRIPT = "mayscript"; //$NON-NLS-1$
-	
-	String ATTR_VALUE_JVER12 = "1.2"; //$NON-NLS-1$
-	
-	String ATTR_VALUE_JSP_VER_20 = "2.0"; //$NON-NLS-1$
-	
-	// JSP 2.1 attributes
-//	String ATTR_NAME_DEFERRED_SYNTAX_ALLOWED_AS_LITERAL = "deferredSyntaxAllowedAsLiteral"; //$NON-NLS-1$
-//	String ATTR_NAME_TRIM_DIRECTIVE_WHITESPACES = "trimDirectiveWhitespaces"; //$NON-NLS-1$
-	
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPCMDocument.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPCMDocument.java
deleted file mode 100644
index 802bfb2..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPCMDocument.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.wst.html.core.internal.contentmodel;
-
-
-
-/**
- * JSP extension for CMDocument.
- * This interface provides some short hand methods to get declarations
- * by a name.
- */
-public interface JSPCMDocument extends org.eclipse.wst.xml.core.internal.contentmodel.CMDocument {
-
-	/**
-	 * A short hand method to get a element declaration for a JSP element.
-	 * JSP declaration class implements HTMLElementDeclaration interface.
-	 * @param elementName java.lang.String
-	 */
-	HTMLElementDeclaration getElementDeclaration(String elementName);
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPElementCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPElementCollection.java
deleted file mode 100644
index c517f99..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPElementCollection.java
+++ /dev/null
@@ -1,900 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.lang.reflect.Field;
-import java.util.Arrays;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.Vector;
-
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-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;
-
-/**
- * Factory for element declarations of the JSP 1.1 and 1.2.
- */
-class JSPElementCollection extends DeclCollection implements JSP11Namespace.ElementName {
-
-
-	class TypePacket {
-		public String name = null;
-		public int content = CMElementDeclaration.EMPTY;
-		public int omit = HTMLElementDeclaration.OMIT_NONE;
-		public int lineBreak = HTMLElementDeclaration.BREAK_NONE;
-		public int layout = HTMLElementDeclaration.LAYOUT_NONE;
-		public int correct = HTMLElementDeclaration.CORRECT_NONE;
-		public int format = HTMLElementDeclaration.FORMAT_XML;
-		public boolean indentChild = false;
-
-		public TypePacket() {
-		}
-	}
-
-	/** JSP element declaration. */
-	class ElemDecl extends CMContentImpl implements HTMLElementDeclaration, HTMLPropertyDeclaration {
-		private TypePacket type = null;
-		private CMGroupImpl content = null;
-		private CMNamedNodeMapImpl attributes = null;
-
-		public ElemDecl(TypePacket t) {
-			super(t.name, 1, 1);
-			type = t;
-		}
-
-		public void setContent(CMGroupImpl group) {
-			content = group;
-		}
-
-		public void setAttributes(CMNamedNodeMapImpl attrs) {
-			attributes = attrs;
-		}
-
-		// implements CMNode
-		public int getNodeType() {
-			return CMNode.ELEMENT_DECLARATION;
-		}
-
-		public boolean supports(String propertyName) {
-			if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) {
-				return true;
-			}
-			else if (propertyName.equals(HTMLCMProperties.CONTENT_HINT)) {
-				return true;
-			}
-			else {
-				PropertyProvider pp = PropertyProviderFactory.getProvider(propertyName);
-				if (pp == null)
-					return false;
-				return pp.supports(this);
-			}
-		}
-
-		public Object getProperty(String propertyName) {
-			if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) {
-				return Boolean.FALSE; //D208839
-			}
-			else if (propertyName.equals(HTMLCMProperties.CONTENT_HINT)) {
-				String myName = getElementName();
-				if (myName == JSP11Namespace.ElementName.PLUGIN) {
-					return getNamedItem(JSP11Namespace.ElementName.PARAMS); // outer class method.
-				}
-				else if (myName == JSP11Namespace.ElementName.PARAMS) {
-					return getNamedItem(JSP11Namespace.ElementName.PARAM); // outer class method.
-				}
-				else {
-					return null;
-				}
-			}
-			else {
-				PropertyProvider pp = PropertyProviderFactory.getProvider(propertyName);
-				if (pp == null)
-					return null;
-				return pp.get(this);
-			}
-		}
-
-		// implementes CMElementDeclaration
-		public CMNamedNodeMap getAttributes() {
-			return attributes;
-		}
-
-		public CMContent getContent() {
-			return content;
-		}
-
-		public int getContentType() {
-			return type.content;
-		}
-
-		public CMDataType getDataType() {
-			return null;
-		}
-
-		public String getElementName() {
-			return getNodeName();
-		}
-
-		public CMNamedNodeMap getLocalElements() {
-			return null;
-		}
-
-		// implementes HTMLElementDeclaration
-		public HTMLAttributeDeclaration getAttributeDeclaration(String attrName) {
-			if (attributes == null)
-				return null;
-			return (HTMLAttributeDeclaration) attributes.getNamedItem(attrName);
-		}
-
-		public int getCorrectionType() {
-			return type.correct;
-		}
-
-		public CMContent getExclusion() {
-			return null;
-		}
-
-		public CMContent getInclusion() {
-			return null;
-		}
-
-		public CMNamedNodeMap getProhibitedAncestors() {
-			return EMPTY_MAP;
-		}
-
-		public int getFormatType() {
-			return type.format;
-		}
-
-		public int getLayoutType() {
-			return type.layout;
-		}
-
-		public int getLineBreakHint() {
-			return type.lineBreak;
-		}
-
-		public int getOmitType() {
-			return type.omit;
-		}
-
-		public boolean shouldTerminateAt(HTMLElementDeclaration dec) {
-			return false;
-		}
-
-		public boolean shouldKeepSpaces() {
-			return false;
-		}
-
-		public boolean shouldIndentChildSource() {
-			return type.indentChild;
-		}
-
-		public boolean isJSP() {
-			return true;
-		}
-	}
-
-	// element IDs
-	static class Ids {
-		public static final int ID_SCRIPTLET = 0;
-		public static final int ID_EXPRESSION = 1;
-		public static final int ID_DECLARATION = 2;
-		public static final int ID_DIRECTIVE_PAGE = 3;
-		public static final int ID_DIRECTIVE_INCLUDE = 4;
-		public static final int ID_DIRECTIVE_TAGLIB = 5;
-		public static final int ID_USEBEAN = 6;
-		public static final int ID_SETPROPERTY = 7;
-		public static final int ID_GETPROPERTY = 8;
-		public static final int ID_INCLUDE = 9;
-		public static final int ID_FORWARD = 10;
-		public static final int ID_PLUGIN = 11;
-		public static final int ID_PARAMS = 12;
-		public static final int ID_FALLBACK = 13;
-		public static final int ID_PARAM = 14;
-		public static final int ID_ROOT = 15;
-		public static final int ID_TEXT = 16;
-
-		public static int getNumOfIds() {
-			if (numofids != -1)
-				return numofids;
-
-			// NOTE: If the reflection is too slow, this method should
-			// just return the literal value, like 105.
-			// -- 5/25/2001
-			Class clazz = Ids.class;
-			Field[] fields = clazz.getFields();
-			numofids = 0;
-			for (int i = 0; i < fields.length; i++) {
-				String name = fields[i].getName();
-				if (name.startsWith("ID_"))//$NON-NLS-1$
-					numofids++;
-			}
-			return numofids;
-		}
-
-		// chache the result of the reflection.
-		private static int numofids = -1;
-	}
-
-	// attribute creater
-	class JACreater implements JSP11Namespace {
-		// attribute declaration
-		class AttrDecl extends CMNodeImpl implements HTMLAttributeDeclaration {
-			HTMLCMDataTypeImpl type = null;
-			int usage = CMAttributeDeclaration.OPTIONAL;
-
-			// methods
-			public AttrDecl(String attrName) {
-				super(attrName);
-			}
-
-			public String getAttrName() {
-				return getNodeName();
-			}
-
-			public CMDataType getAttrType() {
-				return type;
-			}
-
-			/** @deprecated by superclass */
-			public String getDefaultValue() {
-				if (type.getImpliedValueKind() != CMDataType.IMPLIED_VALUE_DEFAULT)
-					return null;
-				return type.getImpliedValue();
-			}
-
-			/** @deprecated  by superclass */
-			public Enumeration getEnumAttr() {
-				Vector v = new Vector(Arrays.asList(type.getEnumeratedValues()));
-				return v.elements();
-			}
-
-			public int getNodeType() {
-				return CMNode.ATTRIBUTE_DECLARATION;
-			}
-
-			public int getUsage() {
-				return usage;
-			}
-
-			public boolean shouldIgnoreCase() {
-				return false;
-			}
-		}
-
-		CMNamedNodeMapImpl declarations = null;
-
-		public JACreater() {
-			declarations = new CMNamedNodeMapImpl();
-		}
-
-		public CMNamedNodeMapImpl getDeclarations(int eid) {
-			switch (eid) {
-				case Ids.ID_DIRECTIVE_PAGE :
-					createForDirPage();
-					break;
-				case Ids.ID_DIRECTIVE_INCLUDE :
-					createForDirInclude();
-					break;
-				case Ids.ID_DIRECTIVE_TAGLIB :
-					createForDirTaglib();
-					break;
-				case Ids.ID_USEBEAN :
-					createForUseBean();
-					break;
-				case Ids.ID_SETPROPERTY :
-					createForSetProperty();
-					break;
-				case Ids.ID_GETPROPERTY :
-					createForGetProperty();
-					break;
-				case Ids.ID_INCLUDE :
-					createForInclude();
-					break;
-				case Ids.ID_FORWARD :
-					createForForward();
-					break;
-				case Ids.ID_PLUGIN :
-					createForPlugin();
-					break;
-				case Ids.ID_PARAM :
-					createForParam();
-					break;
-				case Ids.ID_ROOT :
-					createForRoot();
-					break;
-				default :
-					// should warn.
-					break;
-			}
-			return declarations;
-		}
-
-		AttrDecl createBoolType(String name, String defValue) {
-			AttrDecl adec = new AttrDecl(name);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
-			adec.type.setEnumValues(values);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, defValue);
-			return adec;
-		}
-
-		private void createForDirPage() {
-			AttrDecl adec = null;
-			// ("language" CDATA DECLARED "java")
-			adec = new AttrDecl(ATTR_NAME_LANGUAGE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_JAVA);
-			declarations.putNamedItem(ATTR_NAME_LANGUAGE, adec);
-
-			// ("extends" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_EXTENDS);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_EXTENDS, adec);
-
-			// ("contentType" CDATA DECLARED "text/html; ISO-8859-1")
-			adec = new AttrDecl(ATTR_NAME_CONTENT_TYPE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_CT_DEFAULT);
-			declarations.putNamedItem(ATTR_NAME_CONTENT_TYPE, adec);
-
-			// ("import" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_IMPORT);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_IMPORT, adec);
-
-			// ("session" ENUM DECLARED (true|false) "true")
-			adec = createBoolType(ATTR_NAME_SESSION, ATTR_VALUE_TRUE);
-			if (adec != null)
-				declarations.putNamedItem(ATTR_NAME_SESSION, adec);
-
-			// ("buffer" CDATA DECLARED "8kb")
-			adec = new AttrDecl(ATTR_NAME_BUFFER);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_BUFSIZ_DEFAULT);
-			declarations.putNamedItem(ATTR_NAME_BUFFER, adec);
-
-			// ("autoFlush" ENUM DECLARED (true|false) "true")
-			adec = createBoolType(ATTR_NAME_AUTOFLUSH, ATTR_VALUE_TRUE);
-			if (adec != null)
-				declarations.putNamedItem(ATTR_NAME_AUTOFLUSH, adec);
-
-			// ("isThreadSafe" ENUM DECLARED (true|false) "true")
-			adec = createBoolType(ATTR_NAME_IS_THREAD_SAFE, ATTR_VALUE_TRUE);
-			if (adec != null)
-				declarations.putNamedItem(ATTR_NAME_IS_THREAD_SAFE, adec);
-
-			// ("info" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_INFO);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_INFO, adec);
-
-			// ("errorPage" URI IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_ERROR_PAGE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			declarations.putNamedItem(ATTR_NAME_ERROR_PAGE, adec);
-
-			// ("isErrorPage" ENUM DECLARED (true|false) "false")
-			adec = createBoolType(ATTR_NAME_IS_ERROR_PAGE, ATTR_VALUE_FALSE);
-			if (adec != null)
-				declarations.putNamedItem(ATTR_NAME_IS_ERROR_PAGE, adec);
-
-			// ("pageEncoding" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_PAGE_ENCODING);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_PAGE_ENCODING, adec);
-
-		}
-
-		private void createForDirInclude() {
-			// ("file" URI REQUIRED); Defect TORO:185241
-			AttrDecl adec = new AttrDecl(ATTR_NAME_FILE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_FILE, adec);
-		}
-
-		private void createForDirTaglib() {
-			// ("uri" URI REQUIRED)
-			AttrDecl adec = new AttrDecl(ATTR_NAME_URI);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_URI, adec);
-
-			// ("prefix" CDATA REQUIRED)
-			adec = new AttrDecl(ATTR_NAME_PREFIX);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_PREFIX, adec);
-		}
-
-		private void createForUseBean() {
-			// ("id" ID REQUIRED)
-			AttrDecl adec = new AttrDecl(ATTR_NAME_ID);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ID);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_ID, adec);
-
-			// ("scope" ENUM DECLARED (page|session|request|application) "page")
-			adec = new AttrDecl(ATTR_NAME_SCOPE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_PAGE, ATTR_VALUE_SESSION, ATTR_VALUE_REQUEST, ATTR_VALUE_APPLICATION};
-			adec.type.setEnumValues(values);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_PAGE);
-			declarations.putNamedItem(ATTR_NAME_SCOPE, adec);
-
-			// ("class" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_CLASS);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_CLASS, adec);
-
-			// ("beanName" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_BEAN_NAME);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_BEAN_NAME, adec);
-
-			// ("type" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_TYPE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_TYPE, adec);
-		}
-
-		private void createForSetProperty() {
-			// ("name" IDREF REQUIRED)
-			AttrDecl adec = new AttrDecl(ATTR_NAME_NAME);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.IDREF);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_NAME, adec);
-
-			// ("property" CDATA REQUIRED)
-			adec = new AttrDecl(ATTR_NAME_PROPERTY);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_PROPERTY, adec);
-
-			// ("value" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_VALUE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_VALUE, adec);
-
-			// ("param" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_PARAM);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_PARAM, adec);
-
-		}
-
-		private void createForGetProperty() {
-			// ("name" IDREF REQUIRED)
-			AttrDecl adec = new AttrDecl(ATTR_NAME_NAME);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.IDREF);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_NAME, adec);
-
-			// ("property" CDATA REQUIRED)
-			adec = new AttrDecl(ATTR_NAME_PROPERTY);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_PROPERTY, adec);
-
-		}
-
-		private void createForInclude() {
-			AttrDecl adec = null;
-			// ("page" URI REQUIRED)
-			adec = new AttrDecl(ATTR_NAME_PAGE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_PAGE, adec);
-
-			// ("flush" ENUM OPTIONAL (true|false)); Defect TORO:185241
-			adec = new AttrDecl(ATTR_NAME_FLUSH);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
-			adec.type.setEnumValues(values);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
-			declarations.putNamedItem(ATTR_NAME_FLUSH, adec);
-		}
-
-		private void createForForward() {
-			// ("page" URI REQUIRED)
-			AttrDecl adec = new AttrDecl(ATTR_NAME_PAGE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_PAGE, adec);
-		}
-
-		private void createForPlugin() {
-			// ("type" ENUM REQUIRED (bean|applet))
-			AttrDecl adec = new AttrDecl(ATTR_NAME_TYPE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			String[] values = {ATTR_VALUE_BEAN, ATTR_VALUE_APPLET};
-			adec.type.setEnumValues(values);
-			declarations.putNamedItem(ATTR_NAME_TYPE, adec);
-
-			// ("code" CDATA REQUIRED)
-			adec = new AttrDecl(ATTR_NAME_CODE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_CODE, adec);
-
-			// ("codebase" URI REQUIRED)
-			adec = new AttrDecl(ATTR_NAME_CODEBASE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_CODEBASE, adec);
-
-			// ("align" ENUM IMPLIED (top|middle|bottom|left|right))
-			adec = new AttrDecl(ATTR_NAME_ALIGN);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] aligns = {ATTR_VALUE_TOP, ATTR_VALUE_MIDDLE, ATTR_VALUE_BOTTOM, ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT};
-			adec.type.setEnumValues(aligns);
-			declarations.putNamedItem(ATTR_NAME_ALIGN, adec);
-
-			// ("archive" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_ARCHIVE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_ARCHIVE, adec);
-
-			// ("height" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_HEIGHT);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_HEIGHT, adec);
-
-			// ("hspace" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_HSPACE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_HSPACE, adec);
-
-			// ("jreversion" CDATA DECLARED "1.1")
-			adec = new AttrDecl(ATTR_NAME_JREVERSION);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_JVER11);
-			declarations.putNamedItem(ATTR_NAME_JREVERSION, adec);
-
-			// ("name" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_NAME);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_NAME, adec);
-
-			// ("vspace" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_VSPACE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_VSPACE, adec);
-
-			// ("width" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_WIDTH);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_WIDTH, adec);
-
-			// ("nspluginurl" URI IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_NSPLUGINURL);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			declarations.putNamedItem(ATTR_NAME_NSPLUGINURL, adec);
-
-			// ("iepluginurl" URI IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_IEPLUGINURL);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			declarations.putNamedItem(ATTR_NAME_IEPLUGINURL, adec);
-		}
-
-		private void createForParam() {
-			// ("name" CDATA REQUIRED)
-			AttrDecl adec = new AttrDecl(ATTR_NAME_NAME);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_NAME, adec);
-
-			// ("value" CDATA REQUIRED); Defect TORO:185241
-			adec = new AttrDecl(ATTR_NAME_VALUE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_VALUE, adec);
-
-		}
-
-		private void createForRoot() {
-			// ("xmlns:jsp" CDATA "http://java.sun.com/JSP/Page")
-			AttrDecl adec = new AttrDecl(ATTR_NAME_XMLNS_JSP);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_XMLNS_JSP);
-			declarations.putNamedItem(ATTR_NAME_XMLNS_JSP, adec);
-			// ("version" CDATA REQUIRED)
-			adec = new AttrDecl(ATTR_NAME_VERSION);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_VERSION, adec);
-		}
-	}
-
-	private final static CMNamedNodeMap EMPTY_MAP = new CMNamedNodeMap() {
-		public int getLength() {
-			return 0;
-		}
-
-		public CMNode getNamedItem(String name) {
-			return null;
-		}
-
-		public CMNode item(int index) {
-			return null;
-		}
-
-		public Iterator iterator() {
-			return new Iterator() {
-				public boolean hasNext() {
-					return false;
-				}
-
-				public Object next() {
-					return null;
-				}
-
-				public void remove() {
-				}
-			};
-		}
-	};
-	private static String[] names = null;
-
-	static {
-		names = new String[Ids.getNumOfIds()];
-		names[Ids.ID_SCRIPTLET] = SCRIPTLET;
-		names[Ids.ID_EXPRESSION] = EXPRESSION;
-		names[Ids.ID_DECLARATION] = DECLARATION;
-		names[Ids.ID_DIRECTIVE_PAGE] = DIRECTIVE_PAGE;
-		names[Ids.ID_DIRECTIVE_INCLUDE] = DIRECTIVE_INCLUDE;
-		names[Ids.ID_DIRECTIVE_TAGLIB] = DIRECTIVE_TAGLIB;
-		names[Ids.ID_USEBEAN] = USEBEAN;
-		names[Ids.ID_SETPROPERTY] = SETPROPERTY;
-		names[Ids.ID_GETPROPERTY] = GETPROPERTY;
-		names[Ids.ID_INCLUDE] = INCLUDE;
-		names[Ids.ID_FORWARD] = FORWARD;
-		names[Ids.ID_PLUGIN] = PLUGIN;
-		names[Ids.ID_PARAMS] = PARAMS;
-		names[Ids.ID_FALLBACK] = FALLBACK;
-		names[Ids.ID_PARAM] = PARAM;
-		names[Ids.ID_ROOT] = ROOT;
-		names[Ids.ID_TEXT] = TEXT;
-	}
-
-	JSPElementCollection(String[] names, boolean tolerant) {
-		super(names, tolerant);
-	}
-
-	/**
-	 */
-	public JSPElementCollection() {
-		super(names, TOLERANT_CASE);
-	}
-
-	/**
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 * @param elementName java.lang.String
-	 */
-	protected CMNode create(String elementName) {
-		return createElemDecl(getID(elementName));
-	}
-
-	/**
-	 * @param eid int
-	 */
-	CMGroupImpl createContent(int eid) {
-		if (eid == ID_UNKNOWN)
-			return null;
-
-		CMGroupImpl content = null;
-		CMNode child = null;
-
-		switch (eid) {
-			case Ids.ID_INCLUDE :
-			case Ids.ID_FORWARD :
-				// (jsp:param)*
-				content = new CMGroupImpl(CMGroup.SEQUENCE, 0, CMContentImpl.UNBOUNDED);
-				child = item(Ids.ID_PARAM);
-				if (child != null)
-					content.appendChild(child);
-				break;
-			case Ids.ID_PLUGIN :
-				// (jsp:params | jsp:fallback)?
-				content = new CMGroupImpl(CMGroup.CHOICE, 0, 1);
-				// jsp:params
-				child = item(Ids.ID_PARAMS);
-				if (child != null)
-					content.appendChild(child);
-				// jsp:fallback
-				child = item(Ids.ID_FALLBACK);
-				if (child != null)
-					content.appendChild(child);
-				break;
-			case Ids.ID_PARAMS :
-				// (jsp:param)+
-				content = new CMGroupImpl(CMGroup.SEQUENCE, 1, CMContentImpl.UNBOUNDED);
-				child = item(Ids.ID_PARAM);
-				if (child != null)
-					content.appendChild(child);
-				break;
-			case Ids.ID_ROOT :
-				// %Body;
-				// --> (jsp:text|%Directives;|%Scripts;|%Actions;)*
-				//     %Directives --> jsp:directive.page|jsp:directive.include
-				//     %Scripts; --> jsp:scriptlet|jsp:declaration|jsp:expression
-				//     %Actions --> jsp:useBean|jsp.setProperty|jsp:getProperty
-				//                  |jsp:include|jsp:forward|jsp:plugin
-				content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED);
-				int validChildren[] = {Ids.ID_TEXT,
-				// %Directves;
-							Ids.ID_DIRECTIVE_PAGE, Ids.ID_DIRECTIVE_INCLUDE,
-							// %Scripts;
-							Ids.ID_SCRIPTLET, Ids.ID_DECLARATION, Ids.ID_EXPRESSION,
-							// %Actions;
-							Ids.ID_USEBEAN, Ids.ID_SETPROPERTY, Ids.ID_GETPROPERTY, Ids.ID_INCLUDE, Ids.ID_FORWARD, Ids.ID_PLUGIN};
-				for (int i = 0; i < validChildren.length; i++) {
-					child = item(validChildren[i]);
-					if (child != null)
-						content.appendChild(child);
-				}
-				break;
-		}
-
-		return content;
-	}
-
-	/**
-	 * @param eid int
-	 */
-	HTMLElementDeclaration createElemDecl(int eid) {
-		if (eid == ID_UNKNOWN)
-			return null;
-
-		TypePacket packet = new TypePacket();
-		switch (eid) {
-			case Ids.ID_SCRIPTLET :
-				// content, omit, lineBreak, layout, correct, format
-				// scriptlet
-				packet.name = SCRIPTLET;
-				packet.content = CMElementDeclaration.CDATA;
-				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
-				break;
-			case Ids.ID_EXPRESSION :
-				// expression
-				packet.name = EXPRESSION;
-				packet.content = CMElementDeclaration.CDATA;
-				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
-				break;
-			case Ids.ID_DECLARATION :
-				// declaration
-				packet.name = DECLARATION;
-				packet.content = CMElementDeclaration.CDATA;
-				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
-				break;
-			case Ids.ID_DIRECTIVE_PAGE :
-				// directive.page
-				packet.name = DIRECTIVE_PAGE;
-				packet.omit = HTMLElementDeclaration.OMIT_END;
-				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE;
-				break;
-			case Ids.ID_DIRECTIVE_INCLUDE :
-				// directive.inlcude
-				packet.name = DIRECTIVE_INCLUDE;
-				packet.omit = HTMLElementDeclaration.OMIT_END;
-				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE;
-				break;
-			case Ids.ID_DIRECTIVE_TAGLIB :
-				// directive.taglib
-				packet.name = DIRECTIVE_TAGLIB;
-				packet.omit = HTMLElementDeclaration.OMIT_END;
-				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE;
-				break;
-			case Ids.ID_USEBEAN :
-				// useBean
-				packet.name = USEBEAN;
-				packet.content = CMElementDeclaration.ANY;
-				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
-				packet.indentChild = true;
-				break;
-			case Ids.ID_SETPROPERTY :
-				// setProperty
-				packet.name = SETPROPERTY;
-				packet.omit = HTMLElementDeclaration.OMIT_END;
-				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
-				break;
-			case Ids.ID_GETPROPERTY :
-				// getProperty
-				packet.name = GETPROPERTY;
-				packet.omit = HTMLElementDeclaration.OMIT_END;
-				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
-				break;
-			case Ids.ID_INCLUDE :
-				// include
-				packet.name = INCLUDE;
-				packet.content = CMElementDeclaration.ELEMENT;
-				packet.omit = HTMLElementDeclaration.OMIT_END;
-				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
-				packet.indentChild = true;
-				break;
-			case Ids.ID_FORWARD :
-				// forward
-				packet.name = FORWARD;
-				packet.content = CMElementDeclaration.ELEMENT;
-				packet.omit = HTMLElementDeclaration.OMIT_END;
-				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
-				packet.indentChild = true;
-				break;
-			case Ids.ID_PLUGIN :
-				// plugin
-				packet.name = PLUGIN;
-				packet.content = CMElementDeclaration.ELEMENT;
-				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
-				packet.indentChild = true;
-				break;
-			case Ids.ID_PARAMS :
-				// params
-				packet.name = PARAMS;
-				packet.content = CMElementDeclaration.ELEMENT;
-				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
-				packet.indentChild = true;
-				break;
-			case Ids.ID_FALLBACK :
-				// fallback
-				packet.name = FALLBACK;
-				packet.content = CMElementDeclaration.CDATA;
-				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
-				break;
-			case Ids.ID_PARAM :
-				// param
-				packet.name = PARAM;
-				packet.omit = HTMLElementDeclaration.OMIT_END;
-				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
-				break;
-			case Ids.ID_ROOT :
-				packet.name = ROOT;
-				packet.content = CMElementDeclaration.ELEMENT;
-				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; // same as HTML
-				break;
-			case Ids.ID_TEXT :
-				packet.name = TEXT;
-				packet.content = CMElementDeclaration.PCDATA;
-				break;
-			default :
-				// unknown ID
-				return null;
-		}
-
-		ElemDecl dec = new ElemDecl(packet);
-
-		CMGroupImpl content = createContent(eid);
-		if (content != null)
-			dec.setContent(content);
-
-		JACreater creater = new JACreater();
-		dec.setAttributes(creater.getDeclarations(eid));
-
-		return dec;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProvider.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProvider.java
deleted file mode 100644
index f3972ec..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProvider.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.wst.html.core.internal.contentmodel;
-
-
-/**
- * PropertyProvider class.
- * This class is intended to be used in HTMLElementDeclaration instances.
- */
-interface PropertyProvider {
-
-	boolean supports(HTMLElementDeclaration edecl);
-
-	Object get(HTMLElementDeclaration edecl);
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProviderFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProviderFactory.java
deleted file mode 100644
index 5eb1abe..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProviderFactory.java
+++ /dev/null
@@ -1,360 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-import java.util.Hashtable;
-
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.xml.core.internal.contentmodel.annotation.AnnotationMap;
-
-/**
- * The factory object of PropertyProvider.
- */
-final class PropertyProviderFactory {
-
-
-	/**
-	 * DefaultProvider is intended to be used for unknown properties.
-	 * It always returns null value for any properties.
-	 */
-	class DefaultProvider implements PropertyProvider {
-		public DefaultProvider() {
-			super();
-		}
-
-		public boolean supports(HTMLElementDeclaration edecl) {
-			return false;
-		}
-
-		public Object get(HTMLElementDeclaration edecl) {
-			return null;
-		}
-	}
-
-	abstract class AbstractElementPropertyProvider implements PropertyProvider {
-		protected AbstractElementPropertyProvider() {
-			super();
-		}
-
-		public boolean supports(HTMLElementDeclaration edecl) {
-			return (edecl != null);
-		}
-
-		public Object get(HTMLElementDeclaration edecl) {
-			if (!(edecl instanceof HTMLPropertyDeclaration))
-				return null;
-			return getElementProperty((HTMLPropertyDeclaration)edecl);
-		}
-
-		abstract protected Object getElementProperty(HTMLPropertyDeclaration decl);
-	}
-
-	/*
-	 * "tagInfo"
-	 * gets documentation for the element
-	 */
-	class PPTagInfo extends AbstractElementPropertyProvider {
-		private final static String htmlAnnotationLoc = "data/htmref.xml"; //$NON-NLS-1$
-		protected AnnotationMap fAnnotationMap = null;
-
-		public PPTagInfo() {
-			super();
-		}
-
-		/**
-		 * Gets the annotationMap.
-		 * @return Returns a AnnotationMap
-		 */
-		protected AnnotationMap getAnnotationMap() {
-			if (fAnnotationMap == null) {
-				fAnnotationMap = new AnnotationMap();
-				try {
-					fAnnotationMap.load(htmlAnnotationLoc, HTMLCorePlugin.getDefault().getBundle().getSymbolicName());
-				}
-				catch (Exception e) {
-					// no annotation available
-				}
-			}
-			return fAnnotationMap;
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			if (decl instanceof HTMLElementDeclaration) {
-				return getAnnotationMap().getProperty(((HTMLElementDeclaration)decl).getElementName(), "tagInfo"); //$NON-NLS-1$
-			} else {
-				return null;
-			}
-		}
-	}
-
-	/*
-	 * "shouldKeepSpace"
-	 */
-	class PPShouldKeepSpace extends AbstractElementPropertyProvider {
-		public PPShouldKeepSpace() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			return new Boolean(decl.shouldKeepSpaces());
-		}
-	}
-
-	/*
-	 * "shouldIndentChildSource"
-	 */
-	class PPShouldIndentChildSource extends AbstractElementPropertyProvider {
-		public PPShouldIndentChildSource() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			return new Boolean(decl.shouldIndentChildSource());
-		}
-	}
-
-	/*
-	 * "terminators"
-	 */
-	class PPTerminators extends AbstractElementPropertyProvider {
-		public PPTerminators() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			if (! (decl instanceof HTMLElemDeclImpl)) return null;
-			return ((HTMLElemDeclImpl)decl).getTerminators();
-		}
-	}
-
-	/*
-	 * "prohibitedAncestors"
-	 */
-	class PPProhibitedAncestors extends AbstractElementPropertyProvider {
-		public PPProhibitedAncestors() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			return decl.getProhibitedAncestors();
-		}
-	}
-
-	/*
-	 * "isJSP"
-	 */
-	class PPIsJSP extends AbstractElementPropertyProvider {
-		public PPIsJSP() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			return new Boolean(decl.isJSP());
-		}
-	}
-
-	/*
-	 * "isXHTML"
-	 * HTMLElementDeclaration itself never represent any XHTML element declaration.
-	 * So, this property must be always false.
-	 */
-	class PPIsXHTML extends AbstractElementPropertyProvider {
-		public PPIsXHTML() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			return new Boolean(false);
-		}
-	}
-
-	/*
-	 * "isSSI"
-	 * Each declaration class for SSI elements must provide this property itself,
-	 * and then return true.  Other declaration must always return false.
-	 */
-	class PPIsSSI extends AbstractElementPropertyProvider {
-		public PPIsSSI() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			return new Boolean(false);
-		}
-	}
-
-	/*
-	 * "lineBreakHint"
-	 */
-	class PPLineBreakHint extends AbstractElementPropertyProvider {
-		public PPLineBreakHint() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			String hint = HTMLCMProperties.Values.BREAK_NONE;
-			switch (decl.getLineBreakHint()) {
-				case HTMLElementDeclaration.BREAK_AFTER_START :
-					hint = HTMLCMProperties.Values.BREAK_AFTER_START;
-					break;
-				case HTMLElementDeclaration.BREAK_BEFORE_START_AND_AFTER_END :
-					hint = HTMLCMProperties.Values.BREAK_BEFORE_START_AND_AFTER_END;
-					break;
-				case HTMLElementDeclaration.BREAK_NONE :
-				// nothing to do
-				default :
-					break;
-			}
-			return hint;
-		}
-	}
-
-	/*
-	 * "layoutType"
-	 */
-	class PPLayoutType extends AbstractElementPropertyProvider {
-		public PPLayoutType() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			String type = HTMLCMProperties.Values.LAYOUT_NONE;
-			switch (decl.getLayoutType()) {
-				case HTMLElementDeclaration.LAYOUT_BLOCK :
-					type = HTMLCMProperties.Values.LAYOUT_BLOCK;
-					break;
-				case HTMLElementDeclaration.LAYOUT_BREAK :
-					type = HTMLCMProperties.Values.LAYOUT_BREAK;
-					break;
-				case HTMLElementDeclaration.LAYOUT_HIDDEN :
-					type = HTMLCMProperties.Values.LAYOUT_HIDDEN;
-					break;
-				case HTMLElementDeclaration.LAYOUT_OBJECT :
-					type = HTMLCMProperties.Values.LAYOUT_OBJECT;
-					break;
-				case HTMLElementDeclaration.LAYOUT_WRAP :
-					type = HTMLCMProperties.Values.LAYOUT_WRAP;
-					break;
-				case HTMLElementDeclaration.LAYOUT_NONE :
-				// nothing to do.
-				default :
-					break;
-			}
-			return type;
-		}
-	}
-
-	/*
-	 * "omitType"
-	 */
-	class PPOmitType extends AbstractElementPropertyProvider {
-		public PPOmitType() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			String type = HTMLCMProperties.Values.OMIT_NONE;
-			switch (decl.getOmitType()) {
-				case HTMLElementDeclaration.OMIT_BOTH :
-					type = HTMLCMProperties.Values.OMIT_BOTH;
-					break;
-				case HTMLElementDeclaration.OMIT_END :
-					type = HTMLCMProperties.Values.OMIT_END;
-					break;
-				case HTMLElementDeclaration.OMIT_END_DEFAULT :
-					type = HTMLCMProperties.Values.OMIT_END_DEFAULT;
-					break;
-				case HTMLElementDeclaration.OMIT_END_MUST :
-					type = HTMLCMProperties.Values.OMIT_END_MUST;
-					break;
-				case HTMLElementDeclaration.OMIT_NONE :
-				// nothing to do.
-				default :
-					break;
-			}
-			return type;
-		}
-	}
-
-	/*
-	 * "inclusion"
-	 */
-	class PPInclusion extends AbstractElementPropertyProvider {
-		public PPInclusion() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			return decl.getInclusion();
-		}
-	}
-
-	public static PropertyProvider getProvider(String propName) {
-		PropertyProviderFactory factory = getInstance();
-		PropertyProvider pp = (PropertyProvider) factory.registry.get(propName);
-		if (pp != null)
-			return pp;
-
-		pp = factory.create(propName);
-		if (pp == null)
-			return factory.defaultProvider;
-
-		factory.registry.put(propName, pp);
-		return pp;
-	}
-
-	private static PropertyProviderFactory instance = null;
-
-	private synchronized static PropertyProviderFactory getInstance() {
-		if (instance != null)
-			return instance;
-		instance = new PropertyProviderFactory();
-		return instance;
-	}
-
-	private Hashtable registry = new Hashtable();
-	private PropertyProvider defaultProvider = new DefaultProvider();
-
-	private PropertyProviderFactory() {
-		super();
-	}
-
-	private PropertyProvider create(String propName) {
-		PropertyProvider pp = null;
-		if (propName.equals(HTMLCMProperties.IS_JSP))
-			pp = new PPIsJSP();
-		else if (propName.equals(HTMLCMProperties.IS_XHTML))
-			pp = new PPIsXHTML();
-		else if (propName.equals(HTMLCMProperties.IS_SSI))
-			pp = new PPIsSSI();
-		else if (propName.equals(HTMLCMProperties.LAYOUT_TYPE))
-			pp = new PPLayoutType();
-		else if (propName.equals(HTMLCMProperties.LINE_BREAK_HINT))
-			pp = new PPLineBreakHint();
-		else if (propName.equals(HTMLCMProperties.PROHIBITED_ANCESTORS))
-			pp = new PPProhibitedAncestors();
-		else if (propName.equals(HTMLCMProperties.SHOULD_KEEP_SPACE))
-			pp = new PPShouldKeepSpace();
-		else if (propName.equals(HTMLCMProperties.SHOULD_INDENT_CHILD_SOURCE))
-			pp = new PPShouldIndentChildSource();
-		else if (propName.equals(HTMLCMProperties.TERMINATORS))
-			pp = new PPTerminators();
-		else if (propName.equals(HTMLCMProperties.TAGINFO))
-			pp = new PPTagInfo();
-		else if (propName.equals(HTMLCMProperties.OMIT_TYPE))
-			pp = new PPOmitType();
-		else if (propName.equals(HTMLCMProperties.INCLUSION))
-			pp = new PPInclusion();
-
-		return pp;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/Tag20ElementCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/Tag20ElementCollection.java
deleted file mode 100644
index 7ae40f2..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/Tag20ElementCollection.java
+++ /dev/null
@@ -1,693 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-
-
-import java.lang.reflect.Field;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * Factory for element declarations of JSP 2.0 Tag files.
- */
-final class Tag20ElementCollection extends JSPElementCollection implements JSP20Namespace.ElementName {
-	// element IDs
-	private static class TagIds20 {
-		public static final int ID_SCRIPTLET = 0;
-		public static final int ID_EXPRESSION = 1;
-		public static final int ID_DECLARATION = 2;
-		public static final int ID_DIRECTIVE_TAG = 3;
-		public static final int ID_DIRECTIVE_INCLUDE = 4;
-		public static final int ID_DIRECTIVE_TAGLIB = 5;
-		public static final int ID_USEBEAN = 6;
-		public static final int ID_SETPROPERTY = 7;
-		public static final int ID_GETPROPERTY = 8;
-		public static final int ID_INCLUDE = 9;
-		public static final int ID_FORWARD = 10;
-		public static final int ID_PLUGIN = 11;
-		public static final int ID_PARAMS = 12;
-		public static final int ID_FALLBACK = 13;
-		public static final int ID_PARAM = 14;
-		public static final int ID_ROOT = 15;
-		public static final int ID_TEXT = 16;
-		public static final int ID_DIRECTIVE_VARIABLE = 17;
-		public static final int ID_DIRECTIVE_ATTRIBUTE = 18;
-		public static final int ID_BODY = 19;
-		public static final int ID_ATTRIBUTE = 20;
-		public static final int ID_ELEMENT = 21;
-		public static final int ID_DOBODY = 22;
-		public static final int ID_INVOKE = 23;
-		public static final int ID_OUTPUT = 24;
-
-		// chache the result of the reflection.
-		private static int numofids = -1;
-
-		public static int getNumOfIds() {
-			if (numofids != -1)
-				return numofids;
-
-			// NOTE: If the reflection is too slow, this method should
-			// just return the literal value, like 105.
-			// -- 5/25/2001
-			Class clazz = TagIds20.class;
-			Field[] fields = clazz.getFields();
-			numofids = 0;
-			for (int i = 0; i < fields.length; i++) {
-				String name = fields[i].getName();
-				if (name.startsWith("ID_"))//$NON-NLS-1$
-					numofids++;
-			}
-			return numofids;
-		}
-	}
-
-	// attribute creater
-	private class TACreater20 extends JACreater {
-
-		public TACreater20() {
-			super();
-		}
-
-		private void createForAttribute() {
-			AttrDecl adec = new AttrDecl(ATTR_NAME_NAME);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_NAME, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_TRIM);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
-			adec.type.setEnumValues(values);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_TRUE);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_TRIM, adec);
-		}
-
-		private void createForBody() {
-		}
-
-		private void createForDirAttribute() {
-			AttrDecl adec = new AttrDecl(ATTR_NAME_NAME);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_NAME, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_REQUIRED);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
-			adec.type.setEnumValues(values);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_REQUIRED, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_FRAGMENT);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
-			adec.type.setEnumValues(values);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_FRAGMENT, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_RTEXPRVALUE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
-			adec.type.setEnumValues(values);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_TRUE);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_RTEXPRVALUE, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_TYPE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_TYPE, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DESCRIPTION);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DESCRIPTION, adec);
-		}
-
-		private void createForDirTag() {
-			// ("import" URI optional)
-			AttrDecl adec = new AttrDecl(ATTR_NAME_IMPORT);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(ATTR_NAME_IMPORT, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DISPLAY_NAME);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ID);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DISPLAY_NAME, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_BODY_CONTENT);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {JSP20Namespace.ATTR_VALUE_EMPTY, JSP20Namespace.ATTR_VALUE_TAGDEPENDENT, JSP20Namespace.ATTR_VALUE_SCRIPTLESS};
-			adec.type.setEnumValues(values);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_SCRIPTLESS);
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_BODY_CONTENT, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DYNAMIC_ATTRIBUTES);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DYNAMIC_ATTRIBUTES, adec);
-			
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_SMALL_ICON);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_SMALL_ICON, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_LARGE_ICON);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_LARGE_ICON, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DESCRIPTION);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DESCRIPTION, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_EXAMPLE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_EXAMPLE, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_LANGUAGE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_JAVA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_LANGUAGE, adec);
-
-			adec = new AttrDecl(JSP11Namespace.ATTR_NAME_IMPORT);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP11Namespace.ATTR_NAME_IMPORT, adec);
-
-			adec = new AttrDecl(JSP11Namespace.ATTR_NAME_PAGE_ENCODING);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_ENCODING_DEFAULT);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP11Namespace.ATTR_NAME_PAGE_ENCODING, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_ISELIGNORED);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
-			adec.type.setEnumValues(values);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_ISELIGNORED, adec);
-		}
-
-		/**
-		 * Changed in 2.0 (tagdir added)
-		 */
-		void createForDirTaglib() {
-			// ("uri" URI OPTIONAL)
-			AttrDecl adec = new AttrDecl(ATTR_NAME_URI);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(ATTR_NAME_URI, adec);
-
-			// ("tagdir" URI OPTIONAL)
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_TAGDIR);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_TAGDIR, adec);
-
-			// ("prefix" CDATA REQUIRED)
-			adec = new AttrDecl(ATTR_NAME_PREFIX);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_PREFIX, adec);
-		}
-
-		private void createForDirVariable() {
-			AttrDecl adec = new AttrDecl(JSP20Namespace.ATTR_NAME_NAME_GIVEN);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_NAME_GIVEN, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_NAME_FROM_ATTRIBUTE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_NAME_FROM_ATTRIBUTE, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_ALIAS);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_ALIAS, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_VARIABLE_CLASS);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_VARIABLE_CLASS_DEFAULT);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_VARIABLE_CLASS, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DECLARE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
-			adec.type.setEnumValues(values);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_TRUE);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DECLARE, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DESCRIPTION);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DESCRIPTION, adec);
-
-			adec = new AttrDecl(JSP11Namespace.ATTR_NAME_SCOPE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			values = new String[]{JSP20Namespace.ATTR_VALUE_SCOPE_NESTED, JSP20Namespace.ATTR_VALUE_SCOPE_AT_BEGIN, JSP20Namespace.ATTR_VALUE_SCOPE_AT_END};
-			adec.type.setEnumValues(values);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_SCOPE_NESTED);
-			declarations.putNamedItem(JSP11Namespace.ATTR_NAME_SCOPE, adec);
-		}
-
-		private void createForDoBody() {
-			AttrDecl adec = new AttrDecl(JSP20Namespace.ATTR_NAME_VAR);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_VAR, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_VARREADER);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_VARREADER, adec);
-
-			adec = new AttrDecl(JSP11Namespace.ATTR_NAME_SCOPE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_PAGE, ATTR_VALUE_REQUEST, ATTR_VALUE_SESSION, ATTR_VALUE_APPLICATION};
-			adec.type.setEnumValues(values);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_PAGE);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP11Namespace.ATTR_NAME_SCOPE, adec);
-		}
-
-		private void createForElement() {
-			AttrDecl adec = new AttrDecl(ATTR_NAME_NAME);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_NAME, adec);
-		}
-
-		private void createForInvoke() {
-			AttrDecl adec = new AttrDecl(JSP20Namespace.ATTR_NAME_FRAGMENT);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_FRAGMENT, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_VAR);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_VAR, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_VARREADER);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_VARREADER, adec);
-
-			adec = new AttrDecl(JSP11Namespace.ATTR_NAME_SCOPE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_PAGE, ATTR_VALUE_REQUEST, ATTR_VALUE_SESSION, ATTR_VALUE_APPLICATION};
-			adec.type.setEnumValues(values);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_PAGE);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP11Namespace.ATTR_NAME_SCOPE, adec);
-		}
-
-		private void createForOutput() {
-			AttrDecl adec = new AttrDecl(JSP20Namespace.ATTR_NAME_OMIT_XML_DECL);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE, JSP20Namespace.ATTR_VALUE_YES, JSP20Namespace.ATTR_VALUE_NO};
-			adec.type.setEnumValues(values);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_NO);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_OMIT_XML_DECL, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_ROOT_ELEMENT);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DOCTYPE_ROOT_ELEMENT, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_SYSTEM);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DOCTYPE_SYSTEM, adec);
-
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_PUBLIC);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.usage = CMAttributeDeclaration.OPTIONAL;
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DOCTYPE_PUBLIC, adec);
-		}
-		
-		private void createForRoot() {
-			// ("xmlns:jsp" CDATA "http://java.sun.com/JSP/Page")
-			AttrDecl adec = new AttrDecl(ATTR_NAME_XMLNS_JSP);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_XMLNS_JSP);
-			declarations.putNamedItem(ATTR_NAME_XMLNS_JSP, adec);
-			// ("version" CDATA REQUIRED)
-			adec = new AttrDecl(ATTR_NAME_VERSION);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_JSP_VER_20);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_VERSION, adec);
-		}
-		
-		private void createForPlugin() {
-			// ("type" ENUM REQUIRED (bean|applet))
-			AttrDecl adec = new AttrDecl(ATTR_NAME_TYPE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			String[] values = {ATTR_VALUE_BEAN, ATTR_VALUE_APPLET};
-			adec.type.setEnumValues(values);
-			declarations.putNamedItem(ATTR_NAME_TYPE, adec);
-
-			// ("code" CDATA REQUIRED)
-			adec = new AttrDecl(ATTR_NAME_CODE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_CODE, adec);
-
-			// ("codebase" URI REQUIRED)
-			adec = new AttrDecl(ATTR_NAME_CODEBASE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			adec.usage = CMAttributeDeclaration.REQUIRED;
-			declarations.putNamedItem(ATTR_NAME_CODEBASE, adec);
-
-			// ("align" ENUM IMPLIED (top|middle|bottom|left|right))
-			adec = new AttrDecl(ATTR_NAME_ALIGN);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] aligns = {ATTR_VALUE_TOP, ATTR_VALUE_MIDDLE, ATTR_VALUE_BOTTOM, ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT};
-			adec.type.setEnumValues(aligns);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_BOTTOM);
-			declarations.putNamedItem(ATTR_NAME_ALIGN, adec);
-
-			// ("archive" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_ARCHIVE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_ARCHIVE, adec);
-
-			// ("height" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_HEIGHT);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_HEIGHT, adec);
-
-			// ("hspace" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_HSPACE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_HSPACE, adec);
-
-			// ("jreversion" CDATA DECLARED "1.1")
-			adec = new AttrDecl(ATTR_NAME_JREVERSION);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_JVER12);
-			declarations.putNamedItem(ATTR_NAME_JREVERSION, adec);
-
-			// ("name" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_NAME);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_NAME, adec);
-
-			// ("vspace" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_VSPACE);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_VSPACE, adec);
-
-			// ("width" CDATA IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_WIDTH);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			declarations.putNamedItem(ATTR_NAME_WIDTH, adec);
-
-			// ("nspluginurl" URI IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_NSPLUGINURL);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			declarations.putNamedItem(ATTR_NAME_NSPLUGINURL, adec);
-
-			// ("iepluginurl" URI IMPLIED)
-			adec = new AttrDecl(ATTR_NAME_IEPLUGINURL);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
-			declarations.putNamedItem(ATTR_NAME_IEPLUGINURL, adec);
-			
-			// ("mayscript" ENUM IMPLIED (true | false)
-			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_MAYSCRIPT);
-			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			adec.type.setEnumValues(new String[] {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE});
-			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_MAYSCRIPT, adec);
-		}
-
-		public CMNamedNodeMapImpl getDeclarations(int eid) {
-			switch (eid) {
-				case TagIds20.ID_DIRECTIVE_TAG :
-					createForDirTag();
-					break;
-				case TagIds20.ID_DIRECTIVE_VARIABLE :
-					createForDirVariable();
-					break;
-				case TagIds20.ID_DIRECTIVE_ATTRIBUTE :
-					createForDirAttribute();
-					break;
-				case TagIds20.ID_DIRECTIVE_TAGLIB :
-					createForDirTaglib();
-					break;
-				case TagIds20.ID_ATTRIBUTE :
-					createForAttribute();
-					break;
-				case TagIds20.ID_ELEMENT :
-					createForElement();
-					break;
-				case TagIds20.ID_BODY :
-					createForBody();
-					break;
-				case TagIds20.ID_DOBODY :
-					createForDoBody();
-					break;
-				case TagIds20.ID_INVOKE :
-					createForInvoke();
-					break;
-				case TagIds20.ID_OUTPUT :
-					createForOutput();
-					break;
-				case TagIds20.ID_ROOT :
-					createForRoot();
-					break;
-				case TagIds20.ID_PLUGIN :
-					createForPlugin();
-					break;
-				default :
-					super.getDeclarations(eid);
-					break;
-			}
-			return declarations;
-		}
-	}
-
-	private static String[] names = null;
-
-	static {
-		names = new String[TagIds20.getNumOfIds()];
-		names[Ids.ID_SCRIPTLET] = JSP11Namespace.ElementName.SCRIPTLET;
-		names[Ids.ID_EXPRESSION] = JSP11Namespace.ElementName.EXPRESSION;
-		names[Ids.ID_DECLARATION] = JSP11Namespace.ElementName.DECLARATION;
-		names[TagIds20.ID_DIRECTIVE_TAG] = JSP20Namespace.ElementName.DIRECTIVE_TAG;
-		names[Ids.ID_DIRECTIVE_INCLUDE] = JSP11Namespace.ElementName.DIRECTIVE_INCLUDE;
-		names[Ids.ID_DIRECTIVE_TAGLIB] = JSP11Namespace.ElementName.DIRECTIVE_TAGLIB;
-		names[Ids.ID_USEBEAN] = JSP11Namespace.ElementName.USEBEAN;
-		names[Ids.ID_SETPROPERTY] = JSP11Namespace.ElementName.SETPROPERTY;
-		names[Ids.ID_GETPROPERTY] = JSP11Namespace.ElementName.GETPROPERTY;
-		names[Ids.ID_INCLUDE] = JSP11Namespace.ElementName.INCLUDE;
-		names[Ids.ID_FORWARD] = JSP11Namespace.ElementName.FORWARD;
-		names[Ids.ID_PLUGIN] = JSP11Namespace.ElementName.PLUGIN;
-		names[Ids.ID_PARAMS] = JSP11Namespace.ElementName.PARAMS;
-		names[Ids.ID_FALLBACK] = JSP11Namespace.ElementName.FALLBACK;
-		names[Ids.ID_PARAM] = JSP11Namespace.ElementName.PARAM;
-		names[Ids.ID_ROOT] = JSP11Namespace.ElementName.ROOT;
-		names[Ids.ID_TEXT] = JSP11Namespace.ElementName.TEXT;
-		names[TagIds20.ID_DIRECTIVE_VARIABLE] = JSP20Namespace.ElementName.DIRECTIVE_VARIABLE;
-		names[TagIds20.ID_DIRECTIVE_ATTRIBUTE] = JSP20Namespace.ElementName.DIRECTIVE_ATTRIBUTE;
-		names[TagIds20.ID_BODY] = JSP20Namespace.ElementName.BODY;
-		names[TagIds20.ID_ATTRIBUTE] = JSP20Namespace.ElementName.ATTRIBUTE;
-		names[TagIds20.ID_ELEMENT] = JSP20Namespace.ElementName.ELEMENT;
-		names[TagIds20.ID_DOBODY] = JSP20Namespace.ElementName.DOBODY;
-		names[TagIds20.ID_INVOKE] = JSP20Namespace.ElementName.INVOKE;
-		names[TagIds20.ID_OUTPUT] = JSP20Namespace.ElementName.OUTPUT;
-	}
-
-	/**
-	 */
-	public Tag20ElementCollection() {
-		super(Tag20ElementCollection.names, TOLERANT_CASE);
-	}
-
-	/**
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 * @param elementName
-	 *            java.lang.String
-	 */
-	protected CMNode create(String elementName) {
-		return createElemDecl(getID(elementName));
-	}
-
-	/**
-	 * @param eid
-	 *            int
-	 */
-	CMGroupImpl createContent(int eid) {
-		if (eid == ID_UNKNOWN)
-			return null;
-
-		CMGroupImpl content = null;
-		CMNode child = null;
-
-		switch (eid) {
-			case Ids.ID_ROOT :
-				content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED);
-				int validChildren[] = {
-				// %Directives;
-							Ids.ID_TEXT, Ids.ID_DIRECTIVE_PAGE, Ids.ID_DIRECTIVE_INCLUDE, TagIds20.ID_DIRECTIVE_TAG, TagIds20.ID_DIRECTIVE_VARIABLE, TagIds20.ID_DIRECTIVE_ATTRIBUTE, TagIds20.ID_BODY, TagIds20.ID_ATTRIBUTE,
-							// %Scripts;
-							Ids.ID_SCRIPTLET, Ids.ID_DECLARATION, Ids.ID_EXPRESSION,
-							// %Actions;
-							Ids.ID_USEBEAN, Ids.ID_SETPROPERTY, Ids.ID_GETPROPERTY, Ids.ID_INCLUDE, Ids.ID_FORWARD, Ids.ID_PLUGIN};
-				for (int i = 0; i < validChildren.length; i++) {
-					child = item(validChildren[i]);
-					if (child != null)
-						content.appendChild(child);
-				}
-				break;
-			default :
-				content = super.createContent(eid);
-				break;
-		}
-
-		return content;
-	}
-
-	/**
-	 * @param eid
-	 *            int
-	 */
-	HTMLElementDeclaration createElemDecl(int eid) {
-		if (eid == ID_UNKNOWN)
-			return null;
-
-		TypePacket packet = new TypePacket();
-		switch (eid) {
-			case TagIds20.ID_DIRECTIVE_TAG :
-				// directive.taglib
-				packet.name = DIRECTIVE_TAG;
-				packet.omit = HTMLElementDeclaration.OMIT_END;
-				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE;
-				break;
-			case TagIds20.ID_DIRECTIVE_VARIABLE :
-				// directive.taglib
-				packet.name = DIRECTIVE_VARIABLE;
-				packet.omit = HTMLElementDeclaration.OMIT_END;
-				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE;
-				break;
-			case TagIds20.ID_DIRECTIVE_ATTRIBUTE :
-				// directive.taglib
-				packet.name = DIRECTIVE_ATTRIBUTE;
-				packet.omit = HTMLElementDeclaration.OMIT_END;
-				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE;
-				break;
-			case TagIds20.ID_DIRECTIVE_TAGLIB :
-				// directive.taglib
-				packet.name = DIRECTIVE_TAGLIB;
-				packet.omit = HTMLElementDeclaration.OMIT_END;
-				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE;
-				break;
-			case TagIds20.ID_BODY :
-				// declaration
-				packet.name = BODY;
-				packet.content = CMElementDeclaration.CDATA;
-				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
-				packet.indentChild = true;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
-				break;
-			case TagIds20.ID_ELEMENT :
-				// declaration
-				packet.name = JSP20Namespace.ElementName.ELEMENT;
-				packet.content = CMElementDeclaration.CDATA;
-				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
-				packet.indentChild = true;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
-				break;
-			case TagIds20.ID_ATTRIBUTE :
-				// declaration
-				packet.name = JSP20Namespace.ElementName.ATTRIBUTE;
-				packet.content = CMElementDeclaration.CDATA;
-				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
-				packet.indentChild = true;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
-				break;
-			case TagIds20.ID_DOBODY :
-				// declaration
-				packet.name = JSP20Namespace.ElementName.DOBODY;
-				packet.content = CMElementDeclaration.CDATA;
-				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
-				packet.indentChild = true;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
-				break;
-			case TagIds20.ID_INVOKE :
-				// declaration
-				packet.name = JSP20Namespace.ElementName.INVOKE;
-				packet.content = CMElementDeclaration.CDATA;
-				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
-				packet.indentChild = true;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
-				break;
-			case TagIds20.ID_OUTPUT :
-				// declaration
-				packet.name = JSP20Namespace.ElementName.OUTPUT;
-				packet.content = CMElementDeclaration.CDATA;
-				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
-				packet.indentChild = true;
-				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
-				break;
-			case TagIds20.ID_ROOT :
-				packet.name = ROOT;
-				packet.content = CMElementDeclaration.ELEMENT;
-				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; // same as HTML
-				break;
-			case TagIds20.ID_PLUGIN :
-				// plugin
-				packet.name = PLUGIN;
-				packet.content = CMElementDeclaration.ELEMENT;
-				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
-				packet.indentChild = true;
-				break;
-			default :
-				return super.createElemDecl(eid);
-		}
-		ElemDecl decl = new ElemDecl(packet);
-
-		CMGroupImpl content = createContent(eid);
-		if (content != null)
-			decl.setContent(content);
-
-		TACreater20 creater = new TACreater20();
-		decl.setAttributes(creater.getDeclarations(eid));
-
-		return decl;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/TagCMDocImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/TagCMDocImpl.java
deleted file mode 100644
index b2298f2..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/TagCMDocImpl.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel;
-
-/**
- * Implementation of CMDocument for the JSP 2.0 tag files.
- */
-class TagCMDocImpl extends JCMDocImpl {
-	/**
-	 * HCMDocImpl constructor comment.
-	 */
-	public TagCMDocImpl(String docTypeName, CMNamespaceImpl targetNamespace) {
-		super(docTypeName, targetNamespace, new Tag20ElementCollection());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/AttributeCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/AttributeCollection.java
deleted file mode 100644
index e563228..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/AttributeCollection.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLAttributeDeclaration;
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * Factory for attribute declarations.
- */
-final class AttributeCollection extends CMNamedNodeMapImpl implements CHTMLNamespace {
-	/**
-	 * constructor.
-	 */
-	public AttributeCollection() {
-		super();
-	}
-
-	/**
-	 * Create an attribute declaration.
-	 * @param attrName java.lang.String
-	 */
-	private HTMLAttrDeclImpl create(String attrName) {
-		HTMLAttrDeclImpl attr = null;
-		HTMLCMDataTypeImpl atype = null;
-
-		if (attrName.equalsIgnoreCase(ATTR_NAME_ACTION)) {
-			// (action %URI #REQUIRED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ACTION, atype, CMAttributeDeclaration.REQUIRED);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ALT)) {
-			// (alt %Text; #REQUIRED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ALT, atype, CMAttributeDeclaration.REQUIRED);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_BORDER)) {
-			// (border %Pixels; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_BORDER, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_CHECKED)) {
-			// (checked (checked) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_NAME_CHECKED};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_CHECKED, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_CLEAR)) {
-			// (clear (left | all | right | none) none)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_LEFT, ATTR_VALUE_ALL, ATTR_VALUE_RIGHT, ATTR_VALUE_NONE};
-			atype.setEnumValues(values);
-			atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_NONE);
-
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_CLEAR, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_COLS)) {
-			// (cols NUMBER #REQUIRED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_COLS, atype, CMAttributeDeclaration.REQUIRED);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ENCTYPE)) {
-			// (enctype %ContentType; "application/x-www-form-urlencoded")
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE);
-			atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_WWW_FORM_URLENCODED);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ENCTYPE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_HEIGHT)) {
-			// (height %Length; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LENGTH);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_HEIGHT, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_HREF)) {
-			// (href %URI; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_HREF, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_HSPACE)) {
-			// (hspace %Pixels; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_HSPACE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_HTTP_EQUIV)) {
-			// (http-equiv NAME #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.NAME);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_HTTP_EQUIV, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_MAXLENGTH)) {
-			// (maxlength NUMBER #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_MAXLENGTH, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_METHOD)) {
-			// (method (GET|POST) GET)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_VALUE_GET, ATTR_VALUE_POST};
-			atype.setEnumValues(values);
-			atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_GET);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_METHOD, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_MULTIPLE)) {
-			// (multiple (multiple) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_NAME_MULTIPLE};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_MULTIPLE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_NAME)) {
-			// (name CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_NAME, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_NOSHADE)) {
-			// (noshade (noshade) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_NAME_NOSHADE};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_NOSHADE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_ROWS)) {
-			// (rows NUMBER #REQUIRED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_ROWS, atype, CMAttributeDeclaration.REQUIRED);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_SELECTED)) {
-			// (selected (selected) #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-			String[] values = {ATTR_NAME_SELECTED};
-			atype.setEnumValues(values);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_SELECTED, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_SIZE)) {
-			// (size %Pixels; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_SIZE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_SRC)) {
-			// (src %URI; #IMPLIED)
-			// NOTE: "src" attributes are defined in several elements.
-			//		 The definition of IMG is different from others.
-			//		 So, it should be locally defined.
-			atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_SRC, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_TYPE)) {
-			// (type %CotentType; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_VALUE)) {
-			// (value CDATA #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_VALUE, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_VERSION)) {
-			// (version CDATA #FIXED '%HTML.Version;)
-			atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-			atype.setImpliedValue(CMDataType.IMPLIED_VALUE_FIXED, ATTR_VALUE_VERSION_TRANSITIONAL);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_VERSION, atype, CMAttributeDeclaration.FIXED);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_WIDTH)) {
-			// (width %Length; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LENGTH);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_WIDTH, atype, CMAttributeDeclaration.OPTIONAL);
-
-		}
-		else if (attrName.equalsIgnoreCase(ATTR_NAME_VSPACE)) {
-			// (vspace %Pixels; #IMPLIED)
-			atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS);
-			attr = new HTMLAttrDeclImpl(ATTR_NAME_VSPACE, atype, CMAttributeDeclaration.OPTIONAL);
-
-			// <<D205514
-		}
-		else {
-			// unknown attribute; maybe error.
-			// should warn.
-			attr = null;
-		}
-
-		return attr;
-	}
-
-	/**
-	 * Get %bodycolors; declarations.
-	 */
-	public void getBodycolors(CMNamedNodeMapImpl declarations) {
-	}
-
-	/**
-	 * Get align attribute which has %IAlign; as values..
-	 */
-	public static final HTMLAttrDeclImpl createAlignForImage() {
-		// align (local)
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-		// set enum values
-		String[] values = {ATTR_VALUE_TOP, ATTR_VALUE_MIDDLE, ATTR_VALUE_BOTTOM, ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT};
-		atype.setEnumValues(values);
-
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL);
-		return attr;
-	}
-
-	/**
-	 * Create an attribute declaration for <code>align</code>
-	 * in several elements, like <code>P</code>, <code>DIV</code>.
-	 * The values are different from attributes those have the same name
-	 * in other elements (<code>IMG</code> and <code>TABLE</code>).
-	 * So, it can't treat as global attributes.
-	 * <strong>NOTE: These attribute declaration has
-	 * no owner CMDocument instance.</strong>
-	 */
-	public static final HTMLAttrDeclImpl createAlignForParagraph() {
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-		// set enum values: left|center|right|justify
-		String[] values = {ATTR_VALUE_LEFT, ATTR_VALUE_CENTER, ATTR_VALUE_RIGHT,};
-		atype.setEnumValues(values);
-
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL);
-		return attr;
-	}
-
-	/**
-	 * Get %attrs; declarations.
-	 * %attrs; consists of %coreattrs;, %i18n, and %events;.
-	 */
-	public void getAttrs(CMNamedNodeMapImpl declarations) {
-	}
-
-	/**
-	 * Get %coreattrs; declarations.
-	 */
-	public void getCore(CMNamedNodeMapImpl declarations) {
-	}
-
-	/**
-	 * Get a global attribute declaration.
-	 * @param attrName java.lang.String
-	 */
-	public HTMLAttributeDeclaration getDeclaration(String attrName) {
-		CMNode cmnode = getNamedItem(attrName);
-		if (cmnode != null)
-			return (HTMLAttributeDeclaration) cmnode; // already exists.
-
-		HTMLAttrDeclImpl dec = create(attrName);
-		if (dec != null)
-			putNamedItem(attrName, dec);
-
-		return dec;
-	}
-
-	/**
-	 * Get declarations which are specified by names.
-	 * @param names java.util.Iterator
-	 */
-	public void getDeclarations(CMNamedNodeMapImpl declarations, Iterator names) {
-		while (names.hasNext()) {
-			String attrName = (String) names.next();
-			HTMLAttributeDeclaration dec = getDeclaration(attrName);
-			if (dec != null)
-				declarations.putNamedItem(attrName, dec);
-		}
-	}
-
-	/**
-	 * Get %events; declarations.
-	 */
-	public void getEvents(CMNamedNodeMapImpl declarations) {
-	}
-
-	/**
-	 * Get %i18n; declarations.
-	 */
-	public void getI18n(CMNamedNodeMapImpl declarations) {
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHCMDocImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHCMDocImpl.java
deleted file mode 100644
index 00b3528..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHCMDocImpl.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDocument;
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration;
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLEntityDeclaration;
-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;
-
-/**
- * CMDocument implementation for the HTML.
- */
-public class CHCMDocImpl extends CMNodeImpl implements HTMLCMDocument {
-
-	/** Namespace for all names of elements, entities and attributes. */
-	private CMNamespace namespace = null;
-	private ElementCollection elements = null;
-	private EntityCollection entities = null;
-	private AttributeCollection attributes = null;
-
-	/**
-	 */
-	public CHCMDocImpl(String docTypeName, CMNamespace targetNamespace) {
-		super(docTypeName);
-		namespace = targetNamespace;
-		attributes = new AttributeCollection();
-		elements = new ElementCollection(attributes);
-		entities = new EntityCollection();
-	}
-
-	AttributeCollection getAttributes() {
-		return attributes;
-	}
-
-	public HTMLElementDeclaration getElementDeclaration(String elementName) {
-		if (elements == null)
-			return null;
-		return (HTMLElementDeclaration) elements.getNamedItem(elementName);
-	}
-
-	public CMNamedNodeMap getElements() {
-		return elements;
-	}
-
-	public CMNamedNodeMap getEntities() {
-		return entities;
-	}
-
-	public HTMLEntityDeclaration getEntityDeclaration(String entityName) {
-		if (entities == null)
-			return null;
-		return (HTMLEntityDeclaration) entities.getNamedItem(entityName);
-	}
-
-	/**
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMDocument
-	 */
-	public org.eclipse.wst.xml.core.internal.contentmodel.CMNamespace getNamespace() {
-		return namespace;
-	}
-
-	/**
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 */
-	public int getNodeType() {
-		return CMNode.DOCUMENT;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHTMLNamespace.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHTMLNamespace.java
deleted file mode 100644
index 456503c..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHTMLNamespace.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-
-
-
-/**
- * Provide all names defined in the HTML 4.0? specification.
- */
-public interface CHTMLNamespace {
-
-	// Element names
-	public static interface ElementName {
-		public static final String A = HTML40Namespace.ElementName.A;
-		public static final String ADDRESS = HTML40Namespace.ElementName.ADDRESS;
-		public static final String BASE = HTML40Namespace.ElementName.BASE;
-		public static final String BLOCKQUOTE = HTML40Namespace.ElementName.BLOCKQUOTE;
-		public static final String BODY = HTML40Namespace.ElementName.BODY;
-		public static final String BR = HTML40Namespace.ElementName.BR;
-		public static final String CENTER = HTML40Namespace.ElementName.CENTER;
-		public static final String DD = HTML40Namespace.ElementName.DD;
-		public static final String DIR = HTML40Namespace.ElementName.DIR;
-		public static final String DIV = HTML40Namespace.ElementName.DIV;
-		public static final String DL = HTML40Namespace.ElementName.DL;
-		public static final String DT = HTML40Namespace.ElementName.DT;
-		public static final String FORM = HTML40Namespace.ElementName.FORM;
-		public static final String H1 = HTML40Namespace.ElementName.H1;
-		public static final String H2 = HTML40Namespace.ElementName.H2;
-		public static final String H3 = HTML40Namespace.ElementName.H3;
-		public static final String H4 = HTML40Namespace.ElementName.H4;
-		public static final String H5 = HTML40Namespace.ElementName.H5;
-		public static final String H6 = HTML40Namespace.ElementName.H6;
-		public static final String HEAD = HTML40Namespace.ElementName.HEAD;
-		public static final String HR = HTML40Namespace.ElementName.HR;
-		public static final String HTML = HTML40Namespace.ElementName.HTML;
-		public static final String IMG = HTML40Namespace.ElementName.IMG;
-		public static final String INPUT = HTML40Namespace.ElementName.INPUT;
-		public static final String LI = HTML40Namespace.ElementName.LI;
-		public static final String MENU = HTML40Namespace.ElementName.MENU;
-		public static final String META = HTML40Namespace.ElementName.META;
-		public static final String OL = HTML40Namespace.ElementName.OL;
-		public static final String OPTION = HTML40Namespace.ElementName.OPTION;
-		public static final String P = HTML40Namespace.ElementName.P;
-		public static final String PRE = HTML40Namespace.ElementName.PRE;
-		public static final String SELECT = HTML40Namespace.ElementName.SELECT;
-		public static final String TEXTAREA = HTML40Namespace.ElementName.TEXTAREA;
-		public static final String TITLE = HTML40Namespace.ElementName.TITLE;
-		public static final String UL = HTML40Namespace.ElementName.UL;
-		public static final String SSI_CONFIG = HTML40Namespace.ElementName.SSI_CONFIG;
-		public static final String SSI_ECHO = HTML40Namespace.ElementName.SSI_ECHO;
-		public static final String SSI_EXEC = HTML40Namespace.ElementName.SSI_EXEC;
-		public static final String SSI_FSIZE = HTML40Namespace.ElementName.SSI_FSIZE;
-		public static final String SSI_FLASTMOD = HTML40Namespace.ElementName.SSI_FLASTMOD;
-		public static final String SSI_INCLUDE = HTML40Namespace.ElementName.SSI_INCLUDE;
-		public static final String SSI_PRINTENV = HTML40Namespace.ElementName.SSI_PRINTENV;
-		public static final String SSI_SET = HTML40Namespace.ElementName.SSI_SET;
-	}
-
-	// Character Entities
-	public static interface EntityName {
-	}
-
-	// global attribute names
-	public static final String ATTR_NAME_VERSION = HTML40Namespace.ATTR_NAME_VERSION;
-	public static final String ATTR_NAME_SRC = HTML40Namespace.ATTR_NAME_SRC;
-	public static final String ATTR_NAME_ALT = HTML40Namespace.ATTR_NAME_ALT;
-	public static final String ATTR_NAME_HEIGHT = HTML40Namespace.ATTR_NAME_HEIGHT;
-	public static final String ATTR_NAME_WIDTH = HTML40Namespace.ATTR_NAME_WIDTH;
-	public static final String ATTR_NAME_ALIGN = HTML40Namespace.ATTR_NAME_ALIGN;
-	public static final String ATTR_NAME_BORDER = HTML40Namespace.ATTR_NAME_BORDER;
-	public static final String ATTR_NAME_HSPACE = HTML40Namespace.ATTR_NAME_HSPACE;
-	public static final String ATTR_NAME_VSPACE = HTML40Namespace.ATTR_NAME_VSPACE;
-	public static final String ATTR_NAME_NAME = HTML40Namespace.ATTR_NAME_NAME;
-	public static final String ATTR_NAME_CLEAR = HTML40Namespace.ATTR_NAME_CLEAR;
-	public static final String ATTR_NAME_NOSHADE = HTML40Namespace.ATTR_NAME_NOSHADE;
-	public static final String ATTR_NAME_CHECKED = HTML40Namespace.ATTR_NAME_CHECKED;
-	public static final String ATTR_NAME_MAXLENGTH = HTML40Namespace.ATTR_NAME_MAXLENGTH;
-	public static final String ATTR_NAME_ISTYLE = HTML40Namespace.ATTR_NAME_ISTYLE;
-	public static final String ATTR_NAME_HTTP_EQUIV = HTML40Namespace.ATTR_NAME_HTTP_EQUIV;
-	public static final String ATTR_NAME_CONTENT = HTML40Namespace.ATTR_NAME_CONTENT;
-
-	public static final String ATTR_NAME_HREF = HTML40Namespace.ATTR_NAME_HREF;
-	public static final String ATTR_NAME_MULTIPLE = HTML40Namespace.ATTR_NAME_MULTIPLE;
-	public static final String ATTR_NAME_SELECTED = HTML40Namespace.ATTR_NAME_SELECTED;
-	public static final String ATTR_NAME_ROWS = HTML40Namespace.ATTR_NAME_ROWS;
-	public static final String ATTR_NAME_COLS = HTML40Namespace.ATTR_NAME_COLS;
-	public static final String ATTR_NAME_ACTION = HTML40Namespace.ATTR_NAME_ACTION;
-	public static final String ATTR_NAME_METHOD = HTML40Namespace.ATTR_NAME_METHOD;
-	public static final String ATTR_NAME_ENCTYPE = HTML40Namespace.ATTR_NAME_ENCTYPE;
-	public static final String ATTR_NAME_SIZE = HTML40Namespace.ATTR_NAME_SIZE;
-	public static final String ATTR_NAME_TYPE = HTML40Namespace.ATTR_NAME_TYPE;
-	public static final String ATTR_NAME_VALUE = HTML40Namespace.ATTR_NAME_VALUE;
-
-
-
-	public static final String ATTR_NAME_ERRMSG = HTML40Namespace.ATTR_NAME_ERRMSG;
-	public static final String ATTR_NAME_SIZEFMT = HTML40Namespace.ATTR_NAME_SIZEFMT;
-	public static final String ATTR_NAME_TIMEFMT = HTML40Namespace.ATTR_NAME_TIMEFMT;
-	public static final String ATTR_NAME_VAR = HTML40Namespace.ATTR_NAME_VAR;
-	public static final String ATTR_NAME_CGI = HTML40Namespace.ATTR_NAME_CGI;
-	public static final String ATTR_NAME_CMD = HTML40Namespace.ATTR_NAME_CMD;
-	public static final String ATTR_NAME_FILE = HTML40Namespace.ATTR_NAME_FILE;
-	public static final String ATTR_NAME_VIRTUAL = HTML40Namespace.ATTR_NAME_VIRTUAL;
-
-	// global attribute values; mainly used in enumeration.
-	public static final String ATTR_VALUE_VERSION_TRANSITIONAL = "-//W3C//DTD Compact HTML 1.0 Draft//EN"; //$NON-NLS-1$
-	//   for align (top|middle|bottom|left|right)
-	public static final String ATTR_VALUE_TOP = HTML40Namespace.ATTR_VALUE_TOP;
-	public static final String ATTR_VALUE_MIDDLE = HTML40Namespace.ATTR_VALUE_MIDDLE;
-	public static final String ATTR_VALUE_BOTTOM = HTML40Namespace.ATTR_VALUE_BOTTOM;
-	public static final String ATTR_VALUE_LEFT = HTML40Namespace.ATTR_VALUE_LEFT;
-	public static final String ATTR_VALUE_CENTER = HTML40Namespace.ATTR_VALUE_CENTER;
-	public static final String ATTR_VALUE_RIGHT = HTML40Namespace.ATTR_VALUE_RIGHT;
-	//   for clear (left|all|right|none): left and right are already defined above.
-	public static final String ATTR_VALUE_ALL = HTML40Namespace.ATTR_VALUE_ALL;
-	public static final String ATTR_VALUE_NONE = HTML40Namespace.ATTR_VALUE_NONE;
-	//   for type of INPUT
-	//       (text | password | checkbox | radio | submit | reset |
-	//        file | hidden | image | button)
-	public static final String ATTR_VALUE_TEXT = HTML40Namespace.ATTR_VALUE_TEXT;
-	public static final String ATTR_VALUE_PASSWORD = HTML40Namespace.ATTR_VALUE_PASSWORD;
-	public static final String ATTR_VALUE_CHECKBOX = HTML40Namespace.ATTR_VALUE_CHECKBOX;
-	public static final String ATTR_VALUE_RADIO = HTML40Namespace.ATTR_VALUE_RADIO;
-	public static final String ATTR_VALUE_SUBMIT = HTML40Namespace.ATTR_VALUE_SUBMIT;
-	public static final String ATTR_VALUE_RESET = HTML40Namespace.ATTR_VALUE_RESET;
-	public static final String ATTR_VALUE_HIDDEN = HTML40Namespace.ATTR_VALUE_HIDDEN;
-	//   for span, colspan, rowspan
-	public static final String ATTR_VALUE_1 = HTML40Namespace.ATTR_VALUE_1;
-	//   for frameborder
-	public static final String ATTR_VALUE_0 = HTML40Namespace.ATTR_VALUE_0;
-	//   for method of FORM
-	public static final String ATTR_VALUE_GET = HTML40Namespace.ATTR_VALUE_GET;
-	public static final String ATTR_VALUE_POST = HTML40Namespace.ATTR_VALUE_POST;
-	public static final String ATTR_VALUE_WWW_FORM_URLENCODED = HTML40Namespace.ATTR_VALUE_WWW_FORM_URLENCODED;
-	//   for behaviro of MARQUEE
-	public static final String ATTR_VALUE_SCROLL = HTML40Namespace.ATTR_VALUE_SCROLL;
-	public static final String ATTR_VALUE_SLIDE = HTML40Namespace.ATTR_VALUE_SLIDE;
-	public static final String ATTR_VALUE_ALTERNATE = HTML40Namespace.ATTR_VALUE_ALTERNATE;
-	//   for direction of MARQUEE
-	public static final String ATTR_VALUE_UP = HTML40Namespace.ATTR_VALUE_UP;
-	public static final String ATTR_VALUE_DOWN = HTML40Namespace.ATTR_VALUE_DOWN;
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMContentImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMContentImpl.java
deleted file mode 100644
index 5633cf5..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMContentImpl.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-/**
- * Implementation of CMContent for HTML CM.
- */
-abstract class CMContentImpl extends CMNodeImpl implements org.eclipse.wst.xml.core.internal.contentmodel.CMContent {
-
-	public static final int UNBOUNDED = -1;
-	/**  -1: it's UNBOUNDED. */
-	private int maxOccur = UNBOUNDED;
-	/**  0: it's OPTIONAL, 1, it's REQUIRED. */
-	private int minOccur = 0;
-
-	/**
-	 * The primary consturctor.
-	 * Use this one for usual cases.<br>
-	 */
-	public CMContentImpl(String name, int min, int max) {
-		super(name);
-		minOccur = min;
-		maxOccur = max;
-	}
-
-	/**
-	 * 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;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMGroupImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMGroupImpl.java
deleted file mode 100644
index 2c546f5..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMGroupImpl.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-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;
-
-/**
- */
-class CMGroupImpl extends CMContentImpl implements CMGroup {
-
-	private int operator = CMGroup.SEQUENCE;
-	private CMNodeListImpl children = null;
-
-	/**
-	 * CMGroupImpl constructor comment.
-	 */
-	public CMGroupImpl(int op, int minOccur, int maxOccur) {
-		super(null, minOccur, maxOccur);
-		switch (op) {
-			case CMGroup.ALL :
-			case CMGroup.CHOICE :
-			case CMGroup.SEQUENCE :
-				operator = op;
-				break;
-			default :
-				// should warn.
-				break;
-		}
-	}
-
-	/**
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 * @param org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 */
-	protected CMNode appendChild(CMNode child) {
-		if (child == null)
-			return null;
-		if (children == null)
-			children = new CMNodeListImpl();
-		return children.appendNode(child);
-	}
-
-	/**
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList
-	 */
-	public CMNodeList getChildNodes() {
-		return children;
-	}
-
-	/**
-	 * getNodeType method
-	 * @return int
-	 *
-	 * Returns one of :
-	 * ELEMENT_DECLARATION, ATTRIBUTE_DECLARATION, GROUP, ENTITY_DECLARATION.
-	 */
-	public int getNodeType() {
-		return CMNode.GROUP;
-	}
-
-	/**
-	 * getOperation method
-	 * @return int
-	 *
-	 * Returns one of :
-	 * ALONE (a), SEQUENCE (a,b), CHOICE (a|b), ALL (a&b).
-	 */
-	public int getOperator() {
-		return operator;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNamedNodeMapImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNamedNodeMapImpl.java
deleted file mode 100644
index d1bae1e..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNamedNodeMapImpl.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Iterator;
-import java.util.Locale;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * An implementation of the CMNamedNodeMap interface. This class is intented
- * to be used as a container of attribute declarations. If someone wants to
- * use this class for other purpose, he must pay attention to the fact that
- * this class is tolerant of the key name case. That is, this class does not
- * distinguish "name", "NAME", and "Name" as a key name.
- */
-class CMNamedNodeMapImpl implements org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap {
-
-	private java.util.Hashtable items = null;
-
-	/**
-	 */
-	public CMNamedNodeMapImpl() {
-		super();
-		items = new java.util.Hashtable();
-	}
-
-	/**
-	 * getLength method
-	 * 
-	 * @return int
-	 */
-	public int getLength() {
-		return items.size();
-	}
-
-	/**
-	 * getNamedItem method
-	 * 
-	 * @return CMNode <code>null</code> for unknown keys.
-	 * @param name
-	 *            java.lang.String
-	 */
-	public CMNode getNamedItem(String name) {
-		String cookedName = makeCanonicalForm(name);
-		if (!items.containsKey(cookedName))
-			return null;
-		return (CMNode) items.get(cookedName);
-	}
-
-	/**
-	 * item method
-	 * 
-	 * @return CMNode
-	 * @param index
-	 *            int
-	 */
-	public CMNode item(int index) {
-		Iterator iter = iterator();
-		while (iter.hasNext()) {
-			CMNode node = (CMNode) iter.next();
-			if (--index < 0)
-				return node;
-		}
-		return null;
-	}
-
-	/**
-	 * @return java.util.Iterator
-	 */
-	public Iterator iterator() {
-		return items.values().iterator();
-	}
-
-	/**
-	 * @return java.lang.String
-	 * @param rawForm
-	 *            java.lang.String
-	 */
-	private String makeCanonicalForm(String raw) {
-		// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=100152
-		// we are able to "cheat" here a little and use US Locale
-		// to get a good cononical form, since we are using this only
-		// for HTML and JSP standard tags.
-		// Long term, for similar needs with XML 1.1 (for example)
-		// we should use a class such as com.ibm.icu.text.Normalizer
-		return raw.toUpperCase(Locale.US);
-	}
-
-	/**
-	 * @param key
-	 *            java.lang.String
-	 * @param item
-	 *            java.lang.String
-	 */
-	void putNamedItem(String name, CMNode item) {
-		String cookedName = makeCanonicalForm(name);
-		if (items.containsKey(cookedName))
-			return; // already registered.
-		items.put(cookedName, item);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeImpl.java
deleted file mode 100644
index 62f7a01..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeImpl.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-
-
-
-/**
- */
-abstract class CMNodeImpl implements org.eclipse.wst.xml.core.internal.contentmodel.CMNode {
-
-	private java.lang.String name = null;
-
-	/**
-	 * CMNodeImpl constructor comment.
-	 */
-	public CMNodeImpl(String nm) {
-		super();
-		name = nm;
-	}
-
-	/**
-	 * getNodeName method
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return name;
-	}
-
-	/**
-	 * getProperty method
-	 * @return java.lang.Object
-	 *
-	 * Returns the object property desciped by the propertyName
-	 *
-	 */
-	public Object getProperty(String propertyName) {
-		if (propertyName.equals(HTMLCMProperties.IS_XHTML))
-			return new Boolean(false);
-		return null;
-	}
-
-	/**
-	 * supports method
-	 * @return boolean
-	 *
-	 * Returns true if the CMNode supports a specified property
-	 *
-	 */
-	public boolean supports(String propertyName) {
-		if (propertyName.equals(HTMLCMProperties.IS_XHTML))
-			return true;
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeListImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeListImpl.java
deleted file mode 100644
index c1b1cda..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeListImpl.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * Analog of dom.NodeList for CM.
- */
-class CMNodeListImpl implements org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList {
-
-	private java.util.Vector nodes = null;
-
-	/**
-	 * CMNodeListImpl constructor comment.
-	 */
-	public CMNodeListImpl() {
-		super();
-		nodes = new java.util.Vector();
-	}
-
-	/**
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 * @param node org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 */
-	protected CMNode appendNode(CMNode node) {
-		nodes.addElement(node);
-		return 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.elementAt(index);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinition.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinition.java
deleted file mode 100644
index fd47c7e..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinition.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-
-/**
- * This class is intended to represent a complex type definition
- * in XML Schema.<br>
- */
-abstract class ComplexTypeDefinition {
-
-	protected CMGroupImpl content = null;
-	protected ElementCollection collection = null;
-	protected String primaryCandidateName = null;
-
-	/**
-	 * ComplexTypeDefinition constructor comment.
-	 */
-	public ComplexTypeDefinition(ElementCollection elementCollection) {
-		super();
-		collection = elementCollection;
-		createContent();
-	}
-
-	/**
-	 * Create an actual content model.
-	 * This method should be called once and only once in the constructor.<br>
-	 */
-	protected abstract void createContent();
-
-	/**
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMGroup
-	 */
-	public CMGroup getContent() {
-		return content;
-	}
-
-	/**
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	/* NOTE: Do we need LOGICAL type?
-	 * -- 3/7/2001
-	 */
-	public abstract int getContentType();
-
-	/**
-	 * Get content hint.
-	 */
-	public HTMLElementDeclaration getPrimaryCandidate() {
-		if (primaryCandidateName == null)
-			return null;
-		return (HTMLElementDeclaration) collection.getNamedItem(primaryCandidateName);
-	}
-
-	/**
-	 * Name of complex type definition.
-	 * Each singleton must know its own name.
-	 * All names should be defined in
-	 * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br>
-	 * @return java.lang.String
-	 */
-	public abstract String getTypeName();
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinitionFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinitionFactory.java
deleted file mode 100644
index 2a682f9..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinitionFactory.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-/**
- * Factory of ComplexTypeDefinition.
- */
-final class ComplexTypeDefinitionFactory {
-
-	private static ComplexTypeDefinitionFactory instance = null;
-	private java.util.Hashtable definitions = null;
-	// constants for complex type name
-	/** for ADDRESS. */
-	public final static String CTYPE_ADDRESS = "CTYPE_ADDRESS";//$NON-NLS-1$
-	/** CDATA content. No ComplexTypeDefinition instance shuld be created. */
-	public final static String CTYPE_CDATA = "CTYPE_CDATA";//$NON-NLS-1$
-	/** col group content. COL* */
-	public final static String CTYPE_COLUMN_GROUP = "CTYPE_COLUMN_GROUP";//$NON-NLS-1$
-	/** for DL. */
-	public final static String CTYPE_DEFINITION_LIST = "CTYPE_DEFINITION_LIST";//$NON-NLS-1$
-	/** for EMBED. */
-	public final static String CTYPE_EMBED = "CTYPE_EMBED";//$NON-NLS-1$
-	/** empty content. No ComplexTypeDefinition instance should be created. */
-	public final static String CTYPE_EMPTY = "CTYPE_EMPTY";//$NON-NLS-1$
-	/** for FIELDSET. */
-	public final static String CTYPE_FIELDSET = "CTYPE_FIELDSET";//$NON-NLS-1$
-	/** for FRAMESET. */
-	public final static String CTYPE_FRAMESET = "CTYPE_FRAMESET";//$NON-NLS-1$
-	/** flow content. (%flow;)* */
-	public final static String CTYPE_FLOW_CONTAINER = "CTYPE_FLOW_CONTAINER";//$NON-NLS-1$
-	/** html content. HEAD, (FRAMESET|BODY) */
-	public final static String CTYPE_HTML = "CTYPE_HTML";//$NON-NLS-1$
-	/** head content. TITLE & ISINDEX? & BASE? */
-	public final static String CTYPE_HEAD = "CTYPE_HEAD";//$NON-NLS-1$
-	/** inline content. (%inline;)* */
-	public final static String CTYPE_INLINE_CONTAINER = "CTYPE_INLINE_CONTAINER";//$NON-NLS-1$
-	/** list item container. (LI)+ */
-	public final static String CTYPE_LI_CONTAINER = "CTYPE_LI_CONTAINER";//$NON-NLS-1$
-	/** for MAP. */
-	public final static String CTYPE_MAP = "CTYPE_MAP";//$NON-NLS-1$
-	/** noframes content. */
-	public final static String CTYPE_NOFRAMES_CONTENT = "CTYPE_NOFRAMES_CONTENT";//$NON-NLS-1$
-	/** for OPTGROUP. */
-	public final static String CTYPE_OPTION_CONTAINER = "CTYPE_OPTION_CONTAINER";//$NON-NLS-1$
-	/** param container. For OBJECT/APPLET. */
-	public final static String CTYPE_PARAM_CONTAINER = "CTYPE_PARAM_CONTAINER";//$NON-NLS-1$
-	/** PCDATA content. No ComplexTypeDefinition instance shuld be created. */
-	public final static String CTYPE_PCDATA = "CTYPE_PCDATA";//$NON-NLS-1$
-	/** for SELECT. */
-	public final static String CTYPE_SELECT = "CTYPE_SELECT";//$NON-NLS-1$
-	/** table content. CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+ */
-	public final static String CTYPE_TABLE = "CTYPE_TABLE";//$NON-NLS-1$
-	/** table cell contaier. (TH|TD)+ */
-	public final static String CTYPE_TCELL_CONTAINER = "CTYPE_TCELL_CONTAINER";//$NON-NLS-1$
-	/** table record container. (TR)+ */
-	public final static String CTYPE_TR_CONTAINER = "CTYPE_TR_CONTAINER";//$NON-NLS-1$
-
-	/**
-	 * ComplexTypeDefinitionFactory constructor comment.
-	 */
-	private ComplexTypeDefinitionFactory() {
-		super();
-		definitions = new java.util.Hashtable();
-	}
-
-	/**
-	 * Factory method for ComplexTypeDefinition.
-	 * Each instance created in this method must be registered into
-	 * the map with its name.
-	 * @param definitionName java.lang.String
-	 * @param elementCollection ElementCollection
-	 */
-	public ComplexTypeDefinition createTypeDefinition(String definitionName, ElementCollection elementCollection) {
-		if (definitions.containsKey(definitionName)) {
-			return (ComplexTypeDefinition) definitions.get(definitionName);
-		}
-
-		ComplexTypeDefinition def = null;
-		if (definitionName == CTYPE_ADDRESS) {
-			def = new CtdAddress(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_DEFINITION_LIST) {
-			def = new CtdDl(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_FLOW_CONTAINER) {
-			def = new CtdFlowContainer(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_HEAD) {
-			def = new CtdHead(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_HTML) {
-			def = new CtdHtml(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_INLINE_CONTAINER) {
-			def = new CtdInlineContainer(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_LI_CONTAINER) {
-			def = new CtdLiContainer(elementCollection);
-
-
-		}
-		else if (definitionName == CTYPE_OPTION_CONTAINER) {
-			def = new CtdOptionContainer(elementCollection);
-
-		}
-		else if (definitionName == CTYPE_SELECT) {
-			def = new CtdSelect(elementCollection);
-
-		}
-		else {
-			def = null;
-		}
-		if (def == null)
-			return null; // fail to create.
-		definitions.put(definitionName, def);
-		return def;
-	}
-
-	/**
-	 * For singleton.<br>
-	 */
-	public synchronized static ComplexTypeDefinitionFactory getInstance() {
-		if (instance != null)
-			return instance;
-		instance = new ComplexTypeDefinitionFactory();
-		return instance;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdAddress.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdAddress.java
deleted file mode 100644
index 4ad13c0..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdAddress.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-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;
-
-/**
- * for ADDRESS.
- */
-final class CtdAddress extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdAddress(ElementCollection elementCollection) {
-		super(elementCollection);
-	}
-
-	/**
-	 * ((%inline) | P)*.
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// ( | )*
-		content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED);
-		// (%inline)
-		CMGroupImpl inlines = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-		if (inlines == null)
-			return;
-		collection.getInline(inlines);
-		content.appendChild(inlines);
-		// P
-		CMNode p = collection.getNamedItem(CHTMLNamespace.ElementName.P);
-		if (p != null)
-			content.appendChild(p);
-	}
-
-	/**
-	 * ((%inline) | P)*.
-	 * Because %inline; contains #PCDATA, the type is MIXED.
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.MIXED;
-	}
-
-	/**
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_ADDRESS;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdDl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdDl.java
deleted file mode 100644
index c0abf8a..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdDl.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-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;
-
-/**
- * for DL.
- */
-final class CtdDl extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdDl(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = CHTMLNamespace.ElementName.DT;
-	}
-
-	/**
-	 * (DT | DD)+
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// ( | )+
-		content = new CMGroupImpl(CMGroup.CHOICE, 1, CMContentImpl.UNBOUNDED);
-		// DT
-		CMNode dec = collection.getNamedItem(CHTMLNamespace.ElementName.DT);
-		if (dec != null)
-			content.appendChild(dec);
-		// DD
-		dec = collection.getNamedItem(CHTMLNamespace.ElementName.DD);
-		if (dec != null)
-			content.appendChild(dec);
-	}
-
-	/**
-	 * (DT | DD)+.
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	/**
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_DEFINITION_LIST;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdFlowContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdFlowContainer.java
deleted file mode 100644
index a198d74..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdFlowContainer.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
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-
-/**
- * Complex type definition for containers of <code>%flow;</code>.
- */
-final class CtdFlowContainer extends ComplexTypeDefinition {
-
-	/**
-	 */
-	public CtdFlowContainer(ElementCollection elementCollection) {
-		super(elementCollection);
-	}
-
-	/**
-	 * (%flow;)*
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED);
-		collection.getFlow(content);
-	}
-
-	public int getContentType() {
-		return CMElementDeclaration.MIXED;
-	}
-
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_FLOW_CONTAINER;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHead.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHead.java
deleted file mode 100644
index 9af78c6..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHead.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-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;
-
-/**
- * Complex type definition for the head content.
- * Content Model: (TITLE & ISINDEX? & BASE?)
- */
-final class CtdHead extends ComplexTypeDefinition {
-
-	/**
-	 */
-	public CtdHead(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = CHTMLNamespace.ElementName.TITLE;
-	}
-
-	/**
-	 * for HEAD.
-	 * To avoid using inclusion, the content model comes from the XHTML 1.0.
-	 *
-	 * (%head.misc;, ((title, %head.misc;, (base, %head.misc;)?) | (base, %head.misc;, (title, %head.misc;))))
-	 * And %head.misc; is:
-	 * (script|style|meta|link|object|isindex)*
-	 *
-	 * 0: (%head.misc, A)
-	 * A: (B | C)
-	 * B: (title, %head.misc;, D)
-	 * C: (base, %head.misc;, E)
-	 * D: (base, %head.misc;)?
-	 * E: (title, %head.misc;)
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// At 1st, create %head.misc; content.
-		// %head.misc;
-		//   ( | )*
-		CMGroupImpl misc = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED);
-		if (misc == null)
-			return;
-		String[] names = {CHTMLNamespace.ElementName.META,};
-		collection.getDeclarations(misc, Arrays.asList(names).iterator());
-		// 2nd, get a title
-		CMNode title = collection.getNamedItem(CHTMLNamespace.ElementName.TITLE);
-		// 3rd, get a base
-		CMNode base = collection.getNamedItem(CHTMLNamespace.ElementName.BASE);
-		if (title == null || base == null)
-			return;
-
-		// Top level content is a sequence of %head.misc; and A.
-		// 0: (%head.misc;, A)
-		//   create a sequence
-		content = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1);
-		if (content == null)
-			return;
-		//   append %head.misc;
-		content.appendChild(misc);
-		//   create A and append it to the top level.
-		{
-			// A is a choice of B and C.
-			// A: (B | C)
-			//   create a choice
-			CMGroupImpl gA = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-			if (gA == null)
-				return;
-			//   append A to the top level.
-			content.appendChild(gA);
-
-			// create B and append it to A
-			{
-				// B is a sequence of title, %head.misc;, and D.
-				// B: (title, %head.misc;, D)
-				//   create a sequence
-				CMGroupImpl gB = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1);
-				if (gB == null)
-					return;
-				//   append B to A.
-				gA.appendChild(gB);
-
-				//   append title to B
-				gB.appendChild(title);
-				//   append %head.misc; to B
-				gB.appendChild(misc);
-				//   create D and append it to B.
-				{
-					// D is a sequence of base, %head.misc;.
-					// D: (base, %head.misc;)?
-					//   create a sequence
-					CMGroupImpl gD = new CMGroupImpl(CMGroup.SEQUENCE, 0, 1);
-					if (gD == null)
-						return;
-					//   append D to B.
-					gB.appendChild(gD);
-
-					//   append base to D
-					gD.appendChild(base);
-					//   append %head.misc; to D.
-					gD.appendChild(misc);
-				}
-			}
-			// create C and append it to A
-			{
-				// C is a sequence of base, %head.misc;, and E
-				// C: (base, %head.misc;, E)
-				//   create a sequence
-				CMGroupImpl gC = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1);
-				if (gC == null)
-					return;
-				//   append C to A.
-				gA.appendChild(gC);
-
-				//   append base to C
-				gC.appendChild(base);
-				//   append %head.misc; to C
-				gC.appendChild(misc);
-
-				//   create E and append it to C.
-				{
-					// E is a sequence of title and %head.misc;.
-					// E: (title, %head.misc;)
-					//   create a sequence
-					CMGroupImpl gE = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1);
-					if (gE == null)
-						return;
-					//   append E to C.
-					gC.appendChild(gE);
-
-					//   append title to E
-					gE.appendChild(title);
-					//   append %head.misc; to E.
-					gE.appendChild(misc);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Element content.<br>
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	/**
-	 * Name of complex type definition.
-	 * Each singleton must know its own name.
-	 * All names should be defined in
-	 * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br>
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_HEAD;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHtml.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHtml.java
deleted file mode 100644
index cf4fe4a..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHtml.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-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;
-
-/**
- * Complex type definition for <code>HTML</code>.<br>
- * Content Model:
- * HEAD, (FRAMESET|BODY)<br>
- */
-final class CtdHtml extends ComplexTypeDefinition {
-
-	/**
-	 */
-	public CtdHtml(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = CHTMLNamespace.ElementName.HEAD;
-	}
-
-	/**
-	 * (%html.content;).
-	 * %html.content; is HEAD, (FRAMESET | BODY).
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// ( )
-		content = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1);
-		if (content == null)
-			return;
-
-		// HEAD
-		CMNode edec = collection.getNamedItem(CHTMLNamespace.ElementName.HEAD);
-		if (edec != null)
-			content.appendChild(edec);
-
-		// ( | )
-		CMGroupImpl group = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-		content.appendChild(group);
-
-		// FRAMESET, BODY
-		String[] names = {CHTMLNamespace.ElementName.BODY};
-		collection.getDeclarations(group, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 * Element content.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_HTML;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdInlineContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdInlineContainer.java
deleted file mode 100644
index ed234aa..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdInlineContainer.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-
-/**
- * Complex type definition for (%inline;)*.
- */
-final class CtdInlineContainer extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdInlineContainer(ElementCollection elementCollection) {
-		super(elementCollection);
-	}
-
-	/**
-	 * (%inline)*.
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED);
-		collection.getInline(content);
-	}
-
-	public int getContentType() {
-		return CMElementDeclaration.MIXED;
-	}
-
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_INLINE_CONTAINER;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdLiContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdLiContainer.java
deleted file mode 100644
index b28956e..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdLiContainer.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-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;
-
-/**
- * List item container.
- * (LI)+
- */
-final class CtdLiContainer extends ComplexTypeDefinition {
-
-	/**
-	 * @param elemenCollection ElementCollection
-	 */
-	public CtdLiContainer(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = CHTMLNamespace.ElementName.LI;
-	}
-
-	/**
-	 * (LI)+.
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// (LI)+
-		content = new CMGroupImpl(CMGroup.SEQUENCE, 1, CMContentImpl.UNBOUNDED);
-		CMNode li = collection.getNamedItem(CHTMLNamespace.ElementName.LI);
-		if (li != null)
-			content.appendChild(li);
-	}
-
-	/**
-	 * ELEMENT content.<br>
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	/**
-	 * Name of complex type definition.
-	 * Each singleton must know its own name.
-	 * All names should be defined in
-	 * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br>
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_LI_CONTAINER;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdOptionContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdOptionContainer.java
deleted file mode 100644
index c2ec6c5..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdOptionContainer.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.wst.html.core.internal.contentmodel.chtml;
-
-
-
-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;
-
-/**
- * OPTION container.
- * (OPTION)+
- */
-final class CtdOptionContainer extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdOptionContainer(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = CHTMLNamespace.ElementName.OPTION;
-	}
-
-	/**
-	 * (OPTION)+.
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// ( )+
-		content = new CMGroupImpl(CMGroup.SEQUENCE, 1, CMContentImpl.UNBOUNDED);
-		// OPTION
-		CMNode dec = collection.getNamedItem(CHTMLNamespace.ElementName.OPTION);
-		if (dec != null)
-			content.appendChild(dec);
-	}
-
-	/**
-	 * (OPTION)+
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	/**
-	 * Name of complex type definition.
-	 * Each singleton must know its own name.
-	 * All names should be defined in
-	 * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br>
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_OPTION_CONTAINER;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdSelect.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdSelect.java
deleted file mode 100644
index 7f0c96c..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdSelect.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-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;
-
-/**
- * for SELECT.
- */
-final class CtdSelect extends ComplexTypeDefinition {
-
-	/**
-	 * @param elementCollection ElementCollection
-	 */
-	public CtdSelect(ElementCollection elementCollection) {
-		super(elementCollection);
-		primaryCandidateName = CHTMLNamespace.ElementName.OPTION;
-	}
-
-	/**
-	 * (OPTGROUP | OPTION)+.
-	 */
-	protected void createContent() {
-		if (content != null)
-			return; // already created.
-		if (collection == null)
-			return;
-
-		// ( | )+
-		content = new CMGroupImpl(CMGroup.CHOICE, 1, CMContentImpl.UNBOUNDED);
-		// OPTION
-		CMNode dec = collection.getNamedItem(CHTMLNamespace.ElementName.OPTION);
-		if (dec != null)
-			content.appendChild(dec);
-	}
-
-	/**
-	 * (OPTGROUP | OPTION)+.
-	 * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA,
-	 * those are defined in CMElementDeclaration.
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.ELEMENT;
-	}
-
-	/**
-	 * @return java.lang.String
-	 */
-	public String getTypeName() {
-		return ComplexTypeDefinitionFactory.CTYPE_SELECT;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/DeclCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/DeclCollection.java
deleted file mode 100644
index af90b74..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/DeclCollection.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Locale;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- */
-abstract class DeclCollection implements CMNamedNodeMap {
-
-
-	protected class DualMap {
-		public DualMap() {
-			super();
-		}
-
-		public DualMap(Object[] objects) {
-			super();
-			initialize(objects);
-		}
-
-		public int size() {
-			return table.length;
-		}
-
-		public Object getValue(int key) {
-			if (!isValidIndex(key))
-				return null;
-			return table[key];
-		}
-
-		public int getKey(Object value) {
-			Integer keyObj = (Integer) map.get(value);
-			if (keyObj == null)
-				return ID_UNKNOWN;
-			return keyObj.intValue();
-		}
-
-		protected void initialize(Object[] objects) {
-			if (objects == null)
-				return;
-			table = objects;
-			map = new HashMap();
-			for (int key = 0; key < objects.length; key++) {
-				Object value = table[key];
-				map.put(value, new Integer(key));
-			}
-		}
-
-		private Object[] table = null;
-		private HashMap map = null;
-
-		private boolean isValidIndex(int index) {
-			return index >= 0 && index < table.length;
-		}
-	}
-
-	protected class TolerantStringDualMap extends DualMap {
-		public TolerantStringDualMap(String[] names) {
-			super();
-			Object[] objects = new Object[names.length];
-			for (int i = 0; i < names.length; i++) {
-				objects[i] = makeCanonicalForm(names[i]);
-			}
-			initialize(objects);
-		}
-
-		public int getKey(Object value) {
-			try {
-				String name = (String) value;
-				return super.getKey(makeCanonicalForm(name));
-			}
-			catch (ClassCastException e) {
-				return ID_UNKNOWN;
-			}
-		}
-
-		private String makeCanonicalForm(String raw) {
-			// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=100152
-			// we are able to "cheat" here a little and use US Locale
-			// to get a good cononical form, since we are using this only
-			// for HTML and JSP standard tags.
-			// Long term, for similar needs with XML 1.1 (for example)
-			// we should use a class such as com.ibm.icu.text.Normalizer
-			return raw.toUpperCase(Locale.US);
-		}
-	}
-
-	private class DeclIterator implements Iterator {
-		public DeclIterator() {
-			maxid = fDecls.length - 1;
-		}
-
-		public boolean hasNext() {
-			return id < maxid;
-		}
-
-		public Object next() {
-			if (!hasNext())
-				return null;
-			return item(++id);
-		}
-
-		public void remove() { /* nothing should be done. */
-		}
-
-		private int id = -1;
-		private int maxid = -1;
-	}
-
-	CMNode[] fDecls = null;
-	protected final static boolean STRICT_CASE = false;
-	protected final static boolean TOLERANT_CASE = true;
-	protected final static int ID_UNKNOWN = -1;
-	private DualMap fMap = null;
-
-	/**
-	 */
-	public DeclCollection(String[] names, boolean tolerant) {
-		super();
-		fDecls = new CMNode[names.length];
-		if (tolerant) {
-			fMap = new TolerantStringDualMap(names);
-		}
-		else {
-			fMap = new DualMap(names);
-		}
-	}
-
-	/**
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 * @param id
-	 *            int
-	 */
-	protected abstract CMNode create(String name);
-
-	/**
-	 */
-	public CMNamedNodeMap getDeclarations(String[] names) {
-		CMNamedNodeMapImpl map = new CMNamedNodeMapImpl();
-		for (int i = 0; i < names.length; i++) {
-			String name = names[i];
-			CMNode node = getNamedItem(name);
-			if (node == null)
-				continue;
-			map.putNamedItem(name, node);
-		}
-		return map;
-	}
-
-	public void getDeclarations(CMGroupImpl group, Iterator names) {
-		while (names.hasNext()) {
-			String entityName = (String) names.next();
-			CMNode dec = getNamedItem(entityName);
-			if (dec != null)
-				group.appendChild(dec);
-		}
-	}
-
-	/**
-	 * Map name to id.
-	 * 
-	 * @return int
-	 * @param name
-	 *            java.lang.String
-	 */
-	protected int getID(String name) {
-		return fMap.getKey(name);
-	}
-
-	/**
-	 * getLength method
-	 * 
-	 * @return int
-	 */
-	public int getLength() {
-		return fDecls.length;
-	}
-
-	/**
-	 * @return java.lang.String
-	 * @param id
-	 *            int
-	 */
-	protected String getName(int id) {
-		return (String) fMap.getValue(id);
-	}
-
-	/**
-	 * getNamedItem method
-	 * 
-	 * @return CMNode
-	 * @param name
-	 *            java.lang.String
-	 */
-	public CMNode getNamedItem(String name) {
-		int id = getID(name);
-		if (!isValidID(id))
-			return null;
-		return item(id);
-	}
-
-	/**
-	 * @return boolean
-	 * @param id
-	 *            int
-	 */
-	private boolean isValidID(int id) {
-		return id >= 0 && id < fDecls.length;
-	}
-
-	/**
-	 * item method
-	 * 
-	 * @return CMNode
-	 * @param index
-	 *            int
-	 */
-	public CMNode item(int index) {
-		if (!isValidID(index))
-			return null;
-		CMNode decl = fDecls[index];
-		if (decl != null)
-			return decl; // already exist.
-
-		decl = create(getName(index));
-		fDecls[index] = decl;
-		return decl;
-	}
-
-	/**
-	 */
-	public Iterator iterator() {
-		return new DeclIterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ElementCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ElementCollection.java
deleted file mode 100644
index 8a80135..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ElementCollection.java
+++ /dev/null
@@ -1,492 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.lang.reflect.Field;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Vector;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * Factory for element declarations.
- */
-final class ElementCollection extends DeclCollection implements org.eclipse.wst.html.core.internal.provisional.HTML40Namespace.ElementName {
-
-
-	// Element IDs
-	private static class Ids {
-		public static final int ID_A = 0;
-		public static final int ID_ADDRESS = 1;
-		public static final int ID_BASE = 2;
-		public static final int ID_BLOCKQUOTE = 3;
-		public static final int ID_BODY = 4;
-		public static final int ID_BR = 5;
-		public static final int ID_CENTER = 6;
-		public static final int ID_DD = 7;
-		public static final int ID_DIR = 8;
-		public static final int ID_DIV = 9;
-		public static final int ID_DL = 10;
-		public static final int ID_DT = 11;
-		public static final int ID_FORM = 12;
-		public static final int ID_H1 = 13;
-		public static final int ID_H2 = 14;
-		public static final int ID_H3 = 15;
-		public static final int ID_H4 = 16;
-		public static final int ID_H5 = 17;
-		public static final int ID_H6 = 18;
-		public static final int ID_HEAD = 19;
-		public static final int ID_HR = 20;
-		public static final int ID_HTML = 21;
-		public static final int ID_IMG = 22;
-		public static final int ID_INPUT = 23;
-		public static final int ID_LI = 24;
-		public static final int ID_MENU = 25;
-		public static final int ID_META = 26;
-		public static final int ID_OL = 27;
-		public static final int ID_OPTION = 28;
-		public static final int ID_P = 29;
-		public static final int ID_PRE = 30;
-		public static final int ID_SELECT = 31;
-		public static final int ID_TEXTAREA = 32;
-		public static final int ID_TITLE = 33;
-		public static final int ID_UL = 34;
-		public static final int ID_SSI_CONFIG = 35;
-		public static final int ID_SSI_ECHO = 36;
-		public static final int ID_SSI_EXEC = 37;
-		public static final int ID_SSI_FSIZE = 38;
-		public static final int ID_SSI_FLASTMOD = 39;
-		public static final int ID_SSI_INCLUDE = 40;
-		public static final int ID_SSI_PRINTENV = 41;
-		public static final int ID_SSI_SET = 42;
-
-		public static int getNumOfIds() {
-			if (numofids != -1)
-				return numofids;
-
-			// NOTE: If the reflection is too slow, this method should
-			// just return the literal value, like 105.
-			// -- 5/25/2001
-			Class clazz = Ids.class;
-			Field[] fields = clazz.getFields();
-			numofids = 0;
-			for (int i = 0; i < fields.length; i++) {
-				String name = fields[i].getName();
-				if (name.startsWith("ID_"))//$NON-NLS-1$
-					numofids++;
-			}
-			return numofids;
-		}
-
-		// chache the result of the reflection.
-		private static int numofids = -1;
-	}
-
-	/** %formctl;. INPUT | SELECT | TEXTAREA */
-	private static final String[] FORMCTL = {INPUT, SELECT, TEXTAREA};
-	/** %phrase;.
-	 * DFN
-	 */
-	private static final String[] PHRASE = {DFN};
-	/** %special;.
-	 * A | IMG | BR
-	 */
-	private static final String[] SPECIAL = {A, IMG, BR};
-	/** %heading;. H[1-6] */
-	private static final String[] HEADING = {H1, H2, H3, H4, H5, H6};
-	/** %list;. UL | OL | DIR | MENU */
-	private static final String[] LIST = {UL, OL, DIR, MENU};
-	/** %preformatted;. PRE */
-	private static final String[] PREFORMATTED = {PRE};
-	private AttributeCollection attributeCollection = null;
-	private static String[] names = null;
-
-	static {
-		names = new String[Ids.getNumOfIds()];
-		names[Ids.ID_A] = A;
-		names[Ids.ID_ADDRESS] = ADDRESS;
-		names[Ids.ID_BASE] = BASE;
-		names[Ids.ID_BLOCKQUOTE] = BLOCKQUOTE;
-		names[Ids.ID_BODY] = BODY;
-		names[Ids.ID_BR] = BR;
-		names[Ids.ID_CENTER] = CENTER;
-		names[Ids.ID_DD] = DD;
-		names[Ids.ID_DIR] = DIR;
-		names[Ids.ID_DIV] = DIV;
-		names[Ids.ID_DL] = DL;
-		names[Ids.ID_DT] = DT;
-		names[Ids.ID_FORM] = FORM;
-		names[Ids.ID_H1] = H1;
-		names[Ids.ID_H2] = H2;
-		names[Ids.ID_H3] = H3;
-		names[Ids.ID_H4] = H4;
-		names[Ids.ID_H5] = H5;
-		names[Ids.ID_H6] = H6;
-		names[Ids.ID_HEAD] = HEAD;
-		names[Ids.ID_HR] = HR;
-		names[Ids.ID_HTML] = HTML;
-		names[Ids.ID_IMG] = IMG;
-		names[Ids.ID_INPUT] = INPUT;
-		names[Ids.ID_LI] = LI;
-		names[Ids.ID_MENU] = MENU;
-		names[Ids.ID_META] = META;
-		names[Ids.ID_OL] = OL;
-		names[Ids.ID_OPTION] = OPTION;
-		names[Ids.ID_P] = P;
-		names[Ids.ID_PRE] = PRE;
-		names[Ids.ID_SELECT] = SELECT;
-		names[Ids.ID_TEXTAREA] = TEXTAREA;
-		names[Ids.ID_TITLE] = TITLE;
-		names[Ids.ID_UL] = UL;
-		names[Ids.ID_SSI_CONFIG] = SSI_CONFIG;
-		names[Ids.ID_SSI_ECHO] = SSI_ECHO;
-		names[Ids.ID_SSI_EXEC] = SSI_EXEC;
-		names[Ids.ID_SSI_FSIZE] = SSI_FSIZE;
-		names[Ids.ID_SSI_FLASTMOD] = SSI_FLASTMOD;
-		names[Ids.ID_SSI_INCLUDE] = SSI_INCLUDE;
-		names[Ids.ID_SSI_PRINTENV] = SSI_PRINTENV;
-		names[Ids.ID_SSI_SET] = SSI_SET;
-	}
-
-	/**
-	 */
-	public ElementCollection(AttributeCollection collection) {
-		super(names, TOLERANT_CASE);
-		attributeCollection = collection;
-	}
-
-	/**
-	 * Actually creates HTMLElementDeclaration instance.
-	 * @return HTMLElementDeclaration
-	 */
-	protected CMNode create(String elementName) {
-		HTMLElemDeclImpl edec = null;
-
-		if (elementName.equalsIgnoreCase(A)) {
-			edec = new HedA(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(ADDRESS)) {
-			edec = new HedADDRESS(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(BASE)) {
-			edec = new HedBASE(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(BLOCKQUOTE)) {
-			edec = new HedBLOCKQUOTE(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(BODY)) {
-			edec = new HedBODY(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(BR)) {
-			edec = new HedBR(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(CENTER)) {
-			edec = new HedCENTER(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(DD)) {
-			edec = new HedDD(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(DIR)) {
-			edec = new HedMENU(DIR, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(DIV)) {
-			edec = new HedDIV(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(DL)) {
-			edec = new HedDL(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(DT)) {
-			edec = new HedDT(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(FORM)) {
-			edec = new HedFORM(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(H1)) {
-			edec = new HedHeading(H1, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(H2)) {
-			edec = new HedHeading(H2, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(H3)) {
-			edec = new HedHeading(H3, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(H4)) {
-			edec = new HedHeading(H4, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(H5)) {
-			edec = new HedHeading(H5, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(H6)) {
-			edec = new HedHeading(H6, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(HEAD)) {
-			edec = new HedHEAD(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(HR)) {
-			edec = new HedHR(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(HTML)) {
-			edec = new HedHTML(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(IMG)) {
-			edec = new HedIMG(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(INPUT)) {
-			edec = new HedINPUT(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(LI)) {
-			edec = new HedLI(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(MENU)) {
-			edec = new HedMENU(MENU, this);
-
-		}
-		else if (elementName.equalsIgnoreCase(META)) {
-			edec = new HedMETA(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(OL)) {
-			edec = new HedOL(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(OPTION)) {
-			edec = new HedOPTION(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(P)) {
-			edec = new HedP(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(PRE)) {
-			edec = new HedPRE(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SELECT)) {
-			edec = new HedSELECT(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(TEXTAREA)) {
-			edec = new HedTEXTAREA(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(TITLE)) {
-			edec = new HedTITLE(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(UL)) {
-			edec = new HedUL(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SSI_CONFIG)) {
-			edec = new HedSSIConfig(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SSI_ECHO)) {
-			edec = new HedSSIEcho(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SSI_EXEC)) {
-			edec = new HedSSIExec(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SSI_FSIZE)) {
-			edec = new HedSSIFsize(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SSI_FLASTMOD)) {
-			edec = new HedSSIFlastmod(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SSI_INCLUDE)) {
-			edec = new HedSSIInclude(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SSI_PRINTENV)) {
-			edec = new HedSSIPrintenv(this);
-
-		}
-		else if (elementName.equalsIgnoreCase(SSI_SET)) {
-			edec = new HedSSISet(this);
-
-		} // unknown
-		else {
-			// NOTE: We don't define the UNKNOWN element declaration.
-			// <code>null</code> for a declaration is a sign of
-			// the target element is unknown.
-			// -- 3/9/2001
-			edec = null;
-		}
-		return edec;
-	}
-
-	public AttributeCollection getAttributeCollection() {
-		return attributeCollection;
-	}
-
-	/**
-	 */
-	public final Collection getNamesOfBlock() {
-		// P | %list | %preformatted | DL | DIV | CENTER | BLOCKQUOTE | FORM | HR
-		String[] blockMisc = {P, DL, DIV, CENTER, BLOCKQUOTE, FORM, HR,};
-		Vector blockNames = new Vector(Arrays.asList(blockMisc));
-		// %heading;
-		blockNames.addAll(Arrays.asList(HEADING));
-		// %list;
-		blockNames.addAll(Arrays.asList(LIST));
-		// %preformatted;
-		blockNames.addAll(Arrays.asList(PREFORMATTED));
-
-		return blockNames;
-	}
-
-	/**
-	 * %block;.
-	 * %block; is:
-	 * P | %heading; | %list; | %preformatted; | DL | DIV | CENTER |
-	 * NOSCRIPT | NOFRAMES | BLOCKQUOTE | FORM | ISINDEX | HR |
-	 * TABLE | FIELDSET | ADDRESS.<br>
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getBlock(CMGroupImpl group) {
-		if (group == null)
-			return;
-		getDeclarations(group, getNamesOfBlock().iterator());
-	}
-
-	/**
-	 * Create element declarations and store them
-	 * into a <code>CMGroupImpl</code> instance.
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getFlow(CMGroupImpl group) {
-		if (group == null)
-			return;
-		getBlock(group);
-		getInline(group);
-	}
-
-	/**
-	 * Create element declarations and store them into a <code>CMGroupImpl</code>
-	 * instance.<br>
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getFontstyle(CMGroupImpl group) {
-		return;
-	}
-
-	/**
-	 * Create element declarations and store them into a <code>CMGroupImpl</code>
-	 * instance.<br>
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getFormctrl(CMGroupImpl group) {
-		if (group == null)
-			return;
-		getDeclarations(group, Arrays.asList(FORMCTL).iterator());
-	}
-
-	/**
-	 * %heading;.
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getHeading(CMGroupImpl group) {
-		if (group == null)
-			return;
-
-		getDeclarations(group, Arrays.asList(HEADING).iterator());
-	}
-
-	/**
-	 * Create element declarations and store them
-	 * into a <code>CMGroupImpl</code> instance.
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getInline(CMGroupImpl group) {
-		if (group == null)
-			return;
-		getFontstyle(group);
-		getPhrase(group);
-		getSpecial(group);
-		getFormctrl(group);
-	}
-
-	/**
-	 * %list;.
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getList(CMGroupImpl group) {
-		if (group == null)
-			return;
-
-		getDeclarations(group, Arrays.asList(LIST).iterator());
-	}
-
-	/**
-	 * Create element declarations and store them into a <code>CMGroupImpl</code>
-	 * instance.<br>
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getPhrase(CMGroupImpl group) {
-		if (group == null)
-			return;
-		getDeclarations(group, Arrays.asList(PHRASE).iterator());
-	}
-
-	/**
-	 * %preformatted;
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getPreformatted(CMGroupImpl group) {
-		if (group == null)
-			return;
-
-		getDeclarations(group, Arrays.asList(PREFORMATTED).iterator());
-	}
-
-	/**
-	 * Create element declarations and store them into a <code>CMGroupImpl</code>
-	 * instance.<br>
-	 * @param group CMGroupImpl Return values.
-	 */
-	public final void getSpecial(CMGroupImpl group) {
-		if (group == null)
-			return;
-		getDeclarations(group, Arrays.asList(SPECIAL).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/EntityCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/EntityCollection.java
deleted file mode 100644
index 4f371fc..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/EntityCollection.java
+++ /dev/null
@@ -1,837 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.lang.reflect.Field;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * Factory for entity declarations.
- */
-final class EntityCollection extends DeclCollection implements org.eclipse.wst.html.core.internal.provisional.HTML40Namespace.EntityName {
-
-
-	private static class Ids {
-		public static final int ID_AACUTE_L = 0;
-		public static final int ID_AACUTE_U = 1;
-		public static final int ID_ACIRC_L = 2;
-		public static final int ID_ACIRC_U = 3;
-		public static final int ID_ACUTE = 4;
-		public static final int ID_AELIG_L = 5;
-		public static final int ID_AELIG_U = 6;
-		public static final int ID_AGRAVE_L = 7;
-		public static final int ID_AGRAVE_U = 8;
-		public static final int ID_ALEFSYM = 9;
-		public static final int ID_ALPHA_L = 10;
-		public static final int ID_ALPHA_U = 11;
-		public static final int ID_AMP = 12;
-		public static final int ID_AND = 13;
-		public static final int ID_ANG = 14;
-		public static final int ID_ARING_L = 15;
-		public static final int ID_ARING_U = 16;
-		public static final int ID_ASYMP = 17;
-		public static final int ID_ATILDE_L = 18;
-		public static final int ID_ATILDE_U = 19;
-		public static final int ID_AUML_L = 20;
-		public static final int ID_AUML_U = 21;
-		public static final int ID_BDQUO = 22;
-		public static final int ID_BETA_L = 23;
-		public static final int ID_BETA_U = 24;
-		public static final int ID_BRVBAR = 25;
-		public static final int ID_BULL = 26;
-		public static final int ID_CAP = 27;
-		public static final int ID_CCEDIL_L = 28;
-		public static final int ID_CCEDIL_U = 29;
-		public static final int ID_CEDIL = 30;
-		public static final int ID_CENT = 31;
-		public static final int ID_CHI_L = 32;
-		public static final int ID_CHI_U = 33;
-		public static final int ID_CIRC = 34;
-		public static final int ID_CLUBS = 35;
-		public static final int ID_CONG = 36;
-		public static final int ID_COPY = 37;
-		public static final int ID_CRARR = 38;
-		public static final int ID_CUP = 39;
-		public static final int ID_CURREN = 40;
-		public static final int ID_DAGGER_L = 41;
-		public static final int ID_DAGGER_U = 42;
-		public static final int ID_DARR_L = 43;
-		public static final int ID_DARR_U = 44;
-		public static final int ID_DEG = 45;
-		public static final int ID_DELTA_L = 46;
-		public static final int ID_DELTA_U = 47;
-		public static final int ID_DIAMS = 48;
-		public static final int ID_DIVIDE = 49;
-		public static final int ID_EACUTE_L = 50;
-		public static final int ID_EACUTE_U = 51;
-		public static final int ID_ECIRC_L = 52;
-		public static final int ID_ECIRC_U = 53;
-		public static final int ID_EGRAVE_L = 54;
-		public static final int ID_EGRAVE_U = 55;
-		public static final int ID_EMPTY = 56;
-		public static final int ID_EMSP = 57;
-		public static final int ID_ENSP = 58;
-		public static final int ID_EPSILON_L = 59;
-		public static final int ID_EPSILON_U = 60;
-		public static final int ID_EQUIV = 61;
-		public static final int ID_ETA_L = 62;
-		public static final int ID_ETA_U = 63;
-		public static final int ID_ETH_L = 64;
-		public static final int ID_ETH_U = 65;
-		public static final int ID_EUML_L = 66;
-		public static final int ID_EUML_U = 67;
-		public static final int ID_EURO = 68;
-		public static final int ID_EXIST = 69;
-		public static final int ID_FNOF = 70;
-		public static final int ID_FORALL = 71;
-		public static final int ID_FRAC12 = 72;
-		public static final int ID_FRAC14 = 73;
-		public static final int ID_FRAC34 = 74;
-		public static final int ID_FRASL = 75;
-		public static final int ID_GAMMA_L = 76;
-		public static final int ID_GAMMA_U = 77;
-		public static final int ID_GE = 78;
-		public static final int ID_GT = 79;
-		public static final int ID_HARR_L = 80;
-		public static final int ID_HARR_U = 81;
-		public static final int ID_HEARTS = 82;
-		public static final int ID_HELLIP = 83;
-		public static final int ID_IACUTE_L = 84;
-		public static final int ID_IACUTE_U = 85;
-		public static final int ID_ICIRC_L = 86;
-		public static final int ID_ICIRC_U = 87;
-		public static final int ID_IEXCL = 88;
-		public static final int ID_IGRAVE_L = 89;
-		public static final int ID_IGRAVE_U = 90;
-		public static final int ID_IMAGE = 91;
-		public static final int ID_INFIN = 92;
-		public static final int ID_INT = 93;
-		public static final int ID_IOTA_L = 94;
-		public static final int ID_IOTA_U = 95;
-		public static final int ID_IQUEST = 96;
-		public static final int ID_ISIN = 97;
-		public static final int ID_IUML_L = 98;
-		public static final int ID_IUML_U = 99;
-		public static final int ID_KAPPA_L = 100;
-		public static final int ID_KAPPA_U = 101;
-		public static final int ID_LAMBDA_L = 102;
-		public static final int ID_LAMBDA_U = 103;
-		public static final int ID_LANG = 104;
-		public static final int ID_LAQUO = 105;
-		public static final int ID_LARR_L = 106;
-		public static final int ID_LARR_U = 107;
-		public static final int ID_LCEIL = 108;
-		public static final int ID_LDQUO = 109;
-		public static final int ID_LE = 110;
-		public static final int ID_LFLOOR = 111;
-		public static final int ID_LOWAST = 112;
-		public static final int ID_LOZ = 113;
-		public static final int ID_LRM = 114;
-		public static final int ID_LSAQUO = 115;
-		public static final int ID_LSQUO = 116;
-		public static final int ID_LT = 117;
-		public static final int ID_MACR = 118;
-		public static final int ID_MDASH = 119;
-		public static final int ID_MICRO = 120;
-		public static final int ID_MIDDOT = 121;
-		public static final int ID_MINUS = 122;
-		public static final int ID_MU_L = 123;
-		public static final int ID_MU_U = 124;
-		public static final int ID_NABLA = 125;
-		public static final int ID_NBSP = 126;
-		public static final int ID_NDASH = 127;
-		public static final int ID_NE = 128;
-		public static final int ID_NI = 129;
-		public static final int ID_NOT = 130;
-		public static final int ID_NOTIN = 131;
-		public static final int ID_NSUB = 132;
-		public static final int ID_NTILDE_L = 133;
-		public static final int ID_NTILDE_U = 134;
-		public static final int ID_NU_L = 135;
-		public static final int ID_NU_U = 136;
-		public static final int ID_OACUTE_L = 137;
-		public static final int ID_OACUTE_U = 138;
-		public static final int ID_OCIRC_L = 139;
-		public static final int ID_OCIRC_U = 140;
-		public static final int ID_OELIG_L = 141;
-		public static final int ID_OELIG_U = 142;
-		public static final int ID_OGRAVE_L = 143;
-		public static final int ID_OGRAVE_U = 144;
-		public static final int ID_OLINE = 145;
-		public static final int ID_OMEGA_L = 146;
-		public static final int ID_OMEGA_U = 147;
-		public static final int ID_OMICRON_L = 148;
-		public static final int ID_OMICRON_U = 149;
-		public static final int ID_OPLUS = 150;
-		public static final int ID_OR = 151;
-		public static final int ID_ORDF = 152;
-		public static final int ID_ORDM = 153;
-		public static final int ID_OSLASH_L = 154;
-		public static final int ID_OSLASH_U = 155;
-		public static final int ID_OTILDE_L = 156;
-		public static final int ID_OTILDE_U = 157;
-		public static final int ID_OTIMES = 158;
-		public static final int ID_OUML_L = 159;
-		public static final int ID_OUML_U = 160;
-		public static final int ID_PARA = 161;
-		public static final int ID_PART = 162;
-		public static final int ID_PERMIL = 163;
-		public static final int ID_PERP = 164;
-		public static final int ID_PHI_L = 165;
-		public static final int ID_PHI_U = 166;
-		public static final int ID_PIV = 167;
-		public static final int ID_PI_L = 168;
-		public static final int ID_PI_U = 169;
-		public static final int ID_PLUSMN = 170;
-		public static final int ID_POUND = 171;
-		public static final int ID_PRIME_L = 172;
-		public static final int ID_PRIME_U = 173;
-		public static final int ID_PROD = 174;
-		public static final int ID_PROP = 175;
-		public static final int ID_PSI_L = 176;
-		public static final int ID_PSI_U = 177;
-		public static final int ID_QUOT = 178;
-		public static final int ID_RADIC = 179;
-		public static final int ID_RANG = 180;
-		public static final int ID_RAQUO = 181;
-		public static final int ID_RARR_L = 182;
-		public static final int ID_RARR_U = 183;
-		public static final int ID_RCEIL = 184;
-		public static final int ID_RDQUO = 185;
-		public static final int ID_REAL = 186;
-		public static final int ID_REG = 187;
-		public static final int ID_RFLOOR = 188;
-		public static final int ID_RHO_L = 189;
-		public static final int ID_RHO_U = 190;
-		public static final int ID_RLM = 191;
-		public static final int ID_RSAQUO = 192;
-		public static final int ID_RSQUO = 193;
-		public static final int ID_SBQUO = 194;
-		public static final int ID_SCARON_L = 195;
-		public static final int ID_SCARON_U = 196;
-		public static final int ID_SDOT = 197;
-		public static final int ID_SECT = 198;
-		public static final int ID_SHY = 199;
-		public static final int ID_SIGMAF = 200;
-		public static final int ID_SIGMA_L = 201;
-		public static final int ID_SIGMA_U = 202;
-		public static final int ID_SIM = 203;
-		public static final int ID_SPADES = 204;
-		public static final int ID_SUB = 205;
-		public static final int ID_SUBE = 206;
-		public static final int ID_SUM = 207;
-		public static final int ID_SUP = 208;
-		public static final int ID_SUP1 = 209;
-		public static final int ID_SUP2 = 210;
-		public static final int ID_SUP3 = 211;
-		public static final int ID_SUPE = 212;
-		public static final int ID_SZLIG = 213;
-		public static final int ID_TAU_L = 214;
-		public static final int ID_TAU_U = 215;
-		public static final int ID_THERE4 = 216;
-		public static final int ID_THETASYM = 217;
-		public static final int ID_THETA_L = 218;
-		public static final int ID_THETA_U = 219;
-		public static final int ID_THINSP = 220;
-		public static final int ID_THORN_L = 221;
-		public static final int ID_THORN_U = 222;
-		public static final int ID_TILDE = 223;
-		public static final int ID_TIMES = 224;
-		public static final int ID_TRADE = 225;
-		public static final int ID_UACUTE_L = 226;
-		public static final int ID_UACUTE_U = 227;
-		public static final int ID_UARR_L = 228;
-		public static final int ID_UARR_U = 229;
-		public static final int ID_UCIRC_L = 230;
-		public static final int ID_UCIRC_U = 231;
-		public static final int ID_UGRAVE_L = 232;
-		public static final int ID_UGRAVE_U = 233;
-		public static final int ID_UML = 234;
-		public static final int ID_UPSIH = 235;
-		public static final int ID_UPSILON_L = 236;
-		public static final int ID_UPSILON_U = 237;
-		public static final int ID_UUML_L = 238;
-		public static final int ID_UUML_U = 239;
-		public static final int ID_WEIERP = 240;
-		public static final int ID_XI_L = 241;
-		public static final int ID_XI_U = 242;
-		public static final int ID_YACUTE_L = 243;
-		public static final int ID_YACUTE_U = 244;
-		public static final int ID_YEN = 245;
-		public static final int ID_YUML_L = 246;
-		public static final int ID_YUML_U = 247;
-		public static final int ID_ZETA_L = 248;
-		public static final int ID_ZETA_U = 249;
-		public static final int ID_ZWJ = 250;
-		public static final int ID_ZWNJ = 251;
-
-		public static int getNumOfIds() {
-			if (numofids != -1)
-				return numofids;
-
-			// NOTE: If the reflection is too slow, this method should
-			// just return the literal value, like 252.
-			// -- 5/24/2001
-			Class clazz = Ids.class;
-			Field[] fields = clazz.getFields();
-			numofids = 0;
-			for (int i = 0; i < fields.length; i++) {
-				String name = fields[i].getName();
-				if (name.startsWith("ID_"))//$NON-NLS-1$
-					numofids++;
-			}
-			return numofids;
-		}
-
-		// chache the result of the reflection.
-		private static int numofids = -1;
-	}
-
-	private static String[] names = null;
-
-	static {
-		names = new String[Ids.getNumOfIds()];
-		names[Ids.ID_AACUTE_L] = AACUTE_L;
-		names[Ids.ID_AACUTE_U] = AACUTE_U;
-		names[Ids.ID_ACIRC_L] = ACIRC_L;
-		names[Ids.ID_ACIRC_U] = ACIRC_U;
-		names[Ids.ID_ACUTE] = ACUTE;
-		names[Ids.ID_AELIG_L] = AELIG_L;
-		names[Ids.ID_AELIG_U] = AELIG_U;
-		names[Ids.ID_AGRAVE_L] = AGRAVE_L;
-		names[Ids.ID_AGRAVE_U] = AGRAVE_U;
-		names[Ids.ID_ALEFSYM] = ALEFSYM;
-		names[Ids.ID_ALPHA_L] = ALPHA_L;
-		names[Ids.ID_ALPHA_U] = ALPHA_U;
-		names[Ids.ID_AMP] = AMP;
-		names[Ids.ID_AND] = AND;
-		names[Ids.ID_ANG] = ANG;
-		names[Ids.ID_ARING_L] = ARING_L;
-		names[Ids.ID_ARING_U] = ARING_U;
-		names[Ids.ID_ASYMP] = ASYMP;
-		names[Ids.ID_ATILDE_L] = ATILDE_L;
-		names[Ids.ID_ATILDE_U] = ATILDE_U;
-		names[Ids.ID_AUML_L] = AUML_L;
-		names[Ids.ID_AUML_U] = AUML_U;
-		names[Ids.ID_BDQUO] = BDQUO;
-		names[Ids.ID_BETA_L] = BETA_L;
-		names[Ids.ID_BETA_U] = BETA_U;
-		names[Ids.ID_BRVBAR] = BRVBAR;
-		names[Ids.ID_BULL] = BULL;
-		names[Ids.ID_CAP] = CAP;
-		names[Ids.ID_CCEDIL_L] = CCEDIL_L;
-		names[Ids.ID_CCEDIL_U] = CCEDIL_U;
-		names[Ids.ID_CEDIL] = CEDIL;
-		names[Ids.ID_CENT] = CENT;
-		names[Ids.ID_CHI_L] = CHI_L;
-		names[Ids.ID_CHI_U] = CHI_U;
-		names[Ids.ID_CIRC] = CIRC;
-		names[Ids.ID_CLUBS] = CLUBS;
-		names[Ids.ID_CONG] = CONG;
-		names[Ids.ID_COPY] = COPY;
-		names[Ids.ID_CRARR] = CRARR;
-		names[Ids.ID_CUP] = CUP;
-		names[Ids.ID_CURREN] = CURREN;
-		names[Ids.ID_DAGGER_L] = DAGGER_L;
-		names[Ids.ID_DAGGER_U] = DAGGER_U;
-		names[Ids.ID_DARR_L] = DARR_L;
-		names[Ids.ID_DARR_U] = DARR_U;
-		names[Ids.ID_DEG] = DEG;
-		names[Ids.ID_DELTA_L] = DELTA_L;
-		names[Ids.ID_DELTA_U] = DELTA_U;
-		names[Ids.ID_DIAMS] = DIAMS;
-		names[Ids.ID_DIVIDE] = DIVIDE;
-		names[Ids.ID_EACUTE_L] = EACUTE_L;
-		names[Ids.ID_EACUTE_U] = EACUTE_U;
-		names[Ids.ID_ECIRC_L] = ECIRC_L;
-		names[Ids.ID_ECIRC_U] = ECIRC_U;
-		names[Ids.ID_EGRAVE_L] = EGRAVE_L;
-		names[Ids.ID_EGRAVE_U] = EGRAVE_U;
-		names[Ids.ID_EMPTY] = EMPTY;
-		names[Ids.ID_EMSP] = EMSP;
-		names[Ids.ID_ENSP] = ENSP;
-		names[Ids.ID_EPSILON_L] = EPSILON_L;
-		names[Ids.ID_EPSILON_U] = EPSILON_U;
-		names[Ids.ID_EQUIV] = EQUIV;
-		names[Ids.ID_ETA_L] = ETA_L;
-		names[Ids.ID_ETA_U] = ETA_U;
-		names[Ids.ID_ETH_L] = ETH_L;
-		names[Ids.ID_ETH_U] = ETH_U;
-		names[Ids.ID_EUML_L] = EUML_L;
-		names[Ids.ID_EUML_U] = EUML_U;
-		names[Ids.ID_EURO] = EURO;
-		names[Ids.ID_EXIST] = EXIST;
-		names[Ids.ID_FNOF] = FNOF;
-		names[Ids.ID_FORALL] = FORALL;
-		names[Ids.ID_FRAC12] = FRAC12;
-		names[Ids.ID_FRAC14] = FRAC14;
-		names[Ids.ID_FRAC34] = FRAC34;
-		names[Ids.ID_FRASL] = FRASL;
-		names[Ids.ID_GAMMA_L] = GAMMA_L;
-		names[Ids.ID_GAMMA_U] = GAMMA_U;
-		names[Ids.ID_GE] = GE;
-		names[Ids.ID_GT] = GT;
-		names[Ids.ID_HARR_L] = HARR_L;
-		names[Ids.ID_HARR_U] = HARR_U;
-		names[Ids.ID_HEARTS] = HEARTS;
-		names[Ids.ID_HELLIP] = HELLIP;
-		names[Ids.ID_IACUTE_L] = IACUTE_L;
-		names[Ids.ID_IACUTE_U] = IACUTE_U;
-		names[Ids.ID_ICIRC_L] = ICIRC_L;
-		names[Ids.ID_ICIRC_U] = ICIRC_U;
-		names[Ids.ID_IEXCL] = IEXCL;
-		names[Ids.ID_IGRAVE_L] = IGRAVE_L;
-		names[Ids.ID_IGRAVE_U] = IGRAVE_U;
-		names[Ids.ID_IMAGE] = IMAGE;
-		names[Ids.ID_INFIN] = INFIN;
-		names[Ids.ID_INT] = INT;
-		names[Ids.ID_IOTA_L] = IOTA_L;
-		names[Ids.ID_IOTA_U] = IOTA_U;
-		names[Ids.ID_IQUEST] = IQUEST;
-		names[Ids.ID_ISIN] = ISIN;
-		names[Ids.ID_IUML_L] = IUML_L;
-		names[Ids.ID_IUML_U] = IUML_U;
-		names[Ids.ID_KAPPA_L] = KAPPA_L;
-		names[Ids.ID_KAPPA_U] = KAPPA_U;
-		names[Ids.ID_LAMBDA_L] = LAMBDA_L;
-		names[Ids.ID_LAMBDA_U] = LAMBDA_U;
-		names[Ids.ID_LANG] = LANG;
-		names[Ids.ID_LAQUO] = LAQUO;
-		names[Ids.ID_LARR_L] = LARR_L;
-		names[Ids.ID_LARR_U] = LARR_U;
-		names[Ids.ID_LCEIL] = LCEIL;
-		names[Ids.ID_LDQUO] = LDQUO;
-		names[Ids.ID_LE] = LE;
-		names[Ids.ID_LFLOOR] = LFLOOR;
-		names[Ids.ID_LOWAST] = LOWAST;
-		names[Ids.ID_LOZ] = LOZ;
-		names[Ids.ID_LRM] = LRM;
-		names[Ids.ID_LSAQUO] = LSAQUO;
-		names[Ids.ID_LSQUO] = LSQUO;
-		names[Ids.ID_LT] = LT;
-		names[Ids.ID_MACR] = MACR;
-		names[Ids.ID_MDASH] = MDASH;
-		names[Ids.ID_MICRO] = MICRO;
-		names[Ids.ID_MIDDOT] = MIDDOT;
-		names[Ids.ID_MINUS] = MINUS;
-		names[Ids.ID_MU_L] = MU_L;
-		names[Ids.ID_MU_U] = MU_U;
-		names[Ids.ID_NABLA] = NABLA;
-		names[Ids.ID_NBSP] = NBSP;
-		names[Ids.ID_NDASH] = NDASH;
-		names[Ids.ID_NE] = NE;
-		names[Ids.ID_NI] = NI;
-		names[Ids.ID_NOT] = NOT;
-		names[Ids.ID_NOTIN] = NOTIN;
-		names[Ids.ID_NSUB] = NSUB;
-		names[Ids.ID_NTILDE_L] = NTILDE_L;
-		names[Ids.ID_NTILDE_U] = NTILDE_U;
-		names[Ids.ID_NU_L] = NU_L;
-		names[Ids.ID_NU_U] = NU_U;
-		names[Ids.ID_OACUTE_L] = OACUTE_L;
-		names[Ids.ID_OACUTE_U] = OACUTE_U;
-		names[Ids.ID_OCIRC_L] = OCIRC_L;
-		names[Ids.ID_OCIRC_U] = OCIRC_U;
-		names[Ids.ID_OELIG_L] = OELIG_L;
-		names[Ids.ID_OELIG_U] = OELIG_U;
-		names[Ids.ID_OGRAVE_L] = OGRAVE_L;
-		names[Ids.ID_OGRAVE_U] = OGRAVE_U;
-		names[Ids.ID_OLINE] = OLINE;
-		names[Ids.ID_OMEGA_L] = OMEGA_L;
-		names[Ids.ID_OMEGA_U] = OMEGA_U;
-		names[Ids.ID_OMICRON_L] = OMICRON_L;
-		names[Ids.ID_OMICRON_U] = OMICRON_U;
-		names[Ids.ID_OPLUS] = OPLUS;
-		names[Ids.ID_OR] = OR;
-		names[Ids.ID_ORDF] = ORDF;
-		names[Ids.ID_ORDM] = ORDM;
-		names[Ids.ID_OSLASH_L] = OSLASH_L;
-		names[Ids.ID_OSLASH_U] = OSLASH_U;
-		names[Ids.ID_OTILDE_L] = OTILDE_L;
-		names[Ids.ID_OTILDE_U] = OTILDE_U;
-		names[Ids.ID_OTIMES] = OTIMES;
-		names[Ids.ID_OUML_L] = OUML_L;
-		names[Ids.ID_OUML_U] = OUML_U;
-		names[Ids.ID_PARA] = PARA;
-		names[Ids.ID_PART] = PART;
-		names[Ids.ID_PERMIL] = PERMIL;
-		names[Ids.ID_PERP] = PERP;
-		names[Ids.ID_PHI_L] = PHI_L;
-		names[Ids.ID_PHI_U] = PHI_U;
-		names[Ids.ID_PIV] = PIV;
-		names[Ids.ID_PI_L] = PI_L;
-		names[Ids.ID_PI_U] = PI_U;
-		names[Ids.ID_PLUSMN] = PLUSMN;
-		names[Ids.ID_POUND] = POUND;
-		names[Ids.ID_PRIME_L] = PRIME_L;
-		names[Ids.ID_PRIME_U] = PRIME_U;
-		names[Ids.ID_PROD] = PROD;
-		names[Ids.ID_PROP] = PROP;
-		names[Ids.ID_PSI_L] = PSI_L;
-		names[Ids.ID_PSI_U] = PSI_U;
-		names[Ids.ID_QUOT] = QUOT;
-		names[Ids.ID_RADIC] = RADIC;
-		names[Ids.ID_RANG] = RANG;
-		names[Ids.ID_RAQUO] = RAQUO;
-		names[Ids.ID_RARR_L] = RARR_L;
-		names[Ids.ID_RARR_U] = RARR_U;
-		names[Ids.ID_RCEIL] = RCEIL;
-		names[Ids.ID_RDQUO] = RDQUO;
-		names[Ids.ID_REAL] = REAL;
-		names[Ids.ID_REG] = REG;
-		names[Ids.ID_RFLOOR] = RFLOOR;
-		names[Ids.ID_RHO_L] = RHO_L;
-		names[Ids.ID_RHO_U] = RHO_U;
-		names[Ids.ID_RLM] = RLM;
-		names[Ids.ID_RSAQUO] = RSAQUO;
-		names[Ids.ID_RSQUO] = RSQUO;
-		names[Ids.ID_SBQUO] = SBQUO;
-		names[Ids.ID_SCARON_L] = SCARON_L;
-		names[Ids.ID_SCARON_U] = SCARON_U;
-		names[Ids.ID_SDOT] = SDOT;
-		names[Ids.ID_SECT] = SECT;
-		names[Ids.ID_SHY] = SHY;
-		names[Ids.ID_SIGMAF] = SIGMAF;
-		names[Ids.ID_SIGMA_L] = SIGMA_L;
-		names[Ids.ID_SIGMA_U] = SIGMA_U;
-		names[Ids.ID_SIM] = SIM;
-		names[Ids.ID_SPADES] = SPADES;
-		names[Ids.ID_SUB] = SUB;
-		names[Ids.ID_SUBE] = SUBE;
-		names[Ids.ID_SUM] = SUM;
-		names[Ids.ID_SUP] = SUP;
-		names[Ids.ID_SUP1] = SUP1;
-		names[Ids.ID_SUP2] = SUP2;
-		names[Ids.ID_SUP3] = SUP3;
-		names[Ids.ID_SUPE] = SUPE;
-		names[Ids.ID_SZLIG] = SZLIG;
-		names[Ids.ID_TAU_L] = TAU_L;
-		names[Ids.ID_TAU_U] = TAU_U;
-		names[Ids.ID_THERE4] = THERE4;
-		names[Ids.ID_THETASYM] = THETASYM;
-		names[Ids.ID_THETA_L] = THETA_L;
-		names[Ids.ID_THETA_U] = THETA_U;
-		names[Ids.ID_THINSP] = THINSP;
-		names[Ids.ID_THORN_L] = THORN_L;
-		names[Ids.ID_THORN_U] = THORN_U;
-		names[Ids.ID_TILDE] = TILDE;
-		names[Ids.ID_TIMES] = TIMES;
-		names[Ids.ID_TRADE] = TRADE;
-		names[Ids.ID_UACUTE_L] = UACUTE_L;
-		names[Ids.ID_UACUTE_U] = UACUTE_U;
-		names[Ids.ID_UARR_L] = UARR_L;
-		names[Ids.ID_UARR_U] = UARR_U;
-		names[Ids.ID_UCIRC_L] = UCIRC_L;
-		names[Ids.ID_UCIRC_U] = UCIRC_U;
-		names[Ids.ID_UGRAVE_L] = UGRAVE_L;
-		names[Ids.ID_UGRAVE_U] = UGRAVE_U;
-		names[Ids.ID_UML] = UML;
-		names[Ids.ID_UPSIH] = UPSIH;
-		names[Ids.ID_UPSILON_L] = UPSILON_L;
-		names[Ids.ID_UPSILON_U] = UPSILON_U;
-		names[Ids.ID_UUML_L] = UUML_L;
-		names[Ids.ID_UUML_U] = UUML_U;
-		names[Ids.ID_WEIERP] = WEIERP;
-		names[Ids.ID_XI_L] = XI_L;
-		names[Ids.ID_XI_U] = XI_U;
-		names[Ids.ID_YACUTE_L] = YACUTE_L;
-		names[Ids.ID_YACUTE_U] = YACUTE_U;
-		names[Ids.ID_YEN] = YEN;
-		names[Ids.ID_YUML_L] = YUML_L;
-		names[Ids.ID_YUML_U] = YUML_U;
-		names[Ids.ID_ZETA_L] = ZETA_L;
-		names[Ids.ID_ZETA_U] = ZETA_U;
-		names[Ids.ID_ZWJ] = ZWJ;
-		names[Ids.ID_ZWNJ] = ZWNJ;
-	}
-	private static char[] values = null;
-
-	static {
-		values = new char[Ids.getNumOfIds()];
-		values[Ids.ID_AACUTE_L] = 225;
-		values[Ids.ID_AACUTE_U] = 193;
-		values[Ids.ID_ACIRC_L] = 226;
-		values[Ids.ID_ACIRC_U] = 194;
-		values[Ids.ID_ACUTE] = 180;
-		values[Ids.ID_AELIG_L] = 230;
-		values[Ids.ID_AELIG_U] = 198;
-		values[Ids.ID_AGRAVE_L] = 224;
-		values[Ids.ID_AGRAVE_U] = 192;
-		values[Ids.ID_ALEFSYM] = 8501;
-		values[Ids.ID_ALPHA_L] = 945;
-		values[Ids.ID_ALPHA_U] = 913;
-		values[Ids.ID_AMP] = 38;
-		values[Ids.ID_AND] = 8743;
-		values[Ids.ID_ANG] = 8736;
-		values[Ids.ID_ARING_L] = 229;
-		values[Ids.ID_ARING_U] = 197;
-		values[Ids.ID_ASYMP] = 8776;
-		values[Ids.ID_ATILDE_L] = 227;
-		values[Ids.ID_ATILDE_U] = 195;
-		values[Ids.ID_AUML_L] = 228;
-		values[Ids.ID_AUML_U] = 196;
-		values[Ids.ID_BDQUO] = 8222;
-		values[Ids.ID_BETA_L] = 946;
-		values[Ids.ID_BETA_U] = 914;
-		values[Ids.ID_BRVBAR] = 166;
-		values[Ids.ID_BULL] = 8226;
-		values[Ids.ID_CAP] = 8745;
-		values[Ids.ID_CCEDIL_L] = 231;
-		values[Ids.ID_CCEDIL_U] = 199;
-		values[Ids.ID_CEDIL] = 184;
-		values[Ids.ID_CENT] = 162;
-		values[Ids.ID_CHI_L] = 967;
-		values[Ids.ID_CHI_U] = 935;
-		values[Ids.ID_CIRC] = 710;
-		values[Ids.ID_CLUBS] = 9827;
-		values[Ids.ID_CONG] = 8773;
-		values[Ids.ID_COPY] = 169;
-		values[Ids.ID_CRARR] = 8629;
-		values[Ids.ID_CUP] = 8746;
-		values[Ids.ID_CURREN] = 164;
-		values[Ids.ID_DAGGER_L] = 8224;
-		values[Ids.ID_DAGGER_U] = 8225;
-		values[Ids.ID_DARR_L] = 8595;
-		values[Ids.ID_DARR_U] = 8659;
-		values[Ids.ID_DEG] = 176;
-		values[Ids.ID_DELTA_L] = 948;
-		values[Ids.ID_DELTA_U] = 916;
-		values[Ids.ID_DIAMS] = 9830;
-		values[Ids.ID_DIVIDE] = 247;
-		values[Ids.ID_EACUTE_L] = 233;
-		values[Ids.ID_EACUTE_U] = 201;
-		values[Ids.ID_ECIRC_L] = 234;
-		values[Ids.ID_ECIRC_U] = 202;
-		values[Ids.ID_EGRAVE_L] = 232;
-		values[Ids.ID_EGRAVE_U] = 200;
-		values[Ids.ID_EMPTY] = 8709;
-		values[Ids.ID_EMSP] = 8195;
-		values[Ids.ID_ENSP] = 8194;
-		values[Ids.ID_EPSILON_L] = 949;
-		values[Ids.ID_EPSILON_U] = 917;
-		values[Ids.ID_EQUIV] = 8801;
-		values[Ids.ID_ETA_L] = 951;
-		values[Ids.ID_ETA_U] = 919;
-		values[Ids.ID_ETH_L] = 240;
-		values[Ids.ID_ETH_U] = 208;
-		values[Ids.ID_EUML_L] = 235;
-		values[Ids.ID_EUML_U] = 203;
-		values[Ids.ID_EURO] = 8364;
-		values[Ids.ID_EXIST] = 8707;
-		values[Ids.ID_FNOF] = 402;
-		values[Ids.ID_FORALL] = 8704;
-		values[Ids.ID_FRAC12] = 189;
-		values[Ids.ID_FRAC14] = 188;
-		values[Ids.ID_FRAC34] = 190;
-		values[Ids.ID_FRASL] = 8260;
-		values[Ids.ID_GAMMA_L] = 947;
-		values[Ids.ID_GAMMA_U] = 915;
-		values[Ids.ID_GE] = 8805;
-		values[Ids.ID_GT] = 62;
-		values[Ids.ID_HARR_L] = 8596;
-		values[Ids.ID_HARR_U] = 8660;
-		values[Ids.ID_HEARTS] = 9829;
-		values[Ids.ID_HELLIP] = 8230;
-		values[Ids.ID_IACUTE_L] = 237;
-		values[Ids.ID_IACUTE_U] = 205;
-		values[Ids.ID_ICIRC_L] = 238;
-		values[Ids.ID_ICIRC_U] = 206;
-		values[Ids.ID_IEXCL] = 161;
-		values[Ids.ID_IGRAVE_L] = 236;
-		values[Ids.ID_IGRAVE_U] = 204;
-		values[Ids.ID_IMAGE] = 8465;
-		values[Ids.ID_INFIN] = 8734;
-		values[Ids.ID_INT] = 8747;
-		values[Ids.ID_IOTA_L] = 953;
-		values[Ids.ID_IOTA_U] = 921;
-		values[Ids.ID_IQUEST] = 191;
-		values[Ids.ID_ISIN] = 8712;
-		values[Ids.ID_IUML_L] = 239;
-		values[Ids.ID_IUML_U] = 207;
-		values[Ids.ID_KAPPA_L] = 954;
-		values[Ids.ID_KAPPA_U] = 922;
-		values[Ids.ID_LAMBDA_L] = 955;
-		values[Ids.ID_LAMBDA_U] = 923;
-		values[Ids.ID_LANG] = 9001;
-		values[Ids.ID_LAQUO] = 171;
-		values[Ids.ID_LARR_L] = 8592;
-		values[Ids.ID_LARR_U] = 8656;
-		values[Ids.ID_LCEIL] = 8968;
-		values[Ids.ID_LDQUO] = 8220;
-		values[Ids.ID_LE] = 8804;
-		values[Ids.ID_LFLOOR] = 8970;
-		values[Ids.ID_LOWAST] = 8727;
-		values[Ids.ID_LOZ] = 9674;
-		values[Ids.ID_LRM] = 8206;
-		values[Ids.ID_LSAQUO] = 8249;
-		values[Ids.ID_LSQUO] = 8216;
-		values[Ids.ID_LT] = 60;
-		values[Ids.ID_MACR] = 175;
-		values[Ids.ID_MDASH] = 8212;
-		values[Ids.ID_MICRO] = 181;
-		values[Ids.ID_MIDDOT] = 183;
-		values[Ids.ID_MINUS] = 8722;
-		values[Ids.ID_MU_L] = 956;
-		values[Ids.ID_MU_U] = 924;
-		values[Ids.ID_NABLA] = 8711;
-		values[Ids.ID_NBSP] = 160;
-		values[Ids.ID_NDASH] = 8211;
-		values[Ids.ID_NE] = 8800;
-		values[Ids.ID_NI] = 8715;
-		values[Ids.ID_NOT] = 172;
-		values[Ids.ID_NOTIN] = 8713;
-		values[Ids.ID_NSUB] = 8836;
-		values[Ids.ID_NTILDE_L] = 241;
-		values[Ids.ID_NTILDE_U] = 209;
-		values[Ids.ID_NU_L] = 957;
-		values[Ids.ID_NU_U] = 925;
-		values[Ids.ID_OACUTE_L] = 243;
-		values[Ids.ID_OACUTE_U] = 211;
-		values[Ids.ID_OCIRC_L] = 244;
-		values[Ids.ID_OCIRC_U] = 212;
-		values[Ids.ID_OELIG_L] = 339;
-		values[Ids.ID_OELIG_U] = 338;
-		values[Ids.ID_OGRAVE_L] = 242;
-		values[Ids.ID_OGRAVE_U] = 210;
-		values[Ids.ID_OLINE] = 8254;
-		values[Ids.ID_OMEGA_L] = 969;
-		values[Ids.ID_OMEGA_U] = 937;
-		values[Ids.ID_OMICRON_L] = 959;
-		values[Ids.ID_OMICRON_U] = 927;
-		values[Ids.ID_OPLUS] = 8853;
-		values[Ids.ID_OR] = 8744;
-		values[Ids.ID_ORDF] = 170;
-		values[Ids.ID_ORDM] = 186;
-		values[Ids.ID_OSLASH_L] = 248;
-		values[Ids.ID_OSLASH_U] = 216;
-		values[Ids.ID_OTILDE_L] = 245;
-		values[Ids.ID_OTILDE_U] = 213;
-		values[Ids.ID_OTIMES] = 8855;
-		values[Ids.ID_OUML_L] = 246;
-		values[Ids.ID_OUML_U] = 214;
-		values[Ids.ID_PARA] = 182;
-		values[Ids.ID_PART] = 8706;
-		values[Ids.ID_PERMIL] = 8240;
-		values[Ids.ID_PERP] = 8869;
-		values[Ids.ID_PHI_L] = 966;
-		values[Ids.ID_PHI_U] = 934;
-		values[Ids.ID_PIV] = 982;
-		values[Ids.ID_PI_L] = 960;
-		values[Ids.ID_PI_U] = 928;
-		values[Ids.ID_PLUSMN] = 177;
-		values[Ids.ID_POUND] = 163;
-		values[Ids.ID_PRIME_L] = 8242;
-		values[Ids.ID_PRIME_U] = 8243;
-		values[Ids.ID_PROD] = 8719;
-		values[Ids.ID_PROP] = 8733;
-		values[Ids.ID_PSI_L] = 968;
-		values[Ids.ID_PSI_U] = 936;
-		values[Ids.ID_QUOT] = 34;
-		values[Ids.ID_RADIC] = 8730;
-		values[Ids.ID_RANG] = 9002;
-		values[Ids.ID_RAQUO] = 187;
-		values[Ids.ID_RARR_L] = 8594;
-		values[Ids.ID_RARR_U] = 8658;
-		values[Ids.ID_RCEIL] = 8969;
-		values[Ids.ID_RDQUO] = 8221;
-		values[Ids.ID_REAL] = 8476;
-		values[Ids.ID_REG] = 174;
-		values[Ids.ID_RFLOOR] = 8971;
-		values[Ids.ID_RHO_L] = 961;
-		values[Ids.ID_RHO_U] = 929;
-		values[Ids.ID_RLM] = 8207;
-		values[Ids.ID_RSAQUO] = 8250;
-		values[Ids.ID_RSQUO] = 8217;
-		values[Ids.ID_SBQUO] = 8218;
-		values[Ids.ID_SCARON_L] = 353;
-		values[Ids.ID_SCARON_U] = 352;
-		values[Ids.ID_SDOT] = 8901;
-		values[Ids.ID_SECT] = 167;
-		values[Ids.ID_SHY] = 173;
-		values[Ids.ID_SIGMAF] = 962;
-		values[Ids.ID_SIGMA_L] = 963;
-		values[Ids.ID_SIGMA_U] = 931;
-		values[Ids.ID_SIM] = 8764;
-		values[Ids.ID_SPADES] = 9824;
-		values[Ids.ID_SUB] = 8834;
-		values[Ids.ID_SUBE] = 8838;
-		values[Ids.ID_SUM] = 8721;
-		values[Ids.ID_SUP] = 8835;
-		values[Ids.ID_SUP1] = 185;
-		values[Ids.ID_SUP2] = 178;
-		values[Ids.ID_SUP3] = 179;
-		values[Ids.ID_SUPE] = 8839;
-		values[Ids.ID_SZLIG] = 223;
-		values[Ids.ID_TAU_L] = 964;
-		values[Ids.ID_TAU_U] = 932;
-		values[Ids.ID_THERE4] = 8756;
-		values[Ids.ID_THETASYM] = 977;
-		values[Ids.ID_THETA_L] = 952;
-		values[Ids.ID_THETA_U] = 920;
-		values[Ids.ID_THINSP] = 8201;
-		values[Ids.ID_THORN_L] = 254;
-		values[Ids.ID_THORN_U] = 222;
-		values[Ids.ID_TILDE] = 732;
-		values[Ids.ID_TIMES] = 215;
-		values[Ids.ID_TRADE] = 8482;
-		values[Ids.ID_UACUTE_L] = 250;
-		values[Ids.ID_UACUTE_U] = 218;
-		values[Ids.ID_UARR_L] = 8593;
-		values[Ids.ID_UARR_U] = 8657;
-		values[Ids.ID_UCIRC_L] = 251;
-		values[Ids.ID_UCIRC_U] = 219;
-		values[Ids.ID_UGRAVE_L] = 249;
-		values[Ids.ID_UGRAVE_U] = 217;
-		values[Ids.ID_UML] = 168;
-		values[Ids.ID_UPSIH] = 978;
-		values[Ids.ID_UPSILON_L] = 965;
-		values[Ids.ID_UPSILON_U] = 933;
-		values[Ids.ID_UUML_L] = 252;
-		values[Ids.ID_UUML_U] = 220;
-		values[Ids.ID_WEIERP] = 8472;
-		values[Ids.ID_XI_L] = 958;
-		values[Ids.ID_XI_U] = 926;
-		values[Ids.ID_YACUTE_L] = 253;
-		values[Ids.ID_YACUTE_U] = 221;
-		values[Ids.ID_YEN] = 165;
-		values[Ids.ID_YUML_L] = 255;
-		values[Ids.ID_YUML_U] = 376;
-		values[Ids.ID_ZETA_L] = 950;
-		values[Ids.ID_ZETA_U] = 918;
-		values[Ids.ID_ZWJ] = 8205;
-		values[Ids.ID_ZWNJ] = 8204;
-	}
-
-	/**
-	 */
-	public EntityCollection() {
-		super(names, STRICT_CASE);
-	}
-
-	/**
-	 * Create an entity declaration.
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 * @param attrName java.lang.String
-	 */
-	protected CMNode create(String entityName) {
-		int id = getID(entityName);
-		if (id == ID_UNKNOWN)
-			return null;
-
-		String value = String.valueOf(values[id]);
-		HTMLEntityDeclImpl dec = new HTMLEntityDeclImpl(entityName, value);
-
-		return dec;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLAttrDeclImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLAttrDeclImpl.java
deleted file mode 100644
index 98ab2d9..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLAttrDeclImpl.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-import java.util.Enumeration;
-import java.util.Vector;
-
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLAttributeDeclaration;
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * Implementation class of {@link <code>HTMLAttributeDeclaration</code>} interface.<br>
- */
-class HTMLAttrDeclImpl extends CMNodeImpl implements HTMLAttributeDeclaration {
-
-	private HTMLCMDataTypeImpl type = null;
-	private int usage = 0;
-
-	/**
-	 */
-	public HTMLAttrDeclImpl(String attrName, HTMLCMDataTypeImpl valueType, int valueUsage) {
-		super(attrName);
-		this.type = valueType;
-
-		switch (valueUsage) {
-			case OPTIONAL :
-			case REQUIRED :
-			case FIXED :
-			case PROHIBITED :
-				this.usage = valueUsage;
-				break;
-			default :
-				// should warn...
-				this.usage = OPTIONAL; // fall back
-				break;
-		}
-	}
-
-	/**
-	 * getAttrName method
-	 * @return java.lang.String
-	 */
-	public String getAttrName() {
-		return getNodeName();
-	}
-
-	/**
-	 * getAttrType method
-	 * @return CMDataType
-	 */
-	public CMDataType getAttrType() {
-		return type;
-	}
-
-	/**
-	 * @deprecated in superclass
-	 */
-	public String getDefaultValue() {
-		if (type.getImpliedValueKind() != CMDataType.IMPLIED_VALUE_DEFAULT)
-			return null;
-		return type.getImpliedValue();
-	}
-
-	/**
-	 * @deprecated in superclass
-	 */
-	public Enumeration getEnumAttr() {
-		Vector v = new Vector(Arrays.asList(type.getEnumeratedValues()));
-		return v.elements();
-	}
-
-	/**
-	 * getNodeType method
-	 * @return int
-	 *
-	 * Returns one of :
-	 * ELEMENT_DECLARATION, ATTRIBUTE_DECLARATION, GROUP, ENTITY_DECLARATION.
-	 */
-	public int getNodeType() {
-		return CMNode.ATTRIBUTE_DECLARATION;
-	}
-
-	/**
-	 * @return int
-	 */
-	public int getUsage() {
-		return usage;
-	}
-
-	/**
-	 */
-	public boolean supports(String propertyName) {
-		if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE))
-			return true;
-		return super.supports(propertyName);
-	}
-
-	/**
-	 */
-	public Object getProperty(String propertyName) {
-		if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE))
-			return new Boolean(true);
-		return super.getProperty(propertyName);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMDataTypeImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMDataTypeImpl.java
deleted file mode 100644
index 63366fd..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMDataTypeImpl.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-
-
-/**
- */
-class HTMLCMDataTypeImpl extends CMNodeImpl implements HTMLCMDataType {
-
-	private int impliedValueKind = IMPLIED_VALUE_NONE;
-	private String impliedValue = null;
-	private final static String[] emptyArray = new String[0];
-	private String[] enumValues = emptyArray;
-	private String instanceValue = null;
-
-	/**
-	 * HTMLCMDataTypeImpl constructor comment.
-	 * @param nm java.lang.String
-	 */
-	public HTMLCMDataTypeImpl(String typeName) {
-		super(typeName);
-	}
-
-	/**
-	 * HTMLCMDataTypeImpl constructor comment.
-	 * @param nm java.lang.String
-	 */
-	public HTMLCMDataTypeImpl(String typeName, String instanceValue) {
-		super(typeName);
-		this.instanceValue = instanceValue;
-	}
-
-	/**
-	 * 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 instanceValue;
-	}
-
-	/**
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMDataType
-	 */
-	public String getDataTypeName() {
-		return getNodeName();
-	}
-
-	/**
-	 * getTypeName method
-	 * @return java.lang.String[]
-	 *
-	 */
-	public String[] getEnumeratedValues() {
-		return enumValues;
-	}
-
-	/**
-	 * getTypeName method
-	 * @return java.lang.String  
-	 *
-	 * Returns the implied value or null if none exists.
-	 */
-	public String getImpliedValue() {
-		return impliedValue;
-	}
-
-	/**
-	 * getImpliedValueKind method
-	 * @return int
-	 *
-	 * Returns one of :
-	 * IMPLIED_VALUE_NONE, IMPLIED_VALUE_FIXED, IMPLIED_VALUE_DEFAULT.
-	 */
-	public int getImpliedValueKind() {
-		return impliedValueKind;
-	}
-
-	/**
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 */
-	public int getNodeType() {
-		return CMNode.DATA_TYPE;
-	}
-
-	/**
-	 */
-	void setEnumValues(String[] values) {
-		enumValues = new String[values.length];
-		for (int i = 0; i < values.length; i++) {
-			enumValues[i] = values[i];
-		}
-	}
-
-	/**
-	 * package scope.
-	 */
-	void setImpliedValue(int kind, String value) {
-		switch (kind) {
-			case IMPLIED_VALUE_FIXED :
-			case IMPLIED_VALUE_DEFAULT :
-				impliedValueKind = kind;
-				impliedValue = value;
-				break;
-			case IMPLIED_VALUE_NONE :
-			default :
-				impliedValueKind = IMPLIED_VALUE_NONE;
-				impliedValue = null; // maybe a null string?
-				break;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMNode.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMNode.java
deleted file mode 100644
index b294b27..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMNode.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-/**
- * In HTML Documents, name and value of an attribute/element/entity
- * should be treated ignoring theirs case.  However, in XML documents,
- * they should be distinguished with sensitiveness of their case.
- * CMNode is basically designed to represent DTDs or Schemas for XML
- * documents.  So, it doesn't have interfaces to retrieve such information.
- * However, declarations in the HTML CM should provide such information.
- * This intermediate interface is intended to provide whether ignore cases
- * or not.<br>
- */
-interface HTMLCMNode extends org.eclipse.wst.xml.core.internal.contentmodel.CMNode {
-
-	/**
-	 * Returns <code>true</code>, if declaration is for HTML attribute/element/entity.
-	 * Otherwise, returns <code>false</code>.
-	 * @return boolean
-	 */
-	boolean shouldIgnoreCase();
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLElemDeclImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLElemDeclImpl.java
deleted file mode 100644
index c003526..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLElemDeclImpl.java
+++ /dev/null
@@ -1,369 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLAttributeDeclaration;
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration;
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLPropertyDeclaration;
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-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.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * Base class for all Hed???? classes.
- */
-abstract class HTMLElemDeclImpl extends CMContentImpl implements HTMLElementDeclaration, HTMLPropertyDeclaration {
-
-	// DTD
-	protected CMNamedNodeMapImpl attributes = null;
-	protected String typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_EMPTY;
-	/** Never access this field directly.  Instead, use getComplexTypeDefinition method. */
-	private ComplexTypeDefinition typeDefinition = null;
-	protected CMGroupImpl inclusion = null;
-	protected CMGroupImpl exclusion = null;
-	// advanced information
-	protected CMNamedNodeMap prohibitedAncestors = null;
-	protected int correctionType = CORRECT_NONE;
-	protected int formatType = FORMAT_HTML;
-	protected int layoutType = LAYOUT_NONE;
-	protected int omitType = OMIT_NONE;
-	protected boolean keepSpaces = false;
-	protected boolean indentChild = false;
-	protected ElementCollection elementCollection = null;
-	protected AttributeCollection attributeCollection = null;
-	protected final static CMNamedNodeMap EMPTY_MAP = new CMNamedNodeMap() {
-		public int getLength() {
-			return 0;
-		}
-
-		public CMNode getNamedItem(String name) {
-			return null;
-		}
-
-		public CMNode item(int index) {
-			return null;
-		}
-
-		public Iterator iterator() {
-			return new Iterator() {
-				public boolean hasNext() {
-					return false;
-				}
-
-				public Object next() {
-					return null;
-				}
-
-				public void remove() {
-				}
-			};
-		}
-	};
-
-	/**
-	 * HTMLElemDeclImpl constructor.
-	 * In the HTML DTD, an element declaration has no specification
-	 * for its occurrence.  Occurrence is specifed in content model, like
-	 * <code>(LI)+</code>.  To avoid confusion (and complexity),
-	 * occurrence of an element declaration is always 1 (it means, min = 1 and
-	 * max = 1).  Instead, occurrence of CMGroup represents actual occurrence
-	 * of the content.
-	 * <br>
-	 * @param name java.lang.String
-	 */
-	public HTMLElemDeclImpl(String elementName, ElementCollection collection) {
-		super(elementName, 1, 1);
-		elementCollection = collection;
-		attributeCollection = collection.getAttributeCollection();
-	}
-
-	/**
-	 */
-	protected abstract void createAttributeDeclarations();
-
-	private ComplexTypeDefinition createComplexTypeDefinition() {
-		if (typeDefinitionName.equals(ComplexTypeDefinitionFactory.CTYPE_CDATA) || typeDefinitionName.equals(ComplexTypeDefinitionFactory.CTYPE_EMPTY) || typeDefinitionName.equals(ComplexTypeDefinitionFactory.CTYPE_PCDATA))
-			return null;
-
-		ComplexTypeDefinitionFactory factory = ComplexTypeDefinitionFactory.getInstance();
-		if (factory == null)
-			return null; // fatal error.
-
-		ComplexTypeDefinition def = factory.createTypeDefinition(typeDefinitionName, elementCollection);
-		return def;
-	}
-
-	/**
-	 * Get an attribute declaration.
-	 */
-	public HTMLAttributeDeclaration getAttributeDeclaration(String attrName) {
-		if (attributes == null) {
-			createAttributeDeclarations();
-			if (attributes == null)
-				return null; // fail to create
-		}
-
-		CMNode cmnode = attributes.getNamedItem(attrName);
-		if (cmnode == null) {
-			return null;
-		}
-		else {
-			return (HTMLAttributeDeclaration) cmnode; // already exists.
-		}
-	}
-
-	/**
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration
-	 */
-	public CMNamedNodeMap getAttributes() {
-		if (attributes == null)
-			createAttributeDeclarations(); // lazy eval.
-		return attributes;
-	}
-
-	/**
-	 * Get an instance of complex type definition.
-	 */
-	private ComplexTypeDefinition getComplexTypeDefinition() {
-		if (typeDefinition == null)
-			typeDefinition = createComplexTypeDefinition();
-		return typeDefinition;
-	}
-
-	/**
-	 * Content.<br>
-	 * Element declarations which type is EMPTY or CDATA (maybe PCDATA)
-	 * <strong>MUST</strong> override this method and always return null.
-	 * This default implementation always tries to create a complex type definition
-	 * instance and access to it.
-	 * <br>
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration
-	 */
-	public CMContent getContent() {
-		ComplexTypeDefinition def = getComplexTypeDefinition(); // lazy eval.
-		return (def != null) ? def.getContent() : null;
-	}
-
-	/**
-	 * Content type.<br>
-	 * Element declarations which type is EMPTY or CDATA (maybe PCDATA)
-	 * <strong>MUST</strong> override this method and return an appropriate type.
-	 * This default implementation always tries to create a complex type definition
-	 * instance and access to it.
-	 * <br>
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration
-	 */
-	public int getContentType() {
-		ComplexTypeDefinition def = getComplexTypeDefinition(); // lazy eval.
-		return (def != null) ? def.getContentType() : CMElementDeclaration.CDATA;
-	}
-
-	/**
-	 * @see HTMLElementDeclaration#getCorrectionType
-	 */
-	public int getCorrectionType() {
-		return correctionType;
-	}
-
-	/**
-	 * HTML element doesn't have any data type.  So, this method always
-	 * returns <code>null</code>.<br>
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration
-	 */
-	public CMDataType getDataType() {
-		return null;
-	}
-
-	/**
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration
-	 */
-	public String getElementName() {
-		return getNodeName();
-	}
-
-	/**
-	 * Exclusion.
-	 * Almost elements don't have a exclusion.
-	 * Only classes those have exclusion should override this method.
-	 */
-	public CMContent getExclusion() {
-		return null;
-	}
-
-	/**
-	 * Default format type is <code>FORMAT_HTML</code>.<br>
-	 */
-	public int getFormatType() {
-		return formatType;
-	}
-
-	/**
-	 * Inclusion.
-	 * Almost elements don't have a inclusion.
-	 * Only classes those have inclusion should override this method.
-	 */
-	public CMContent getInclusion() {
-		return null;
-	}
-
-	/**
-	 */
-	public int getLayoutType() {
-		return layoutType;
-	}
-
-	/**
-	 * Line break hint is strongly related to layout type.
-	 * Indeed, in the C++DOM, it is determined from layout type only.
-	 * So, this implementation, as the default implementation for all declarations,
-	 * also determines from layout type only.<br>
-	 * @return int
-	 */
-	public int getLineBreakHint() {
-		switch (getLayoutType()) {
-			case HTMLElementDeclaration.LAYOUT_BLOCK :
-				return HTMLElementDeclaration.BREAK_BEFORE_START_AND_AFTER_END;
-			case HTMLElementDeclaration.LAYOUT_BREAK :
-				return HTMLElementDeclaration.BREAK_AFTER_START;
-			case HTMLElementDeclaration.LAYOUT_HIDDEN :
-				return HTMLElementDeclaration.BREAK_BEFORE_START_AND_AFTER_END;
-			default :
-				return HTMLElementDeclaration.BREAK_NONE;
-		}
-	}
-
-	/**
-	 * No HTML element has local elements.  So, this method always
-	 * returns an empty map.
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration
-	 */
-	public CMNamedNodeMap getLocalElements() {
-		return EMPTY_MAP;
-	}
-
-	/**
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 */
-	public int getNodeType() {
-		return CMNode.ELEMENT_DECLARATION;
-	}
-
-	/**
-	 */
-	public int getOmitType() {
-		return omitType;
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		return EMPTY_MAP;
-	}
-
-	/**
-	 */
-	public boolean supports(String propertyName) {
-		if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) {
-			return true;
-		}
-		else if (propertyName.equals(HTMLCMProperties.CONTENT_HINT)) {
-			ComplexTypeDefinition def = getComplexTypeDefinition();
-			return (def != null);
-		}
-		else {
-			PropertyProvider pp = PropertyProviderFactory.getProvider(propertyName);
-			if (pp == null)
-				return false;
-			return pp.supports(this);
-		}
-
-	}
-
-	/**
-	 */
-	public Object getProperty(String propertyName) {
-		if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) {
-			return new Boolean(true);
-		}
-		else if (propertyName.equals(HTMLCMProperties.CONTENT_HINT)) {
-			ComplexTypeDefinition def = getComplexTypeDefinition();
-			return (def != null) ? def.getPrimaryCandidate() : null;
-		}
-		else {
-			PropertyProvider pp = PropertyProviderFactory.getProvider(propertyName);
-			if (pp == null)
-				return null;
-			return pp.get(this);
-		}
-	}
-
-	/**
-	 * Return element names which terminates this element.<br>
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return null;
-	}
-
-	/**
-	 * return true when the element is a JSP element.
-	 */
-	public boolean isJSP() {
-		return false;
-	}
-
-	/**
-	 * In some elements, such as APPLET, a source generator should indent child
-	 * elements that their parents.  That is, a source generator should generate
-	 * source  of APPLET and PARAMS like this:
-	 * <PRE>
-	 *   &lt;APPLET ...&gt;
-	 *     &lt;PARAM ... &gt;
-	 *     &lt;PARAM ... &gt;
-	 *   &lt;/APPLET&gt;
-	 * <PRE>
-	 * @return boolean
-	 */
-	public boolean shouldIndentChildSource() {
-		return indentChild;
-	}
-
-	/**
-	 * Most of elements can compact spaces in their child text nodes.
-	 * Some special elements should keep them in their source.
-	 * @return boolean
-	 */
-	public boolean shouldKeepSpaces() {
-		return keepSpaces;
-	}
-
-	/**
-	 * @return boolean
-	 */
-	public boolean shouldTerminateAt(HTMLElementDeclaration nextElement) {
-		Iterator i = getTerminators();
-		if (i == null)
-			return false;
-		String nextName = nextElement.getElementName();
-		while (i.hasNext()) {
-			if (nextName.equals(i.next()))
-				return true;
-		}
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLEntityDeclImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLEntityDeclImpl.java
deleted file mode 100644
index 1a47b01..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLEntityDeclImpl.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
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLEntityDeclaration;
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-
-
-/**
- */
-class HTMLEntityDeclImpl extends CMNodeImpl implements HTMLEntityDeclaration {
-
-	private java.lang.String value = null;
-
-	/**
-	 * CMEntityDeclImpl constructor comment.
-	 * @param entityName java.lang.String; Entity name.
-	 * @param entityValue java.lang.String; Value string.
-	 */
-	public HTMLEntityDeclImpl(String entityName, String entityValue) {
-		super(entityName);
-		value = entityValue;
-	}
-
-	/**
-	 * getName method
-	 * @return java.lang.String
-	 */
-	public String getName() {
-		return getNodeName();
-	}
-
-	/**
-	 * Get CMNode type.<br>
-	 * @return int; Always return ENTITY_DECLARATION.
-	 */
-	public int getNodeType() {
-		return CMNode.ENTITY_DECLARATION;
-	}
-
-	/**
-	 * getValue method
-	 * @return java.lang.String
-	 */
-	public String getValue() {
-		return value;
-	}
-
-	/**
-	 */
-	public boolean supports(String propertyName) {
-		if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE))
-			return true;
-		return super.supports(propertyName);
-	}
-
-	/**
-	 * Entities in HTML documents are always treated with ignoring cases.
-	 * Because no special entities are defined in JSP 1.0, this method
-	 * can always return <code>true</code>.<br>
-	 */
-	public Object getProperty(String propertyName) {
-		if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE))
-			return new Boolean(true);
-		return super.getProperty(propertyName);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedA.java
deleted file mode 100644
index f603c37..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedA.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-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;
-
-/**
- * A.
- */
-final class HedA extends HedInlineContainer {
-
-	/**
-	 */
-	public HedA(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.A, collection);
-		// CORRECT_EMPTY - GROUP_COMPACT
-		correctionType = CORRECT_EMPTY;
-	}
-
-	/**
-	 * %attrs;
-	 * (charset %Charset; #IMPLIED)
-	 * (type %ContentType; #IMPLIED)
-	 * (name CDATA #IMPLIED)
-	 * (href %URI; #IMPLIED)
-	 * (hreflang %LanguageCode; #IMPLIED)
-	 * (target %FrameTarget; #IMPLIED)
-	 * (rel %LinkTypes; #IMPLIED)
-	 * (rev %LinkTypes; #IMPLIED)
-	 * (accesskey %Character; #IMPLIED)
-	 * (directkey %Character; #IMPLIED)
-	 * (shape %Shape; rect)
-	 * (coords %Coords; #IMPLIED)
-	 * (tabindex NUMBER #IMPLIED)
-	 * (onfocus %Script; #IMPLIED)
-	 * (onblur %Script; #IMPLIED) 
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		String[] names = {CHTMLNamespace.ATTR_NAME_NAME, CHTMLNamespace.ATTR_NAME_HREF,};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 * Exclusion.
-	 * <code>A</code> has the exclusion.
-	 * It is <code>A</code> itself.
-	 */
-	public CMContent getExclusion() {
-		if (exclusion != null)
-			return exclusion; // already created.
-		if (elementCollection == null)
-			return null;
-
-		exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-		CMNode a = elementCollection.getNamedItem(CHTMLNamespace.ElementName.A);
-		if (a != null)
-			exclusion.appendChild(a);
-
-		return exclusion;
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {CHTMLNamespace.ElementName.A,};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedADDRESS.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedADDRESS.java
deleted file mode 100644
index 36a72f2..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedADDRESS.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * ADDRESS.
- */
-final class HedADDRESS extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedADDRESS(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.ADDRESS, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_ADDRESS;
-		correctionType = CORRECT_EMPTY;
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * %attrs;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBASE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBASE.java
deleted file mode 100644
index f33abe0..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBASE.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-/**
- * BASE.
- */
-final class HedBASE extends HedEmpty {
-
-	/**
-	 */
-	public HedBASE(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.BASE, collection);
-		// LAYOUT_HIDDEN.
-		// Because, BASE is GROUP_HIDDEN in the C++DOM/DTDParser.cpp.
-		layoutType = LAYOUT_HIDDEN;
-	}
-
-	/**
-	 * BASE.
-	 * (href %URI; #IMPLIED)
-	 * (target %FrameTarget; #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		String[] names = {CHTMLNamespace.ATTR_NAME_HREF,};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBLOCKQUOTE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBLOCKQUOTE.java
deleted file mode 100644
index 5aef97b..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBLOCKQUOTE.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * BLOCKQUOTE.
- */
-final class HedBLOCKQUOTE extends HedFlowContainer {
-
-	/**
-	 */
-	public HedBLOCKQUOTE(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.BLOCKQUOTE, collection);
-		correctionType = CORRECT_EMPTY;
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * %attrs;
-	 * (cite %URI; #IMPLIED) 
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBODY.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBODY.java
deleted file mode 100644
index 7483c58..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBODY.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-/**
- * BODY.
- */
-final class HedBODY extends HedFlowContainer {
-
-	private static String[] terminators = {CHTMLNamespace.ElementName.HEAD, CHTMLNamespace.ElementName.BODY, CHTMLNamespace.ElementName.HTML};
-
-	/**
-	 */
-	public HedBODY(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.BODY, collection);
-		layoutType = LAYOUT_BLOCK;
-		omitType = OMIT_BOTH;
-	}
-
-	/**
-	 * %attrs;
-	 * %bodycolors;
-	 * (onload %Script; #IMPLIED)
-	 * (onunload %Script; #IMPLIED)
-	 * (background %URI; #IMPLIED)
-	 * (marginwidth %Pixels; #IMPLIED) ... D205514
-	 * (marginheight %Pixels; #IMPLIED) .. D205514
-	 * (topmargin, CDATA, #IMPLIED) ...... D205514
-	 * (bottommargin, CDATA, #IMPLIED) ... D205514
-	 * (leftmargin, CDATA, #IMPLIED) ..... D205514
-	 * (rightmargin, CDATA, #IMPLIED) .... D205514
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-		// %bodycolors;
-		attributeCollection.getBodycolors(attributes);
-
-	}
-
-	/**
-	 * BODY has terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return Arrays.asList(terminators).iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBR.java
deleted file mode 100644
index 3ec16f5..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBR.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLAttributeDeclaration;
-
-
-
-/**
- * BR.
- */
-final class HedBR extends HedEmpty {
-
-	/**
-	 */
-	public HedBR(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.BR, collection);
-		// LAYOUT_BREAK.
-		// Because, BR is GROUP_BREAK in the C++DOM/DTDParser.cpp.
-		layoutType = LAYOUT_BREAK;
-	}
-
-	/**
-	 * BR.
-	 * %coreattrs;
-	 * (clear (left | all | right | none) none)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %coreattrs;
-		attributeCollection.getCore(attributes);
-		// clear
-		HTMLAttributeDeclaration attr = attributeCollection.getDeclaration(CHTMLNamespace.ATTR_NAME_CLEAR);
-		if (attr != null)
-			attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_CLEAR, attr);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedCENTER.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedCENTER.java
deleted file mode 100644
index 7693933..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedCENTER.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * CENTER.
- */
-final class HedCENTER extends HedFlowContainer {
-
-	/**
-	 */
-	public HedCENTER(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.CENTER, collection);
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * %attrs;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDD.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDD.java
deleted file mode 100644
index dd70e26..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDD.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-/**
- * DD.
- */
-final class HedDD extends HedFlowContainer {
-
-	private static String[] terminators = {CHTMLNamespace.ElementName.DT, CHTMLNamespace.ElementName.DD};
-
-	/**
-	 */
-	public HedDD(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.DD, collection);
-		correctionType = CORRECT_EMPTY;
-		layoutType = LAYOUT_BLOCK;
-		omitType = OMIT_END_DEFAULT;
-	}
-
-	/**
-	 * %attrs;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-	}
-
-	/**
-	 * DD has terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return Arrays.asList(terminators).iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDIV.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDIV.java
deleted file mode 100644
index 8e2d794..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDIV.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.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * DIV.
- */
-final class HedDIV extends HedFlowContainer {
-
-	/**
-	 */
-	public HedDIV(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.DIV, collection);
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * %attrs;
-	 * %align;
-	 * %reserved;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-		// %align;
-		HTMLAttrDeclImpl attr = AttributeCollection.createAlignForParagraph();
-		if (attr != null)
-			attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_ALIGN, attr);
-		// %reserved; ... empty
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDL.java
deleted file mode 100644
index 1746bb2..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDL.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * DL.
- */
-final class HedDL extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedDL(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.DL, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_DEFINITION_LIST;
-		correctionType = CORRECT_EMPTY;
-		layoutType = LAYOUT_BLOCK;
-		indentChild = true;
-	}
-
-	/**
-	 * %arrays;
-	 * (compact (compact) #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDT.java
deleted file mode 100644
index 933d877..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDT.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-/**
- * DT.
- */
-final class HedDT extends HedInlineContainer {
-
-	private static String[] terminators = {CHTMLNamespace.ElementName.DT, CHTMLNamespace.ElementName.DD};
-
-	/**
-	 */
-	public HedDT(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.DT, collection);
-		correctionType = CORRECT_EMPTY;
-		layoutType = LAYOUT_BLOCK;
-		omitType = OMIT_END_DEFAULT;
-	}
-
-	/**
-	 * %attrs;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-	}
-
-	/**
-	 * DT has terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return Arrays.asList(terminators).iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedEmpty.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedEmpty.java
deleted file mode 100644
index c6de6e0..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedEmpty.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
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-
-/**
- * Base class for EMPTY type element declarations.
- */
-abstract class HedEmpty extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedEmpty(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_EMPTY;
-		// EMPTY type has no end tag.
-		omitType = OMIT_END_MUST;
-	}
-
-	/**
-	 * Content.<br>
-	 * EMPTY type always returns <code>null</code>.
-	 * <br>
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMContent
-	 */
-	public CMContent getContent() {
-		return null;
-	}
-
-	/**
-	 * Content type.<br>
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.EMPTY;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFORM.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFORM.java
deleted file mode 100644
index 090d61a..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFORM.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-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;
-
-/**
- * FORM.
- */
-final class HedFORM extends HedFlowContainer {
-
-	/**
-	 */
-	public HedFORM(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.FORM, collection);
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * %attrs;
-	 * (action %URI; #REQUIRED)
-	 * (method (GET|POST) GET)
-	 * (enctype %ContentType; "application/x-www-form-urlencoded")
-	 * (accept %ContentTypes; #IMPLIED)
-	 * (name CDATA #IMPLIED)
-	 * (onsubmit %Script; #IMPLIED)
-	 * (onreset %Script; #IMPLIED)
-	 * (target %FrameTarget; #IMPLIED)
-	 * (accept-charset %Charsets; #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		String[] names = {CHTMLNamespace.ATTR_NAME_ACTION, CHTMLNamespace.ATTR_NAME_METHOD, CHTMLNamespace.ATTR_NAME_ENCTYPE, CHTMLNamespace.ATTR_NAME_NAME,};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 * Exclusion.
-	 * <code>FORM</code> has the exclusion.
-	 * It is <code>FORM</code> itself.
-	 */
-	public CMContent getExclusion() {
-		if (exclusion != null)
-			return exclusion; // already created.
-		if (elementCollection == null)
-			return null; // fatal
-
-		exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-		CMNode form = elementCollection.getNamedItem(CHTMLNamespace.ElementName.FORM);
-		if (form != null)
-			exclusion.appendChild(form);
-
-		return exclusion;
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.FORM, CHTMLNamespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFlowContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFlowContainer.java
deleted file mode 100644
index 8c48416..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFlowContainer.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-/**
- * Base class for (%flow;)* containers.
- */
-abstract class HedFlowContainer extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedFlowContainer(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_FLOW_CONTAINER;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHEAD.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHEAD.java
deleted file mode 100644
index e8ef6f9..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHEAD.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-/**
- * HTML.
- */
-final class HedHEAD extends HTMLElemDeclImpl {
-
-	private static String[] terminators = {CHTMLNamespace.ElementName.HEAD, CHTMLNamespace.ElementName.BODY, CHTMLNamespace.ElementName.HTML};
-
-	/**
-	 */
-	public HedHEAD(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.HEAD, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_HEAD;
-		layoutType = LAYOUT_HIDDEN;
-		omitType = OMIT_BOTH;
-	}
-
-	/**
-	 * Create all attribute declarations.
-	 * This method is called once in the constructor of the super class.
-	 * The <code>HEAD</code> element may have the following attributes:
-	 * <table>
-	 * <tbody>
-	 *   <tr>
-	 *     <th>NAME</th><th>TYPE</th><th>USAGE</th><th>DEFAULT (INITIAL) VALUE</th><th>MEMO</th>
-	 *   </tr>
-	 *   <tr>
-	 *     <td>%i18n;</td><td>-</td><td>-</td><td>-</td><td>-</td>
-	 *   </tr>
-	 *   <tr>
-	 *     <td>profile</td><td>URI</td><td>#IMPLIED</td><td>N/A</td><td>-</td>
-	 *   </tr>
-	 * </tbody>
-	 * </table>
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %i18n;
-		attributeCollection.getI18n(attributes);
-	}
-
-	/**
-	 * HEAD has terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return Arrays.asList(terminators).iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHR.java
deleted file mode 100644
index 732d095..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHR.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * HR.
- */
-final class HedHR extends HedEmpty {
-
-	/**
-	 */
-	public HedHR(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.HR, collection);
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * %attrs
-	 * (align (left|center|right) #IMPLIED) ... should be defined locally.
-	 * (noshade (noshade) #IMPLIED)
-	 * (size %Pixels; #IMPLIED)
-	 * (width %Length; #IMPLIED)
-	 * (color %Color; #IMPLIED) ... D205514
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		// (align (left|center|right) #IMPLIED) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-		String[] values = {CHTMLNamespace.ATTR_VALUE_LEFT, CHTMLNamespace.ATTR_VALUE_CENTER, CHTMLNamespace.ATTR_VALUE_RIGHT};
-		atype.setEnumValues(values);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(CHTMLNamespace.ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_ALIGN, attr);
-
-		// the rest.
-		String[] names = {CHTMLNamespace.ATTR_NAME_NOSHADE, CHTMLNamespace.ATTR_NAME_SIZE, CHTMLNamespace.ATTR_NAME_WIDTH,};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHTML.java
deleted file mode 100644
index 36c2e4a..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHTML.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLAttributeDeclaration;
-
-
-/**
- * HTML.
- */
-final class HedHTML extends HTMLElemDeclImpl {
-
-	private static String[] terminators = {CHTMLNamespace.ElementName.HTML};
-
-	/**
-	 */
-	public HedHTML(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.HTML, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_HTML;
-		layoutType = LAYOUT_HIDDEN;
-		omitType = OMIT_BOTH;
-	}
-
-	/**
-	 * Create all attribute declarations.
-	 * This method is called once in the constructor of the super class.
-	 * The <code>HTML</code> element may have the following attributes:
-	 * <table>
-	 * <tbody>
-	 *   <tr>
-	 *     <th>NAME</th><th>TYPE</th><th>USAGE</th><th>DEFAULT (INITIAL) VALUE</th><th>MEMO</th>
-	 *   </tr>
-	 *   <tr>
-	 *     <td><code>%i18n;</code></td><td>-</td><td>-</td><td>-</td>
-	 *     <td>{@link PDCMDocImpl#getAttrDeclarationsI18n}</td>
-	 *   </tr>
-	 *   <tr>
-	 *     <td>version</td><td>CDATA</td><td>#FIXED</td>
-	 *     <td>{@link HTML_VERSION_TRANSITIONAL}</td><td>deplecated in HTML4.01</td>
-	 *   </tr>
-	 * </tbody>
-	 * </table><br>
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %i18n;
-		attributeCollection.getI18n(attributes);
-		// version
-		HTMLAttributeDeclaration adec = attributeCollection.getDeclaration(CHTMLNamespace.ATTR_NAME_VERSION);
-		if (adec != null)
-			attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_VERSION, adec);
-	}
-
-	/**
-	 * HTML has terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return Arrays.asList(terminators).iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHeading.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHeading.java
deleted file mode 100644
index af3be37..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHeading.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * H[1-6].
- */
-final class HedHeading extends HedInlineContainer {
-
-	/**
-	 */
-	public HedHeading(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-		correctionType = CORRECT_EMPTY;
-		layoutType = LAYOUT_BLOCK;
-	}
-
-	/**
-	 * Create all attribute declarations.
-	 * This method is called once in the constructor of the super class.
-	 * The <code>H1</code> element may have the following attributes:
-	 * <table>
-	 * <tbody>
-	 *   <tr>
-	 *     <th>NAME</th><th>TYPE</th><th>USAGE</th><th>DEFAULT (INITIAL) VALUE</th><th>MEMO</th>
-	 *   </tr>
-	 *   <tr>
-	 *     <td>%attrs;</td><td>-</td><td>-</td><td>-</td><td>-</td>
-	 *   </tr>
-	 *   <tr>
-	 *     <td>%align;</td><td>-</td><td>-</td><td>-</td><td>-</td>
-	 *   </tr>
-	 * </tbody>
-	 * </table>
-	 * <p><b>%align;</b> means <code>align (left|center|right|justify) #IMPLIED</code>.
-	 * Unfortunately, this <code>align</code> is different from one in
-	 * <code>IMG</code> or <code>TABLE</code>.  So, the attribute declaration
-	 * of <code>align</code> should be localy created and it shouldn't be registered
-	 * in a <code>HCMDocImpl</code> instance.</p>
-	 * <p>However, %align is used in sevaral times.  I wouldn't write same code
-	 * in many times.  So, I add a new utility method into <code>CMUtil</code>
-	 * to create the attribute declaration.</p>
-	 * <br>
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-		// align
-		HTMLAttrDeclImpl attr = AttributeCollection.createAlignForParagraph();
-		if (attr != null)
-			attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_ALIGN, attr);
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedIMG.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedIMG.java
deleted file mode 100644
index e8454e2..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedIMG.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * IMG.
- */
-final class HedIMG extends HedEmpty {
-
-	/**
-	 */
-	public HedIMG(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.IMG, collection);
-		layoutType = LAYOUT_OBJECT;
-	}
-
-	/**
-	 * IMG.
-	 * %attrs;
-	 * (src %URI; #REQUIRED): should be defined locally.
-	 * (alt %Text; #REQUIRED)
-	 * (longdesc %URI; #IMPLIED)
-	 * (name CDATA #IMPLIED)
-	 * (height %Length; #IMPLIED)
-	 * (width %Length; #IMPLIED)
-	 * (usemap %URI; #IMPLIED)
-	 * (ismap (ismap) #IMPLIED)
-	 * (align %IAlign; #IMPLIED): should be defined locally.
-	 * (border %Pixels; #IMPLIED)
-	 * (hspace %Pixels; #IMPLIED)
-	 * (vspace %Pixels; #IMPLIED)
-	 * (mapfile %URI; #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		// (src %URI; #REQUIRED): should be defined locally.
-		HTMLCMDataTypeImpl atype = null;
-		HTMLAttrDeclImpl attr = null;
-		atype = new HTMLCMDataTypeImpl(CMDataType.URI);
-		attr = new HTMLAttrDeclImpl(CHTMLNamespace.ATTR_NAME_SRC, atype, CMAttributeDeclaration.REQUIRED);
-		attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_SRC, attr);
-
-		String[] names = {CHTMLNamespace.ATTR_NAME_ALT, CHTMLNamespace.ATTR_NAME_NAME, CHTMLNamespace.ATTR_NAME_HEIGHT, CHTMLNamespace.ATTR_NAME_WIDTH, CHTMLNamespace.ATTR_NAME_BORDER, CHTMLNamespace.ATTR_NAME_HSPACE, CHTMLNamespace.ATTR_NAME_VSPACE,};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-
-		// align (local); should be defined locally.
-		attr = AttributeCollection.createAlignForImage();
-		attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_ALIGN, attr);
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {CHTMLNamespace.ElementName.PRE};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedINPUT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedINPUT.java
deleted file mode 100644
index 29acb3a..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedINPUT.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.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-
-/**
- * INPUT.
- */
-final class HedINPUT extends HedEmpty {
-
-	/**
-	 */
-	public HedINPUT(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.INPUT, collection);
-		layoutType = LAYOUT_OBJECT;
-	}
-
-	/**
-	 * INPUT.
-	 * %attrs;
-	 * (type %InputType; TEXT) ... should be defined locally.
-	 * (name CDATA #IMPLIED)
-	 * (value CDATA #IMPLIED)
-	 * (checked (checked) #IMPLIED)
-	 * (disabled (disabled) #IMPLIED)
-	 * (readonly (readonly) #IMPLIED)
-	 * (size CDATA #IMPLIED) ... should be defined locally.
-	 * (maxlength NUMBER #IMPLIED)
-	 * (src %URI; #IMPLIED)
-	 * (alt CDATA #IMPLIED) ... should be defined locally.
-	 * (usemap %URI; #IMPLIED)
-	 * (ismap (ismap) #IMPLIED)
-	 * (tabindex NUMBER #IMPLIED)
-	 * (accesskey %Character; #IMPLIED)
-	 * (onfocus %Script; #IMPLIED)
-	 * (onblur %Script; #IMPLIED)
-	 * (onselect %Script; #IMPLIED)
-	 * (onchange %Script; #IMPLIED)
-	 * (accept %ContentTypes; #IMPLIED)
-	 * (align %IAlign; #IMPLIED) ... should be defined locally.
-	 * (istyle CDATA #IMPLIED)
-	 * <<D215684
-	 * (width CDATA; #IMPLIED)
-	 * (height CDATA; #IMPLIED)
-	 * (border CDATA; #IMPLIED)
-	 * D215684
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		HTMLCMDataTypeImpl atype = null;
-		HTMLAttrDeclImpl attr = null;
-		// (type %InputType; TEXT) ... should be defined locally.
-		// NOTE: %InputType is ENUM;
-		// (text | password | checkbox | radio | submit | reset |
-		//  file | hidden | image | button)
-		atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
-		String[] values = {CHTMLNamespace.ATTR_VALUE_TEXT, CHTMLNamespace.ATTR_VALUE_PASSWORD, CHTMLNamespace.ATTR_VALUE_CHECKBOX, CHTMLNamespace.ATTR_VALUE_RADIO, CHTMLNamespace.ATTR_VALUE_SUBMIT, CHTMLNamespace.ATTR_VALUE_RESET, CHTMLNamespace.ATTR_VALUE_HIDDEN,};
-		atype.setEnumValues(values);
-		atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, CHTMLNamespace.ATTR_VALUE_TEXT);
-		attr = new HTMLAttrDeclImpl(CHTMLNamespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_TYPE, attr);
-
-		// (size CDATA #IMPLIED) ... should be defined locally.
-		atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-		attr = new HTMLAttrDeclImpl(CHTMLNamespace.ATTR_NAME_SIZE, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_SIZE, attr);
-
-		// (alt CDATA #IMPLIED) ... should be defined locally.
-		atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-		attr = new HTMLAttrDeclImpl(CHTMLNamespace.ATTR_NAME_ALT, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_ALT, attr);
-
-		// (align %IAlign; #IMPLIED) ... should be defined locally.
-		attr = AttributeCollection.createAlignForImage();
-		attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_ALIGN, attr);
-
-		// the rest.
-		String[] names = {CHTMLNamespace.ATTR_NAME_NAME, CHTMLNamespace.ATTR_NAME_VALUE, CHTMLNamespace.ATTR_NAME_CHECKED, CHTMLNamespace.ATTR_NAME_SIZE, CHTMLNamespace.ATTR_NAME_MAXLENGTH, CHTMLNamespace.ATTR_NAME_SRC, CHTMLNamespace.ATTR_NAME_ALT, CHTMLNamespace.ATTR_NAME_ALIGN, CHTMLNamespace.ATTR_NAME_ISTYLE,
-		//<<D215684
-					CHTMLNamespace.ATTR_NAME_WIDTH, CHTMLNamespace.ATTR_NAME_HEIGHT, CHTMLNamespace.ATTR_NAME_BORDER
-		//<D215684
-		};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedInlineContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedInlineContainer.java
deleted file mode 100644
index dbd4bc9..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedInlineContainer.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-/**
- * Base class for (%inline;)* containers.
- */
-abstract class HedInlineContainer extends HTMLElemDeclImpl {
-
-	/**
-	 * HedInlineContainer.
-	 * @param elementName java.lang.String
-	 * @param collection ElementCollection
-	 */
-	public HedInlineContainer(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_INLINE_CONTAINER;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedLI.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedLI.java
deleted file mode 100644
index ea1f4a6..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedLI.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.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-/**
- * LI.
- */
-final class HedLI extends HedFlowContainer {
-
-	private static String[] terminators = {CHTMLNamespace.ElementName.LI};
-
-	/**
-	 */
-	public HedLI(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.LI, collection);
-		layoutType = LAYOUT_BLOCK;
-		omitType = OMIT_END_DEFAULT;
-	}
-
-	/**
-	 * %attrs;
-	 * (type %LIStyle; #IMPLIED) ... should be defined locally.
-	 * (value NUMBER #IMPLIED) ... should be defined locally.
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-	}
-
-	/**
-	 * LI has terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return Arrays.asList(terminators).iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedListItemContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedListItemContainer.java
deleted file mode 100644
index 1f35e93..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedListItemContainer.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.wst.html.core.internal.contentmodel.chtml;
-
-
-
-/**
- * Base class for list item container declarations.
- * - OL, UL, MENU, DIR.
- */
-abstract class HedListItemContainer extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedListItemContainer(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_LI_CONTAINER;
-		correctionType = CORRECT_EMPTY;
-		layoutType = LAYOUT_BLOCK;
-		indentChild = true;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMENU.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMENU.java
deleted file mode 100644
index c0f0e83..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMENU.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * MENU/DIR.
- */
-final class HedMENU extends HedListItemContainer {
-
-	/**
-	 */
-	public HedMENU(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-	}
-
-	/**
-	 * MENU/DIR.
-	 * (compact (compact) #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-	}
-
-	/**
-	 * Exclusion.
-	 * <code>MENU/DIR</code> has the exclusion.
-	 * It is <code>%block;</code>.
-	 * %block; is:
-	 * P | %heading; | %list; | %preformatted; | DL | DIV | CENTER |
-	 * NOSCRIPT | NOFRAMES | BLOCKQUOTE | FORM | ISINDEX | HR |
-	 * TABLE | FIELDSET | ADDRESS.
-	 * %heading; is: H1 | H2 | H3 | H4 | H5 | H6.
-	 * %list; is : UL | OL | DIR | MENU.
-	 * %preformatted; is PRE.
-	 * <br>
-	 */
-	public CMContent getExclusion() {
-		if (exclusion != null)
-			return exclusion; // already created.
-		if (elementCollection == null)
-			return null;
-
-		// %block;
-		exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-		String[] names = {CHTMLNamespace.ElementName.P, CHTMLNamespace.ElementName.H1, CHTMLNamespace.ElementName.H2, CHTMLNamespace.ElementName.H3, CHTMLNamespace.ElementName.H4, CHTMLNamespace.ElementName.H5, CHTMLNamespace.ElementName.H6, CHTMLNamespace.ElementName.UL, CHTMLNamespace.ElementName.OL, CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU, CHTMLNamespace.ElementName.PRE, CHTMLNamespace.ElementName.DL, CHTMLNamespace.ElementName.DIV, CHTMLNamespace.ElementName.CENTER, CHTMLNamespace.ElementName.BLOCKQUOTE, CHTMLNamespace.ElementName.FORM, CHTMLNamespace.ElementName.HR, CHTMLNamespace.ElementName.ADDRESS};
-		elementCollection.getDeclarations(exclusion, Arrays.asList(names).iterator());
-		return exclusion;
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMETA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMETA.java
deleted file mode 100644
index 172a6fb..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMETA.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-
-/**
- * META.
- */
-final class HedMETA extends HedEmpty {
-
-	/**
-	 */
-	public HedMETA(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.META, collection);
-		layoutType = LAYOUT_HIDDEN;
-	}
-
-	/**
-	 * META.
-	 * %i18n;
-	 * (http-equiv NAME #IMPLIED)
-	 * (name NAME #IMPLIED) ... should be defined locally.
-	 * (content CDATA #REQUIRED)
-	 * (scheme CDATA #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %i18n;
-		attributeCollection.getI18n(attributes);
-
-		// (name NAME #IMPLIED) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.NAME);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(CHTMLNamespace.ATTR_NAME_NAME, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_NAME, attr);
-
-		// 249493
-		atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
-		attr = new HTMLAttrDeclImpl(CHTMLNamespace.ATTR_NAME_CONTENT, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_CONTENT, attr);
-
-		String[] names = {CHTMLNamespace.ATTR_NAME_HTTP_EQUIV,
-		//		CHTMLNamespace.ATTR_NAME_CONTENT
-		};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOL.java
deleted file mode 100644
index 7e801d2..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOL.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.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * OL.
- */
-final class HedOL extends HedListItemContainer {
-
-	/**
-	 */
-	public HedOL(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.OL, collection);
-	}
-
-	/**
-	 * OL.
-	 * (type %OLStyle; #IMPLIED) ... should be defined locally.
-	 * (compact (compact) #IMPLIED)
-	 * (start NUMBER #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOPTION.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOPTION.java
deleted file mode 100644
index 6df202d..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOPTION.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.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-/**
- * OPTION.
- */
-final class HedOPTION extends HedPcdata {
-
-	private static String[] terminators = {CHTMLNamespace.ElementName.OPTION};
-
-	/**
-	 */
-	public HedOPTION(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.OPTION, collection);
-		layoutType = LAYOUT_HIDDEN;
-		omitType = OMIT_END;
-	}
-
-	/**
-	 * OPTION.
-	 * %attrs;
-	 * (selected (selected) #IMPLIED)
-	 * (disabled (disabled) #IMPLIED)
-	 * (label %Text; #IMPLIED)
-	 * (value CDATA #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		String[] names = {CHTMLNamespace.ATTR_NAME_SELECTED, CHTMLNamespace.ATTR_NAME_VALUE};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-
-	/**
-	 * OPTION has terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		return Arrays.asList(terminators).iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedP.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedP.java
deleted file mode 100644
index a92e091..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedP.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Vector;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * P.
- */
-final class HedP extends HedInlineContainer {
-
-	private static Collection terminators = null;
-
-	/**
-	 */
-	public HedP(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.P, collection);
-		correctionType = CORRECT_EMPTY;
-		layoutType = LAYOUT_BLOCK;
-		omitType = OMIT_END;
-	}
-
-	/**
-	 * Create all attribute declarations.
-	 * This method is called once in the constructor of the super class.
-	 * The <code>P</code> element may have the following attributes:
-	 * <table>
-	 * <tbody>
-	 *   <tr>
-	 *     <th>NAME</th><th>TYPE</th><th>USAGE</th><th>DEFAULT (INITIAL) VALUE</th><th>MEMO</th>
-	 *   </tr>
-	 *   <tr>
-	 *     <td>%attrs;</td><td>-</td><td>-</td><td>-</td><td>-</td>
-	 *   </tr>
-	 *   <tr>
-	 *     <td>%align;</td><td>-</td><td>-</td><td>-</td><td>-</td>
-	 *   </tr>
-	 * </tbody>
-	 * </table>
-	 * <p><b>%align;</b> means <code>align (left|center|right|justify) #IMPLIED</code>.
-	 * Unfortunately, this <code>align</code> is different from one in
-	 * <code>IMG</code> or <code>TABLE</code>.  So, the attribute declaration
-	 * of <code>align</code> should be localy created and it shouldn't be registered
-	 * in a <code>HCMDocImpl</code> instance.</p>
-	 * <p>However, %align is used in sevaral times.  I wouldn't write same code
-	 * in many times.  So, I add a new utility method into <code>CMUtil</code>
-	 * to create the attribute declaration.</p>
-	 * <br>
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-		attributes = new CMNamedNodeMapImpl();
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-		// align
-		HTMLAttrDeclImpl adec = AttributeCollection.createAlignForParagraph();
-		attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_ALIGN, adec);
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-		String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-		return prohibitedAncestors;
-	}
-
-	/**
-	 * Return names of terminators.
-	 * <code>P</code> has terminators.
-	 * @return java.util.Iterator
-	 */
-	protected Iterator getTerminators() {
-		if (terminators != null)
-			return terminators.iterator();
-		//<<D217982
-		terminators = new Vector();
-		terminators.addAll(elementCollection.getNamesOfBlock());
-		terminators.add(CHTMLNamespace.ElementName.LI);
-		terminators.add(CHTMLNamespace.ElementName.DT);
-		terminators.add(CHTMLNamespace.ElementName.DD);
-		//D217982
-		return terminators.iterator();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPRE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPRE.java
deleted file mode 100644
index 02f5353..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPRE.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * PRE.
- */
-final class HedPRE extends HedInlineContainer {
-
-	/**
-	 * PRE element should keep spaces in its source.
-	 */
-	public HedPRE(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.PRE, collection);
-		// CORRECT_EMPTY - GROUP_COMPACT
-		correctionType = CORRECT_EMPTY;
-
-		keepSpaces = true;
-	}
-
-	/**
-	 * %attrs;
-	 * (width NUMBER #IMPLIED) ... should be defined locally.
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-		// (width NUMBER #IMPLIED) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(CHTMLNamespace.ATTR_NAME_WIDTH, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_WIDTH, attr);
-	}
-
-	/**
-	 * Exclusion.
-	 * <code>PRE</code> has the exclusion.
-	 * It is <code>%pre.exclusion;</code>.
-	 * %pre.exclusion is:
-	 * IMG | OBJECT | APPLET | BIG | SMALL | SUB | SUP | FONT | BASEFONT
-	 */
-	public CMContent getExclusion() {
-		if (exclusion != null)
-			return exclusion; // already created.
-		if (elementCollection == null)
-			return null;
-
-		exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-		String[] names = {CHTMLNamespace.ElementName.IMG,};
-		elementCollection.getDeclarations(exclusion, Arrays.asList(names).iterator());
-
-		return exclusion;
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPcdata.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPcdata.java
deleted file mode 100644
index 6490df0..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPcdata.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-
-/**
- * Base class for PCDATA type element declarations.<br>
- */
-abstract class HedPcdata extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedPcdata(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_PCDATA;
-	}
-
-	/**
-	 * Content.<br>
-	 * PCDATA type always returns <code>null</code>.
-	 * <br>
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMContent
-	 */
-	public CMContent getContent() {
-		return null;
-	}
-
-	/**
-	 * Content type.<br>
-	 * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration
-	 */
-	public int getContentType() {
-		return CMElementDeclaration.PCDATA;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSELECT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSELECT.java
deleted file mode 100644
index db036f7..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSELECT.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-
-/**
- * SELECT.
- */
-final class HedSELECT extends HTMLElemDeclImpl {
-
-	/**
-	 */
-	public HedSELECT(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.SELECT, collection);
-		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_SELECT;
-		layoutType = LAYOUT_OBJECT;
-		indentChild = true;
-	}
-
-	/**
-	 * %attrs;
-	 * %reserved;
-	 * (name CDATA #IMPLIED)
-	 * (size NUMBER #IMPLIED) ... should be defined locally.
-	 * (multiple (multiple) #IMPLIED)
-	 * (disabled (disabled) #IMPLIED)
-	 * (tabindex NUMBER #IMPLIED)
-	 * (onfocus %Script; #IMPLIED)
-	 * (onblur %Script; #IMPLIED)
-	 * (onchange %Script; #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		// (size NUMBER #IMPLIED) ... should be defined locally.
-		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
-		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(CHTMLNamespace.ATTR_NAME_SIZE, atype, CMAttributeDeclaration.OPTIONAL);
-		attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_SIZE, attr);
-
-		String[] names = {CHTMLNamespace.ATTR_NAME_NAME, CHTMLNamespace.ATTR_NAME_MULTIPLE,};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIBase.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIBase.java
deleted file mode 100644
index fddb04d..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIBase.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration;
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-
-
-
-
-/**
- * Base class for SSI declarations.
- */
-abstract class HedSSIBase extends HedEmpty {
-
-	/**
-	 */
-	public HedSSIBase(String elementName, ElementCollection collection) {
-		super(elementName, collection);
-		layoutType = LAYOUT_OBJECT;
-	}
-
-	/**
-	 */
-	public int getFormatType() {
-		return HTMLElementDeclaration.FORMAT_SSI;
-	}
-
-	/**
-	 */
-	public boolean supports(String propName) {
-		if (propName.equals(HTMLCMProperties.IS_SSI))
-			return true;
-		return super.supports(propName);
-	}
-
-	/*
-	 */
-	public Object getProperty(String propName) {
-		if (propName.equals(HTMLCMProperties.IS_SSI))
-			return new Boolean(true);
-		return super.getProperty(propName);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIConfig.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIConfig.java
deleted file mode 100644
index 3b52b06..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIConfig.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.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-/**
- * SSI:CONFIG.
- */
-final class HedSSIConfig extends HedSSIBase {
-
-	/**
-	 */
-	public HedSSIConfig(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.SSI_CONFIG, collection);
-	}
-
-	/**
-	 * SSI:CONFIG.
-	 * (errmsg CDATA #IMPLIED)
-	 * (sizefmt CDATA #IMPLIED)
-	 * (timefmt CDATA #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		String[] names = {CHTMLNamespace.ATTR_NAME_ERRMSG, CHTMLNamespace.ATTR_NAME_SIZEFMT, CHTMLNamespace.ATTR_NAME_TIMEFMT};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIEcho.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIEcho.java
deleted file mode 100644
index 9d1b226..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIEcho.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-/**
- * SSI:ECHO.
- */
-final class HedSSIEcho extends HedSSIBase {
-
-	/**
-	 */
-	public HedSSIEcho(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.SSI_ECHO, collection);
-	}
-
-	/**
-	 * SSI:ECHO
-	 * (var CDATA #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		String[] names = {CHTMLNamespace.ATTR_NAME_VAR};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIExec.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIExec.java
deleted file mode 100644
index 26ad58e..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIExec.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-/**
- * SSI:EXEC.
- */
-final class HedSSIExec extends HedSSIBase {
-
-	/**
-	 */
-	public HedSSIExec(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.SSI_EXEC, collection);
-	}
-
-	/**
-	 * SSI:EXEC
-	 * (cgi %URI; #IMPLIED)
-	 * (cmd CDATA #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		String[] names = {CHTMLNamespace.ATTR_NAME_CGI, CHTMLNamespace.ATTR_NAME_CMD};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFlastmod.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFlastmod.java
deleted file mode 100644
index 5a0cb73..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFlastmod.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-/**
- * SSI:FLASTMOD.
- */
-final class HedSSIFlastmod extends HedSSIBase {
-
-	/**
-	 */
-	public HedSSIFlastmod(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.SSI_FLASTMOD, collection);
-	}
-
-	/**
-	 * SSI:FLASTMOD
-	 * (file %URI; #IMPLIED)
-	 * (virtual %URI #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		String[] names = {CHTMLNamespace.ATTR_NAME_FILE, CHTMLNamespace.ATTR_NAME_VIRTUAL};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFsize.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFsize.java
deleted file mode 100644
index c56f282..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFsize.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-/**
- * SSI:FSIZE.
- */
-final class HedSSIFsize extends HedSSIBase {
-
-	/**
-	 */
-	public HedSSIFsize(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.SSI_FSIZE, collection);
-	}
-
-	/**
-	 * SSI:FSIZE
-	 * (file %URI; #IMPLIED)
-	 * (virtual %URI #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		String[] names = {CHTMLNamespace.ATTR_NAME_FILE, CHTMLNamespace.ATTR_NAME_VIRTUAL};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIInclude.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIInclude.java
deleted file mode 100644
index 220f726..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIInclude.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-/**
- * SSI:INCLUDE.
- */
-final class HedSSIInclude extends HedSSIBase {
-
-	/**
-	 */
-	public HedSSIInclude(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.SSI_INCLUDE, collection);
-	}
-
-	/**
-	 * SSI:INCLUDE
-	 * (file %URI; #IMPLIED)
-	 * (virtual %URI #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		String[] names = {CHTMLNamespace.ATTR_NAME_FILE, CHTMLNamespace.ATTR_NAME_VIRTUAL};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIPrintenv.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIPrintenv.java
deleted file mode 100644
index 6860996..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIPrintenv.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * SSI:PRINTENV.
- */
-final class HedSSIPrintenv extends HedSSIBase {
-
-	/**
-	 */
-	public HedSSIPrintenv(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.SSI_PRINTENV, collection);
-	}
-
-	/**
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-	}
-
-	/**
-	 * SSI:PRINTENV has no attributes.  So, this method should
-	 * always return <code>null</code>.
-	 * Note: Since somebody doesn't expect null is returned, return the empty attribute
-	 * like a custom tag which doesn't have attributes
-	 */
-	public CMNamedNodeMap getAttributes() {
-		return super.getAttributes();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSISet.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSISet.java
deleted file mode 100644
index d447488..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSISet.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-/**
- * SSI:SET.
- */
-final class HedSSISet extends HedSSIBase {
-
-	/**
-	 */
-	public HedSSISet(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.SSI_SET, collection);
-	}
-
-	/**
-	 * SSI:SET
-	 * (var CDATA #IMPLIED)
-	 * (value CDATA #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		String[] names = {CHTMLNamespace.ATTR_NAME_VAR, CHTMLNamespace.ATTR_NAME_VALUE};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTEXTAREA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTEXTAREA.java
deleted file mode 100644
index 18198ea..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTEXTAREA.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.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-/**
- * TEXTAREA.
- */
-final class HedTEXTAREA extends HedPcdata {
-
-	/**
-	 * TEXTAREA should keep spaces in its source.
-	 */
-	public HedTEXTAREA(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.TEXTAREA, collection);
-		layoutType = LAYOUT_OBJECT;
-
-		keepSpaces = true;
-	}
-
-	/**
-	 * TEXTAREA.
-	 * %attrs;
-	 * %reserved; ... empty
-	 * (name CDATA #IMPLIED)
-	 * (rows NUMBER #REQUIRED)
-	 * (cols NUMBER #REQUIRED)
-	 * (disabled (disabled) #IMPLIED)
-	 * (readonly (readonly) #IMPLIED)
-	 * (tabindex NUMBER #IMPLIED)
-	 * (accesskey %Character; #IMPLIED)
-	 * (onfocus %Script; #IMPLIED)
-	 * (onblur %Script; #IMPLIED)
-	 * (onselect %Script; #IMPLIED)
-	 * (onchange %Script; #IMPLIED)
-	 * (istyle CDATA #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-		String[] names = {CHTMLNamespace.ATTR_NAME_NAME, CHTMLNamespace.ATTR_NAME_ROWS, CHTMLNamespace.ATTR_NAME_COLS, CHTMLNamespace.ATTR_NAME_ISTYLE};
-		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTITLE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTITLE.java
deleted file mode 100644
index e92e0ad..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTITLE.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-
-/**
- * TITLE.
- */
-final class HedTITLE extends HedPcdata {
-
-	/**
-	 */
-	public HedTITLE(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.TITLE, collection);
-		layoutType = LAYOUT_HIDDEN;
-	}
-
-	/**
-	 * TITLE.
-	 * %i18n;
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %i18n;
-		attributeCollection.getI18n(attributes);
-	}
-
-	/**
-	 * Exclusion.
-	 * <code>TITLE</code> has the exclusion.
-	 * It is <code>%head.misc;</code>.
-	 * %head.misc; is <code>SCRIPT|STYLE|META|LINK|OBJECT</code>.
-	 * <br>
-	 */
-	public CMContent getExclusion() {
-		if (exclusion != null)
-			return exclusion; // already created.
-		if (elementCollection == null)
-			return null;
-
-		// (SCRIPT|STYLE|META|LINK|OBJECT)
-		exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1);
-
-		String[] names = {CHTMLNamespace.ElementName.META,};
-		elementCollection.getDeclarations(exclusion, Arrays.asList(names).iterator());
-		return exclusion;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedUL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedUL.java
deleted file mode 100644
index a2249a8..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedUL.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-/**
- * UL.
- */
-final class HedUL extends HedListItemContainer {
-
-	/**
-	 */
-	public HedUL(ElementCollection collection) {
-		super(CHTMLNamespace.ElementName.UL, collection);
-	}
-
-	/**
-	 * UL.
-	 * (type %ULStyle; #IMPLIED) ... should be defined locally.
-	 * (compact (compact) #IMPLIED)
-	 */
-	protected void createAttributeDeclarations() {
-		if (attributes != null)
-			return; // already created.
-		if (attributeCollection == null)
-			return; // fatal
-
-		attributes = new CMNamedNodeMapImpl();
-
-		// %attrs;
-		attributeCollection.getAttrs(attributes);
-
-	}
-
-	/**
-	 */
-	public CMNamedNodeMap getProhibitedAncestors() {
-		if (prohibitedAncestors != null)
-			return prohibitedAncestors;
-
-		String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU};
-		prohibitedAncestors = elementCollection.getDeclarations(names);
-
-		return prohibitedAncestors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProvider.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProvider.java
deleted file mode 100644
index 6040a3e..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProvider.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration;
-
-
-
-/**
- * PropertyProvider class.
- * This class is intended to be used in HTMLElementDeclaration instances.
- */
-interface PropertyProvider {
-
-	boolean supports(HTMLElementDeclaration edecl);
-
-	Object get(HTMLElementDeclaration edecl);
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProviderFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProviderFactory.java
deleted file mode 100644
index 214a2ca..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProviderFactory.java
+++ /dev/null
@@ -1,364 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.chtml;
-
-import java.util.Hashtable;
-
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration;
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLPropertyDeclaration;
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.xml.core.internal.contentmodel.annotation.AnnotationMap;
-
-/**
- * The factory object of PropertyProvider.
- */
-final class PropertyProviderFactory {
-
-
-	/**
-	 * DefaultProvider is intended to be used for unknown properties.
-	 * It always returns null value for any properties.
-	 */
-	class DefaultProvider implements PropertyProvider {
-		public DefaultProvider() {
-			super();
-		}
-
-		public boolean supports(HTMLElementDeclaration edecl) {
-			return false;
-		}
-
-		public Object get(HTMLElementDeclaration edecl) {
-			return null;
-		}
-	}
-
-	abstract class AbstractElementPropertyProvider implements PropertyProvider {
-		protected AbstractElementPropertyProvider() {
-			super();
-		}
-
-		public boolean supports(HTMLElementDeclaration edecl) {
-			return (edecl != null);
-		}
-
-		public Object get(HTMLElementDeclaration edecl) {
-			if (!(edecl instanceof HTMLPropertyDeclaration))
-				return null;
-			return getElementProperty((HTMLPropertyDeclaration)edecl);
-		}
-
-		abstract protected Object getElementProperty(HTMLPropertyDeclaration decl);
-	}
-
-	/*
-	 * "tagInfo"
-	 * gets documentation for the element
-	 */
-	class PPTagInfo extends AbstractElementPropertyProvider {
-		private final static String htmlAnnotationLoc = "data/htmref.xml"; //$NON-NLS-1$
-		protected AnnotationMap fAnnotationMap = null;
-
-		public PPTagInfo() {
-			super();
-		}
-
-		/**
-		 * Gets the annotationMap.
-		 * @return Returns a AnnotationMap
-		 */
-		protected AnnotationMap getAnnotationMap() {
-			if (fAnnotationMap == null) {
-				fAnnotationMap = new AnnotationMap();
-				try {
-					fAnnotationMap.load(htmlAnnotationLoc, HTMLCorePlugin.getDefault().getBundle().getSymbolicName());
-				}
-				catch (Exception e) {
-					// no annotation available
-				}
-			}
-			return fAnnotationMap;
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			if (decl instanceof HTMLElementDeclaration) {
-				return getAnnotationMap().getProperty(((HTMLElementDeclaration)decl).getElementName(), "tagInfo"); //$NON-NLS-1$
-			} else {
-				return null;
-			}
-		}
-	}
-
-	/*
-	 * "shouldKeepSpace"
-	 */
-	class PPShouldKeepSpace extends AbstractElementPropertyProvider {
-		public PPShouldKeepSpace() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			return new Boolean(decl.shouldKeepSpaces());
-		}
-	}
-
-	/*
-	 * "shouldIndentChildSource"
-	 */
-	class PPShouldIndentChildSource extends AbstractElementPropertyProvider {
-		public PPShouldIndentChildSource() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			return new Boolean(decl.shouldIndentChildSource());
-		}
-	}
-
-	/*
-	 * "terminators"
-	 */
-	class PPTerminators extends AbstractElementPropertyProvider {
-		public PPTerminators() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			if (decl == null)
-				return null;
-			if (! (decl instanceof HTMLElemDeclImpl)) return null;
-			return ((HTMLElemDeclImpl)decl).getTerminators();
-		}
-	}
-
-	/*
-	 * "prohibitedAncestors"
-	 */
-	class PPProhibitedAncestors extends AbstractElementPropertyProvider {
-		public PPProhibitedAncestors() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			return decl.getProhibitedAncestors();
-		}
-	}
-
-	/*
-	 * "isJSP"
-	 */
-	class PPIsJSP extends AbstractElementPropertyProvider {
-		public PPIsJSP() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			return new Boolean(decl.isJSP());
-		}
-	}
-
-	/*
-	 * "isXHTML"
-	 * HTMLElementDeclaration itself never represent any XHTML element declaration.
-	 * So, this property must be always false.
-	 */
-	class PPIsXHTML extends AbstractElementPropertyProvider {
-		public PPIsXHTML() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			return new Boolean(false);
-		}
-	}
-
-	/*
-	 * "isSSI"
-	 * Each declaration class for SSI elements must provide this property itself,
-	 * and then return true.  Other declaration must always return false.
-	 */
-	class PPIsSSI extends AbstractElementPropertyProvider {
-		public PPIsSSI() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			return new Boolean(false);
-		}
-	}
-
-	/*
-	 * "lineBreakHint"
-	 */
-	class PPLineBreakHint extends AbstractElementPropertyProvider {
-		public PPLineBreakHint() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			String hint = HTMLCMProperties.Values.BREAK_NONE;
-			switch (decl.getLineBreakHint()) {
-				case HTMLElementDeclaration.BREAK_AFTER_START :
-					hint = HTMLCMProperties.Values.BREAK_AFTER_START;
-					break;
-				case HTMLElementDeclaration.BREAK_BEFORE_START_AND_AFTER_END :
-					hint = HTMLCMProperties.Values.BREAK_BEFORE_START_AND_AFTER_END;
-					break;
-				case HTMLElementDeclaration.BREAK_NONE :
-				// nothing to do
-				default :
-					break;
-			}
-			return hint;
-		}
-	}
-
-	/*
-	 * "layoutType"
-	 */
-	class PPLayoutType extends AbstractElementPropertyProvider {
-		public PPLayoutType() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			String type = HTMLCMProperties.Values.LAYOUT_NONE;
-			switch (decl.getLayoutType()) {
-				case HTMLElementDeclaration.LAYOUT_BLOCK :
-					type = HTMLCMProperties.Values.LAYOUT_BLOCK;
-					break;
-				case HTMLElementDeclaration.LAYOUT_BREAK :
-					type = HTMLCMProperties.Values.LAYOUT_BREAK;
-					break;
-				case HTMLElementDeclaration.LAYOUT_HIDDEN :
-					type = HTMLCMProperties.Values.LAYOUT_HIDDEN;
-					break;
-				case HTMLElementDeclaration.LAYOUT_OBJECT :
-					type = HTMLCMProperties.Values.LAYOUT_OBJECT;
-					break;
-				case HTMLElementDeclaration.LAYOUT_WRAP :
-					type = HTMLCMProperties.Values.LAYOUT_WRAP;
-					break;
-				case HTMLElementDeclaration.LAYOUT_NONE :
-				// nothing to do.
-				default :
-					break;
-			}
-			return type;
-		}
-	}
-
-	/*
-	 * "omitType"
-	 */
-	class PPOmitType extends AbstractElementPropertyProvider {
-		public PPOmitType() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			String type = HTMLCMProperties.Values.OMIT_NONE;
-			switch (decl.getOmitType()) {
-				case HTMLElementDeclaration.OMIT_BOTH :
-					type = HTMLCMProperties.Values.OMIT_BOTH;
-					break;
-				case HTMLElementDeclaration.OMIT_END :
-					type = HTMLCMProperties.Values.OMIT_END;
-					break;
-				case HTMLElementDeclaration.OMIT_END_DEFAULT :
-					type = HTMLCMProperties.Values.OMIT_END_DEFAULT;
-					break;
-				case HTMLElementDeclaration.OMIT_END_MUST :
-					type = HTMLCMProperties.Values.OMIT_END_MUST;
-					break;
-				case HTMLElementDeclaration.OMIT_NONE :
-				// nothing to do.
-				default :
-					break;
-			}
-			return type;
-		}
-	}
-
-	/*
-	 * "inclusion"
-	 */
-	class PPInclusion extends AbstractElementPropertyProvider {
-		public PPInclusion() {
-			super();
-		}
-
-		protected Object getElementProperty(HTMLPropertyDeclaration decl) {
-			return decl.getInclusion();
-		}
-	}
-
-	public static PropertyProvider getProvider(String propName) {
-		PropertyProviderFactory factory = getInstance();
-		PropertyProvider pp = (PropertyProvider) factory.registry.get(propName);
-		if (pp != null)
-			return pp;
-
-		pp = factory.create(propName);
-		if (pp == null)
-			return factory.defaultProvider;
-
-		factory.registry.put(propName, pp);
-		return pp;
-	}
-
-	private static PropertyProviderFactory instance = null;
-
-	private synchronized static PropertyProviderFactory getInstance() {
-		if (instance != null)
-			return instance;
-		instance = new PropertyProviderFactory();
-		return instance;
-	}
-
-	private Hashtable registry = new Hashtable();
-	private PropertyProvider defaultProvider = new DefaultProvider();
-
-	private PropertyProviderFactory() {
-		super();
-	}
-
-	private PropertyProvider create(String propName) {
-		PropertyProvider pp = null;
-		if (propName.equals(HTMLCMProperties.IS_JSP))
-			pp = new PPIsJSP();
-		else if (propName.equals(HTMLCMProperties.IS_XHTML))
-			pp = new PPIsXHTML();
-		else if (propName.equals(HTMLCMProperties.IS_SSI))
-			pp = new PPIsSSI();
-		else if (propName.equals(HTMLCMProperties.LAYOUT_TYPE))
-			pp = new PPLayoutType();
-		else if (propName.equals(HTMLCMProperties.LINE_BREAK_HINT))
-			pp = new PPLineBreakHint();
-		else if (propName.equals(HTMLCMProperties.PROHIBITED_ANCESTORS))
-			pp = new PPProhibitedAncestors();
-		else if (propName.equals(HTMLCMProperties.SHOULD_KEEP_SPACE))
-			pp = new PPShouldKeepSpace();
-		else if (propName.equals(HTMLCMProperties.SHOULD_INDENT_CHILD_SOURCE))
-			pp = new PPShouldIndentChildSource();
-		else if (propName.equals(HTMLCMProperties.TERMINATORS))
-			pp = new PPTerminators();
-		else if (propName.equals(HTMLCMProperties.TAGINFO))
-			pp = new PPTagInfo();
-		else if (propName.equals(HTMLCMProperties.OMIT_TYPE))
-			pp = new PPOmitType();
-		else if (propName.equals(HTMLCMProperties.INCLUSION))
-			pp = new PPInclusion();
-
-		return pp;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ssi/SSICMDocumentFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ssi/SSICMDocumentFactory.java
deleted file mode 100644
index 3a4dfd7..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ssi/SSICMDocumentFactory.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contentmodel.ssi;
-
-import java.util.Hashtable;
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDocumentFactory;
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-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.CMDocType;
-
-/**
- * CMDocument factory for SSI documents.
- */
-public final class SSICMDocumentFactory {
-
-	private final static String PREFIX = "SSI";//$NON-NLS-1$
-	private final static String DOC_TYPE_NAME = "SSI";//$NON-NLS-1$
-
-	static class CMNamespaceImpl implements CMNamespace {
-		public CMNamespaceImpl() {
-			super();
-		}
-
-		public String getPrefix() {
-			return PREFIX;
-		}
-
-		public String getURI() {
-			return ""; //$NON-NLS-1$
-		}
-
-		public String getNodeName() {
-			return DOC_TYPE_NAME;
-		}
-
-		public int getNodeType() {
-			return CMNode.NAME_SPACE;
-		}
-
-		public boolean supports(String propertyName) {
-			return false;
-		}
-
-		public Object getProperty(String propertyName) {
-			return null;
-		}
-
-	}
-
-	static class CMDocImpl implements CMDocument {
-		private static CMDocument hcm = HTMLCMDocumentFactory.getCMDocument(CMDocType.HTML_DOC_TYPE);
-
-		static class Elements implements CMNamedNodeMap {
-			private static String[] names = {HTML40Namespace.ElementName.SSI_CONFIG, HTML40Namespace.ElementName.SSI_ECHO, HTML40Namespace.ElementName.SSI_EXEC, HTML40Namespace.ElementName.SSI_FSIZE, HTML40Namespace.ElementName.SSI_FLASTMOD, HTML40Namespace.ElementName.SSI_INCLUDE, HTML40Namespace.ElementName.SSI_PRINTENV, HTML40Namespace.ElementName.SSI_SET};
-			private Hashtable map = new Hashtable();
-
-			public Elements() {
-				CMNamedNodeMap elems = hcm.getElements();
-				for (int i = 0; i < names.length; i++) {
-					String name = names[i];
-					CMElementDeclaration dec = (CMElementDeclaration) elems.getNamedItem(name);
-					if (dec != null)
-						map.put(name, dec);
-				}
-			}
-
-			public int getLength() {
-				return map.size();
-			}
-
-			public CMNode getNamedItem(String name) {
-				String cooked = getCanonicalName(name);
-				if (!map.containsKey(cooked))
-					return null;
-				return (CMNode) map.get(cooked);
-			}
-
-			public CMNode item(int index) {
-				Iterator iter = iterator();
-				while (iter.hasNext()) {
-					Object node = iter.next();
-					if (--index < 0)
-						return (CMNode) node;
-				}
-				return null;
-			}
-
-			public Iterator iterator() {
-				return map.values().iterator();
-			}
-
-			private String getCanonicalName(String rawName) {
-				return rawName.toUpperCase();
-			}
-		}
-
-		static private Elements elements = new Elements();
-
-
-		public CMDocImpl() {
-			super();
-		}
-
-		public String getNodeName() {
-			return ""; //$NON-NLS-1$
-		}
-
-		public int getNodeType() {
-			return CMNode.DOCUMENT;
-		}
-
-		public CMNamedNodeMap getElements() {
-			return elements;
-		}
-
-		public CMNamedNodeMap getEntities() {
-			return null;
-		}
-
-		public CMNamespace getNamespace() {
-			return ssins;
-		}
-
-		public Object getProperty(String propertyName) {
-			return null;
-		}
-
-		public boolean supports(String propertyName) {
-			return false;
-		}
-	}
-
-	private static CMNamespace ssins = new CMNamespaceImpl();
-	private static CMDocument mycm = new CMDocImpl();
-
-	private SSICMDocumentFactory() {
-		super();
-	}
-
-	public static CMDocument getCMDocument() {
-		return mycm;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentproperties/HTMLContentProperties.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentproperties/HTMLContentProperties.java
deleted file mode 100644
index 4c7a41b..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentproperties/HTMLContentProperties.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.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.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.Logger;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * Properties constants used by HTML. Clients should only read and modify the
- * HTML properties programmatically using this class.
- * 
- * @since 1.1
- */
-public class HTMLContentProperties {
-	static final String HTMLCORE_ID = HTMLCorePlugin.getDefault().getBundle().getSymbolicName();
-	private static final String PROJECT_KEY = "<project>"; //$NON-NLS-1$
-
-	/**
-	 * The default document type to use when none is specified.
-	 * <p>
-	 * Value is of type <code>String</code>.
-	 * </p>
-	 */
-	public static final String DOCUMENT_TYPE = "document-type"; //$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(HTMLCORE_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(HTMLCORE_ID))
-				return null;
-			node = node.node(HTMLCORE_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;
-		// boolean preferenceFound = false;
-		if (resource != null) {
-			IProject project = resource.getProject();
-			if (project != null) {
-				Preferences preferences = getPreferences(project, key, false);
-				if (preferences != null) {
-					val = internalGetProperty(resource, recurse, preferences);
-					// preferenceFound = true;
-				}
-			}
-		}
-		// Workbench preference may not be needed so leave out for now
-		// // no preferences found - for performance reasons,
-		// // short-circuit
-		// // lookup by falling back to workspace's default
-		// // setting
-		// if (!preferenceFound)
-		// val = getWorkbenchPreference(key);
-		return val;
-	}
-
-	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);
-		}
-
-		// Workbench preference may not be needed so leave out for now
-		// // ensure we default to the workspace preference if none is found
-		// return value == null ? getWorkbenchPreference(key) : value;
-		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, HTMLCORE_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.wst.html.core/src/org/eclipse/wst/html/core/internal/contentproperties/HTMLContentPropertiesManager.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentproperties/HTMLContentPropertiesManager.java
deleted file mode 100644
index 41f03c8..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentproperties/HTMLContentPropertiesManager.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.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.osgi.util.NLS;
-import org.eclipse.wst.html.core.internal.HTMLCoreMessages;
-import org.eclipse.wst.html.core.internal.Logger;
-import org.osgi.framework.Bundle;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-public class HTMLContentPropertiesManager {
-	public HTMLContentPropertiesManager() {
-		super();
-		fResourceChangeListener = new ResourceChangeListener();
-		fJob = new ContentPropertiesManagerJob();
-	}
-
-	private static HTMLContentPropertiesManager _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(HTMLCoreMessages.HTMLContentPropertiesManager_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(HTMLContentProperties.HTMLCORE_ID, IResourceStatus.FAILED_SETTING_CHARSET, HTMLCoreMessages.HTMLContentPropertiesManager_Updating, null);
-			monitor = monitor == null ? new NullProgressMonitor() : monitor;
-			try {
-				monitor.beginTask(HTMLCoreMessages.HTMLContentPropertiesManager_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 document type preferences
-								Preferences projectPrefs = HTMLContentProperties.getPreferences(next, HTMLContentProperties.DOCUMENT_TYPE, false);
-								if (projectPrefs != null)
-									projectPrefs.flush();
-							}
-						}
-						catch (BackingStoreException e) {
-							// we got an error saving
-							String detailMessage = NLS.bind(HTMLCoreMessages.HTMLContentPropertiesManager_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 web content setting to see if it has
-			// been moved/deleted
-			boolean resourceChanges = false;
-
-			// project affected
-			IProject currentProject = (IProject) projectDelta.getResource();
-
-			resourceChanges = processPreferences(currentProject, HTMLContentProperties.DOCUMENT_TYPE, projectDelta, projectsToSave);
-
-			// if there was a preference key change, need to save preferences
-			if (resourceChanges)
-				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 = HTMLContentProperties.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 = HTMLContentProperties.getPreferences(targetProject, key, true);
-						targetPrefs.put(HTMLContentProperties.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 HTMLContentPropertiesManager();
-		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.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/AbstractResourceEncodingDetector.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/AbstractResourceEncodingDetector.java
deleted file mode 100644
index 8b359e6..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/AbstractResourceEncodingDetector.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.html.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 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;
-
-
-public abstract class AbstractResourceEncodingDetector implements IResourceCharsetDetector {
-
-	protected EncodingMemento fEncodingMemento;
-
-	protected boolean fHeaderParsed;
-
-	protected Reader fReader;
-
-	/**
-	 * 
-	 */
-	public AbstractResourceEncodingDetector() {
-		super();
-	}
-
-	/**
-	 * 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());
-	}
-
-	/**
-	 * convience method all subclasses can use (but not override)
-	 * 
-	 * @param detectedCharsetName
-	 * @param reason
-	 */
-	final protected void createEncodingMemento(String detectedCharsetName, String reason) {
-		createEncodingMemento(detectedCharsetName);
-	}
-
-	/**
-	 * convience method all subclasses can use (but not override)
-	 */
-	final protected void ensureInputSet() {
-		if (fReader == null) {
-			throw new IllegalStateException("input must be set before use"); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * 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;
-	}
-
-	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;
-	}
-
-	/**
-	 * This is to return a default encoding -- as specified by an industry
-	 * content type spec -- when not present in the stream, for example, XML
-	 * specifies UTF-8, JSP specifies ISO-8859-1. This method should return
-	 * null if there is no such "spec default".
-	 */
-	abstract public String getSpecDefaultEncoding();
-
-	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;
-	}
-
-	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);
-		}
-	}
-
-	/**
-	 * Every subclass must provide a way to parse the input. This method has
-	 * several critical responsibilities:
-	 * <li>set the fEncodingMemento field appropriately, according to the
-	 * results of the parse of fReader.</li>
-	 * <li>set fHarderParsed to true, to avoid wasted re-parsing.</li>
-	 */
-	abstract protected void parseInput() throws IOException;
-
-	/**
-	 * 
-	 */
-	private void resetAll() {
-		fReader = null;
-		fHeaderParsed = false;
-		fEncodingMemento = null;
-	}
-
-	/**
-	 * 
-	 */
-	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);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/ByteReader.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/ByteReader.java
deleted file mode 100644
index 98199b0..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/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.wst.html.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.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/ContentDescriberForHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/ContentDescriberForHTML.java
deleted file mode 100644
index 8a70983..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/ContentDescriberForHTML.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.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.wst.sse.core.internal.encoding.EncodingMemento;
-import org.eclipse.wst.sse.core.internal.encoding.IContentDescriptionExtended;
-import org.eclipse.wst.sse.core.internal.encoding.IResourceCharsetDetector;
-
-/**
- * 
- * ContentDescriberForHTML
- * 
- * A few design principles to remember with content describers:
- * <ul> 
- * <li>Remember not to store values/data in the descriptions array of properties, 
- * especially not large objects! and even no value that is already the default value, 
- * since those description properties are cached per session, so can add up in memory. 
- * <li>Remember that a ContentDescriber instance becomes a "root object" in the 
- * ContentDescriberManager (that is, always in memory, never GC'd), so it should 
- * not have any instance or state data since it would always become stale and 
- * "hold on" to objects unneccessarily. 
- * </ul>
- */
-
-public final class ContentDescriberForHTML implements ITextContentDescriber {
-
-	final private static QualifiedName[] SUPPORTED_OPTIONS = {IContentDescription.CHARSET, IContentDescription.BYTE_ORDER_MARK, IContentDescriptionExtended.DETECTED_CHARSET, IContentDescriptionExtended.UNSUPPORTED_CHARSET, IContentDescriptionExtended.APPROPRIATE_DEFAULT};
-
-	public int describe(InputStream contents, IContentDescription description) throws IOException {
-		int result = IContentDescriber.INDETERMINATE;
-
-		if (description == null) {
-			result = computeValidity(contents);
-		}
-		else {
-			calculateSupportedOptions(contents, description);
-			// assummming we should return same 'validity' value we did
-			// when called before. (technically, could be a performance issue
-			// in future, so might want to check if any 'ol value would
-			// be ok here.
-			result = computeValidity(contents);
-		}
-
-		return result;
-	}
-
-	public int describe(Reader contents, IContentDescription description) throws IOException {
-		int result = IContentDescriber.INDETERMINATE;
-
-		if (description == null) {
-			result = computeValidity(contents);
-		}
-		else {
-			calculateSupportedOptions(contents, description);
-			// assummming we should return same 'validity' value we did
-			// when called before. (technically, could be a performance issue
-			// in future, so might want to check if hard coded 'valid' would
-			// be ok here.
-			result = computeValidity(contents);
-		}
-
-		return result;
-	}
-
-	public QualifiedName[] getSupportedOptions() {
-
-		return SUPPORTED_OPTIONS;
-	}
-
-	private void calculateSupportedOptions(InputStream contents, IContentDescription description) throws IOException {
-		if (isRelevent(description)) {
-			IResourceCharsetDetector detector = getDetector();
-			detector.set(contents);
-			handleCalculations(description, detector);
-		}
-	}
-
-	/**
-	 * @param contents
-	 * @param description
-	 * @throws IOException
-	 */
-	private void calculateSupportedOptions(Reader contents, IContentDescription description) throws IOException {
-		if (isRelevent(description)) {
-			IResourceCharsetDetector detector = getDetector();
-			detector.set(contents);
-			handleCalculations(description, detector);
-		}
-	}
-
-	private int computeValidity(InputStream inputStream) {
-		// currently no contents specific check for valid HTML contents
-		// (this may change once we add XHTML content type)
-		return IContentDescriber.INDETERMINATE;
-	}
-
-	private int computeValidity(Reader reader) {
-		// currently no contents specific check for valid HTML contents
-		// (this may change once we add XHTML content type)
-		return IContentDescriber.INDETERMINATE;
-	}
-
-	private IResourceCharsetDetector getDetector() {
-
-		return new HTMLResourceEncodingDetector();
-
-	}
-
-	/**
-	 * @param description
-	 * @param detector
-	 * @throws IOException
-	 */
-	private void handleCalculations(IContentDescription description, IResourceCharsetDetector detector) throws IOException {
-
-		EncodingMemento encodingMemento = ((HTMLResourceEncodingDetector) 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 default.the
-				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);
-				}
-			}
-		}
-
-	}
-
-	private void handleDetectedSpecialCase(IContentDescription description, Object detectedCharset, Object javaCharset) {
-		// since equal, we don't need to add, but if our detected version is
-		// different than
-		// javaCharset, then we should add it. This will happen, for example,
-		// if there's
-		// differences in case, or differences due to override properties
-		if (detectedCharset != null) {
-			// if (!detectedCharset.equals(javaCharset)) {
-			// description.setProperty(IContentDescriptionExtended.DETECTED_CHARSET,
-			// detectedCharset);
-			// }
-
-			// 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
-	 * @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(IContentDescriptionExtended.ENCODING_MEMENTO))
-		// result = true;
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/EncodingGuesser.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/EncodingGuesser.java
deleted file mode 100644
index eb46433..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/EncodingGuesser.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contenttype;
-
-/**
- * 
- * This is ported from PageDesigner's hpbcom/Kanji.cpp's
- * Kanji::guess_kanji_code(),
- *  
- */
-public class EncodingGuesser {
-	private static final int ASCII = 0; // ASCII
-	// ISO-2022-JP
-	private static final int ASCII_IN = 8; // This is after ISO2022's change
-	// Shift-JIS
-	private static final int EUC_HALFKANA = 6; // This is Half Kana in EUC-JP
-	private static final int EUC_JP = 3; // This is EUC-JP
-	private static final int ISO2022_JP = 4; // This is ISO-2022-JP
-	private static final int JIS_HALFKANA = 7; // THis is Half Kana in
-	private static final byte KT_EUC1 = 0x40;
-	private static final byte KT_EUC2 = (byte) 0x80;
-	// ASCII
-	private static final byte KT_JIN = 0x01;
-	private static final byte KT_JOUT = 0x02;
-	//	private static final byte KT_ESC = 0x04;
-	//	private static final byte KT_JIS = 0x08;
-	private static final byte KT_SFT1 = 0x10;
-	private static final byte KT_SFT2 = 0x20;
-	private static final byte ktype[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 00 */
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 10 */
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x09, 0x08, 0x08, 0x08, /* !"#$%&' *//* " */
-	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, /* ()*+,-./ */
-	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, /* 01234567 */
-	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, /* 89:; <=>? */
-	0x29, 0x28, 0x2b, 0x28, 0x28, 0x28, 0x28, 0x28, /* @ABCDEFG */
-	0x2a, 0x28, 0x2a, 0x28, 0x28, 0x28, 0x28, 0x28, /* HIJKLMNO */
-	0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, /* PQRSTUVW */
-	0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, /* XYZ[\]^_ */
-	0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, /* abcdefg */
-	0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, /* hijklmno */
-	0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, /* pqrstuvw */
-	0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x00, /* xyz{|}~ */
-	0x20, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, /* 80 */
-	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, /* 90 */
-	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, /* A0 */
-	(byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, /* B0 */
-	(byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, /* C0 */
-	(byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, /* D0 */
-	(byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, /* E0 */
-	(byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, /* F0 */
-	(byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xc0, (byte) 0xc0, 0x00,};
-	//	private static final int ISO8859_1 = 1; // ISO-1
-	private static final int SHIFT_JIS = 2; // This is Shift-JIS
-	private static final int SJIS_HALFKANA = 5; // This is Half Kana in
-
-	/**
-	 * Currently, only Japanese encodings are supported.
-	 */
-	private static final int UNKNOWN = -1; // Unknown
-
-	/**
-	 * @return java.lang.String
-	 * @param code
-	 *            int
-	 * 
-	 * Convert private int to IANA Encoding name.
-	 */
-	private static String convertToIANAEncodingName(int code) {
-		String encoding = null;
-
-		switch (code) {
-			case SHIFT_JIS :
-			case SJIS_HALFKANA :
-				encoding = "Shift_JIS";//$NON-NLS-1$
-				break;
-			case EUC_JP :
-			case EUC_HALFKANA :
-				encoding = "EUC-JP";//$NON-NLS-1$
-				break;
-			case ISO2022_JP :
-			case JIS_HALFKANA :
-				encoding = "ISO-2022-JP";//$NON-NLS-1$
-			default :
-				break;
-		}
-
-		return encoding;
-	}
-
-	/**
-	 * Return guessed Java Encoding name target: bytes to be inspected length:
-	 * length of target
-	 */
-	public static String guessEncoding(byte[] target, int length) {
-		int code = UNKNOWN;
-
-		// Currently, only Japanese is supported.
-		String system_ctype = java.util.Locale.getDefault().getLanguage();
-		String jp_ctype = java.util.Locale.JAPANESE.getLanguage();
-		if (system_ctype.compareTo(jp_ctype) == 0) {
-			// Ok, I'm under ja_JP.
-			code = ASCII;
-			int pos = 0;
-			while ((code == ASCII) && (length > 0)) {
-				int ch1 = target[pos];
-				ch1 = ch1 & 0x000000FF;
-				int ch2 = (length >= 2) ? target[pos + 1] : 0;
-				ch2 = ch2 & 0x000000FF;
-				int ch3 = (length >= 3) ? target[pos + 2] : 0;
-				ch3 = ch3 & 0x000000FF;
-				code = guessJapaneseKanjiCode(ch1, ch2, ch3, 0);
-				pos++;
-				length--;
-			}
-			switch (code) {
-				case ISO2022_JP :
-				case JIS_HALFKANA :
-					code = ISO2022_JP;
-					break;
-				case EUC_JP :
-					code = EUC_JP;
-					break;
-				default :
-					code = SHIFT_JIS;
-			}
-		}
-		return (convertToIANAEncodingName(code));
-	}
-
-	/**
-	 * Guess the encoding. halfkana_flag = 0x01 ( detect SJIS half kana )
-	 * halfkana_flag = 0x02 ( detect EUC half kana )
-	 */
-	private static int guessJapaneseKanjiCode(int ch1, int ch2, int ch3, int halfkana_flag) {
-		boolean sjis_hankaku_flag = ((halfkana_flag & 0x01) != 0) ? true : false;
-		boolean euc_hankaku_flag = ((halfkana_flag & 0x02) != 0) ? true : false;
-
-		if (ch1 == 0)
-			return UNKNOWN;
-		if (sjis_hankaku_flag && ch1 >= 0xa1 && ch1 <= 0xdf)
-			return SJIS_HALFKANA;
-		else if (euc_hankaku_flag && ch1 == 0x8e && ch2 >= 0xa1 && ch2 <= 0xdf)
-			return EUC_HALFKANA;
-		else if (((ktype[ch1] & KT_SFT1) != 0) && ((ktype[ch2] & KT_SFT2) != 0))
-			return SHIFT_JIS;
-		else if (((ktype[ch1] & KT_EUC1) != 0) && ((ktype[ch2] & KT_EUC2) != 0))
-			return EUC_JP;
-		else if (ch1 == 0x1b && ((ktype[ch2] & KT_JIN) != 0))
-			return ISO2022_JP;
-		else if (ch1 >= 0xa1 && ch1 <= 0xdf)
-			return SJIS_HALFKANA;
-		else if (ch1 == 0x1b && ch2 == 0x28/* '(' */&& ch3 == 0x49/* 'I' */)
-			return JIS_HALFKANA;
-		else if (ch1 == 0x1b && ch2 == 0x28/* '(' */&& ((ktype[ch3] & KT_JOUT) != 0))
-			return ASCII_IN;
-
-		return ASCII;
-	}
-
-	public EncodingGuesser() {
-		super();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLHeadTokenizer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLHeadTokenizer.java
deleted file mode 100644
index 1dbdf56..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLHeadTokenizer.java
+++ /dev/null
@@ -1,1981 +0,0 @@
-/* The following code was generated by JFlex 1.2.2 on 7/28/08 5:19 PM */
-
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*nlsXXX*/
-package org.eclipse.wst.html.core.internal.contenttype;
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.wst.xml.core.internal.contenttype.EncodingParserConstants;
-import org.eclipse.wst.xml.core.internal.contenttype.XMLHeadTokenizerConstants;
-
-
-
-
-/**
- * This class is a scanner generated by 
- * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
- * on 7/28/08 5:19 PM from the specification file
- * <tt>file:/D:/workspaces/wtp301/workspace/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.jFlex</tt>
- */
-public class HTMLHeadTokenizer {
-
-  /** this character denotes the end of file */
-  final public static int YYEOF = -1;
-
-  /** lexical states */
-  final public static int ST_META_TAG = 4;
-  final public static int YYINITIAL = 0;
-  final public static int UnDelimitedString = 12;
-  final public static int DQ_STRING = 8;
-  final public static int UnDelimitedCharset = 14;
-  final public static int SQ_STRING = 10;
-  final public static int ST_XMLDecl = 2;
-  final public static int QuotedAttributeValue = 6;
-
-  /**
-   * YY_LEXSTATE[l] is the state in the DFA for the lexical state l
-   * YY_LEXSTATE[l+1] is the state in the DFA for the lexical state l
-   *                  at the beginning of a line
-   * l is of the form l = 2*k, k a non negative integer
-   */
-  private final static int YY_LEXSTATE[] = { 
-     0,  1,  2,  2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,  8, 8
-  };
-
-  /** 
-   * Translates characters to character classes
-   */
-  final private static String yycmap_packed = 
-    "\1\11\10\0\1\6\1\7\2\0\1\10\22\0\1\6\1\0\1\40"+
-    "\2\0\1\44\1\0\1\43\5\0\1\34\1\0\1\42\13\0\1\45"+
-    "\1\13\1\12\1\31\1\14\1\0\1\22\1\0\1\24\1\26\1\20"+
-    "\1\0\1\30\1\32\1\27\2\0\1\17\1\16\1\23\1\25\1\33"+
-    "\1\35\2\0\1\21\1\36\1\37\1\0\1\15\1\41\7\0\1\22"+
-    "\1\0\1\24\1\26\1\20\1\0\1\30\1\32\1\27\2\0\1\17"+
-    "\1\16\1\23\1\25\1\33\1\35\2\0\1\21\1\36\1\37\1\0"+
-    "\1\15\1\41\101\0\1\4\3\0\1\5\17\0\1\3\16\0\1\1"+
-    "\20\0\1\3\16\0\1\1\1\2\170\0\1\2\ufe87\0";
-
-  /** 
-   * Translates characters to character classes
-   */
-  final private static char [] yycmap = yy_unpack_cmap(yycmap_packed);
-
-
-  /* error codes */
-  final private static int YY_UNKNOWN_ERROR = 0;
-  final private static int YY_ILLEGAL_STATE = 1;
-  final private static int YY_NO_MATCH = 2;
-  final private static int YY_PUSHBACK_2BIG = 3;
-
-  /* error messages for the codes above */
-  final private static String YY_ERROR_MSG[] = {
-    "Unkown internal scanner error",
-    "Internal error: unknown state",
-    "Error: could not match input",
-    "Error: pushback value was too large"
-  };
-
-  /** the input device */
-  private java.io.Reader yy_reader;
-
-  /** the current state of the DFA */
-  private int yy_state;
-
-  /** the current lexical state */
-  private int yy_lexical_state = YYINITIAL;
-
-  /** this buffer contains the current text to be matched and is
-      the source of the yytext() string */
-  private char yy_buffer[] = new char[16384];
-
-  /** the textposition at the last accepting state */
-  private int yy_markedPos;
-
-  /** the textposition at the last state to be included in yytext */
-  private int yy_pushbackPos;
-
-  /** the current text position in the buffer */
-  private int yy_currentPos;
-
-  /** startRead marks the beginning of the yytext() string in the buffer */
-  private int yy_startRead;
-
-  /** endRead marks the last character in the buffer, that has been read
-      from input */
-  private int yy_endRead;
-
-  /** number of newlines encountered up to the start of the matched text */
-//  private int yyline;
-
-  /** the number of characters up to the start of the matched text */
-  private int yychar;
-
-  /**
-   * the number of characters from the last newline up to the start of the 
-   * matched text
-   */
-//  private int yycolumn; 
-
-  /** 
-   * yy_atBOL == true <=> the scanner is currently at the beginning of a line
-   */
-  private boolean yy_atBOL;
-
-  /** yy_atEOF == true <=> the scanner has returned a value for EOF */
-  private boolean yy_atEOF;
-
-  /** denotes if the user-EOF-code has already been executed */
-  private boolean yy_eof_done;
-
-  /* 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;
-	boolean foundContentTypeValue = false;
-
-
-
-	public HTMLHeadTokenizer() {
-		super();
-	}
-
-	  public void reset (Reader in) {
-	  	/* the input device */
-	  	yy_reader = in;
-
-  		/* the current state of the DFA */
-  		yy_state = 0;
-
-  		/* the current lexical state */
-  		yy_lexical_state = YYINITIAL;
-
-  		/* this buffer contains the current text to be matched and is
-  		 the source of the yytext() string */
-  		java.util.Arrays.fill(yy_buffer, (char)0);
-
-  		/* the textposition at the last accepting state */
-  		yy_markedPos = 0;
-
-  		/* the textposition at the last state to be included in yytext */
-  		yy_pushbackPos = 0;
-
-  		/* the current text position in the buffer */
-  		yy_currentPos = 0;
-
-  		/* startRead marks the beginning of the yytext() string in the buffer */
-  		yy_startRead = 0;
-
-  		/** 
-  		 * endRead marks the last character in the buffer, that has been read
-  		 * from input 
-  		 */
-  		yy_endRead = 0;
-
-  		/* number of newlines encountered up to the start of the matched text */
-//  		yyline = 0;
-
-  		/* the number of characters up to the start of the matched text */
-  		yychar = 0;
-
-  		/**
-  		 * the number of characters from the last newline up to the start
-  		 * of the matched text
-  		 */
-//  		yycolumn = 0; 
-
-  		/** 
-  		 * yy_atBOL == true <=> the scanner is currently at the beginning 
-  		 * of a line
-  		 */
-  		yy_atBOL = false;
-
-  		/* yy_atEOF == true <=> the scanner has returned a value for EOF */
-  		yy_atEOF = false;
-
-  		/* denotes if the user-EOF-code has already been executed */
-  		yy_eof_done = false;
-
-
-  		fStateStack.clear();
-  		
-  		hasMore = true;
-  		
-		// its a little wasteful to "throw away" first char array generated
-		// by class init (via auto generated code), but we really do want
-		// a small buffer for our head parsers.
-		if (yy_buffer.length != MAX_TO_SCAN) {
-			yy_buffer = new char[MAX_TO_SCAN];
-		}
-  		
-
-  	}
-
-
-	public final HeadParserToken getNextToken() throws IOException {
-		String context = null;
-		context = primGetNextToken();
-		HeadParserToken result = null;
-		if (valueText != null) {
-			result = createToken(context, yychar, valueText);
-			valueText = null;
-		} else {
-			result = createToken(context, yychar, yytext());
-		}
-		return result;
-	}
-
-	public final boolean hasMoreTokens() {
-		return hasMore && yychar < MAX_TO_SCAN;
-	}
-	private void pushCurrentState() {
-		fStateStack.push(yystate());
-
-	}
-
-	private void popState() {
-		yybegin(fStateStack.pop());
-	}
-	private HeadParserToken createToken(String context, int start, String text) {
-		return new HeadParserToken(context, start, text);
-	}
-	
-
-
-
-  /**
-   * Creates a new scanner
-   * There is also a java.io.InputStream version of this constructor.
-   *
-   * @param   in  the java.io.Reader to read input from.
-   */
-  public HTMLHeadTokenizer(java.io.Reader in) {
-    this.yy_reader = in;
-  }
-
-  /**
-   * Creates a new scanner.
-   * There is also java.io.Reader version of this constructor.
-   *
-   * @param   in  the java.io.Inputstream to read input from.
-   */
-  public HTMLHeadTokenizer(java.io.InputStream in) {
-    this(new java.io.InputStreamReader(in));
-  }
-
-  /** 
-   * Unpacks the compressed character translation table.
-   *
-   * @param packed   the packed character translation table
-   * @return         the unpacked character translation table
-   */
-  private static char [] yy_unpack_cmap(String packed) {
-    char [] map = new char[0x10000];
-    int i = 0;  /* index in packed string  */
-    int j = 0;  /* index in unpacked array */
-    while (i < 176) {
-      int  count = packed.charAt(i++);
-      char value = packed.charAt(i++);
-      do map[j++] = value; while (--count > 0);
-    }
-    return map;
-  }
-
-
-  /**
-   * Gets the next input character.
-   *
-   * @return      the next character of the input stream, EOF if the
-   *              end of the stream is reached.
-   * @exception   IOException  if any I/O-Error occurs
-   */
-  private int yy_advance() throws java.io.IOException {
-
-    /* standard case */
-    if (yy_currentPos < yy_endRead) return yy_buffer[yy_currentPos++];
-
-    /* if the eof is reached, we don't need to work hard */ 
-    if (yy_atEOF) return YYEOF;
-
-    /* otherwise: need to refill the buffer */
-
-    /* first: make room (if you can) */
-    if (yy_startRead > 0) {
-      System.arraycopy(yy_buffer, yy_startRead, 
-                       yy_buffer, 0, 
-                       yy_endRead-yy_startRead);
-
-      /* translate stored positions */
-      yy_endRead-= yy_startRead;
-      yy_currentPos-= yy_startRead;
-      yy_markedPos-= yy_startRead;
-      yy_pushbackPos-= yy_startRead;
-      yy_startRead = 0;
-    }
-
-    /* is the buffer big enough? */
-    if (yy_currentPos >= yy_buffer.length) {
-      /* if not: blow it up */
-      char newBuffer[] = new char[yy_currentPos*2];
-      System.arraycopy(yy_buffer, 0, newBuffer, 0, yy_buffer.length);
-      yy_buffer = newBuffer;
-    }
-
-    /* finally: fill the buffer with new input */
-    int numRead = yy_reader.read(yy_buffer, yy_endRead, 
-                                            yy_buffer.length-yy_endRead);
-
-    if ( numRead == -1 ) return YYEOF;
-
-    yy_endRead+= numRead;
-
-    return yy_buffer[yy_currentPos++];
-  }
-
-
-  /**
-   * Closes the input stream.
-   */
-  final public void yyclose() throws java.io.IOException {
-    yy_atEOF = true;            /* indicate end of file */
-    yy_endRead = yy_startRead;  /* invalidate buffer    */
-    yy_reader.close();
-  }
-
-
-  /**
-   * Returns the current lexical state.
-   */
-  final public int yystate() {
-    return yy_lexical_state;
-  }
-
-  /**
-   * Enters a new lexical state
-   *
-   * @param newState the new lexical state
-   */
-  final public void yybegin(int newState) {
-    yy_lexical_state = newState;
-  }
-
-
-  /**
-   * Returns the text matched by the current regular expression.
-   */
-  final public String yytext() {
-    return new String( yy_buffer, yy_startRead, yy_markedPos-yy_startRead );
-  }
-
-  /**
-   * Returns the length of the matched text region.
-   */
-  final public int yylength() {
-    return yy_markedPos-yy_startRead;
-  }
-
-
-  /**
-   * Reports an error that occured while scanning.
-   *
-   * @param   errorCode  the code of the errormessage to display
-   */
-  private void yy_ScanError(int errorCode) {
-    try {
-      System.out.println(YY_ERROR_MSG[errorCode]);
-    }
-    catch (ArrayIndexOutOfBoundsException e) {
-      System.out.println(YY_ERROR_MSG[YY_UNKNOWN_ERROR]);
-    }
-
-    System.exit(1);
-  } 
-
-
-  /**
-   * Pushes the specified amount of characters back into the input stream.
-   *
-   * They will be read again by then next call of the scanning method
-   *
-   * @param number  the number of characters to be read again.
-   *                This number must not be greater than yylength()!
-   */
-  private void yypushback(int number) {
-    if ( number > yylength() )
-      yy_ScanError(YY_PUSHBACK_2BIG);
-
-    yy_markedPos -= number;
-  }
-
-
-  /**
-   * Contains user EOF-code, which will be executed exactly once,
-   * when the end of file is reached
-   */
-  private void yy_do_eof() {
-    if (!yy_eof_done) {
-      yy_eof_done = true;
-    	hasMore=false;
-
-    }
-  }
-
-
-  /**
-   * Resumes scanning until the next regular expression is matched,
-   * the end of input is encountered or an I/O-Error occurs.
-   *
-   * @return      the next token
-   * @exception   IOException  if any I/O-Error occurs
-   */
-  public String primGetNextToken() throws java.io.IOException {
-    int yy_input;
-    int yy_action;
-
-    yy_pushbackPos = -1;
-    boolean yy_was_pushback;
-
-    while (true) {
-
-      yychar+= yylength();
-
-      yy_atBOL = yy_markedPos <= 0 || yy_buffer[yy_markedPos-1] == '\n';
-      if (!yy_atBOL && yy_buffer[yy_markedPos-1] == '\r') {
-        yy_atBOL = yy_advance() != '\n';
-        if (!yy_atEOF) yy_currentPos--;
-      }
-
-      yy_action = -1;
-
-      yy_currentPos = yy_startRead = yy_markedPos;
-
-      if (yy_atBOL)
-        yy_state = YY_LEXSTATE[yy_lexical_state+1];
-      else
-        yy_state = YY_LEXSTATE[yy_lexical_state];
-
-      yy_was_pushback = false;
-
-      yy_forAction: {
-        while (true) {
-
-          yy_input = yy_advance();
-
-          if ( yy_input == YYEOF ) break yy_forAction;
-
-          yy_input = yycmap[yy_input];
-
-          boolean yy_pushback = false;
-          boolean yy_isFinal = false;
-          boolean yy_noLookAhead = false;
-
-          yy_forNext: { switch (yy_state) {
-            case 0:
-              switch (yy_input) {
-                case 1: yy_isFinal = true; yy_state = 10; break yy_forNext;
-                case 2: yy_isFinal = true; yy_state = 11; break yy_forNext;
-                case 3: yy_isFinal = true; yy_state = 12; break yy_forNext;
-                case 9: yy_isFinal = true; yy_state = 13; break yy_forNext;
-                case 11: yy_isFinal = true; yy_state = 14; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 9; break yy_forNext;
-              }
-
-            case 1:
-              switch (yy_input) {
-                case 1: yy_isFinal = true; yy_state = 10; break yy_forNext;
-                case 2: yy_isFinal = true; yy_state = 11; break yy_forNext;
-                case 3: yy_isFinal = true; yy_state = 12; break yy_forNext;
-                case 6: 
-                case 7: 
-                case 8: yy_isFinal = true; yy_state = 15; break yy_forNext;
-                case 9: yy_isFinal = true; yy_state = 16; break yy_forNext;
-                case 11: yy_isFinal = true; yy_state = 17; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 9; break yy_forNext;
-              }
-
-            case 2:
-              switch (yy_input) {
-                case 9: yy_isFinal = true; yy_state = 18; break yy_forNext;
-                case 12: yy_isFinal = true; yy_state = 19; break yy_forNext;
-                case 16: yy_isFinal = true; yy_state = 20; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 9; break yy_forNext;
-              }
-
-            case 3:
-              switch (yy_input) {
-                case 9: yy_isFinal = true; yy_state = 21; break yy_forNext;
-                case 25: yy_isFinal = true; yy_state = 22; break yy_forNext;
-                case 26: yy_isFinal = true; yy_state = 23; break yy_forNext;
-                case 34: yy_isFinal = true; yy_state = 24; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 9; break yy_forNext;
-              }
-
-            case 4:
-              switch (yy_input) {
-                case 6: 
-                case 8: yy_isFinal = true; yy_state = 26; break yy_forNext;
-                case 7: yy_isFinal = true; yy_state = 27; break yy_forNext;
-                case 9: yy_isFinal = true; yy_state = 28; break yy_forNext;
-                case 32: yy_isFinal = true; yy_state = 29; break yy_forNext;
-                case 35: yy_isFinal = true; yy_state = 30; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
-              }
-
-            case 5:
-              switch (yy_input) {
-                case 7: 
-                case 8: 
-                case 11: 
-                case 25: yy_isFinal = true; yy_state = 32; break yy_forNext;
-                case 9: yy_isFinal = true; yy_state = 33; break yy_forNext;
-                case 12: 
-                case 34: yy_isFinal = true; yy_state = 34; break yy_forNext;
-                case 32: yy_isFinal = true; yy_state = 35; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 31; break yy_forNext;
-              }
-
-            case 6:
-              switch (yy_input) {
-                case 7: 
-                case 8: 
-                case 11: 
-                case 25: yy_isFinal = true; yy_state = 32; break yy_forNext;
-                case 34: yy_isFinal = true; yy_state = 34; break yy_forNext;
-                case 35: yy_isFinal = true; yy_state = 35; break yy_forNext;
-                case 9: yy_isFinal = true; yy_state = 36; break yy_forNext;
-                case 36: yy_isFinal = true; yy_state = 37; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 31; break yy_forNext;
-              }
-
-            case 7:
-              switch (yy_input) {
-                case 11: 
-                case 25: yy_isFinal = true; yy_state = 32; break yy_forNext;
-                case 34: yy_isFinal = true; yy_state = 34; break yy_forNext;
-                case 12: yy_isFinal = true; yy_state = 37; break yy_forNext;
-                case 6: 
-                case 7: 
-                case 8: yy_isFinal = true; yy_state = 38; break yy_forNext;
-                case 9: yy_isFinal = true; yy_state = 39; break yy_forNext;
-                case 32: 
-                case 35: yy_isFinal = true; yy_state = 40; break yy_forNext;
-                case 37: yy_isFinal = true; yy_pushbackPos = yy_currentPos; yy_pushback = true; yy_state = 41; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 31; break yy_forNext;
-              }
-
-            case 8:
-              switch (yy_input) {
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 9; break yy_forNext;
-                case 6: 
-                case 7: 
-                case 8: yy_isFinal = true; yy_noLookAhead = true; yy_state = 31; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 42; break yy_forNext;
-              }
-
-            case 10:
-              switch (yy_input) {
-                case 2: yy_isFinal = true; yy_noLookAhead = true; yy_state = 43; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 11:
-              switch (yy_input) {
-                case 1: yy_isFinal = true; yy_noLookAhead = true; yy_state = 44; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 12:
-              switch (yy_input) {
-                case 4: yy_state = 45; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 13:
-              switch (yy_input) {
-                case 11: yy_state = 46; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 14:
-              switch (yy_input) {
-                case 9: yy_state = 47; break yy_forNext;
-                case 14: yy_state = 48; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 15:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 49; break yy_forNext;
-                case 9: yy_state = 50; break yy_forNext;
-                case 11: yy_state = 51; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 16:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 49; break yy_forNext;
-                case 11: yy_state = 52; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 17:
-              switch (yy_input) {
-                case 14: yy_state = 48; break yy_forNext;
-                case 9: yy_state = 53; break yy_forNext;
-                case 12: yy_state = 54; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 18:
-              switch (yy_input) {
-                case 12: yy_state = 55; break yy_forNext;
-                case 16: yy_state = 56; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 19:
-              switch (yy_input) {
-                case 9: yy_state = 57; break yy_forNext;
-                case 25: yy_isFinal = true; yy_state = 58; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 20:
-              switch (yy_input) {
-                case 9: yy_state = 59; break yy_forNext;
-                case 19: yy_state = 60; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 21:
-              switch (yy_input) {
-                case 25: yy_isFinal = true; yy_state = 22; break yy_forNext;
-                case 26: yy_state = 61; break yy_forNext;
-                case 34: yy_state = 62; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 22:
-              switch (yy_input) {
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 63; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 23:
-              switch (yy_input) {
-                case 9: yy_state = 64; break yy_forNext;
-                case 17: yy_state = 65; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 24:
-              switch (yy_input) {
-                case 9: yy_state = 66; break yy_forNext;
-                case 25: yy_isFinal = true; yy_state = 67; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 26:
-              switch (yy_input) {
-                case 6: 
-                case 8: yy_isFinal = true; yy_state = 26; break yy_forNext;
-                case 7: yy_state = 68; break yy_forNext;
-                case 9: yy_isFinal = true; yy_state = 69; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
-              }
-
-            case 27:
-              switch (yy_input) {
-                case 6: 
-                case 8: yy_isFinal = true; yy_state = 26; break yy_forNext;
-                case 7: yy_state = 68; break yy_forNext;
-                case 9: yy_isFinal = true; yy_state = 69; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
-              }
-
-            case 28:
-              switch (yy_input) {
-                case 32: yy_isFinal = true; yy_state = 29; break yy_forNext;
-                case 35: yy_isFinal = true; yy_state = 30; break yy_forNext;
-                case 6: 
-                case 7: 
-                case 8: yy_state = 68; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 29:
-              switch (yy_input) {
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 70; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 30:
-              switch (yy_input) {
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 71; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 32:
-              switch (yy_input) {
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 72; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 33:
-              switch (yy_input) {
-                case 7: 
-                case 8: 
-                case 11: 
-                case 25: yy_isFinal = true; yy_state = 32; break yy_forNext;
-                case 32: yy_isFinal = true; yy_state = 35; break yy_forNext;
-                case 12: 
-                case 34: yy_state = 73; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 34:
-              switch (yy_input) {
-                case 9: yy_state = 74; break yy_forNext;
-                case 25: yy_isFinal = true; yy_state = 75; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 35:
-              switch (yy_input) {
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 76; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 36:
-              switch (yy_input) {
-                case 7: 
-                case 8: 
-                case 11: 
-                case 25: yy_isFinal = true; yy_state = 32; break yy_forNext;
-                case 35: yy_isFinal = true; yy_state = 35; break yy_forNext;
-                case 34: yy_state = 73; break yy_forNext;
-                case 36: yy_state = 77; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 37:
-              switch (yy_input) {
-                case 25: yy_isFinal = true; yy_state = 32; break yy_forNext;
-                case 9: yy_state = 78; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 38:
-              switch (yy_input) {
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 79; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 39:
-              switch (yy_input) {
-                case 11: 
-                case 25: yy_isFinal = true; yy_state = 32; break yy_forNext;
-                case 6: 
-                case 7: 
-                case 8: yy_isFinal = true; yy_state = 38; break yy_forNext;
-                case 32: 
-                case 35: yy_isFinal = true; yy_state = 40; break yy_forNext;
-                case 34: yy_state = 73; break yy_forNext;
-                case 12: yy_state = 77; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 40:
-              switch (yy_input) {
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 80; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 41:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_isFinal = true; yy_pushback = true; yy_state = 81; break yy_forNext;
-                case 9: yy_state = 82; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 45:
-              switch (yy_input) {
-                case 5: yy_isFinal = true; yy_noLookAhead = true; yy_state = 83; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 46:
-              switch (yy_input) {
-                case 9: yy_state = 47; break yy_forNext;
-                case 14: yy_state = 48; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 47:
-              switch (yy_input) {
-                case 14: yy_state = 48; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 48:
-              switch (yy_input) {
-                case 9: yy_state = 84; break yy_forNext;
-                case 16: yy_state = 85; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 49:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 49; break yy_forNext;
-                case 9: yy_state = 50; break yy_forNext;
-                case 11: yy_state = 51; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 50:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 49; break yy_forNext;
-                case 11: yy_state = 51; break yy_forNext;
-                case 9: yy_state = 86; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 51:
-              switch (yy_input) {
-                case 12: yy_state = 54; break yy_forNext;
-                case 9: yy_state = 87; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 52:
-              switch (yy_input) {
-                case 14: yy_state = 48; break yy_forNext;
-                case 9: yy_state = 53; break yy_forNext;
-                case 12: yy_state = 54; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 53:
-              switch (yy_input) {
-                case 14: yy_state = 48; break yy_forNext;
-                case 12: yy_state = 54; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 54:
-              switch (yy_input) {
-                case 9: yy_state = 88; break yy_forNext;
-                case 13: yy_state = 89; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 55:
-              switch (yy_input) {
-                case 9: yy_state = 57; break yy_forNext;
-                case 25: yy_isFinal = true; yy_state = 58; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 56:
-              switch (yy_input) {
-                case 9: yy_state = 59; break yy_forNext;
-                case 19: yy_state = 60; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 57:
-              switch (yy_input) {
-                case 25: yy_isFinal = true; yy_state = 58; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 58:
-              switch (yy_input) {
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 90; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 59:
-              switch (yy_input) {
-                case 19: yy_state = 60; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 60:
-              switch (yy_input) {
-                case 9: yy_state = 91; break yy_forNext;
-                case 20: yy_state = 92; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 61:
-              switch (yy_input) {
-                case 9: yy_state = 64; break yy_forNext;
-                case 17: yy_state = 65; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 62:
-              switch (yy_input) {
-                case 9: yy_state = 66; break yy_forNext;
-                case 25: yy_isFinal = true; yy_state = 67; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 64:
-              switch (yy_input) {
-                case 17: yy_state = 65; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 65:
-              switch (yy_input) {
-                case 9: yy_state = 93; break yy_forNext;
-                case 17: yy_state = 94; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 66:
-              switch (yy_input) {
-                case 25: yy_isFinal = true; yy_state = 67; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 67:
-              switch (yy_input) {
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 95; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 68:
-              switch (yy_input) {
-                case 6: 
-                case 8: yy_isFinal = true; yy_state = 26; break yy_forNext;
-                case 7: yy_state = 68; break yy_forNext;
-                case 9: yy_isFinal = true; yy_state = 69; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
-              }
-
-            case 69:
-              switch (yy_input) {
-                case 6: 
-                case 8: yy_isFinal = true; yy_state = 26; break yy_forNext;
-                case 7: yy_state = 68; break yy_forNext;
-                case 9: yy_isFinal = true; yy_state = 96; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
-              }
-
-            case 73:
-              switch (yy_input) {
-                case 9: yy_state = 74; break yy_forNext;
-                case 25: yy_isFinal = true; yy_state = 75; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 74:
-              switch (yy_input) {
-                case 25: yy_isFinal = true; yy_state = 75; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 75:
-              switch (yy_input) {
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 97; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 77:
-              switch (yy_input) {
-                case 25: yy_isFinal = true; yy_state = 32; break yy_forNext;
-                case 9: yy_state = 78; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 78:
-              switch (yy_input) {
-                case 25: yy_isFinal = true; yy_state = 32; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 81:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_isFinal = true; yy_pushback = true; yy_state = 81; break yy_forNext;
-                case 9: yy_isFinal = true; yy_pushback = true; yy_state = 98; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 82:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_isFinal = true; yy_pushback = true; yy_state = 81; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 84:
-              switch (yy_input) {
-                case 16: yy_state = 85; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 85:
-              switch (yy_input) {
-                case 9: yy_state = 99; break yy_forNext;
-                case 17: yy_state = 100; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 86:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 49; break yy_forNext;
-                case 11: yy_state = 51; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 87:
-              switch (yy_input) {
-                case 12: yy_state = 54; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 88:
-              switch (yy_input) {
-                case 13: yy_state = 89; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 89:
-              switch (yy_input) {
-                case 9: yy_state = 101; break yy_forNext;
-                case 14: yy_state = 102; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 91:
-              switch (yy_input) {
-                case 20: yy_state = 92; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 92:
-              switch (yy_input) {
-                case 9: yy_state = 103; break yy_forNext;
-                case 21: yy_state = 104; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 93:
-              switch (yy_input) {
-                case 17: yy_state = 94; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 94:
-              switch (yy_input) {
-                case 9: yy_state = 105; break yy_forNext;
-                case 27: yy_state = 106; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 96:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 68; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 98:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_isFinal = true; yy_pushback = true; yy_state = 81; break yy_forNext;
-                case 9: yy_state = 82; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 99:
-              switch (yy_input) {
-                case 17: yy_state = 100; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 100:
-              switch (yy_input) {
-                case 9: yy_state = 107; break yy_forNext;
-                case 18: yy_isFinal = true; yy_state = 108; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 101:
-              switch (yy_input) {
-                case 14: yy_state = 102; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 102:
-              switch (yy_input) {
-                case 9: yy_state = 109; break yy_forNext;
-                case 15: yy_state = 110; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 103:
-              switch (yy_input) {
-                case 21: yy_state = 104; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 104:
-              switch (yy_input) {
-                case 9: yy_state = 111; break yy_forNext;
-                case 22: yy_state = 112; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 105:
-              switch (yy_input) {
-                case 27: yy_state = 106; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 106:
-              switch (yy_input) {
-                case 9: yy_state = 113; break yy_forNext;
-                case 28: yy_state = 114; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 107:
-              switch (yy_input) {
-                case 18: yy_isFinal = true; yy_state = 108; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 108:
-              switch (yy_input) {
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 115; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 109:
-              switch (yy_input) {
-                case 15: yy_state = 110; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 110:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_isFinal = true; yy_state = 116; break yy_forNext;
-                case 9: yy_state = 117; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 111:
-              switch (yy_input) {
-                case 22: yy_state = 112; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 112:
-              switch (yy_input) {
-                case 9: yy_state = 118; break yy_forNext;
-                case 23: yy_state = 119; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 113:
-              switch (yy_input) {
-                case 28: yy_state = 114; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 114:
-              switch (yy_input) {
-                case 9: yy_state = 120; break yy_forNext;
-                case 16: yy_state = 121; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 116:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_isFinal = true; yy_state = 116; break yy_forNext;
-                case 9: yy_isFinal = true; yy_state = 122; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 117:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_isFinal = true; yy_state = 116; break yy_forNext;
-                case 9: yy_state = 123; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 118:
-              switch (yy_input) {
-                case 23: yy_state = 119; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 119:
-              switch (yy_input) {
-                case 9: yy_state = 124; break yy_forNext;
-                case 19: yy_state = 125; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 120:
-              switch (yy_input) {
-                case 16: yy_state = 121; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 121:
-              switch (yy_input) {
-                case 9: yy_state = 126; break yy_forNext;
-                case 29: yy_state = 127; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 122:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_isFinal = true; yy_state = 116; break yy_forNext;
-                case 9: yy_state = 123; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 123:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_isFinal = true; yy_state = 116; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 124:
-              switch (yy_input) {
-                case 19: yy_state = 125; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 125:
-              switch (yy_input) {
-                case 9: yy_state = 128; break yy_forNext;
-                case 24: yy_state = 129; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 126:
-              switch (yy_input) {
-                case 29: yy_state = 127; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 127:
-              switch (yy_input) {
-                case 9: yy_state = 130; break yy_forNext;
-                case 30: yy_state = 131; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 128:
-              switch (yy_input) {
-                case 24: yy_state = 129; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 129:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 129; break yy_forNext;
-                case 9: yy_state = 132; break yy_forNext;
-                case 10: yy_isFinal = true; yy_state = 133; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 130:
-              switch (yy_input) {
-                case 30: yy_state = 131; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 131:
-              switch (yy_input) {
-                case 9: yy_state = 134; break yy_forNext;
-                case 23: yy_state = 135; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 132:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 129; break yy_forNext;
-                case 10: yy_isFinal = true; yy_state = 133; break yy_forNext;
-                case 9: yy_state = 136; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 133:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_isFinal = true; yy_state = 137; break yy_forNext;
-                case 9: yy_state = 138; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 134:
-              switch (yy_input) {
-                case 23: yy_state = 135; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 135:
-              switch (yy_input) {
-                case 9: yy_state = 139; break yy_forNext;
-                case 31: yy_state = 140; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 136:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 129; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 137:
-              switch (yy_input) {
-                case 9: yy_isFinal = true; yy_state = 133; break yy_forNext;
-                case 6: 
-                case 7: 
-                case 8: yy_isFinal = true; yy_state = 137; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 138:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_isFinal = true; yy_state = 137; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 139:
-              switch (yy_input) {
-                case 31: yy_state = 140; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 140:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 140; break yy_forNext;
-                case 9: yy_state = 141; break yy_forNext;
-                case 10: yy_state = 142; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 141:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 140; break yy_forNext;
-                case 10: yy_state = 142; break yy_forNext;
-                case 9: yy_state = 143; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 142:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 144; break yy_forNext;
-                case 9: yy_state = 145; break yy_forNext;
-                case 20: yy_state = 146; break yy_forNext;
-                case 32: yy_state = 147; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 143:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 140; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 144:
-              switch (yy_input) {
-                case 9: yy_state = 142; break yy_forNext;
-                case 6: 
-                case 7: 
-                case 8: yy_state = 144; break yy_forNext;
-                case 20: yy_state = 146; break yy_forNext;
-                case 32: yy_state = 147; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 145:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 144; break yy_forNext;
-                case 20: yy_state = 146; break yy_forNext;
-                case 32: yy_state = 147; break yy_forNext;
-                case 9: yy_state = 148; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 146:
-              switch (yy_input) {
-                case 9: yy_state = 149; break yy_forNext;
-                case 21: yy_state = 150; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 147:
-              switch (yy_input) {
-                case 20: yy_state = 146; break yy_forNext;
-                case 9: yy_state = 148; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 148:
-              switch (yy_input) {
-                case 20: yy_state = 146; break yy_forNext;
-                case 9: yy_state = 151; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 149:
-              switch (yy_input) {
-                case 21: yy_state = 150; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 150:
-              switch (yy_input) {
-                case 9: yy_state = 152; break yy_forNext;
-                case 19: yy_state = 153; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 151:
-              switch (yy_input) {
-                case 20: yy_state = 146; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 152:
-              switch (yy_input) {
-                case 19: yy_state = 153; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 153:
-              switch (yy_input) {
-                case 9: yy_state = 154; break yy_forNext;
-                case 17: yy_state = 155; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 154:
-              switch (yy_input) {
-                case 17: yy_state = 155; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 155:
-              switch (yy_input) {
-                case 9: yy_state = 156; break yy_forNext;
-                case 16: yy_state = 157; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 156:
-              switch (yy_input) {
-                case 16: yy_state = 157; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 157:
-              switch (yy_input) {
-                case 9: yy_state = 158; break yy_forNext;
-                case 19: yy_state = 159; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 158:
-              switch (yy_input) {
-                case 19: yy_state = 159; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 159:
-              switch (yy_input) {
-                case 9: yy_state = 160; break yy_forNext;
-                case 17: yy_state = 161; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 160:
-              switch (yy_input) {
-                case 17: yy_state = 161; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 161:
-              switch (yy_input) {
-                case 9: yy_state = 162; break yy_forNext;
-                case 28: yy_state = 163; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 162:
-              switch (yy_input) {
-                case 28: yy_state = 163; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 163:
-              switch (yy_input) {
-                case 9: yy_state = 164; break yy_forNext;
-                case 17: yy_state = 165; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 164:
-              switch (yy_input) {
-                case 17: yy_state = 165; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 165:
-              switch (yy_input) {
-                case 9: yy_state = 166; break yy_forNext;
-                case 33: yy_state = 167; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 166:
-              switch (yy_input) {
-                case 33: yy_state = 167; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 167:
-              switch (yy_input) {
-                case 9: yy_state = 168; break yy_forNext;
-                case 27: yy_state = 169; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 168:
-              switch (yy_input) {
-                case 27: yy_state = 169; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 169:
-              switch (yy_input) {
-                case 9: yy_state = 170; break yy_forNext;
-                case 16: yy_state = 171; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 170:
-              switch (yy_input) {
-                case 16: yy_state = 171; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 171:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 172; break yy_forNext;
-                case 9: yy_state = 173; break yy_forNext;
-                case 32: yy_state = 174; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 172:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 172; break yy_forNext;
-                case 9: yy_state = 175; break yy_forNext;
-                case 20: yy_state = 176; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 173:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 172; break yy_forNext;
-                case 32: yy_state = 174; break yy_forNext;
-                case 9: yy_state = 177; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 174:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 172; break yy_forNext;
-                case 9: yy_state = 177; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 175:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 172; break yy_forNext;
-                case 20: yy_state = 176; break yy_forNext;
-                case 9: yy_state = 178; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 176:
-              switch (yy_input) {
-                case 9: yy_state = 179; break yy_forNext;
-                case 21: yy_state = 180; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 177:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 172; break yy_forNext;
-                case 9: yy_state = 181; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 178:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 172; break yy_forNext;
-                case 20: yy_state = 176; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 179:
-              switch (yy_input) {
-                case 21: yy_state = 180; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 180:
-              switch (yy_input) {
-                case 9: yy_state = 182; break yy_forNext;
-                case 19: yy_state = 183; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 181:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 172; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 182:
-              switch (yy_input) {
-                case 19: yy_state = 183; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 183:
-              switch (yy_input) {
-                case 9: yy_state = 184; break yy_forNext;
-                case 17: yy_state = 185; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 184:
-              switch (yy_input) {
-                case 17: yy_state = 185; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 185:
-              switch (yy_input) {
-                case 9: yy_state = 186; break yy_forNext;
-                case 16: yy_state = 187; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 186:
-              switch (yy_input) {
-                case 16: yy_state = 187; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 187:
-              switch (yy_input) {
-                case 9: yy_state = 188; break yy_forNext;
-                case 19: yy_state = 189; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 188:
-              switch (yy_input) {
-                case 19: yy_state = 189; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 189:
-              switch (yy_input) {
-                case 9: yy_state = 190; break yy_forNext;
-                case 17: yy_state = 191; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 190:
-              switch (yy_input) {
-                case 17: yy_state = 191; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 191:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 191; break yy_forNext;
-                case 9: yy_state = 192; break yy_forNext;
-                case 10: yy_isFinal = true; yy_state = 193; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 192:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 191; break yy_forNext;
-                case 10: yy_isFinal = true; yy_state = 193; break yy_forNext;
-                case 9: yy_state = 194; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 193:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_isFinal = true; yy_state = 195; break yy_forNext;
-                case 9: yy_state = 196; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 194:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_state = 191; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 195:
-              switch (yy_input) {
-                case 9: yy_isFinal = true; yy_state = 193; break yy_forNext;
-                case 6: 
-                case 7: 
-                case 8: yy_isFinal = true; yy_state = 195; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 196:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 8: yy_isFinal = true; yy_state = 195; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            default:
-              yy_ScanError(YY_ILLEGAL_STATE);
-              break;
-          } }
-
-          if ( yy_isFinal ) {
-            yy_was_pushback = yy_pushback;
-            yy_action = yy_state; 
-            yy_markedPos = yy_currentPos; 
-            if ( yy_noLookAhead ) break yy_forAction;
-          }
-
-        }
-      }
-
-      if (yy_was_pushback)
-        yy_markedPos = yy_pushbackPos;
-
-      switch (yy_action) {    
-
-        case 32: 
-        case 72: 
-          {  yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 198: break;
-        case 25: 
-        case 26: 
-        case 28: 
-        case 69: 
-        case 96: 
-          {  yypushback(1); yybegin(UnDelimitedString); string.setLength(0); }
-        case 199: break;
-        case 22: 
-        case 63: 
-          {  yybegin(YYINITIAL);  if (foundContentTypeValue) hasMore = false; return HTMLHeadTokenizerConstants.MetaTagEnd; }
-        case 200: break;
-        case 40: 
-        case 80: 
-          {  yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue; }
-        case 201: break;
-        case 67: 
-        case 95: 
-          {  yybegin(YYINITIAL); if (foundContentTypeValue) hasMore = false; return HTMLHeadTokenizerConstants.MetaTagEnd; }
-        case 202: break;
-        case 75: 
-        case 97: 
-          {  yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 203: break;
-        case 116: 
-        case 122: 
-          { if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;} }
-        case 204: break;
-        case 9: 
-        case 10: 
-        case 11: 
-        case 12: 
-        case 13: 
-        case 14: 
-        case 15: 
-        case 16: 
-        case 17: 
-        case 18: 
-        case 19: 
-        case 20: 
-        case 21: 
-        case 23: 
-        case 24: 
-        case 27: 
-        case 33: 
-        case 36: 
-        case 39: 
-          { if(yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;} }
-        case 205: break;
-        case 108: 
-        case 115: 
-          { yybegin(ST_META_TAG); return HTMLHeadTokenizerConstants.MetaTagStart; }
-        case 206: break;
-        case 58: 
-        case 90: 
-          { yybegin(YYINITIAL);  return XMLHeadTokenizerConstants.XMLDeclEnd; }
-        case 207: break;
-        case 193: 
-        case 195: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); foundContentTypeValue=true; return HTMLHeadTokenizerConstants.MetaTagContentType; }
-        case 208: break;
-        case 133: 
-        case 137: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding; }
-        case 209: break;
-        case 83: 
-          { hasMore = false; return EncodingParserConstants.UTF83ByteBOM; }
-        case 210: break;
-        case 43: 
-          { hasMore = false; return EncodingParserConstants.UTF16BE; }
-        case 211: break;
-        case 44: 
-          { hasMore = false; return EncodingParserConstants.UTF16LE; }
-        case 212: break;
-        case 35: 
-        case 76: 
-          {  popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;  }
-        case 213: break;
-        case 31: 
-        case 34: 
-        case 37: 
-          {  string.append( yytext() );  }
-        case 214: break;
-        case 30: 
-        case 71: 
-          {  yybegin(SQ_STRING); string.setLength(0);  }
-        case 215: break;
-        case 29: 
-        case 70: 
-          {  yybegin(DQ_STRING); string.setLength(0);  }
-        case 216: break;
-        case 38: 
-        case 79: 
-          {  yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue;  }
-        case 217: break;
-        case 41: 
-        case 81: 
-        case 98: 
-          {  pushCurrentState(); yybegin(UnDelimitedCharset); string.append( yytext() );  }
-        case 218: break;
-        case 42: 
-          { yypushback(1); popState();  }
-        case 219: break;
-        default: 
-          if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
-            yy_atEOF = true;
-            yy_do_eof();
-              { hasMore = false; return EncodingParserConstants.EOF; }
-          } 
-          else {
-            yy_ScanError(YY_NO_MATCH);
-          }
-      }
-    }
-  }    
-
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLHeadTokenizerConstants.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLHeadTokenizerConstants.java
deleted file mode 100644
index 938bcde..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLHeadTokenizerConstants.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contenttype;
-
-
-public interface HTMLHeadTokenizerConstants {
-
-	String MetaTagEnd = "MetaTagEnd"; //$NON-NLS-1$
-	String MetaTagStart = "MetaTagStart"; //$NON-NLS-1$
-	String MetaTagContentType = "MetaTagContentType"; //$NON-NLS-1$
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLResourceEncodingDetector.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLResourceEncodingDetector.java
deleted file mode 100644
index 0367e54..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLResourceEncodingDetector.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contenttype;
-
-import java.io.IOException;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.wst.sse.core.internal.encoding.CodedIO;
-import org.eclipse.wst.sse.core.internal.encoding.EncodingMemento;
-import org.eclipse.wst.sse.core.internal.encoding.IResourceCharsetDetector;
-import org.eclipse.wst.xml.core.internal.contenttype.EncodingParserConstants;
-
-public class HTMLResourceEncodingDetector extends AbstractResourceEncodingDetector implements IResourceCharsetDetector {
-
-	private HTMLHeadTokenizer fTokenizer;
-
-	/**
-	 * There is no spec defined encoding for HTML (historically), so null is
-	 * returned.
-	 */
-	public String getSpecDefaultEncoding() {
-		return null;
-	}
-
-	private boolean canHandleAsUnicodeStream(String tokenType) {
-		boolean canHandleAsUnicodeStream = false;
-		if (tokenType == EncodingParserConstants.UTF83ByteBOM) {
-			canHandleAsUnicodeStream = true;
-			String enc = "UTF-8"; //$NON-NLS-1$
-			createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES);
-			fEncodingMemento.setUTF83ByteBOMUsed(true);
-		}
-		else if (tokenType == EncodingParserConstants.UTF16BE || tokenType == EncodingParserConstants.UTF16LE) {
-			canHandleAsUnicodeStream = true;
-			String enc = "UTF-16"; //$NON-NLS-1$
-			byte[] bom = (tokenType == EncodingParserConstants.UTF16BE) ? IContentDescription.BOM_UTF_16BE : IContentDescription.BOM_UTF_16LE;
-			createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES);
-			fEncodingMemento.setUnicodeStream(true);
-			fEncodingMemento.setUnicodeBOM(bom);
-		}
-		return canHandleAsUnicodeStream;
-	}
-
-	/**
-	 * @return Returns the tokenizer.
-	 */
-	private HTMLHeadTokenizer getTokenizer() {
-		// TODO: need to work on 'reset' in tokenizer, so new instance isn't
-		// always needed
-		//if (fTokenizer == null) {
-		fTokenizer = new HTMLHeadTokenizer();
-		//		}
-		return fTokenizer;
-	}
-
-	private boolean isLegalString(String valueTokenType) {
-		if (valueTokenType == null)
-			return false;
-		else
-			return valueTokenType.equals(EncodingParserConstants.StringValue) || valueTokenType.equals(EncodingParserConstants.UnDelimitedStringValue) || valueTokenType.equals(EncodingParserConstants.InvalidTerminatedStringValue) || valueTokenType.equals(EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue);
-	}
-
-	protected void parseInput() throws IOException {
-		checkInContent();
-		if (fEncodingMemento == null) {
-			checkHeuristics();
-		}
-	}
-
-	/**
-	 *  
-	 */
-	private void checkHeuristics() throws IOException {
-		boolean noHeuristic = false;
-		String heuristicEncoding = null;
-		try {
-			fReader.reset();
-			fReader.mark(CodedIO.MAX_MARK_SIZE);
-			byte[] bytes = new byte[CodedIO.MAX_MARK_SIZE];
-			int nRead = 0;
-			for (int i = 0; i < bytes.length; i++) {
-				if (fReader.ready()) {
-					int oneByte = fReader.read();
-					nRead++;
-					if (oneByte <= 0xFF) {
-						bytes[i] = (byte) oneByte;
-					}
-					else {
-						noHeuristic = true;
-						break;
-					}
-				}
-				else {
-					break;
-				}
-			}
-			if (!noHeuristic) {
-				heuristicEncoding = EncodingGuesser.guessEncoding(bytes, nRead);
-			}
-		}
-		catch (IOException e) {
-			// if any IO exception, then not a heuristic case
-		}
-		finally {
-			fReader.reset();
-		}
-		if (heuristicEncoding != null) {
-			createEncodingMemento(heuristicEncoding, EncodingMemento.GUESSED_ENCODING_FROM_STREAM);
-		}
-
-	}
-
-	private void checkInContent() throws IOException {
-		HTMLHeadTokenizer tokenizer = getTokenizer();
-		tokenizer.reset(fReader);
-		HeadParserToken token = null;
-		String tokenType = null;
-		String contentTypeValue = null;
-		do {
-			token = tokenizer.getNextToken();
-			tokenType = token.getType();
-			if (canHandleAsUnicodeStream(tokenType)) {
-				// side effect of canHandle is to create appropriate
-				// memento
-			}
-			else if (tokenType == HTMLHeadTokenizerConstants.MetaTagContentType) {
-				if (tokenizer.hasMoreTokens()) {
-					HeadParserToken valueToken = tokenizer.getNextToken();
-					String valueTokenType = valueToken.getType();
-					if (isLegalString(valueTokenType)) {
-						contentTypeValue = valueToken.getText();
-
-					}
-				}
-			}
-
-		}
-		while (tokenizer.hasMoreTokens());
-		if (contentTypeValue != null) {
-			parseContentTypeValue(contentTypeValue);
-		}
-	}
-
-	private void parseContentTypeValue(String contentType) {
-		String charset = null;
-		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()) {
-							charset = parts[0].substring(eqpos);
-							charset = charset.trim();
-						}
-					}
-				}
-			}
-			else {
-				//fContentType = parts[0];
-			}
-		}
-		if (parts.length > 1) {
-			charset = parts[1].trim();
-		}
-		
-		if (charset != null && charset.length() > 0) {
-			createEncodingMemento(charset, EncodingMemento.FOUND_ENCODING_IN_CONTENT);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HeadParserToken.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HeadParserToken.java
deleted file mode 100644
index a6190bf..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/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.wst.html.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.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/IntStack.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/IntStack.java
deleted file mode 100644
index 88b8ba8..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/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.wst.html.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.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/NullMemento.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/NullMemento.java
deleted file mode 100644
index 1a24c31..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/NullMemento.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.contenttype;
-
-import org.eclipse.wst.sse.core.internal.encoding.EncodingMemento;
-import org.eclipse.wst.sse.core.internal.encoding.NonContentBasedEncodingRules;
-
-
-
-/**
- * This class can be used in place of an EncodingMemento (its super class),
- * when there is not in fact ANY encoding information. For example, when a
- * structuredDocument is created directly from a String
- */
-public class NullMemento extends EncodingMemento {
-	/**
-	 *  
-	 */
-	public NullMemento() {
-		super();
-		String defaultCharset = NonContentBasedEncodingRules.useDefaultNameRules(null);
-		setJavaCharsetName(defaultCharset);
-		setAppropriateDefault(defaultCharset);
-		setDetectedCharsetName(null);
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DOMStyleModelImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DOMStyleModelImpl.java
deleted file mode 100644
index dc2de33..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DOMStyleModelImpl.java
+++ /dev/null
@@ -1,67 +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
- *******************************************************************************/
-/*
- * Created on Sep 2, 2003
- *
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-package org.eclipse.wst.html.core.internal.document;
-
-import org.eclipse.wst.xml.core.internal.document.DOMModelImpl;
-import org.w3c.dom.Document;
-
-/**
- * @author davidw
- *
- * To change the template for this generated type comment go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-public class DOMStyleModelImpl extends DOMModelImpl {
-	public DOMStyleModelImpl() {
-		// remember, the document is created in super constructor, 
-		// via internalCreateDocument
-		super();
-	}
-
-	public void releaseFromEdit() {
-		releaseStyleSheets();
-		super.releaseFromEdit();
-	}
-
-	/**
-	 */
-	public void releaseFromRead() {
-		releaseStyleSheets();
-		super.releaseFromRead();
-	}
-
-	private void releaseStyleSheets() {
-		if (!isShared()) {
-			Document doc = getDocument();
-			if (doc instanceof DocumentStyleImpl) {
-				((DocumentStyleImpl) doc).releaseStyleSheets();
-			}
-		}
-	}
-
-	/**
-	 * createDocument method
-	 * @return org.w3c.dom.Document
-	 */
-	protected Document internalCreateDocument() {
-		DocumentStyleImpl document = new DocumentStyleImpl();
-		document.setModel(this);
-		return document;
-	}
-
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DocumentStyleImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DocumentStyleImpl.java
deleted file mode 100644
index eda938f..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DocumentStyleImpl.java
+++ /dev/null
@@ -1,96 +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
- *******************************************************************************/
-/*
- * Created on Sep 2, 2003
- *
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-package org.eclipse.wst.html.core.internal.document;
-
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetListAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.css.CSSStyleDeclaration;
-import org.w3c.dom.css.DocumentCSS;
-import org.w3c.dom.stylesheets.StyleSheetList;
-
-/**
- * @author davidw
- *
- * To change the template for this generated type comment go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-public class DocumentStyleImpl extends DocumentImpl implements IDOMDocument, DocumentCSS {
-	public DocumentStyleImpl() {
-		super();
-	}
-
-	protected DocumentStyleImpl(DocumentImpl that) {
-		super(that);
-	}
-
-	public CSSStyleDeclaration getOverrideStyle(Element element, String pseudoName) {
-		INodeAdapter adapter = getAdapterFor(IStyleSheetListAdapter.class);
-		if (adapter == null)
-			return null;
-		return ((IStyleSheetListAdapter) adapter).getOverrideStyle(element, pseudoName);
-	}
-
-	public StyleSheetList getStyleSheets() {
-		INodeAdapter adapter = getAdapterFor(IStyleSheetListAdapter.class);
-		if (adapter == null)
-			return null;
-		return ((IStyleSheetListAdapter) adapter).getStyleSheets();
-	}
-
-	protected void releaseStyleSheets() {
-		INodeAdapter adapter = getExistingAdapter(IStyleSheetListAdapter.class);
-		if (adapter == null)
-			return;
-		((IStyleSheetListAdapter) adapter).releaseStyleSheets();
-	}
-
-	/**
-	 * createElement method
-	 * @return org.w3c.dom.Element
-	 * @param tagName java.lang.String
-	 */
-	public Element createElement(String tagName) throws DOMException {
-		checkTagNameValidity(tagName);
-
-		ElementStyleImpl element = new ElementStyleImpl();
-		element.setOwnerDocument(this);
-		element.setTagName(tagName);
-		return element;
-	}
-
-	/**
-	 * cloneNode method
-	 * @return org.w3c.dom.Node
-	 * @param deep boolean
-	 */
-	public Node cloneNode(boolean deep) {
-		DocumentStyleImpl cloned = new DocumentStyleImpl(this);
-		if (deep)
-			cloned.importChildNodes(this, true);
-		return cloned;
-	}
-
-	protected void setModel(IDOMModel model) {
-		super.setModel(model);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/ElementStyleImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/ElementStyleImpl.java
deleted file mode 100644
index 24e03b7..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/ElementStyleImpl.java
+++ /dev/null
@@ -1,73 +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
- *******************************************************************************/
-/*
- * Created on Sep 2, 2003
- *
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-package org.eclipse.wst.html.core.internal.document;
-
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleDeclarationAdapter;
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.xml.core.internal.document.ElementImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.css.CSSStyleDeclaration;
-import org.w3c.dom.css.ElementCSSInlineStyle;
-import org.w3c.dom.stylesheets.LinkStyle;
-import org.w3c.dom.stylesheets.StyleSheet;
-
-public class ElementStyleImpl extends ElementImpl implements IDOMElement, ElementCSSInlineStyle, LinkStyle {
-	public ElementStyleImpl() {
-		super();
-	}
-
-	public ElementStyleImpl(ElementImpl that) {
-		super(that);
-	}
-
-	public StyleSheet getSheet() {
-		INodeAdapter adapter = getAdapterFor(IStyleSheetAdapter.class);
-		if (adapter == null)
-			return null;
-		if (!(adapter instanceof IStyleSheetAdapter))
-			return null;
-		return ((IStyleSheetAdapter) adapter).getSheet();
-	}
-
-	public CSSStyleDeclaration getStyle() {
-		INodeAdapter adapter = getAdapterFor(IStyleDeclarationAdapter.class);
-		if (adapter == null)
-			return null;
-		if (!(adapter instanceof IStyleDeclarationAdapter))
-			return null;
-		return ((IStyleDeclarationAdapter) adapter).getStyle();
-	}
-
-	protected void setOwnerDocument(Document ownerDocument) {
-		super.setOwnerDocument(ownerDocument);
-	}
-
-	protected void setTagName(String tagName) {
-		super.setTagName(tagName);
-	}
-
-	public Node cloneNode(boolean deep) {
-		ElementImpl cloned = new ElementStyleImpl(this);
-		if (deep)
-			cloneChildNodes(cloned, deep);
-		return cloned;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java
deleted file mode 100644
index c1cfcc1..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java
+++ /dev/null
@@ -1,302 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.document;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.html.core.internal.cleanup.HTMLCleanupProcessorImpl;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocumentType;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.ProcessingInstruction;
-import org.w3c.dom.Text;
-
-/**
- */
-public class HTMLConverter {
-
-	/**
-	 */
-	public HTMLConverter() {
-		super();
-
-	}
-
-	public void cleanupModel(IDOMModel model) {
-		if (model == null)
-			return;
-
-		HTMLCleanupProcessorImpl processor = new HTMLCleanupProcessorImpl();
-		IStructuredCleanupPreferences pref = processor.getCleanupPreferences();
-
-		// backup options
-		boolean compressEmptyElementTags = pref.getCompressEmptyElementTags();
-		boolean insertRequiredAttrs = pref.getInsertRequiredAttrs();
-		boolean insertMissingTags = pref.getInsertMissingTags();
-		boolean quoteAttrValues = pref.getQuoteAttrValues();
-		boolean formatSource = pref.getFormatSource();
-		int tagNameCase = pref.getTagNameCase();
-		int attrNameCase = pref.getAttrNameCase();
-
-		// setup options
-		pref.setCompressEmptyElementTags(true);
-		pref.setInsertRequiredAttrs(true);
-		pref.setInsertMissingTags(true);
-		pref.setQuoteAttrValues(true);
-		pref.setFormatSource(false);
-		if (model.getDocument().isXMLType()) { // XHTML
-			pref.setTagNameCase(HTMLCorePreferenceNames.LOWER);
-			pref.setAttrNameCase(HTMLCorePreferenceNames.LOWER);
-		}
-		else {
-			pref.setTagNameCase(HTMLCorePreferenceNames.ASIS);
-			pref.setAttrNameCase(HTMLCorePreferenceNames.ASIS);
-		}
-
-		processor.cleanupModel(model);
-
-		// set back options
-		pref.setCompressEmptyElementTags(compressEmptyElementTags);
-		pref.setInsertRequiredAttrs(insertRequiredAttrs);
-		pref.setInsertMissingTags(insertMissingTags);
-		pref.setQuoteAttrValues(quoteAttrValues);
-		pref.setFormatSource(formatSource);
-		pref.setTagNameCase(tagNameCase);
-		pref.setAttrNameCase(attrNameCase);
-	}
-
-	/**
-	 * declaratoin: "data" for XML declaration, such as "version=\"1.0\""
-	 * publicId: publicId for DOCTYPE declaration
-	 */
-	public void convert(IDOMModel model, String declaration, String publicId) {
-		if (model == null)
-			return;
-		setDeclaration(model, declaration, publicId);
-		cleanupModel(model);
-	}
-
-	/**
-	 * declaratoin: "data" for XML declaration, such as "version=\"1.0\""
-	 * publicId: publicId for DOCTYPE declaration
-	 */
-	public void convert(InputStream input, OutputStream output, String declaration, String publicId) throws UnsupportedEncodingException, IOException, CoreException {
-		IDOMModel model = readModel(input);
-		if (model == null)
-			return;
-		try {
-			convert(model, declaration, publicId);
-			writeModel(model, output);
-		}
-		finally {
-			if (model != null)
-				model.releaseFromEdit();
-		}
-	}
-
-	/**
-	 * declaratoin: "data" for XML declaration, such as "version=\"1.0\""
-	 * publicId: publicId for DOCTYPE declaration
-	 */
-	public void convert(IFile file, String declaration, String publicId) throws IOException, CoreException {
-		IDOMModel model = readModel(file);
-		if (model == null)
-			return;
-		try {
-			convert(model, declaration, publicId);
-			writeModel(model, file);
-		}
-		finally {
-			if (model != null)
-				model.releaseFromEdit();
-		}
-	}
-
-	/**
-	 */
-	private static void insertBreak(IDOMModel model, Node node) {
-		if (model == null || node == null)
-			return;
-		if (node.getNodeType() == Node.TEXT_NODE)
-			return;
-
-		// get delimiter string
-		IStructuredDocument structuredDocument = model.getStructuredDocument();
-		if (structuredDocument == null)
-			return;
-		String delim = structuredDocument.getLineDelimiter();
-		if (delim == null || delim.length() == 0)
-			return;
-
-		Node parent = node.getParentNode();
-		if (parent == null)
-			return;
-		Document document = node.getOwnerDocument();
-		if (document == null)
-			return;
-		Text text = document.createTextNode(delim);
-		parent.insertBefore(text, node);
-	}
-
-	/**
-	 */
-	private IDOMModel readModel(InputStream input) throws IOException, UnsupportedEncodingException {
-		if (input == null)
-			return null;
-		// create temporary model
-		String id = input.toString() + ".html"; //$NON-NLS-1$
-		IModelManager manager = StructuredModelManager.getModelManager();
-		IStructuredModel model = manager.getModelForEdit(id, input, null);
-		if (!(model instanceof IDOMModel)) {
-			if (model != null)
-				model.releaseFromEdit();
-			return null;
-		}
-		return (IDOMModel) model;
-	}
-
-	/**
-	 */
-	private IDOMModel readModel(IFile file) throws IOException, CoreException {
-		if (file == null)
-			return null;
-		IModelManager manager = StructuredModelManager.getModelManager();
-		IStructuredModel model = manager.getModelForEdit(file);
-		if (!(model instanceof IDOMModel)) {
-			if (model != null)
-				model.releaseFromEdit();
-			return null;
-		}
-		return (IDOMModel) model;
-	}
-
-	/**
-	 */
-	public void setDeclaration(IDOMModel model, String declaration, String publicId) {
-		if (model == null)
-			return;
-		IDOMDocument document = model.getDocument();
-		if (document == null)
-			return;
-
-		try {
-			model.aboutToChangeModel();
-
-			ProcessingInstruction pi = null;
-			Node child = document.getFirstChild();
-			if (child != null && child.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE) {
-				String target = child.getNodeName();
-				if (target != null && target.equals("xml")) { //$NON-NLS-1$
-					pi = (ProcessingInstruction) child;
-					child = child.getNextSibling();
-				}
-			}
-			IDOMDocumentType docType = (IDOMDocumentType) document.getDoctype();
-
-			if (declaration != null) {
-				if (pi != null) {
-					pi.setData(declaration);
-				}
-				else {
-					pi = document.createProcessingInstruction("xml", declaration); //$NON-NLS-1$
-					document.insertBefore(pi, child);
-					insertBreak(model, child);
-				}
-			}
-
-			if (publicId != null) {
-				HTMLDocumentTypeEntry entry = HTMLDocumentTypeRegistry.getInstance().getEntry(publicId);
-				String name = (entry != null ? entry.getName() : null);
-				if (name == null || name.length() == 0)
-					name = "HTML"; // default //$NON-NLS-1$
-				if (docType != null) {
-					if (!name.equals(docType.getName())) { // replace
-						Node parent = docType.getParentNode();
-						child = docType;
-						docType = (IDOMDocumentType) document.createDoctype(name);
-						parent.insertBefore(docType, child);
-						parent.removeChild(child);
-					}
-				}
-				else {
-					docType = (IDOMDocumentType) document.createDoctype(name);
-					document.insertBefore(docType, child);
-					insertBreak(model, child);
-				}
-				docType.setPublicId(publicId);
-				if (entry != null) {
-					String systemId = entry.getSystemId();
-					if (systemId != null)
-						docType.setSystemId(systemId);
-					String namespaceURI = entry.getNamespaceURI();
-					if (namespaceURI != null) {
-						Element element = document.getDocumentElement();
-						if (element != null) {
-							element.setAttribute("xmlns", namespaceURI); //$NON-NLS-1$
-						}
-					}
-				}
-			}
-		}
-		finally {
-			model.changedModel();
-		}
-	}
-
-	/**
-	 */
-	private void writeModel(IDOMModel model, OutputStream output) throws UnsupportedEncodingException, IOException, CoreException {
-		if (model == null || output == null)
-			return;
-		model.save();
-	}
-
-	/**
-	 */
-	private void writeModel(IDOMModel model, IFile file) throws IOException, CoreException {
-		if (model == null || file == null)
-			return;
-		IStructuredDocument structuredDocument = model.getStructuredDocument();
-		if (structuredDocument == null)
-			return;
-		//ByteArrayOutputStream output = null;
-		ByteArrayInputStream input = null;
-		try {
-			//output = new
-			// ByteArrayOutputStream(structuredDocument.getLength());
-			model.save();
-			//input = new ByteArrayInputStream(output.toByteArray());
-			//file.setContents(input, true, true, null);
-		}
-		finally {
-			//			if (output != null)
-			//				output.close();
-			if (input != null)
-				input.close();
-		}
-
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapter.java
deleted file mode 100644
index 1f806e5..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapter.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.document;
-
-
-
-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.wst.html.core.internal.contentproperties.HTMLContentProperties;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.document.DocumentTypeAdapter;
-import org.eclipse.wst.xml.core.internal.document.DocumentTypeAdapterImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocumentType;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.DOMImplementation;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Node;
-
-/**
- */
-public class HTMLDocumentTypeAdapter extends DocumentTypeAdapterImpl implements HTMLDocumentTypeConstants {
-
-	private HTMLDocumentTypeAdapterFactory fFactory = null;
-	private HTMLDocumentTypeEntry entry = null;
-	private boolean isXMLType = false;
-	private final static String XML = "xml"; //$NON-NLS-1$
-	private final static String XHTML = "xhtml"; //$NON-NLS-1$
-	private final static String WML = "wml"; //$NON-NLS-1$
-
-
-	/**
-	 */
-	protected HTMLDocumentTypeAdapter() {
-		super();
-	}
-
-	/**
-	 */
-	protected HTMLDocumentTypeAdapter(IDOMDocument document, HTMLDocumentTypeAdapterFactory factory) {
-		super(document);
-
-		this.fFactory = factory;
-
-		// initialize
-		documentTypeChanged();
-	}
-
-	/**
-	 */
-	private void documentTypeChanged() {
-		IDOMDocument document = getDocument();
-		if (document == null)
-			return; // error
-		IDOMModel model = document.getModel();
-		if (model == null)
-			return; // error
-
-		IFile file = getFile(model);
-
-		// find DOCTYPE delcaration and Public ID
-		String publicId = null;
-		DocumentType newDocumentType = findDocumentType(document);
-		if (newDocumentType != null) {
-			publicId = newDocumentType.getPublicId();
-		}
-		else {
-			// lookup default set by contentsettings
-			publicId = HTMLContentProperties.getProperty(HTMLContentProperties.DOCUMENT_TYPE, file, true);
-		}
-
-		// lookup DOCTYPE registry
-		HTMLDocumentTypeEntry newEntry = null;
-		if (publicId != null) {
-			newEntry = HTMLDocumentTypeRegistry.getInstance().getEntry(publicId);
-		}
-
-		boolean newXMLType = (newEntry != null ? newEntry.isXMLType() : false);
-		boolean newWMLType = (newEntry != null ? newEntry.isWMLType() : false);
-
-		if (!newXMLType) {
-			// find XML declaration
-			if (findXMLNode(document) != null) {
-				newXMLType = true;
-			}
-
-			// check file extension
-			if (file != null) {
-				String ext = file.getFileExtension();
-				if (ext != null && ext.equalsIgnoreCase(XHTML)) {
-					newXMLType = true;
-				}
-
-				if (ext != null && ext.equalsIgnoreCase(WML)) {
-					newXMLType = true;
-					newWMLType = true;
-				}
-			}
-
-		}
-
-		if (newEntry == null) {
-			// lookup system default
-			if (newXMLType && newDocumentType == null) {
-				// use default XHTML, if it's XML and no document type
-				// declared
-				if (newWMLType)
-					newEntry = HTMLDocumentTypeRegistry.getInstance().getDefaultEntry(HTMLDocumentTypeRegistry.DEFAULT_WML);
-				else
-					newEntry = HTMLDocumentTypeRegistry.getInstance().getDefaultEntry(HTMLDocumentTypeRegistry.DEFAULT_XHTML);
-
-			}
-			else {
-				newEntry = HTMLDocumentTypeRegistry.getInstance().getDefaultEntry(HTMLDocumentTypeRegistry.DEFAULT_HTML);
-			}
-			if (newEntry == null)
-				return; // error
-		}
-
-		if (newDocumentType == null) {
-			DocumentType oldDocumentType = getDocumentType();
-			if (oldDocumentType == null || oldDocumentType.getName() != newEntry.getName()) {
-				// create implicit DocumentType
-				DOMImplementation impl = document.getImplementation();
-				if (impl != null) {
-					String name = newEntry.getName();
-					publicId = newEntry.getPublicId();
-					String systemId = newEntry.getSystemId();
-					newDocumentType = impl.createDocumentType(name, publicId, systemId);
-				}
-			}
-		}
-
-		boolean notify = false;
-		if (this.entry != null) { // do not notify on initialization
-			notify = (newEntry != this.entry || newXMLType != this.isXMLType);
-		}
-
-		if (newDocumentType != null)
-			setDocumentType(newDocumentType);
-		this.entry = newEntry;
-		this.isXMLType = newXMLType;
-
-		if (notify)
-			notifyDocumentTypeChanged();
-	}
-
-	/**
-	 */
-	private IDOMDocumentType findDocumentType(IDOMDocument document) {
-		IDOMDocumentType documentType = (IDOMDocumentType) document.getDoctype();
-		if (documentType != null && documentType.getExistingAdapter(DocumentTypeAdapter.class) == null) {
-			// watch future changes
-			documentType.addAdapter(this);
-		}
-		return documentType;
-	}
-
-	/**
-	 */
-	private Node findXMLNode(Document document) {
-		for (Node child = document.getFirstChild(); child != null; child = child.getNextSibling()) {
-			if (child.getNodeType() != Node.PROCESSING_INSTRUCTION_NODE)
-				continue;
-			String target = child.getNodeName();
-			if (target != null && target.equals(XML)) {
-				return child;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 */
-	public int getAttrNameCase() {
-		if (isXMLType())
-			return LOWER_CASE; // XHTML
-		return this.fFactory.getAttrNameCase();
-	}
-
-	private IFile getFile(IStructuredModel model) {
-		IFile result = null;
-		String location = model.getBaseLocation();
-		if (location != null) {
-			IPath path = new Path(location);
-			if (path.segmentCount() > 1) {
-				result = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
-			}
-		}
-		return result;
-	}
-
-	/**
-	 */
-	public int getTagNameCase() {
-		if (isXMLType())
-			return LOWER_CASE; // XHTML
-		return this.fFactory.getTagNameCase();
-	}
-
-	/**
-	 */
-	public boolean hasFeature(String feature) {
-		if (feature == null)
-			return false;
-		if (feature.equals(HTML))
-			return true;
-		if (feature.equals(SSI))
-			return true;
-		if (feature.equals(FRAMESET)) {
-			if (this.entry == null)
-				return false;
-			return this.entry.hasFrameset();
-		}
-		return false;
-	}
-
-	/**
-	 */
-	public boolean isXMLType() {
-		return this.isXMLType;
-	}
-
-	/**
-	 */
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-		if (notifier == null)
-			return;
-		if (notifier instanceof IDOMDocument) {
-			if (eventType != INodeNotifier.STRUCTURE_CHANGED)
-				return;
-		}
-		else {
-			if (eventType != INodeNotifier.CHANGE)
-				return;
-		}
-		documentTypeChanged();
-	}
-
-	/**
-	 */
-	public void release() {
-		super.release();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapterFactory.java
deleted file mode 100644
index 3e15e13..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapterFactory.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.document;
-
-
-
-import java.util.HashMap;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
-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.document.DocumentTypeAdapter;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-
-/**
- */
-public class HTMLDocumentTypeAdapterFactory implements INodeAdapterFactory, Preferences.IPropertyChangeListener {
-
-	private int tagNameCase = DocumentTypeAdapter.LOWER_CASE;
-	private int attrNameCase = DocumentTypeAdapter.LOWER_CASE;
-	private Preferences preferences = null;
-
-	// for removal later on release()
-	private HashMap fDoc2AdapterMap = new HashMap();
-	
-	/**
-	 */
-	public HTMLDocumentTypeAdapterFactory() {
-		super();
-		this.preferences = HTMLCorePlugin.getDefault().getPluginPreferences();
-
-		if (this.preferences != null) {
-			updateCases(); // initialize
-			this.preferences.addPropertyChangeListener(this);
-		}
-	}
-
-	/**
-	 * Method that returns the adapter associated with the given object. It
-	 * may be a singleton or not ... depending on the needs of the
-	 * INodeAdapter ... but in general it is recommended for an adapter to be
-	 * stateless, so the efficiencies of a singleton can be gained.
-	 * 
-	 * The implementation of this method should call addAdapter on the adapted
-	 * object with the correct instance of the adapter.
-	 */
-	public INodeAdapter adapt(INodeNotifier notifier) {
-		INodeAdapter result = null;
-		// only adapt IDOMDocument
-		if (notifier instanceof IDOMDocument) {
-
-			// if already has an adapter, no need to recreate/initialize.
-			// Note: this means if "doctype" for DOM changes,
-			// theDocumentTypeAdatper for that DOM
-			// should be removed (and released) and it will be re-created next
-			// time required.
-			DocumentTypeAdapter oldAdapter = (DocumentTypeAdapter) notifier.getExistingAdapter(DocumentTypeAdapter.class);
-			if (oldAdapter != null) {
-				result = oldAdapter;
-			}
-			else {
-				
-				// if there already was an adapter
-				//if(fAdapter != null) 
-				//	fAdapter.release();
-				
-				// note, the factory is included in this case to have a central place
-				// to come back to for case preferences.
-				result = new HTMLDocumentTypeAdapter((IDOMDocument) notifier, this);
-				notifier.addAdapter(result);
-				
-				fDoc2AdapterMap.put(notifier, result);
-			}
-		}
-		return result;
-	}
-
-	/**
-	 */
-	public int getAttrNameCase() {
-		return this.attrNameCase;
-	}
-
-	/**
-	 */
-	public int getTagNameCase() {
-		return this.tagNameCase;
-	}
-
-	/**
-	 */
-	public boolean isFactoryForType(Object type) {
-		return (type == DocumentTypeAdapter.class);
-	}
-
-	/**
-	 */
-	public void propertyChange(Preferences.PropertyChangeEvent event) {
-		if (event == null)
-			return;
-		String property = event.getProperty();
-		if (property == null)
-			return;
-
-		if (property.equals(HTMLCorePreferenceNames.TAG_NAME_CASE) || property.equals(HTMLCorePreferenceNames.ATTR_NAME_CASE)) {
-			updateCases();
-		}
-	}
-
-	/**
-	 */
-	private void updateCases() {
-		this.tagNameCase = DocumentTypeAdapter.LOWER_CASE;
-		this.attrNameCase = DocumentTypeAdapter.LOWER_CASE;
-
-		if (this.preferences == null)
-			return;
-
-		int tagCase = this.preferences.getInt(HTMLCorePreferenceNames.TAG_NAME_CASE);
-		if (tagCase == HTMLCorePreferenceNames.LOWER)
-			this.tagNameCase = DocumentTypeAdapter.LOWER_CASE;
-		else if (tagCase == HTMLCorePreferenceNames.UPPER)
-			this.tagNameCase = DocumentTypeAdapter.UPPER_CASE;
-		
-		int attCase = this.preferences.getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE);
-		if (attCase == HTMLCorePreferenceNames.LOWER)
-			this.attrNameCase = DocumentTypeAdapter.LOWER_CASE;
-		else if (attCase == HTMLCorePreferenceNames.UPPER)
-			this.tagNameCase = DocumentTypeAdapter.UPPER_CASE;
-	}
-
-	/**
-	 */
-	public void release() {
-		
-		if(!fDoc2AdapterMap.isEmpty()) {
-			Object[] docs = fDoc2AdapterMap.keySet().toArray();
-			DocumentTypeAdapter adapter = null;
-			for (int i = 0; i < docs.length; i++) {
-				adapter = (DocumentTypeAdapter)fDoc2AdapterMap.get(docs[i]);
-				adapter.release();
-				((IDOMDocument)docs[i]).removeAdapter(adapter);
-			}
-			fDoc2AdapterMap.clear();
-		}
-		
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=95960
-		if (this.preferences != null) {
-			this.preferences.removePropertyChangeListener(this);
-		}
-	}
-
-	/**
-	 * Overriding copy method
-	 */
-	public INodeAdapterFactory copy() {
-		return new HTMLDocumentTypeAdapterFactory();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeConstants.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeConstants.java
deleted file mode 100644
index 1b26c13..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeConstants.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.document;
-
-public interface HTMLDocumentTypeConstants {
-
-	public final static String HTML = "HTML"; //$NON-NLS-1$
-	public final static String FRAMESET = "FRAMESET"; //$NON-NLS-1$
-	public final static String SSI = "SSI"; //$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeEntry.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeEntry.java
deleted file mode 100644
index 83158e7..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeEntry.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.document;
-
-
-
-/**
- */
-public class HTMLDocumentTypeEntry {
-
-	private String name;
-	private String publicId;
-	private String systemId;
-	private String namespaceURI;
-	private boolean isXMLType;
-	private boolean isXHTMLType;
-	private boolean isWMLType;
-	private boolean hasFrameset;
-	private String displayName;
-	private boolean isDefaultXHTML;
-	private boolean isDefaultWML;
-	private static String XHTML_NAME = "html"; //$NON-NLS-1$
-	private static String HTML_NAME = "HTML"; //$NON-NLS-1$
-	private boolean useInternalModel = false;
-
-	/**
-	 */
-	private HTMLDocumentTypeEntry() {
-		super();
-	}
-
-	/**
-	 */
-	public HTMLDocumentTypeEntry(String name, String publicId, String systemId, String namespaceURI, boolean isXHTMLType, boolean hasFrameset, String displayName, boolean isDefaultXHTML, boolean isDefaultWML, boolean isWMLType) {
-		this();
-
-		if (name != null && name.length() > 0) {
-			this.name = name;
-		}
-		else {
-			if (isXMLType)
-				this.name = XHTML_NAME;// need code for wml?
-			else
-				this.name = HTML_NAME;
-		}
-		this.publicId = publicId;
-		this.systemId = systemId;
-		this.namespaceURI = namespaceURI;
-		this.isXMLType = isXHTMLType | isWMLType;
-		this.hasFrameset = hasFrameset;
-		this.displayName = displayName;
-		this.isDefaultXHTML = isDefaultXHTML;
-		this.isDefaultWML = isDefaultWML;
-		this.isXHTMLType = isXHTMLType;
-		this.isWMLType = isWMLType;
-	}
-	
-	HTMLDocumentTypeEntry(String name, String publicId, String systemId, String namespaceURI, boolean isXHTMLType, boolean hasFrameset, String displayName, boolean isDefaultXHTML, boolean isDefaultWML, boolean isWMLType, boolean useInternalModel) {
-		this(name, publicId, systemId, namespaceURI, isXHTMLType, hasFrameset, displayName, isDefaultXHTML, isDefaultWML, isWMLType);
-		this.useInternalModel = useInternalModel;
-	}
-
-	/**
-	 */
-	public final String getName() {
-		return this.name;
-	}
-
-	/**
-	 */
-	public final String getNamespaceURI() {
-		return this.namespaceURI;
-	}
-
-	/**
-	 */
-	public final String getPublicId() {
-		return this.publicId;
-	}
-
-	/**
-	 */
-	public final String getSystemId() {
-		return this.systemId;
-	}
-
-	/**
-	 */
-	public final boolean isXMLType() {
-		return this.isXMLType;
-	}
-
-	/**
-	 */
-	public final boolean hasFrameset() {
-		return this.hasFrameset;
-	}
-
-	/**
-	 */
-	public final String getDisplayName() {
-		return this.displayName;
-	}
-
-	/**
-	 */
-	public final boolean isDefaultXHTML() {
-		return this.isDefaultXHTML;
-	}
-
-	public final boolean isDefaultWML() {
-		return this.isDefaultWML;
-	}
-
-
-	public final boolean isXHTMLType() {
-		return isXHTMLType;
-	}
-
-	public final boolean isWMLType() {
-		return isWMLType;
-	}
-	
-	public final boolean useInternalModel() {
-		return useInternalModel;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeRegistry.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeRegistry.java
deleted file mode 100644
index 3cd71ff..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeRegistry.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.document;
-
-
-
-import java.util.Enumeration;
-import java.util.Hashtable;
-
-/**
- */
-public class HTMLDocumentTypeRegistry {
-
-	private static HTMLDocumentTypeRegistry instance = null;
-	private Hashtable entries = null;
-	private HTMLDocumentTypeEntry defaultEntry = null;
-	private HTMLDocumentTypeEntry defaultXHTMLEntry = null;
-	private HTMLDocumentTypeEntry defaultWMLEntry = null;
-	private HTMLDocumentTypeEntry defaultCHTMLEntry = null;
-
-	final static int DEFAULT_HTML = 0;
-	final static int DEFAULT_XHTML = 1;
-	final static int DEFAULT_WML = 2;
-	final static int DEFAULT_CHTML = 3;
-
-	public static final String CHTML_PUBLIC_ID = "-//W3C//DTD Compact HTML 1.0 Draft//EN";//$NON-NLS-1$
-
-	/**
-	 */
-	private HTMLDocumentTypeRegistry() {
-		super();
-
-		this.entries = new Hashtable();
-		// HTML 4.01
-		String name = "HTML";//$NON-NLS-1$
-		String publicId = "-//W3C//DTD HTML 4.01 Transitional//EN";//$NON-NLS-1$
-		String systemId = "http://www.w3.org/TR/html4/loose.dtd";//$NON-NLS-1$
-		String displayName = "HTML 4.01 Transitional"; //$NON-NLS-1$
-		this.defaultEntry = new HTMLDocumentTypeEntry(name, publicId, systemId, null, false, false, displayName, false, false, false, true);
-		this.entries.put(publicId, this.defaultEntry);
-		publicId = "-//W3C//DTD HTML 4.01//EN";//$NON-NLS-1$
-		systemId = "http://www.w3.org/TR/html4/strict.dtd";//$NON-NLS-1$
-		displayName = "HTML 4.01 Strict"; //$NON-NLS-1$
-		this.entries.put(publicId, new HTMLDocumentTypeEntry(name, publicId, systemId, null, false, false, displayName, false, false, false, true));
-		publicId = "-//W3C//DTD HTML 4.01 Frameset//EN";//$NON-NLS-1$
-		systemId = "http://www.w3.org/TR/html4/frameset.dtd";//$NON-NLS-1$
-		displayName = "HTML 4.01 Frameset"; //$NON-NLS-1$
-		this.entries.put(publicId, new HTMLDocumentTypeEntry(name, publicId, systemId, null, false, true, displayName, false, false, false, true));
-		// CHTML
-		name = "HTML";//$NON-NLS-1$
-		publicId = CHTML_PUBLIC_ID;
-		displayName = "Compact HTML 1.0 Draft"; //$NON-NLS-1$
-		this.defaultCHTMLEntry = new HTMLDocumentTypeEntry(name, publicId, null, null, false, false, displayName, false, false, false, true);
-		this.entries.put(publicId, this.defaultCHTMLEntry);
-
-		HTMLDocumentTypeRegistryReader reader = new HTMLDocumentTypeRegistryReader();
-		if (reader != null)
-			reader.readRegistry(this);
-	}
-
-	/**
-	 */
-	void regist(String pid, HTMLDocumentTypeEntry doctype) {
-		if (pid == null || doctype == null)
-			return;
-		this.entries.put(pid, doctype);
-		if (this.defaultXHTMLEntry == null) {
-			if (doctype.isDefaultXHTML())
-				this.defaultXHTMLEntry = doctype;
-		}
-		if (this.defaultWMLEntry == null) {
-			if (doctype.isDefaultWML())
-				this.defaultWMLEntry = doctype;
-		}
-	}
-
-	/**
-	 * 
-	 */
-	public HTMLDocumentTypeEntry getDefaultEntry(int type) {
-		HTMLDocumentTypeEntry entry = null;
-		switch (type) {
-			case DEFAULT_XHTML :
-				entry = this.defaultXHTMLEntry;
-				break;
-			case DEFAULT_WML :
-				entry = this.defaultWMLEntry;
-				break;
-			case DEFAULT_CHTML :
-				entry = this.defaultCHTMLEntry;
-				break;
-			case DEFAULT_HTML :
-			default :
-				entry = this.defaultEntry;
-				break;
-		}
-		return entry;
-	}
-
-	/**
-	 * 
-	 */
-	public HTMLDocumentTypeEntry getDefaultEntry() {
-		return this.defaultEntry;
-	}
-
-	/**
-	 */
-	public HTMLDocumentTypeEntry getXHTMLDefaultEntry() {
-		return this.defaultXHTMLEntry;
-	}
-
-	/**
-	 */
-	public Enumeration getEntries() {
-		return this.entries.elements();
-	}
-
-	/**
-	 */
-	public HTMLDocumentTypeEntry getEntry(String publicId) {
-		if (publicId == null)
-			return null;
-		return (HTMLDocumentTypeEntry) this.entries.get(publicId);
-	}
-
-	/**
-	 */
-	public synchronized static HTMLDocumentTypeRegistry getInstance() {
-		if (instance == null)
-			instance = new HTMLDocumentTypeRegistry();
-		return instance;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeRegistryReader.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeRegistryReader.java
deleted file mode 100644
index f419978..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeRegistryReader.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.document;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-
-/**
- */
-class HTMLDocumentTypeRegistryReader {
-
-	//
-	private final static String PLUGIN_ID = "org.eclipse.wst.sse.core"; //$NON-NLS-1$
-	private final static String EXTENSION_POINT_ID = "documentTypes"; //$NON-NLS-1$
-	private final static String TAG_NAME = "documentType"; //$NON-NLS-1$
-	private final static String ATT_PID = "publicID"; //$NON-NLS-1$
-	private final static String ATT_SID = "systemID"; //$NON-NLS-1$
-	private final static String ATT_IS_XHTML = "isXHTML"; //$NON-NLS-1$
-	private final static String ATT_IS_WML = "isWML"; //$NON-NLS-1$
-	private final static String ATT_HAS_FRAMESET = "hasFrameset"; //$NON-NLS-1$
-	private final static String ATT_NSURI = "namespaceURI"; //$NON-NLS-1$
-	private final static String ATT_ENAME = "elementName"; //$NON-NLS-1$
-	private final static String ATT_DNAME = "displayName"; //$NON-NLS-1$
-	private final static String ATT_IS_DEFAULT_XHTML = "defaultXHTML"; //$NON-NLS-1$
-	private final static String ATT_IS_DEFAULT_WML = "defaultWML"; //$NON-NLS-1$
-	private final static String ATV_TRUE = "true"; //$NON-NLS-1$
-	private final static String ATV_NULL_STRING = ""; //$NON-NLS-1$
-
-	/**
-	 */
-	HTMLDocumentTypeRegistryReader() {
-		super();
-	}
-
-	/**
-	 */
-	void readRegistry(HTMLDocumentTypeRegistry reg) {
-		if (reg == null)
-			return;
-		IExtensionRegistry registry = Platform.getExtensionRegistry();
-		IExtensionPoint point = registry.getExtensionPoint(PLUGIN_ID, EXTENSION_POINT_ID);
-		if (point != null) {
-			IConfigurationElement[] elements = point.getConfigurationElements();
-			for (int i = 0; i < elements.length; i++) {
-				HTMLDocumentTypeEntry doctype = readElement(elements[i]);
-				// null can be returned if there's an error reading the element
-				if (doctype != null) {
-					reg.regist(doctype.getPublicId(), doctype);
-				}
-			}
-		}
-	}
-
-	/**
-	 */
-	private HTMLDocumentTypeEntry readElement(IConfigurationElement element) {
-		HTMLDocumentTypeEntry doctype = null;
-		String pid = null;
-		String sid = null;
-		String nsuri = null;
-		String root = null;
-		boolean xhtml = true;
-		boolean frameset = false;
-		String dname = null;
-		boolean defaultXhtml = false;
-		boolean defaultWML = false;
-		boolean isWML = false;
-
-		if (element.getName().equals(TAG_NAME)) {
-			pid = element.getAttribute(ATT_PID);
-			// publicID attribute is mandatory.
-			if (pid == null || pid.equals(ATV_NULL_STRING))
-				return null;
-
-			sid = element.getAttribute(ATT_SID);
-			nsuri = element.getAttribute(ATT_NSURI);
-			root = element.getAttribute(ATT_ENAME);
-			xhtml = getBoolean(element, ATT_IS_XHTML);
-			frameset = getBoolean(element, ATT_HAS_FRAMESET);
-			dname = element.getAttribute(ATT_DNAME);
-			defaultXhtml = getBoolean(element, ATT_IS_DEFAULT_XHTML);
-			defaultWML = getBoolean(element, ATT_IS_DEFAULT_WML);
-			isWML = getBoolean(element, ATT_IS_WML);
-			doctype = new HTMLDocumentTypeEntry(root, pid, sid, nsuri, xhtml, frameset, dname, defaultXhtml, defaultWML, isWML);
-		}
-		return doctype;
-	}
-
-	/**
-	 */
-	private boolean getBoolean(IConfigurationElement element, String att) {
-		String value = element.getAttribute(att);
-		if (value != null && value.equals(ATV_TRUE))
-			return true;
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapter.java
deleted file mode 100644
index 6e30557..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapter.java
+++ /dev/null
@@ -1,356 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.document;
-
-
-
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration;
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-import org.eclipse.wst.xml.core.internal.document.CMNodeUtil;
-import org.eclipse.wst.xml.core.internal.document.ModelParserAdapter;
-import org.eclipse.wst.xml.core.internal.document.TagAdapter;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * HTMLDocumentImpl class
- */
-public class HTMLModelParserAdapter implements ModelParserAdapter {
-	/**
-	 * note: I made public, temparily, so could be used by JSPLoader
-	 */
-	protected HTMLModelParserAdapter() {
-		super();
-	}
-
-	private boolean shouldTerminateAt(CMElementDeclaration parent, CMElementDeclaration child) {
-		if (!parent.supports(HTMLCMProperties.TERMINATORS))
-			return false;
-		java.util.Iterator i = (java.util.Iterator) parent.getProperty(HTMLCMProperties.TERMINATORS);
-		if (i == null)
-			return false;
-		String nextName = child.getElementName();
-		while (i.hasNext()) {
-			// NOTE: CMElementDeclaration of child is not always HTMLCMElementDeclaration.
-			// It might be one of based on DTD (for XHTML element).  So, comparison must
-			// be performed ignoring case.
-			// -- 3/20/2002
-			String terminator = (String) i.next();
-			if (terminator == null)
-				continue;
-			if (nextName.equalsIgnoreCase(terminator))
-				return true;
-		}
-		return false;
-	}
-
-	/**
-	 */
-	public boolean canContain(Element element, Node child) {
-		if (element == null || child == null)
-			return false;
-		IDOMElement impl = (IDOMElement) element;
-
-		if (child.getNodeType() == Node.ELEMENT_NODE) {
-			if (!impl.isGlobalTag())
-				return true; // non HTML tag
-			IDOMElement childElement = (IDOMElement) child;
-
-			CMElementDeclaration myDec = CMNodeUtil.getElementDeclaration(element);
-			if (myDec == null)
-				return true;
-			//if (!(myDec instanceof HTMLElementDeclaration)) return true;
-			if (myDec.getContentType() == CMElementDeclaration.EMPTY)
-				return false;
-
-			if (!childElement.isGlobalTag())
-				return true; // non HTML tag
-			CMElementDeclaration childDec = CMNodeUtil.getElementDeclaration(childElement);
-			if (childDec == null)
-				return true;
-			//if (!(childDec instanceof HTMLElementDeclaration)) return true;
-
-			if (myDec instanceof HTMLElementDeclaration) {
-				if (((Boolean) ((HTMLElementDeclaration) myDec).getProperty(HTMLCMProperties.IS_JSP)).booleanValue())
-					return true;
-			}
-			if (shouldTerminateAt(myDec, childDec) && !isValidChild(myDec, childDec)) {
-				return false;
-			}
-
-			String tagName = impl.getTagName();
-			if (tagName == null)
-				return true;
-			String childName = childElement.getTagName();
-			if (childName == null)
-				return true;
-			if (!impl.hasStartTag() && !impl.hasEndTag()) {
-				// implicit element
-				if (tagName.equalsIgnoreCase(childElement.getTagName()))
-					return false;
-				if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.HEAD)) {
-					if (!childName.equalsIgnoreCase(HTML40Namespace.ElementName.META) && !childName.equalsIgnoreCase(HTML40Namespace.ElementName.TITLE) && !childName.equalsIgnoreCase(HTML40Namespace.ElementName.LINK) && !childName.equalsIgnoreCase(HTML40Namespace.ElementName.STYLE) && !childName.equalsIgnoreCase(HTML40Namespace.ElementName.BASE) && !childName.equalsIgnoreCase(HTML40Namespace.ElementName.ISINDEX)) {
-						return false;
-					}
-				}
-
-				Node parent = element.getParentNode();
-				if (parent != null && parent.getNodeType() == Node.ELEMENT_NODE) {
-					IDOMElement parentElement = (IDOMElement) parent;
-					if (!parentElement.hasStartTag() && !parentElement.hasEndTag()) {
-						if (!canContain(parentElement, child))
-							return false;
-					}
-				}
-				return true;
-			}
-
-			// contexual termination for TABLE content tags
-			boolean isTableContent = false;
-			if (childName.equalsIgnoreCase(HTML40Namespace.ElementName.TBODY) || childName.equalsIgnoreCase(HTML40Namespace.ElementName.THEAD) || childName.equalsIgnoreCase(HTML40Namespace.ElementName.TFOOT)) {
-				if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.TABLE))
-					return true;
-				isTableContent = true;
-			}
-			else if (childName.equalsIgnoreCase(HTML40Namespace.ElementName.TR)) {
-				if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.TBODY) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.THEAD) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.TFOOT) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.TABLE))
-					return true;
-				isTableContent = true;
-			}
-			else if (childName.equalsIgnoreCase(HTML40Namespace.ElementName.TD) || childName.equalsIgnoreCase(HTML40Namespace.ElementName.TH)) {
-				if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.TR) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.TBODY) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.THEAD) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.TFOOT) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.TABLE))
-					return true;
-				isTableContent = true;
-			}
-			if (isTableContent) {
-				// TABLE content tags should terminate non TABLE content tags,
-				// if in TABLE
-				for (Node parent = element.getParentNode(); parent != null; parent = parent.getParentNode()) {
-					if (parent.getNodeType() != Node.ELEMENT_NODE)
-						break;
-					IDOMElement parentElement = (IDOMElement) parent;
-					String parentName = parentElement.getTagName();
-					if (parentName == null)
-						continue;
-					if (parentName.equalsIgnoreCase(HTML40Namespace.ElementName.TABLE))
-						return false;
-				}
-			}
-			if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.EMBED)) {
-				if (!childName.equalsIgnoreCase(HTML40Namespace.ElementName.NOEMBED))
-					return false;
-			}
-		}
-		else if (child.getNodeType() == Node.TEXT_NODE) {
-			String tagName = impl.getTagName();
-			if (tagName != null && tagName.equalsIgnoreCase(HTML40Namespace.ElementName.EMBED)) {
-				IDOMText text = (IDOMText) child;
-				if (!text.isElementContentWhitespace())
-					return false;
-			}
-		}
-		else if (child.getNodeType() == Node.DOCUMENT_TYPE_NODE) {
-			if (impl.isImplicitTag())
-				return false;
-		}
-
-		return true;
-	}
-
-	/**
-	 */
-	public boolean canBeImplicitTag(Element element) {
-		return false;
-	}
-
-	/**
-	 */
-	public boolean canBeImplicitTag(Element element, Node child) {
-		return false;
-	}
-
-	/**
-	 */
-	public Element createCommentElement(Document document, String data, boolean isJSPTag) {
-		if (document == null || data == null || data.length() == 0)
-			return null;
-
-		return createMetaElement(document, data, isJSPTag);
-	}
-
-	/**
-	 * This routine create an implicit Element for given parent and child,
-	 * such as HTML, BODY, HEAD, and TBODY for HTML document.
-	 */
-	public Element createImplicitElement(Document document, Node parent, Node child) {
-		return null;
-	}
-
-	/**
-	 */
-	private Element createMetaElement(Document document, String data, boolean isJSPTag) {
-		if (data == null || data.length() == 0)
-			return null;
-
-		TagScanner scanner = new TagScanner(data, 0, true); // one line
-		String name = scanner.nextName();
-		if (name == null || !name.equalsIgnoreCase(MetaData.METADATA))
-			return null;
-
-		String type = null;
-		boolean isStartSpan = false;
-		boolean isEndSpan = false;
-		name = scanner.nextName();
-		while (name != null) {
-			String value = scanner.nextValue();
-			if (name.equalsIgnoreCase(MetaData.TYPE)) {
-				if (value == null)
-					return null;
-				if (value.equalsIgnoreCase(MetaData.DESIGNER_CONTROL)) {
-					type = MetaData.DESIGNER_CONTROL;
-				}
-				else if (value.equalsIgnoreCase(MetaData.DYNAMIC_DATA)) {
-					type = MetaData.DYNAMIC_DATA;
-				}
-				else if (value.equalsIgnoreCase(MetaData.AUTHOR_TIME_VISUAL)) {
-					type = MetaData.AUTHOR_TIME_VISUAL;
-				}
-				else if (value.equalsIgnoreCase(MetaData.ANNOTATION)) {
-					type = MetaData.ANNOTATION;
-				}
-				else {
-					return null;
-				}
-			}
-			else if (name.equalsIgnoreCase(MetaData.STARTSPAN)) {
-				isStartSpan = true;
-			}
-			else if (name.equalsIgnoreCase(MetaData.ENDSPAN)) {
-				if (!isStartSpan)
-					isEndSpan = true;
-			}
-			name = scanner.nextName();
-		}
-		if (type == null)
-			return null;
-		if (!isStartSpan && !isEndSpan)
-			return null;
-		String metaData = null;
-		int offset = scanner.getNextOffset(); // skip new line
-		if (offset < data.length())
-			metaData = data.substring(offset);
-		if (metaData == null)
-			metaData = new String();
-
-		IDOMElement element = (IDOMElement) document.createElement(MetaData.PREFIX + type);
-
-		MetaDataAdapter adapter = new MetaDataAdapter(type);
-		if (isStartSpan) {
-			if (metaData != null)
-				adapter.setData(metaData);
-		}
-		else {
-			if (metaData != null)
-				adapter.setEndData(metaData);
-		}
-		element.addAdapter(adapter);
-		adapter.setElement(element);
-		element.setJSPTag(isJSPTag);
-
-		return element;
-	}
-
-	/**
-	 */
-	public String getFindRootName(String tagName) {
-		if (tagName == null)
-			return null;
-		// tag matching should not beyond TABLE tag except BODY tag
-		if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.BODY))
-			return null;
-		return HTML40Namespace.ElementName.TABLE;
-	}
-
-	/**
-	 */
-	public boolean isAdapterForType(Object type) {
-		return (type == ModelParserAdapter.class);
-	}
-
-	/**
-	 */
-	public boolean isEndTag(IDOMElement element) {
-		TagAdapter adapter = (TagAdapter) element.getExistingAdapter(TagAdapter.class);
-		if (adapter != null)
-			return adapter.isEndTag();
-		return element.isEndTag();
-	}
-
-	/**
-	 */
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-		// do nothing on notifiy change
-		// TODO: this means good candidate for regular platform adapter
-	}
-
-	private static boolean isValidChild(CMElementDeclaration parent, CMElementDeclaration child) {
-		if (parent == null || child == null)
-			return false;
-		CMContent content = parent.getContent();
-		if (content == null)
-			return false;
-		return isChild(content, child);
-	}
-
-	/**
-	 */
-	private static boolean isChild(CMContent content, CMElementDeclaration target) {
-		switch (content.getNodeType()) {
-			case CMNode.ELEMENT_DECLARATION :
-				return isSameDeclaration((CMElementDeclaration) content, target);
-			case CMNode.GROUP :
-				CMNodeList children = ((CMGroup) content).getChildNodes();
-				for (int i = 0; i < children.getLength(); i++) {
-					CMNode child = children.item(i);
-					switch (child.getNodeType()) {
-						case CMNode.ELEMENT_DECLARATION :
-							if (isSameDeclaration((CMElementDeclaration) child, target))
-								return true;
-							continue; // Go next child.
-						case CMNode.GROUP :
-							if (isChild((CMContent) child, target))
-								return true;
-							continue; // Go next child.
-						default :
-							continue; // Go next child.
-					}
-				}
-		}
-		return false;
-	}
-
-	/**
-	 */
-	private static boolean isSameDeclaration(CMElementDeclaration aDec, CMElementDeclaration otherDec) {
-		return aDec.getElementName() == otherDec.getElementName();
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapterFactory.java
deleted file mode 100644
index 98765e8..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapterFactory.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.document;
-
-
-
-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.document.ModelParserAdapter;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-
-/**
- */
-public class HTMLModelParserAdapterFactory implements INodeAdapterFactory {
-
-	private static HTMLModelParserAdapterFactory instance = null;
-
-	/**
-	 */
-	private HTMLModelParserAdapterFactory() {
-		super();
-	}
-
-	/**
-	 * Method that returns the adapter associated with the given object. It
-	 * may be a singleton or not ... depending on the needs of the
-	 * INodeAdapter ... but in general it is recommended for an adapter to be
-	 * stateless, so the efficiencies of a singleton can be gained.
-	 * 
-	 * The implementation of this method should call addAdapter on the adapted
-	 * object with the correct instance of the adapter.
-	 */
-	public INodeAdapter adapt(INodeNotifier notifier) {
-		INodeAdapter adapter = null;
-		if (notifier != null) {
-			if (notifier instanceof IDOMDocument) {
-				adapter = notifier.getExistingAdapter(ModelParserAdapter.class);
-				if (adapter == null) {
-					adapter = new HTMLModelParserAdapter();
-					notifier.addAdapter(adapter);
-				}
-			}
-		}
-		return adapter;
-
-	}
-
-	/**
-	 */
-	public synchronized static HTMLModelParserAdapterFactory getInstance() {
-		if (instance == null)
-			instance = new HTMLModelParserAdapterFactory();
-		return instance;
-	}
-
-	/**
-	 */
-	public boolean isFactoryForType(Object type) {
-		return (type == ModelParserAdapter.class);
-	}
-
-	/**
-	 */
-	public void release() {
-		// no state to cleanup
-	}
-
-	/**
-	 * Overriding copy method
-	 */
-	public INodeAdapterFactory copy() {
-		return getInstance();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaData.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaData.java
deleted file mode 100644
index a05758c..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaData.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.wst.html.core.internal.document;
-
-
-
-/**
- */
-public interface MetaData {
-
-	static final String METADATA = "METADATA";//$NON-NLS-1$
-	static final String TYPE = "type";//$NON-NLS-1$
-	static final String STARTSPAN = "startspan";//$NON-NLS-1$
-	static final String ENDSPAN = "endspan";//$NON-NLS-1$
-	static final String DESIGNER_CONTROL = "DesignerControl";//$NON-NLS-1$
-	static final String DYNAMIC_DATA = "DynamicData";//$NON-NLS-1$
-	static final String AUTHOR_TIME_VISUAL = "AuthorTimeVisual";//$NON-NLS-1$
-	static final String ANNOTATION = "Annotation";//$NON-NLS-1$
-	static final String PREFIX = "METADATA:";//$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaDataAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaDataAdapter.java
deleted file mode 100644
index 9b8596e..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaDataAdapter.java
+++ /dev/null
@@ -1,301 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.document;
-
-
-
-import java.util.Iterator;
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.xml.core.internal.document.TagAdapter;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-/**
- */
-public class MetaDataAdapter implements TagAdapter, MetaData {
-
-	private IDOMElement element = null;
-	private String type = null;
-	private String data = null;
-	private String endData = null;
-
-	/**
-	 */
-	public MetaDataAdapter(String type) {
-		super();
-
-		if (type != null) {
-			if (type.equals(ANNOTATION)) {
-				this.type = ANNOTATION;
-			}
-			else if (type.equals(AUTHOR_TIME_VISUAL)) {
-				this.type = AUTHOR_TIME_VISUAL;
-			}
-			else {
-				this.type = type;
-			}
-		}
-	}
-
-	/**
-	 */
-	private String getData(IStructuredDocumentRegion flatNode) {
-		if (flatNode == null)
-			return null;
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null)
-			return null;
-
-		String data = null;
-		Iterator e = regions.iterator();
-		while (e.hasNext()) {
-			ITextRegion region = (ITextRegion) e.next();
-			String regionType = region.getType();
-			if (isCommentText(regionType)) {
-				data = flatNode.getText(region);
-				break;
-			}
-		}
-		if (data == null)
-			return null;
-		int length = data.length();
-		int offset = 0;
-		for (; offset < length; offset++) {
-			char c = data.charAt(offset);
-			if (c == '\r' || c == '\n') {
-				offset++;
-				break;
-			}
-		}
-		for (; offset < length; offset++) {
-			char c = data.charAt(offset);
-			if (c != '\r' && c != '\n') {
-				break;
-			}
-		}
-		return data.substring(offset);
-	}
-
-	private boolean isCommentText(String regionType) {
-		boolean result = false;
-		result = isDOMComment(regionType) || isNestedContentComment(regionType);
-		return result;
-	}
-
-	/**
-	 * ISSUE: this is a bit of hidden JSP knowledge that was implemented this
-	 * way for expedency. Should be evolved in future to depend on
-	 * "nestedContext".
-	 */
-
-	private boolean isNestedContentComment(String regionType) {
-		final String JSP_COMMENT_TEXT = "JSP_COMMENT_TEXT"; //$NON-NLS-1$
-		return regionType.equals(JSP_COMMENT_TEXT);
-	}
-
-	private boolean isDOMComment(String regionType) {
-		return regionType == DOMRegionContext.XML_COMMENT_TEXT;
-	}
-
-	public String getData() {
-		if (this.element == null)
-			return null;
-		IStructuredDocumentRegion flatNode = this.element.getStartStructuredDocumentRegion();
-		if (flatNode == null)
-			return null;
-		if (this.data != null)
-			return this.data;
-		return getData(flatNode);
-	}
-
-	/**
-	 */
-	private String getDelimiter(IDOMModel model) {
-		String delim = null;
-		if (model != null) {
-			IStructuredDocument structuredDocument = model.getStructuredDocument();
-			if (structuredDocument != null)
-				delim = structuredDocument.getLineDelimiter();
-		}
-		if (delim == null)
-			delim = "\r\n";//$NON-NLS-1$
-		return delim;
-	}
-
-	/**
-	 */
-	public String getEndData() {
-		if (this.element == null)
-			return null;
-		IStructuredDocumentRegion flatNode = this.element.getEndStructuredDocumentRegion();
-		if (flatNode == null)
-			return null;
-		if (this.endData != null)
-			return this.endData;
-		return getData(flatNode);
-	}
-
-	/**
-	 */
-	public String getEndTag(IDOMElement element) {
-		StringBuffer buffer = new StringBuffer();
-		if (element.isJSPTag())
-			buffer.append("<%--");//$NON-NLS-1$
-		else
-			buffer.append("<!--");//$NON-NLS-1$
-		buffer.append(METADATA);
-		buffer.append(' ');
-		buffer.append(TYPE);
-		buffer.append("=\"");//$NON-NLS-1$
-		buffer.append(this.type);
-		buffer.append("\" ");//$NON-NLS-1$
-		buffer.append(MetaData.ENDSPAN);
-		String data = getEndData();
-		if (data != null && data.length() > 0) {
-			String delim = getDelimiter(element.getModel());
-			buffer.append(delim);
-			buffer.append(data);
-			buffer.append(delim);
-		}
-		if (element.isJSPTag())
-			buffer.append("--%>");//$NON-NLS-1$
-		else
-			buffer.append("-->");//$NON-NLS-1$
-
-		return buffer.toString();
-	}
-
-	/**
-	 */
-	public String getStartTag(IDOMElement element) {
-		StringBuffer buffer = new StringBuffer();
-		if (element.isJSPTag())
-			buffer.append("<%--");//$NON-NLS-1$
-		else
-			buffer.append("<!--");//$NON-NLS-1$
-		buffer.append(METADATA);
-		buffer.append(' ');
-		buffer.append(TYPE);
-		buffer.append("=\"");//$NON-NLS-1$
-		buffer.append(this.type);
-		buffer.append("\" ");//$NON-NLS-1$
-		buffer.append(MetaData.STARTSPAN);
-		String data = getData();
-		if (data != null && data.length() > 0) {
-			String delim = getDelimiter(element.getModel());
-			buffer.append(delim);
-			buffer.append(data);
-			buffer.append(delim);
-		}
-		if (element.isJSPTag())
-			buffer.append("--%>");//$NON-NLS-1$
-		else
-			buffer.append("-->");//$NON-NLS-1$
-
-		return buffer.toString();
-	}
-
-	/**
-	 */
-	public String getType() {
-		return this.type;
-	}
-
-	/**
-	 */
-	public boolean isAdapterForType(Object type) {
-		return (type == TagAdapter.class || type == MetaDataAdapter.class);
-	}
-
-	/**
-	 */
-	public boolean isEndTag() {
-		if (this.element == null)
-			return false;
-		if (this.element.hasStartTag())
-			return false;
-		if (this.element.hasEndTag())
-			return true;
-		if (this.data != null)
-			return false;
-		return (this.endData != null);
-	}
-
-	/**
-	 */
-	public boolean isRuntimeContainer() {
-		return (this.type == ANNOTATION || this.type == AUTHOR_TIME_VISUAL);
-	}
-
-	/**
-	 */
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-	}
-
-	/**
-	 */
-	public void setData(String data) {
-		this.data = data;
-
-		if (this.element != null)
-			this.element.notifyStartTagChanged();
-	}
-
-	/**
-	 */
-	public void setEndData(String data) {
-		this.endData = data;
-
-		if (this.element != null)
-			this.element.notifyEndTagChanged();
-	}
-
-	/**
-	 */
-	public void setElement(IDOMElement element) {
-		this.element = element;
-
-		if (this.element != null) {
-			this.element.setCommentTag(true);
-			if (this.type != MetaData.ANNOTATION) {
-				this.element.setJSPTag(true);
-			}
-		}
-	}
-
-	/**
-	 */
-	public void setRuntimeSource(String source) {
-		if (source == null)
-			return;
-		if (this.element == null)
-			return;
-		if (isRuntimeContainer())
-			return;
-
-		IDOMModel model = this.element.getModel();
-		if (model == null)
-			return;
-		IStructuredDocument structuredDocument = model.getStructuredDocument();
-		if (structuredDocument == null)
-			return;
-		int offset = this.element.getStartEndOffset();
-		int end = this.element.getEndStartOffset();
-		int length = end - offset;
-		structuredDocument.replaceText(model, offset, length, source);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/TagScanner.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/TagScanner.java
deleted file mode 100644
index 4cbd509..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/TagScanner.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.document;
-
-
-
-/**
- */
-class TagScanner {
-
-	private String tag = null;
-	private int offset = 0;
-	private int length = 0;
-	private boolean oneLine = false;
-
-	/**
-	 */
-	TagScanner(String tag, int offset) {
-		super();
-
-		this.tag = tag;
-		this.offset = offset;
-		if (tag != null)
-			this.length = tag.length();
-	}
-
-	/**
-	 */
-	TagScanner(String tag, int offset, boolean oneLine) {
-		this(tag, offset);
-
-		this.oneLine = oneLine;
-	}
-
-	/**
-	 */
-	int getNextOffset() {
-		for (; this.offset < this.length; this.offset++) {
-			char c = this.tag.charAt(this.offset);
-			if (!isEnd(c))
-				break;
-		}
-		return this.offset;
-	}
-
-	/**
-	 */
-	int getOffset() {
-		return this.offset;
-	}
-
-	/**
-	 */
-	private final boolean isEnd(char c) {
-		return (this.oneLine && (c == '\r' || c == '\n'));
-	}
-
-	/**
-	 */
-	private static boolean isEqual(char c) {
-		return (c == '=');
-	}
-
-	/**
-	 */
-	private static boolean isQuote(char c) {
-		return (c == '"' || c == '\'');
-	}
-
-	/**
-	 */
-	private static boolean isSpace(char c) {
-		return Character.isWhitespace(c);
-	}
-
-	/**
-	 */
-	private char nextChar() {
-		for (; this.offset < this.length; this.offset++) {
-			char c = this.tag.charAt(this.offset);
-			if (isEnd(c))
-				break;
-			if (!isSpace(c))
-				return c;
-		}
-		return 0;
-	}
-
-	/**
-	 */
-	String nextName() {
-		if (this.tag == null)
-			return null;
-		if (this.offset >= this.length)
-			return null;
-
-		if (nextChar() == 0)
-			return null;
-
-		int nameOffset = this.offset;
-		for (; this.offset < this.length; this.offset++) {
-			char c = this.tag.charAt(this.offset);
-			if (isEnd(c) || isSpace(c))
-				break;
-			if (isEqual(c) && this.offset > nameOffset)
-				break;
-		}
-		if (this.offset == nameOffset)
-			return null;
-
-		return this.tag.substring(nameOffset, this.offset);
-	}
-
-	/**
-	 */
-	String nextValue() {
-		if (this.tag == null)
-			return null;
-		if (this.offset >= this.length)
-			return null;
-
-		char seperator = nextChar();
-		if (!isEqual(seperator))
-			return null;
-		this.offset++; // skip '='
-		char quote = nextChar();
-		if (quote == 0)
-			return null;
-		if (isQuote(quote))
-			this.offset++;
-		else
-			quote = 0;
-
-		int valueOffset = this.offset;
-		for (; this.offset < this.length; this.offset++) {
-			char c = this.tag.charAt(this.offset);
-			if (isEnd(c)) {
-				quote = 0;
-				break;
-			}
-			if (quote == 0) {
-				if (isSpace(c))
-					break;
-			}
-			else {
-				if (c == quote)
-					break;
-			}
-		}
-		int valueEnd = this.offset;
-		if (quote != 0 && this.offset < this.length)
-			this.offset++;
-		if (valueEnd == valueOffset)
-			return null;
-
-		return this.tag.substring(valueOffset, valueEnd);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/UnknownTagAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/UnknownTagAdapter.java
deleted file mode 100644
index ec6053f..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/UnknownTagAdapter.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.document;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.xml.core.internal.document.TagAdapter;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-
-/**
- */
-public class UnknownTagAdapter implements TagAdapter {
-
-	private String startTag = null;
-	private String endTag = null;
-
-	/**
-	 */
-	public UnknownTagAdapter() {
-		super();
-	}
-
-	/**
-	 */
-	public String getEndTag(IDOMElement element) {
-		String tag = null;
-		if (this.endTag != null) {
-			tag = this.endTag;
-			this.endTag = null;
-		}
-		return tag;
-	}
-
-	/**
-	 */
-	public String getStartTag(IDOMElement element) {
-		String tag = null;
-		if (this.startTag != null) {
-			tag = this.startTag;
-			this.startTag = null;
-		}
-		return tag;
-	}
-
-	/**
-	 */
-	public boolean isAdapterForType(Object type) {
-		return (type == TagAdapter.class);
-	}
-
-	/**
-	 */
-	public boolean isEndTag() {
-		return false;
-	}
-
-	/**
-	 */
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-	}
-
-	/**
-	 */
-	public void setEndTag(String endTag) {
-		this.endTag = endTag;
-	}
-
-	/**
-	 */
-	public void setStartTag(String startTag) {
-		this.startTag = startTag;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentCharsetDetector.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentCharsetDetector.java
deleted file mode 100644
index 40d3692..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentCharsetDetector.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.encoding;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.html.core.internal.contenttype.HTMLResourceEncodingDetector;
-import org.eclipse.wst.sse.core.internal.document.DocumentReader;
-import org.eclipse.wst.sse.core.internal.document.IDocumentCharsetDetector;
-
-/**
- * This class parses beginning portion of HTML file to get the encoding value
- * in a META tag. Example:
- * <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- * 
- * Note: even though, technically, a META tag must come in a <HEAD>tag, we
- * don't check for that, under the assumption that whatever, or whereever, the
- * the first <META>tag is, it is the one intended to be used by the user, and
- * they may just be trying to repair the error. The HTML validator will tell
- * them if its in the wrong location.
- *  
- */
-public class HTMLDocumentCharsetDetector extends HTMLResourceEncodingDetector implements IDocumentCharsetDetector {
-
-
-	public HTMLDocumentCharsetDetector() {
-		super();
-	}
-
-	public void set(IDocument document) {
-		set(new DocumentReader(document, 0));
-
-
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentLoader.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentLoader.java
deleted file mode 100644
index 8027e3c..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentLoader.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.encoding;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.wst.html.core.internal.contenttype.EncodingGuesser;
-import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeAdapterFactory;
-import org.eclipse.wst.html.core.internal.document.HTMLModelParserAdapterFactory;
-import org.eclipse.wst.html.core.internal.htmlcss.HTMLStyleSelectorAdapterFactory;
-import org.eclipse.wst.html.core.internal.htmlcss.StyleAdapterFactory;
-import org.eclipse.wst.html.core.internal.modelquery.ModelQueryAdapterFactoryForHTML;
-import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML;
-import org.eclipse.wst.html.core.internal.text.StructuredTextPartitionerForHTML;
-import org.eclipse.wst.sse.core.internal.PropagatingAdapter;
-import org.eclipse.wst.sse.core.internal.document.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.ContentTypeEncodingPreferences;
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker;
-import org.eclipse.wst.sse.core.internal.ltk.parser.RegionParser;
-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.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.parser.XMLSourceParser;
-import org.eclipse.wst.xml.core.internal.parser.XMLStructuredDocumentReParser;
-import org.eclipse.wst.xml.core.internal.propagate.PropagatingAdapterFactoryImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-public class HTMLDocumentLoader extends AbstractDocumentLoader {
-
-	public HTMLDocumentLoader() {
-		super();
-	}
-
-	/**
-	 * Convenience method to add tag names using BlockMarker object
-	 */
-	protected void addHTMLishTag(XMLSourceParser parser, String tagname) {
-		BlockMarker bm = new BlockMarker(tagname, null, DOMRegionContext.BLOCK_TEXT, false);
-		parser.addBlockMarker(bm);
-	}
-
-	/**
-	 * Default encoding. For HTML, there is no spec.
-	 */
-	protected String getSpecDefaultEncoding() {
-		return null;
-	}
-
-	/**
-	 * @return java.lang.String
-	 * @param string
-	 *            byte[]
-	 * @param length
-	 *            int
-	 * 
-	 * Do automatic encoding detection by guess
-	 */
-	protected String getEncodingNameByGuess(byte[] string, int length) {
-		final String ianaEnc = EncodingGuesser.guessEncoding(string, length);
-		return ianaEnc;
-	}
-
-	/*
-	 * @see AbstractLoader#createNewStructuredDocument()
-	 */
-	protected IEncodedDocument newEncodedDocument() {
-		IStructuredDocument structuredDocument = StructuredDocumentFactory.getNewStructuredDocumentInstance(getParser());
-		((BasicStructuredDocument) structuredDocument).setReParser(new XMLStructuredDocumentReParser());
-
-		return structuredDocument;
-	}
-
-	/*
-	 * @see IModelLoader#getParser()
-	 */
-	public RegionParser getParser() {
-		XMLSourceParser parser = new XMLSourceParser();
-		// for the "static HTML" case, we need to initialize
-		// Blocktags here.
-		addHTMLishTag(parser, "script"); //$NON-NLS-1$
-		addHTMLishTag(parser, "style"); //$NON-NLS-1$
-		return parser;
-	}
-
-	/**
-	 * This method must return those factories which must be attached to the
-	 * structuredModel before content is applied.
-	 */
-	public List getAdapterFactories() {
-		List result = new ArrayList();
-		INodeAdapterFactory factory = null;
-		factory = StyleAdapterFactory.getInstance();
-		result.add(factory);
-		factory = HTMLStyleSelectorAdapterFactory.getInstance();
-		result.add(factory);
-		factory = new HTMLDocumentTypeAdapterFactory();
-		result.add(factory);
-		factory = HTMLModelParserAdapterFactory.getInstance();
-		result.add(factory);
-		//
-		factory = new ModelQueryAdapterFactoryForHTML();
-		result.add(factory);
-
-		factory = new PropagatingAdapterFactoryImpl();
-		result.add(factory);
-
-
-		return result;
-	}
-
-	protected String getPreferredNewLineDelimiter(IFile file) {
-		String delimiter = ContentTypeEncodingPreferences.getPreferredNewLineDelimiter(ContentTypeIdForHTML.ContentTypeID_HTML);
-		if (delimiter == null)
-			delimiter = super.getPreferredNewLineDelimiter(file);
-		return delimiter;
-	}
-
-	public IDocumentCharsetDetector getDocumentEncodingDetector() {
-		if (fDocumentEncodingDetector == null) {
-			fDocumentEncodingDetector = new HTMLDocumentCharsetDetector();
-		}
-		return fDocumentEncodingDetector;
-	}
-
-	protected void preLoadAdapt(IStructuredModel structuredModel) {
-		// DMW: just added this preload on 8/16/2002
-		// I noticed the ProagatingAdapterFactory was being added,
-		// that that the ProagatingAdapterAdapter was not being
-		// preload adapted -- I'm assuing it ALWAYS has to be.
-		IDOMModel domModel = (IDOMModel) structuredModel;
-		// 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.
-		((INodeNotifier) domModel.getDocument()).getAdapterFor(PropagatingAdapter.class);
-	}
-
-	public IDocumentPartitioner getDefaultDocumentPartitioner() {
-		return new StructuredTextPartitionerForHTML();
-	}
-
-	public IDocumentLoader newInstance() {
-		return new HTMLDocumentLoader();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLModelLoader.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLModelLoader.java
deleted file mode 100644
index 398b154..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLModelLoader.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.wst.html.core.internal.encoding;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.html.core.internal.document.DOMStyleModelImpl;
-import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeAdapterFactory;
-import org.eclipse.wst.html.core.internal.document.HTMLModelParserAdapterFactory;
-import org.eclipse.wst.html.core.internal.htmlcss.HTMLStyleSelectorAdapterFactory;
-import org.eclipse.wst.html.core.internal.htmlcss.StyleAdapterFactory;
-import org.eclipse.wst.html.core.internal.modelquery.ModelQueryAdapterFactoryForHTML;
-import org.eclipse.wst.sse.core.internal.PropagatingAdapter;
-import org.eclipse.wst.sse.core.internal.document.IDocumentLoader;
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker;
-import org.eclipse.wst.sse.core.internal.model.AbstractModelLoader;
-import org.eclipse.wst.sse.core.internal.provisional.IModelLoader;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.xml.core.internal.DebugAdapterFactory;
-import org.eclipse.wst.xml.core.internal.parser.XMLSourceParser;
-import org.eclipse.wst.xml.core.internal.propagate.PropagatingAdapterFactoryImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-public class HTMLModelLoader extends AbstractModelLoader {
-
-
-	public HTMLModelLoader() {
-		super();
-	}
-
-	/**
-	 * Convenience method to add tag names using BlockMarker object
-	 */
-	protected void addHTMLishTag(XMLSourceParser parser, String tagname) {
-		BlockMarker bm = new BlockMarker(tagname, null, DOMRegionContext.BLOCK_TEXT, false);
-		parser.addBlockMarker(bm);
-	}
-
-	public IStructuredModel newModel() {
-		DOMStyleModelImpl model = new DOMStyleModelImpl();
-		return model;
-	}
-
-	/**
-	 * This method must return those factories which must be attached to the
-	 * structuredModel before content is applied.
-	 */
-	public List getAdapterFactories() {
-		List result = new ArrayList();
-		INodeAdapterFactory factory = null;
-		factory = StyleAdapterFactory.getInstance();
-		result.add(factory);
-		factory = HTMLStyleSelectorAdapterFactory.getInstance();
-		result.add(factory);
-		factory = new HTMLDocumentTypeAdapterFactory();
-		result.add(factory);
-		factory = HTMLModelParserAdapterFactory.getInstance();
-		result.add(factory);
-		//
-		factory = new ModelQueryAdapterFactoryForHTML();
-		result.add(factory);
-
-		factory = new PropagatingAdapterFactoryImpl();
-		result.add(factory);
-		
-
-		return result;
-	}
-
-	protected void preLoadAdapt(IStructuredModel structuredModel) {
-		super.preLoadAdapt(structuredModel);
-		// DMW: just added this preload on 8/16/2002
-		// I noticed the ProagatingAdapterFactory was being added,
-		// that that the ProagatingAdapterAdapter was not being
-		// preload adapted -- I'm assuing it ALWAYS has to be.
-		IDOMModel domModel = (IDOMModel) structuredModel;
-		// 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.
-		((INodeNotifier) domModel.getDocument()).getAdapterFor(PropagatingAdapter.class);
-		if (Debug.debugNotificationAndEvents) {
-			PropagatingAdapter propagatingAdapter = (PropagatingAdapter) ((INodeNotifier) domModel.getDocument()).getAdapterFor(PropagatingAdapter.class);
-			propagatingAdapter.addAdaptOnCreateFactory(new DebugAdapterFactory());
-		}	}
-
-	public IModelLoader newInstance() {
-		return new HTMLModelLoader();
-	}
-
-	public IDocumentLoader getDocumentLoader() {
-		if (documentLoaderInstance == null) {
-			documentLoaderInstance = new HTMLDocumentLoader();
-		}
-		return documentLoaderInstance;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/EmbeddedCSSFormatter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/EmbeddedCSSFormatter.java
deleted file mode 100644
index 74ec679..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/EmbeddedCSSFormatter.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.format;
-
-
-
-import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatter;
-import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatterFactory;
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
-import org.eclipse.wst.html.core.internal.provisional.HTMLFormatContraints;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
-
-// nakamori_TODO: check and remove
-
-public class EmbeddedCSSFormatter extends HTMLFormatter {
-
-	// private IAdapterFactory factory = new
-	// CSSSourceFormatterFactory(CSSSourceFormatter.class, true);
-	/**
-	 */
-	protected EmbeddedCSSFormatter() {
-		super();
-	}
-
-	/**
-	 */
-	protected void formatNode(IDOMNode node, HTMLFormatContraints contraints) {
-		if (node == null)
-			return;
-		IDOMText text = (IDOMText) node;
-
-		String source = getCSSContent(node);
-		if (source == null) { // fallback
-			source = text.getSource();
-		}
-
-		int offset = text.getStartOffset();
-		int length = text.getEndOffset() - offset;
-		replaceSource(text.getModel(), offset, length, source);
-		setWidth(contraints, source);
-	}
-
-	/**
-	 */
-	private String getCSSContent(IDOMNode text) {
-		ICSSModel model = getCSSModel(text);
-		if (model == null)
-			return null;
-		ICSSNode document = model.getDocument();
-		if (document == null)
-			return null;
-		INodeNotifier notifier = (INodeNotifier) document;
-		CSSSourceFormatter formatter = (CSSSourceFormatter) notifier.getAdapterFor(CSSSourceFormatter.class);
-		// try another way to get formatter
-		if (formatter == null)
-			formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter(notifier);
-		if (formatter == null)
-			return null;
-		StringBuffer buffer = formatter.format(document);
-		if (buffer == null)
-			return null;
-		return buffer.toString();
-	}
-
-	/**
-	 */
-	private ICSSModel getCSSModel(IDOMNode text) {
-		if (text == null)
-			return null;
-		INodeNotifier notifier = (INodeNotifier) text.getParentNode();
-		if (notifier == null)
-			return null;
-		INodeAdapter adapter = notifier.getAdapterFor(IStyleSheetAdapter.class);
-		if (adapter == null)
-			return null;
-		if (!(adapter instanceof IStyleSheetAdapter))
-			return null;
-		IStyleSheetAdapter styleAdapter = (IStyleSheetAdapter) adapter;
-		return styleAdapter.getModel();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLElementFormatter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLElementFormatter.java
deleted file mode 100644
index ce14df4..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLElementFormatter.java
+++ /dev/null
@@ -1,394 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.format;
-
-import java.util.Iterator;
-
-import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatter;
-import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatterFactory;
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleDeclarationAdapter;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
-import org.eclipse.wst.html.core.internal.provisional.HTMLFormatContraints;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.format.StructuredFormatPreferencesXML;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.Attr;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-// nakamori_TODO: check and remove CSS formatting
-
-public class HTMLElementFormatter extends HTMLFormatter {
-
-	/**
-	 */
-	protected HTMLElementFormatter() {
-		super();
-	}
-
-	/**
-	 */
-	private void compressTailingSpaces(IStructuredDocumentRegion flatNode, ITextRegion region) {
-		int offset = region.getTextEnd();
-		int count = region.getEnd() - offset;
-		if (count == 1) {
-			String source = flatNode.getFullText(region);
-			int start = region.getStart();
-			if (source != null && source.charAt(offset - start) == ' ') {
-				// nothing to do
-				return;
-			}
-		}
-		replaceSource(flatNode, offset, count, " ");//$NON-NLS-1$
-	}
-
-	/**
-	 */
-	private void formatEndTag(IDOMElement element, HTMLFormatContraints contraints) {
-		Node lastChild = element.getLastChild();
-
-		if (lastChild != null && lastChild instanceof IDOMElement && lastChild.getNodeName().equals("jsp:scriptlet")) { //$NON-NLS-1$
-			insertBreakAfter((IDOMElement) lastChild, contraints);
-			return;
-		}
-
-
-		IStructuredDocumentRegion endStructuredDocumentRegion = element.getEndStructuredDocumentRegion();
-		if (endStructuredDocumentRegion == null)
-			return;
-
-		if (element.isJSPTag() || element.isCommentTag()) {
-			String endTag = endStructuredDocumentRegion.getText();
-			if (endTag != null && endTag.length() > 0) {
-				setWidth(contraints, endTag);
-			}
-			return;
-		}
-
-		ITextRegion prevRegion = null;
-		ITextRegionList regions = endStructuredDocumentRegion.getRegions();
-		Iterator e = regions.iterator();
-		while (e.hasNext()) {
-			ITextRegion region = (ITextRegion) e.next();
-			if (region == null)
-				continue;
-			String regionType = region.getType();
-			if (regionType == DOMRegionContext.XML_TAG_NAME || isNestedTag(regionType)) {
-				if (prevRegion != null && prevRegion.getType() == DOMRegionContext.XML_END_TAG_OPEN) {
-					removeTailingSpaces(endStructuredDocumentRegion, prevRegion);
-				}
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_CLOSE) {
-				if (prevRegion != null && (prevRegion.getType() == DOMRegionContext.XML_TAG_NAME || isNestedRootTag(prevRegion.getType()))) {
-					removeTailingSpaces(endStructuredDocumentRegion, prevRegion);
-				}
-			}
-			prevRegion = region;
-		}
-		if (prevRegion != null && (prevRegion.getType() == DOMRegionContext.XML_TAG_NAME || isNestedRootTag(prevRegion.getType()))) {
-			removeTailingSpaces(endStructuredDocumentRegion, prevRegion);
-		}
-
-		// BUG123890 (end tag length was already prefactored into
-		// formatStartTag so no need to do it here)
-		// String newEndTag = endStructuredDocumentRegion.getText();
-		// if (newEndTag != null && newEndTag.length() > 0) {
-		// setWidth(contraints, newEndTag);
-		// }
-	}
-
-	/**
-	 */
-	protected void formatNode(IDOMNode node, HTMLFormatContraints contraints) {
-		if (node == null)
-			return;
-		IDOMElement element = (IDOMElement) node;
-
-		formatStartTag(element, contraints);
-
-		formatChildNodes(element, contraints);
-
-		formatEndTag(element, contraints);
-	}
-
-	/**
-	 */
-	private void formatStartTag(IDOMElement element, HTMLFormatContraints contraints) {
-
-		if (element.getNodeName().equals("jsp:scriptlet")) { //$NON-NLS-1$
-			insertBreakBefore(element, contraints);
-			return;
-		}
-
-		IStructuredDocumentRegion startStructuredDocumentRegion = element.getStartStructuredDocumentRegion();
-		if (startStructuredDocumentRegion == null)
-			return;
-
-		// We should format attributes in JSPTag?
-		// if (element.isJSPTag() || element.isCommentTag()) {
-		if (element.isCommentTag()) {
-			String startTag = startStructuredDocumentRegion.getText();
-			if (startTag != null && startTag.length() > 0) {
-				setWidth(contraints, startTag);
-			}
-			return;
-		}
-
-		// first process style attribute
-		if (element.isGlobalTag()) {
-			Attr attr = element.getAttributeNode("style");//$NON-NLS-1$
-			if (attr != null)
-				formatStyleAttr(attr);
-		}
-		boolean insertBreak = false;
-		insertBreak = ((StructuredFormatPreferencesXML) getFormatPreferences()).getSplitMultiAttrs();
-		boolean alignEndBracket = ((StructuredFormatPreferencesXML) getFormatPreferences()).isAlignEndBracket();
-		boolean attributesSplitted = false;
-
-		if (insertBreak) {
-			NamedNodeMap attributes = element.getAttributes();
-			if (attributes == null || attributes.getLength() < 2)
-				insertBreak = false;
-		}
-		String breakSpaces = getBreakSpaces(element);
-		String originalBreakSpaces = breakSpaces;
-		String indent = getIndent();
-		if (indent != null && indent.length() > 0) {
-			breakSpaces += indent;
-		}
-		ITextRegion lastBreakRegion = null;
-
-		ITextRegion prevRegion = null;
-		ITextRegionList regions = startStructuredDocumentRegion.getRegions();
-		Iterator e = regions.iterator();
-		while (e.hasNext()) {
-			ITextRegion region = (ITextRegion) e.next();
-			if (region == null)
-				continue;
-
-			ITextRegion breakRegion = null;
-
-			String regionType = region.getType();
-			if (regionType == DOMRegionContext.XML_TAG_NAME || isNestedTag(regionType)) {
-				if (prevRegion != null && prevRegion.getType() == DOMRegionContext.XML_TAG_OPEN) {
-					removeTailingSpaces(startStructuredDocumentRegion, prevRegion);
-				}
-				breakRegion = region;
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-				if (prevRegion != null && (prevRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME || prevRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS)) {
-					// attribute name without value
-					breakRegion = prevRegion;
-				}
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-				if (prevRegion != null && prevRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-					removeTailingSpaces(startStructuredDocumentRegion, prevRegion);
-				}
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-				if (prevRegion != null && prevRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-					removeTailingSpaces(startStructuredDocumentRegion, prevRegion);
-				}
-				breakRegion = region;
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_CLOSE || regionType == DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
-				if (prevRegion != null && (prevRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME || prevRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS)) {
-					// attribute name without value
-					breakRegion = prevRegion;
-				}
-			}
-
-			if (breakRegion != null) {
-				int end = breakRegion.getTextEnd();
-				if (lastBreakRegion != null) {
-					int offset = lastBreakRegion.getEnd();
-					int count = end - offset;
-					if (insertBreak || !isWidthAvailable(contraints, count + 1)) {
-						replaceTailingSpaces(startStructuredDocumentRegion, lastBreakRegion, breakSpaces);
-						setWidth(contraints, breakSpaces);
-						attributesSplitted = true;
-					}
-					else {
-						compressTailingSpaces(startStructuredDocumentRegion, lastBreakRegion);
-						addWidth(contraints, 1);
-					}
-					addWidth(contraints, count);
-				}
-				else {
-					addWidth(contraints, end);
-				}
-				lastBreakRegion = breakRegion;
-			}
-
-			prevRegion = region;
-		}
-		if (prevRegion != null && (prevRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME || prevRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS)) {
-			// attribute name without value
-			int end = prevRegion.getTextEnd();
-			if (lastBreakRegion != null) {
-				int offset = lastBreakRegion.getEnd();
-				int count = end - offset;
-				if (insertBreak || !isWidthAvailable(contraints, count + 1)) {
-					replaceTailingSpaces(startStructuredDocumentRegion, lastBreakRegion, breakSpaces);
-					setWidth(contraints, breakSpaces);
-					attributesSplitted = true;
-				}
-				else {
-					compressTailingSpaces(startStructuredDocumentRegion, lastBreakRegion);
-					addWidth(contraints, 1);
-				}
-				addWidth(contraints, count);
-			}
-			else {
-				addWidth(contraints, end);
-			}
-			lastBreakRegion = prevRegion;
-		}
-
-		if (lastBreakRegion != null) {
-			int offset = lastBreakRegion.getTextEnd();
-			int count = startStructuredDocumentRegion.getLength() - offset;
-			if (prevRegion != null && prevRegion.getType() == DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
-				compressTailingSpaces(startStructuredDocumentRegion, lastBreakRegion);
-				count++;
-			}
-			else {
-				removeTailingSpaces(startStructuredDocumentRegion, lastBreakRegion);
-				// BUG123890 (pre-factor in end tag)
-				count += element.getTagName().length() + 3;
-			}
-			addWidth(contraints, count);
-		}
-		else {
-			addWidth(contraints, startStructuredDocumentRegion.getLength());
-		}
-		// BUG113584 - align last bracket
-		if (alignEndBracket && attributesSplitted) {
-			removeTailingSpaces(startStructuredDocumentRegion, lastBreakRegion);
-			replaceTailingSpaces(startStructuredDocumentRegion, lastBreakRegion, originalBreakSpaces);
-			contraints.setAvailableLineWidth(getLineWidth() - originalBreakSpaces.length() - 1);
-		}
-	}
-
-	/**
-	 * ISSUE: this is a bit of hidden JSP knowledge that was implemented this
-	 * way for expedency. Should be evolved in future to depend on
-	 * "nestedContext".
-	 */
-	private boolean isNestedTag(String regionType) {
-		final String JSP_ROOT_TAG_NAME = "JSP_ROOT_TAG_NAME"; //$NON-NLS-1$
-		final String JSP_DIRECTIVE_NAME = "JSP_DIRECTIVE_NAME"; //$NON-NLS-1$
-		boolean result = regionType.equals(JSP_ROOT_TAG_NAME) || regionType.equals(JSP_DIRECTIVE_NAME);
-		return result;
-	}
-
-	/**
-	 * ISSUE: this is a bit of hidden JSP knowledge that was implemented this
-	 * way for expedency. Should be evolved in future to depend on
-	 * "nestedContext".
-	 */
-	private boolean isNestedRootTag(String regionType) {
-		final String JSP_ROOT_TAG_NAME = "JSP_ROOT_TAG_NAME"; //$NON-NLS-1$
-		boolean result = regionType.equals(JSP_ROOT_TAG_NAME);
-		return result;
-	}
-
-
-	/**
-	 */
-	private void formatStyleAttr(Attr attr) {
-		if (attr == null)
-			return;
-		// if someone's made it a container somehow, CSS can't format it
-		if (((IDOMNode) attr).getValueRegion() instanceof ITextRegionContainer)
-			return;
-		String value = getCSSValue(attr);
-		if (value == null)
-			return;
-		String oldValue = ((IDOMNode) attr).getValueSource();
-		if (oldValue != null && value.equals(oldValue))
-			return;
-		attr.setValue(value);
-	}
-
-	/**
-	 */
-	private ICSSModel getCSSModel(Attr attr) {
-		if (attr == null)
-			return null;
-		INodeNotifier notifier = (INodeNotifier) attr.getOwnerElement();
-		if (notifier == null)
-			return null;
-		INodeAdapter adapter = notifier.getAdapterFor(IStyleDeclarationAdapter.class);
-		if (adapter == null)
-			return null;
-		if (!(adapter instanceof IStyleDeclarationAdapter))
-			return null;
-		IStyleDeclarationAdapter styleAdapter = (IStyleDeclarationAdapter) adapter;
-		return styleAdapter.getModel();
-	}
-
-	/**
-	 */
-	private String getCSSValue(Attr attr) {
-		ICSSModel model = getCSSModel(attr);
-		if (model == null)
-			return null;
-		ICSSNode document = model.getDocument();
-		if (document == null)
-			return null;
-		INodeNotifier notifier = (INodeNotifier) document;
-		CSSSourceFormatter formatter = (CSSSourceFormatter) notifier.getAdapterFor(CSSSourceFormatter.class);
-		// try another way to get formatter
-		if (formatter == null)
-			formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter(notifier);
-		if (formatter == null)
-			return null;
-		StringBuffer buffer = formatter.format(document);
-		if (buffer == null)
-			return null;
-		return buffer.toString();
-	}
-
-	/**
-	 */
-	private void removeTailingSpaces(IStructuredDocumentRegion flatNode, ITextRegion region) {
-		int offset = region.getTextEnd();
-		int count = region.getEnd() - offset;
-		if (count <= 0)
-			return;
-		replaceSource(flatNode, offset, count, null);
-	}
-
-	/**
-	 */
-	private void replaceTailingSpaces(IStructuredDocumentRegion flatNode, ITextRegion region, String spaces) {
-		int offset = region.getTextEnd();
-		int count = region.getEnd() - offset;
-		if (count == spaces.length()) {
-			String source = flatNode.getFullText(region);
-			if (source != null && source.endsWith(spaces)) {
-				// nothing to do
-				return;
-			}
-		}
-		replaceSource(flatNode, offset, count, spaces);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatContraintsImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatContraintsImpl.java
deleted file mode 100644
index bf81533..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatContraintsImpl.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.format;
-
-import org.eclipse.wst.html.core.internal.provisional.HTMLFormatContraints;
-import org.eclipse.wst.sse.core.internal.format.StructuredFormatContraints;
-
-/**
- * @deprecated
- * Please un-deprecate this if Page Designer thinks they are needed.
- */
-public class HTMLFormatContraintsImpl extends StructuredFormatContraints implements HTMLFormatContraints {
-	protected int fAvailableLineWidth;
-
-	/**
-	 * @deprecated
-	 * 	It's very hard to keep the available line width accurate.
-	 * 	Sometimes a node wants to start on a new line, sometimes it doesn't.
-	 * 	It's best for the node to figure out the available line width on the fly.
-	 */
-	public int getAvailableLineWidth() {
-		return fAvailableLineWidth;
-	}
-
-	/**
-	 * @deprecated
-	 * 	It's very hard to keep the available line width accurate.
-	 * 	Sometimes a node wants to start on a new line, sometimes it doesn't.
-	 * 	It's best for the node to figure out the available line width on the fly.
-	 */
-	public void setAvailableLineWidth(int availableLineWidth) {
-		fAvailableLineWidth = availableLineWidth;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatProcessorImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatProcessorImpl.java
deleted file mode 100644
index 0552bc2..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatProcessorImpl.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.format;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter;
-import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML;
-import org.eclipse.wst.xml.core.internal.provisional.format.StructuredFormatPreferencesXML;
-import org.w3c.dom.Node;
-
-public class HTMLFormatProcessorImpl extends FormatProcessorXML {
-	protected String getFileExtension() {
-		return "html"; //$NON-NLS-1$
-	}
-
-	protected IStructuredFormatter getFormatter(Node node) {
-		IStructuredFormatter formatter = HTMLFormatterFactory.getInstance().createFormatter(node, getFormatPreferences());
-
-		return formatter;
-	}
-
-	public IStructuredFormatPreferences getFormatPreferences() {
-		if (fFormatPreferences == null) {
-			fFormatPreferences = new StructuredFormatPreferencesXML();
-
-			Preferences preferences = HTMLCorePlugin.getDefault().getPluginPreferences();
-			if (preferences != null) {
-				fFormatPreferences.setLineWidth(preferences.getInt(HTMLCorePreferenceNames.LINE_WIDTH));
-				((StructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
-				((StructuredFormatPreferencesXML) fFormatPreferences).setAlignEndBracket(preferences.getBoolean(HTMLCorePreferenceNames.ALIGN_END_BRACKET));
-				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
-
-				char indentChar = ' ';
-				String indentCharPref = preferences.getString(HTMLCorePreferenceNames.INDENTATION_CHAR);
-				if (HTMLCorePreferenceNames.TAB.equals(indentCharPref)) {
-					indentChar = '\t';
-				}
-				int indentationWidth = preferences.getInt(HTMLCorePreferenceNames.INDENTATION_SIZE);
-
-				StringBuffer indent = new StringBuffer();
-				for (int i = 0; i < indentationWidth; i++) {
-					indent.append(indentChar);
-				}
-				fFormatPreferences.setIndent(indent.toString());
-			}
-		}
-
-		return fFormatPreferences;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatter.java
deleted file mode 100644
index 3642881..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatter.java
+++ /dev/null
@@ -1,749 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.format;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.html.core.internal.provisional.HTMLFormatContraints;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatContraints;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.format.StructuredFormatPreferencesXML;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-public class HTMLFormatter implements IStructuredFormatter {
-
-	private static final String HTML_NAME = "html";//$NON-NLS-1$
-	private static final String BODY_NAME = "BODY";//$NON-NLS-1$
-	// hidden jsp logic that should be removed when jsp formatter is created
-	private static final String JSP = "jsp";//$NON-NLS-1$
-
-	/**
-	 */
-	protected void addWidth(HTMLFormatContraints contraints, int width) {
-		if (contraints == null)
-			return;
-		if (!splitLines() || getLineWidth() < 0)
-			return;
-
-		int availableWidth = contraints.getAvailableLineWidth() - width;
-		if (availableWidth < 0)
-			availableWidth = 0;
-		contraints.setAvailableLineWidth(availableWidth);
-	}
-
-	/**
-	 */
-	protected boolean canFormatChild(Node node) {
-		while (node != null) {
-			if (node.getNodeType() != Node.ELEMENT_NODE)
-				return true;
-			CMElementDeclaration decl = getElementDeclaration((Element) node);
-			if (decl != null) {
-				if (decl.getContentType() == CMElementDeclaration.CDATA)
-					return false;
-				if (decl.supports(HTMLCMProperties.SHOULD_KEEP_SPACE)) {
-					boolean shouldKeepSpace = ((Boolean) decl.getProperty(HTMLCMProperties.SHOULD_KEEP_SPACE)).booleanValue();
-					if (shouldKeepSpace)
-						return false;
-				}
-			}
-			node = node.getParentNode();
-		}
-		return false;
-	}
-
-	/**
-	 */
-	protected boolean canInsertBreakAfter(CMElementDeclaration decl) {
-		if (decl == null)
-			return false;
-		if (!decl.supports(HTMLCMProperties.LINE_BREAK_HINT))
-			return false;
-		String hint = (String) decl.getProperty(HTMLCMProperties.LINE_BREAK_HINT);
-		if (hint == null)
-			return false;
-		return (hint.equals(HTMLCMProperties.Values.BREAK_BEFORE_START_AND_AFTER_END) || hint.equals(HTMLCMProperties.Values.BREAK_AFTER_START));
-	}
-
-	/**
-	 */
-	protected boolean canInsertBreakAfter(Node node) {
-		if (node == null)
-			return false;
-		Node parent = node.getParentNode();
-		if (parent == null)
-			return false;
-		Node next = node.getNextSibling();
-
-		// special exception if this node is a non-HTML tag (like JSP
-		// elements)
-		// BUG188093 - only preserve whitespace for jsp (not custom) tags
-		String prefix = node.getPrefix();
-		if (prefix != null && JSP.equals(prefix)) {
-			boolean canInsertBreakAfter = false;
-			// if a whitespace does not exist after it, do not add one
-			if (next != null && next.getNodeType() == Node.TEXT_NODE) {
-				String theText = ((Text) next).getData();
-				if (theText != null && theText.length() > 0) {
-					char theChar = theText.charAt(0);
-					canInsertBreakAfter = Character.isWhitespace(theChar);
-				}
-			}
-			// if cannot insert break, go ahead and return false (otherwise,
-			// continue processing)
-			if (!canInsertBreakAfter)
-				return false;
-		}
-
-		// special exception if next node is a non-HTML tag (like JSP
-		// elements)
-		// BUG188093 - only preserve whitespace for jsp (not custom) tags
-		if (next != null) {
-			prefix = next.getPrefix();
-			if (prefix != null && JSP.equals(prefix)) {
-				boolean canInsertBreakAfterPrevious = false;
-				// if a whitespace does not exist before it, do not add one
-				if (node.getNodeType() == Node.TEXT_NODE) {
-					String theText = ((Text) node).getData();
-					if (theText != null && theText.length() > 0) {
-						char theChar = theText.charAt(theText.length() - 1);
-						canInsertBreakAfterPrevious = Character.isWhitespace(theChar);
-					}
-				}
-				// if cannot insert break, go ahead and return false
-				// (otherwise,
-				// continue processing)
-				if (!canInsertBreakAfterPrevious)
-					return false;
-			}
-		}
-		if (parent.getNodeType() == Node.DOCUMENT_NODE) {
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				// do not insert break after unclosed tag
-				if (!((IDOMElement) node).isClosed())
-					return false;
-			}
-			return true;
-		}
-		else if (parent.getNodeType() == Node.ELEMENT_NODE) {
-			IDOMElement element = (IDOMElement) parent;
-			// do not insert break before missing end tag
-			if (next == null && element.getEndStructuredDocumentRegion() == null)
-				return false;
-
-			// insert line break under non-HTML elements including JSP
-			// elements
-			if (element.getPrefix() != null)
-				return true;
-
-			CMElementDeclaration decl = getElementDeclaration(element);
-			if (decl != null) {
-				if (decl.getContentType() == CMElementDeclaration.ELEMENT)
-					return true;
-				String tagName = element.getTagName();
-				// special for direct children under BODY
-				if (tagName != null && tagName.equalsIgnoreCase(BODY_NAME))
-					return true;
-			}
-		}
-
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			IDOMElement element = (IDOMElement) node;
-			CMElementDeclaration decl = getElementDeclaration(element);
-			if (canInsertBreakAfter(decl)) {
-				// spcial for BR
-				return canFormatChild(parent);
-			}
-		}
-		if (next != null && next.getNodeType() == Node.ELEMENT_NODE) {
-			CMElementDeclaration decl = getElementDeclaration((Element) next);
-			if (canInsertBreakBefore(decl))
-				return true;
-		}
-		return false;
-	}
-
-	/**
-	 */
-	protected boolean canInsertBreakBefore(CMElementDeclaration decl) {
-		if (decl == null)
-			return false;
-		if (!decl.supports(HTMLCMProperties.LINE_BREAK_HINT))
-			return false;
-		String hint = (String) decl.getProperty(HTMLCMProperties.LINE_BREAK_HINT);
-		if (hint == null)
-			return false;
-		return hint.equals(HTMLCMProperties.Values.BREAK_BEFORE_START_AND_AFTER_END);
-	}
-
-	/**
-	 */
-	protected boolean canInsertBreakBefore(Node node) {
-		if (node == null)
-			return false;
-		Node parent = node.getParentNode();
-		if (parent == null)
-			return false;
-		Node prev = node.getPreviousSibling();
-
-		// special exception if this node is a non-HTML tag (like JSP
-		// elements)
-		// BUG188093 - only preserve whitespace for jsp (not custom) tags
-		String prefix = node.getPrefix();
-		if (prefix != null && JSP.equals(prefix)) {
-			boolean canInsertBreakBefore = false;
-			// if a whitespace does not exist before it, do not add one
-			if (prev != null && prev.getNodeType() == Node.TEXT_NODE) {
-				String theText = ((Text) prev).getData();
-				if (theText != null && theText.length() > 0) {
-					char theChar = theText.charAt(theText.length() - 1);
-					canInsertBreakBefore = Character.isWhitespace(theChar);
-				}
-			}
-			// if cannot insert break, go ahead and return false (otherwise,
-			// continue processing)
-			if (!canInsertBreakBefore)
-				return false;
-		}
-
-		// special exception if previous node is a non-HTML tag (like JSP
-		// elements)
-		// BUG188093 - only preserve whitespace for jsp (not custom) tags
-		if (prev != null) {
-			prefix = prev.getPrefix();
-			if (prefix != null && JSP.equals(prefix)) {
-				boolean canInsertBreakBeforeNext = false;
-				// if a whitespace does not exist after it, do not add one
-				if (node.getNodeType() == Node.TEXT_NODE) {
-					String theText = ((Text) node).getData();
-					if (theText != null && theText.length() > 0) {
-						char theChar = theText.charAt(0);
-						canInsertBreakBeforeNext = Character.isWhitespace(theChar);
-					}
-				}
-				// if cannot insert break, go ahead and return false
-				// (otherwise,
-				// continue processing)
-				if (!canInsertBreakBeforeNext)
-					return false;
-			}
-		}
-
-		if (parent.getNodeType() == Node.DOCUMENT_NODE) {
-			if (prev == null)
-				return false;
-			return true;
-		}
-		else if (parent.getNodeType() == Node.ELEMENT_NODE) {
-			IDOMElement element = (IDOMElement) parent;
-			// do not insert break after missing start tag
-			if (prev == null && element.getStartStructuredDocumentRegion() == null)
-				return false;
-
-			// insert line break under non-HTML elements including JSP
-			// elements
-			if (element.getPrefix() != null)
-				return true;
-
-			CMElementDeclaration decl = getElementDeclaration(element);
-			if (decl != null) {
-				if (decl.getContentType() == CMElementDeclaration.ELEMENT)
-					return true;
-				String tagName = element.getTagName();
-				// special for direct children under BODY
-				if (tagName != null && tagName.equalsIgnoreCase(BODY_NAME))
-					return true;
-			}
-		}
-
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			CMElementDeclaration decl = getElementDeclaration((Element) node);
-			if (canInsertBreakBefore(decl))
-				return true;
-		}
-		if (prev != null && prev.getNodeType() == Node.ELEMENT_NODE) {
-			CMElementDeclaration decl = getElementDeclaration((Element) prev);
-			if (canInsertBreakAfter(decl)) {
-				// spcial for BR
-				return canFormatChild(parent);
-			}
-		}
-		return false;
-	}
-
-	/**
-	 */
-	public void format(Node node) {
-		format(node, getFormatContraints());
-	}
-
-	/**
-	 */
-	public void format(Node node, IStructuredFormatContraints contraints) {
-		if (node instanceof IDOMNode && contraints instanceof HTMLFormatContraints)
-			format((IDOMNode) node, (HTMLFormatContraints) contraints);
-	}
-
-	public void format(IDOMNode node, HTMLFormatContraints contraints) {
-		if (node == null)
-			return;
-		if (node.getParentNode() == null)
-			return; // do not format removed node
-
-		setWidth(contraints, node);
-
-		if (canInsertBreakBefore(node))
-			insertBreakBefore(node, contraints);
-
-		formatNode(node, contraints);
-
-		if (canInsertBreakAfter(node))
-			insertBreakAfter(node, contraints);
-	}
-
-	/**
-	 */
-	protected void formatChildNodes(IDOMNode node, HTMLFormatContraints contraints) {
-		if (node == null)
-			return;
-		if (!node.hasChildNodes())
-			return;
-
-		// concat adjacent texts
-		node.normalize();
-
-		// disable sibling indent during formatting all the children
-		boolean indent = false;
-		if (contraints != null) {
-			indent = contraints.getFormatWithSiblingIndent();
-			contraints.setFormatWithSiblingIndent(false);
-		}
-
-		boolean insertBreak = true;
-		IDOMNode child = (IDOMNode) node.getFirstChild();
-		while (child != null) {
-			if (child.getParentNode() != node)
-				break;
-			IDOMNode next = (IDOMNode) child.getNextSibling();
-
-			if (insertBreak && canInsertBreakBefore(child)) {
-				insertBreakBefore(child, contraints);
-			}
-
-			IStructuredFormatter formatter = HTMLFormatterFactory.getInstance().createFormatter(child, getFormatPreferences());
-			if (formatter != null) {
-				if (formatter instanceof HTMLFormatter) {
-					HTMLFormatter htmlFormatter = (HTMLFormatter) formatter;
-					htmlFormatter.formatNode(child, contraints);
-				}
-				else {
-					formatter.format(child);
-				}
-			}
-
-			if (canInsertBreakAfter(child)) {
-				insertBreakAfter(child, contraints);
-				insertBreak = false; // not to insert twice
-			}
-			else {
-				insertBreak = true;
-			}
-
-			child = next;
-		}
-
-		if (contraints != null)
-			contraints.setFormatWithSiblingIndent(indent);
-	}
-
-	/**
-	 */
-	protected void formatNode(IDOMNode node, HTMLFormatContraints contraints) {
-		if (node == null)
-			return;
-
-		if (node.hasChildNodes()) { // container
-			formatChildNodes(node, contraints);
-		}
-		else { // leaf
-			IStructuredDocumentRegion flatNode = node.getStartStructuredDocumentRegion();
-			if (flatNode != null) {
-				String source = flatNode.getText();
-				if (source != null && source.length() > 0) {
-					setWidth(contraints, source);
-				}
-			}
-		}
-	}
-
-	/**
-	 */
-	protected String getBreakSpaces(Node node) {
-		if (node == null)
-			return null;
-		StringBuffer buffer = new StringBuffer();
-
-		String delim = ((IDOMNode) node).getModel().getStructuredDocument().getLineDelimiter();
-		if (delim != null && delim.length() > 0)
-			buffer.append(delim);
-
-		String indent = getIndent();
-		if (indent != null && indent.length() > 0) {
-			for (Node parent = node.getParentNode(); parent != null; parent = parent.getParentNode()) {
-				if (parent.getNodeType() != Node.ELEMENT_NODE)
-					break;
-				// ignore omitted tag
-				if (((IDOMNode) parent).getStartStructuredDocumentRegion() == null)
-					continue;
-
-				IDOMElement element = (IDOMElement) parent;
-				if (element.getPrefix() != null) {
-					String localName = element.getLocalName();
-					// special for html:html
-					if (localName != null && !localName.equals(HTML_NAME)) {
-						buffer.append(indent);
-					}
-					continue;
-				}
-
-				CMElementDeclaration decl = getElementDeclaration(element);
-				if (decl != null && decl.supports(HTMLCMProperties.SHOULD_INDENT_CHILD_SOURCE)) {
-					boolean shouldIndent = ((Boolean) decl.getProperty(HTMLCMProperties.SHOULD_INDENT_CHILD_SOURCE)).booleanValue();
-					if (shouldIndent)
-						buffer.append(indent);
-				}
-
-			}
-		}
-
-		return buffer.toString();
-	}
-
-	/**
-	 */
-	protected String getIndent() {
-		return getFormatPreferences().getIndent();
-	}
-
-	/**
-	 */
-	protected int getLineWidth() {
-		return getFormatPreferences().getLineWidth();
-	}
-
-	/**
-	 */
-	protected CMElementDeclaration getElementDeclaration(Element element) {
-		if (element == null)
-			return null;
-		Document document = element.getOwnerDocument();
-		if (document == null)
-			return null;
-		ModelQuery modelQuery = ModelQueryUtil.getModelQuery(document);
-		if (modelQuery == null)
-			return null;
-		return modelQuery.getCMElementDeclaration(element);
-	}
-
-	/**
-	 */
-	protected void insertBreakAfter(IDOMNode node, HTMLFormatContraints contraints) {
-		if (node == null)
-			return;
-		if (node.getNodeType() == Node.TEXT_NODE)
-			return;
-		// don't insert break if node is on the last line
-		int documentLength = node.getStructuredDocument().getLength();
-		if (documentLength < 1 || (node.getEndOffset() >= (documentLength - 1)))
-			return;
-		Node parent = node.getParentNode();
-		if (parent == null)
-			return;
-		Node next = node.getNextSibling();
-
-		String spaces = null;
-		if (next == null) { // last spaces
-			// use parent indent for the end tag
-			spaces = getBreakSpaces(parent);
-		}
-		else if (next.getNodeType() == Node.TEXT_NODE) {
-			if (contraints != null && contraints.getFormatWithSiblingIndent()) {
-				IDOMNode text = (IDOMNode) next;
-				IStructuredFormatter formatter = HTMLFormatterFactory.getInstance().createFormatter(text, getFormatPreferences());
-				if (formatter instanceof HTMLTextFormatter) {
-					HTMLTextFormatter textFormatter = (HTMLTextFormatter) formatter;
-					textFormatter.formatText(text, contraints, HTMLTextFormatter.FORMAT_HEAD);
-				}
-			}
-			return;
-		}
-		else {
-			spaces = getBreakSpaces(node);
-		}
-		if (spaces == null || spaces.length() == 0)
-			return;
-
-		replaceSource(node.getModel(), node.getEndOffset(), 0, spaces);
-		setWidth(contraints, spaces);
-	}
-
-	/**
-	 */
-	protected void insertBreakBefore(IDOMNode node, HTMLFormatContraints contraints) {
-		if (node == null)
-			return;
-		if (node.getNodeType() == Node.TEXT_NODE)
-			return;
-		Node parent = node.getParentNode();
-		if (parent == null)
-			return;
-		Node prev = node.getPreviousSibling();
-
-		String spaces = null;
-		if (prev != null && prev.getNodeType() == Node.TEXT_NODE) {
-			if (contraints != null && contraints.getFormatWithSiblingIndent()) {
-				IDOMNode text = (IDOMNode) prev;
-				IStructuredFormatter formatter = HTMLFormatterFactory.getInstance().createFormatter(text, getFormatPreferences());
-				if (formatter instanceof HTMLTextFormatter) {
-					HTMLTextFormatter textFormatter = (HTMLTextFormatter) formatter;
-					textFormatter.formatText(text, contraints, HTMLTextFormatter.FORMAT_TAIL);
-				}
-			}
-			return;
-		}
-		else {
-			spaces = getBreakSpaces(node);
-		}
-		if (spaces == null || spaces.length() == 0)
-			return;
-
-		replaceSource(node.getModel(), node.getStartOffset(), 0, spaces);
-		setWidth(contraints, spaces);
-	}
-
-	/**
-	 */
-	protected boolean isWidthAvailable(HTMLFormatContraints contraints, int width) {
-		if (contraints == null)
-			return true;
-		if (!splitLines() || getLineWidth() < 0)
-			return true;
-		return (contraints.getAvailableLineWidth() >= width);
-	}
-
-	/**
-	 */
-	protected boolean keepBlankLines(HTMLFormatContraints contraints) {
-		if (contraints == null)
-			return true;
-		return (!contraints.getClearAllBlankLines());
-	}
-
-	/**
-	 */
-	protected void replaceSource(IStructuredDocumentRegion flatNode, int offset, int length, String source) {
-		if (flatNode == null)
-			return;
-		IStructuredDocument structuredDocument = flatNode.getParentDocument();
-		if (structuredDocument == null)
-			return;
-		if (source == null)
-			source = new String();
-		int startOffset = flatNode.getStartOffset();
-		if (structuredDocument.containsReadOnly(startOffset + offset, length))
-			return;
-		// We use 'structuredDocument' as the requester object just so this
-		// and the other
-		// format-related 'repalceText' (in replaceSource) can use the same
-		// requester.
-		// Otherwise, if requester is not identical,
-		// the undo group gets "broken" into multiple pieces based
-		// on the requesters being different. Technically, any unique, common
-		// requester object would work.
-		structuredDocument.replaceText(structuredDocument, startOffset + offset, length, source);
-	}
-
-	/**
-	 */
-	protected void replaceSource(IDOMModel model, int offset, int length, String source) {
-		if (model == null)
-			return;
-		IStructuredDocument structuredDocument = model.getStructuredDocument();
-		if (structuredDocument == null)
-			return;
-		if (source == null)
-			source = new String();
-		if (structuredDocument.containsReadOnly(offset, length))
-			return;
-		// We use 'structuredDocument' as the requester object just so this
-		// and the other
-		// format-related 'repalceText' (in replaceSource) can use the same
-		// requester.
-		// Otherwise, if requester is not identical,
-		// the undo group gets "broken" into multiple pieces based
-		// on the requesters being different. Technically, any unique, common
-		// requester object would work.
-		structuredDocument.replaceText(structuredDocument, offset, length, source);
-	}
-
-	/**
-	 */
-	protected void setWidth(HTMLFormatContraints contraints, String source) {
-		if (contraints == null)
-			return;
-		if (source == null)
-			return;
-		int length = source.length();
-		if (length == 0)
-			return;
-
-		if (!splitLines())
-			return;
-		int lineWidth = getLineWidth();
-		if (lineWidth < 0)
-			return;
-
-		int offset = source.lastIndexOf('\n');
-		int offset2 = source.lastIndexOf('\r');
-		if (offset2 > offset)
-			offset = offset2;
-		if (offset >= 0)
-			offset++;
-
-		int availableWidth = 0;
-		if (offset >= 0) {
-			availableWidth = lineWidth - (length - offset);
-		}
-		else {
-			availableWidth = contraints.getAvailableLineWidth() - length;
-		}
-		if (availableWidth < 0)
-			availableWidth = 0;
-		contraints.setAvailableLineWidth(availableWidth);
-	}
-
-	/**
-	 */
-	protected void setWidth(HTMLFormatContraints contraints, Node node) {
-		if (contraints == null)
-			return;
-		if (node == null)
-			return;
-		IStructuredDocument structuredDocument = ((IDOMNode) node).getStructuredDocument();
-		if (structuredDocument == null)
-			return; // error
-
-		if (!splitLines())
-			return;
-		int lineWidth = getLineWidth();
-		if (lineWidth < 0)
-			return;
-
-		int offset = ((IDOMNode) node).getStartOffset();
-		int line = structuredDocument.getLineOfOffset(offset);
-		int lineOffset = 0;
-		try {
-			lineOffset = structuredDocument.getLineOffset(line);
-		}
-		catch (BadLocationException ex) {
-			return; // error
-		}
-		if (lineOffset > offset)
-			return; // error
-
-		int availableWidth = lineWidth - (offset - lineOffset);
-		if (availableWidth < 0)
-			availableWidth = 0;
-
-		contraints.setAvailableLineWidth(availableWidth);
-	}
-
-	/**
-	 */
-	protected boolean splitLines() {
-		return true;// getFormatPreferences().getSplitLines();
-	}
-
-	protected IStructuredFormatPreferences fFormatPreferences = null;
-	protected HTMLFormatContraints fFormatContraints = null;
-	protected IProgressMonitor fProgressMonitor = null;
-
-	// public void format(XMLNode node, FormatContraints formatContraints) {
-	// if (formatContraints.getFormatWithSiblingIndent())
-	// formatContraints.setCurrentIndent(getSiblingIndent(node));
-	//
-	// formatNode(node, formatContraints);
-	// }
-
-	public void setFormatPreferences(IStructuredFormatPreferences formatPreferences) {
-		fFormatPreferences = formatPreferences;
-	}
-
-	public IStructuredFormatPreferences getFormatPreferences() {
-		if (fFormatPreferences == null) {
-			fFormatPreferences = new StructuredFormatPreferencesXML();
-
-			Preferences preferences = HTMLCorePlugin.getDefault().getPluginPreferences();
-			if (preferences != null) {
-				fFormatPreferences.setLineWidth(preferences.getInt(HTMLCorePreferenceNames.LINE_WIDTH));
-				((StructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
-				((StructuredFormatPreferencesXML) fFormatPreferences).setAlignEndBracket(preferences.getBoolean(HTMLCorePreferenceNames.ALIGN_END_BRACKET));
-				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
-
-				char indentChar = ' ';
-				String indentCharPref = preferences.getString(HTMLCorePreferenceNames.INDENTATION_CHAR);
-				if (HTMLCorePreferenceNames.TAB.equals(indentCharPref)) {
-					indentChar = '\t';
-				}
-				int indentationWidth = preferences.getInt(HTMLCorePreferenceNames.INDENTATION_SIZE);
-
-				StringBuffer indent = new StringBuffer();
-				for (int i = 0; i < indentationWidth; i++) {
-					indent.append(indentChar);
-				}
-				fFormatPreferences.setIndent(indent.toString());
-			}
-		}
-
-		return fFormatPreferences;
-	}
-
-	public IStructuredFormatContraints getFormatContraints() {
-		if (fFormatContraints == null) {
-			fFormatContraints = new HTMLFormatContraintsImpl();
-
-			fFormatContraints.setAvailableLineWidth(getFormatPreferences().getLineWidth());
-			fFormatContraints.setClearAllBlankLines(getFormatPreferences().getClearAllBlankLines());
-		}
-
-		return fFormatContraints;
-	}
-
-	public void setProgressMonitor(IProgressMonitor progressMonitor) {
-		fProgressMonitor = progressMonitor;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatterFactory.java
deleted file mode 100644
index d34701a..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatterFactory.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.format;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter;
-import org.eclipse.wst.xml.core.internal.provisional.format.StructuredFormatPreferencesXML;
-import org.w3c.dom.Node;
-
-// nakamori_TODO: check and remove CSS formatting
-
-class HTMLFormatterFactory {
-	private static HTMLFormatterFactory fInstance = null;
-	protected StructuredFormatPreferencesXML fFormatPreferences = null;
-
-	static synchronized HTMLFormatterFactory getInstance() {
-		if (fInstance == null) {
-			fInstance = new HTMLFormatterFactory();
-		}
-		return fInstance;
-	}
-
-	protected IStructuredFormatter createFormatter(Node node, IStructuredFormatPreferences formatPreferences) {
-		IStructuredFormatter formatter = null;
-
-		switch (node.getNodeType()) {
-			case Node.ELEMENT_NODE :
-				formatter = new HTMLElementFormatter();
-				break;
-			case Node.TEXT_NODE :
-				if (isEmbeddedCSS(node)) {
-					formatter = new EmbeddedCSSFormatter();
-				}
-				else {
-					formatter = new HTMLTextFormatter();
-				}
-				break;
-			default :
-				formatter = new HTMLFormatter();
-				break;
-		}
-
-		// init FormatPreferences
-		formatter.setFormatPreferences(formatPreferences);
-
-		return formatter;
-	}
-
-	/**
-	 */
-	private boolean isEmbeddedCSS(Node node) {
-		if (node == null)
-			return false;
-		Node parent = node.getParentNode();
-		if (parent == null)
-			return false;
-		if (parent.getNodeType() != Node.ELEMENT_NODE)
-			return false;
-		String name = parent.getNodeName();
-		if (name == null)
-			return false;
-		return name.equalsIgnoreCase("STYLE");//$NON-NLS-1$
-	}
-
-
-	private HTMLFormatterFactory() {
-		super();
-	}
-
-	protected StructuredFormatPreferencesXML getFormatPreferences() {
-		if (fFormatPreferences == null) {
-			fFormatPreferences = new StructuredFormatPreferencesXML();
-
-			Preferences preferences = HTMLCorePlugin.getDefault().getPluginPreferences();
-			if (preferences != null) {
-				fFormatPreferences.setLineWidth(preferences.getInt(HTMLCorePreferenceNames.LINE_WIDTH));
-				fFormatPreferences.setSplitMultiAttrs(preferences.getBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
-				fFormatPreferences.setAlignEndBracket(preferences.getBoolean(HTMLCorePreferenceNames.ALIGN_END_BRACKET));
-				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
-
-				char indentChar = ' ';
-				String indentCharPref = preferences.getString(HTMLCorePreferenceNames.INDENTATION_CHAR);
-				if (HTMLCorePreferenceNames.TAB.equals(indentCharPref)) {
-					indentChar = '\t';
-				}
-				int indentationWidth = preferences.getInt(HTMLCorePreferenceNames.INDENTATION_SIZE);
-
-				StringBuffer indent = new StringBuffer();
-				for (int i = 0; i < indentationWidth; i++) {
-					indent.append(indentChar);
-				}
-				fFormatPreferences.setIndent(indent.toString());
-			}
-		}
-
-		return fFormatPreferences;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLTextFormatter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLTextFormatter.java
deleted file mode 100644
index 91aefd3..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLTextFormatter.java
+++ /dev/null
@@ -1,299 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.format;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.html.core.internal.provisional.HTMLFormatContraints;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class HTMLTextFormatter extends HTMLFormatter {
-
-	public static int FORMAT_ALL = 0;
-	public static int FORMAT_HEAD = 1;
-	public static int FORMAT_TAIL = 2;
-
-	/**
-	 */
-	protected HTMLTextFormatter() {
-		super();
-	}
-
-	/**
-	 */
-	private boolean canFormatText(IDOMText text) {
-		if (text == null)
-			return false;
-
-		IStructuredDocumentRegion flatNode = text.getFirstStructuredDocumentRegion();
-		if (flatNode != null) {
-			String type = flatNode.getType();
-			if (isUnparsedRegion(type))
-				return false;
-		}
-
-		Node parent = text.getParentNode();
-		if (parent != null && parent.getNodeType() == Node.ELEMENT_NODE) {
-			IDOMElement element = (IDOMElement) parent;
-			if (!element.isGlobalTag() && !text.isElementContentWhitespace())
-				return false;
-		}
-
-		return canFormatChild(parent);
-	}
-
-	private boolean isUnparsedRegion(String type) {
-		boolean result = isNestedScannedRegion(type) || isBlockScannedRegion(type);
-		return result;
-	}
-
-	private boolean isBlockScannedRegion(String type) {
-		return type == DOMRegionContext.BLOCK_TEXT;
-	}
-
-	/**
-	 * ISSUE: this is a bit of hidden JSP knowledge that was implemented this
-	 * way for expedency. Should be evolved in future to depend on
-	 * "nestedContext".
-	 */
-	private boolean isNestedScannedRegion(String type) {
-		final String JSP_CONTENT = "JSP_CONTENT"; //$NON-NLS-1$
-		return type.equals(JSP_CONTENT);
-	}
-
-	/**
-	 */
-	private boolean canRemoveHeadingSpaces(IDOMNode node) {
-		if (node == null)
-			return false;
-		if (node.getPreviousSibling() != null)
-			return false;
-		Node parent = node.getParentNode();
-		if (parent == null || parent.getNodeType() != Node.ELEMENT_NODE)
-			return false;
-
-		CMElementDeclaration decl = getElementDeclaration((Element) parent);
-		if (decl == null || (!decl.supports(HTMLCMProperties.LINE_BREAK_HINT)))
-			return false;
-		String hint = (String) decl.getProperty(HTMLCMProperties.LINE_BREAK_HINT);
-		return hint.equals(HTMLCMProperties.Values.BREAK_BEFORE_START_AND_AFTER_END);
-	}
-
-	/**
-	 */
-	private boolean canRemoveTailingSpaces(IDOMNode node) {
-		if (node == null)
-			return false;
-		if (node.getNextSibling() != null)
-			return false;
-		Node parent = node.getParentNode();
-		if (parent == null || parent.getNodeType() != Node.ELEMENT_NODE)
-			return false;
-
-		CMElementDeclaration decl = getElementDeclaration((Element) parent);
-		if (decl == null || (!decl.supports(HTMLCMProperties.LINE_BREAK_HINT)))
-			return false;
-		String hint = (String) decl.getProperty(HTMLCMProperties.LINE_BREAK_HINT);
-		return hint.equals(HTMLCMProperties.Values.BREAK_BEFORE_START_AND_AFTER_END);
-	}
-
-	/**
-	 */
-	protected void formatNode(IDOMNode node, HTMLFormatContraints contraints) {
-		formatText(node, contraints, FORMAT_ALL); // full format
-	}
-
-	/**
-	 */
-	protected void formatText(IDOMNode node, HTMLFormatContraints contraints, int mode) {
-		if (node == null)
-			return;
-		Node parent = node.getParentNode();
-		if (parent == null)
-			return;
-
-		IDOMText text = (IDOMText) node;
-		String source = text.getSource();
-
-		if (!canFormatText(text)) {
-			setWidth(contraints, source);
-			return;
-		}
-
-		int offset = text.getStartOffset();
-		int length = text.getEndOffset() - offset;
-
-		// format adjacent text at once
-		if (mode == FORMAT_HEAD) {
-			Node next = node.getNextSibling();
-			while (next != null && next.getNodeType() == Node.TEXT_NODE) {
-				IDOMText nextText = (IDOMText) next;
-				length += (nextText.getEndOffset() - nextText.getStartOffset());
-				String nextSource = nextText.getSource();
-				if (nextSource != null && nextSource.length() > 0) {
-					if (source == null)
-						source = nextSource;
-					else
-						source += nextSource;
-				}
-				next = next.getNextSibling();
-			}
-		}
-		else if (mode == FORMAT_TAIL) {
-			Node prev = node.getPreviousSibling();
-			while (prev != null && prev.getNodeType() == Node.TEXT_NODE) {
-				IDOMText prevText = (IDOMText) prev;
-				offset = prevText.getStartOffset();
-				length += (prevText.getEndOffset() - offset);
-				String prevSource = prevText.getSource();
-				if (prevSource != null && prevSource.length() > 0) {
-					if (source == null)
-						source = prevSource;
-					else
-						source = prevSource + source;
-				}
-				prev = prev.getPreviousSibling();
-			}
-		}
-
-		SpaceConverter converter = new SpaceConverter(source, keepBlankLines(contraints));
-
-		int wordLength = converter.nextWord();
-		if (wordLength == 0) { // only spaces
-			if (!converter.hasSpaces())
-				return; // empty
-			boolean removeSpaces = false;
-			if (parent.getNodeType() == Node.ELEMENT_NODE) {
-				// check if tags are omitted
-				IDOMNode element = (IDOMNode) parent;
-				if (node.getPreviousSibling() == null && element.getStartStructuredDocumentRegion() == null) {
-					removeSpaces = true;
-				}
-				else if (node.getNextSibling() == null && element.getEndStructuredDocumentRegion() == null) {
-					removeSpaces = true;
-				}
-			}
-			if (removeSpaces) {
-				converter.replaceSpaces(null);
-			}
-			else if (!isWidthAvailable(contraints, 2) || canInsertBreakAfter(node) || canInsertBreakBefore(node)) {
-				String spaces = null;
-				if (node.getNextSibling() == null) { // last spaces
-					// use parent indent for the end tag
-					spaces = getBreakSpaces(parent);
-				}
-				else {
-					spaces = getBreakSpaces(node);
-				}
-				converter.replaceSpaces(spaces);
-				setWidth(contraints, spaces);
-			}
-			else if (canRemoveHeadingSpaces(node) || canRemoveTailingSpaces(node)) {
-				converter.replaceSpaces(null);
-			}
-			else {
-				converter.compressSpaces();
-				addWidth(contraints, 1);
-			}
-		}
-		else {
-			String breakSpaces = null;
-
-			// format heading spaces
-			boolean hasSpaces = converter.hasSpaces();
-			if (mode == FORMAT_TAIL) {
-				// keep spaces as is
-				addWidth(contraints, converter.getSpaceCount());
-			}
-			else if ((hasSpaces && !isWidthAvailable(contraints, wordLength + 1)) || canInsertBreakBefore(node)) {
-				breakSpaces = getBreakSpaces(node);
-				converter.replaceSpaces(breakSpaces);
-				setWidth(contraints, breakSpaces);
-			}
-			else {
-				if (hasSpaces) {
-					if (canRemoveHeadingSpaces(node)) {
-						converter.replaceSpaces(null);
-					}
-					else {
-						converter.compressSpaces();
-						addWidth(contraints, 1);
-					}
-				}
-			}
-			addWidth(contraints, wordLength);
-
-			// format middle
-			wordLength = converter.nextWord();
-			while (wordLength > 0) {
-				if (mode != FORMAT_ALL) {
-					// keep spaces as is
-					addWidth(contraints, converter.getSpaceCount());
-				}
-				else if (!isWidthAvailable(contraints, wordLength + 1)) {
-					if (breakSpaces == null)
-						breakSpaces = getBreakSpaces(node);
-					converter.replaceSpaces(breakSpaces);
-					setWidth(contraints, breakSpaces);
-				}
-				else {
-					converter.compressSpaces();
-					addWidth(contraints, 1);
-				}
-				addWidth(contraints, wordLength);
-				wordLength = converter.nextWord();
-			}
-
-			// format tailing spaces
-			hasSpaces = converter.hasSpaces();
-			if (mode == FORMAT_HEAD) {
-				// keep spaces as is
-				addWidth(contraints, converter.getSpaceCount());
-			}
-			else if ((hasSpaces && !isWidthAvailable(contraints, 2)) || canInsertBreakAfter(node)) {
-				if (node.getNextSibling() == null) { // last test
-					// use parent indent for the end tag
-					breakSpaces = getBreakSpaces(parent);
-				}
-				else {
-					if (breakSpaces == null)
-						breakSpaces = getBreakSpaces(node);
-				}
-				converter.replaceSpaces(breakSpaces);
-				setWidth(contraints, breakSpaces);
-			}
-			else {
-				if (hasSpaces) {
-					if (canRemoveTailingSpaces(node)) {
-						converter.replaceSpaces(null);
-					}
-					else {
-						converter.compressSpaces();
-						addWidth(contraints, 1);
-					}
-				}
-			}
-		}
-
-		if (converter.isModified()) {
-			source = converter.getSource();
-			replaceSource(text.getModel(), offset, length, source);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/SpaceConverter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/SpaceConverter.java
deleted file mode 100644
index 38f9203..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/SpaceConverter.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.format;
-
-
-
-final class SpaceConverter {
-
-	private String source = null;
-	private int length = 0;
-	private int startOffset = 0;
-	private int endOffset = 0;
-	private int spaceCount = 0;
-	private int wordCount = 0;
-	private StringBuffer buffer = null;
-	private int lastOffset = 0;
-	private boolean keepBlankLines = false;
-
-	/**
-	 */
-	public SpaceConverter(String source) {
-		super();
-
-		if (source == null) {
-			this.source = new String();
-		}
-		else {
-			this.source = source;
-			this.length = source.length();
-		}
-	}
-
-	/**
-	 */
-	public SpaceConverter(String source, boolean keepBlankLines) {
-		super();
-
-		if (source == null) {
-			this.source = new String();
-		}
-		else {
-			this.source = source;
-			this.length = source.length();
-		}
-		this.keepBlankLines = keepBlankLines;
-	}
-
-	/**
-	 */
-	public void compressSpaces() {
-		if (this.spaceCount == 0)
-			return;
-		if (this.spaceCount == 1 && this.source.charAt(this.startOffset) == ' ')
-			return;
-
-		if (this.buffer == null)
-			this.buffer = new StringBuffer();
-		if (this.startOffset > this.lastOffset) {
-			this.buffer.append(this.source.substring(this.lastOffset, this.startOffset));
-		}
-
-		this.buffer.append(' ');
-
-		this.lastOffset = this.startOffset + this.spaceCount;
-	}
-
-	/**
-	 */
-	public String getSource() {
-		if (this.buffer == null)
-			this.buffer = new StringBuffer();
-		if (this.length > this.lastOffset) {
-			this.buffer.append(this.source.substring(this.lastOffset, this.length));
-		}
-		return this.buffer.toString();
-	}
-
-	/**
-	 */
-	public int getSpaceCount() {
-		return this.spaceCount;
-	}
-
-	/**
-	 */
-	public boolean hasSpaces() {
-		return (this.spaceCount > 0);
-	}
-
-	/**
-	 */
-	public boolean isModified() {
-		return (this.buffer != null);
-	}
-
-	/**
-	 * Add number of the old blank lines to new space string
-	 */
-	private static String mergeBlankLines(String newSpaces, String oldSpaces) {
-		if (newSpaces == null || newSpaces.length() == 0)
-			return newSpaces;
-		if (oldSpaces == null)
-			return newSpaces;
-
-		// count old new lines
-		int newLineCount = 0;
-		int oldLength = oldSpaces.length();
-		for (int i = 0; i < oldLength; i++) {
-			char c = oldSpaces.charAt(i);
-			if (c == '\r') {
-				newLineCount++;
-				if (i + 1 < oldLength) {
-					c = oldSpaces.charAt(i + 1);
-					if (c == '\n')
-						i++;
-				}
-			}
-			else {
-				if (c == '\n')
-					newLineCount++;
-			}
-		}
-		if (newLineCount < 2)
-			return newSpaces; // no blank line
-
-		// here assuming newSpaces starts with a new line if any
-		String delim = null;
-		char d = newSpaces.charAt(0);
-		if (d == '\r') {
-			if (newSpaces.length() > 1 && newSpaces.charAt(1) == '\n')
-				delim = "\r\n";//$NON-NLS-1$
-			else
-				delim = "\r";//$NON-NLS-1$
-		}
-		else {
-			if (d == '\n')
-				delim = "\n";//$NON-NLS-1$
-			else
-				return newSpaces; // no new line
-		}
-
-		newLineCount--;
-		StringBuffer buffer = new StringBuffer(newSpaces.length() + newLineCount * 2);
-		while (newLineCount > 0) {
-			buffer.append(delim);
-			newLineCount--;
-		}
-		buffer.append(newSpaces);
-		return buffer.toString();
-	}
-
-	/**
-	 */
-	public int nextWord() {
-		if (this.endOffset == this.length) {
-			this.startOffset = this.endOffset;
-			this.spaceCount = 0;
-			this.wordCount = 0;
-			return 0;
-		}
-
-		this.startOffset = this.endOffset;
-		int i = this.startOffset;
-		for (; i < this.length; i++) {
-			if (!Character.isWhitespace(this.source.charAt(i)))
-				break;
-		}
-		this.spaceCount = i - this.startOffset;
-
-		int wordOffset = i;
-		for (; i < this.length; i++) {
-			if (Character.isWhitespace(this.source.charAt(i)))
-				break;
-		}
-		this.wordCount = i - wordOffset;
-		this.endOffset = i;
-
-		return this.wordCount;
-	}
-
-	/**
-	 */
-	public void replaceSpaces(String spaces) {
-		int spaceLength = (spaces != null ? spaces.length() : 0);
-		String oldSpaces = null;
-		if (spaceLength == this.spaceCount) {
-			if (spaceLength == 0)
-				return;
-			if (this.startOffset == 0) {
-				if (this.source.startsWith(spaces))
-					return;
-			}
-			else if (this.endOffset == this.length) {
-				if (this.source.endsWith(spaces))
-					return;
-			}
-			else {
-				int textOffset = this.startOffset + this.spaceCount;
-				oldSpaces = this.source.substring(this.startOffset, textOffset);
-				if (oldSpaces.equals(spaces))
-					return;
-			}
-		}
-		if (this.keepBlankLines && this.spaceCount > 0) {
-			if (oldSpaces == null) {
-				int textOffset = this.startOffset + this.spaceCount;
-				oldSpaces = this.source.substring(this.startOffset, textOffset);
-			}
-			if (oldSpaces != null) {
-				spaces = mergeBlankLines(spaces, oldSpaces);
-				if (oldSpaces.equals(spaces))
-					return;
-			}
-		}
-
-		if (this.buffer == null)
-			this.buffer = new StringBuffer();
-		if (this.startOffset > this.lastOffset) {
-			this.buffer.append(this.source.substring(this.lastOffset, this.startOffset));
-		}
-
-		if (spaceLength > 0)
-			this.buffer.append(spaces);
-
-		this.lastOffset = this.startOffset + this.spaceCount;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/AbstractCSSModelAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/AbstractCSSModelAdapter.java
deleted file mode 100644
index 891868c..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/AbstractCSSModelAdapter.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.wst.html.core.internal.htmlcss;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.wst.css.core.internal.document.CSSModelImpl;
-import org.eclipse.wst.css.core.internal.provisional.adapters.ICSSModelAdapter;
-import org.eclipse.wst.css.core.internal.provisional.contenttype.ContentTypeIdForCSS;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Element;
-
-/**
- */
-public abstract class AbstractCSSModelAdapter implements ICSSModelAdapter {
-	private final static String CSS_ID = ContentTypeIdForCSS.ContentTypeID_CSS;
-
-	private Element element = null;
-	private ICSSModel model = null;
-
-	/**
-	 */
-	AbstractCSSModelAdapter() {
-		super();
-	}
-
-	/**
-	 */
-	protected ICSSModel createModel() {
-		// create embedded CSS model (not for external CSS)
-		if (getElement() == null)
-			return null;
-		IStructuredModel baseModel = ((IDOMNode) getElement()).getModel();
-		ICSSModel newModel = (ICSSModel) baseModel.getModelManager().createUnManagedStructuredModelFor(CSS_ID);
-		((CSSModelImpl) newModel).setOwnerDOMNode(getElement());
-		return newModel;
-	}
-
-	/**
-	 */
-	public Element getElement() {
-		return this.element;
-	}
-
-	/**
-	 */
-	protected ICSSModel getExistingModel() {
-		return this.model;
-	}
-
-	/**
-	 */
-	protected void notifyStyleChanged(Element target) {
-		INodeNotifier notifier = (INodeNotifier) target;
-		if (notifier == null)
-			return;
-		Collection adapters = notifier.getAdapters();
-		if (adapters == null)
-			return;
-		Iterator it = adapters.iterator();
-		if (it == null)
-			return;
-		while (it.hasNext()) {
-			INodeAdapter adapter = (INodeAdapter) it.next();
-			if (adapter instanceof StyleListener) {
-				StyleListener listener = (StyleListener) adapter;
-				listener.styleChanged();
-			}
-		}
-	}
-
-	/**
-	 */
-	void setElement(Element element) {
-		this.element = element;
-	}
-
-	/**
-	 * check 
-	 * 1. If attributes of element is valid (type,rel ...)
-	 * 2. If content model supports this element / attribute (future ?)
-	 */
-	protected boolean isValidAttribute() {
-		return (getElement() != null);
-	}
-
-	/**
-	 */
-	protected void setModel(ICSSModel model) {
-		this.model = model;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/AbstractStyleSheetAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/AbstractStyleSheetAdapter.java
deleted file mode 100644
index 9051483..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/AbstractStyleSheetAdapter.java
+++ /dev/null
@@ -1,249 +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
- *     
- * 		Masaki Saitoh (MSAITOH@jp.ibm.com)
- *		See Bug 153000  Style Adapters should be lazier
- *		https://bugs.eclipse.org/bugs/show_bug.cgi?id=153000
- *
- ********************************************************************************/
-package org.eclipse.wst.html.core.internal.htmlcss;
-
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-
-import org.eclipse.wst.css.core.internal.event.ICSSStyleListener;
-import org.eclipse.wst.css.core.internal.provisional.adapters.IModelProvideAdapter;
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelector;
-import org.eclipse.wst.css.core.internal.util.ImportedCollector;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.xml.core.internal.document.XMLModelNotifier;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.stylesheets.DocumentStyle;
-import org.w3c.dom.stylesheets.StyleSheet;
-import org.w3c.dom.stylesheets.StyleSheetList;
-import org.w3c.dom.traversal.DocumentTraversal;
-import org.w3c.dom.traversal.NodeFilter;
-import org.w3c.dom.traversal.NodeIterator;
-
-/**
- */
-public abstract class AbstractStyleSheetAdapter extends AbstractCSSModelAdapter implements ICSSStyleListener, IStyleSheetAdapter {
-
-	// this variable to hold the class is just a VAJava trick.
-	// it improves performance in VAJava by minimizing class loading.
-	private final Class StyleSheetAdapterClass = IStyleSheetAdapter.class;
-	private Collection styleChangedNodes;
-
-	/**
-	 */
-	protected AbstractStyleSheetAdapter() {
-		super();
-	}
-
-	/**
-	 */
-	protected ICSSModel createModel() {
-		return createModel(true);
-	}
-
-	/**
-	 */
-	protected ICSSModel createModel(boolean notify) {
-		ICSSModel newModel = super.createModel();
-		if (notify && newModel != null) {
-			// get ModelProvideAdapter
-			IModelProvideAdapter adapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(IModelProvideAdapter.class);
-			// notify adapter
-			if (adapter != null)
-				adapter.modelProvided(newModel);
-		}
-		return newModel;
-	}
-
-	/**
-	 */
-	public StyleSheet getSheet() {
-		ICSSModel model = getModel();
-		if (model == null)
-			return null;
-		return (StyleSheet) model.getDocument();
-	}
-
-	/**
-	 * Allowing the INodeAdapter to compare itself against the type
-	 * allows it to return true in more than one case.
-	 */
-	public boolean isAdapterForType(Object type) {
-		return (type == StyleSheetAdapterClass);
-	}
-
-	/**
-	 */
-	public void released() {
-		ICSSModel currentModel = getModel();
-
-		// get ModelProvideAdapter
-		IModelProvideAdapter adapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(IModelProvideAdapter.class);
-
-		setElement(null);
-		setModel(null);
-
-		if (adapter != null)
-			adapter.modelReleased(currentModel);
-
-		if (currentModel != null)
-			currentModel.releaseFromRead();
-	}
-
-	/**
-	 */
-	public void removed() {
-		ICSSModel currentModel = getModel();
-
-		setModel(null);
-
-		// get ModelProvideAdapter
-		IModelProvideAdapter adapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(IModelProvideAdapter.class);
-		if (adapter != null)
-			adapter.modelRemoved(currentModel);
-
-		if (currentModel != null)
-			currentModel.releaseFromRead();
-	}
-
-	/**
-	 * @param srcModel com.ibm.sed.css.model.interfaces.ICSSModel
-	 * @param removed com.ibm.sed.css.model.interfaces.ICSSSelector[]
-	 * @param added com.ibm.sed.css.model.interfaces.ICSSSelector[]
-	 * @param media java.lang.String
-	 */
-	public void styleChanged(ICSSModel srcModel, ICSSSelector[] removed, ICSSSelector[] added, String media) {
-		Element element = getElement();
-		if (element == null)
-			return; // might released
-		Document doc = element.getOwnerDocument();
-		if (doc == null)
-			return; // error
-
-		// to notify GEF tree 
-		if (doc instanceof INodeNotifier) {
-			Collection adapters = ((INodeNotifier) doc).getAdapters();
-			if (adapters == null)
-				return;
-			Iterator it = adapters.iterator();
-			if (it == null)
-				return;
-			while (it.hasNext()) {
-				INodeAdapter adapter = (INodeAdapter) it.next();
-				if (adapter instanceof ICSSStyleListener) {
-					((ICSSStyleListener) adapter).styleChanged(srcModel, removed, added, media);
-				}
-			}
-		}
-		//
-
-		if (styleChangedNodes == null) {
-			styleChangedNodes = new HashSet();
-		}
-
-		try {
-			int removedSelNum = removed != null ? removed.length : 0;
-			int addedSelNum = added != null ? added.length : 0;
-
-			NodeIterator iter = ((DocumentTraversal) doc).createNodeIterator(doc, NodeFilter.SHOW_ELEMENT, null, true);
-			Node node;
-			while ((node = iter.nextNode()) != null) {
-				if (node.getNodeType() == Node.ELEMENT_NODE) {
-					Element elm = (Element) node;
-					boolean match = false;
-					int i;
-					for (i = 0; i < removedSelNum && !match; i++) {
-						match = removed[i].match(elm, null);
-					}
-					for (i = 0; i < addedSelNum && !match; i++) {
-						match = added[i].match(elm, null);
-					}
-					if (match) {
-						if (!styleChangedNodes.contains(elm))
-							styleChangedNodes.add(elm);
-						// notifyStyleChanged(elm);
-					}
-				}
-			}
-		}
-		catch (ClassCastException ex) {
-			// Document doesn't implement DocumentTraversal...
-		}
-
-	}
-
-	/**
-	 * @param srcModel com.ibm.sed.css.model.interfaces.ICSSModel
-	 */
-	public void styleUpdate(ICSSModel srcModel) {
-		IDOMNode node = (IDOMNode) getElement();
-		if (node == null)
-			return;
-		IDOMModel model = node.getModel();
-		if (model == null)
-			return;
-		XMLModelNotifier notifier = model.getModelNotifier();
-		if (notifier == null)
-			return;
-
-		// before updating, all sub-models should be loaded!
-		DocumentStyle document = (DocumentStyle) model.getDocument();
-		StyleSheetList styles = document.getStyleSheets();
-		if (styles != null) {
-			int n = styles.getLength();
-			ImportedCollector trav = new ImportedCollector();
-			for (int i = 0; i < n; i++) {
-				org.w3c.dom.stylesheets.StyleSheet sheet = styles.item(i);
-				if (sheet instanceof ICSSNode)
-					trav.apply((ICSSNode) sheet);
-			}
-		}
-
-		// flash style changed events
-		if (styleChangedNodes != null) {
-			Object[] elements = styleChangedNodes.toArray();
-			for (int i = 0; elements != null && i < elements.length; i++)
-				notifyStyleChanged((Element) elements[i]);
-			styleChangedNodes.clear();
-		}
-
-		// to notify GEF tree 
-		if (document instanceof INodeNotifier) {
-			Collection adapters = ((INodeNotifier) document).getAdapters();
-			if (adapters == null)
-				return;
-			Iterator it = adapters.iterator();
-			if (it == null)
-				return;
-			while (it.hasNext()) {
-				INodeAdapter adapter = (INodeAdapter) it.next();
-				if (adapter instanceof ICSSStyleListener) {
-					((ICSSStyleListener) adapter).styleUpdate(srcModel);
-				}
-			}
-		}
-
-		notifier.propertyChanged(node);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryContext.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryContext.java
deleted file mode 100644
index 1e98f23..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryContext.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.htmlcss;
-
-
-
-import java.util.Enumeration;
-
-import org.eclipse.wst.css.core.internal.contentmodel.PropCMProperty;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclItem;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclaration;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSValue;
-import org.eclipse.wst.css.core.internal.util.CSSLinkConverter;
-import org.eclipse.wst.css.core.internal.util.declaration.CSSPropertyContext;
-
-/**
- */
-class CSSQueryContext extends CSSPropertyContext {
-
-	/**
-	 */
-	public CSSQueryContext() {
-		super();
-	}
-
-	/**
-	 */
-	public CSSQueryContext(ICSSStyleDeclaration decl) {
-		super(decl);
-	}
-
-	/**
-	 *
-	 */
-	public void applyFull(ICSSStyleDeclaration decl) {
-		if (decl == null)
-			return;
-		Enumeration keys = fProperties.keys();
-		while (keys.hasMoreElements()) {
-			Object key = keys.nextElement();
-			Object val = fProperties.get(key);
-
-			if (val instanceof CSSQueryDeclarationData) {
-				ICSSStyleDeclItem declItem = ((CSSQueryDeclarationData) val).getDeclItem();
-				if (declItem.getLength() <= 0) {
-					ICSSStyleDeclItem itemToRemove = decl.getDeclItemNode(key.toString());
-					if (itemToRemove != null) {
-						decl.removeDeclItemNode(itemToRemove);
-					}
-				}
-				else {
-					decl.setDeclItemNode(declItem);
-				}
-			}
-			else {
-				String value = (val instanceof ICSSValue) ? ((ICSSValue) val).getCSSValueText() : val.toString();
-
-				if (value == null || value.length() <= 0) {
-					ICSSStyleDeclItem itemToRemove = decl.getDeclItemNode(key.toString());
-					if (itemToRemove != null) {
-						decl.removeDeclItemNode(itemToRemove);
-					}
-				}
-				else {
-					decl.setProperty(key.toString(), value, null);
-				}
-			}
-		}
-	}
-
-	/**
-	 */
-	private boolean check(String propName, boolean important, int specificity) {
-		Object current = fProperties.get(propName);
-		if (current != null && current instanceof CSSQueryValueData) {
-			CSSQueryValueData currentValue = (CSSQueryValueData) current;
-			if ((!important && currentValue.important) || (currentValue.getSpecificity() > specificity)) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 */
-	public void overrideWithExpand(ICSSStyleDeclaration decl, int specificity) {
-		if (decl == null)
-			return;
-
-		CSSLinkConverter conv = new CSSLinkConverter(decl.getOwnerDocument().getModel());
-
-		int nProperties = decl.getLength();
-		for (int i = 0; i < nProperties; i++) {
-			String propName = decl.item(i);
-			if (propName != null) {
-				String propN = propName.trim().toLowerCase();
-				if (propN.length() != 0) {
-					PropCMProperty prop = PropCMProperty.getInstanceOf(propN);
-					String priority = decl.getPropertyPriority(propName);
-					boolean important = priority != null && priority.length() > 0;
-					if (prop != null && prop.isShorthand()) {
-						// expand shorthand property
-						CSSQueryContext context = new CSSQueryContext();
-						expandToLeaf(prop, decl.getPropertyValue(propName), context);
-
-						Enumeration properties = context.properties();
-						while (properties.hasMoreElements()) {
-							propN = properties.nextElement().toString();
-							if (check(propN, important, specificity)) {
-								fProperties.put(propN, new CSSQueryValueData(conv.toAbsolute(context.get(propN)), important, specificity));
-							}
-						}
-					}
-					else {
-						if (check(propN, important, specificity)) {
-							ICSSStyleDeclItem declItem = (ICSSStyleDeclItem) decl.getDeclItemNode(propName).cloneNode(true);
-							int nValues = declItem.getLength();
-							for (int j = 0; j < nValues; j++) {
-								conv.toAbsolute(declItem.item(j));
-							}
-							declItem.setPriority(null);
-							fProperties.put(propN, new CSSQueryDeclarationData(declItem, important, specificity));
-						}
-					}
-				}
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryDeclarationData.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryDeclarationData.java
deleted file mode 100644
index 4f6125d..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryDeclarationData.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.htmlcss;
-
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclItem;
-
-
-
-/**
- */
-public class CSSQueryDeclarationData extends CSSQueryValueData {
-
-
-	ICSSStyleDeclItem declItem;
-
-	public CSSQueryDeclarationData(ICSSStyleDeclItem declItem, boolean imp, int specificity) {
-		super(null, imp, specificity);
-		this.declItem = declItem;
-	}
-
-	/**
-	 */
-	ICSSStyleDeclItem getDeclItem() {
-		return declItem;
-	}
-
-	/**
-	 */
-	public String toString() {
-		if (value == null && declItem != null) {
-			value = declItem.getCSSValueText();
-		}
-		return value;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryTraverser.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryTraverser.java
deleted file mode 100644
index 860610a..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryTraverser.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.htmlcss;
-
-
-
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelector;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelectorList;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclaration;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleRule;
-import org.eclipse.wst.css.core.internal.util.AbstractCssTraverser;
-import org.eclipse.wst.css.core.internal.util.CSSStyleDeclarationFactory;
-import org.w3c.dom.Element;
-import org.w3c.dom.css.ElementCSSInlineStyle;
-
-/**
- */
-public class CSSQueryTraverser extends AbstractCssTraverser {
-
-	private Element element;
-	private String pseudoName;
-	private CSSQueryContext context = null;
-	ICSSStyleDeclaration decl = null;
-
-	/**
-	 */
-	public ICSSStyleDeclaration getDeclaration() {
-		try {
-			ICSSStyleDeclaration inlineStyle = (ICSSStyleDeclaration) ((ElementCSSInlineStyle) element).getStyle();
-			if (inlineStyle != null) {
-				if (context == null) {
-					context = new CSSQueryContext();
-				}
-				context.overrideWithExpand(inlineStyle, 10000);
-				// style attribute's specificity is 100 (in CSS2 spec.) and
-				// our implement use 100 as base number (see CSSSelector.java)
-			}
-		}
-		catch (ClassCastException ex) {
-			// element is not ElementCSSInlineStyle ???
-		}
-		if (context == null)
-			return null;
-
-		if (decl == null)
-			decl = CSSStyleDeclarationFactory.getInstance().createStyleDeclaration();
-		context.applyFull(decl);
-		return decl;
-	}
-
-	/**
-	 */
-	private void overwriteDeclaration(ICSSStyleDeclaration d, int specificity) {
-		if (d == null)
-			return;
-		if (context == null)
-			context = new CSSQueryContext();
-		context.overrideWithExpand(d, specificity);
-	}
-
-	/**
-	 */
-	protected short postNode(ICSSNode node) {
-		return TRAV_CONT;
-	}
-
-	/**
-	 */
-	protected short preNode(ICSSNode node) {
-		if (node instanceof ICSSStyleRule) {
-			// style rule
-			ICSSStyleRule style = (ICSSStyleRule) node;
-			ICSSSelectorList list = style.getSelectors();
-			int nSelectors = list.getLength();
-			int maxSpecificity = -1;
-			for (int iSelector = 0; iSelector < nSelectors; iSelector++) {
-				// Check each Selector Lists
-				ICSSSelector selector = list.getSelector(iSelector);
-				int specificity = selector.getSpecificity();
-				if (maxSpecificity < specificity && selector.match(element, pseudoName)) {
-					maxSpecificity = specificity;
-				}
-			}
-			if (maxSpecificity >= 0) {
-				// apply this style to the element
-				overwriteDeclaration((ICSSStyleDeclaration) style.getStyle(), maxSpecificity);
-			}
-			return TRAV_PRUNE;
-		}
-		return TRAV_CONT;
-	}
-
-	/**
-	 */
-	private void resetContext() {
-		context = null;
-	}
-
-	/**
-	 */
-	public void setElement(Element element, String pseudoName) {
-		this.element = element;
-		this.pseudoName = pseudoName;
-		resetContext();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryValueData.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryValueData.java
deleted file mode 100644
index 6198156..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryValueData.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.htmlcss;
-
-import org.eclipse.wst.css.core.internal.util.declaration.ValueData;
-
-
-
-/**
- */
-class CSSQueryValueData extends ValueData {
-
-	private int specificity;
-
-	/**
-	 */
-	public CSSQueryValueData() {
-		super();
-	}
-
-	/**
-	 */
-	public CSSQueryValueData(String val, boolean imp) {
-		super(val, imp);
-	}
-
-	/**
-	 */
-	public CSSQueryValueData(String val, boolean imp, int specificity) {
-		super(val, imp);
-		this.specificity = specificity;
-	}
-
-	/**
-	 */
-	int getSpecificity() {
-		return specificity;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLDocumentAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLDocumentAdapter.java
deleted file mode 100644
index c388305..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLDocumentAdapter.java
+++ /dev/null
@@ -1,398 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.htmlcss;
-
-
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter;
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetListAdapter;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSImportRule;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
-import org.eclipse.wst.css.core.internal.util.CSSClassTraverser;
-import org.eclipse.wst.css.core.internal.util.ImportRuleCollector;
-import org.eclipse.wst.html.core.internal.contentmodel.JSP11Namespace;
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.css.CSSStyleDeclaration;
-import org.w3c.dom.stylesheets.StyleSheet;
-import org.w3c.dom.stylesheets.StyleSheetList;
-
-
-
-/**
- */
-public class HTMLDocumentAdapter implements IStyleSheetListAdapter, StyleSheetList {
-
-	private Document document = null;
-	private Vector styleAdapters = null;
-	private Vector oldStyleAdapters = null;
-
-	/**
-	 */
-	HTMLDocumentAdapter() {
-		super();
-	}
-
-	/**
-	 */
-	private void addStyleSheet(Element node) {
-		IDOMElement element = (IDOMElement) node;
-		String tagName = element.getTagName();
-		if (tagName == null)
-			return;
-		boolean isContainer = false;
-		if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.HTML) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.HEAD) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.NOSCRIPT) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.BASE) || tagName.equalsIgnoreCase(JSP11Namespace.ElementName.ROOT) || (!element.isGlobalTag() && element.isContainer())) {
-			isContainer = true;
-		}
-		else if (element.isCommentTag()) {
-			Node parent = element.getParentNode();
-			if (parent == element.getOwnerDocument()) {
-				// This condition is too severe, actually do not work for JSF template.
-				// But above (! globalTag() && isContainer()) cover JSF template + tpl template
-				isContainer = true;
-			}
-			else if (parent.getNodeType() == Node.ELEMENT_NODE) {
-				tagName = ((Element) parent).getTagName();
-				if (tagName != null && tagName.equalsIgnoreCase(HTML40Namespace.ElementName.HEAD)) {
-					isContainer = true;
-				}
-			}
-		}
-
-		else {
-			String localName = element.getLocalName();
-			if (localName != null && localName.equalsIgnoreCase(HTML40Namespace.ElementName.HTML)) {
-				// taglib html tag
-				isContainer = true;
-			}
-			else {
-				INodeNotifier notifier = element;
-				INodeAdapter adapter = notifier.getAdapterFor(IStyleSheetAdapter.class);
-				if (adapter != null && adapter instanceof IStyleSheetAdapter) {
-					this.styleAdapters.addElement(adapter);
-				}
-			}
-		}
-		if (isContainer) {
-			INodeNotifier notifier = element;
-			if (notifier.getExistingAdapter(IStyleSheetListAdapter.class) == null) {
-				notifier.addAdapter(this);
-			}
-			for (Node child = element.getFirstChild(); child != null; child = child.getNextSibling()) {
-				if (child.getNodeType() != Node.ELEMENT_NODE)
-					continue;
-				addStyleSheet((Element) child);
-			}
-		}
-	}
-
-	/**
-	 */
-	void childReplaced() {
-		if (this.styleAdapters == null)
-			return;
-
-		// backup old adapters to be released on updating in getStyleSheets()
-		this.oldStyleAdapters = this.styleAdapters;
-		// invalidate the list
-		this.styleAdapters = null;
-
-		notifyStyleSheetsChanged(this.document);
-	}
-
-	/**
-	 */
-	public Enumeration getClasses() {
-		StyleSheetList sheetList = getStyleSheets();
-		int nSheets = sheetList.getLength();
-
-		final ArrayList classes = new ArrayList();
-
-		CSSClassTraverser traverser = new CSSClassTraverser();
-		traverser.setTraverseImported(true);
-
-		for (int i = 0; i < nSheets; i++) {
-			org.w3c.dom.stylesheets.StyleSheet sheet = sheetList.item(i);
-			if (sheet instanceof ICSSNode) {
-				traverser.apply((ICSSNode) sheet);
-			}
-		}
-		classes.addAll(traverser.getClassNames());
-
-		return new Enumeration() {
-			int i = 0;
-
-			public boolean hasMoreElements() {
-				return i < classes.size();
-			}
-
-			public Object nextElement() {
-				return classes.get(i++);
-			}
-		};
-	}
-
-	/**
-	 */
-	private List getValidAdapters() {
-		Vector validAdapters = new Vector();
-		if (this.styleAdapters != null) {
-			Iterator i = this.styleAdapters.iterator();
-			while (i.hasNext()) {
-				Object obj = i.next();
-				if (obj instanceof AbstractStyleSheetAdapter && ((AbstractStyleSheetAdapter) obj).isValidAttribute()) {
-					validAdapters.add(obj);
-				}
-			}
-		}
-		return validAdapters;
-	}
-
-	/**
-	 */
-	public int getLength() {
-		return getValidAdapters().size();
-	}
-
-	/**
-	 */
-	public CSSStyleDeclaration getOverrideStyle(Element element, String pseudoName) {
-		StyleSheetList ssl = getStyleSheets();
-		int numStyles = ssl.getLength();
-
-		CSSQueryTraverser query = new CSSQueryTraverser();
-		query.setTraverseImported(true);
-		query.setTraverseImportFirst(true);
-		query.setElement(element, pseudoName);
-
-		for (int i = 0; i < numStyles; i++) {
-			// loop for styles (<style> and <link>)
-			org.w3c.dom.stylesheets.StyleSheet ss = ssl.item(i);
-
-			try {
-				query.apply((ICSSNode) ss);
-			}
-			catch (ClassCastException ex) {
-				// I can handle only CSS style
-			}
-		}
-
-		return query.getDeclaration();
-	}
-
-	/**
-	 */
-	public StyleSheetList getStyleSheets() {
-		if (this.styleAdapters == null) {
-			if (this.document == null)
-				return null;
-
-			this.styleAdapters = new Vector();
-			for (Node child = this.document.getFirstChild(); child != null; child = child.getNextSibling()) {
-				if (child.getNodeType() != Node.ELEMENT_NODE)
-					continue;
-				addStyleSheet((Element) child);
-			}
-
-			removeOldStyleSheets();
-		}
-		return this;
-	}
-
-	/**
-	 * Allowing the INodeAdapter to compare itself against the type
-	 * allows it to return true in more than one case.
-	 */
-	public boolean isAdapterForType(Object type) {
-		return (type == IStyleSheetListAdapter.class);
-	}
-
-	/**
-	 */
-	public StyleSheet item(int index) {
-		if (this.styleAdapters == null)
-			return null;
-
-		List validAdapters = getValidAdapters();
-
-		if (index < 0 || index >= validAdapters.size())
-			return null;
-		StyleSheet sheet = ((IStyleSheetAdapter) validAdapters.get(index)).getSheet();
-		if (sheet == null) {// for LINK element whose link is broken
-			ICSSModel model = ((AbstractStyleSheetAdapter) validAdapters.get(index)).createModel();
-			sheet = ((model != null) ? (StyleSheet) model.getDocument() : null);
-		}
-		return sheet;
-	}
-
-	/**
-	 */
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-		Node node = null;
-		switch (eventType) {
-			case INodeNotifier.ADD :
-				node = (Node) newValue;
-				break;
-			case INodeNotifier.REMOVE :
-				node = (Node) oldValue;
-				break;
-			case INodeNotifier.CHANGE :
-				node = (Node) notifier;
-				break;
-			default :
-				break;
-		}
-		if (node == null || node.getNodeType() != Node.ELEMENT_NODE)
-			return;
-		IDOMElement element = (IDOMElement) node;
-		String tagName = element.getTagName();
-		if (tagName == null)
-			return;
-
-		if (eventType == INodeNotifier.CHANGE) {
-			if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.BASE)) {
-				refreshAdapters();
-			}
-		}
-		else {
-			if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.HTML) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.HEAD) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.STYLE) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.LINK) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.NOSCRIPT) || tagName.equalsIgnoreCase(JSP11Namespace.ElementName.ROOT) || element.isCommentTag() || (!element.isGlobalTag() && element.isContainer())) {
-				childReplaced();
-			}
-			else if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.BASE)) {
-				refreshAdapters();
-			}
-			else {
-				String localName = element.getLocalName();
-				if (localName != null && localName.equalsIgnoreCase(HTML40Namespace.ElementName.HTML)) {
-					// taglib html tag
-					childReplaced();
-				}
-			}
-		}
-	}
-
-	/**
-	 * reload LINK / @import if BASE changed
-	 */
-	private void refreshAdapters() {
-		Iterator iAdapter = this.styleAdapters.iterator();
-		while (iAdapter.hasNext()) {
-			Object adapter = iAdapter.next();
-			if (adapter instanceof LinkElementAdapter) {
-				((LinkElementAdapter) adapter).refreshSheet();
-			}
-			else if (adapter instanceof StyleElementAdapter) {
-				ICSSModel model = ((StyleElementAdapter) adapter).getModel();
-				ImportRuleCollector trav = new ImportRuleCollector();
-				trav.apply(model);
-				Iterator iRule = trav.getRules().iterator();
-				while (iRule.hasNext()) {
-					ICSSImportRule rule = (ICSSImportRule) iRule.next();
-					rule.refreshStyleSheet();
-				}
-			}
-		}
-	}
-
-	/**
-	 */
-	private void notifyStyleSheetsChanged(Document target) {
-		INodeNotifier notifier = (INodeNotifier) target;
-		if (notifier == null)
-			return;
-		Collection adapters = notifier.getAdapters();
-		if (adapters == null)
-			return;
-		Iterator it = adapters.iterator();
-		if (it == null)
-			return;
-		while (it.hasNext()) {
-			INodeAdapter adapter = (INodeAdapter) it.next();
-			if (adapter instanceof StyleListener) {
-				StyleListener listener = (StyleListener) adapter;
-				listener.styleChanged();
-			}
-		}
-	}
-
-	/**
-	 */
-	private void releaseOldStyleSheets() {
-		if (this.oldStyleAdapters == null)
-			return;
-		Iterator it = this.oldStyleAdapters.iterator();
-		while (it.hasNext()) {
-			IStyleSheetAdapter adapter = (IStyleSheetAdapter) it.next();
-			if (adapter == null)
-				continue;
-			// if the same adapter is in the current list,
-			// do not release
-			if (this.styleAdapters != null && this.styleAdapters.contains(adapter))
-				continue;
-			adapter.released();
-		}
-		this.oldStyleAdapters = null;
-	}
-
-	/**
-	 */
-	public void releaseStyleSheets() {
-		releaseOldStyleSheets();
-
-		if (this.styleAdapters == null)
-			return;
-		Iterator it = this.styleAdapters.iterator();
-		while (it.hasNext()) {
-			IStyleSheetAdapter adapter = (IStyleSheetAdapter) it.next();
-			if (adapter != null)
-				adapter.released();
-		}
-		this.styleAdapters = null;
-	}
-
-	/**
-	 */
-	private void removeOldStyleSheets() {
-		if (this.oldStyleAdapters == null)
-			return;
-		Iterator it = this.oldStyleAdapters.iterator();
-		while (it.hasNext()) {
-			IStyleSheetAdapter adapter = (IStyleSheetAdapter) it.next();
-			if (adapter == null)
-				continue;
-			// if the same adapter is in the current list,
-			// do not release
-			if (this.styleAdapters != null && this.styleAdapters.contains(adapter))
-				continue;
-			adapter.removed();
-		}
-		this.oldStyleAdapters = null;
-	}
-
-	/**
-	 */
-	void setDocument(Document document) {
-		this.document = document;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapter.java
deleted file mode 100644
index cf58aa4..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapter.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.htmlcss;
-
-
-
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSelectorAdapter;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSSimpleSelector;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.w3c.dom.Element;
-
-/**
- * Insert the type's description here.
- */
-public class HTMLStyleSelectorAdapter implements IStyleSelectorAdapter {
-
-	static private HTMLStyleSelectorAdapter instance;
-	private Object toMatch = IStyleSelectorAdapter.class;
-
-	public synchronized static HTMLStyleSelectorAdapter getInstance() {
-		if (instance == null) {
-			instance = new HTMLStyleSelectorAdapter();
-		}
-		return instance;
-	}
-
-	public boolean isAdapterForType(Object type) {
-		return type == toMatch;
-	}
-
-	public boolean match(ICSSSimpleSelector selector, Element element, String pseudoName) {
-		if (element == null)
-			return false;
-		int i;
-		String key;
-
-		// PseudoName
-		i = selector.getNumOfPseudoNames();
-		if (i > 0) {
-			if (pseudoName == null || pseudoName.length() == 0)
-				return false;
-			for (i = i - 1; i >= 0; i--) {
-				if (pseudoName.equalsIgnoreCase(selector.getPseudoName(i))) {
-					break;
-				}
-			}
-			if (i < 0)
-				return false;
-		}
-
-		// check tag name
-		if (!selector.isUniversal() && !element.getNodeName().equalsIgnoreCase(selector.getName()))
-			return false;
-
-		// check id
-		i = selector.getNumOfIDs();
-		if (i > 0) {
-			if (i > 1)
-				return false;
-			key = element.getAttribute("id");//$NON-NLS-1$
-			if (key == null)
-				return false;
-			if (!selector.getID(0).equals(key))
-				return false;
-		}
-
-		// check class
-		i = selector.getNumOfClasses();
-		if (i > 0) {
-			key = element.getAttribute("class");//$NON-NLS-1$
-			if (key == null)
-				return false;
-			StringTokenizer tokenizer = new StringTokenizer(key);
-			for (i = i - 1; i >= 0; i--) {
-				boolean ok = false;
-				while (tokenizer.hasMoreTokens()) {
-					if (selector.getClass(i).equals(tokenizer.nextToken())) {
-						ok = true;
-						break;
-					}
-				}
-				if (!ok)
-					return false;
-			}
-		}
-
-		// check attributes
-		for (i = selector.getNumOfAttributes() - 1; i >= 0; i--) {
-			StringTokenizer tokenizer = new StringTokenizer(selector.getAttribute(i), "=~| \t\r\n\f");//$NON-NLS-1$
-			int countTokens = tokenizer.countTokens();
-			if (countTokens > 0) {
-				String attrValue = element.getAttribute(tokenizer.nextToken());
-				if (attrValue == null)
-					return false;
-				if (countTokens > 1) {
-					String token = tokenizer.nextToken("= \t\r\n\f");//$NON-NLS-1$
-					StringTokenizer attrValueTokenizer = null;
-					if (token.equals("~")) {//$NON-NLS-1$
-						attrValueTokenizer = new StringTokenizer(attrValue);
-					}
-					else if (token.equals("|")) {//$NON-NLS-1$
-						attrValueTokenizer = new StringTokenizer(attrValue, "-");//$NON-NLS-1$
-					}
-					if (attrValueTokenizer != null) {
-						if (tokenizer.hasMoreTokens()) {
-							token = tokenizer.nextToken();
-							boolean ok = false;
-							while (attrValueTokenizer.hasMoreTokens()) {
-								if (token.equals(attrValueTokenizer.nextToken())) {
-									ok = true;
-									break;
-								}
-							}
-							if (!ok)
-								return false;
-						}
-					}
-					else {
-						if (!attrValue.equals(token))
-							return false;
-					}
-				}
-			}
-		}
-
-		return true;
-	}
-
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapterFactory.java
deleted file mode 100644
index 57cd685..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapterFactory.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
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.htmlcss;
-
-
-
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSelectorAdapter;
-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;
-
-/**
- * Insert the type's description here.
- */
-public class HTMLStyleSelectorAdapterFactory implements INodeAdapterFactory {
-
-	private static HTMLStyleSelectorAdapterFactory instance;
-	private Object toMatch = IStyleSelectorAdapter.class;
-
-	/**
-	 * CSSModelProvideAdapterFactory constructor comment.
-	 */
-	public HTMLStyleSelectorAdapterFactory() {
-		super();
-	}
-
-	/**
-	 * Method that returns the adapter associated with the given object.
-	 * It may be a singleton or not ... depending on the needs of the INodeAdapter  ...
-	 * but in general it is recommended for an adapter to be stateless, 
-	 * so the efficiencies of a singleton can be gained.
-	 *
-	 * The implementation of this method should call addAdapter on the adapted
-	 * object with the correct instance of the adapter.
-	 */
-	public INodeAdapter adapt(INodeNotifier notifier) {
-		INodeAdapter adapter = notifier.getExistingAdapter(IStyleSelectorAdapter.class);
-		if (adapter != null)
-			return adapter;
-		adapter = HTMLStyleSelectorAdapter.getInstance();
-		notifier.addAdapter(adapter);
-		return adapter;
-	}
-
-	public synchronized static HTMLStyleSelectorAdapterFactory getInstance() {
-		if (instance == null)
-			instance = new HTMLStyleSelectorAdapterFactory();
-		return instance;
-	}
-
-	/**
-	 * isFactoryForType method comment.
-	 */
-	public boolean isFactoryForType(Object type) {
-		return type == toMatch;
-	}
-
-	public void release() {
-		// default is to do nothing
-	}
-
-	/**
-	 * Overriding copy method
-	 */
-	public INodeAdapterFactory copy() {
-		return getInstance();
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/LinkElementAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/LinkElementAdapter.java
deleted file mode 100644
index 0c73ac2..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/LinkElementAdapter.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.htmlcss;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.css.core.internal.provisional.adapters.IModelProvideAdapter;
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetListAdapter;
-import org.eclipse.wst.css.core.internal.provisional.contenttype.ContentTypeIdForCSS;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.util.URIResolver;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- */
-public class LinkElementAdapter extends AbstractStyleSheetAdapter {
-
-	private final static String CSS_ID = ContentTypeIdForCSS.ContentTypeID_CSS;
-	private boolean replaceModel = true;
-	// this variable to hold the class is just a VAJava trick.
-	// it improves performance in VAJava by minimizing class loading.
-	private final Class ModelProvideAdapterClass = IModelProvideAdapter.class;
-
-	/**
-	 */
-	protected LinkElementAdapter() {
-		super();
-	}
-
-	/**
-	 */
-	private void attrReplaced() {
-		this.replaceModel = true;
-
-		Element element = getElement();
-		if (element == null)
-			return; // error
-		Document document = element.getOwnerDocument();
-		if (document == null)
-			return; // error
-		INodeNotifier notifier = (INodeNotifier) document;
-		HTMLDocumentAdapter adapter = (HTMLDocumentAdapter) notifier.getAdapterFor(IStyleSheetListAdapter.class);
-		if (adapter == null)
-			return;
-		adapter.childReplaced();
-	}
-
-	protected ICSSModel createModel() {
-		// create phantom(broken link) external CSS model
-		if (getElement() == null)
-			return null;
-		IStructuredModel baseModel = ((IDOMNode) getElement()).getModel();
-		ICSSModel newModel = (ICSSModel) baseModel.getModelManager().createUnManagedStructuredModelFor(CSS_ID);
-
-		// calculate base location and set
-		// get resolver in Model
-		URIResolver resolver = baseModel.getResolver();
-
-		// resolve to absolute url : this need not exact location of css file. It is important that absurl is not null. 
-		String ref = getElement().getAttribute(org.eclipse.wst.html.core.internal.provisional.HTML40Namespace.ATTR_NAME_HREF);
-		String absurl = (resolver != null && ref != null) ? resolver.getLocationByURI(ref, true) : null;
-		if ((absurl == null) || (absurl.length() == 0)) {
-			IPath basePath = new Path(baseModel.getBaseLocation());
-			URLHelper helper = new URLHelper(basePath.removeLastSegments(1).toString());
-			absurl = helper.toAbsolute(ref == null ? "" : ref);//$NON-NLS-1$
-		}
-		if ((absurl == null) || (absurl.length() == 0)) {
-			absurl = ref;
-		}
-		if (absurl == null) {
-			absurl = "";//$NON-NLS-1$
-		}
-		newModel.setBaseLocation(absurl);
-
-		// set style listener
-		newModel.addStyleListener(this);
-
-		return newModel;
-	}
-
-	/**
-	 */
-	public ICSSModel getModel() {
-		ICSSModel model = getExistingModel();
-		if (this.replaceModel) {
-			ICSSModel oldModel = model;
-			try {
-				model = retrieveModel();
-				setModel(model);
-
-				// release old model
-				if (oldModel != null) {
-					// get ModelProvideAdapter
-					IModelProvideAdapter adapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(IModelProvideAdapter.class);
-					if (adapter != null)
-						adapter.modelRemoved(oldModel);
-				}
-			}
-			finally {
-				if (oldModel != null)
-					oldModel.releaseFromRead();
-			}
-			this.replaceModel = false;
-		}
-		return model;
-	}
-
-	/**
-	 */
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-		if (eventType != INodeNotifier.CHANGE)
-			return;
-		Attr attr = (Attr) changedFeature;
-		if (attr == null)
-			return;
-		String name = attr.getName();
-		if (name.equalsIgnoreCase("rel") || //$NON-NLS-1$
-					name.equalsIgnoreCase("type") || //$NON-NLS-1$	
-					name.equalsIgnoreCase("href")) {//$NON-NLS-1$
-			attrReplaced();
-		}
-	}
-
-	/**
-	 */
-	public void refreshSheet() {
-		if (!replaceModel) {
-			removed();
-			replaceModel = true;
-
-			IDOMNode node = (IDOMNode) getElement();
-			if (node != null) {
-				node.notify(INodeNotifier.CHANGE, getElement().getAttributeNode(org.eclipse.wst.html.core.internal.provisional.HTML40Namespace.ATTR_NAME_HREF), null, null, node.getStartOffset());
-			}
-		}
-	}
-
-	/**
-	 */
-	public void released() {
-		ICSSModel model = getExistingModel();
-		if (model != null) {
-			try {
-				// get ModelProvideAdapter
-				IModelProvideAdapter adapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(IModelProvideAdapter.class);
-
-				// set element to null first, so that no document wide updates
-				setElement(null);
-				setModel(null);
-
-				if (adapter != null)
-					adapter.modelReleased(model);
-			}
-			finally {
-				model.releaseFromRead();
-			}
-		}
-		this.replaceModel = false;
-	}
-
-	/**
-	 */
-	public void removed() {
-		ICSSModel model = getExistingModel();
-		if (model != null) {
-			try {
-				setModel(null);
-
-				// get ModelProvideAdapter
-				IModelProvideAdapter adapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(IModelProvideAdapter.class);
-				if (adapter != null)
-					adapter.modelRemoved(model);
-			}
-			finally {
-				model.releaseFromRead();
-			}
-		}
-		this.replaceModel = false;
-	}
-
-	/**
-	 */
-	protected boolean isValidAttribute() {
-		Element element = getElement();
-		if (element == null)
-			return false;
-		String rel = element.getAttribute("rel");//$NON-NLS-1$
-		if (rel == null || !rel.equalsIgnoreCase("stylesheet"))//$NON-NLS-1$
-			return false;
-		String type = element.getAttribute("type");//$NON-NLS-1$
-		if (type != null && !type.equalsIgnoreCase("text/css"))//$NON-NLS-1$
-			return false;
-		String href = element.getAttribute("href");//$NON-NLS-1$
-		if (href == null || href.length() == 0)
-			return false;
-		return true;
-	}
-
-	/**
-	 */
-	private ICSSModel retrieveModel() {
-		if (!isValidAttribute()) {
-			return null;
-		}
-
-		// null,attr check is done in isValidAttribute()
-		Element element = getElement();
-		String href = element.getAttribute("href");//$NON-NLS-1$
-
-		IDOMModel baseModel = ((IDOMNode) element).getModel();
-		if (baseModel == null)
-			return null;
-		Object id = baseModel.getId();
-		if (!(id instanceof String))
-			return null;
-		//String base = (String)id;
-
-		// get ModelProvideAdapter
-		IModelProvideAdapter adapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(ModelProvideAdapterClass);
-
-		URLModelProvider provider = new URLModelProvider();
-		try {
-			IStructuredModel newModel = provider.getModelForRead(baseModel, href);
-			if (newModel == null)
-				return null;
-			if (!(newModel instanceof ICSSModel)) {
-				newModel.releaseFromRead();
-				return null;
-			}
-
-			// notify adapter
-			if (adapter != null)
-				adapter.modelProvided(newModel);
-
-			return (ICSSModel) newModel;
-		}
-		catch (UnsupportedEncodingException e) {
-		}
-		catch (IOException e) {
-		}
-
-		return null;
-	}
-
-	/**
-	 */
-	protected void setModel(ICSSModel model) {
-		ICSSModel oldModel = getExistingModel();
-		if (model == oldModel)
-			return;
-		super.setModel(model);
-		if (this.replaceModel)
-			this.replaceModel = false;
-		if (oldModel != null)
-			oldModel.removeStyleListener(this);
-		if (model != null)
-			model.addStyleListener(this);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAdapterFactory.java
deleted file mode 100644
index 922ee62..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAdapterFactory.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.htmlcss;
-
-
-
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleDeclarationAdapter;
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter;
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetListAdapter;
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-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.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.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- */
-public class StyleAdapterFactory implements INodeAdapterFactory {
-
-	private static StyleAdapterFactory instance = null;
-
-	//	private static String CSS_CONTENT_TYPE = "text/css";//$NON-NLS-1$
-	/**
-	 */
-	private StyleAdapterFactory() {
-		super();
-	}
-
-	/**
-	 */
-	public INodeAdapter adapt(INodeNotifier notifier) {
-		if (notifier == null)
-			return null;
-
-		Node node = (Node) notifier;
-		short nodeType = node.getNodeType();
-		if (nodeType == Node.DOCUMENT_NODE) {
-			INodeAdapter adapter = notifier.getExistingAdapter(IStyleSheetListAdapter.class);
-			if (adapter != null)
-				return adapter;
-			HTMLDocumentAdapter newAdapter = new HTMLDocumentAdapter();
-			newAdapter.setDocument((Document) node);
-			notifier.addAdapter(newAdapter);
-			return newAdapter;
-		}
-		if (nodeType != Node.ELEMENT_NODE)
-			return null;
-
-		Element element = (Element) node;
-		String tagName = element.getTagName();
-		if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.STYLE)) {
-			if (!isTagAvailable(element.getOwnerDocument(), HTML40Namespace.ElementName.STYLE)) {
-				return null;
-			}
-			//		String type = element.getAttribute(HTML40Namespace.ATTR_NAME_TYPE);
-			//		if (type != null && ! type.equalsIgnoreCase(CSS_CONTENT_TYPE)) {
-			//			return null;
-			//		}
-			INodeAdapter adapter = notifier.getExistingAdapter(IStyleSheetAdapter.class);
-			if (adapter != null)
-				return adapter;
-			StyleElementAdapter newAdapter = new StyleElementAdapter();
-			newAdapter.setElement(element);
-			notifier.addAdapter(newAdapter);
-			return newAdapter;
-		}
-		else if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.LINK)) {
-			if (!isTagAvailable(element.getOwnerDocument(), HTML40Namespace.ElementName.LINK)) {
-				return null;
-			}
-			INodeAdapter adapter = notifier.getExistingAdapter(IStyleSheetAdapter.class);
-			if (adapter != null)
-				return adapter;
-			LinkElementAdapter newAdapter = new LinkElementAdapter();
-			newAdapter.setElement(element);
-			notifier.addAdapter(newAdapter);
-			return newAdapter;
-		}
-
-		INodeAdapter adapter = notifier.getExistingAdapter(IStyleDeclarationAdapter.class);
-		if (adapter != null)
-			return adapter;
-
-		if (!isAttributeAvailable(element, HTML40Namespace.ATTR_NAME_STYLE)) {
-			return null;
-		}
-		StyleAttrAdapter newAdapter = new StyleAttrAdapter();
-		newAdapter.setElement(element);
-		notifier.addAdapter(newAdapter);
-		return newAdapter;
-	}
-
-	/**
-	 */
-	public synchronized static StyleAdapterFactory getInstance() {
-		if (instance == null)
-			instance = new StyleAdapterFactory();
-		return instance;
-	}
-
-	/**
-	 */
-	public boolean isFactoryForType(Object type) {
-		return (type == IStyleSheetAdapter.class || type == IStyleDeclarationAdapter.class || type == IStyleSheetListAdapter.class);
-	}
-
-	public void release() {
-		// default is to do nothing
-	}
-
-	private static boolean isTagAvailable(Document document, String elementName) {
-		ModelQuery modelQuery = ModelQueryUtil.getModelQuery(document);
-		if (modelQuery != null) {
-			CMDocument cmdoc = modelQuery.getCorrespondingCMDocument(document);
-			CMNamedNodeMap map = cmdoc.getElements();
-			if ((CMElementDeclaration) map.getNamedItem(elementName) != null) {
-				return true;
-			}
-		}
-
-		return false;
-	}
-
-	private static boolean isAttributeAvailable(Element element, String attrName) {
-		ModelQuery modelQuery = ModelQueryUtil.getModelQuery(element.getOwnerDocument());
-		if (modelQuery != null) {
-			CMElementDeclaration decl = modelQuery.getCMElementDeclaration(element);
-			if (decl != null) {
-				CMNamedNodeMap map = decl.getAttributes();
-				if ((CMAttributeDeclaration) map.getNamedItem(attrName) != null) {
-					return true;
-				}
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 * Overriding Object's clone() method
-	 */
-	public INodeAdapterFactory copy() {
-		return getInstance();
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAttrAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAttrAdapter.java
deleted file mode 100644
index a4d8c73..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAttrAdapter.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.htmlcss;
-
-
-
-import org.eclipse.wst.css.core.internal.parser.CSSSourceParser;
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleDeclarationAdapter;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
-import org.eclipse.wst.sse.core.internal.ltk.parser.RegionParser;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.events.IStructuredDocumentListener;
-import org.eclipse.wst.sse.core.internal.provisional.events.NewDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.NoChangeEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionsReplacedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentRegionsReplacedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegionList;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.css.CSSStyleDeclaration;
-
-/**
- */
-public class StyleAttrAdapter extends AbstractCSSModelAdapter implements IStructuredDocumentListener, IStyleDeclarationAdapter {
-
-	private boolean ignoreNotification = false;
-	private final static String STYLE = "style";//$NON-NLS-1$
-
-	/**
-	 */
-	StyleAttrAdapter() {
-		super();
-	}
-
-	/**
-	 */
-	public ICSSModel getModel() {
-		ICSSModel model = getExistingModel();
-		if (model == null && isModelNecessary()) {
-			model = createModel();
-			if (model == null)
-				return null;
-			
-			IStructuredDocument structuredDocument = model.getStructuredDocument();
-			if (structuredDocument == null)
-				return null;
-
-			RegionParser parser = structuredDocument.getParser();
-			if (parser instanceof CSSSourceParser) {
-				((CSSSourceParser)parser).setParserMode(CSSSourceParser.MODE_DECLARATION);
-			} else {
-				return null;
-			}
-			
-			structuredDocument.addDocumentChangedListener(this);
-
-			setModel(model); // need to set before valueChanged()
-			valueChanged();
-		}
-		if (model != null && !isModelNecessary()) {
-			model = null;
-			valueChanged();
-		}
-		return model;
-	}
-
-	/**
-	 */
-	public CSSStyleDeclaration getStyle() {
-		ICSSModel model = getModel();
-		if (model == null)
-			return null;
-		return (CSSStyleDeclaration) model.getDocument();
-	}
-
-	/**
-	 * Allowing the INodeAdapter to compare itself against the type
-	 * allows it to return true in more than one case.
-	 */
-	public boolean isAdapterForType(Object type) {
-		return (type == IStyleDeclarationAdapter.class);
-	}
-
-	/**
-	 */
-	public void newModel(NewDocumentEvent event) {
-		if (event == null)
-			return;
-		if (event.getOriginalRequester() == this)
-			return;
-
-		setValue();
-	}
-
-	/**
-	 */
-	public void noChange(NoChangeEvent structuredDocumentEvent) {
-	}
-
-	/**
-	 */
-	public void nodesReplaced(StructuredDocumentRegionsReplacedEvent event) {
-		if (event == null)
-			return;
-		if (event.getOriginalRequester() == this)
-			return;
-
-		setValue();
-	}
-
-	/**
-	 */
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-		if (this.ignoreNotification)
-			return;
-
-		if (eventType != INodeNotifier.CHANGE)
-			return;
-		Attr attr = (Attr) changedFeature;
-		if (attr == null)
-			return;
-		String name = attr.getName();
-		if (name.equalsIgnoreCase(STYLE)) {
-			valueChanged();
-		}
-	}
-
-	/**
-	 */
-	public void regionChanged(RegionChangedEvent event) {
-		if (event == null)
-			return;
-		if (event.getOriginalRequester() == this)
-			return;
-
-		setValue();
-	}
-
-	/**
-	 */
-	public void regionsReplaced(RegionsReplacedEvent event) {
-		if (event == null)
-			return;
-		if (event.getOriginalRequester() == this)
-			return;
-
-		setValue();
-	}
-
-	/**
-	 */
-	private void setValue() {
-		Element element = getElement();
-		if (element == null)
-			return;
-		ICSSModel model = getExistingModel();
-		if (model == null)
-			return;
-		IStructuredDocument structuredDocument = model.getStructuredDocument();
-		if (structuredDocument == null)
-			return;
-
-		String value = null;
-		IStructuredDocumentRegionList flatNodes = structuredDocument.getRegionList();
-		if (flatNodes != null) {
-			int count = flatNodes.getLength();
-			if (count > 0) {
-				StringBuffer buffer = new StringBuffer();
-				for (int i = 0; i < count; i++) {
-					IStructuredDocumentRegion flatNode = flatNodes.item(i);
-					if (flatNode == null)
-						continue;
-					buffer.append(flatNode.getText());
-				}
-				value = buffer.toString();
-			}
-		}
-
-		this.ignoreNotification = true;
-		if (value == null || value.length() == 0) {
-			element.removeAttribute(STYLE);
-		}
-		else {
-			Attr attr = element.getAttributeNode(STYLE);
-			if (attr != null) {
-				((IDOMNode) attr).setValueSource(value);
-			}
-			else {
-				Document document = element.getOwnerDocument();
-				attr = document.createAttribute(STYLE);
-				((IDOMNode) attr).setValueSource(value);
-				element.setAttributeNode(attr);
-			}
-		}
-		this.ignoreNotification = false;
-
-		notifyStyleChanged(element);
-	}
-
-	/**
-	 */
-	private void valueChanged() {
-		Element element = getElement();
-		if (element == null)
-			return;
-		if (!isModelNecessary()) { // removed
-			setModel(null);
-
-			notifyStyleChanged(element);
-			return;
-		}
-
-		ICSSModel model = getExistingModel();
-		if (model == null)
-			return; // defer
-		IStructuredDocument structuredDocument = model.getStructuredDocument();
-		if (structuredDocument == null)
-			return; // error
-
-		String value = null;
-		Attr attr = element.getAttributeNode(org.eclipse.wst.html.core.internal.provisional.HTML40Namespace.ATTR_NAME_STYLE);
-		if (attr != null)
-			value = ((IDOMNode) attr).getValueSource();
-		structuredDocument.setText(this, value);
-
-		notifyStyleChanged(element);
-	}
-
-	/**
-	 * @return boolean
-	 */
-	private boolean isModelNecessary() {
-		return getElement() != null && getElement().getAttributeNode(org.eclipse.wst.html.core.internal.provisional.HTML40Namespace.ATTR_NAME_STYLE) != null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleElementAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleElementAdapter.java
deleted file mode 100644
index 3ef97b9..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleElementAdapter.java
+++ /dev/null
@@ -1,452 +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
- *     
- * 	    Masaki Saitoh (MSAITOH@jp.ibm.com)
- *		See Bug 153000  Style Adapters should be lazier
- *		https://bugs.eclipse.org/bugs/show_bug.cgi?id=153000
- *
- ********************************************************************************/
-package org.eclipse.wst.html.core.internal.htmlcss;
-
-
-
-import org.eclipse.wst.css.core.internal.provisional.adapters.IModelProvideAdapter;
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetListAdapter;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.events.IStructuredDocumentListener;
-import org.eclipse.wst.sse.core.internal.provisional.events.NewDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.NoChangeEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionsReplacedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentRegionsReplacedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegionList;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- */
-public class StyleElementAdapter extends AbstractStyleSheetAdapter implements IStructuredDocumentListener {
-
-	private boolean replaceModel = true;
-	private boolean ignoreNotification = false;
-
-	/**
-	 */
-	protected StyleElementAdapter() {
-		super();
-	}
-
-	/**
-	 * Preparation of applying changes from CSS sub-model to HTML model
-	 */
-	private void changeStructuredDocumentRegion(IStructuredDocumentRegion flatNode) {
-		if (flatNode == null)
-			return;
-		Element element = getElement();
-		if (element == null)
-			return;
-		ICSSModel model = getExistingModel();
-		if (model == null)
-			return;
-		IStructuredDocument structuredDocument = model.getStructuredDocument();
-		if (structuredDocument == null)
-			return;
-
-		// get old content length
-		Node child = element.getFirstChild();
-		if (child == null || child.getNodeType() != Node.TEXT_NODE)
-			return;
-		IDOMNode content = (IDOMNode) child;
-		int oldLength = content.getEndOffset() - content.getStartOffset();
-
-		// get new content length
-		int newLength = 0;
-		IStructuredDocumentRegionList flatNodes = structuredDocument.getRegionList();
-		if (flatNodes != null) {
-			int count = flatNodes.getLength();
-			if (count > 0) {
-				IStructuredDocumentRegion last = flatNodes.item(count - 1);
-				if (last != null)
-					newLength = last.getEnd();
-			}
-		}
-
-		int offset = flatNode.getStart();
-		int end = flatNode.getEnd();
-		int diff = oldLength - newLength;
-		int length = end - offset + diff;
-		String data = flatNode.getText();
-
-		replaceData(offset, length, data);
-	}
-
-	/**
-	 * Apply changes from HTML model to CSS sub-model
-	 */
-	private void contentChanged() {
-		Element element = getElement();
-		if (element == null)
-			return;
-		ICSSModel model = getExistingModel();
-		if (model == null)
-			return;
-		IStructuredDocument structuredDocument = model.getStructuredDocument();
-		if (structuredDocument == null)
-			return;
-
-		String data = null;
-		Node child = element.getFirstChild();
-		if (child != null && child.getNodeType() == Node.TEXT_NODE && child.getNextSibling() == null) {
-			data = child.getNodeValue();
-		}
-		if (data == null)
-			data = "";//$NON-NLS-1$
-
-		// minimize replace range
-		int start = 0, end = 0;
-		String oldData = structuredDocument.get();
-		if (oldData == null)
-			oldData = "";//$NON-NLS-1$
-
-		// search differenct character position from first
-		for (; start < oldData.length() && start < data.length(); start++)
-			if (oldData.charAt(start) != data.charAt(start))
-				break;
-
-		if (start == oldData.length() && start == data.length())
-			return; // no change
-		else if (start == oldData.length()) {
-			structuredDocument.replaceText(getRequesterH2C(), start, 0, data.substring(start)); // append text to last
-		}
-		else if (start == data.length()) {
-			structuredDocument.replaceText(getRequesterH2C(), start, oldData.length() - start, ""); // remove text of last //$NON-NLS-1$
-		}
-		else {
-			// search differenct character position from last
-			for (; start < oldData.length() - end && start < data.length() - end; end++) {
-				if (oldData.charAt(oldData.length() - end - 1) != data.charAt(data.length() - end - 1))
-					break;
-			}
-			structuredDocument.replaceText(getRequesterH2C(), start, oldData.length() - end - start, data.substring(start, data.length() - end));
-		}
-
-	}
-
-	/**
-	 */
-	public ICSSModel getModel() {
-		ICSSModel model = getExistingModel();
-		if (this.replaceModel) {
-			ICSSModel oldModel = model;
-			model = createModel(false);
-
-			setModel(model, false); // need to set before contentChanged()
-			contentChanged();
-
-			// from super.createModel()
-			// get ModelProvideAdapter
-			IModelProvideAdapter modelProvideAdapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(IModelProvideAdapter.class);
-			// notify adapter
-			if (modelProvideAdapter != null)
-				modelProvideAdapter.modelProvided(model);
-
-			// from createModel()
-			IStructuredDocument structuredDocument = model.getStructuredDocument();
-			if (structuredDocument == null)
-				return null;
-			structuredDocument.addDocumentChangedListener(this);
-
-			// from setModel()
-			if (oldModel != null)
-				oldModel.removeStyleListener(this);
-			if (model != null)
-				model.addStyleListener(this);
-
-			if (oldModel != null) {
-				// get ModelProvideAdapter
-				IModelProvideAdapter adapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(IModelProvideAdapter.class);
-				if (adapter != null) {
-					adapter.modelRemoved(oldModel);
-				}
-			}
-
-			this.replaceModel = false;
-		}
-		return model;
-	}
-
-	/**
-	 */
-	protected boolean isValidAttribute() {
-		Element element = getElement();
-		if (element == null) {
-			return false;
-		}
-		String type = element.getAttribute(HTML40Namespace.ATTR_NAME_TYPE);
-		if (type != null && type.length() > 0 && !type.equalsIgnoreCase("text/css")) { //$NON-NLS-1$
-			return false;
-		}
-		return true;
-	}
-
-	/**
-	 */
-	protected ICSSModel createModel() {
-		return createModel(true);
-	}
-
-	/**
-	 */
-	protected ICSSModel createModel(boolean addListener) {
-		if (!isValidAttribute()) {
-			return null;
-		}
-
-		if (!addListener)
-			return super.createModel(false);
-
-		ICSSModel model = super.createModel();
-		IStructuredDocument structuredDocument = model.getStructuredDocument();
-		if (structuredDocument == null)
-			return null;
-		structuredDocument.addDocumentChangedListener(this);
-
-		return model;
-	}
-
-	/**
-	 */
-	//  public ICSSModel getModel() {
-	//  	ICSSModel model = getExistingModel();
-	//  	if (model == null) {
-	//  		model = createModel();
-	//  		if (model == null) return null;
-	//  		IStructuredDocument structuredDocument = model.getStructuredDocument();
-	//  		if (structuredDocument == null) return null;
-	//  		structuredDocument.addModelChangedListener(this);
-	//  		setModel(model); // need to set before contentChanged()
-	//  		contentChanged();
-	//  	}
-	//  	return model;
-	//  }
-	/**
-	 */
-	private Object getRequesterH2C() {
-		return (getElement() != null && ((IDOMNode) getElement()).getModel() != null) ? (Object) ((IDOMNode) getElement()).getModel() : this;
-	}
-
-	/**
-	 */
-	private Object getRequesterC2H() {
-		return (getModel() != null) ? (Object) getModel() : this;
-	}
-
-	/**
-	 * Implementing IStructuredDocumentListener's method
-	 * Event from CSS Flat Model
-	 */
-	public void newModel(NewDocumentEvent event) {
-		if (event == null)
-			return;
-		if (event.getOriginalRequester() == getRequesterH2C())
-			return;
-		IStructuredDocument structuredDocument = event.getStructuredDocument();
-		if (structuredDocument == null)
-			return;
-		IStructuredDocumentRegionList flatNodes = structuredDocument.getRegionList();
-		if (flatNodes == null)
-			return;
-
-		replaceStructuredDocumentRegions(flatNodes, null);
-	}
-
-	/**
-	 * Implementing IStructuredDocumentListener's method
-	 * Event from CSS Flat Model
-	 */
-	public void noChange(NoChangeEvent structuredDocumentEvent) {
-	}
-
-	/**
-	 * Implementing IStructuredDocumentListener's method
-	 * Event from CSS Flat Model
-	 */
-	public void nodesReplaced(StructuredDocumentRegionsReplacedEvent event) {
-		if (event == null)
-			return;
-		if (event.getOriginalRequester() == getRequesterH2C())
-			return;
-		IStructuredDocumentRegionList oldStructuredDocumentRegions = event.getOldStructuredDocumentRegions();
-		IStructuredDocumentRegionList newStructuredDocumentRegions = event.getNewStructuredDocumentRegions();
-		if (oldStructuredDocumentRegions == null && newStructuredDocumentRegions == null)
-			return;
-
-		replaceStructuredDocumentRegions(newStructuredDocumentRegions, oldStructuredDocumentRegions);
-	}
-
-	/**
-	 * Overriding INodeAdapter's method
-	 * Event from <STYLE> element
-	 */
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-		if (this.ignoreNotification)
-			return;
-
-		if (eventType == INodeNotifier.ADD || eventType == INodeNotifier.REMOVE || eventType == INodeNotifier.CONTENT_CHANGED) {
-			contentChanged();
-		}
-		else if (eventType == INodeNotifier.CHANGE) {
-			Attr attr = (Attr) changedFeature;
-			if (attr == null)
-				return;
-			String name = attr.getName();
-			if (name.equalsIgnoreCase("type")) { //$NON-NLS-1$
-				this.replaceModel = true;
-
-				Element element = getElement();
-				if (element == null) {
-					return;
-				}
-				Document document = element.getOwnerDocument();
-				if (document == null) {
-					return;
-				}
-				HTMLDocumentAdapter adapter = (HTMLDocumentAdapter) ((INodeNotifier) document).getAdapterFor(IStyleSheetListAdapter.class);
-				if (adapter != null) {
-					adapter.childReplaced();
-				}
-			}
-		}
-	}
-
-	/**
-	 * Implementing IStructuredDocumentListener's method
-	 * Event from CSS Flat Model
-	 */
-	public void regionChanged(RegionChangedEvent event) {
-		if (event == null)
-			return;
-		if (event.getOriginalRequester() == getRequesterH2C())
-			return;
-		IStructuredDocumentRegion flatNode = event.getStructuredDocumentRegion();
-		if (flatNode == null)
-			return;
-
-		changeStructuredDocumentRegion(flatNode);
-	}
-
-	/**
-	 * Implementing IStructuredDocumentListener's method
-	 * Event from CSS Flat Model
-	 */
-	public void regionsReplaced(RegionsReplacedEvent event) {
-		if (event == null)
-			return;
-		if (event.getOriginalRequester() == getRequesterH2C())
-			return;
-		IStructuredDocumentRegion flatNode = event.getStructuredDocumentRegion();
-		if (flatNode == null)
-			return;
-
-		changeStructuredDocumentRegion(flatNode);
-	}
-
-	/**
-	 * Apply changes from CSS sub-model to HTML model
-	 */
-	private void replaceData(int offset, int length, String data) {
-		IDOMNode element = (IDOMNode) getElement();
-		if (element == null)
-			return;
-		IDOMModel ownerModel = element.getModel();
-		if (ownerModel == null)
-			return;
-		IStructuredDocument structuredDocument = ownerModel.getStructuredDocument();
-		if (structuredDocument == null)
-			return;
-		IStructuredDocumentRegion flatNode = element.getStartStructuredDocumentRegion();
-		if (flatNode == null)
-			return;
-
-		int contentOffset = flatNode.getEndOffset();
-		if (data == null)
-			data = "";//$NON-NLS-1$
-
-		this.ignoreNotification = true;
-		structuredDocument.replaceText(getRequesterC2H(), contentOffset + offset, length, data);
-		this.ignoreNotification = false;
-	}
-
-	/**
-	 * Preparation of applying changes from CSS sub-model to HTML model
-	 */
-	private void replaceStructuredDocumentRegions(IStructuredDocumentRegionList newStructuredDocumentRegions, IStructuredDocumentRegionList oldStructuredDocumentRegions) {
-		int offset = 0;
-		int length = 0;
-		if (oldStructuredDocumentRegions != null) {
-			int count = oldStructuredDocumentRegions.getLength();
-			if (count > 0) {
-				IStructuredDocumentRegion first = oldStructuredDocumentRegions.item(0);
-				if (first != null)
-					offset = first.getStart();
-				IStructuredDocumentRegion last = oldStructuredDocumentRegions.item(count - 1);
-				if (last != null)
-					length = last.getEnd() - offset;
-			}
-		}
-		String data = null;
-		if (newStructuredDocumentRegions != null) {
-			int count = newStructuredDocumentRegions.getLength();
-			if (count > 0) {
-				StringBuffer buffer = new StringBuffer();
-				for (int i = 0; i < count; i++) {
-					IStructuredDocumentRegion flatNode = newStructuredDocumentRegions.item(i);
-					if (flatNode == null)
-						continue;
-					buffer.append(flatNode.getText());
-					if (i == 0)
-						offset = flatNode.getStart();
-				}
-				data = buffer.toString();
-			}
-		}
-
-		replaceData(offset, length, data);
-	}
-
-	/**
-	 */
-	protected void setModel(ICSSModel model) {
-		setModel(model, true);
-	}
-
-	/**
-	 */
-	protected void setModel(ICSSModel model, boolean setupListener) {
-		ICSSModel oldModel = getExistingModel();
-		if (model == oldModel)
-			return;
-		super.setModel(model);
-		if (!setupListener)
-			return;
-		if (oldModel != null)
-			oldModel.removeStyleListener(this);
-		if (model != null)
-			model.addStyleListener(this);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleListener.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleListener.java
deleted file mode 100644
index 5dc6d51..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleListener.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.wst.html.core.internal.htmlcss;
-
-
-
-/**
- */
-public interface StyleListener {
-
-	/**
-	 */
-	void styleChanged();
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLHelper.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLHelper.java
deleted file mode 100644
index 68559e3..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLHelper.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.wst.html.core.internal.htmlcss;
-
-/**
- * @deprecated 
- */
-public class URLHelper extends org.eclipse.wst.css.core.internal.util.URLHelper {
-
-	/**
-	 * @param baseUrl
-	 */
-	public URLHelper(String baseUrl) {
-		super(baseUrl);
-	}
-
-	/**
-	 * @param baseUrl
-	 * @param docRoot
-	 */
-	public URLHelper(String baseUrl, String docRoot) {
-		super(baseUrl, docRoot);
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLModelProvider.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLModelProvider.java
deleted file mode 100644
index 821b118..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLModelProvider.java
+++ /dev/null
@@ -1,451 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.htmlcss;
-
-
-
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.nio.charset.UnsupportedCharsetException;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeConstants;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.encoding.EncodingRule;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.exceptions.ResourceAlreadyExists;
-import org.eclipse.wst.sse.core.internal.provisional.exceptions.ResourceInUse;
-import org.eclipse.wst.sse.core.internal.util.PathHelper;
-import org.eclipse.wst.sse.core.internal.util.ProjectResolver;
-import org.eclipse.wst.sse.core.internal.util.URIResolver;
-import org.eclipse.wst.xml.core.internal.document.DocumentTypeAdapter;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-// TODO when this class is removed from .core, PathHelper and URLHelper class
-// also can be removed.
-
-/**
- */
-public class URLModelProvider {
-
-	private static final int GET_MODEL_FOR_READ = 1;
-	//	private static final int GET_NEW_MODEL_FOR_READ = 2;
-	private static final int GET_MODEL_FOR_EDIT = 3;
-	//	private static final int GET_NEW_MODEL_FOR_EDIT = 4;
-	//	private static final int READ_BUFFER_SIZE = 4096;
-	// IModelManager
-	private IModelManager modelManager = null;
-
-	/**
-	 */
-	public URLModelProvider() {
-		super();
-
-		// obtain model manager
-		modelManager = StructuredModelManager.getModelManager();
-	}
-
-	/**
-	 * Calculate ID from a filename. This must be same as
-	 * FileModelProvider.calculateId(IFile)
-	 */
-	private static String calculateId(IPath fullIPath) {
-		return fullIPath.toString();
-	}
-
-	/**
-	 * <code>baseModel</code>: the model containing the link
-	 * <code>ref</code>: the link URL string
-	 */
-	private IStructuredModel getCommonModelFor(final IStructuredModel baseModel, final String ref, final int which) throws IOException {
-		// first, create absolute url
-		String absURL = resolveURI(baseModel, ref, true);
-		if ((absURL == null) || (absURL.length() == 0)) {
-			return null;
-		}
-
-		// need to remove file:// scheme if necessary
-		try {
-			final java.net.URL aURL = new java.net.URL(absURL);
-			// An actual URL was given, only file:/// is supported
-			// resolve it by finding the file it points to
-			if (!aURL.getProtocol().equals("platform")) { //$NON-NLS-1$
-				if (aURL.getProtocol().equals("file") && (aURL.getHost().equals("localhost") || aURL.getHost().length() == 0)) {//$NON-NLS-2$//$NON-NLS-1$
-					absURL = aURL.getFile();
-					final IPath ipath = new Path(absURL);
-					//  if path has a device, and if it begins with
-					// IPath.SEPARATOR, remove it
-					final String device = ipath.getDevice();
-					if ((device != null) && (device.length() > 0)) {
-						if (device.charAt(0) == IPath.SEPARATOR) {
-							final String newDevice = device.substring(1);
-							absURL = ipath.setDevice(newDevice).toString();
-						}
-					}
-
-				}
-			}
-		}
-		catch (java.net.MalformedURLException mfuExc) {
-		}
-
-
-		// next, decide project
-		IProject project = null;
-		final IPath fullIPath = new Path(absURL);
-		IWorkspaceRoot workspace = ResourcesPlugin.getWorkspace().getRoot();
-		IContainer container = workspace.getContainerForLocation(fullIPath);
-		if (container != null) {
-			// fullIPath doesn't exist in workspace
-			project = container.getProject();
-		}
-
-		// If HTML document has a link to an extern CSS which is not in
-		// IProject
-		// workspace.getContainerForLoation() may return null. We need to take
-		// care
-		// of this case
-
-		// now, get absURL's IFile
-		if ((project != null) && (project.getLocation().isPrefixOf(fullIPath) == false)) {
-			// it's at outside of Project
-			return null;
-		}
-
-		IStructuredModel model = null;
-		if (project != null) {
-			IPath filePath = fullIPath.removeFirstSegments(project.getLocation().segmentCount());
-			IFile file = (filePath != null && !filePath.isEmpty()) ? project.getFile(filePath) : null;
-			if (file == null) {
-				return null;
-			}
-
-			// obtain model
-			if (which == GET_MODEL_FOR_EDIT) {
-				model = getModelForEdit(file);
-			}
-			else if (which == GET_MODEL_FOR_READ) {
-				model = getModelForRead(file);
-			}
-
-			// setting synchronization stamp is IModelManager's client's
-			// responsibility
-			if (model != null && model.getSynchronizationStamp() == IResource.NULL_STAMP)
-				model.resetSynchronizationStamp(file);
-		}
-		else {
-			String id = null;
-			InputStream inStream = null;
-			// obtain resolver
-			URIResolver resolver = (project != null) ? (URIResolver) project.getAdapter(URIResolver.class) : null;
-			if (resolver == null) {
-				// ProjectResolver can take care of the case if project is
-				// null.
-				resolver = new ProjectResolver(project);
-			}
-			if (resolver == null) {
-				return null;
-			}
-
-			// there is no project. we can't expect IProject help to create
-			// id/inputStream
-			java.io.File file = fullIPath.toFile();
-
-			// obatin id
-			id = calculateId(fullIPath);
-
-			// obtain InputStream
-			try {
-				inStream = new FileInputStream(file);
-			}
-			catch (FileNotFoundException fnfe) {
-				// the file does not exist, or we don't have read permission
-				return null;
-			}
-
-			// obtain model
-			try {
-				if (which == GET_MODEL_FOR_EDIT) {
-					model = getModelManager().getModelForEdit(id, inStream, resolver);
-				}
-				else if (which == GET_MODEL_FOR_READ) {
-					model = getModelManager().getModelForRead(id, inStream, resolver);
-				}
-			}
-			catch (UnsupportedEncodingException ue) {
-			}
-			catch (IOException ioe) {
-			}
-			finally {
-				// close now !
-				if (inStream != null) {
-					inStream.close();
-				}
-			}
-		}
-
-
-		// set locationid
-		if (model != null && model.getBaseLocation() == null) {
-			model.setBaseLocation(fullIPath.toString());
-		}
-
-		return model;
-	}
-
-	/**
-	 * <code>baseModel</code>: the model containing the link
-	 * <code>ref</code>: the link URL string
-	 */
-	public IStructuredModel getModelForEdit(IStructuredModel baseModel, String ref) throws IOException {
-		return getCommonModelFor(baseModel, ref, GET_MODEL_FOR_EDIT);
-	}
-
-	/**
-	 */
-	private IStructuredModel getModelForEdit(IFile file) throws IOException {
-		if (file == null)
-			return null;
-		IModelManager manager = getModelManager();
-
-		// create a fake InputStream
-		IStructuredModel model = null;
-		try {
-			model = manager.getModelForEdit(file);
-		}
-		catch (UnsupportedCharsetException ex) {
-			try {
-				model = manager.getModelForEdit(file, EncodingRule.FORCE_DEFAULT);
-			}
-			catch (IOException ioe) {
-			}
-			catch (CoreException ce) {
-			}
-		}
-		catch (CoreException ce) {
-		}
-		return model;
-	}
-
-	/**
-	 * <code>baseModel</code>: the model containing the link
-	 * <code>ref</code>: the link URL string
-	 */
-	public IStructuredModel getModelForRead(IStructuredModel baseModel, String ref) throws UnsupportedEncodingException, IOException {
-		return getCommonModelFor(baseModel, ref, GET_MODEL_FOR_READ);
-	}
-
-	/**
-	 */
-	private IStructuredModel getModelForRead(IFile file) throws IOException {
-		if (file == null)
-			return null;
-		IModelManager manager = getModelManager();
-
-		// create a fake InputStream
-		IStructuredModel model = null;
-		try {
-			model = manager.getModelForRead(file);
-		}
-		catch (UnsupportedCharsetException ex) {
-			try {
-				model = manager.getModelForRead(file, EncodingRule.FORCE_DEFAULT);
-			}
-			catch (IOException ioe) {
-			}
-			catch (CoreException ce) {
-			}
-		}
-		catch (CoreException ce) {
-		}
-		return model;
-	}
-
-	/**
-	 */
-	private IModelManager getModelManager() {
-		return modelManager;
-	}
-
-	public IStructuredModel getNewModelForEdit(IFile iFile) {
-		if (iFile == null)
-			return null;
-		IModelManager manager = getModelManager();
-		if (manager == null)
-			return null;
-
-		IStructuredModel model = null;
-		try {
-			model = manager.getNewModelForEdit(iFile, false);
-		}
-		catch (IOException ex) {
-		}
-		catch (ResourceInUse riu) {
-		}
-		catch (ResourceAlreadyExists rae) {
-		}
-		catch (CoreException ce) {
-		}
-		return model;
-	}
-
-	public IStructuredModel getNewModelForRead(IFile iFile) {
-		if (iFile == null)
-			return null;
-		IModelManager manager = getModelManager();
-		if (manager == null)
-			return null;
-
-		IStructuredModel model = null;
-		try {
-			model = manager.getNewModelForEdit(iFile, false);
-		}
-		catch (IOException ex) {
-		}
-		catch (ResourceInUse riu) {
-		}
-		catch (ResourceAlreadyExists rae) {
-		}
-		catch (CoreException ce) {
-		}
-		return model;
-	}
-
-	/**
-	 * Utility to check the model is HTML family or not
-	 */
-	static private boolean isHTMLFamily(IStructuredModel model) {
-		if (model instanceof IDOMModel) {
-			IDOMDocument document = ((IDOMModel) model).getDocument();
-			DocumentTypeAdapter adapter = (DocumentTypeAdapter) document.getAdapterFor(DocumentTypeAdapter.class);
-			if (adapter != null)
-				return adapter.hasFeature(HTMLDocumentTypeConstants.HTML);
-		}
-		return false;
-	}
-
-	/**
-	 * <code>baseModel</code>: the model containing the link
-	 * <code>ref</code>: the link URL string
-	 * <code>resolveCrossProjectLinks</code>: If resolveCrossProjectLinks
-	 * is set to true, then this method will properly resolve the URI if it is
-	 * a valid URI pointing to another (appropriate) project.
-	 */
-	public static String resolveURI(IStructuredModel baseModel, String ref, boolean resolveCrossProjectLinks) {
-		if (baseModel == null)
-			return null;
-		// for HTML, 'href' attribute value of BASE element
-		// should be used, if exists any
-		String baseHref = null;
-		// dmw_TODO needs to be changed to handle a content model
-		// of HTML or XHTML
-		if (isHTMLFamily(baseModel)) {
-			final IDOMModel xmlmodel = (IDOMModel) baseModel;
-			final IDOMDocument doc = xmlmodel.getDocument();
-			// look for <BASE> w/ href
-			final NodeList nl = doc.getElementsByTagName("BASE");//$NON-NLS-1$
-			if ((nl != null) && (nl.getLength() > 0)) {
-				// per each <BASE>
-				for (int i = 0; i < nl.getLength(); i++) {
-					final Node baseNode = nl.item(i);
-					if (baseNode != null) {
-						// get all attrs
-						final NamedNodeMap attrNodes = baseNode.getAttributes();
-						if (attrNodes != null) {
-							final Node attrNode = attrNodes.getNamedItem("HREF");//$NON-NLS-1$
-							if (attrNode != null) {
-								// found href=""
-								final String attrValue = attrNode.getNodeValue();
-								if (attrValue != null) {
-									baseHref = attrValue.trim();
-								}
-							}
-						}
-					}
-					// what if there are multiple <BASE> tags ??
-					if (baseHref != null) {
-						break;
-					}
-				}
-			}
-		}
-
-		// get resolver in Model
-		final URIResolver resolver = baseModel.getResolver();
-
-		// resolve to absolute url
-		final String absurl = (resolver != null) ? ((baseHref != null) ? resolver.getLocationByURI(ref, baseHref, resolveCrossProjectLinks) : resolver.getLocationByURI(ref, resolveCrossProjectLinks)) : null;
-		if ((resolver != null) && (absurl == null) && (ref != null) && (ref.trim().length() > 0) && (ref.trim().charAt(0) == '/')) {
-			// to reach here means :
-			//    ref is a Docroot relative
-			//    resolver can't resolve ref
-			// so that href is a broken and should not create model
-			return null;
-		}
-		if ((absurl != null) && (absurl.length() > 0)) {
-			return absurl;
-		}
-
-		// maybe ref is at outside of the Project
-		// obtain docroot;
-		final IContainer container = (resolver != null) ? resolver.getRootLocation() : null;
-		String docroot = null;
-		if (container != null) {
-			IPath containerLocation = container.getLocation();
-			if (containerLocation != null) {
-				docroot = containerLocation.toString();
-			}
-			else if (container.getLocationURI() != null) {
-				docroot = container.getLocationURI().toString();
-			}
-		}
-		if (docroot == null) {
-			docroot = baseModel.getBaseLocation();
-		}
-		if (docroot == null) {
-			// should not be
-			return null;
-		}
-
-		// obtain document url
-		String modelBaseLocation = baseModel.getBaseLocation();
-		if ((modelBaseLocation == null) || (modelBaseLocation.length() == 0)) {
-			// fallback...
-			modelBaseLocation = baseModel.getId();
-		}
-		if ((modelBaseLocation == null) || (modelBaseLocation.length() == 0)) {
-			// i can't resolve uri !
-			return null;
-		}
-
-		// resolve url
-		URLHelper helper = new URLHelper(PathHelper.getContainingFolderPath(modelBaseLocation), PathHelper.getContainingFolderPath(PathHelper.appendTrailingURLSlash(docroot)));
-		return helper.toAbsolute(ref);
-	}
-
-}
-
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/EmbeddedHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/EmbeddedHTML.java
deleted file mode 100644
index 50cdd0f..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/EmbeddedHTML.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.modelhandler;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSelectorAdapter;
-import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter;
-import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeAdapterFactory;
-import org.eclipse.wst.html.core.internal.document.HTMLModelParserAdapterFactory;
-import org.eclipse.wst.html.core.internal.htmlcss.HTMLStyleSelectorAdapterFactory;
-import org.eclipse.wst.html.core.internal.htmlcss.StyleAdapterFactory;
-import org.eclipse.wst.html.core.internal.modelquery.ModelQueryAdapterFactoryForEmbeddedHTML;
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.EmbeddedTypeHandler;
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker;
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockTagParser;
-import org.eclipse.wst.sse.core.internal.ltk.parser.JSPCapableParser;
-import org.eclipse.wst.sse.core.internal.model.FactoryRegistry;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.core.internal.util.Assert;
-import org.eclipse.wst.xml.core.internal.document.DocumentTypeAdapter;
-import org.eclipse.wst.xml.core.internal.document.ModelParserAdapter;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-public class EmbeddedHTML implements EmbeddedTypeHandler {
-
-	public String ContentTypeID_EmbeddedHTML = "org.eclipse.wst.html.core.internal.contenttype.EmbeddedHTML"; //$NON-NLS-1$
-	private List supportedMimeTypes;
-
-	/**
-	 * Constructor for EmbeddedHTML.
-	 */
-	public EmbeddedHTML() {
-		super();
-	}
-
-	/**
-	 * Convenience method to add tag names using BlockMarker object
-	 */
-	private void addHTMLishTag(BlockTagParser parser, String tagname) {
-		BlockMarker bm = new BlockMarker(tagname, null, DOMRegionContext.BLOCK_TEXT, false);
-		parser.addBlockMarker(bm);
-	}
-
-	/**
-	 * @see EmbeddedContentType#getFamilyId()
-	 */
-	public String getFamilyId() {
-		return ModelHandlerForHTML.AssociatedContentTypeID;
-	}
-
-	/*
-	 * Only "model side" embedded factories can be added here.
-	 */
-	public List getAdapterFactories() {
-		List factories = new ArrayList();
-		factories.add(new ModelQueryAdapterFactoryForEmbeddedHTML());
-		// factories.addAll(PluginContributedFactoryReader.getInstance().getFactories(this));
-		return factories;
-	}
-
-	/*
-	 * @see EmbeddedContentType#initializeParser(RegionParser)
-	 */
-	public void initializeParser(JSPCapableParser parser) {
-		addHTMLishTag(parser, "script"); //$NON-NLS-1$
-		addHTMLishTag(parser, "style"); //$NON-NLS-1$
-	}
-
-	public List getSupportedMimeTypes() {
-		if (supportedMimeTypes == null) {
-			supportedMimeTypes = new ArrayList();
-			supportedMimeTypes.add("text/html"); //$NON-NLS-1$
-			supportedMimeTypes.add("text/xhtml"); //$NON-NLS-1$
-			supportedMimeTypes.add("application/xhtml+xml"); //$NON-NLS-1$
-			supportedMimeTypes.add("text/vnd.wap.wml"); //$NON-NLS-1$
-		}
-		return supportedMimeTypes;
-	}
-
-	public void initializeFactoryRegistry(FactoryRegistry registry) {
-		Assert.isNotNull(registry);
-
-		INodeAdapterFactory factory = null;
-		if (!registry.contains(DocumentTypeAdapter.class)) {
-			factory = new HTMLDocumentTypeAdapterFactory();
-			registry.addFactory(factory);
-		}
-		if (!registry.contains(ModelParserAdapter.class)) {
-			factory = HTMLModelParserAdapterFactory.getInstance();
-			registry.addFactory(factory);
-		}
-		if (!registry.contains(IStyleSelectorAdapter.class)) {
-
-			factory = HTMLStyleSelectorAdapterFactory.getInstance();
-			registry.addFactory(factory);
-		}
-		if (!registry.contains(IStyleSheetAdapter.class)) {
-
-			factory = StyleAdapterFactory.getInstance();
-			registry.addFactory(factory);
-		}
-
-	}
-
-	public void uninitializeFactoryRegistry(FactoryRegistry registry) {
-		Assert.isNotNull(registry);
-
-		// ISSUE: should these factories be released? Or just 
-		// removed from this registry, because we are getting ready to
-		// re-add them?
-		INodeAdapterFactory factory = null;
-		if (!registry.contains(DocumentTypeAdapter.class)) {
-			factory = registry.getFactoryFor(DocumentTypeAdapter.class);
-			factory.release();
-			registry.removeFactory(factory);
-		}
-		if (!registry.contains(ModelParserAdapter.class)) {
-			factory = registry.getFactoryFor(ModelParserAdapter.class);
-			factory.release();
-			registry.removeFactory(factory);
-		}
-		if (!registry.contains(IStyleSelectorAdapter.class)) {
-			factory = registry.getFactoryFor(IStyleSelectorAdapter.class);
-			factory.release();
-			registry.removeFactory(factory);
-		}
-		if (!registry.contains(IStyleSheetAdapter.class)) {
-			factory = registry.getFactoryFor(IStyleSheetAdapter.class);
-			factory.release();
-			registry.removeFactory(factory);
-		}
-
-	}
-
-	public void uninitializeParser(JSPCapableParser parser) {
-		// I'm assuming block markers are unique based on name only
-		// we add these as full BlockMarkers, but remove based on name alone.
-		parser.removeBlockMarker("script"); //$NON-NLS-1$
-		parser.removeBlockMarker("script"); //$NON-NLS-1$
-	}
-
-	public EmbeddedTypeHandler newInstance() {
-		return new EmbeddedHTML();
-	}
-
-	/**
-	 * will someday be controlled via extension point
-	 */
-	public boolean isDefault() {
-		return true;
-	}
-
-	public boolean canHandleMimeType(String mimeType) {
-		return getSupportedMimeTypes().contains(mimeType);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/ModelHandlerForHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/ModelHandlerForHTML.java
deleted file mode 100644
index 9f9badb..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/ModelHandlerForHTML.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.modelhandler;
-
-import org.eclipse.wst.html.core.internal.encoding.HTMLDocumentCharsetDetector;
-import org.eclipse.wst.html.core.internal.encoding.HTMLDocumentLoader;
-import org.eclipse.wst.html.core.internal.encoding.HTMLModelLoader;
-import org.eclipse.wst.sse.core.internal.document.IDocumentCharsetDetector;
-import org.eclipse.wst.sse.core.internal.document.IDocumentLoader;
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.AbstractModelHandler;
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.IModelHandler;
-import org.eclipse.wst.sse.core.internal.provisional.IModelLoader;
-
-public class ModelHandlerForHTML extends AbstractModelHandler implements IModelHandler {
-	/** 
-	 * Needs to match what's in plugin registry. 
-	 * In fact, can be overwritten at run time with 
-	 * what's in registry! (so should never be 'final')
-	 */
-	static String AssociatedContentTypeID = "org.eclipse.wst.html.core.htmlsource"; //$NON-NLS-1$
-	/**
-	 * Needs to match what's in plugin registry. 
-	 * In fact, can be overwritten at run time with 
-	 * what's in registry! (so should never be 'final')
-	 */
-	private static String ModelHandlerID_HTML = "org.eclipse.wst.html.core.modelhandler"; //$NON-NLS-1$
-
-
-	public ModelHandlerForHTML() {
-		super();
-		setId(ModelHandlerID_HTML);
-		setAssociatedContentTypeId(AssociatedContentTypeID);
-	}
-
-	public IModelLoader getModelLoader() {
-		return new HTMLModelLoader();
-	}
-
-	public IDocumentCharsetDetector getEncodingDetector() {
-		return new HTMLDocumentCharsetDetector();
-	}
-
-	public IDocumentLoader getDocumentLoader() {
-		return new HTMLDocumentLoader();
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMAttributeDeclarationBuddySystem.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMAttributeDeclarationBuddySystem.java
deleted file mode 100644
index 34b600c..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMAttributeDeclarationBuddySystem.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.modelquery;
-
-import java.util.Enumeration;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-
-/**
- */
-class CMAttributeDeclarationBuddySystem extends CMNodeBuddySystem implements CMAttributeDeclaration {
-
-
-	public CMAttributeDeclarationBuddySystem(CMAttributeDeclaration self, CMAttributeDeclaration buddy, boolean isXHTML) {
-		super(self, buddy, isXHTML);
-	}
-
-	/*
-	 * @see CMAttributeDeclaration#getAttrName()
-	 */
-	public String getAttrName() {
-		return getSelf().getAttrName();
-	}
-
-	/*
-	 * @see CMAttributeDeclaration#getAttrType()
-	 */
-	public CMDataType getAttrType() {
-		return getSelf().getAttrType();
-	}
-
-	/*
-	 * @see CMAttributeDeclaration#getDefaultValue()
-	 * @deprecated in superclass
-	 */
-	public String getDefaultValue() {
-		return getSelf().getDefaultValue();
-	}
-
-	/*
-	 * @see CMAttributeDeclaration#getEnumAttr()
-	 * @deprecated in superclass
-	 */
-	public Enumeration getEnumAttr() {
-		return getSelf().getEnumAttr();
-	}
-
-	/*
-	 * @see CMAttributeDeclaration#getUsage()
-	 */
-	public int getUsage() {
-		return getSelf().getUsage();
-	}
-
-	private CMAttributeDeclaration getSelf() {
-		return (CMAttributeDeclaration) self;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMDocumentForBuddySystem.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMDocumentForBuddySystem.java
deleted file mode 100644
index a710eab..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMDocumentForBuddySystem.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.modelquery;
-
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDocumentFactory;
-import org.eclipse.wst.html.core.internal.contentmodel.ssi.SSICMDocumentFactory;
-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.CMDocType;
-
-/**
- */
-class CMDocumentForBuddySystem extends CMNodeBuddySystem implements CMDocument {
-
-
-	private static CMDocument getHTMLCMDocument() {
-		return HTMLCMDocumentFactory.getCMDocument(CMDocType.HTML_DOC_TYPE);
-	}
-
-	class Elements extends CMNamedNodeMapForBuddySystem {
-		public Elements(CMNamedNodeMap elements, boolean isXHTML) {
-			super(isXHTML);
-			makeBuddySystem(elements);
-			addSSIDecls();
-		}
-
-		protected String getKeyName(CMNode original) {
-			CMElementDeclaration edecl = getDecl(original);
-			if (edecl == null)
-				return null;
-			return edecl.getElementName();
-		}
-
-		protected CMNode createBuddySystem(CMNode original) {
-			CMElementDeclaration edecl = getDecl(original);
-			return new CMElementDeclarationBuddySystem(edecl, isXHTML());
-		}
-
-		private CMElementDeclaration getDecl(CMNode cmnode) {
-			if (cmnode == null)
-				return null;
-			if (cmnode.getNodeType() != CMNode.ELEMENT_DECLARATION)
-				return null;
-			return (CMElementDeclaration) cmnode;
-		}
-
-		private void addSSIDecls() {
-			CMDocument ssi = SSICMDocumentFactory.getCMDocument();
-			if (ssi == null)
-				return;
-			CMNamedNodeMap elements = ssi.getElements();
-			Iterator i = elements.iterator();
-			while (i.hasNext()) {
-				CMElementDeclaration decl = (CMElementDeclaration) i.next();
-				if (decl == null)
-					continue;
-				put(decl.getElementName(), decl);
-			}
-		}
-	}
-
-	private Elements elements = null;
-
-	public CMDocumentForBuddySystem(CMDocument self, boolean isXHTML) {
-		super(self, getHTMLCMDocument(), isXHTML);
-	}
-
-	/*
-	 * @see CMDocument#getElements()
-	 */
-	public CMNamedNodeMap getElements() {
-		if (elements != null)
-			return elements;
-		CMDocument cmdoc = getSelf();
-		if (cmdoc == null)
-			return null;
-		elements = new Elements(cmdoc.getElements(), isXHTML);
-		return elements;
-	}
-
-	/*
-	 * @see CMDocument#getEntities()
-	 */
-	public CMNamedNodeMap getEntities() {
-		CMDocument cmdoc = getSelf();
-		if (cmdoc == null)
-			return null;
-		return cmdoc.getEntities();
-	}
-
-	/*
-	 * @see CMDocument#getNamespace()
-	 */
-	public CMNamespace getNamespace() {
-		CMDocument cmdoc = getSelf();
-		if (cmdoc == null)
-			return null;
-		return cmdoc.getNamespace();
-	}
-
-	private CMDocument getSelf() {
-		if (self.getNodeType() != CMNode.DOCUMENT)
-			return null;
-		return (CMDocument) self;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMElementDeclarationBuddySystem.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMElementDeclarationBuddySystem.java
deleted file mode 100644
index c934dbb..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMElementDeclarationBuddySystem.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.modelquery;
-
-
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDocumentFactory;
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocType;
-
-/**
- */
-class CMElementDeclarationBuddySystem extends CMNodeBuddySystem implements CMElementDeclaration {
-
-
-	private static CMDocument htmlcm = HTMLCMDocumentFactory.getCMDocument(CMDocType.HTML_DOC_TYPE);
-
-	private static CMElementDeclaration getHTMLCMElemDecl(CMElementDeclaration original) {
-		CMElementDeclaration buddy = null;
-		if (htmlcm != null) {
-			CMNamedNodeMap elems = htmlcm.getElements();
-			if (elems != null) {
-				buddy = (CMElementDeclaration) elems.getNamedItem(original.getElementName());
-			}
-		}
-		return buddy;
-	}
-
-	private class Attrs extends CMNamedNodeMapForBuddySystem {
-		private CMNamedNodeMap buddyAttrs = null;
-
-		public Attrs(CMNamedNodeMap attrs, CMNamedNodeMap buddyAttrs, boolean isXHTML) {
-			super(isXHTML);
-			this.buddyAttrs = buddyAttrs;
-			makeBuddySystem(attrs);
-		}
-
-		protected String getKeyName(CMNode original) {
-			CMAttributeDeclaration adecl = getDecl(original);
-			if (adecl == null)
-				return null;
-			return adecl.getAttrName();
-		}
-
-		protected CMNode createBuddySystem(CMNode original) {
-			CMAttributeDeclaration adecl = getDecl(original);
-			if (adecl == null)
-				return null;
-			CMAttributeDeclaration buddy = null;
-			if (buddyAttrs != null) {
-				buddy = (CMAttributeDeclaration) buddyAttrs.getNamedItem(adecl.getAttrName());
-			}
-			return new CMAttributeDeclarationBuddySystem(adecl, buddy, isXHTML());
-		}
-
-		private CMAttributeDeclaration getDecl(CMNode cmnode) {
-			if (cmnode == null)
-				return null;
-			if (cmnode.getNodeType() != CMNode.ATTRIBUTE_DECLARATION)
-				return null;
-			return (CMAttributeDeclaration) cmnode;
-		}
-	}
-
-	private Attrs attributes = null;
-
-	public CMElementDeclarationBuddySystem(CMElementDeclaration self, boolean isXHTML) {
-		super(self, getHTMLCMElemDecl(self), isXHTML);
-	}
-
-	/*
-	 * @see CMElementDeclaration#getAttributes()
-	 */
-	public CMNamedNodeMap getAttributes() {
-		if (attributes != null)
-			return attributes;
-		CMElementDeclaration edecl = getSelf();
-		if (edecl == null)
-			return null;
-		CMElementDeclaration htmlDecl = getBuddy();
-		CMNamedNodeMap htmlAttrs = (htmlDecl == null) ? null : htmlDecl.getAttributes();
-		attributes = new Attrs(edecl.getAttributes(), htmlAttrs, isXHTML);
-		return attributes;
-	}
-
-	/*
-	 * @see CMElementDeclaration#getContent()
-	 */
-	public CMContent getContent() {
-		CMElementDeclaration edecl = getSelf();
-		if (edecl == null)
-			return null;
-		return edecl.getContent();
-	}
-
-	/*
-	 * @see CMElementDeclaration#getContentType()
-	 */
-	public int getContentType() {
-		CMElementDeclaration edecl = getSelf();
-		if (edecl == null)
-			return CMElementDeclaration.ANY;
-		return edecl.getContentType();
-	}
-
-	/*
-	 * @see CMElementDeclaration#getElementName()
-	 */
-	public String getElementName() {
-		CMElementDeclaration edecl = getSelf();
-		if (edecl == null)
-			return null;
-		return edecl.getElementName();
-	}
-
-	/*
-	 * @see CMElementDeclaration#getDataType()
-	 */
-	public CMDataType getDataType() {
-		CMElementDeclaration edecl = getSelf();
-		if (edecl == null)
-			return null;
-		return edecl.getDataType();
-	}
-
-	/*
-	 * @see CMElementDeclaration#getLocalElements()
-	 */
-	public CMNamedNodeMap getLocalElements() {
-		CMElementDeclaration edecl = getSelf();
-		if (edecl == null)
-			return null;
-		return edecl.getLocalElements();
-	}
-
-	/*
-	 * @see CMContent#getMaxOccur()
-	 */
-	public int getMaxOccur() {
-		CMElementDeclaration edecl = getSelf();
-		if (edecl == null)
-			return -1;
-		return edecl.getMaxOccur();
-	}
-
-	/*
-	 * @see CMContent#getMinOccur()
-	 */
-	public int getMinOccur() {
-		CMElementDeclaration edecl = getSelf();
-		if (edecl == null)
-			return -1;
-		return edecl.getMinOccur();
-	}
-
-	/*
-	 * @see CMNode#supports(String)
-	 */
-	public boolean supports(String propertyName) {
-		if (isXHTML && propertyName.equals(HTMLCMProperties.OMIT_TYPE))
-			return true;
-		return super.supports(propertyName);
-	}
-
-	/*
-	 * @see CMNode#getProperty(String)
-	 */
-	public Object getProperty(String propertyName) {
-		if (isXHTML && propertyName.equals(HTMLCMProperties.OMIT_TYPE))
-			return HTMLCMProperties.Values.OMIT_NONE;
-		return super.getProperty(propertyName);
-	}
-
-	private CMElementDeclaration getSelf() {
-		if (self.getNodeType() != CMNode.ELEMENT_DECLARATION)
-			return null;
-		return (CMElementDeclaration) self;
-	}
-
-	private CMElementDeclaration getBuddy() {
-		if (buddy == null)
-			return null;
-		if (buddy.getNodeType() != CMNode.ELEMENT_DECLARATION)
-			return null;
-		return (CMElementDeclaration) buddy;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNamedNodeMapForBuddySystem.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNamedNodeMapForBuddySystem.java
deleted file mode 100644
index 9b584bf..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNamedNodeMapForBuddySystem.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.wst.html.core.internal.modelquery;
-
-
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Locale;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- */
-abstract class CMNamedNodeMapForBuddySystem implements CMNamedNodeMap {
-
-
-	private boolean isXHTML = false;
-	private Hashtable map = new Hashtable();
-
-	/**
-	 * Constructor of CMNamedNodeMapForBuddySystem.
-	 * CAUTION: Each derived class must call 'makeBuddySystem' method in its
-	 * constructor to build up its contents.
-	 */
-	public CMNamedNodeMapForBuddySystem(boolean isXHTML) {
-		super();
-		this.isXHTML = isXHTML;
-	}
-
-	/*
-	 * @see CMNamedNodeMap#getLength()
-	 */
-	public int getLength() {
-		return map.size();
-	}
-
-	/*
-	 * @see CMNamedNodeMap#getNamedItem(String)
-	 */
-	public CMNode getNamedItem(String name) {
-		String key = canonicalName(name);
-		if (!map.containsKey(key))
-			return null;
-		return (CMNode) map.get(key);
-	}
-
-	/*
-	 * @see CMNamedNodeMap#item(int)
-	 */
-	public CMNode item(int index) {
-		Iterator iter = iterator();
-		while (iter.hasNext()) {
-			Object node = iter.next();
-			if (--index < 0)
-				return (CMNode) node;
-		}
-		return null;
-	}
-
-	/*
-	 * @see CMNamedNodeMap#iterator()
-	 */
-	public Iterator iterator() {
-		return map.values().iterator();
-	}
-
-	/* package scope. */
-	void put(String name, CMNode cmnode) {
-		if (name == null || cmnode == null)
-			return;
-		map.put(canonicalName(name), cmnode);
-	}
-
-	abstract protected String getKeyName(CMNode original);
-
-	abstract protected CMNode createBuddySystem(CMNode original);
-
-	protected boolean isXHTML() {
-		return isXHTML;
-	}
-
-	/**
-	 * Each derived class must call this method in its constructor
-	 * to build up its contents.
-	 */
-	protected void makeBuddySystem(CMNamedNodeMap original) {
-		Iterator i = original.iterator();
-		if (i == null)
-			return;
-		while (i.hasNext()) {
-			CMNode org = (CMNode) i.next();
-			String key = getKeyName(org);
-			CMNode newNode = createBuddySystem(org);
-			put(key, newNode);
-		}
-	}
-
-	private String canonicalName(String name) {
-		// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=171918
-		// we are able to "cheat" here a little and use US Locale
-		// to get a good canonical form, since we are using this only
-		// for HTML and JSP standard tags.
-		// Long term, for similar needs with XML 1.1 (for example)
-		// we should use a class such as com.ibm.icu.text.Normalizer
-		return name.toUpperCase(Locale.US);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNodeBuddySystem.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNodeBuddySystem.java
deleted file mode 100644
index e282f9a..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNodeBuddySystem.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.modelquery;
-
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- */
-class CMNodeBuddySystem implements CMNode {
-
-
-	protected boolean isXHTML = false;
-	protected CMNode self = null;
-	protected CMNode buddy = null;
-
-	public CMNodeBuddySystem(CMNode self, CMNode buddy, boolean isXHTML) {
-		super();
-		this.self = self;
-		this.buddy = buddy;
-		this.isXHTML = isXHTML;
-	}
-
-	/*
-	 * @see CMNode#getNodeName()
-	 */
-	public String getNodeName() {
-		return self.getNodeName();
-	}
-
-	/*
-	 * @see CMNode#getNodeType()
-	 */
-	public int getNodeType() {
-		return self.getNodeType();
-	}
-
-	/*
-	 * @see CMNode#supports(String)
-	 */
-	public boolean supports(String propertyName) {
-		if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE))
-			return true;
-		if (propertyName.equals(HTMLCMProperties.IS_XHTML))
-			return true;
-		if (buddy == null)
-			return false;
-		return buddy.supports(propertyName);
-	}
-
-	/*
-	 * @see CMNode#getProperty(String)
-	 */
-	public Object getProperty(String propertyName) {
-		if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) {
-			return new Boolean(!isXHTML);
-		}
-		if (propertyName.equals(HTMLCMProperties.IS_XHTML)) {
-			return new Boolean(isXHTML);
-		}
-
-		if (buddy == null || (!buddy.supports(propertyName)))
-			return null;
-		return buddy.getProperty(propertyName);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/DocumentQuery.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/DocumentQuery.java
deleted file mode 100644
index 2d802d8..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/DocumentQuery.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.modelquery;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.ranges.Range;
-
-/**
- */
-public interface DocumentQuery {
-
-	/**
-	 * isRenderRoot() returns true if - node is BODY element (both explicit
-	 * and implicit) - node is portalhtml:body element - node is Document node
-	 * and the document is treated as fragment (with BODY context) Note that
-	 * in editing a fragment file, Document node should be treated as a
-	 * substitute of BODY element.
-	 */
-	boolean isRenderRoot(Node node);
-
-	/**
-	 * isHeadCorrespondent() returns true if - node is HEAD element (both
-	 * explicit and implicit) - node is portalhtml:head element - node is
-	 * Document node and the document is treated as fragment (with HEAD
-	 * context) Note that in editing a fragment file (with HEAD context),
-	 * Document node should be treated as a substitute of HEAD element.
-	 */
-	boolean isHeadCorrespondent(Node node);
-
-	/**
-	 * Implicit BODY element will be gone in V6 SED model. So page designer
-	 * provides an API to get a range whose content nodes are rendered in
-	 * design view. getRenderRootRange() returns - a range from BODY's first
-	 * to its last (if the document has BODY element) - a range form
-	 * Document's first to its last (if the document is fragment with BODY
-	 * context) - null (if the document is fragment with HEAD context) [The
-	 * following cases will be supported since V6] - a range from a custom
-	 * tag's first to its last (if the document has a custom tag which
-	 * generates BODY element at runtime) - a range from Document's
-	 * appropirate offset to its last (if the document does not have explicit
-	 * BODY/HTML) - a range from HTML element's appropriate offset to its last
-	 * (if the document does not have explicit BODY but have explicit HTML)
-	 * 
-	 * @param doc
-	 * @return
-	 */
-	Range getRenderRootRange(Document doc);
-
-	/**
-	 * Implicit HEAD element will be gone in V6 SED model. So page designer
-	 * provides an API to get a range whose content nodes are treated as HEAD
-	 * element's child. getHeadCorrespondentRange() returns - a range from
-	 * HEAD's first to its last (if the document has HEAD element) - a range
-	 * form Document's first to its last (if the document is fragment with
-	 * HEAD context) - null (if the document is fragment with BODY context)
-	 * [The following cases will be supported since V6] - a range from a
-	 * custom tag's first to its last (if the document has a custom tag which
-	 * generates HEAD element at runtime) - a range from Document's first to
-	 * appropirate offset (if the document does not have explicit HEAD/HTML) -
-	 * a range from HTML element's first to appropriate offset (if the
-	 * document does not have explicit HEAD but have explicit HTML)
-	 * 
-	 * @param doc
-	 * @return
-	 */
-	Range getHeadCorrespondentRange(Document doc);
-
-	/**
-	 * getRenderRootNode() with [create=false] returns - BODY element if this
-	 * document is not fragment and has BODY element - null if this document
-	 * is not fragment and does not have BODY element - Document node if this
-	 * document is fragment with BODY context - null if this document is
-	 * fragment with HEAD context [The following cases will be supported since
-	 * V6] - a custom tag which generates BODY tag at runtime - Document node
-	 * or HTML element if this document is not fragment but does not have
-	 * explicit BODY element getRenderRootNode() with [create=true] returns -
-	 * BODY element if this document is not fragment and has BODY element (no
-	 * modifictation) - newly created BODY element if this document is not
-	 * fragment but does not have BODY element - Document node if this
-	 * document is fragment with BODY context (no modifictation) [The
-	 * following cases will be supported since V6] - a custom tag which
-	 * generates BODY tag at runtime (no modifictation) - newly created BODY
-	 * element if this document is not fragment but does not have explicit
-	 * BODY element getRenderRootNode() throws HTMLCommandException (since V6)
-	 * if - this document is fragment with HEAD context and - "create"
-	 * parameter is true Note that in editing a fragment file, Document node
-	 * should be treated as a substitute of BODY element.
-	 * 
-	 * @param childOrDocument
-	 * @param create
-	 * @return
-	 */
-	Node getRenderRootNode(Node childOrDocument, boolean create);
-
-	/**
-	 * getHeadCorrespondentNode() with [create=false] returns - HEAD element
-	 * if this document is not fragment and has HEAD element - null if this
-	 * document is not fragment and does not have HEAD element - Document node
-	 * if this document is fragment with HEAD context - null if this document
-	 * is fragment with BODY context [The following cases will be supported
-	 * since V6] - a custom tag which generates HEAD tag at runtime - Document
-	 * node or HTML element if this document is not fragment but does not have
-	 * explicit HEAD element getHeadCorrespondentNode() with [create=true]
-	 * returns - HEAD element if this document is not fragment and has HEAD
-	 * element (no modifictation) - newly created HEAD element if this
-	 * document is not fragment but does not have HEAD element - Document node
-	 * if this document is fragment with HEAD context (no modifictation) [The
-	 * following cases will be supported since V6] - a custom tag which
-	 * generates HEAD tag at runtime (no modifictation) - newly created HEAD
-	 * element if this document is not fragment but does not have explicit
-	 * HEAD element getHeadCorrespondentNode() throws HTMLCommandException
-	 * (since V6) if - this document is fragment with BODY context and -
-	 * "create" parameter is true Note that in editing a fragment file,
-	 * Document node should be treated as a substitute of HEAD element.
-	 * 
-	 * @param childOrDocument
-	 * @param create
-	 * @return
-	 */
-	Node getHeadCorrespondentNode(Node childOrDocument, boolean create);
-
-	/**
-	 * getHtmlCorrespondentNode() throws HTMLCommandException (since V6) if -
-	 * this document is fragment and "create" parameter is true
-	 * 
-	 * @param childOrDocument
-	 * @param create
-	 * @return
-	 */
-	Node getHtmlCorrespondentNode(Node childOrDocument, boolean create);
-
-	/**
-	 * This inner class is intended for insertion target. please use this like
-	 * the following : DocumentQuery.InsertionTarget ins;
-	 * ins.getParent().insertBefore(youInsertionNode, ins.getRef());
-	 */
-	public class InsertionTarget {
-		private final Node parent;
-		private final Node ref;
-
-		public InsertionTarget(Node parent, Node ref) {
-			this.parent = parent;
-			this.ref = ref;
-		}
-
-		public Node getParent() {
-			return parent;
-		}
-
-		public Node getRef() {
-			return ref;
-		}
-	}
-
-	/**
-	 * getHeadInsertionTarget() returns appropriate insetion target location
-	 * for HEAD child tags such as <script>, <style>, <meta>etc. Basically
-	 * this function returns <HEAD>tag's the last position. Note that this
-	 * would not create actual <HEAD>tag when the document does not have it.
-	 * <HEAD>is omittable tag so this function returns appropriate position
-	 * to which implicit <HEAD>can be inserted, if the document has no
-	 * <HEAD>.
-	 * 
-	 * @param doc
-	 * @return
-	 */
-	InsertionTarget getHeadInsertionTarget(Document doc);
-
-	/**
-	 * getPageInsertionTarget() returns appropriate insetion target location
-	 * for page-level markups, such as JSP directives, usebean tags or <html>
-	 * tag. Basically this function returns just before <HTML>tag. Note that
-	 * this would not create actual <HTML>tag when the document does not have
-	 * it. In such case, this function returns a position just before the
-	 * meaningful tags such as HTML/JSP elements.
-	 * 
-	 * @param doc
-	 * @return
-	 */
-	InsertionTarget getPageInsertionTarget(Document doc);
-
-	/**
-	 * isFragment() returns whether the document is fragment or complete
-	 * document
-	 * 
-	 * @param doc
-	 * @return
-	 */
-	boolean isFragment(Document doc);
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapter.java
deleted file mode 100644
index e5ee296..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapter.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.modelquery;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-
-/**
- */
-public interface ElementDeclarationAdapter extends INodeAdapter {
-
-	/**
-	 */
-	CMElementDeclaration getDeclaration();
-
-	/**
-	 */
-	void setDeclaration(CMElementDeclaration declaration);
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapterFactory.java
deleted file mode 100644
index b558fb5..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapterFactory.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.modelquery;
-
-
-
-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;
-
-/**
- */
-public class ElementDeclarationAdapterFactory implements INodeAdapterFactory {
-
-	private static ElementDeclarationAdapterFactory instance = null;
-
-	/**
-	 */
-	private ElementDeclarationAdapterFactory() {
-		super();
-	}
-
-	/**
-	 */
-	public INodeAdapter adapt(INodeNotifier notifier) {
-		if (notifier == null)
-			return null;
-		INodeAdapter adapter = notifier.getExistingAdapter(ElementDeclarationAdapter.class);
-		if (adapter != null)
-			return adapter;
-		adapter = new HTMLElementDeclarationAdapter();
-		notifier.addAdapter(adapter);
-		return adapter;
-	}
-
-	/**
-	 */
-	public synchronized static ElementDeclarationAdapterFactory getInstance() {
-		if (instance == null)
-			instance = new ElementDeclarationAdapterFactory();
-		return instance;
-	}
-
-	/**
-	 */
-	public boolean isFactoryForType(Object type) {
-		return (type == ElementDeclarationAdapter.class);
-	}
-
-	public void release() {
-		// default is to do nothing
-	}
-
-	/**
-	 * Overriding copy method
-	 */
-	public INodeAdapterFactory copy() {
-		return getInstance();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HMQUtil.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HMQUtil.java
deleted file mode 100644
index 377ad09..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HMQUtil.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.modelquery;
-
-import java.util.Collection;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Vector;
-
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public final class HMQUtil {
-
-	private final static Vector nullVector = new Vector();
-
-	/* HMQUtil class must not instantiate. */
-	private HMQUtil() {
-		super();
-	}
-
-	/* gather all element declarations in inclusion of each parent of the target. 
-	 * the inclusion of the target is also gathered. */
-	public static Collection getInclusions(Element target) {
-		if (target == null)
-			return nullVector;
-		Collection inclusions = gatherInclusions(getAncestorDeclarations(target));
-
-		Hashtable availables = new Hashtable();
-		Iterator iter = inclusions.iterator();
-		while (iter.hasNext()) {
-			CMContent inclusion = (CMContent) iter.next();
-			switch (inclusion.getNodeType()) {
-				case CMNode.GROUP :
-					extractDeclarations(availables, (CMGroup) inclusion);
-					break;
-				case CMNode.ELEMENT_DECLARATION :
-					addInclusion(availables, (CMElementDeclaration) inclusion);
-					break;
-			}
-		}
-
-		return availables.values();
-	}
-
-	private static Collection getAncestorDeclarations(Element target) {
-		Vector ancestors = new Vector();
-
-		Document doc = target.getOwnerDocument();
-		ModelQuery query = ModelQueryUtil.getModelQuery(doc);
-		CMElementDeclaration decl = query.getCMElementDeclaration(target);
-		ancestors.add(decl);
-
-		Element parent = getParent(target);
-		while (parent != null) {
-			decl = query.getCMElementDeclaration(parent);
-			if (decl != null)
-				ancestors.add(decl);
-			parent = getParent(parent);
-		}
-		return ancestors;
-	}
-
-	private static void addInclusion(Hashtable availables, CMElementDeclaration decl) {
-		String name = decl.getElementName();
-		if (availables.containsKey(name))
-			return;
-		availables.put(name, decl);
-	}
-
-	private static Collection gatherInclusions(Collection ancestors) {
-		Vector inclusions = new Vector();
-		Iterator iter = ancestors.iterator();
-		while (iter.hasNext()) {
-			CMElementDeclaration decl = (CMElementDeclaration) iter.next();
-			if (decl.supports(HTMLCMProperties.INCLUSION)) {
-				CMContent inclusion = (CMContent) decl.getProperty(HTMLCMProperties.INCLUSION);
-				if (inclusion != null)
-					inclusions.add(inclusion);
-			}
-		}
-		return inclusions;
-	}
-
-	private static Element getParent(Node target) {
-		Node parent = target.getParentNode();
-		while (parent != null) {
-			if (parent.getNodeType() == Node.ELEMENT_NODE)
-				return (Element) parent;
-			parent = parent.getParentNode();
-		}
-		return null;
-	}
-
-	private static void extractDeclarations(Hashtable availables, CMGroup group) {
-		CMNodeList content = group.getChildNodes();
-		for (int i = 0; i < content.getLength(); i++) {
-			CMNode cmn = content.item(i);
-			if (cmn == null || cmn.getNodeType() != CMNode.ELEMENT_DECLARATION)
-				continue;
-			addInclusion(availables, (CMElementDeclaration) cmn);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLElementDeclarationAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLElementDeclarationAdapter.java
deleted file mode 100644
index 76f0281..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLElementDeclarationAdapter.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.wst.html.core.internal.modelquery;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-
-/**
- */
-public class HTMLElementDeclarationAdapter implements ElementDeclarationAdapter {
-
-	private CMElementDeclaration declaration = null;
-
-	/**
-	 */
-	public HTMLElementDeclarationAdapter() {
-		super();
-	}
-
-	/**
-	 */
-	public CMElementDeclaration getDeclaration() {
-		return this.declaration;
-	}
-
-	/**
-	 * Allowing the INodeAdapter to compare itself against the type
-	 * allows it to return true in more than one case.
-	 */
-	public boolean isAdapterForType(Object type) {
-		return (type == ElementDeclarationAdapter.class);
-	}
-
-	/**
-	 */
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-	}
-
-	/**
-	 */
-	public void setDeclaration(CMElementDeclaration declaration) {
-		this.declaration = declaration;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryAssociationProvider.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryAssociationProvider.java
deleted file mode 100644
index 6d7fbbe..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryAssociationProvider.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.wst.html.core.internal.modelquery;
-
-
-
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.SimpleAssociationProvider;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
-
-/**
- */
-public class HTMLModelQueryAssociationProvider extends SimpleAssociationProvider {
-
-	/**
-	 * @param modelQueryCMProvider org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQueryCMProvider
-	 */
-	public HTMLModelQueryAssociationProvider(CMDocumentCache cache, URIResolver idResolver) {
-		super(new HTMLModelQueryCMProvider(cache, idResolver));
-	}
-
-	// MIWA: We cannot cache a CMElementDeclaration any more.  Because, when the DOCTYPE
-	// was changed, CMDocument would be changed.  Then, a cached CMElementDeclaration
-	// would be invalid.  If some performance problems occurs, we consider a smarter
-	// cache mechanism.
-	//
-	//	public CMElementDeclaration getCMElementDeclaration(Element element) {
-	//		// check if element declaration is cached
-	//		INodeNotifier notifier = (INodeNotifier) element;
-	//		ElementDeclarationAdapter adapter = (ElementDeclarationAdapter) notifier.getExistingAdapter(ElementDeclarationAdapter.class);
-	//		if (adapter != null)
-	//			return adapter.getDeclaration();
-	//
-	//		CMElementDeclaration decl = super.getCMElementDeclaration(element);
-	//
-	//		// cache HTML element declaration only
-	//		if (decl != null && decl instanceof HTMLElementDeclaration) {
-	//			IAdapterFactory factory = ElementDeclarationAdapterFactory.getInstance();
-	//			adapter = (ElementDeclarationAdapter) factory.adapt(notifier);
-	//			if (adapter != null)
-	//				adapter.setDeclaration(decl);
-	//		}
-	//
-	//		return decl;
-	//	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryCMProvider.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryCMProvider.java
deleted file mode 100644
index 40e6d3d..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryCMProvider.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.modelquery;
-
-
-import java.util.Hashtable;
-
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDocumentFactory;
-import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeEntry;
-import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeRegistry;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQueryCMProvider;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
-import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocType;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Node;
-
-/**
- * CMDocument provider for HTML and XHTML documents.
- * 
- * This added and/or made public specifically for experimentation. It will
- * change as this functionality becomes API. See
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=119084
- */
-
-
-public class HTMLModelQueryCMProvider implements ModelQueryCMProvider {
-
-
-	private static CMDocument staticHTML = HTMLCMDocumentFactory.getCMDocument(CMDocType.HTML_DOC_TYPE);
-	private static CMDocument staticCHTML = HTMLCMDocumentFactory.getCMDocument(CMDocType.CHTML_DOC_TYPE);
-	private static HTMLDocumentTypeRegistry doctypeRegistry = HTMLDocumentTypeRegistry.getInstance();
-	private static Hashtable buddyCache = new Hashtable();
-
-	private XHTMLAssociationProvider xhtmlassoc = null;
-
-	public HTMLModelQueryCMProvider(CMDocumentCache cache, URIResolver idResolver) {
-		super();
-		xhtmlassoc = new XHTMLAssociationProvider(cache, idResolver);
-	}
-
-	/**
-	 * Returns the CMDocument that corresponds to the DOM Node. or null if no
-	 * CMDocument is appropriate for the DOM Node.
-	 */
-	public CMDocument getCorrespondingCMDocument(Node node) {
-		IDOMDocument owner = getOwnerXMLDocument(node);
-		if (owner == null)
-			return null;
-
-		String pid = getPublicId(owner);
-		if (pid == null)
-			return staticHTML;
-
-		HTMLDocumentTypeEntry entry = doctypeRegistry.getEntry(pid);
-		if (entry == null)
-			return staticHTML;
-		
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=151000 - use internal content model
-		if (entry.useInternalModel()) {
-			if (pid != null && pid.equals(HTMLDocumentTypeRegistry.CHTML_PUBLIC_ID)) {
-				return staticCHTML;
-			}
-			return staticHTML;
-		}
-
-		pid = entry.getPublicId();
-		String sid = entry.getSystemId();
-
-		CMDocument dtdcm = xhtmlassoc.getXHTMLCMDocument(pid, sid);
-		if (dtdcm == null) {
-			if (pid != null && pid.equals(HTMLDocumentTypeRegistry.CHTML_PUBLIC_ID)) {
-				return staticCHTML;
-			}
-			return staticHTML;
-		}
-
-		String grammarURI = xhtmlassoc.getCachedGrammerURI();
-		CMDocument buddycm = (CMDocument) buddyCache.get(grammarURI);
-		if (buddycm != null)
-			return buddycm;
-
-		buddycm = new CMDocumentForBuddySystem(dtdcm, entry.isXMLType());
-		buddyCache.put(grammarURI, buddycm);
-		return buddycm;
-	}
-
-	// private methods
-	private IDOMDocument getOwnerXMLDocument(Node node) {
-		if (node == null)
-			return null;
-		Document owner = (node.getNodeType() == Node.DOCUMENT_NODE) ? (Document) node : node.getOwnerDocument();
-		if (owner == null)
-			return null;
-		if (!(owner instanceof IDOMDocument))
-			return null;
-		return (IDOMDocument) owner;
-	}
-
-	private String getPublicId(IDOMDocument doc) {
-		if (doc == null)
-			return null;
-		DocumentType doctype = doc.getDoctype();
-		return (doctype != null) ? doctype.getPublicId() : doc.getDocumentTypeId();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryImpl.java
deleted file mode 100644
index bee1432..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryImpl.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.modelquery;
-
-
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.ModelQueryImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
-import org.eclipse.wst.xml.core.internal.modelquery.XMLModelQueryAssociationProvider;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.ssemodelquery.MovableModelQuery;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * This added and/or made public specifically for experimentation. It
- * will change as this functionality becomes API. See
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=119084
- */
- 
-public class HTMLModelQueryImpl extends ModelQueryImpl implements MovableModelQuery {
-
-	protected CMDocumentCache fCache = null;
-	protected XMLModelQueryAssociationProvider xmlAssocProv = null;
-
-	public HTMLModelQueryImpl(CMDocumentCache cache, URIResolver idResolver) {
-		super(new HTMLModelQueryAssociationProvider(cache, idResolver));
-		fCache = cache;
-		xmlAssocProv = new XMLModelQueryAssociationProvider(cache, idResolver);
-	}
-
-	public List getAvailableContent(Element element, CMElementDeclaration ed, int includeOptions) {
-		List originalCandidates = super.getAvailableContent(element, ed, includeOptions);
-		if ((includeOptions & INCLUDE_CHILD_NODES) == 0)
-			return originalCandidates;
-		// When the target document is XHTML, it is waste to find inclusions,
-		// since inclusion is available in HTML only.
-		if (!ed.supports(HTMLCMProperties.IS_XHTML))
-			return originalCandidates;
-		
-		Boolean isXhtml = Boolean.FALSE;
-		isXhtml = (Boolean) ed.getProperty(HTMLCMProperties.IS_XHTML);
-		if (isXhtml != null && isXhtml.booleanValue())
-			return originalCandidates;
-
-		// OK, the target is surely a HTML element, so it may have inclusion.
-		// Try to find it.
-		Vector candidates = new Vector(originalCandidates);
-
-		switch (ed.getContentType()) {
-			case CMElementDeclaration.ANY :
-			case CMElementDeclaration.ELEMENT :
-			case CMElementDeclaration.MIXED :
-				// do enumerate inclusions.
-				candidates.addAll(HMQUtil.getInclusions(element));
-				break;
-			case CMElementDeclaration.EMPTY :
-			case CMElementDeclaration.PCDATA :
-			case CMElementDeclaration.CDATA :
-			default :
-				// should not add any inclusions.
-				// so, nothing to do here.
-				break;
-		}
-		// If the current element does not available, it is impossible
-		// to filter out exclusion.
-		if (element == null)
-			return candidates;
-
-		// Now, the time to check exclusion.
-		Vector content = new Vector(candidates.size());
-		for (int i = 0; i < candidates.size(); i++) {
-			CMElementDeclaration candidate = (CMElementDeclaration) candidates.elementAt(i);
-			if (candidate == null)
-				continue;
-			if (isExcluded(candidate, element))
-				continue;
-			content.add(candidate);
-		}
-
-		return content;
-	}
-
-	/**
-	 * @see MovableModelQuery#setIdResolver(IdResolver)
-	 */
-	public void setIdResolver(URIResolver newIdResolver) {
-		modelQueryAssociationProvider = new HTMLModelQueryAssociationProvider(fCache, newIdResolver);
-	}
-
-	// utilities
-	private static boolean isExcluded(CMElementDeclaration candidate, Element target) {
-		CMNamedNodeMap prohibited = getProhibitedAncestors(candidate);
-		if (prohibited == null)
-			return false;
-		Element parent = target;
-		while (parent != null) {
-			CMNode pdec = prohibited.getNamedItem(parent.getNodeName());
-			if (pdec != null)
-				return true;
-			parent = getExplicitParentElement(parent);
-		}
-		return false;
-	}
-
-	private static CMNamedNodeMap getProhibitedAncestors(CMElementDeclaration dec) {
-		if (!dec.supports(HTMLCMProperties.PROHIBITED_ANCESTORS))
-			return null;
-		return (CMNamedNodeMap) dec.getProperty(HTMLCMProperties.PROHIBITED_ANCESTORS);
-	}
-
-	/* get an ancestor element ignoring implicit ones. */
-	private static Element getExplicitParentElement(Node child) {
-		if (child == null)
-			return null;
-
-		Node p = child.getParentNode();
-		while (p != null) {
-			if (p.getNodeType() == Node.ELEMENT_NODE) {
-				if (p instanceof IDOMElement) {
-					if (((IDOMElement) p).isImplicitTag()) {
-						p = p.getParentNode();
-						continue;
-					}
-				}
-				return (Element) p;
-			}
-			p = p.getParentNode();
-		}
-		return null;
-	}
-
-	public CMElementDeclaration getCMElementDeclaration(Element element) {
-		CMElementDeclaration result = super.getCMElementDeclaration(element);
-		if (null != result)
-			return result;
-		
-		return xmlAssocProv.getCMElementDeclaration(element);
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ModelQueryAdapterFactoryForEmbeddedHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ModelQueryAdapterFactoryForEmbeddedHTML.java
deleted file mode 100644
index ef7c263..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ModelQueryAdapterFactoryForEmbeddedHTML.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.modelquery;
-
-
-
-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.ssemodelquery.ModelQueryAdapter;
-
-public class ModelQueryAdapterFactoryForEmbeddedHTML extends ModelQueryAdapterFactoryForHTML {
-
-
-	/**
-	 * Constructor for ModelQueryAdapterFactoryForEmbeddedHTML.
-	 */
-	public ModelQueryAdapterFactoryForEmbeddedHTML() {
-		super(ModelQueryAdapter.class, false);
-	}
-
-
-	public INodeAdapterFactory copy() {
-
-		return new ModelQueryAdapterFactoryForEmbeddedHTML();
-	}
-
-	/**
-	 * ISSUE: this "forces" a new one to always be created/returned, not
-	 * "cached" on the node. That seems incorrect. Simply using
-	 * shouldRegisterFalse should work, except, there might have been one
-	 * there that someone else already explicitly put there, so this is only
-	 * way I know to override that. Especially complicated here since a number
-	 * of adapters are for ModelQueryAdapter.class.
-	 */
-	public INodeAdapter adapt(INodeNotifier object) {
-		return adaptNew(object);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ModelQueryAdapterFactoryForHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ModelQueryAdapterFactoryForHTML.java
deleted file mode 100644
index 9cc2f2e..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ModelQueryAdapterFactoryForHTML.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.modelquery;
-
-
-
-import java.io.File;
-import java.net.URI;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.html.core.internal.Logger;
-import org.eclipse.wst.sse.core.internal.provisional.AbstractAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.IModelStateListener;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
-import org.eclipse.wst.xml.core.internal.modelquery.XMLCatalogIdResolver;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter;
-import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapterImpl;
-
-/**
- * Creates a ModelQueryAdapter for HTML models
- */
-public class ModelQueryAdapterFactoryForHTML extends AbstractAdapterFactory {
-
-	ModelQueryAdapterImpl modelQueryAdapter;
-	IStructuredModel modelStateNotifier;
-	private InternalModelStateListener internalModelStateListener;
-
-	class InternalModelStateListener implements IModelStateListener {
-
-		/**
-		 * @see IModelStateListener#modelAboutToBeChanged(IStructuredModel)
-		 */
-		public void modelAboutToBeChanged(IStructuredModel model) {
-			// ISSUE: should we "freeze" state, or anything?
-		}
-
-		public void modelAboutToBeReinitialized(IStructuredModel structuredModel) {
-			// ISSUE: should we "freeze" state, or anything?
-
-		}
-
-		/**
-		 * @see IModelStateListener#modelChanged(IStructuredModel)
-		 */
-		public void modelChanged(IStructuredModel model) {
-			// nothing to do?
-		}
-
-		/**
-		 * @see IModelStateListener#modelDirtyStateChanged(IStructuredModel,
-		 *      boolean)
-		 */
-		public void modelDirtyStateChanged(IStructuredModel model, boolean isDirty) {
-			// nothing to do
-		}
-
-		public void modelReinitialized(IStructuredModel structuredModel) {
-			updateResolver(structuredModel);
-		}
-
-		/**
-		 * @see IModelStateListener#modelResourceDeleted(IStructuredModel)
-		 */
-		public void modelResourceDeleted(IStructuredModel model) {
-			// nothing to do?
-		}
-
-		/**
-		 * @see IModelStateListener#modelResourceMoved(IStructuredModel,
-		 *      IStructuredModel)
-		 */
-		public void modelResourceMoved(IStructuredModel oldModel, IStructuredModel newModel) {
-			modelStateNotifier.removeModelStateListener(this);
-			modelStateNotifier = newModel;
-			updateResolver(modelStateNotifier);
-			modelStateNotifier.addModelStateListener(this);
-		}
-
-		private void updateResolver(IStructuredModel model) {
-			String baseLocation = model.getBaseLocation();
-			IFile baseFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(model.getBaseLocation()));
-			if (baseFile != null) {
-				if (baseFile.getLocation() != null) {
-					baseLocation = baseFile.getLocation().toString();
-				}
-				if (baseLocation == null && baseFile.getLocationURI() != null) {
-					baseLocation = baseFile.getLocationURI().toString();
-				}
-				if (baseLocation == null) {
-					baseLocation = baseFile.getFullPath().toString();
-				}
-			}
-			else {
-				baseLocation = model.getBaseLocation();
-			}
-			modelQueryAdapter.setIdResolver(new XMLCatalogIdResolver(baseLocation, model.getResolver()));
-		}
-
-	}
-
-
-	/**
-	 * ModelQueryAdapterFactoryForHTML constructor comment. Note: this is a
-	 * case there the key is not exactly same as the class we are after.
-	 */
-	public ModelQueryAdapterFactoryForHTML() {
-		super(ModelQueryAdapter.class, true);
-	}
-
-	/**
-	 * We need this protected version to allow subclasses to pass up standard
-	 * behaviour.
-	 * 
-	 * @param adapterKey
-	 * @param registerAdapters
-	 */
-
-	protected ModelQueryAdapterFactoryForHTML(Object adapterKey, boolean registerAdapters) {
-		super(adapterKey, registerAdapters);
-	}
-
-
-
-	public INodeAdapterFactory copy() {
-
-		return new ModelQueryAdapterFactoryForHTML();
-	}
-
-	public void release() {
-		super.release();
-		if (modelStateNotifier != null) {
-			modelStateNotifier.removeModelStateListener(internalModelStateListener);
-		}
-
-		modelStateNotifier = null;
-
-		if (modelQueryAdapter != null) {
-			modelQueryAdapter.release();
-		}
-	}
-
-	/**
-	 * createAdapter method comment.
-	 * 
-	 * XXX: we must make this method more independent of 'location' (at least
-	 * provide some fall-back method).
-	 */
-	protected INodeAdapter createAdapter(INodeNotifier target) {
-
-		if (Debug.displayInfo) {
-			Logger.log(Logger.INFO_DEBUG, "-----------------------ModelQueryAdapterFactoryForHTML.createAdapter" + target); //$NON-NLS-1$
-		}
-		if (modelQueryAdapter == null) {
-			if (target instanceof IDOMNode) {
-				IDOMNode xmlNode = (IDOMNode) target;
-				modelStateNotifier = xmlNode.getModel();
-				modelStateNotifier.addModelStateListener(getInternalModelStateListener());
-
-				IStructuredModel model = xmlNode.getModel();
-				org.eclipse.wst.sse.core.internal.util.URIResolver resolver = model.getResolver();
-				if (Debug.displayInfo)
-					System.out.println("----------------ModelQueryAdapterFactoryForHTML... baseLocation : " + resolver.getFileBaseLocation()); //$NON-NLS-1$
-
-				/**
-				 * XMLCatalogIdResolver currently requires a filesystem
-				 * location string. Customarily this will be what is in the
-				 * deprecated SSE URIResolver and required by the Common URI
-				 * Resolver.
-				 */
-				URIResolver idResolver = null;
-				if (resolver != null) {
-					idResolver = new XMLCatalogIdResolver(resolver.getFileBaseLocation(), resolver);
-				}
-				else {
-					/*
-					 * 203649 - this block may be necessary due to ordering of
-					 * setting the resolver into the model
-					 */
-					String baseLocation = null;
-					String modelsBaseLocation = model.getBaseLocation();
-					if (modelsBaseLocation != null) {
-						File file = new Path(modelsBaseLocation).toFile();
-						if (file.exists()) {
-							baseLocation = file.getAbsolutePath();
-						}
-						else {
-							IPath basePath = new Path(model.getBaseLocation());
-							IResource derivedResource = null;
-							if (basePath.segmentCount() > 1)
-								derivedResource = ResourcesPlugin.getWorkspace().getRoot().getFile(basePath);
-							else
-								derivedResource = ResourcesPlugin.getWorkspace().getRoot().getProject(basePath.segment(0));
-							IPath derivedPath = derivedResource.getLocation();
-							if (derivedPath != null) {
-								baseLocation = derivedPath.toString();
-							}
-							else {
-								URI uri = derivedResource.getLocationURI();
-								if (uri != null) {
-									baseLocation = uri.toString();
-								}
-							}
-						}
-						if(baseLocation == null) {
-							baseLocation = modelsBaseLocation;
-						}
-					}
-					idResolver = new XMLCatalogIdResolver(baseLocation, null);
-				}
-				CMDocumentCache documentCache = new CMDocumentCache();
-				ModelQuery modelQuery = new HTMLModelQueryImpl(documentCache, idResolver);
-				modelQuery.setEditMode(ModelQuery.EDIT_MODE_UNCONSTRAINED);
-				modelQueryAdapter = new ModelQueryAdapterImpl(documentCache, modelQuery, idResolver);
-			}
-		}
-		return modelQueryAdapter;
-	}
-
-
-
-	private final InternalModelStateListener getInternalModelStateListener() {
-		if (internalModelStateListener == null) {
-			internalModelStateListener = new InternalModelStateListener();
-		}
-		return internalModelStateListener;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java
deleted file mode 100644
index 44e2146..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.preferences;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.sse.core.internal.encoding.CommonCharsetNames;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-import org.eclipse.wst.sse.core.internal.validate.ValidationMessage;
-
-/**
- * Sets default values for HTML Core preferences
- */
-public class HTMLCorePreferenceInitializer extends AbstractPreferenceInitializer {
-
-	public void initializeDefaultPreferences() {
-		IEclipsePreferences node = new DefaultScope().getNode(HTMLCorePlugin.getDefault().getBundle().getSymbolicName());
-
-		// formatting preferences
-		node.putInt(HTMLCorePreferenceNames.LINE_WIDTH, 72);
-		node.putBoolean(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES, false);
-		node.put(HTMLCorePreferenceNames.INDENTATION_CHAR, HTMLCorePreferenceNames.TAB);
-		node.putInt(HTMLCorePreferenceNames.INDENTATION_SIZE, 1);
-		node.putBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS, false);
-		node.putBoolean(HTMLCorePreferenceNames.ALIGN_END_BRACKET, false);
-
-		// cleanup preferences
-		node.putInt(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE, HTMLCorePreferenceNames.ASIS);
-		node.putInt(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE, HTMLCorePreferenceNames.ASIS);
-		// node.putBoolean(HTMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS,
-		// true);
-		node.putBoolean(HTMLCorePreferenceNames.INSERT_REQUIRED_ATTRS, true);
-		node.putBoolean(HTMLCorePreferenceNames.INSERT_MISSING_TAGS, true);
-		node.putBoolean(HTMLCorePreferenceNames.QUOTE_ATTR_VALUES, true);
-		node.putBoolean(HTMLCorePreferenceNames.FORMAT_SOURCE, true);
-		node.putBoolean(HTMLCorePreferenceNames.CONVERT_EOL_CODES, false);
-
-		// code generation preferences
-		node.put(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$
-		String defaultEnc = "UTF-8";//$NON-NLS-1$
-		String systemEnc = System.getProperty("file.encoding"); //$NON-NLS-1$
-		if (systemEnc != null) {
-			defaultEnc = CommonCharsetNames.getPreferredDefaultIanaName(systemEnc, "UTF-8");//$NON-NLS-1$
-		}
-		node.put(CommonEncodingPreferenceNames.OUTPUT_CODESET, defaultEnc);
-		node.put(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$
-
-		node.putInt(HTMLCorePreferenceNames.TAG_NAME_CASE, HTMLCorePreferenceNames.LOWER);
-		node.putInt(HTMLCorePreferenceNames.ATTR_NAME_CASE, HTMLCorePreferenceNames.LOWER);
-
-		// this could be made smarter by actually looking up the content
-		// type's valid extensions
-		node.put(HTMLCorePreferenceNames.DEFAULT_EXTENSION, "html"); //$NON-NLS-1$
-		
-		initializeValidationPreferences(node);
-	}
-	
-	/**
-	 * Initializes the default validation preferences
-	 * @param node the Eclipse preference node
-	 */
-	private void initializeValidationPreferences(IEclipsePreferences node) {
-		// Attributes
-		node.putInt(HTMLCorePreferenceNames.ATTRIBUTE_UNDEFINED_NAME, ValidationMessage.WARNING);
-		node.putInt(HTMLCorePreferenceNames.ATTRIBUTE_UNDEFINED_VALUE, ValidationMessage.WARNING);
-		node.putInt(HTMLCorePreferenceNames.ATTRIBUTE_NAME_MISMATCH, ValidationMessage.WARNING);
-		node.putInt(HTMLCorePreferenceNames.ATTRIBUTE_INVALID_NAME, ValidationMessage.WARNING);
-		node.putInt(HTMLCorePreferenceNames.ATTRIBUTE_INVALID_VALUE, ValidationMessage.WARNING);
-		node.putInt(HTMLCorePreferenceNames.ATTRIBUTE_DUPLICATE, ValidationMessage.WARNING);
-		node.putInt(HTMLCorePreferenceNames.ATTRIBUTE_VALUE_MISMATCH, ValidationMessage.ERROR);
-		node.putInt(HTMLCorePreferenceNames.ATTRIBUTE_VALUE_UNCLOSED, ValidationMessage.WARNING);
-		
-		// Elements
-		node.putInt(HTMLCorePreferenceNames.ELEM_UNKNOWN_NAME, ValidationMessage.WARNING);
-		node.putInt(HTMLCorePreferenceNames.ELEM_INVALID_NAME, ValidationMessage.ERROR);
-		node.putInt(HTMLCorePreferenceNames.ELEM_START_INVALID_CASE, ValidationMessage.WARNING);
-		node.putInt(HTMLCorePreferenceNames.ELEM_END_INVALID_CASE, ValidationMessage.ERROR);
-		node.putInt(HTMLCorePreferenceNames.ELEM_MISSING_START, ValidationMessage.ERROR);
-		node.putInt(HTMLCorePreferenceNames.ELEM_MISSING_END, ValidationMessage.WARNING);
-		node.putInt(HTMLCorePreferenceNames.ELEM_UNNECESSARY_END, ValidationMessage.WARNING);
-		node.putInt(HTMLCorePreferenceNames.ELEM_INVALID_DIRECTIVE, ValidationMessage.ERROR);
-		node.putInt(HTMLCorePreferenceNames.ELEM_INVALID_CONTENT, ValidationMessage.WARNING);
-		node.putInt(HTMLCorePreferenceNames.ELEM_DUPLICATE, ValidationMessage.WARNING);
-		node.putInt(HTMLCorePreferenceNames.ELEM_COEXISTENCE, ValidationMessage.WARNING);
-		node.putInt(HTMLCorePreferenceNames.ELEM_UNCLOSED_START_TAG, ValidationMessage.ERROR);
-		node.putInt(HTMLCorePreferenceNames.ELEM_UNCLOSED_END_TAG, ValidationMessage.ERROR);
-		node.putInt(HTMLCorePreferenceNames.ELEM_INVALID_EMPTY_TAG, ValidationMessage.WARNING);
-		
-		// DOCTYPE
-		node.putInt(HTMLCorePreferenceNames.DOC_DUPLICATE, ValidationMessage.ERROR);
-		node.putInt(HTMLCorePreferenceNames.DOC_INVALID_CONTENT, ValidationMessage.WARNING);
-		node.putInt(HTMLCorePreferenceNames.DOC_DOCTYPE_UNCLOSED, ValidationMessage.ERROR);
-		
-		// Text
-		node.putInt(HTMLCorePreferenceNames.TEXT_INVALID_CONTENT, ValidationMessage.WARNING);
-		node.putInt(HTMLCorePreferenceNames.TEXT_INVALID_CHAR, ValidationMessage.WARNING);
-		
-		// Comment
-		node.putInt(HTMLCorePreferenceNames.COMMENT_INVALID_CONTENT, ValidationMessage.WARNING);
-		node.putInt(HTMLCorePreferenceNames.COMMENT_UNCLOSED, ValidationMessage.ERROR);
-		
-		// CDATA
-		node.putInt(HTMLCorePreferenceNames.CDATA_INVALID_CONTENT, ValidationMessage.WARNING);
-		node.putInt(HTMLCorePreferenceNames.CDATA_UNCLOSED, ValidationMessage.ERROR);
-		
-		// Processing Instructions
-		node.putInt(HTMLCorePreferenceNames.PI_INVALID_CONTENT, ValidationMessage.WARNING);
-		node.putInt(HTMLCorePreferenceNames.PI_UNCLOSED, ValidationMessage.ERROR);
-		
-		// Entity Reference
-		node.putInt(HTMLCorePreferenceNames.REF_UNDEFINED, ValidationMessage.WARNING);
-		node.putInt(HTMLCorePreferenceNames.REF_INVALID_CONTENT, ValidationMessage.WARNING);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java
deleted file mode 100644
index f4d3644..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.preferences;
-
-/**
- * Common preference keys used by HTML core
- * 
- * @plannedfor 1.0
- */
-public class HTMLCorePreferenceNames {
-	private HTMLCorePreferenceNames() {
-		// empty private constructor so users cannot instantiate class
-	}
-
-	/**
-	 * The default extension to use when none is specified in the New HTML
-	 * File Wizard.
-	 * <p>
-	 * Value is of type <code>String</code>.
-	 * </p>
-	 */
-	public static final String DEFAULT_EXTENSION = "defaultExtension"; //$NON-NLS-1$
-
-	/**
-	 * The maximum width of a line before a line split is needed.
-	 * <p>
-	 * Value is of type <code>Integer</code>.
-	 * </p>
-	 */
-	public static final String LINE_WIDTH = "lineWidth";//$NON-NLS-1$
-
-	/**
-	 * Indicates if all blanks lines should be cleared during formatting.
-	 * Blank lines will be kept when false.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String CLEAR_ALL_BLANK_LINES = "clearAllBlankLines";//$NON-NLS-1$
-
-	/**
-	 * The number of #INDENTATION_CHAR for 1 indentation.
-	 * <p>
-	 * Value is of type <code>Integer</code>.
-	 * </p>
-	 */
-	public static final String INDENTATION_SIZE = "indentationSize";//$NON-NLS-1$
-
-	/**
-	 * The character used for indentation.
-	 * <p>
-	 * Value is of type <code>String</code>.<br />
-	 * Possible values: {TAB, SPACE}
-	 * </p>
-	 */
-	public static final String INDENTATION_CHAR = "indentationChar";//$NON-NLS-1$
-
-	/**
-	 * Possible value for the preference #INDENTATION_CHAR. Indicates to use
-	 * tab character when formatting.
-	 * 
-	 * @see #SPACE
-	 * @see #INDENTATION_CHAR
-	 */
-	public static final String TAB = "tab"; //$NON-NLS-1$
-
-	/**
-	 * Possible value for the preference #INDENTATION_CHAR. Indicates to use
-	 * space character when formatting.
-	 * 
-	 * @see #TAB
-	 * @see #INDENTATION_CHAR
-	 */
-	public static final String SPACE = "space"; //$NON-NLS-1$
-
-	/**
-	 * Indicates if tags with multiple attributes should be formatted
-	 * (splitting each attr on a new line).
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String SPLIT_MULTI_ATTRS = "splitMultiAttrs";//$NON-NLS-1$
-
-	/**
-	 * Indicates if end brackets of start tags should be placed on a new line
-	 * if the start tag spans more than one line.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String ALIGN_END_BRACKET = "alignEndBracket";//$NON-NLS-1$
-
-	/**
-	 * Indicates whether or not cleanup processor should format source.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String FORMAT_SOURCE = "formatSource";//$NON-NLS-1$
-
-	/**
-	 * Indicates whether or not empty elements should be compressed during
-	 * cleanup.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String COMPRESS_EMPTY_ELEMENT_TAGS = "compressEmptyElementTags";//$NON-NLS-1$
-
-	/**
-	 * Indicates whether or not to insert required attributes during cleanup.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String INSERT_REQUIRED_ATTRS = "insertRequiredAttrs";//$NON-NLS-1$
-
-	/**
-	 * Indicates whether or not to insert missing tags during cleanup.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String INSERT_MISSING_TAGS = "insertMissingTags";//$NON-NLS-1$
-
-	/**
-	 * Indicates whether or not to quote all attribute values during cleanup.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String QUOTE_ATTR_VALUES = "quoteAttrValues";//$NON-NLS-1$
-
-	/**
-	 * Indicates whether or not to convert all line delimiters during cleanup.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String CONVERT_EOL_CODES = "convertEOLCodes";//$NON-NLS-1$
-
-	/**
-	 * Indicates the line delimiter to use during cleanup if converting line
-	 * delimiters.
-	 * <p>
-	 * Value is of type <code>String</code>.<br />
-	 * Possible values: {CR, CRLF, LF, NO_TRANSLATION}
-	 * </p>
-	 * 
-	 */
-	public static final String CLEANUP_EOL_CODE = "cleanupEOLCode";//$NON-NLS-1$
-
-	/**
-	 * Indicates case to use on all tag names during cleanup.
-	 * <p>
-	 * Value is of type <code>Integer</code>.<br />
-	 * Possible values: {LOWER, UPPER, ASIS}
-	 * </p>
-	 */
-	public static final String CLEANUP_TAG_NAME_CASE = "cleanupTagNameCase";//$NON-NLS-1$
-
-	/**
-	 * Indicates case to use on all attribute names during cleanup.
-	 * <p>
-	 * Value is of type <code>Integer</code>.<br />
-	 * Possible values: {LOWER, UPPER, ASIS}
-	 * </p>
-	 */
-	public static final String CLEANUP_ATTR_NAME_CASE = "cleanupAttrNameCase";//$NON-NLS-1$
-
-	/**
-	 * Preferred markup case for tag names in code generation
-	 * <p>
-	 * Value is of type <code>Integer</code>.<br />
-	 * Possible values: {LOWER, UPPER}
-	 * </p>
-	 */
-	public static final String TAG_NAME_CASE = "tagNameCase";//$NON-NLS-1$
-
-	/**
-	 * Preferred markup case for attribute names in code generation
-	 * <p>
-	 * Value is of type <code>Integer</code>.<br />
-	 * Possible values: {LOWER, UPPER}
-	 * </p>
-	 */
-	public static final String ATTR_NAME_CASE = "attrNameCase";//$NON-NLS-1$
-
-	/**
-	 * Possible value for the preference #TAG_NAME_CASE or #ATTR_NAME_CASE.
-	 * Indicates to leave case as is.
-	 * 
-	 * @see #LOWER
-	 * @see #UPPER
-	 * @see #TAG_NAME_CASE
-	 * @see #ATTR_NAME_CASE
-	 */
-	public static final int ASIS = 0;
-
-	/**
-	 * Possible value for the preference #TAG_NAME_CASE or #ATTR_NAME_CASE.
-	 * Indicates to make name lowercase.
-	 * 
-	 * @see #ASIS
-	 * @see #UPPER
-	 * @see #TAG_NAME_CASE
-	 * @see #ATTR_NAME_CASE
-	 */
-	public static final int LOWER = 1;
-
-	/**
-	 * Possible value for the preference #TAG_NAME_CASE or #ATTR_NAME_CASE.
-	 * Indicates to make name uppercase.
-	 * 
-	 * @see #LOWER
-	 * @see #ASIS
-	 * @see #TAG_NAME_CASE
-	 * @see #ATTR_NAME_CASE
-	 */
-	public static final int UPPER = 2;
-	
-	public static final String USE_PROJECT_SETTINGS = "use-project-settings";//$NON-NLS-1$
-	
-	public static final String ATTRIBUTE_UNDEFINED_NAME = "attrUndefName";//$NON-NLS-1$
-	public static final String ATTRIBUTE_UNDEFINED_VALUE = "attrUndefValue";//$NON-NLS-1$
-	public static final String ATTRIBUTE_NAME_MISMATCH = "attrNameMismatch";//$NON-NLS-1$
-	public static final String ATTRIBUTE_INVALID_NAME = "attrInvalidName";//$NON-NLS-1$
-	public static final String ATTRIBUTE_INVALID_VALUE = "attrInvalidValue";//$NON-NLS-1$
-	public static final String ATTRIBUTE_DUPLICATE = "attrDuplicate";//$NON-NLS-1$
-	public static final String ATTRIBUTE_VALUE_MISMATCH = "attrValueMismatch";//$NON-NLS-1$
-	public static final String ATTRIBUTE_VALUE_UNCLOSED = "attrValueUnclosed";//$NON-NLS-1$
-	
-	public static final String ELEM_UNKNOWN_NAME = "elemUnknownName";//$NON-NLS-1$
-	public static final String ELEM_INVALID_NAME = "elemInvalidName";//$NON-NLS-1$
-	public static final String ELEM_START_INVALID_CASE = "elemStartInvalidCase";//$NON-NLS-1$
-	public static final String ELEM_END_INVALID_CASE = "elemEndInvalidCase";//$NON-NLS-1$
-	public static final String ELEM_MISSING_START = "elemMissingStart";//$NON-NLS-1$
-	public static final String ELEM_MISSING_END = "elemMissingEnd";//$NON-NLS-1$
-	public static final String ELEM_UNNECESSARY_END = "elemUnnecessaryEnd";//$NON-NLS-1$
-	public static final String ELEM_INVALID_DIRECTIVE = "elemInvalidDirective";//$NON-NLS-1$
-	public static final String ELEM_INVALID_CONTENT = "elemInvalidContent";//$NON-NLS-1$
-	public static final String ELEM_DUPLICATE = "elemDuplicate";//$NON-NLS-1$
-	public static final String ELEM_COEXISTENCE = "elemCoexistence";//$NON-NLS-1$
-	public static final String ELEM_UNCLOSED_START_TAG = "elemUnclosedStartTag";//$NON-NLS-1$
-	public static final String ELEM_UNCLOSED_END_TAG = "elemUnclosedEndTag";//$NON-NLS-1$
-	public static final String ELEM_INVALID_EMPTY_TAG = "elemInvalidEmptyTag";//$NON-NLS-1$
-	
-	public static final String DOC_DUPLICATE = "docDuplicateTag";//$NON-NLS-1$
-	public static final String DOC_INVALID_CONTENT = "docInvalidContent";//$NON-NLS-1$
-	public static final String DOC_DOCTYPE_UNCLOSED = "docDoctypeUnclosed";//$NON-NLS-1$
-	
-	public static final String TEXT_INVALID_CONTENT = "docInvalidContent";//$NON-NLS-1$
-	public static final String TEXT_INVALID_CHAR = "docInvalidChar";//$NON-NLS-1$
-	
-	public static final String COMMENT_INVALID_CONTENT = "commentInvalidContent";//$NON-NLS-1$
-	public static final String COMMENT_UNCLOSED = "commentUnclosed";//$NON-NLS-1$
-	
-	public static final String CDATA_INVALID_CONTENT = "cdataInvalidContent";//$NON-NLS-1$
-	public static final String CDATA_UNCLOSED = "cdataUnclosed";//$NON-NLS-1$
-	
-	public static final String PI_INVALID_CONTENT = "piInvalidContent";//$NON-NLS-1$
-	public static final String PI_UNCLOSED = "piUnclosed";//$NON-NLS-1$
-	
-	public static final String REF_INVALID_CONTENT = "refInvalidContent";//$NON-NLS-1$
-	public static final String REF_UNDEFINED = "piUndefined";//$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTML40Namespace.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTML40Namespace.java
deleted file mode 100644
index 5d1a53a..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTML40Namespace.java
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLCMProperties.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLCMProperties.java
deleted file mode 100644
index 1d7a753..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLCMProperties.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.provisional;
-
-
-/**
- * HTMLCMProperties defines all property names and pre-defined values in HTML CM.
- * All of those properties can be retreived from element declarations of HTML CM
- * via CMNode#getProperty(String propName).
- */
-public interface HTMLCMProperties {
-
-	/**
-	 * "shouldIgnoreCase" returns java.lang.Boolean object.
-	 */
-	public static final String SHOULD_IGNORE_CASE = "shouldIgnoreCase";//$NON-NLS-1$
-	/**
-	 * "shouldKeepSpace" returns java.lang.Boolean object.
-	 */
-	public static final String SHOULD_KEEP_SPACE = "shouldKeepSpace";//$NON-NLS-1$
-	/**
-	 * "indentChildSource" returns java.lang.Boolean object.
-	 */
-	public static final String SHOULD_INDENT_CHILD_SOURCE = "shouldIndentChildSource";//$NON-NLS-1$
-	/**
-	 * "terminators" returns java.util.Iterator (an array of String objects).
-	 */
-	public static final String TERMINATORS = "terminators";//$NON-NLS-1$
-	/**
-	 * "contentHint" returns CMElementDeclaration instnace.
-	 */
-	public static final String CONTENT_HINT = "contentHint";//$NON-NLS-1$
-	/**
-	 * "prohibitedAncestors" returns org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap.
-	 */
-	public static final String PROHIBITED_ANCESTORS = "prohibitedAncestors";//$NON-NLS-1$
-	/**
-	 * "isJSP" returns java.lang.Boolean object.
-	 */
-	public static final String IS_JSP = "isJSP";//$NON-NLS-1$
-	/**
-	 * "isXHTML" returns java.lang.Boolean object.
-	 */
-	public static final String IS_XHTML = "isXHTML";//$NON-NLS-1$
-	/**
-	 * "isSSI" returns java.lang.Boolean object.
-	 */
-	public static final String IS_SSI = "isSSI";//$NON-NLS-1$
-	/**
-	 * "lineBreakHint" returns String (one of pre-defined values in Values).
-	 */
-	public static final String LINE_BREAK_HINT = "lineBreakHint";//$NON-NLS-1$
-	/**
-	 * "layoutType" returns String (one of pre-defined values in Values).
-	 */
-	public static final String LAYOUT_TYPE = "layoutType";//$NON-NLS-1$
-	/**
-	 * "tagInfo" returns String (documentation for this element).
-	 */
-	public static final String TAGINFO = "tagInfo";//$NON-NLS-1$
-	/**
-	 * "omitType" returns String (one of pre-defined values in Values).
-	 */
-	public static final String OMIT_TYPE = "omitType";//$NON-NLS-1$
-	/**
-	 * "inclusion" returns org.eclipse.wst.xml.core.internal.contentmodel.CMContent.
-	 */
-	public static final String INCLUSION = "inclusion";//$NON-NLS-1$
-	/**
-	 * "isScriptable" returns java.lang.Boolean object.
-	 */
-	public static final String IS_SCRIPTABLE = "isScriptable"; //$NON-NLS-1$
-
-	public static interface Values {
-		/*
-		 * for LINE_BREAK_HINT = "lineBreakHint".
-		 */
-		public static final String BREAK_NONE = "breakNone";//$NON-NLS-1$
-		public static final String BREAK_AFTER_START = "breakAfterStart";//$NON-NLS-1$
-		public static final String BREAK_BEFORE_START_AND_AFTER_END = "breakBeforeStartAndAfterEnd";//$NON-NLS-1$
-		/*
-		 * for LAYOUT_TYPE = "layoutType"
-		 */
-		public static final String LAYOUT_BLOCK = "layoutBlock";//$NON-NLS-1$
-		/** BR */
-		public static final String LAYOUT_BREAK = "layoutBreak";//$NON-NLS-1$
-		/** Hidden object; like HTML or HEAD */
-		public static final String LAYOUT_HIDDEN = "layoutHidden";//$NON-NLS-1$
-		public static final String LAYOUT_NONE = "layoutNone";//$NON-NLS-1$
-		/** No wrap object; like IMG, APPLET,... */
-		public static final String LAYOUT_OBJECT = "layoutObject";//$NON-NLS-1$
-		public static final String LAYOUT_WRAP = "layoutWrap";//$NON-NLS-1$
-		/*
-		 * for OMIT_TYPE = "omitType"
-		 */
-		/** Not ommisible. */
-		public static final String OMIT_NONE = "omitNone";//$NON-NLS-1$
-		/** Both tags are ommisible. */
-		public static final String OMIT_BOTH = "omitBoth";//$NON-NLS-1$
-		/** The end tag is ommisible. */
-		public static final String OMIT_END = "omitEnd";//$NON-NLS-1$
-		/** The end tag is ommitted when created. */
-		public static final String OMIT_END_DEFAULT = "omitEndDefault";//$NON-NLS-1$
-		/** The end tag must be omitted. */
-		public static final String OMIT_END_MUST = "omitEndMust";//$NON-NLS-1$
-
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFilesPreferenceNames.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFilesPreferenceNames.java
deleted file mode 100644
index 88bb2ea..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFilesPreferenceNames.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.wst.html.core.internal.provisional;
-
-import org.eclipse.core.runtime.IProduct;
-import org.eclipse.core.runtime.Platform;
-
-/**
- * @deprecated not used in WTP
- */
-public interface HTMLFilesPreferenceNames {
-
-	static final String DEFAULT_SUFFIX = "defaultSuffix";//$NON-NLS-1$
-	static final String HTML_SUFFIX = "html";//$NON-NLS-1$
-	static final String GENERATE_DOCUMENT_TYPE = "generateDocumentType";//$NON-NLS-1$
-	static final String GENERATE_GENERATOR = "generateGenerator";//$NON-NLS-1$
-	// added this as a potential way to handle changing
-	// product names "up" the stack. Note, not declared final 
-	// to avoid getting 'inlined' by compiler.
-	static IProduct product = Platform.getProduct();
-	// Platform.getProduct() is spec'd so it might return null.
-	// Its expected for any final product it would not be, so we'll return 
-	// "WTP" for development/interim builds. No need to translate. 
-	static String GENERATOR = (product == null) ? "WTP": product.getName(); //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFormatContraints.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFormatContraints.java
deleted file mode 100644
index db3217e..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFormatContraints.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.wst.html.core.internal.provisional;
-
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatContraints;
-
-/**
- * @deprecated
- * Please un-deprecate this if Page Designer thinks they are needed.
- */
-public interface HTMLFormatContraints extends IStructuredFormatContraints {
-	/**
-	 * @deprecated
-	 * 	It's very hard to keep the available line width accurate.
-	 * 	Sometimes a node wants to start on a new line, sometimes it doesn't.
-	 * 	It's best for the node to figure out the available line width on the fly.
-	 */
-	int getAvailableLineWidth();
-
-	/**
-	 * @deprecated
-	 * 	It's very hard to keep the available line width accurate.
-	 * 	Sometimes a node wants to start on a new line, sometimes it doesn't.
-	 * 	It's best for the node to figure out the available line width on the fly.
-	 */
-	void setAvailableLineWidth(int availableLineWidth);
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/PreferenceNames.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/PreferenceNames.java
deleted file mode 100644
index 5d1018a..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/PreferenceNames.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.wst.html.core.internal.provisional;
-
-
-public interface PreferenceNames {
-
-	String TRUE = "true"; //$NON-NLS-1$
-	String FALSE = "false"; //$NON-NLS-1$
-	String YES = "yes"; //$NON-NLS-1$
-	String NO = "no"; //$NON-NLS-1$
-
-
-	String SETTINGS = "settings"; //$NON-NLS-1$
-
-	String TREEVIEW = "treeview"; //$NON-NLS-1$
-	String DEFAULT_DEPTH = "defaultdepth"; //$NON-NLS-1$
-
-	String ASIS = "as-is"; //$NON-NLS-1$
-	String LOWER = "lower"; //$NON-NLS-1$
-	String UPPER = "upper"; //$NON-NLS-1$
-
-	String PREFERRED_CASE = "preferred-case"; //$NON-NLS-1$
-	String TAGNAME = "tagname"; //$NON-NLS-1$
-	String ATTRIBUTENAME = "attributename"; //$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/contenttype/ContentTypeFamilyForHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/contenttype/ContentTypeFamilyForHTML.java
deleted file mode 100644
index 35f17ff..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/contenttype/ContentTypeFamilyForHTML.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.html.core.internal.provisional.contenttype;
-
-/**
- * The value of the contenttype id field must match what is specified in
- * plugin.xml file. Note: this value is intentially set with default protected
- * method so it will not be inlined.
- */
-
-public class ContentTypeFamilyForHTML {
-	/**
-	 * The value of the contenttype id field must match what is specified in
-	 * plugin.xml file. Note: this value is intentially not declared as final,
-	 * so it will not be inlined.
-	 */
-	public final static String HTML_FAMILY = getConstantString();
-
-	/**
-	 * Don't allow instantiation.
-	 */
-	private ContentTypeFamilyForHTML() {
-		super();
-	}
-
-	static String getConstantString() {
-		return "org.eclipse.wst.html.core.contentfamily.html"; //$NON-NLS-1$
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/contenttype/ContentTypeIdForHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/contenttype/ContentTypeIdForHTML.java
deleted file mode 100644
index 6649119..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/contenttype/ContentTypeIdForHTML.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.html.core.internal.provisional.contenttype;
-
-/**
- * The value of the contenttype id field must match what is specified in
- * plugin.xml file. Note: this value is intentially set with default protected
- * method so it will not be inlined.
- */
-
-public class ContentTypeIdForHTML {
-	/**
-	 * The value of the contenttype id field must match what is specified in
-	 * plugin.xml file. Note: this value is intentially not declared as final,
-	 * so it will not be inlined.
-	 */
-	public final static String ContentTypeID_HTML = getConstantString();
-
-	/**
-	 * Don't allow instantiation.
-	 */
-	private ContentTypeIdForHTML() {
-		super();
-	}
-
-	static String getConstantString() {
-		return "org.eclipse.wst.html.core.htmlsource"; //$NON-NLS-1$
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/text/IHTMLPartitionTypes.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/text/IHTMLPartitionTypes.java
deleted file mode 100644
index 50f61db..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/text/IHTMLPartitionTypes.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.provisional.text;
-
-
-/**
- * This interface is not intended to be implemented. It defines the partition
- * types for HTML. Clients should reference the partition type Strings defined
- * here directly.
- * 
- * @deprecated use org.eclipse.wst.html.core.text.IHTMLPartitions
- */
-public interface IHTMLPartitionTypes {
-
-	String HTML_DEFAULT = "org.eclipse.wst.html.HTML_DEFAULT"; //$NON-NLS-1$
-	String HTML_DECLARATION = "org.eclipse.wst.html.HTML_DECLARATION"; //$NON-NLS-1$
-	String HTML_COMMENT = "org.eclipse.wst.html.HTML_COMMENT"; //$NON-NLS-1$
-
-	String SCRIPT = "org.eclipse.wst.html.SCRIPT"; //$NON-NLS-1$
-	String STYLE = "org.eclipse.wst.html.STYLE"; //$NON-NLS-1$
-
-	// ISSUE: I think meta tag areas are here too?
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/text/StructuredTextPartitionerForHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/text/StructuredTextPartitionerForHTML.java
deleted file mode 100644
index fdde5c7..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/text/StructuredTextPartitionerForHTML.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.text;
-
-import java.util.Locale;
-
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.wst.css.core.text.ICSSPartitions;
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.html.core.text.IHTMLPartitions;
-import org.eclipse.wst.sse.core.internal.parser.ForeignRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredTextPartitioner;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.internal.text.IRegionComparible;
-import org.eclipse.wst.sse.core.internal.text.rules.IStructuredTypedRegion;
-import org.eclipse.wst.sse.core.internal.util.ScriptLanguageKeys;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.core.internal.text.rules.StructuredTextPartitionerForXML;
-
-/**
- * Document partitioner for HTML. Client-side scripts of type JavaScript are
- * reported as ST_SCRIPT, all others for <script language="foo" type="foo2">
- * as SCRIPT.language:FOO and SCRIPT.type:FOO2.
- */
-public class StructuredTextPartitionerForHTML extends StructuredTextPartitionerForXML implements IStructuredTextPartitioner {
-
-	private final static String[] configuredContentTypes = new String[]{IHTMLPartitions.HTML_DEFAULT, IHTMLPartitions.HTML_DECLARATION, IHTMLPartitions.HTML_COMMENT, IHTMLPartitions.SCRIPT, ICSSPartitions.STYLE,IHTMLPartitions.SCRIPT_EVENTHANDLER};
-
-	public static final String JAVASCRIPT = "javascript"; //$NON-NLS-1$
-	public static final String JAVASCRIPT_APPLICATION = "application/x-javascript"; //$NON-NLS-1$
-	
-	private static final String[] EVENT_ATTRIBUTE_NAMES = 
-		{HTML40Namespace.ATTR_NAME_ONCLICK, 
-		HTML40Namespace.ATTR_NAME_ONDBLCLICK,
-		HTML40Namespace.ATTR_NAME_ONMOUSEDOWN,
-		HTML40Namespace.ATTR_NAME_ONMOUSEUP,
-		HTML40Namespace.ATTR_NAME_ONMOUSEOVER,
-		HTML40Namespace.ATTR_NAME_ONMOUSEMOVE,
-		HTML40Namespace.ATTR_NAME_ONMOUSEOUT,
-		HTML40Namespace.ATTR_NAME_ONKEYPRESS,
-		HTML40Namespace.ATTR_NAME_ONKEYDOWN,
-		HTML40Namespace.ATTR_NAME_ONKEYUP,
-		HTML40Namespace.ATTR_NAME_ONHELP};
-	
-	public StructuredTextPartitionerForHTML() {
-		super();
-	}
-
-	public IStructuredTypedRegion createPartition(int offset, int length, String type) {
-		if (type == IHTMLPartitions.SCRIPT) {
-			IStructuredDocumentRegion node = fStructuredDocument.getRegionAtCharacterOffset(offset);
-			if (node != null) {
-				String stype = getScriptingPartitionType(node);
-				return super.createPartition(offset, length, stype);
-			}
-		}
-		return super.createPartition(offset, length, type);
-	}
-
-	protected void setInternalPartition(int offset, int length, String type) {
-		String localType = type;
-		if (type == IHTMLPartitions.SCRIPT) {
-			IStructuredDocumentRegion node = fStructuredDocument.getRegionAtCharacterOffset(offset);
-			if (node != null) {
-				localType = getScriptingPartitionType(node);
-			}
-		}
-		super.setInternalPartition(offset, length, localType);
-	}
-
-	private String getScriptingPartitionType(IStructuredDocumentRegion coreNode) {
-		String language = null;
-		String type = null;
-		String result = IHTMLPartitions.SCRIPT;
-		IStructuredDocumentRegion node = coreNode;
-		ITextRegion attrNameRegion = null;
-		while (node != null && isValidScriptingRegionType(node.getType())) {
-			node = node.getPrevious();
-		}
-
-		ITextRegionList regions = node.getRegions();
-		if (regions.size() > 4 && regions.get(1).getType() == DOMRegionContext.XML_TAG_NAME) {
-			ITextRegion potentialLanguageRegion = regions.get(1);
-			String potentialLanguageString = node.getText(potentialLanguageRegion);
-			if (potentialLanguageString.equalsIgnoreCase(HTML40Namespace.ElementName.SCRIPT)) {
-				for (int i = 0; i < regions.size(); i++) {
-					ITextRegion region = regions.get(i);
-					String regionType = region.getType();
-					if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME)
-						attrNameRegion = region;
-					else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-						String attrName = node.getText(attrNameRegion);
-						if (attrName.equalsIgnoreCase(HTML40Namespace.ATTR_NAME_LANGUAGE))
-							language = StringUtils.strip(node.getText(region));
-						else if (attrName.equalsIgnoreCase(HTML40Namespace.ATTR_NAME_TYPE)) {
-							type = StringUtils.strip(node.getText(region));
-							break;
-						}
-						attrNameRegion = null;
-					}
-				}
-			}
-		}
-		if (type != null)
-			result = lookupScriptType(type);
-		else if (language != null)
-			result = lookupScriptLanguage(language);
-		return result;
-	}
-
-	private boolean isValidScriptingRegionType(String type) {
-		return type == DOMRegionContext.BLOCK_TEXT || type == DOMRegionContext.XML_CDATA_OPEN || type == DOMRegionContext.XML_CDATA_TEXT || type == DOMRegionContext.XML_CDATA_CLOSE;
-	}
-
-	protected void initLegalContentTypes() {
-		fSupportedTypes = getConfiguredContentTypes();
-	}
-
-	private String lookupScriptType(String type) {
-		for (int i = 0; i < ScriptLanguageKeys.JAVASCRIPT_MIME_TYPE_KEYS.length; i++)
-			if (ScriptLanguageKeys.JAVASCRIPT_MIME_TYPE_KEYS[i].equalsIgnoreCase(type))
-				return IHTMLPartitions.SCRIPT;
-		return IHTMLPartitions.SCRIPT + ".type." + type.toUpperCase(Locale.ENGLISH); //$NON-NLS-1$
-	}
-
-	private String lookupScriptLanguage(String language) {
-		for (int i = 0; i < ScriptLanguageKeys.JAVASCRIPT_LANGUAGE_KEYS.length; i++)
-			if (ScriptLanguageKeys.JAVASCRIPT_LANGUAGE_KEYS[i].equalsIgnoreCase(language))
-				return IHTMLPartitions.SCRIPT;
-		return IHTMLPartitions.SCRIPT + ".language." + language.toUpperCase(Locale.ENGLISH); //$NON-NLS-1$
-	}
-
-	public String getPartitionType(ITextRegion region, int offset) {
-		String result = null;
-		if (region.getType() == DOMRegionContext.XML_COMMENT_TEXT || region.getType() == DOMRegionContext.XML_COMMENT_OPEN)
-			result = IHTMLPartitions.HTML_COMMENT;
-		else if (region.getType() == DOMRegionContext.XML_DOCTYPE_DECLARATION || region.getType() == DOMRegionContext.XML_DECLARATION_OPEN)
-			result = IHTMLPartitions.HTML_DECLARATION;
-		else if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE && isScriptAttributeValue(region, offset))
-			result = IHTMLPartitions.SCRIPT_EVENTHANDLER;
-		else
-			result = super.getPartitionType(region, offset);
-		return result;
-	}
-
-	public String getPartitionTypeBetween(IStructuredDocumentRegion previousNode, IStructuredDocumentRegion nextNode) {
-		
-		ITextRegion previousStartTagNameRegion = null;
-		ITextRegion nextEndTagNameRegion = null;
-		
-		ITextRegion[] regions = previousNode.getRegions().toArray();
-		for (int i = 0; i < regions.length; i++) {
-			if(regions[i].getType() == DOMRegionContext.XML_TAG_NAME) {
-				previousStartTagNameRegion = regions[i];
-				break;
-			}
-		}
-		regions = nextNode.getRegions().toArray();
-		for (int i = 0; i < regions.length; i++) {
-			if(regions[i].getType() == DOMRegionContext.XML_TAG_NAME) {
-				nextEndTagNameRegion = regions[i];
-				break;
-			}
-		}
-		
-		if(previousStartTagNameRegion == null || nextEndTagNameRegion == null)
-			return IHTMLPartitions.HTML_DEFAULT;
-		
-		String name1 = previousNode.getText(previousStartTagNameRegion);
-		String name2 = nextNode.getText(nextEndTagNameRegion);
-		if (name1.equalsIgnoreCase(HTML40Namespace.ElementName.SCRIPT) && name2.equalsIgnoreCase(HTML40Namespace.ElementName.SCRIPT))
-			//			return ST_SCRIPT;
-			return getScriptingPartitionType(fStructuredDocument.getRegionAtCharacterOffset(previousNode.getStartOffset(previousStartTagNameRegion)));
-		else if (name1.equalsIgnoreCase(HTML40Namespace.ElementName.STYLE) && name2.equalsIgnoreCase(HTML40Namespace.ElementName.STYLE))
-			return ICSSPartitions.STYLE;
-		return super.getPartitionTypeBetween(previousNode, nextNode);
-	}
-
-
-	protected String getPartitionType(ForeignRegion region, int offset) {
-		String tagname = region.getSurroundingTag();
-		String result = null;
-		// tagname should not be null,
-		// but see https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=4911
-		if (tagname == null) {
-			result = getUnknown();
-		}
-		else if (tagname.equalsIgnoreCase(HTML40Namespace.ElementName.SCRIPT))
-			result = IHTMLPartitions.SCRIPT;
-		else if (tagname.equalsIgnoreCase(HTML40Namespace.ElementName.STYLE))
-			result = ICSSPartitions.STYLE;
-		else if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE && isScriptAttributeValue(region, offset))
-			result = IHTMLPartitions.SCRIPT_EVENTHANDLER;
-		else
-			result = super.getPartitionType(region, offset);
-
-		return result;
-	}
-
-	public String getDefaultPartitionType() {
-		return IHTMLPartitions.HTML_DEFAULT;
-	}
-
-	public IDocumentPartitioner newInstance() {
-		return new StructuredTextPartitionerForHTML();
-	}
-
-	/**
-	 * @return
-	 */
-	public static String[] getConfiguredContentTypes() {
-		return configuredContentTypes;
-	}
-	
-	private boolean isScriptAttributeValue(ITextRegion region, int offset) {
-		if (region.getType() != DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE)
-			return false;
-
-		return isAttributeNameForValueAnEventScript(region, offset);
-	}
-
-	private boolean isAttributeNameForValueAnEventScript(ITextRegion attrValueRegion, int offset) {
-		IStructuredDocumentRegion node = fStructuredDocument.getRegionAtCharacterOffset(offset);
-		ITextRegionList regionList = node.getRegions();
-		int currentIndex = regionList.indexOf(attrValueRegion);
-
-		/*
-		 * 4 is the minimum index allowing for the tag's open, name, attribute
-		 * name and equals character to appear first
-		 */
-		if (currentIndex < 4)
-			return false;
-		ITextRegion tagAttrNameRegion = regionList.get(currentIndex - 2);
-		
-		boolean isEvent = false;
-		if (fStructuredDocument instanceof IRegionComparible) {
-			int start = node.getStartOffset(tagAttrNameRegion);
-			for (int i = 0; !isEvent && i < EVENT_ATTRIBUTE_NAMES.length; i++) {
-				isEvent = ((IRegionComparible) fStructuredDocument).regionMatchesIgnoreCase(start, tagAttrNameRegion.getTextLength(), EVENT_ATTRIBUTE_NAMES[i]);
-			}
-		}
-		else {
-			String tagAttrName = node.getText(tagAttrNameRegion);
-			isEvent = StringUtils.contains(EVENT_ATTRIBUTE_NAMES, tagAttrName, false);
-		}
-		return isEvent;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/AbstractErrorInfo.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/AbstractErrorInfo.java
deleted file mode 100644
index 3e9d85d..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/AbstractErrorInfo.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-import org.eclipse.wst.sse.core.internal.validate.ErrorInfo;
-
-abstract class AbstractErrorInfo implements ErrorInfo, ErrorState {
-
-
-	private int state = NONE_ERROR;
-	private Segment seg = null;
-
-	public AbstractErrorInfo(int state, Segment seg) {
-		super();
-		this.state = state;
-		this.seg = seg;
-	}
-
-	abstract public String getHint();
-
-	abstract public short getTargetType();
-
-	public int getLength() {
-		return (seg == null) ? 0 : seg.getLength();
-	}
-
-	public int getOffset() {
-		return (seg == null) ? 0 : seg.getOffset();
-	}
-
-	public int getState() {
-		return this.state;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CMUtil.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CMUtil.java
deleted file mode 100644
index 1809abd..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CMUtil.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.modelquery.HMQUtil;
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-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;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-final class CMUtil {
-
-	/**
-	 * Never instantiate!
-	 */
-	private CMUtil() {
-		super();
-	}
-
-	/**
-	 * You cannot always retrieve HTMLElementDeclaration via an Element instance.
-	 * Because, it occasionally a JSP custom tag. -- 9/7/2001
-	 */
-	public static CMElementDeclaration getDeclaration(Element target) {
-		Document doc = target.getOwnerDocument();
-		ModelQuery query = ModelQueryUtil.getModelQuery(doc);
-		return query.getCMElementDeclaration(target);
-	}
-
-	/**
-	 */
-	public static boolean isCaseSensitive(CMElementDeclaration decl) {
-		if (decl == null || (!decl.supports(HTMLCMProperties.SHOULD_IGNORE_CASE)))
-			return false;
-		return !((Boolean) decl.getProperty(HTMLCMProperties.SHOULD_IGNORE_CASE)).booleanValue();
-	}
-
-	/**
-	 */
-	private static boolean isChild(CMContent content, CMElementDeclaration target) {
-		switch (content.getNodeType()) {
-			case CMNode.ELEMENT_DECLARATION :
-				if (isWholeTagOmissible((CMElementDeclaration) content))
-					if (isChild(((CMElementDeclaration) content).getContent(), target))
-						return true;
-				return isSameDeclaration((CMElementDeclaration) content, target);
-			case CMNode.GROUP :
-				CMNodeList children = ((CMGroup) content).getChildNodes();
-				for (int i = 0; i < children.getLength(); i++) {
-					CMNode child = children.item(i);
-					switch (child.getNodeType()) {
-						case CMNode.ELEMENT_DECLARATION :
-							if (isWholeTagOmissible((CMElementDeclaration) child))
-								if (isChild(((CMElementDeclaration) child).getContent(), target))
-									return true;
-							if (isSameDeclaration((CMElementDeclaration) child, target))
-								return true;
-							continue; // Go next child.
-						case CMNode.GROUP :
-							if (isChild((CMContent) child, target))
-								return true;
-							continue; // Go next child.
-						default :
-							continue; // Go next child.
-					}
-				}
-		}
-		return false;
-	}
-
-	/**
-	 */
-	public static boolean isEndTagOmissible(CMElementDeclaration decl) {
-		if (!(decl.supports(HTMLCMProperties.OMIT_TYPE)))
-			return false;
-		String omitType = (String) decl.getProperty(HTMLCMProperties.OMIT_TYPE);
-		return !omitType.equals(HTMLCMProperties.Values.OMIT_NONE);
-	}
-
-	/**
-	 */
-	public static boolean isWholeTagOmissible(CMElementDeclaration decl) {
-		if (!(decl.supports(HTMLCMProperties.OMIT_TYPE)))
-			return false;
-		String omitType = (String) decl.getProperty(HTMLCMProperties.OMIT_TYPE);
-		return omitType.equals(HTMLCMProperties.Values.OMIT_BOTH);
-	}
-	
-	/**
-	 */
-	public static boolean isJSP(CMElementDeclaration decl) {
-		if (!decl.supports(HTMLCMProperties.IS_JSP))
-			return false;
-		return ((Boolean) decl.getProperty(HTMLCMProperties.IS_JSP)).booleanValue();
-	}
-
-	/**
-	 */
-	public static boolean isXHTML(CMElementDeclaration decl) {
-		if (!decl.supports(HTMLCMProperties.IS_XHTML))
-			return false;
-		return ((Boolean) decl.getProperty(HTMLCMProperties.IS_XHTML)).booleanValue();
-	}
-
-	/**
-	 * The method to distinguish HTML and XHTML from other mark up.
-	 * This method returns true if the target is,
-	 * (1) not JSP,
-	 * (2) not SSI.
-	 */
-	public static boolean isHTML(CMElementDeclaration decl) {
-		return (!isJSP(decl)) && (!isSSI(decl));
-	}
-
-	/**
-	 */
-	private static boolean isSameDeclaration(CMElementDeclaration aDec, CMElementDeclaration otherDec) {
-		return aDec.getElementName() == otherDec.getElementName();
-	}
-
-	/**
-	 */
-	public static boolean isSSI(CMElementDeclaration edec) {
-		if (edec == null)
-			return false;
-		if (!edec.supports(HTMLCMProperties.IS_SSI))
-			return false;
-		return ((Boolean) edec.getProperty(HTMLCMProperties.IS_SSI)).booleanValue();
-	}
-
-	/**
-	 * Call this method only when the parent content type is one of
-	 * the following: ANY, ELEMENT, or MIXED.
-	 */
-	public static boolean isValidChild(CMElementDeclaration parent, CMElementDeclaration child) {
-		if (parent == null || child == null)
-			return false;
-		if (isHTML(parent) && (!isHTML(child)))
-			return true;
-		CMContent content = parent.getContent();
-		if (content == null)
-			return false;
-		return isChild(content, child);
-	}
-
-	public static boolean isForeign(Element target) {
-		if (!(target instanceof IDOMElement))
-			return true;
-		IDOMElement element = (IDOMElement) target;
-		return !element.isGlobalTag();
-	}
-
-	/**
-	 * This method returns true if all of the following conditions are met:
-	 * (1) value type is ENUM,
-	 * (2) only one value is defined in the enumeration,
-	 * (3) the value has same name to the attribute name.
-	 */
-	public static boolean isBooleanAttr(CMAttributeDeclaration adec) {
-		CMDataType attrtype = adec.getAttrType();
-		if (attrtype == null)
-			return false;
-		if (attrtype.getDataTypeName() != CMDataType.ENUM)
-			return false;
-		String[] values = attrtype.getEnumeratedValues();
-		if (values.length != 1)
-			return false;
-		return values[0].equals(adec.getAttrName());
-	}
-
-	public static boolean isValidInclusion(CMElementDeclaration decl, Element parent) {
-		Iterator iter = HMQUtil.getInclusions(parent).iterator();
-		while (iter.hasNext()) {
-			CMElementDeclaration inclusion = (CMElementDeclaration) iter.next();
-			if (isSameDeclaration(decl, inclusion))
-				return true;
-		}
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CompositeValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CompositeValidator.java
deleted file mode 100644
index b0e7523..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CompositeValidator.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-import java.util.Iterator;
-import java.util.Vector;
-
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.validate.ValidationAdapter;
-import org.eclipse.wst.sse.core.internal.validate.ValidationReporter;
-import org.eclipse.wst.xml.core.internal.validate.ValidationComponent;
-
-abstract class CompositeValidator extends ValidationComponent {
-
-	protected Vector components = new Vector();
-
-	/**
-	 * CompositeValidator constructor comment.
-	 */
-	public CompositeValidator() {
-		super();
-	}
-
-	/**
-	 */
-	public void setReporter(ValidationReporter reporter) {
-		super.setReporter(reporter);
-
-		Iterator i = components.iterator();
-		while (i.hasNext()) {
-			ValidationAdapter component = (ValidationAdapter) i.next();
-			if (component == null)
-				continue;
-			component.setReporter(reporter);
-		}
-	}
-
-	/**
-	 */
-	public void validate(IndexedRegion node) {
-		Iterator i = components.iterator();
-		while (i.hasNext()) {
-			ValidationComponent component = (ValidationComponent) i.next();
-			if (component == null)
-				continue;
-			component.validate(node);
-		}
-	}
-
-	/**
-	 */
-	void add(ValidationComponent validator) {
-		components.add(validator);
-	}
-
-	/**
-	 * This method registers all components in 'validators'.
-	 * Each derivative must call this methid in its constructor.
-	 */
-	protected void register(ValidationComponent[] validators) {
-		for (int i = 0; i < validators.length; i++) {
-			if (validators[i] != null)
-				add(validators[i]);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/DocumentPropagatingValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/DocumentPropagatingValidator.java
deleted file mode 100644
index 562915b..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/DocumentPropagatingValidator.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.validate.ValidationAdapter;
-import org.eclipse.wst.sse.core.internal.validate.ValidationReporter;
-import org.eclipse.wst.xml.core.internal.validate.AbstractPropagatingValidator;
-import org.eclipse.wst.xml.core.internal.validate.ValidationComponent;
-
-class DocumentPropagatingValidator extends AbstractPropagatingValidator {
-
-
-	private ValidationComponent validator = new HTMLSimpleDocumentValidator();
-	private ElementPropagatingValidator propagatee = new ElementPropagatingValidator();
-
-	public DocumentPropagatingValidator() {
-		super();
-	}
-
-	public void validate(IndexedRegion node) {
-		getPropagatee().setReporter(this.reporter);
-		super.validate(node);
-	}
-
-	public boolean isAdapterForType(Object type) {
-		return (type == DocumentPropagatingValidator.class || super.isAdapterForType(type));
-	}
-
-	public void setReporter(ValidationReporter reporter) {
-		super.setReporter(reporter);
-		validator.setReporter(reporter);
-		propagatee.setReporter(reporter);
-	}
-
-	protected final ValidationComponent getPropagatee() {
-		return propagatee;
-	}
-
-	protected final ValidationAdapter getValidator() {
-		return validator;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ElementPropagatingValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ElementPropagatingValidator.java
deleted file mode 100644
index c290b62..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ElementPropagatingValidator.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-
-import org.eclipse.wst.sse.core.internal.validate.ValidationAdapter;
-import org.eclipse.wst.sse.core.internal.validate.ValidationReporter;
-import org.eclipse.wst.xml.core.internal.validate.AbstractPropagatingValidator;
-import org.eclipse.wst.xml.core.internal.validate.ValidationComponent;
-
-class ElementPropagatingValidator extends AbstractPropagatingValidator {
-
-
-	private ValidationComponent validator = new HTMLSimpleValidator();
-
-	public ElementPropagatingValidator() {
-		super();
-	}
-
-	public boolean isAdapterForType(Object type) {
-		return (type == ElementPropagatingValidator.class || super.isAdapterForType(type));
-	}
-
-	public void setReporter(ValidationReporter reporter) {
-		super.setReporter(reporter);
-		validator.setReporter(reporter);
-	}
-
-	protected ValidationComponent getPropagatee() {
-		return this;
-	}
-
-	protected ValidationAdapter getValidator() {
-		return validator;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorInfoImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorInfoImpl.java
deleted file mode 100644
index 8097da4..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorInfoImpl.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-
-
-import org.w3c.dom.Attr;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-final class ErrorInfoImpl extends AbstractErrorInfo {
-
-	private Node target = null;
-
-	//	private Segment seg = null;
-	/**
-	 */
-	public ErrorInfoImpl(int state, Segment errorSeg, Node target) {
-		super(state, errorSeg);
-		this.target = target;
-	}
-
-	/**
-	 */
-	public String getHint() {
-		switch (target.getNodeType()) {
-			case Node.ATTRIBUTE_NODE :
-				switch (getState()) {
-					case UNDEFINED_VALUE_ERROR :
-					case MISMATCHED_VALUE_ERROR :
-					case UNCLOSED_ATTR_VALUE :
-						//D210422
-						return ((Attr) target).getValue();
-					default :
-						return target.getNodeName();
-				}
-			case Node.TEXT_NODE :
-				return ((Text) target).getData();
-			case Node.ELEMENT_NODE :
-			default :
-				return target.getNodeName();
-		}
-	}
-
-	public short getTargetType() {
-		return target.getNodeType();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorState.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorState.java
deleted file mode 100644
index 17af433..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorState.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.wst.html.core.internal.validate;
-
-
-
-interface ErrorState {
-	static final int NONE_ERROR = 0;
-	// generic error
-	static final int UNDEFINED_NAME_ERROR = 11;
-	static final int UNDEFINED_VALUE_ERROR = 12;
-	static final int MISMATCHED_VALUE_ERROR = 13;
-	// format error
-	static final int FORMAT_ERROR_LEVEL = 100;
-	static final int INVALID_NAME_ERROR = 101;
-	static final int INVALID_CHAR_ERROR = 102;
-	static final int MISMATCHED_ERROR = 103;
-	static final int MISMATCHED_END_TAG_ERROR = 104;
-	static final int MISSING_START_TAG_ERROR = 105;
-	static final int MISSING_END_TAG_ERROR = 106;
-	static final int UNNECESSARY_END_TAG_ERROR = 107;
-	static final int INVALID_ATTR_ERROR = 108;
-	static final int INVALID_DIRECTIVE_ERROR = 109;
-	static final int UNCLOSED_TAG_ERROR = 110;
-	static final int UNCLOSED_END_TAG_ERROR = 111;
-	static final int INVALID_EMPTY_ELEMENT_TAG = 112;
-	static final int UNCLOSED_ATTR_VALUE = 113; //D210422
-	// layout error
-	static final int LAYOUT_ERROR_LEVEL = 1000;
-	static final int INVALID_CONTENT_ERROR = 1001;
-	static final int DUPLICATE_ERROR = 1002;
-	static final int COEXISTENCE_ERROR = 1003;
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/FMUtil.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/FMUtil.java
deleted file mode 100644
index a548dea..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/FMUtil.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-
-final class FMUtil {
-
-	public final static int SEG_NONE = 0;
-	public final static int SEG_WHOLE_TAG = 1;
-	public final static int SEG_START_TAG = 2;
-	public final static int SEG_END_TAG = 3;
-
-	/**
-	 */
-	private FMUtil() {
-		super();
-	}
-
-	/**
-	 */
-	public final static Segment getSegment(IDOMNode target, int segType) {
-		if (target == null)
-			return new Segment(0, 0);
-		Segment seg = null;
-		IStructuredDocumentRegion startTag = null;
-		IStructuredDocumentRegion endTag = null;
-		switch (segType) {
-			case SEG_WHOLE_TAG :
-				startTag = target.getFirstStructuredDocumentRegion();
-				if (startTag != null) {
-					endTag = target.getLastStructuredDocumentRegion();
-					seg = new Segment(startTag, endTag);
-				}
-				else {
-					int startOffset = target.getStartOffset();
-					int endOffset = target.getEndOffset();
-					seg = new Segment(startOffset, endOffset - startOffset);
-				}
-				break;
-			case SEG_START_TAG :
-				startTag = target.getStartStructuredDocumentRegion();
-				if (startTag != null) {
-					seg = new Segment(startTag);
-				}
-				else {
-					seg = new Segment(target.getStartOffset(), 0);
-				}
-				break;
-			case SEG_END_TAG :
-				endTag = target.getEndStructuredDocumentRegion();
-				if (endTag != null) {
-					seg = new Segment(endTag);
-				}
-				else {
-					seg = new Segment(target.getEndOffset(), 0);
-				}
-				break;
-			case SEG_NONE :
-			default :
-				return new Segment(0, 0);
-		}
-		return seg;
-	}
-
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLAttributeValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLAttributeValidator.java
deleted file mode 100644
index a4a0279..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLAttributeValidator.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-
-public class HTMLAttributeValidator extends PrimeValidator {
-
-	private static final int REGION_NAME = 1;
-	private static final int REGION_VALUE = 2;
-	// <<D210422
-	private static final char SINGLE_QUOTE = '\'';
-	private static final char DOUBLE_QUOTE = '\"';
-
-	// D210422
-	/**
-	 * HTMLAttributeValidator constructor comment.
-	 */
-	public HTMLAttributeValidator() {
-		super();
-	}
-
-	/**
-	 */
-	private Segment getErrorSegment(IDOMNode errorNode, int regionType) {
-		ITextRegion rgn = null;
-		switch (regionType) {
-			case REGION_NAME :
-				rgn = errorNode.getNameRegion();
-				break;
-			case REGION_VALUE :
-				rgn = errorNode.getValueRegion();
-				break;
-			default :
-				// nothing to do.
-				break;
-		}
-		if (rgn != null) {
-			if (errorNode instanceof IDOMAttr) {
-				IDOMElement ownerElement = (IDOMElement) ((IDOMAttr) errorNode).getOwnerElement();
-				if (ownerElement != null) {
-					int regionStartOffset = ownerElement.getFirstStructuredDocumentRegion().getStartOffset(rgn);
-					int regionLength = rgn.getLength();
-					return new Segment(regionStartOffset, regionLength);
-				}
-			}
-		}
-		return new Segment(errorNode.getStartOffset(), 0);
-	}
-
-	/**
-	 * Allowing the INodeAdapter to compare itself against the type allows it
-	 * to return true in more than one case.
-	 */
-	public boolean isAdapterForType(Object type) {
-		return ((type == HTMLAttributeValidator.class) || super.isAdapterForType(type));
-	}
-
-	/**
-	 */
-	public void validate(IndexedRegion node) {
-		Element target = (Element) node;
-		if (CMUtil.isForeign(target))
-			return;
-		CMElementDeclaration edec = CMUtil.getDeclaration(target);
-		if (edec == null)
-			return;
-		CMNamedNodeMap declarations = edec.getAttributes();
-
-		CMNamedNodeMapImpl allAttributes = new CMNamedNodeMapImpl(declarations) {
-			private Map caseInsensitive;
-			
-			private Map getCaseInsensitiveMap() {
-				if(caseInsensitive == null)
-					caseInsensitive = new HashMap();
-				return caseInsensitive;
-			}
-
-			public CMNode getNamedItem(String name) {
-				CMNode node = super.getNamedItem(name);
-				if (node == null) {
-					node = (CMNode) getCaseInsensitiveMap().get(name.toLowerCase(Locale.US));
-				}
-				return node;
-			}
-
-			public void put(CMNode cmNode) {
-				super.put(cmNode);
-				getCaseInsensitiveMap().put(cmNode.getNodeName().toLowerCase(Locale.US), cmNode);
-			}
-		};
-
-		List nodes = ModelQueryUtil.getModelQuery(target.getOwnerDocument()).getAvailableContent((Element) node, edec, ModelQuery.INCLUDE_ATTRIBUTES);
-		for (int k = 0; k < nodes.size(); k++) {
-			CMNode cmnode = (CMNode) nodes.get(k);
-			if (cmnode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) {
-				allAttributes.put(cmnode);
-			}
-		}
-		declarations = allAttributes;
-
-		NamedNodeMap attrs = target.getAttributes();
-		for (int i = 0; i < attrs.getLength(); i++) {
-			int rgnType = REGION_NAME;
-			int state = ErrorState.NONE_ERROR;
-			Attr a = (Attr) attrs.item(i);
-			// D203637; If the target attr has prefix, the validator should
-			// not
-			// warn about it. That is, just ignore. It is able to check
-			// whether
-			// an attr has prefix or not by calling XMLAttr#isGlobalAttr().
-			// When a attr has prefix (not global), it returns false.
-			boolean isXMLAttr = a instanceof IDOMAttr;
-			if (isXMLAttr) {
-				IDOMAttr xmlattr = (IDOMAttr) a;
-				if (!xmlattr.isGlobalAttr())
-					continue; // skip futher validation and begin next loop.
-			}
-
-			CMAttributeDeclaration adec = (CMAttributeDeclaration) declarations.getNamedItem(a.getName());
-			if (adec == null) {
-				// No attr declaration was found. That is, the attr name is
-				// undefined.
-				// but not regard it as undefined name if it includes nested
-				// region
-				if (!hasNestedRegion(((IDOMNode) a).getNameRegion())) {
-					rgnType = REGION_NAME;
-					state = ErrorState.UNDEFINED_NAME_ERROR;
-				}
-			} else {
-				// The attr declaration was found.
-				// At 1st, the name should be checked.
-				if (CMUtil.isHTML(edec) && (!CMUtil.isXHTML(edec))) {
-					// If the target element is pure HTML (not XHTML), some
-					// attributes
-					// might be written in boolean format. It should be check
-					// specifically.
-					if (CMUtil.isBooleanAttr(adec) && ((IDOMAttr) a).hasNameOnly())
-						continue; // OK, keep going. No more check is needed
-					// against this attr.
-				} else {
-					// If the target is other than pure HTML (JSP or XHTML),
-					// the name
-					// must be checked exactly (ie in case sensitive way).
-					String actual = a.getName();
-					String desired = adec.getAttrName();
-					if (!actual.equals(desired)) { // case mismatch
-						rgnType = REGION_NAME;
-						state = ErrorState.MISMATCHED_ERROR;
-					}
-				}
-				// Then, the value must be checked.
-				if (state == ErrorState.NONE_ERROR) { // Need more check.
-					// Now, the value should be checked, if the type is ENUM.
-					CMDataType attrType = adec.getAttrType();
-					String actualValue = a.getValue();
-					if (attrType.getImpliedValueKind() == CMDataType.IMPLIED_VALUE_FIXED) {
-						// Check FIXED value.
-						String validValue = attrType.getImpliedValue();
-						if (!actualValue.equals(validValue)) {
-							rgnType = REGION_VALUE;
-							state = ErrorState.UNDEFINED_VALUE_ERROR;
-						}
-					} else {
-						String[] candidates = attrType.getEnumeratedValues();
-						if (candidates != null && candidates.length > 0) {
-							// several candidates are found.
-							boolean found = false;
-							for (int index = 0; index < candidates.length; index++) {
-								String candidate = candidates[index];
-								// At 1st, compare ignoring case.
-								if (actualValue.equalsIgnoreCase(candidate)) {
-									found = true;
-									if (CMUtil.isCaseSensitive(edec) && (!actualValue.equals(candidate))) {
-										rgnType = REGION_VALUE;
-										state = ErrorState.MISMATCHED_VALUE_ERROR;
-									}
-									break; // exit the loop.
-								}
-							}
-							if (!found) {
-								// No candidate was found. That is,
-								// actualValue is invalid.
-								// but not regard it as undefined value if it
-								// includes nested region.
-								if (!hasNestedRegion(((IDOMNode) a).getValueRegion())) {
-									rgnType = REGION_VALUE;
-									state = ErrorState.UNDEFINED_VALUE_ERROR;
-								}
-							}
-						}
-					}
-				}
-				// <<D210422
-				if (state == ErrorState.NONE_ERROR) { // Need more check.
-					if (isXMLAttr) {
-						String source = ((IDOMAttr) a).getValueRegionText();
-						if (source != null) {
-							char firstChar = source.charAt(0);
-							char lastChar = source.charAt(source.length() - 1);
-							if (isQuote(firstChar) || isQuote(lastChar)) {
-								if (lastChar != firstChar) {
-									rgnType = REGION_VALUE;
-									state = ErrorState.UNCLOSED_ATTR_VALUE;
-								}
-							}
-						}
-					}
-				}
-				// D210422
-			}
-			if (state != ErrorState.NONE_ERROR) {
-				Segment seg = getErrorSegment((IDOMNode) a, rgnType);
-				if (seg != null)
-					reporter.report(new ErrorInfoImpl(state, seg, a));
-			}
-		}
-	}
-
-	/**
-	 * True if container has nested regions, meaning container is probably too
-	 * complicated (like JSP regions) to validate with this validator.
-	 */
-	private boolean hasNestedRegion(ITextRegion container) {
-		if (!(container instanceof ITextRegionContainer))
-			return false;
-		ITextRegionList regions = ((ITextRegionContainer) container).getRegions();
-		if (regions == null)
-			return false;
-		// BUG207194: return true by default as long as container is an
-		// ITextRegionContainer with at least 1 region
-		return true;
-	}
-
-	// <<D214022
-	private boolean isQuote(char c) {
-		return (c == SINGLE_QUOTE) || (c == DOUBLE_QUOTE);
-	}
-	// D210422
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLDocumentContentValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLDocumentContentValidator.java
deleted file mode 100644
index cb6cab3..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLDocumentContentValidator.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.document.DocumentTypeAdapter;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class HTMLDocumentContentValidator extends PrimeValidator {
-
-
-	private final static class Division {
-		private Vector explicitHtmls = new Vector();
-		private Vector rest = new Vector();
-
-		public Division(Document document, NodeList children) {
-			String rootTagName = getRootTagName(document);
-			for (int i = 0; i < children.getLength(); i++) {
-				Node child = children.item(i);
-				if (isHtmlTag(child, rootTagName)) {
-					explicitHtmls.add(child);
-				}
-				else {
-					rest.add(child);
-				}
-			}
-		}
-
-		public boolean hasExplicitHtmls() {
-			return explicitHtmls.size() > 0;
-		}
-
-		public List getExplicitHtmls() {
-			return explicitHtmls;
-		}
-
-		public Iterator getRestNodes() {
-			return rest.iterator();
-		}
-
-		/* utilities */
-		private static boolean isHtmlTag(Node node, String tagName) {
-			if (node.getNodeType() != Node.ELEMENT_NODE)
-				return false;
-			return ((Element) node).getTagName().equalsIgnoreCase(tagName);
-		}
-
-		private static String getRootTagName(Document document) {
-			DocumentTypeAdapter adapter = (DocumentTypeAdapter) ((IDOMDocument) document).getAdapterFor(DocumentTypeAdapter.class);
-			if (adapter != null) {
-				DocumentType docType = adapter.getDocumentType();
-				if (docType != null) {
-					return docType.getName();
-				}
-			}
-
-			return HTML40Namespace.ElementName.HTML;
-		}
-	}
-
-	/**
-	 * HTMLDocumentContentValidator constructor comment.
-	 */
-	public HTMLDocumentContentValidator() {
-		super();
-	}
-
-	/**
-	 * Allowing the INodeAdapter to compare itself against the type allows it
-	 * to return true in more than one case.
-	 */
-	public boolean isAdapterForType(Object type) {
-		return ((type == HTMLDocumentContentValidator.class) || super.isAdapterForType(type));
-	}
-
-	/**
-	 */
-	public void validate(IndexedRegion node) {
-		// isFragment check should be more intelligent.
-		boolean isFragment = true;
-
-		Document target = (Document) node;
-		NodeList children = target.getChildNodes();
-		if (children == null)
-			return;
-
-		Division division = new Division(target, children);
-		if (division.hasExplicitHtmls()) {
-			isFragment = false;
-
-			List explicits = division.getExplicitHtmls();
-			if (explicits.size() > 1) {
-				for (int i = 1; i < explicits.size(); i++) {
-					Element html = (Element) explicits.get(i);
-					// report error (duplicate)
-					Segment errorSeg = FMUtil.getSegment((IDOMNode) html, FMUtil.SEG_START_TAG);
-					if (errorSeg != null)
-						reporter.report(new ErrorInfoImpl(ErrorState.DUPLICATE_ERROR, errorSeg, html));
-				}
-			}
-		}
-		validateContent(division.getRestNodes(), isFragment);
-	}
-
-	/*
-	 * This methods validate nodes other than HTML elements.
-	 */
-	private void validateContent(Iterator children, boolean isFragment) {
-		boolean foundDoctype = false;
-		while (children.hasNext()) {
-			IDOMNode child = (IDOMNode) children.next();
-
-			int error = ErrorState.NONE_ERROR;
-			int segType = FMUtil.SEG_WHOLE_TAG;
-
-			switch (child.getNodeType()) {
-				case Node.ELEMENT_NODE :
-					if (!isFragment) {
-						Element childElem = (Element) child;
-						CMElementDeclaration ced = CMUtil.getDeclaration(childElem);
-						// Undefined element is valid.
-						if (ced == null)
-							continue;
-						// JSP (includes custom tags) and SSI are valid.
-						if (CMUtil.isForeign(childElem) || CMUtil.isSSI(ced))
-							continue; // Defect 186774
-
-						// report error (invalid content)
-						error = ErrorState.INVALID_CONTENT_ERROR;
-						// mark the whole start tag as error.
-						segType = FMUtil.SEG_START_TAG;
-					}
-					break;
-				case Node.TEXT_NODE :
-					if (!isFragment) {
-						// TEXT node is valid when it contains white space
-						// characters only.
-						// Otherwise, it is invalid content.
-						if (((IDOMText) child).isElementContentWhitespace())
-							continue;
-						error = ErrorState.INVALID_CONTENT_ERROR;
-						segType = FMUtil.SEG_WHOLE_TAG;
-					}
-					break;
-				case Node.DOCUMENT_TYPE_NODE :
-					// DOCTYPE is also valid when it appears once and only
-					// once.
-					if (!foundDoctype) {
-						foundDoctype = true;
-						continue;
-					}
-					error = ErrorState.DUPLICATE_ERROR;
-					segType = FMUtil.SEG_WHOLE_TAG;
-					break;
-				case Node.COMMENT_NODE :
-				// always valid.
-				case Node.PROCESSING_INSTRUCTION_NODE :
-					continue;
-				default :
-					if (!isFragment) {
-						error = ErrorState.INVALID_CONTENT_ERROR;
-						segType = FMUtil.SEG_WHOLE_TAG;
-					}
-					break;
-			}
-			if (error != ErrorState.NONE_ERROR) {
-				Segment errorSeg = FMUtil.getSegment(child, segType);
-				if (errorSeg != null)
-					reporter.report(new ErrorInfoImpl(error, errorSeg, child));
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementAncestorValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementAncestorValidator.java
deleted file mode 100644
index 0c61edd..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementAncestorValidator.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-
-
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Element;
-
-public class HTMLElementAncestorValidator extends PrimeValidator {
-
-	/**
-	 * HTMLElementAncestorValidator constructor comment.
-	 */
-	public HTMLElementAncestorValidator() {
-		super();
-	}
-
-	/**
-	 * Allowing the INodeAdapter to compare itself against the type
-	 * allows it to return true in more than one case.
-	 */
-	public boolean isAdapterForType(Object type) {
-		return ((type == HTMLElementAncestorValidator.class) || super.isAdapterForType(type));
-	}
-
-	/**
-	 * Check exclusion which is defined in only HTML DTD (SGML).
-	 */
-	public void validate(IndexedRegion node) {
-		Element target = (Element) node;
-		if (CMUtil.isForeign(target))
-			return;
-		CMElementDeclaration dec = CMUtil.getDeclaration(target);
-		if (dec == null)
-			return; // cannot validate.
-		if (!CMUtil.isHTML(dec))
-			return; // no need to validate
-		if (!dec.supports(HTMLCMProperties.PROHIBITED_ANCESTORS))
-			return; // cannot validate.
-		CMNamedNodeMap prohibited = (CMNamedNodeMap) dec.getProperty(HTMLCMProperties.PROHIBITED_ANCESTORS);
-		if (prohibited.getLength() <= 0)
-			return; // no prohibited ancestors.
-
-		Element parent = SMUtil.getParentElement(target);
-		while (parent != null) {
-			CMNode pdec = prohibited.getNamedItem(parent.getNodeName());
-			if (pdec != null) { // prohibited element is found in ancestors.
-				Segment errorSeg = FMUtil.getSegment((IDOMNode) node, FMUtil.SEG_START_TAG);
-				if (errorSeg != null)
-					reporter.report(new ErrorInfoImpl(ErrorState.INVALID_CONTENT_ERROR, errorSeg, target));
-				break; // If one prohibited ancestor is found, it's enough.
-			}
-			parent = SMUtil.getParentElement(parent);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementContentValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementContentValidator.java
deleted file mode 100644
index 9041574..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementContentValidator.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Locale;
-
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class HTMLElementContentValidator extends PrimeValidator {
-
-	/**
-	 * HTMLElementContentValidator constructor comment.
-	 */
-	public HTMLElementContentValidator() {
-		super();
-	}
-
-	/**
-	 * Allowing the INodeAdapter to compare itself against the type allows it
-	 * to return true in more than one case.
-	 */
-	public boolean isAdapterForType(Object type) {
-		return ((type == HTMLElementContentValidator.class) || super.isAdapterForType(type));
-	}
-
-	/**
-	 */
-	public void validate(IndexedRegion node) {
-		Element target = (Element) node;
-		if (CMUtil.isForeign(target))
-			return;
-
-		validateContent(target, target.getFirstChild());
-	}
-
-	private void validateContent(Element parent, Node child) {
-		if (child == null)
-			return;
-
-		CMElementDeclaration ed = CMUtil.getDeclaration(parent);
-		if(ed == null || ed.getContentType() == CMElementDeclaration.ANY)
-			return;
-		
-		/*
-		 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=218143 - 
-		 * ModelQuery use not pervasive enough
-		 */
-		List availableChildElementDeclarations = ModelQueryUtil.getModelQuery(parent.getOwnerDocument()).getAvailableContent(parent, ed, ModelQuery.INCLUDE_CHILD_NODES);
-		/*
-		 * Retrieve and set aside just the element names for faster checking
-		 * later.
-		 */
-		int availableChildCount = availableChildElementDeclarations.size();
-		List availableChildElementLowercaseNames = new ArrayList(availableChildCount);
-		for (int i = 0; i < availableChildCount; i++) {
-			CMNode cmnode = (CMNode) availableChildElementDeclarations.get(i);
-			if (cmnode.getNodeType() == CMNode.ELEMENT_DECLARATION) {
-				availableChildElementLowercaseNames.add(cmnode.getNodeName().toLowerCase(Locale.US));
-			}
-		}
-		Object[] availableChildElementLowercaseNamesArray = availableChildElementLowercaseNames.toArray();
-
-		while (child != null) {
-			// perform actual validation
-			validateNode(parent, child, ed, availableChildElementLowercaseNamesArray);
-			child = child.getNextSibling();
-		}
-	}
-
-	// private int countExplicitSiblings(Element parent, String tagName) {
-	// NodeList children = parent.getChildNodes();
-	// int count = 0;
-	// for (int i = 0; i < children.getLength(); i++) {
-	// Node child = children.item(i);
-	// if (child.getNodeType() != Node.ELEMENT_NODE)
-	// continue;
-	// if (tagName.equalsIgnoreCase(((Element) child).getTagName())) {
-	// count++;
-	// }
-	// }
-	// return count;
-	// }
-
-	/*
-	 * The implementation of the following method is practical but accurate.
-	 * The accurate maximum occurrence should be retrieve from the content
-	 * model. However, it is useful enough, since almost implicit elements are
-	 * HTML, HEAD, or BODY.
-	 */
-	// private int getMaxOccur(Element parent, String childTag) {
-	// return 1;
-	// }
-
-	private boolean containsName(String name, Object[] possible) {
-		if (name != null && possible != null) {
-			for (int i = 0; i < possible.length; i++) {
-				if(name.equals(possible[i]))
-				return true;
-			}
-		}
-		return false;
-	}
-
-	private void validateNode(Element target, Node child, CMElementDeclaration edec, Object[] availableLowercaseChildElementNames) {
-		// NOTE: If the target element is 'UNKNOWN', that is, it has no
-		// element declaration, the content type of the element should be
-		// regarded as 'ANY'. -- 9/10/2001
-		int contentType = CMElementDeclaration.ANY;
-		if (edec != null)
-			contentType = edec.getContentType();
-
-		int error = ErrorState.NONE_ERROR;
-		int segType = FMUtil.SEG_WHOLE_TAG;
-		
-		switch (child.getNodeType()) {
-			case Node.ELEMENT_NODE :
-				Element childElem = (Element) child;
-				// Defect 200321:
-				// This validator cares only HTML/XHTML elements. If a child
-				// is
-				// an element of foreign markup languages, just ignore it.
-				if (CMUtil.isForeign(childElem))
-					return;
-
-				CMElementDeclaration ced = CMUtil.getDeclaration((Element) child);
-				// Defect 186774: If a child is not one of HTML elements,
-				// it should be regarded as a valid child regardless the
-				// type of the parent content model. -- 10/12/2001
-				if (ced == null || CMUtil.isSSI(ced) || (!CMUtil.isHTML(ced)) || containsName(ced.getElementName().toLowerCase(Locale.US), availableLowercaseChildElementNames))
-					return;
-
-				switch (contentType) {
-					case CMElementDeclaration.ANY :
-						// Keep going.
-						return;
-					case CMElementDeclaration.ELEMENT :
-					case CMElementDeclaration.MIXED :
-						if (ced == null)
-							return;
-						if (CMUtil.isValidChild(edec, ced))
-							return;
-						// Now, it is the time to check inclusion, unless the
-						// target
-						// document is not a XHTML.
-						if (!CMUtil.isXHTML(edec)) {
-							// pure HTML
-							if (CMUtil.isValidInclusion(ced, target))
-								return;
-						}
-						error = ErrorState.INVALID_CONTENT_ERROR;
-						break;
-					default :
-						error = ErrorState.INVALID_CONTENT_ERROR;
-						break;
-				}
-				// Mark the whole START tag as an error segment.
-				segType = FMUtil.SEG_START_TAG;
-				break;
-			case Node.TEXT_NODE :
-				switch (contentType) {
-					case CMElementDeclaration.ANY :
-					case CMElementDeclaration.MIXED :
-					case CMElementDeclaration.PCDATA :
-					case CMElementDeclaration.CDATA :
-						// D184339
-						// Keep going.
-						return;
-					case CMElementDeclaration.ELEMENT :
-					case CMElementDeclaration.EMPTY :
-						if (((IDOMText) child).isElementContentWhitespace())
-							return;
-						error = ErrorState.INVALID_CONTENT_ERROR;
-						break;
-					default :
-						error = ErrorState.INVALID_CONTENT_ERROR;
-						break;
-				}
-				// Mark the whole node as an error segment.
-				segType = FMUtil.SEG_WHOLE_TAG;
-				break;
-			case Node.COMMENT_NODE :
-			case Node.PROCESSING_INSTRUCTION_NODE :
-				if (contentType != CMElementDeclaration.EMPTY)
-					return;
-				error = ErrorState.INVALID_CONTENT_ERROR;
-				// Mark the whole node as an error segment.
-				segType = FMUtil.SEG_WHOLE_TAG;
-				break;
-			default :
-				error = ErrorState.INVALID_CONTENT_ERROR;
-				// Mark the whole node as an error segment.
-				segType = FMUtil.SEG_WHOLE_TAG;
-				break;
-		}
-		if (error != ErrorState.NONE_ERROR) {
-			Segment errorSeg = FMUtil.getSegment((IDOMNode) child, segType);
-			if (errorSeg != null)
-				reporter.report(new ErrorInfoImpl(error, errorSeg, child));
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleDocumentValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleDocumentValidator.java
deleted file mode 100644
index 65795b3..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleDocumentValidator.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-
-import org.eclipse.wst.xml.core.internal.validate.ValidationComponent;
-
-class HTMLSimpleDocumentValidator extends CompositeValidator {
-
-	/**
-	 * HTMLSimpleDocumentValidator constructor comment.
-	 */
-	public HTMLSimpleDocumentValidator() {
-		super();
-
-		ValidationComponent[] validators = new ValidationComponent[2];
-
-		validators[0] = new HTMLDocumentContentValidator();
-		validators[1] = new SyntaxValidator();
-
-		register(validators);
-	}
-
-	/**
-	 * Allowing the INodeAdapter to compare itself against the type
-	 * allows it to return true in more than one case.
-	 */
-	public boolean isAdapterForType(Object type) {
-		return ((type == HTMLSimpleDocumentValidator.class) || super.isAdapterForType(type));
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleValidator.java
deleted file mode 100644
index 7276fd8..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleValidator.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-
-import org.eclipse.wst.xml.core.internal.validate.ValidationComponent;
-
-class HTMLSimpleValidator extends CompositeValidator {
-
-	/**
-	 * HTMLSimpleValidator constructor comment.
-	 */
-	public HTMLSimpleValidator() {
-		super();
-
-		ValidationComponent[] validators = new ValidationComponent[5];
-
-		validators[0] = new HTMLAttributeValidator();
-		validators[1] = new HTMLElementContentValidator();
-		validators[2] = new SyntaxValidator();
-		validators[3] = new HTMLElementAncestorValidator();
-		validators[4] = new NamespaceValidator();
-
-		register(validators);
-	}
-
-	/**
-	 * Allowing the INodeAdapter to compare itself against the type
-	 * allows it to return true in more than one case.
-	 */
-	public boolean isAdapterForType(Object type) {
-		return ((type == HTMLSimpleValidator.class) || super.isAdapterForType(type));
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLValidationAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLValidationAdapterFactory.java
deleted file mode 100644
index 1010e04..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLValidationAdapterFactory.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.AbstractAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.validate.ValidationAdapter;
-import org.w3c.dom.Node;
-
-public class HTMLValidationAdapterFactory extends AbstractAdapterFactory {
-
-	private static HTMLValidationAdapterFactory instance = null;
-
-	/**
-	 * HTMLValidationAdapterFactory constructor comment.
-	 */
-	public HTMLValidationAdapterFactory() {
-		super(ValidationAdapter.class, true);
-	}
-
-	/**
-	 * HTMLValidationAdapterFactory constructor comment.
-	 * @param adapterKey java.lang.Object
-	 * @param registerAdapters boolean
-	 */
-	public HTMLValidationAdapterFactory(Object adapterKey, boolean registerAdapters) {
-		super(adapterKey, registerAdapters);
-	}
-
-	/**
-	 */
-	protected INodeAdapter createAdapter(INodeNotifier target) {
-		Node node = (Node) target;
-		switch (node.getNodeType()) {
-			case Node.DOCUMENT_NODE :
-				return new DocumentPropagatingValidator();
-			case Node.ELEMENT_NODE :
-				return new ElementPropagatingValidator();
-			default :
-				return new NullValidator();
-		}
-	}
-
-	/**
-	 */
-	public synchronized static HTMLValidationAdapterFactory getInstance() {
-		if (instance != null)
-			return instance;
-		instance = new HTMLValidationAdapterFactory();
-		return instance;
-	}
-
-	/**
-	 * Overriding Object's clone() method
-	 * This is used in IModelManager's IStructuredModel copying.
-	 */
-	public INodeAdapterFactory copy() {
-		return getInstance();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/MessageFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/MessageFactory.java
deleted file mode 100644
index bee3e48..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/MessageFactory.java
+++ /dev/null
@@ -1,381 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-import java.util.Hashtable;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ProjectScope;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.html.core.internal.HTMLCoreMessages;
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.Logger;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
-import org.eclipse.wst.sse.core.internal.validate.ErrorInfo;
-import org.eclipse.wst.sse.core.internal.validate.ValidationMessage;
-import org.w3c.dom.Node;
-
-public class MessageFactory implements ErrorState {
-
-
-	private IProject fProject;
-	
-	public MessageFactory() {
-		init();
-	}
-	
-	public MessageFactory(IProject project) {
-		fProject = project;
-		init();
-	}
-	
-	protected Preferences getModelPreferences() {
-		return HTMLCorePlugin.getDefault().getPluginPreferences();
-	}
-	
-	/**
-	 * Creates a packet for the error table based on the state, message, and the
-	 * severity defined in the preference store. This packet, in addition to
-	 * being added to the error table, is also placed in a map based on the
-	 * supplied preference key
-	 * 
-	 * @param key the preference key for the error severity
-	 * @param errorTable the error table to store the packet information in
-	 * @param state the error state
-	 * @param msg the message for the error
-	 */
-	private void mapToKey(String key, ErrorTable errorTable, int state, String msg) {
-		boolean useProject = false;
-		IEclipsePreferences prefs = null;
-		
-		if (fProject != null) {
-			prefs = new ProjectScope(fProject).getNode(HTMLCorePlugin.getDefault().getBundle().getSymbolicName());
-			useProject = prefs.getBoolean(HTMLCorePreferenceNames.USE_PROJECT_SETTINGS, false);
-		}
-		
-		int severity = ValidationMessage.WARNING;
-		if(useProject)
-			severity = prefs.getInt(key, ValidationMessage.WARNING);
-		else
-			severity = new InstanceScope().getNode(HTMLCorePlugin.getDefault().getBundle().getSymbolicName()).getInt(key, ValidationMessage.WARNING);
-			
-		errorTable.put(state, msg, severity);
-	}
-	
-	private void init() {
-		for (int i = 0; i < NodeType.MAX_TYPE; i++) {
-			errTables[i] = new ErrorTable();
-		}
-		// NOTE: The severities are just stub.  They must be reviewed.
-		// -- 8/30/2001
-
-		// attribute error map
-		ErrorTable attrTable = errTables[NodeType.ATTRIBUTE];// short hand
-		attrTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-		mapToKey(HTMLCorePreferenceNames.ATTRIBUTE_UNDEFINED_NAME, attrTable, UNDEFINED_NAME_ERROR, MSG_UNDEFINED_ATTR_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ATTRIBUTE_UNDEFINED_VALUE, attrTable, UNDEFINED_VALUE_ERROR, MSG_UNDEFINED_VALUE_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ATTRIBUTE_NAME_MISMATCH, attrTable, MISMATCHED_ERROR, MSG_MISMATCHED_ATTR_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ATTRIBUTE_INVALID_NAME, attrTable, INVALID_NAME_ERROR, MSG_INVALID_ATTR_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ATTRIBUTE_INVALID_VALUE, attrTable, INVALID_ATTR_ERROR, MSG_ATTR_NO_VALUE_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ATTRIBUTE_DUPLICATE, attrTable, DUPLICATE_ERROR, MSG_DUPLICATE_ATTR_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ATTRIBUTE_VALUE_MISMATCH, attrTable, MISMATCHED_VALUE_ERROR, MSG_MISMATCHED_ATTR_VALUE_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ATTRIBUTE_VALUE_UNCLOSED, attrTable, UNCLOSED_ATTR_VALUE, MSG_UNCLOSED_ATTR_VALUE_ERROR);
-
-		// element error map
-		ErrorTable elemTable = errTables[NodeType.ELEMENT];// short hand
-		elemTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-		mapToKey(HTMLCorePreferenceNames.ELEM_UNKNOWN_NAME, elemTable, UNDEFINED_NAME_ERROR, MSG_UNDEFINED_TAG_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ELEM_INVALID_NAME, elemTable, INVALID_NAME_ERROR, MSG_INVALID_TAG_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ELEM_START_INVALID_CASE, elemTable, MISMATCHED_ERROR, MSG_MISMATCHED_TAG_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ELEM_END_INVALID_CASE, elemTable, MISMATCHED_END_TAG_ERROR, MSG_MISMATCHED_TAG_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ELEM_MISSING_START, elemTable, MISSING_START_TAG_ERROR, MSG_MISSING_START_TAG_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ELEM_MISSING_END, elemTable, MISSING_END_TAG_ERROR, MSG_MISSING_END_TAG_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ELEM_UNNECESSARY_END, elemTable, UNNECESSARY_END_TAG_ERROR, MSG_UNNECESSARY_END_TAG_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ELEM_INVALID_DIRECTIVE, elemTable, INVALID_DIRECTIVE_ERROR, MSG_INVALID_DIRECTIVE_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ELEM_INVALID_CONTENT, elemTable, INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ELEM_DUPLICATE, elemTable, DUPLICATE_ERROR, MSG_DUPLICATE_TAG_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ELEM_COEXISTENCE, elemTable, COEXISTENCE_ERROR, MSG_INVALID_CONTENT_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ELEM_UNCLOSED_START_TAG, elemTable, UNCLOSED_TAG_ERROR, MSG_UNCLOSED_START_TAG_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ELEM_UNCLOSED_END_TAG, elemTable, UNCLOSED_END_TAG_ERROR, MSG_UNCLOSED_END_TAG_ERROR);
-		mapToKey(HTMLCorePreferenceNames.ELEM_INVALID_EMPTY_TAG, elemTable, INVALID_EMPTY_ELEMENT_TAG, MSG_INVALID_EMPTY_ELEMENT_TAG);
-
-		// document type error map
-		ErrorTable docTable = errTables[NodeType.DOCUMENT_TYPE];// short hand
-		docTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-		mapToKey(HTMLCorePreferenceNames.DOC_DUPLICATE, docTable, DUPLICATE_ERROR, MSG_DUPLICATE_TAG_ERROR);
-		mapToKey(HTMLCorePreferenceNames.DOC_INVALID_CONTENT, docTable, INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR);
-		mapToKey(HTMLCorePreferenceNames.DOC_DOCTYPE_UNCLOSED, docTable, UNCLOSED_TAG_ERROR, MSG_UNCLOSED_DOCTYPE_ERROR);
-
-		// text error map
-		ErrorTable textTable = errTables[NodeType.TEXT];
-		textTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-		mapToKey(HTMLCorePreferenceNames.TEXT_INVALID_CONTENT, textTable, INVALID_CONTENT_ERROR, MSG_INVALID_TEXT_ERROR);
-		mapToKey(HTMLCorePreferenceNames.TEXT_INVALID_CHAR, textTable, INVALID_CHAR_ERROR, MSG_INVALID_CHAR_ERROR);
-
-		// comment error map
-		ErrorTable commTable = errTables[NodeType.COMMENT];
-		commTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-		mapToKey(HTMLCorePreferenceNames.COMMENT_INVALID_CONTENT, commTable, INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR);
-		mapToKey(HTMLCorePreferenceNames.COMMENT_UNCLOSED, commTable, UNCLOSED_TAG_ERROR, MSG_UNCLOSED_COMMENT_ERROR);
-
-		// cdata section error map
-		ErrorTable cdatTable = errTables[NodeType.CDATA_SECTION];
-		cdatTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-		mapToKey(HTMLCorePreferenceNames.CDATA_INVALID_CONTENT, cdatTable, INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR);
-		mapToKey(HTMLCorePreferenceNames.CDATA_UNCLOSED, cdatTable, UNCLOSED_TAG_ERROR, MSG_UNCLOSED_CDATA_SECTION_ERROR);
-
-		// processing instruction error map
-		ErrorTable piTable = errTables[NodeType.PROCESSING_INSTRUCTION];
-		piTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-		mapToKey(HTMLCorePreferenceNames.PI_INVALID_CONTENT, piTable, INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR);
-		mapToKey(HTMLCorePreferenceNames.PI_UNCLOSED, piTable, UNCLOSED_TAG_ERROR, MSG_UNCLOSED_PI_ERROR);
-
-		// entity reference error map
-		ErrorTable erTable = errTables[NodeType.ENTITY_REFERENCE];
-		erTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-		mapToKey(HTMLCorePreferenceNames.REF_UNDEFINED, erTable, UNDEFINED_NAME_ERROR, MSG_UNDEFINED_TAG_ERROR);
-		mapToKey(HTMLCorePreferenceNames.REF_INVALID_CONTENT, erTable, INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR);
-	}
-	
-	private static class ErrorTable {
-		private class Packet {
-			public Packet(String msg, int severity) {
-				this.msg = msg;
-				this.severity = severity;
-			}
-
-			public String getMessage() {
-				return msg;
-			}
-
-			public int getSeverity() {
-				return severity;
-			}
-
-			private String msg = null;
-			private int severity = -1;
-		}
-
-		public ErrorTable() {
-		}
-
-		public Packet put(int state, String msg, int severity) {
-			Packet packet = new Packet(msg, severity);
-			map.put(new Integer(state), packet);
-			return packet;
-		}
-
-		public String getMessage(int state) {
-			return getPacket(state).getMessage();
-		}
-
-		public int getSeverity(int state) {
-			return getPacket(state).getSeverity();
-		}
-
-		private Packet getPacket(int state) {
-			return (Packet) map.get(new Integer(state));
-		}
-
-		private Hashtable map = new Hashtable();
-	}
-
-	private static interface NodeType {
-		static final int ATTRIBUTE = 0;
-		static final int ELEMENT = 1;
-		static final int DOCUMENT_TYPE = 2;
-		static final int TEXT = 3;
-		static final int COMMENT = 4;
-		static final int CDATA_SECTION = 5;
-		static final int PROCESSING_INSTRUCTION = 6;
-		static final int ENTITY_REFERENCE = 7;
-
-		static final int MAX_TYPE = 8;
-	}
-
-	// error messages
-	private static final String MSG_NO_ERROR = HTMLCoreMessages.No_error__UI_;
-	private static final String MSG_UNDEFINED_ATTR_ERROR = HTMLCoreMessages.Undefined_attribute_name___ERROR_;
-	private static final String MSG_UNDEFINED_VALUE_ERROR = HTMLCoreMessages.Undefined_attribute_value__ERROR_;
-	private static final String MSG_DUPLICATE_ATTR_ERROR = HTMLCoreMessages.Multiple_values_specified__ERROR_;
-	private static final String MSG_MISMATCHED_ATTR_ERROR = HTMLCoreMessages.Attribute_name___0___uses__ERROR_;
-	private static final String MSG_INVALID_ATTR_ERROR = HTMLCoreMessages.Invalid_attribute_name___0_ERROR_;
-	private static final String MSG_ATTR_NO_VALUE_ERROR = HTMLCoreMessages.Invalid_attribute___0____ERROR_;
-	private static final String MSG_INVALID_CONTENT_ERROR = HTMLCoreMessages.Invalid_location_of_tag____ERROR_;
-	private static final String MSG_DUPLICATE_TAG_ERROR = HTMLCoreMessages.Duplicate_tag___0____ERROR_;
-	private static final String MSG_MISSING_START_TAG_ERROR = HTMLCoreMessages.No_start_tag____0_____ERROR_;
-	private static final String MSG_MISSING_END_TAG_ERROR = HTMLCoreMessages.No_end_tag_____0_____ERROR_;
-	private static final String MSG_UNNECESSARY_END_TAG_ERROR = HTMLCoreMessages.End_tag_____0____not_neede_ERROR_;
-	private static final String MSG_UNDEFINED_TAG_ERROR = HTMLCoreMessages.Unknown_tag___0____ERROR_;
-	private static final String MSG_MISMATCHED_TAG_ERROR = HTMLCoreMessages.Tag_name___0___uses_wrong__ERROR_;
-	private static final String MSG_INVALID_TAG_ERROR = HTMLCoreMessages.Invalid_tag_name___0____ERROR_;
-	private static final String MSG_INVALID_DIRECTIVE_ERROR = HTMLCoreMessages.Invalid_JSP_directive___0__ERROR_;
-	private static final String MSG_INVALID_TEXT_ERROR = HTMLCoreMessages.Invalid_text_string___0____ERROR_;
-	private static final String MSG_INVALID_CHAR_ERROR = HTMLCoreMessages.Invalid_character_used_in__ERROR_;
-	private static final String MSG_UNKNOWN_ERROR = HTMLCoreMessages.Unknown_error__ERROR_;
-	private static final String MSG_UNCLOSED_START_TAG_ERROR = HTMLCoreMessages.Start_tag____0____not_clos_ERROR_;
-	private static final String MSG_UNCLOSED_END_TAG_ERROR = HTMLCoreMessages.End_tag_____0____not_close_ERROR_;
-	private static final String MSG_MISMATCHED_ATTR_VALUE_ERROR = HTMLCoreMessages.Attribute_value___0___uses_ERROR_;
-	private static final String MSG_UNCLOSED_COMMENT_ERROR = HTMLCoreMessages.Comment_not_closed__ERROR_;
-	private static final String MSG_UNCLOSED_DOCTYPE_ERROR = HTMLCoreMessages.DOCTYPE_declaration_not_cl_ERROR_;
-	private static final String MSG_UNCLOSED_PI_ERROR = HTMLCoreMessages.Processing_instruction_not_ERROR_;
-	private static final String MSG_UNCLOSED_CDATA_SECTION_ERROR = HTMLCoreMessages.CDATA_section_not_closed__ERROR_;
-	private static final String MSG_INVALID_EMPTY_ELEMENT_TAG = HTMLCoreMessages._ERROR_Tag___0___should_be_an_empty_element_tag_1;
-	private static final String MSG_UNCLOSED_ATTR_VALUE_ERROR = HTMLCoreMessages._ERROR_Attribute_value___0___not_closed__1;
-	private ErrorTable[] errTables = new ErrorTable[NodeType.MAX_TYPE];
-
-//	static {
-//		for (int i = 0; i < NodeType.MAX_TYPE; i++) {
-//			errTables[i] = new ErrorTable();
-//		}
-//		// NOTE: The severities are just stub.  They must be reviewed.
-//		// -- 8/30/2001
-//
-//		// attribute error map
-//		ErrorTable attrTable = errTables[NodeType.ATTRIBUTE];// short hand
-//		attrTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-//		attrTable.put(UNDEFINED_NAME_ERROR, MSG_UNDEFINED_ATTR_ERROR, ValidationMessage.WARNING);
-//		attrTable.put(UNDEFINED_VALUE_ERROR, MSG_UNDEFINED_VALUE_ERROR, ValidationMessage.WARNING);
-//		attrTable.put(MISMATCHED_ERROR, MSG_MISMATCHED_ATTR_ERROR, ValidationMessage.WARNING);
-//		attrTable.put(INVALID_NAME_ERROR, MSG_INVALID_ATTR_ERROR, ValidationMessage.WARNING);
-//		attrTable.put(INVALID_ATTR_ERROR, MSG_ATTR_NO_VALUE_ERROR, ValidationMessage.WARNING);
-//		attrTable.put(DUPLICATE_ERROR, MSG_DUPLICATE_ATTR_ERROR, ValidationMessage.WARNING);
-//		attrTable.put(MISMATCHED_VALUE_ERROR, MSG_MISMATCHED_ATTR_VALUE_ERROR, ValidationMessage.ERROR);
-//		//<<D210422
-//		attrTable.put(UNCLOSED_ATTR_VALUE, MSG_UNCLOSED_ATTR_VALUE_ERROR, ValidationMessage.WARNING);
-//		//D210422
-//		// element error map
-//		ErrorTable elemTable = errTables[NodeType.ELEMENT];// short hand
-//		elemTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-//		elemTable.put(UNDEFINED_NAME_ERROR, MSG_UNDEFINED_TAG_ERROR, ValidationMessage.WARNING);
-//		elemTable.put(INVALID_NAME_ERROR, MSG_INVALID_TAG_ERROR, ValidationMessage.ERROR);
-//		elemTable.put(MISMATCHED_ERROR, MSG_MISMATCHED_TAG_ERROR, ValidationMessage.WARNING);
-//		elemTable.put(MISMATCHED_END_TAG_ERROR, MSG_MISMATCHED_TAG_ERROR, ValidationMessage.ERROR);
-//		elemTable.put(MISSING_START_TAG_ERROR, MSG_MISSING_START_TAG_ERROR, ValidationMessage.ERROR);
-//		elemTable.put(MISSING_END_TAG_ERROR, MSG_MISSING_END_TAG_ERROR, ValidationMessage.WARNING);
-//		elemTable.put(UNNECESSARY_END_TAG_ERROR, MSG_UNNECESSARY_END_TAG_ERROR, ValidationMessage.WARNING);
-//		elemTable.put(INVALID_DIRECTIVE_ERROR, MSG_INVALID_DIRECTIVE_ERROR, ValidationMessage.ERROR);
-//		elemTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
-//		elemTable.put(DUPLICATE_ERROR, MSG_DUPLICATE_TAG_ERROR, ValidationMessage.WARNING);
-//		elemTable.put(COEXISTENCE_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
-//		elemTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_START_TAG_ERROR, ValidationMessage.ERROR);
-//		elemTable.put(UNCLOSED_END_TAG_ERROR, MSG_UNCLOSED_END_TAG_ERROR, ValidationMessage.ERROR);
-//		elemTable.put(INVALID_EMPTY_ELEMENT_TAG, MSG_INVALID_EMPTY_ELEMENT_TAG, ValidationMessage.WARNING);
-//
-//		// document type error map
-//		ErrorTable docTable = errTables[NodeType.DOCUMENT_TYPE];// short hand
-//		docTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-//		docTable.put(DUPLICATE_ERROR, MSG_DUPLICATE_TAG_ERROR, ValidationMessage.ERROR);
-//		docTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
-//		docTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_DOCTYPE_ERROR, ValidationMessage.ERROR);
-//
-//		// text error map
-//		ErrorTable textTable = errTables[NodeType.TEXT];
-//		textTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-//		textTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_TEXT_ERROR, ValidationMessage.WARNING);
-//		textTable.put(INVALID_CHAR_ERROR, MSG_INVALID_CHAR_ERROR, ValidationMessage.WARNING);
-//
-//		// comment error map
-//		ErrorTable commTable = errTables[NodeType.COMMENT];
-//		commTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-//		commTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
-//		commTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_COMMENT_ERROR, ValidationMessage.ERROR);
-//
-//		// cdata section error map
-//		ErrorTable cdatTable = errTables[NodeType.CDATA_SECTION];
-//		cdatTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-//		cdatTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
-//		cdatTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_CDATA_SECTION_ERROR, ValidationMessage.ERROR);
-//
-//		// processing instruction error map
-//		ErrorTable piTable = errTables[NodeType.PROCESSING_INSTRUCTION];
-//		piTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-//		piTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
-//		piTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_PI_ERROR, ValidationMessage.ERROR);
-//
-//		// entity reference error map
-//		ErrorTable erTable = errTables[NodeType.ENTITY_REFERENCE];
-//		erTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-//		erTable.put(UNDEFINED_NAME_ERROR, MSG_UNDEFINED_TAG_ERROR, ValidationMessage.WARNING);
-//		erTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
-//	}
-
-	/**
-	 */
-	public ValidationMessage createMessage(ErrorInfo info) {
-		String errorMsg = getErrorMessage(info);
-		int errorSeverity = getErrorSeverity(info);
-		return new ValidationMessage(errorMsg, info.getOffset(), info.getLength(), errorSeverity);
-	}
-
-	private String getErrorMessage(ErrorInfo info) {
-		ErrorTable tab = getErrorTable(info.getTargetType());
-		if (tab == null)
-			return MSG_UNKNOWN_ERROR;
-
-		String template = tab.getMessage(info.getState());
-		Object[] arguments = {info.getHint()};
-		String s = null;
-		try {
-			s = NLS.bind(template, arguments);
-		}
-		catch (IllegalArgumentException e) {
-			Logger.logException(e);
-			s = template + ":" + arguments.toString(); //$NON-NLS-1$
-		}
-		return s;
-	}
-
-	/**
-	 */
-	private int getErrorSeverity(ErrorInfo info) {
-		ErrorTable tab = getErrorTable(info.getTargetType());
-		if (tab == null)
-			return 0;
-		return tab.getSeverity(info.getState());
-	}
-
-	private ErrorTable getErrorTable(short nodetype) {
-		ErrorTable tab = null;
-		switch (nodetype) {
-			case Node.ATTRIBUTE_NODE :
-				tab = errTables[NodeType.ATTRIBUTE];
-				break;
-			case Node.ELEMENT_NODE :
-				tab = errTables[NodeType.ELEMENT];
-				break;
-			case Node.DOCUMENT_TYPE_NODE :
-				tab = errTables[NodeType.DOCUMENT_TYPE];
-				break;
-			case Node.TEXT_NODE :
-				tab = errTables[NodeType.TEXT];
-				break;
-			case Node.COMMENT_NODE :
-				tab = errTables[NodeType.COMMENT];
-				break;
-			case Node.CDATA_SECTION_NODE :
-				tab = errTables[NodeType.CDATA_SECTION];
-				break;
-			case Node.PROCESSING_INSTRUCTION_NODE :
-				tab = errTables[NodeType.PROCESSING_INSTRUCTION];
-				break;
-			case Node.ENTITY_REFERENCE_NODE :
-				tab = errTables[NodeType.ENTITY_REFERENCE];
-				break;
-			default :
-				return null;
-		}
-		return tab;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NamespaceValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NamespaceValidator.java
deleted file mode 100644
index f9e31ac..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NamespaceValidator.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-public class NamespaceValidator extends PrimeValidator implements ErrorState {
-
-	private final static String XMLNS_PREFIX = "xmlns";//$NON-NLS-1$
-	private final static String NS_SEPARATOR = ":";//$NON-NLS-1$
-
-	public NamespaceValidator() {
-		super();
-	}
-
-	public boolean isAdapterForType(Object type) {
-		return ((type == NamespaceValidator.class) || super.isAdapterForType(type));
-	}
-
-	public void validate(IndexedRegion node) {
-		Element target = (Element) node;
-		if (isXMLElement(target) && hasUnknownPrefix(target)) {
-			IDOMElement e = (IDOMElement) target;
-			if (!isValidPrefix(e.getPrefix(), target) && !e.isCommentTag()) {
-				// report unknown tag error.
-				Segment errorSeg = FMUtil.getSegment(e, FMUtil.SEG_START_TAG);
-				if (errorSeg != null)
-					reporter.report(new ErrorInfoImpl(UNDEFINED_NAME_ERROR, errorSeg, e));
-			}
-		}
-		// (2) check prefix of each attr 
-		NamedNodeMap attrs = target.getAttributes();
-		for (int i = 0; i < attrs.getLength(); i++) {
-			Node n = attrs.item(i);
-			if (!(n instanceof IDOMAttr))
-				continue;
-			IDOMAttr a = (IDOMAttr) n;
-			String prefix = a.getPrefix();
-			if ((prefix != null) && isUnknownAttr(a, target)) {
-				// The attr has unknown prefix.  So, check it.
-				if (!isValidPrefix(prefix, target)) {
-					// report unknown attr error.
-					ITextRegion r = a.getNameRegion();
-					if (r == null)
-						continue;
-					int a_offset = a.getNameRegionStartOffset();
-					int a_length = a.getNameRegion().getLength();
-					reporter.report(new ErrorInfoImpl(UNDEFINED_NAME_ERROR, new Segment(a_offset, a_length), a));
-				}
-			}
-		}
-	}
-
-	// private methods	
-	private boolean isXMLElement(Element target) {
-		return target instanceof IDOMElement;
-	}
-
-	private boolean hasUnknownPrefix(Element target) {
-		return isUnknownElement(target) && CMUtil.isForeign(target);
-	}
-
-	private boolean isUnknownElement(Element target) {
-		CMElementDeclaration dec = CMUtil.getDeclaration(target);
-		return dec == null;
-	}
-
-	private boolean isUnknownAttr(IDOMAttr attr, Element target) {
-		CMElementDeclaration dec = CMUtil.getDeclaration(target);
-		if (dec == null)
-			return true; // unknown.
-		CMNamedNodeMap adecls = dec.getAttributes();
-		CMAttributeDeclaration adec = (CMAttributeDeclaration) adecls.getNamedItem(attr.getName());
-		return adec == null;
-	}
-
-	private boolean isValidPrefix(String prefix, Element e) {
-		if (prefix.equals(XMLNS_PREFIX))
-			return true; // "xmlns:foo" attr is always valid.
-
-		// (1) check the element has the namespace definition or not.
-		if (isValidPrefixWithinElement(prefix, e))
-			return true;
-
-		// (2) check ancestors of the element have the namespace definition or not.
-		Element parent = SMUtil.getParentElement(e);
-		while (parent != null) {
-			if (isValidPrefixWithinElement(prefix, parent))
-				return true;
-			parent = SMUtil.getParentElement(parent);
-		}
-		return false;
-	}
-
-	private boolean isValidPrefixWithinElement(String prefix, Element e) {
-		String ns = XMLNS_PREFIX + NS_SEPARATOR + prefix;
-		NamedNodeMap attrs = e.getAttributes();
-		for (int i = 0; i < attrs.getLength(); i++) {
-			Node n = attrs.item(i);
-			if (n == null)
-				continue;
-			if (n.getNodeType() != Node.ATTRIBUTE_NODE)
-				continue;
-			if (ns.equals(((Attr) n).getName()))
-				return true;
-		}
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NullValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NullValidator.java
deleted file mode 100644
index 165c4a6..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NullValidator.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.wst.html.core.internal.validate;
-
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.validate.ValidationReporter;
-import org.eclipse.wst.xml.core.internal.validate.ValidationComponent;
-
-/**
- * NullValidator class is intended to be a replacement of null
- * for ValidationComponent type.
- */
-final class NullValidator extends ValidationComponent {
-
-	public NullValidator() {
-		super();
-	}
-
-	public void validate(IndexedRegion node) {
-		return;
-	}
-
-	public void setReporter(ValidationReporter reporter) {
-		return;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/PrimeValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/PrimeValidator.java
deleted file mode 100644
index f9aa0e5..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/PrimeValidator.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-
-
-import org.eclipse.wst.xml.core.internal.validate.ValidationComponent;
-
-abstract class PrimeValidator extends ValidationComponent {
-
-	/**
-	 * PrimeValidator constructor comment.
-	 */
-	public PrimeValidator() {
-		super();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SMUtil.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SMUtil.java
deleted file mode 100644
index 8d3b9c0..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SMUtil.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.wst.html.core.internal.validate;
-
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-final class SMUtil {
-
-	private SMUtil() {
-		super();
-	}
-
-	/* get an ancestor element ignoring implicit ones. */
-	public static Element getParentElement(Node child) {
-		if (child == null)
-			return null;
-
-		Node p = child.getParentNode();
-		while (p != null) {
-			if (p.getNodeType() == Node.ELEMENT_NODE) {
-				return (Element) p;
-			}
-			p = p.getParentNode();
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/Segment.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/Segment.java
deleted file mode 100644
index 48baf4e..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/Segment.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-
-public class Segment {
-
-	private int offset = 0;
-	private int length = 0;
-
-	/**
-	 */
-	public Segment(int offset, int length) {
-		super();
-		this.offset = offset;
-		this.length = length;
-	}
-
-	public Segment(IStructuredDocumentRegion region) {
-		super();
-		this.offset = region.getStartOffset();
-		this.length = region.getLength();
-	}
-
-	/**
-	 * NOTE: 'start' and 'end' must be the start and end of the contiguous regions.
-	 * Otherwise, this class cannot work correctly.
-	 */
-	public Segment(IStructuredDocumentRegion start, IStructuredDocumentRegion end) {
-		super();
-		this.offset = start.getStartOffset();
-		int endOffset = (end == null) ? start.getEndOffset() : end.getEndOffset();
-		this.length = endOffset - this.offset;
-	}
-
-	//public Segment(ITextRegion start, ITextRegion end) {
-	//	super();
-	//	this.offset = start.getStartOffset();
-	//	int endOffset = (end == null) ? start.getEndOffset() : end.getEndOffset();
-	//	this.length = endOffset - this.offset;
-	//}
-	/**
-	 */
-	public int getLength() {
-		return this.length;
-	}
-
-	/**
-	 */
-	public int getOffset() {
-		return this.offset;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SyntaxValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SyntaxValidator.java
deleted file mode 100644
index 75cc031..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SyntaxValidator.java
+++ /dev/null
@@ -1,346 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-import java.util.Iterator;
-
-import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeEntry;
-import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeRegistry;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.internal.validate.ErrorInfo;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.document.InvalidCharacterException;
-import org.eclipse.wst.xml.core.internal.document.SourceValidator;
-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;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-class SyntaxValidator extends PrimeValidator implements ErrorState {
-
-
-	static private boolean isValidRegion(ITextRegion rgn) {
-		String type = rgn.getType();
-		if (type == null)
-			return false; // no type is invalid.
-		if (type == DOMRegionContext.XML_END_TAG_OPEN || type == DOMRegionContext.XML_TAG_NAME || type == DOMRegionContext.XML_TAG_CLOSE) {
-			return true;
-		}
-		return false;
-	}
-
-	static private String getTagName(IStructuredDocumentRegion tag) {
-		ITextRegionList regions = tag.getRegions();
-		Iterator iter = regions.iterator();
-		while (iter.hasNext()) {
-			ITextRegion rgn = (ITextRegion) iter.next();
-			if (rgn.getType() == DOMRegionContext.XML_TAG_NAME)
-				return tag.getText(rgn);
-		}
-		return "";//$NON-NLS-1$
-	}
-
-	static private boolean isEmptyContent(CMElementDeclaration decl) {
-		return (decl != null) && (decl.getContentType() == CMElementDeclaration.EMPTY);
-	}
-
-	public SyntaxValidator() {
-		super();
-	}
-
-	public boolean isAdapterForType(Object type) {
-		return ((type == SyntaxValidator.class) || super.isAdapterForType(type));
-	}
-
-	class ElementInfo {
-		public ElementInfo() {
-			super();
-		}
-
-		public IDOMElement target = null;
-		public CMElementDeclaration decl = null;
-		public IStructuredDocumentRegion startTag = null;
-		public IStructuredDocumentRegion endTag = null;
-		public boolean hasStartTag = false;
-		public boolean hasEndTag = false;
-		public boolean isXHTML = false;
-	}
-
-	public void validate(IndexedRegion indexedNode) {
-		Node node = (Node) indexedNode;
-		validateChildren(node);
-
-		if (node.getNodeType() != Node.ELEMENT_NODE)
-			return;
-		if (!(node instanceof IDOMElement))
-			return;
-
-		ElementInfo info = new ElementInfo();
-		info.target = (IDOMElement) node;
-
-		// gather information to validate from target at once.
-		getInfo(info);
-
-		if (info.target.isGlobalTag()) {
-			validateTags(info);
-			validateNames(info);
-			if (info.decl != null && info.isXHTML) {
-				validateTagCase(info);
-			}
-		}
-	}
-
-	private void getInfo(ElementInfo info) {
-		info.decl = CMUtil.getDeclaration(info.target);
-		info.startTag = info.target.getStartStructuredDocumentRegion();
-		info.endTag = info.target.getEndStructuredDocumentRegion();
-
-		info.hasStartTag = (info.startTag != null);
-		info.hasEndTag = (info.endTag != null);
-
-		Document doc = info.target.getOwnerDocument();
-		if (!(doc instanceof IDOMDocument))
-			return;
-		String typeid = ((IDOMDocument) doc).getDocumentTypeId();
-		if (typeid != null) {
-			HTMLDocumentTypeEntry entry = HTMLDocumentTypeRegistry.getInstance().getEntry(typeid);
-			info.isXHTML = (entry != null && entry.isXMLType());
-		}
-	}
-
-	class TagErrorInfoImpl extends AbstractErrorInfo {
-		private String hint = null;
-
-		public TagErrorInfoImpl(int state, IStructuredDocumentRegion tag, String hint) {
-			super(state, new Segment(tag));
-			this.hint = hint;
-		}
-
-		public String getHint() {
-			return hint;
-		}
-
-		public short getTargetType() {
-			return Node.ELEMENT_NODE;
-		}
-	}
-
-	private boolean isEndTagCorrupted(ElementInfo info) {
-		ITextRegionList regions = info.endTag.getRegions();
-		if (regions == null || regions.isEmpty())
-			return false;
-		Iterator iter = regions.iterator();
-		while (iter.hasNext()) {
-			ITextRegion rgn = (ITextRegion) iter.next();
-			if (!isValidRegion(rgn))
-				return true; // found invalid region type.
-		}
-		return false; // all regions are valid.
-	}
-
-	private String getEndTagFullText(ElementInfo info) {
-		String hint = "";//$NON-NLS-1$
-		ITextRegionList regions = info.endTag.getRegions();
-		Iterator iter = regions.iterator();
-		while (iter.hasNext()) {
-			ITextRegion rgn = (ITextRegion) iter.next();
-			String type = rgn.getType();
-			if (type == null)
-				continue;
-			if (type == DOMRegionContext.XML_END_TAG_OPEN || type == DOMRegionContext.XML_TAG_CLOSE)
-				continue;
-			hint += info.endTag.getFullText(rgn);
-		}
-		return hint;
-	}
-
-	private void reportCorruptedEndTagError(ElementInfo info) {
-		String hint = getEndTagFullText(info);
-		TagErrorInfoImpl error = new TagErrorInfoImpl(UNDEFINED_NAME_ERROR, info.endTag, hint);
-		this.reporter.report(error);
-	}
-
-	private void validateTags(ElementInfo info) {
-		if (info.hasStartTag) {
-			if (!info.target.isStartTagClosed()) {
-				// Mark the whole START tag as an error segment.
-				Segment errorSeg = new Segment(info.startTag);
-				report(UNCLOSED_TAG_ERROR, errorSeg, info.target);
-			}
-		}
-		else {
-			if (info.hasEndTag) {
-				if (info.decl != null) {
-					if (CMUtil.isHTML(info.decl) && !info.target.hasChildNodes()) {
-						if (info.target.isContainer()) {
-							// Set the error mark to the start of the element.
-							Segment errorSeg = new Segment(info.target.getStartOffset(), 0);
-							report(MISSING_START_TAG_ERROR, errorSeg, info.target);
-						}
-						else {
-							// Mark the whole END tag as an error segment.
-							Segment errorSeg = new Segment(info.endTag);
-							report(UNNECESSARY_END_TAG_ERROR, errorSeg, info.target);
-						}
-					}
-					else if (info.isXHTML) {
-						Segment errorSeg = new Segment(info.target.getStartOffset(), 0);
-						report(MISSING_START_TAG_ERROR, errorSeg, info.target);
-					}
-				}
-			}
-		}
-
-		if (info.hasEndTag) {
-			if (!info.target.isClosed()) {
-				// Set the whole END tag as error segment.
-				Segment errorSeg = new Segment(info.endTag);
-				report(UNCLOSED_END_TAG_ERROR, errorSeg, info.target);
-			}
-		}
-		else {
-			if (info.isXHTML) { // XHTML
-				if (!info.target.isEmptyTag()) {
-					if (isEmptyContent(info.decl)) {
-						// EMPTY element should be written in <.../> form.
-						Segment errorSeg = FMUtil.getSegment(info.target, FMUtil.SEG_START_TAG);
-						report(INVALID_EMPTY_ELEMENT_TAG, errorSeg, info.target);
-					}
-					else {
-						// end tag is required.
-						Segment errorSeg = new Segment(info.target.getEndOffset(), 0);
-						report(MISSING_END_TAG_ERROR, errorSeg, info.target);
-					}
-				}
-			}
-			else { // HTML
-				if (info.hasStartTag) {
-					if (info.decl != null && CMUtil.isHTML(info.decl) && !info.target.isEmptyTag() && !CMUtil.isEndTagOmissible(info.decl)) {
-						// Set the error mark to the end of the element.
-						Segment errorSeg = new Segment(info.target.getEndOffset(), 0);
-						report(MISSING_END_TAG_ERROR, errorSeg, info.target);
-					}
-				}
-			}
-		}
-	}
-
-	/* perform validation about tag name definition. */
-	private void validateNames(ElementInfo info) {
-		boolean corrupted = info.hasEndTag && isEndTagCorrupted(info);
-		if (info.decl == null) {
-			// If no declaration is retrieved, the target is really
-			// unknown element.
-			if (!info.hasStartTag && corrupted) {
-				reportCorruptedEndTagError(info);
-			}
-			else {
-				Segment errorSeg = FMUtil.getSegment(info.target, FMUtil.SEG_START_TAG);
-				report(UNDEFINED_NAME_ERROR, errorSeg, info.target);
-			}
-		}
-		else {
-			// Even if a declaration could be retrieved, if the end
-			// tag is corrupted, it should be reported as undefined
-			// name. (D202493)
-			if (corrupted) {
-				reportCorruptedEndTagError(info);
-			}
-		}
-	}
-
-	/* perform validation tag case only for XHTML document */
-	private void validateTagCase(ElementInfo info) {
-		String declared = info.decl.getElementName();
-		String startTagName = "";//$NON-NLS-1$
-		String endTagName = "";//$NON-NLS-1$
-		if (declared == null)
-			return;
-
-		// start tag
-		if (info.hasStartTag) {
-			startTagName = getTagName(info.startTag);
-			if (!declared.equals(startTagName)) {
-				TagErrorInfoImpl error = new TagErrorInfoImpl(MISMATCHED_ERROR, info.startTag, startTagName);
-				this.reporter.report(error);
-			}
-		}
-		// end tag
-		if (info.hasEndTag) {
-			endTagName = getTagName(info.endTag);
-			if (!info.hasStartTag || (!endTagName.equals(startTagName))) {
-				if (!declared.equals(endTagName)) {
-					TagErrorInfoImpl error = new TagErrorInfoImpl(MISMATCHED_ERROR, info.endTag, endTagName);
-					this.reporter.report(error);
-				}
-			}
-		}
-	}
-
-	private void validateChildren(Node target) {
-		if ((target.getNodeType() == Node.ELEMENT_NODE) && CMUtil.isForeign((Element) target))
-			return;
-
-		for (Node child = target.getFirstChild(); child != null; child = child.getNextSibling()) {
-			switch (child.getNodeType()) {
-				case Node.TEXT_NODE :
-					{
-						IDOMNode text = (IDOMNode) child;
-						int charOffset = validateTextSource(text);
-						if (charOffset >= 0) {
-							charOffset += text.getStartOffset();
-							Segment errorSeg = new Segment(charOffset, 1);
-							if (errorSeg != null)
-								report(INVALID_CHAR_ERROR, errorSeg, text);
-						}
-						break;
-					}
-				case Node.COMMENT_NODE :
-				case Node.DOCUMENT_TYPE_NODE :
-				case Node.PROCESSING_INSTRUCTION_NODE :
-				case Node.CDATA_SECTION_NODE :
-					{
-						IDOMNode tag = (IDOMNode) child;
-						if (!tag.isClosed()) {
-							Segment errorSeg = FMUtil.getSegment(tag, FMUtil.SEG_WHOLE_TAG);
-							if (errorSeg != null)
-								report(UNCLOSED_TAG_ERROR, errorSeg, tag);
-						}
-						break;
-					}
-				default :
-					break;
-			}
-		}
-	}
-
-	private int validateTextSource(IDOMNode text) {
-		try {
-			SourceValidator validator = new SourceValidator(text);
-			validator.validateSource(text.getSource());
-		}
-		catch (InvalidCharacterException ex) {
-			return ex.getOffset();
-		}
-		return -1;
-	}
-
-	private void report(int state, Segment errorSeg, Node node) {
-		ErrorInfo info = new ErrorInfoImpl(state, errorSeg, node);
-		reporter.report(info);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/text/IHTMLPartitions.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/text/IHTMLPartitions.java
deleted file mode 100644
index e7dd5ae..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/text/IHTMLPartitions.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.text;
-
-
-/**
- * This interface is not intended to be implemented. It defines the partition
- * types for HTML. Clients should reference the partition type Strings defined
- * here directly.
- * 
- * @since 1.1
- */
-public interface IHTMLPartitions {
-
-	String HTML_DEFAULT = "org.eclipse.wst.html.HTML_DEFAULT"; //$NON-NLS-1$
-	String HTML_DECLARATION = "org.eclipse.wst.html.HTML_DECLARATION"; //$NON-NLS-1$
-	String HTML_COMMENT = "org.eclipse.wst.html.HTML_COMMENT"; //$NON-NLS-1$
-
-	String SCRIPT = "org.eclipse.wst.html.SCRIPT"; //$NON-NLS-1$
-	String SCRIPT_EVENTHANDLER = SCRIPT + ".EVENTHANDLER"; //$NON-NLS-1$
-	String STYLE = "org.eclipse.wst.html.STYLE"; //$NON-NLS-1$
-
-	// ISSUE: I think meta tag areas are here too?
-}
diff --git a/bundles/org.eclipse.wst.xml.core/.classpath b/bundles/org.eclipse.wst.xml.core/.classpath
deleted file mode 100644
index 0f97d08..0000000
--- a/bundles/org.eclipse.wst.xml.core/.classpath
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src-contentmodel"/>
-	<classpathentry kind="src" path="src-search"/>
-	<classpathentry kind="src" path="src-validation"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="src-catalog"/>
-	<classpathentry kind="src" path="src-emfModelSynch"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
-		<accessrules>
-			<accessrule kind="accessible" pattern="org/eclipse/wst/validation/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/wst/common/internal/emf/resource/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/wst/common/internal/emf/utilities/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/wst/common/internal/emfworkbench/**"/>
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4">
-		<accessrules>
-			<accessrule kind="accessible" pattern="org/apache/xerces/dom/TreeWalkerImpl"/>
-			<accessrule kind="accessible" pattern="org/w3c/dom/ranges/DocumentRange"/>
-			<accessrule kind="accessible" pattern="org/w3c/dom/ranges/Range"/>
-			<accessrule kind="accessible" pattern="org/w3c/dom/traversal/DocumentTraversal"/>
-			<accessrule kind="accessible" pattern="org/w3c/dom/traversal/NodeFilter"/>
-			<accessrule kind="accessible" pattern="org/w3c/dom/traversal/NodeIterator"/>
-			<accessrule kind="accessible" pattern="org/w3c/dom/traversal/TreeWalker"/>
-			<accessrule kind="accessible" pattern="org/w3c/dom/ranges/RangeException"/>
-			<accessrule kind="accessible" pattern="org/apache/xerces/impl/XMLErrorReporter"/>
-			<accessrule kind="accessible" pattern="org/apache/xerces/parsers/StandardParserConfiguration"/>
-			<accessrule kind="accessible" pattern="org/apache/xerces/xni/Augmentations"/>
-			<accessrule kind="accessible" pattern="org/apache/xerces/xni/NamespaceContext"/>
-			<accessrule kind="accessible" pattern="org/apache/xerces/xni/QName"/>
-			<accessrule kind="accessible" pattern="org/apache/xerces/xni/XMLAttributes"/>
-			<accessrule kind="accessible" pattern="org/apache/xerces/xni/XMLLocator"/>
-			<accessrule kind="accessible" pattern="org/apache/xerces/xni/XMLResourceIdentifier"/>
-			<accessrule kind="accessible" pattern="org/apache/xerces/xni/XNIException"/>
-			<accessrule kind="accessible" pattern="org/apache/xerces/xni/parser/XMLEntityResolver"/>
-			<accessrule kind="accessible" pattern="org/apache/xerces/xni/parser/XMLInputSource"/>
-			<accessrule kind="accessible" pattern="org/apache/xerces/parsers/SAXParser"/>
-			<accessrule kind="accessible" pattern="org/apache/xerces/parsers/AbstractSAXParser"/>
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.wst.xml.core/.cvsignore b/bundles/org.eclipse.wst.xml.core/.cvsignore
deleted file mode 100644
index 273f8bc..0000000
--- a/bundles/org.eclipse.wst.xml.core/.cvsignore
+++ /dev/null
@@ -1,8 +0,0 @@
-bin
-temp.folder
-build.xml
-xmlmodel.jar
-org.eclipse.wst.xml.core_1.0.0.jar
-@dot
-src.zip
-javaCompiler...args
diff --git a/bundles/org.eclipse.wst.xml.core/.options b/bundles/org.eclipse.wst.xml.core/.options
deleted file mode 100644
index 046e4f6..0000000
--- a/bundles/org.eclipse.wst.xml.core/.options
+++ /dev/null
@@ -1,4 +0,0 @@
-org.eclipse.wst.xml.core/debug=true
-org.eclipse.wst.xml.core/debug/tracefilter=
-org.eclipse.wst.xml.core/debug/cmdocumentmanager=false
-org.eclipse.wst.xml.core/debug/cmdocumentcache=false
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/.project b/bundles/org.eclipse.wst.xml.core/.project
deleted file mode 100644
index c417514..0000000
--- a/bundles/org.eclipse.wst.xml.core/.project
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.xml.core</name>
-	<comment></comment>
-	<projects></projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index afa5c91..0000000
--- a/bundles/org.eclipse.wst.xml.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.wst.xml.core/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index 7ec5750..0000000
--- a/bundles/org.eclipse.wst.xml.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.wst.xml.core/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 3405307..0000000
--- a/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,79 +0,0 @@
-#Sat Mar 24 02:18:23 EDT 2007

-eclipse.preferences.version=1

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

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

-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.wst.xml.core/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 1ca5c5e..0000000
--- a/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Nov 15 02:26:10 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<templates/>
diff --git a/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index c59368c..0000000
--- a/bundles/org.eclipse.wst.xml.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.wst.xml.core/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 86ca5a7..0000000
--- a/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,16 +0,0 @@
-#Wed Nov 15 02:13:31 EST 2006
-compilers.incompatible-environment=0
-compilers.p.build=0
-compilers.p.deprecated=1
-compilers.p.illegal-att-value=0
-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=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.wst.xml.core/DevTimeSupport/HeadParsers/XML10Names.jFlex b/bundles/org.eclipse.wst.xml.core/DevTimeSupport/HeadParsers/XML10Names.jFlex
deleted file mode 100644
index c33e65b..0000000
--- a/bundles/org.eclipse.wst.xml.core/DevTimeSupport/HeadParsers/XML10Names.jFlex
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*nlsXXX*/
-package org.eclipse.wst.xml.core.internal.parser;
-
-
-
-%%
-
-%table
-%public
-%final
-%class XML10Names
-%function isValidXML10Name
-%type boolean
-%unicode
-%ignorecase
-%buffer 2048
-%apiprivate
-
-S = (\x20 | \x09 | \x0D | \x0A)
-
-BaseChar = [\u0041-\u005A\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\u0131\u0134-\u013E\u0141-\u0148\u014A-\u017E\u0180-\u01C3\u01CD-\u01F0\u01F4-\u01F5\u01FA-\u0217\u0250-\u02A8\u02BB-\u02C1\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03CE\u03D0-\u03D6\u03DA\u03DC\u03DE\u03E0\u03E2-\u03F3\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E-\u0481\u0490-\u04C4\u04C7-\u04C8\u04CB-\u04CC\u04D0-\u04EB\u04EE-\u04F5\u04F8-\u04F9\u0531-\u0556\u0559\u0561-\u0586\u05D0-\u05EA\u05F0-\u05F2\u0621-\u063A\u0641-\u064A\u0671-\u06B7\u06BA-\u06BE\u06C0-\u06CE\u06D0-\u06D3\u06D5\u06E5-\u06E6\u0905-\u0939\u093D\u0958-\u0961\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8B\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AE0\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B36-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CDE\u0CE0-\u0CE1\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D60-\u0D61\u0E01-\u0E2E\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EAE\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0F40-\u0F47\u0F49-\u0F69\u10A0-\u10C5\u10D0-\u10F6\u1100\u1102-\u1103\u1105-\u1107\u1109\u110B-\u110C\u110E-\u1112\u113C\u113E\u1140\u114C\u114E\u1150\u1154-\u1155\u1159\u115F-\u1161\u1163\u1165\u1167\u1169\u116D-\u116E\u1172-\u1173\u1175\u119E\u11A8\u11AB\u11AE-\u11AF\u11B7-\u11B8\u11BA\u11BC-\u11C2\u11EB\u11F0\u11F9\u1E00-\u1E9B\u1EA0-\u1EF9\u1F00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2126\u212A-\u212B\u212E\u2180-\u2182\u3041-\u3094\u30A1-\u30FA\u3105-\u312C\uAC00-\uD7A3]
-
-Ideographic = [\u4E00-\u9FA5\u3007\u3021-\u3029]
-
-CombiningChar = [\u0300-\u0345\u0360-\u0361\u0483-\u0486\u0591-\u05A1\u05A3-\u05B9\u05BB-\u05BD\u05BF\u05C1-\u05C2\u05C4\u064B-\u0652\u0670\u06D6-\u06DC\u06DD-\u06DF\u06E0-\u06E4\u06E7-\u06E8\u06EA-\u06ED\u0901-\u0903\u093C\u093E-\u094C\u094D\u0951-\u0954\u0962-\u0963\u0981-\u0983\u09BC\u09BE\u09BF\u09C0-\u09C4\u09C7-\u09C8\u09CB-\u09CD\u09D7\u09E2-\u09E3\u0A02\u0A3C\u0A3E\u0A3F\u0A40-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A70-\u0A71\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0B01-\u0B03\u0B3C\u0B3E-\u0B43\u0B47-\u0B48\u0B4B-\u0B4D\u0B56-\u0B57\u0B82-\u0B83\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C01-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C82-\u0C83\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5-\u0CD6\u0D02-\u0D03\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB-\u0EBC\u0EC8-\u0ECD\u0F18-\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86-\u0F8B\u0F90-\u0F95\u0F97\u0F99-\u0FAD\u0FB1-\u0FB7\u0FB9\u20D0-\u20DC\u20E1\u302A-\u302F\u3099\u309A]
-
-Digit =  [\u0030-\u0039\u0660-\u0669\u06F0-\u06F9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE7-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29]
-
-Extender = [\u00B7\u02D0\u02D1\u0387\u0640\u0E46\u0EC6\u3005\u3031-\u3035\u309D-\u309E\u30FC-\u30FE]
-
-Letter = ({BaseChar} | {Ideographic})
-
-NameChar = ({Letter} | {Digit} | . | - | _ | : | {CombiningChar} | {Extender})
-
-Name = ({Letter} | _ | : ) ({NameChar})*
-
-
-
-%{
-
-	/**
-	 * Creates a new scanner
-	 */
-	public XML10Names() {
-		this.zzReader = null;
-	}
-
-	public boolean isValidXML10Name(String stringToCheck) {
-		boolean result = false;
-		yyreset(new java.io.StringReader(stringToCheck));
-		try {
-			result = isValidXML10Name();
-		}
-		catch (java.io.IOException e) {
-			// should be impossible with strings, but if occurs, just means
-			// "not"
-			result = false;
-		}
-		return result;
-	}
-
-%}
-
-
-
-
-%%
-
-<YYINITIAL>
-{
-
-	// don't match if contains trailing or embedded space
-	{Name} {S}+         {return false;}
-	{Name} {S}+ {Name}  {return false;}
-
-	{Name}              {return true;}
-
-	// match anything should come last
-	.                   {return false;}
-
-}
-
-
-// this rule always in effect
-<<EOF>>
-{
-	{return false;}
-}
-
-
diff --git a/bundles/org.eclipse.wst.xml.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer.jFlex b/bundles/org.eclipse.wst.xml.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer.jFlex
deleted file mode 100644
index 15d5b0a..0000000
--- a/bundles/org.eclipse.wst.xml.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer.jFlex
+++ /dev/null
@@ -1,254 +0,0 @@
-/*******************************************************************************

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

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-/*nlsXXX*/

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

-import java.io.IOException;

-import java.io.Reader;

-

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

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

-

-

-%%

-

-%{

-

-

-	private boolean hasMore = true;

-	private final static int MAX_TO_SCAN = 8000;

-	StringBuffer string = new StringBuffer();

-	// state stack for easier state handling

-	private IntStack fStateStack = new IntStack();

-	private String valueText = null;

-

-

-	public XMLHeadTokenizer() {

-		super();

-	}

-

-	  public void reset (Reader in) {

-                /* the input device */

-                zzReader = in;

-

-                /* the current state of the DFA */

-                zzState = 0;

-

-                /* the current lexical state */

-                zzLexicalState = YYINITIAL;

-

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

-                 the source of the yytext() string */

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

-

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

-                zzMarkedPos = 0;

-

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

-                zzPushbackPos = 0;

-

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

-                zzCurrentPos = 0;

-

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

-                zzStartRead = 0;

-

-                /**

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

-                 * from input

-                 */

-                zzEndRead = 0;

-

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

-                yyline = 0;

-

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

-                yychar = 0;

-

-                /**

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

-                 * of the matched text

-                 */

-                yycolumn = 0;

-

-                /**

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

-                 * of a line

-                 */

-                zzAtBOL = true;

-

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

-                zzAtEOF = false;

-

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

-                zzEOFDone = false;

-

-

-                fStateStack.clear();

-

-                hasMore = true;

-  		

-  	}

-

-

-	public final HeadParserToken getNextToken() throws IOException {

-		String context = null;

-		context = primGetNextToken();

-		HeadParserToken result = null;

-		if (valueText != null) {

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

-			valueText = null;

-		} else {

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

-		}

-		return result;

-	}

-

-	public final boolean hasMoreTokens() {

-		return hasMore && yychar < MAX_TO_SCAN;

-	}

-	private void pushCurrentState() {

-		fStateStack.push(yystate());

-

-	}

-

-	private void popState() {

-		yybegin(fStateStack.pop());

-	}

-	

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

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

-	}	

-

-%}

-

-%eof{

-	hasMore=false;

-%eof}

-

-%public

-%class XMLHeadTokenizer

-%function primGetNextToken

-%type String

-%char

-%unicode

-%ignorecase 

-//%debug

-%switch

-%buffer 8192

-

-UTF16BE = \xFE\xFF

-UTF16LE = \xFF\xFE

-UTF83ByteBOM = \xEF\xBB\xBF

-

-//SpaceChar = [\x20\x09]

-

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

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

-

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

-

-LineTerminator = \r|\n

-

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

-Z = (\x00)?

-S_UTF = {Z}{S}{Z}

-BeginAttributeValueUTF = {S_UTF}* \= {S_UTF}*

-

-%state ST_XMLDecl

-%state QuotedAttributeValue

-%state DQ_STRING

-%state SQ_STRING

-%state UnDelimitedString

-

-%%

-

-

-<YYINITIAL>  

-{

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

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

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

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

-	

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

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

-	

-}	

-	

-<ST_XMLDecl> 

-{

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

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

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

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

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

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

-}	

-

-	

-

-<QuotedAttributeValue>

-{

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

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

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

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

-

-}	

-

-

-<DQ_STRING>

-{

-

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

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

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

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

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

-

-}

-

-<SQ_STRING>

-{

-

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

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

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

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

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

-

-}

-

-<UnDelimitedString>

-{

-

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

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

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

-	{Z}<{Z}	

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

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

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

-	

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

-	

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

-

-}

-

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

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

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

-

-// this rule always in effect

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

-

-	
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/DevTimeSupport/buildNames.xml b/bundles/org.eclipse.wst.xml.core/DevTimeSupport/buildNames.xml
deleted file mode 100644
index 6d97563..0000000
--- a/bundles/org.eclipse.wst.xml.core/DevTimeSupport/buildNames.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="tokenizer" default="XML10Names">
-	
-	<!-- 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="XML10Names.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="XML10Names" 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.wst.xml.core/DevTimeSupport/buildParser.xml b/bundles/org.eclipse.wst.xml.core/DevTimeSupport/buildParser.xml
deleted file mode 100644
index 49619df..0000000
--- a/bundles/org.eclipse.wst.xml.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="XMLHeadTokenizer.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.wst.xml.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.xml.core/META-INF/MANIFEST.MF
deleted file mode 100644
index af632b8..0000000
--- a/bundles/org.eclipse.wst.xml.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,74 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.wst.xml.core; singleton:=true
-Bundle-Version: 1.1.301.qualifier
-Bundle-Activator: org.eclipse.wst.xml.core.internal.XMLCorePlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.xml.core.internal;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.catalog;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.catalog.provisional;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.cleanup;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.commentelement;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.commentelement.impl;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.commentelement.util;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.annotation;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.basic;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.factory;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.internal.annotation;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.internal.modelqueryimpl;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.internal.util;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.modelquery;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.modelquery.extension;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.util;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contenttype;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.document;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.emf2xml;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.encoding;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.formatter;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.modelhandler;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.modelquery;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.parser;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.parser.regions;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.preferences;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.propagate;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.provisional;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.provisional.contentmodel;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.provisional.contenttype;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.provisional.document;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.provisional.format;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.provisional.text;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.regions;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.search;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.search.impl;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.search.matching;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.search.quickscan;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.ssemodelquery;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.tasks;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.text;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.text.rules;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.validate;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.validation;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.validation.core;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.validation.core.logging;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.validation.eclipse;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.validation.errorcustomization;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.text
-Require-Bundle: org.apache.xerces;bundle-version="[2.9.0,3.0.0)";visibility:=reexport,
- org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.wst.common.uriresolver;bundle-version="[1.1.301,1.2.0)",
- org.eclipse.wst.sse.core;bundle-version="[1.1.300,1.2.0)",
- org.eclipse.jem.util;bundle-version="[2.0.100,3.0.0)";resolution:=optional,
- org.eclipse.wst.validation;bundle-version="[1.2.0,1.3.0)";resolution:=optional,
- org.eclipse.emf.ecore.edit;bundle-version="[2.4.0,3.0.0)";resolution:=optional,
- org.eclipse.wst.common.emf;bundle-version="[1.1.104,1.2.0)";resolution:=optional,
- org.eclipse.emf.ecore.xmi;bundle-version="[2.4.0,3.0.0)";resolution:=optional,
- org.eclipse.wst.common.emfworkbench.integration;bundle-version="[1.1.200,1.2.0)";resolution:=optional,
- org.eclipse.wst.common.core;bundle-version="[1.1.101,1.2.0)",
- com.ibm.icu;bundle-version="[3.8.1,4.0.0)"
-Bundle-ActivationPolicy: lazy; exclude:="org.eclipse.wst.xml.core.internal.contenttype"
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.wst.xml.core/README.txt b/bundles/org.eclipse.wst.xml.core/README.txt
deleted file mode 100644
index ffa6466..0000000
--- a/bundles/org.eclipse.wst.xml.core/README.txt
+++ /dev/null
@@ -1 +0,0 @@
-THe XML specific model implementation.
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/about.html b/bundles/org.eclipse.wst.xml.core/about.html
deleted file mode 100644
index 2199df3..0000000
--- a/bundles/org.eclipse.wst.xml.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, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor’s license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.wst.xml.core/build.properties b/bundles/org.eclipse.wst.xml.core/build.properties
deleted file mode 100644
index e49a2dc..0000000
--- a/bundles/org.eclipse.wst.xml.core/build.properties
+++ /dev/null
@@ -1,34 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-#     Jens Lukowski/Innoopract - initial renaming/restructuring
-#     
-###############################################################################
-bin.includes = plugin.xml,\
-               .options,\
-               plugin.properties,\
-               META-INF/,\
-               .,\
-               about.html,\
-               schema/
-bin.excludes = bin/**,\
-               @dot/**,\
-               temp.folder/**
-src.includes = component.xml,\
-               build.properties,\
-               schema/,\
-               DevTimeSupport/
-source.. = src-catalog,\
-           src-contentmodel/,\
-           src-validation/,\
-           src/,\
-           src-emfModelSynch/,\
-           src-search/
-
-output.. = bin/
diff --git a/bundles/org.eclipse.wst.xml.core/component.xml b/bundles/org.eclipse.wst.xml.core/component.xml
deleted file mode 100644
index e061eb3..0000000
--- a/bundles/org.eclipse.wst.xml.core/component.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.wst.xml">
-	<component-depends unrestricted="true"></component-depends>
-	<plugin id="org.eclipse.wst.xmleditor.doc.user" fragment="false" />
-	<plugin id="org.eclipse.wst.xml.core" fragment="false" />
-	<plugin id="org.eclipse.wst.xml.ui" fragment="false" />
-	<description url="http://eclipse.org/webtools/wst/components/xml/overview.html" />
-	<package name="org.eclipse.wst.xml.ui" api="false">
-		<type name="StructuredTextViewerConfigurationXML" subclass="true" instantiate="true" />
-	</package>
-	<package name="org.eclipse.wst.xml.ui.views.contentoutline" api="false">
-		<type name="XMLContentOutlineConfiguration" subclass="true" instantiate="true" />
-	</package>
-	<package name="org.eclipse.wst.xml.ui.views.properties" api="false">
-		<type name="XMLPropertySheetConfiguration" subclass="true" instantiate="true" />
-	</package>
-	<plugin id="org.eclipse.wst.xml.ui.infopop" fragment="false" />
-	<plugin id="org.eclipse.wst.xml_core.feature.source" fragment="false" />
-	<plugin id="org.eclipse.wst.xml_ui.feature.source" fragment="false" />
-	<plugin id="org.apache.xerces" fragment="false" />
-</component>
diff --git a/bundles/org.eclipse.wst.xml.core/plugin.properties b/bundles/org.eclipse.wst.xml.core/plugin.properties
deleted file mode 100644
index b954490..0000000
--- a/bundles/org.eclipse.wst.xml.core/plugin.properties
+++ /dev/null
@@ -1,27 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-#     Jens Lukowski/Innoopract - initial renaming/restructuring
-#     
-###############################################################################
-providerName=Eclipse.org
-pluginName=Structured Source XML Model
-Structured_XML_Document_Factory_Extension.name=Structured XML Document Factory Extension
-XML_Content_Type_Extension_Element.name=XML (Illformed)
-# contentmodel strings
-Content_Model_Document_Factories_Extension.name=Content Model Document Factories
-Content_Model_Annotation_Files_Extension.name=Content Model Annotation Files
-Model_Query_Extension.name=Model Query Extension
-XML_Catalog_Contributions_Extension_Point.name=XML Catalog Contributions Extension Point
-XSL_Content_Type_Extension_Element.name=XSL
-XMI_Content_Type=XMI
-XML_Validator.name=XML Validator
-XML_Validation_Error_Customizer.name=XML Validator Error Customizer Extension Point
-_validationMarker.name=XML Problem
-_taskMarker.name=XML Task
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/plugin.xml b/bundles/org.eclipse.wst.xml.core/plugin.xml
deleted file mode 100644
index 8ebaa6f..0000000
--- a/bundles/org.eclipse.wst.xml.core/plugin.xml
+++ /dev/null
@@ -1,216 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <!-- An extension for contributing a XML validation error customizer. -->
-   <extension-point id="errorCustomizer" name="%XML_Validation_Error_Customizer.name" schema="schema/errorCustomizer.exsd"/>
-
-	<extension point="org.eclipse.wst.sse.core.modelHandler">
-		<modelHandler
-			default="true"
-			class="org.eclipse.wst.xml.core.internal.modelhandler.ModelHandlerForXML"
-			associatedContentTypeId="org.eclipse.core.runtime.xml"
-			id="org.eclipse.wst.xml.core.internal.modelhandler">
-		</modelHandler>
-	</extension>
-	<extension point="org.eclipse.wst.sse.core.modelHandler">
-		<modelHandler
-			default="true"
-			class="org.eclipse.wst.xml.core.internal.modelhandler.ModelHandlerForXML"
-			associatedContentTypeId="org.eclipse.wst.xml.core.xmlsource"
-			id="org.eclipse.wst.xml.core.internal.modelhandler2">
-		</modelHandler>
-	</extension>
-	
-	<extension point="org.eclipse.wst.sse.core.embeddedTypeHandler">
-		<embeddedTypeHandler
-			class="org.eclipse.wst.xml.core.internal.modelhandler.EmbeddedXML">
-		</embeddedTypeHandler>
-	</extension>
-
-	<extension point="org.eclipse.wst.sse.core.taskscanner">
-		<scanner
-			id="org.eclipse.wst.xml.core.internal.tasks.XMLFileTaskScanner"
-			class="org.eclipse.wst.xml.core.internal.tasks.XMLFileTaskScanner:org.eclipse.wst.xml.core.taskMarker"
-			contentTypeIds="org.eclipse.core.runtime.xml" />
-	</extension>
-	<extension
-		id="taskMarker"
-		name="%_taskMarker.name"
-		point="org.eclipse.core.resources.markers">
-		<super type="org.eclipse.core.resources.taskmarker"/>
-		<persistent value="true"/>
-	</extension>
-	 
-   <!-- Here we define a new extension point.  This extension point is used
-        to programmatically contribute catalog entries to the XML Catalog. -->
-   <extension-point id="catalogContributions" name="%XML_Catalog_Contributions_Extension_Point.name" schema="schema/catalogContributions.exsd"/>
-
-   <!-- This extension point extends the Common Extensbile URI Resolver so that
-        the XML Catalog can participare in resolving processes. -->
-   <extension point="org.eclipse.wst.common.uriresolver.resolverExtensions">
-      <resolverExtension
-            stage="postnormalization"
-            class="org.eclipse.wst.xml.core.internal.catalog.XMLCatalogURIResolverExtension">
-      </resolverExtension>
-   </extension>
-
-	<extension
-		point="org.eclipse.core.filebuffers.documentCreation"
-		id="org.eclipse.wst.xml.core.documentfactories"
-		name="%Structured_XML_Document_Factory_Extension.name">
-		<factory
-			contentTypeId="org.eclipse.core.runtime.xml"
-			class="org.eclipse.wst.sse.core.internal.filebuffers.BasicStructuredDocumentFactory" />
-	</extension>
-	<extension
-		point="org.eclipse.core.filebuffers.documentCreation"
-		id="org.eclipse.wst.xml.core.documentfactories2"
-		name="%Structured_XML_Document_Factory_Extension.name">
-		<factory
-			contentTypeId="org.eclipse.wst.xml.core.xmlsource"
-			class="org.eclipse.wst.sse.core.internal.filebuffers.BasicStructuredDocumentFactory" />
-	</extension>
-	<extension point="org.eclipse.team.core.fileTypes">
-		<fileTypes
-			type="text"
-			extension="xsl">
-		</fileTypes>
-		<fileTypes
-			type="text"
-			extension="xslt">
-		</fileTypes>
-		<fileTypes
-			type="text"
-			extension="dadx">
-		</fileTypes>
-		<fileTypes
-			type="text"
-			extension="wsdl">
-		</fileTypes>
-		<fileTypes
-			type="text"
-			extension="nst">
-		</fileTypes>
-		<fileTypes
-			type="text"
-			extension="xmi">
-		</fileTypes>
-		<fileTypes
-			type="text"
-			extension="xsd">
-		</fileTypes>
-	</extension>
-	
-	<extension point="org.eclipse.wst.sse.core.formatProcessors">
-		<processor
-			class="org.eclipse.wst.xml.core.internal.formatter.XMLFormatterFormatProcessor"
-			contentTypeId="org.eclipse.core.runtime.xml">
-		</processor>
-	</extension>
-
-	<!--  https://bugs.eclipse.org/bugs/show_bug.cgi?id=103083 -->\
-	<!--  FYI: this xmi type *should* be defined in EMF, but, since isn't
-			we will here. In future versions is could be removed -->
-	<extension point="org.eclipse.core.runtime.contentTypes">
-		<content-type
-			file-extensions="xmi"
-			priority="low"
-			name="%XMI_Content_Type"
-			id="xmisource"
-			base-type="org.eclipse.core.runtime.xml">
-		</content-type>
-
-		<content-type
-			file-extensions="xml,xsl,xslt,wsdl,xsd,exsd,xmi"
-			priority="low"
-			name="%XML_Content_Type_Extension_Element.name"
-			id="xmlsource"
-			base-type="org.eclipse.core.runtime.text"
-			default-charset="UTF-8">
-			<describer class="org.eclipse.wst.xml.core.internal.contenttype.ContentDescriberForXML" />
-		</content-type>
-
-		<content-type
-			file-extensions="xsl,xslt"
-			priority="high"
-			name="%XSL_Content_Type_Extension_Element.name"
-			id="xslsource"
-			base-type="org.eclipse.core.runtime.xml"
-			default-charset="UTF-8">
-		</content-type>
-	</extension>
-
-
-	<!-- initialize xml core preferences -->
-	<extension point="org.eclipse.core.runtime.preferences">
-		<initializer class="org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceInitializer" />
-	</extension>
-
-	<extension-point id="documentFactories" name="%Content_Model_Document_Factories_Extension.name" schema="schema/documentFactories.exsd"/>
-
-	<extension-point id="modelQueryExtensions" name="%Model_Query_Extension.name" schema="schema/modelQueryExtensions.exsd"/>
-
-	<extension-point id="annotationFiles" name="%Content_Model_Annotation_Files_Extension.name" schema="schema/annotationFiles.exsd"/>	
-		
-	<extension 
-       point="org.eclipse.jem.util.uiContextSensitiveClass">
-       <uiContextSensitiveClass
-            context="UI"
-            key="rendererFactory"
-            className="org.eclipse.wst.xml.core.internal.emf2xml.EMF2DOMSSERendererFactory">
-       </uiContextSensitiveClass>
-  </extension>
-  <!-- ====================================================== -->
-	<!-- Register the XML validator with the validation 		-->
-	<!-- framework. 										    -->
-	<!-- ====================================================== -->
-
- <extension
-         id="validationMarker"
-         name="%_validationMarker.name"
-         point="org.eclipse.core.resources.markers">
-      <super type="org.eclipse.wst.validation.problemmarker"/>
-      <persistent value="true"/>
- </extension>
-
-   <extension id="xml" name="%XML_Validator.name" point="org.eclipse.wst.validation.validatorV2">
-      <validator
-            build="true"
-            class="org.eclipse.wst.xml.core.internal.validation.eclipse.Validator"
-            manual="true"
-            sourceid="org.eclipse.wst.xml.ui.internal.validation.DelegatingSourceValidatorForXML"
-            version="3"
-            markerId="org.eclipse.wst.xml.core.validationMarker">
-         <include>
-            <rules>
-               <contentType id="org.eclipse.core.runtime.xml"></contentType>
-               <contentType id="org.eclipse.wst.xml.core.xmlsource"></contentType>
-               <contentType id="org.eclipse.wst.xml.core.xslsource"></contentType>
-               <contentType id="org.eclipse.jst.jsp.core.tldsource"></contentType>
-               <fileext
-                     caseSensitive="false"
-                     ext="xml">
-               </fileext>
-               <fileext
-                     caseSensitive="false"
-                     ext="gph">
-               </fileext>
-               <fileext
-                     caseSensitive="false"
-                     ext="wdo-connections">
-               </fileext>
-            </rules>
-         </include>
-         <exclude>
-            <rules>
-				<projectNature id="org.eclipse.jst.j2ee.ejb.EJBNature"/>
-				<projectNature id="org.eclipse.jst.j2ee.EARNature"/>
-    			<file caseSensitive="true" name=".project" type="file"/>
-    			<file caseSensitive="true" name=".classpath" type="file"/>
-    			<file caseSensitive="true" name=".settings"  type="folder"/>
-            </rules>
-         </exclude>
-      </validator>
-   </extension>
-</plugin>
diff --git a/bundles/org.eclipse.wst.xml.core/schema/annotationFiles.exsd b/bundles/org.eclipse.wst.xml.core/schema/annotationFiles.exsd
deleted file mode 100644
index d417f55..0000000
--- a/bundles/org.eclipse.wst.xml.core/schema/annotationFiles.exsd
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.xml.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.xml.core" id="annotationFiles" name="Content Model Annotation Files"/>
-      </appInfo>
-      <documentation>
-         &lt;b&gt;This extension point is internal and should not be used by any other plugins.&lt;/b&gt;
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="annotationFile" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="annotationFile">
-      <complexType>
-         <attribute name="location" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="publicId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         &lt;b&gt;This extension point is internal and should not be used by any other plugins.&lt;/b&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.wst.xml.core/schema/catalogContributions.exsd b/bundles/org.eclipse.wst.xml.core/schema/catalogContributions.exsd
deleted file mode 100644
index b7bad1b..0000000
--- a/bundles/org.eclipse.wst.xml.core/schema/catalogContributions.exsd
+++ /dev/null
@@ -1,283 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.xml.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.xml.core" id="catalogContributions" name="XML Catalog Contributions Extension Point"/>
-      </appInfo>
-      <documentation>
-         This extension point allows to specify entries for XML Catalog.  Catalog entries have format specified in &lt;a href=&quot;http://www.oasis-open.org/committees/download.php/14041/xml-catalogs.html&quot;&gt;http://www.oasis-open.org/committees/entity/spec.html&lt;/a&gt;.  
-Each catalog extension consists of a single catalogContribution element.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <choice>
-            <element ref="catalogContribution"/>
-         </choice>
-         <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="catalogContribution">
-      <annotation>
-         <documentation>
-            The catalogContribution element may have id, and it is just a container for the contributed catalog entries.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="public" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="system" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="uri" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="nextCatalog" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  Id of the catalog to which entries will be added. Could be &quot;default&quot;, and if ommited, entries are added to the default workspace catalog.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="public">
-      <annotation>
-         <documentation>
-            The public element associates a URI reference with the public identitier portion of an external identifier.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-         </sequence>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  Id of the element, optional.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="publicId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The public identifier portion of an external identifier.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="uri" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The value of the uri attribute could be relative to the plugin.xml file, use platform:/ or file:/ protocols.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="resource"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="webURL" type="string">
-            <annotation>
-               <documentation>
-                  Alternative Web address for the public ID
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="system">
-      <annotation>
-         <documentation>
-            The system elements associates a URI reference with the system identifier of an external identifier
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-         </sequence>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  Id of the element, optional.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="systemId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The system identifier portion of an external identifier.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="uri" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The value of the uri attribute could be relative to the plugin.xml file, use platform:/ or file:/ protocols.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="resource"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="uri">
-      <annotation>
-         <documentation>
-            The uri element associates a URI reference with the a URI reference that is not part of an external identifier.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-         </sequence>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  Id of the element, optional.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="uri" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The value of the uri attribute could be relative to the plugin.xml file, use platform:/ or file:/ protocols.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="resource"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A URI reference that is not part of an external identitier.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="nextCatalog">
-      <annotation>
-         <documentation>
-            The nextCatalog elements indicate additional catalog entry file(s) to be considered during the process of resolution.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  Id of the element, optional.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="catalog" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The value of the uri attribute could be relative to the plugin.xml file, use platform:/ or file:/ protocols.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="resource"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         1.0
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         &lt;pre&gt;
-   &lt;extension 
-         point=&quot;org.eclipse.wst.xml.core.catalogContributions&quot;&gt;
-      &lt;catalogContribution&gt; 
-         &lt;system 
-               systemId=&quot;http://schemas.xmlsoap.org/wsdl/&quot;
-               uri=&quot;data/xsd/wsdl.xml&quot; &gt; 
-            &lt;property 
-                  name=&quot;webURL&quot;
-                  value=&quot;http://schemas.xmlsoap.org/wsdl/&quot;/&gt;
-         &lt;/system&gt;
-         &lt;uri
-               name=&quot;http://schemas.xmlsoap.org/wsdl/soap/&quot; 
-               uri=&quot;data/xsd/soap.xsd&quot;/&gt; 
-         &lt;public
-               publicId=&quot;http://www.w3.org/1999/XSL/Transform&quot;
-               uri=&quot;data/xsd/XSLSchema.xsd&quot;&gt;
-         &lt;/public&gt;
-         &lt;nextCatalog
-               id=&quot;nestedCatalog&quot; 
-               catalog=&quot;data/catalog1.xml&quot;/&gt; 
-      &lt;/catalogContribution&gt; 
-   &lt;/extension&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2005 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.wst.xml.core/schema/documentFactories.exsd b/bundles/org.eclipse.wst.xml.core/schema/documentFactories.exsd
deleted file mode 100644
index dd0d906..0000000
--- a/bundles/org.eclipse.wst.xml.core/schema/documentFactories.exsd
+++ /dev/null
@@ -1,116 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.xml.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.xml.core" id="documentFactories" name="Content Model Document Factories"/>
-      </appInfo>
-      <documentation>
-         &lt;b&gt;This extension point is internal and should not be used by any other plugins.&lt;/b&gt;
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="factory"/>
-         </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="factory">
-      <complexType>
-         <attribute name="type" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         &lt;b&gt;This extension point is internal and should not be used by any other plugins.&lt;/b&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.wst.xml.core/schema/errorCustomizer.exsd b/bundles/org.eclipse.wst.xml.core/schema/errorCustomizer.exsd
deleted file mode 100644
index 608f190..0000000
--- a/bundles/org.eclipse.wst.xml.core/schema/errorCustomizer.exsd
+++ /dev/null
@@ -1,123 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.xml.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.xml.core" id="errorCustomizer" name="XML Validation Error Customizer"/>
-      </appInfo>
-      <documentation>
-         The error customizer extension point allows a client to contribute an error customizer for a specific namespace. The error customizer can provide error messages that are more domain specific than the generic error messages provided by the underlying generic XML validator.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="errorCustomizer" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="errorCustomizer">
-      <complexType>
-         <attribute name="namespace" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The namespace for which this error customizer will consider error customizations.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The class that implements &lt;code&gt;org.eclipse.wst.xml.core.internal.validation.errorcustomization.IErrorMessageCustomizer&lt;/code&gt;.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         &lt;b&gt;This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.&lt;/b&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of an Error Customizer contribution:
-&lt;pre&gt;
-   &lt;extension
-         id=&quot;sampleErrorCustomizer&quot;
-         name=&quot;Sample Error Customizer&quot;
-         point=&quot;org.eclipse.wst.xml.core.errorCustomizer&quot;&gt;
-      &lt;errorCustomizer
-            namespace=&quot;http://sample.namespace&quot;
-            class=&quot;org.eclipse.wst.xml.core.SampleErrorCustomizer&quot;/&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         The supplied class must implement &lt;code&gt;org.eclipse.wst.xml.core.internal.validation.errorcustomization.IErrorMessageCustomizer&lt;/code&gt;.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2006 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.wst.xml.core/schema/modelQueryExtensions.exsd b/bundles/org.eclipse.wst.xml.core/schema/modelQueryExtensions.exsd
deleted file mode 100644
index ecddf01..0000000
--- a/bundles/org.eclipse.wst.xml.core/schema/modelQueryExtensions.exsd
+++ /dev/null
@@ -1,116 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.xml.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.xml.core" id="modelQueryExtensions" name="Model Query Extension"/>
-      </appInfo>
-      <documentation>
-         &lt;b&gt;This extension point is internal and should not be used by any other plugins.&lt;/b&gt;
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="modelQueryExtension"/>
-         </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="modelQueryExtension">
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="contentType" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         &lt;b&gt;This extension point is internal and should not be used by any other plugins.&lt;/b&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/Catalog.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/Catalog.java
deleted file mode 100644
index d071382..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/Catalog.java
+++ /dev/null
@@ -1,556 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.catalog;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogElement;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEvent;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogListener;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog;
-public class Catalog implements ICatalog
-{
-
-	class CatalogLS
-	{
-		public void load()
-		{
-		}
-
-		public synchronized void save()
-		{
-			try
-			{
-				new CatalogWriter().write(Catalog.this, location);
-			} catch (Exception e)
-			{
-				Logger.logException(e);
-			}
-		}
-	}
-
-	class DefaultCatalogLS extends CatalogLS
-	{
-		public void load()
-		{
-			NextCatalog userCatalogReference = new NextCatalog();
-			userCatalogReference.setId(XMLCorePlugin.USER_CATALOG_ID);
-			userCatalogReference.setCatalogLocation(USER_CATALOG_FILE);
-			addCatalogElement(userCatalogReference);
-
-			NextCatalog systemCatalogReference = new NextCatalog();
-			systemCatalogReference.setId(XMLCorePlugin.SYSTEM_CATALOG_ID);
-			systemCatalogReference.setCatalogLocation(SYSTEM_CATALOG_FILE);
-			addCatalogElement(systemCatalogReference);
-
-			/*
-			 * Here we save the file in order to 'reflect' the catalog that
-			 * we've created from plug-in extensions to disk. The 'default'
-			 * catalog is only ever written to disk and never read from disk.
-			 */
-			save();
-		}
-	}
-
-	class InternalResolver
-	{
-		protected Map publicMap = new HashMap();
-
-		protected Map systemMap = new HashMap();
-
-		protected Map uriMap = new HashMap();
-
-		InternalResolver()
-		{
-			for (Iterator i = catalogElements.iterator(); i.hasNext();)
-			{
-				ICatalogElement catalogElement = (ICatalogElement) i.next();
-				if (catalogElement.getType() == ICatalogElement.TYPE_ENTRY)
-				{
-					ICatalogEntry entry = (ICatalogEntry) catalogElement;
-					Map map = getEntryMap(entry.getEntryType());
-					map.put(entry.getKey(), entry);
-				}
-			}
-		}
-
-		private Map getEntryMap(int entryType)
-		{
-			Map map = systemMap;
-			switch (entryType)
-			{
-			case ICatalogEntry.ENTRY_TYPE_PUBLIC:
-				map = publicMap;
-				break;
-			case ICatalogEntry.ENTRY_TYPE_URI:
-				map = uriMap;
-				break;
-			default:
-				break;
-			}
-			return map;
-		}
-
-		protected String getMappedURI(Map map, String key)
-		{
-			CatalogEntry entry = (CatalogEntry) map.get(key);
-			if(entry == null) return null;
-			String uri = entry.getURI();
-			try
-			{
-                // TODO CS : do we really want to resolve these here?
-                // I'm guessing we should return the 'platform:' form of the URI
-                // to the caller.
-                if (uri.startsWith("platform:")) //$NON-NLS-1$
-                {  
-				  URL entryURL = new URL(entry.getAbsolutePath(uri));                
-				  uri = Platform.resolve(entryURL).toString();
-                  
-                  // we need to ensure URI's are of form "file:///D:/XXX" and NOT  
-                  // "file:D:/XXX".  Otherwise the EMF URI class gets confused
-                  // (see bug 103607) 
-                  String FILE_SCHEME = "file:"; //$NON-NLS-1$
-                  if (uri.startsWith(FILE_SCHEME) && !uri.startsWith(FILE_SCHEME + "/")) //$NON-NLS-1$
-                  {
-                    uri = FILE_SCHEME + "///" + uri.substring(FILE_SCHEME.length()); //$NON-NLS-1$
-                  }  
-                }  
-                return uri; 
-			} catch (IOException e)
-			{
-				return null;
-			}
-		}
-
-		public String resolvePublic(String publicId, String systemId)
-				throws MalformedURLException, IOException
-		{
-			String result = getMappedURI(publicMap, publicId);
-			if (result == null)
-			{
-				result = getMappedURI(systemMap, systemId);
-			}
-			// our clients used to pass namespace in place of public id, so we need to check uri map for those
-			if (result == null)
-			{
-				result = getMappedURI(uriMap, publicId);
-			}
-			if (result == null)
-			{
-				result = resolveSubordinateCatalogs(
-						ICatalogEntry.ENTRY_TYPE_PUBLIC, publicId, systemId);
-			}
-			return result;
-		}
-
-		public String resolveSystem(String systemId)
-				throws MalformedURLException, IOException
-		{
-			String result = getMappedURI(systemMap, systemId);
-			if (result == null)
-			{
-				result = resolveSubordinateCatalogs(
-						ICatalogEntry.ENTRY_TYPE_SYSTEM, null, systemId);
-			}
-			return result;
-		}
-
-		public String resolveURI(String uri) throws MalformedURLException,
-				IOException
-		{
-			String result = getMappedURI(uriMap, uri);
-			if (result == null)
-			{
-				result = resolveSubordinateCatalogs(
-						ICatalogEntry.ENTRY_TYPE_URI, null, uri);
-			}
-			return result;
-		}
-	}
-
-	class SystemCatalogLS extends CatalogLS
-	{
-		public void load()
-		{
-			new CatalogContributorRegistryReader(Catalog.this).readRegistry();
-
-			/*
-			 * Here we save the file in order to 'reflect' the catalog that
-			 * we've created from plugin extensions to disk. 
-			 * The 'system' catalog is only ever written to disk and never read from disk.
-			 */
-			save();
-		}
-	}
-
-	class UserCatalogLS extends CatalogLS
-	{
-		public void load()
-		{
-			InputStream inputStream = null;
-			try
-			{
-				URL url = new URL(location);
-				inputStream = url.openStream();
-				boolean oldNotificationEnabled = isNotificationEnabled();
-				setNotificationEnabled(false);
-				clear();
-				try
-				{
-					CatalogReader.read(Catalog.this, inputStream);
-				} finally
-				{
-					setNotificationEnabled(oldNotificationEnabled);
-				}
-				notifyChanged();
-			} catch (Exception e)
-			{
-			} finally
-			{
-				if (inputStream != null)
-				{
-					try
-					{
-						inputStream.close();
-					} catch (Exception e)
-					{
-					}
-				}
-			}
-		}
-	}
-
-	public static final String DEFAULT_CATALOG_FILE = "default_catalog.xml"; //$NON-NLS-1$
-
-	public static final String SYSTEM_CATALOG_FILE = "system_catalog.xml"; //$NON-NLS-1$
-
-	public static final String USER_CATALOG_FILE = "user_catalog.xml"; //$NON-NLS-1$
-
-	protected String base;
-
-	protected List catalogElements = new ArrayList();
-
-	protected CatalogLS catalogLS;
-
-	protected String id;
-
-	protected InternalResolver internalResolver;
-
-	protected boolean isNotificationEnabled;
-
-	protected List listenerList = new ArrayList();
-
-	protected String location;
-
-	protected CatalogSet resourceSet;
-
-	public Catalog(CatalogSet catalogResourceSet, String id, String location)
-	{
-		this.resourceSet = catalogResourceSet;
-		this.id = id;
-		this.location = location;
-
-		if (XMLCorePlugin.DEFAULT_CATALOG_ID.equals(id))
-		{
-			catalogLS = new DefaultCatalogLS();
-		} else if (XMLCorePlugin.SYSTEM_CATALOG_ID.equals(id))
-		{
-			catalogLS = new SystemCatalogLS();
-		} else
-		{
-			catalogLS = new UserCatalogLS();
-		}
-	}
-
-	public void addCatalogElement(ICatalogElement element)
-	{
-		catalogElements.add(element);
-		element.setOwnerCatalog(this);
-		internalResolver = null;
-		notifyAddElement(element);
-	}
-
-	public void addEntriesFromCatalog(ICatalog catalog)
-	{
-		try
-		{
-			setNotificationEnabled(false);
-			if (catalog != null)
-			{
-				ICatalogElement[] entries = ((Catalog)catalog).getCatalogElements();
-				for (int i = 0; i < entries.length; i++)
-				{
-					CatalogElement clone = (CatalogElement)((CatalogElement)entries[i]).clone();
-					addCatalogElement(clone);
-				}
-			} else
-			{
-				Logger.log(Logger.ERROR, "argument was null in Catalog.addEntriesFromCatalog"); //$NON-NLS-1$
-			}
-		} finally
-		{
-			setNotificationEnabled(true);
-		}
-		internalResolver = null;
-		notifyChanged();
-	}
-
-	public void addListener(ICatalogListener listener)
-	{
-		listenerList.add(listener);
-	}
-
-	public void clear()
-	{
-		catalogElements.clear();
-		internalResolver = null;
-		notifyChanged();
-	}
-
-	public ICatalogElement createCatalogElement(int type)
-	{
-		switch (type)
-		{
-		case ICatalogElement.TYPE_ENTRY:
-			return new CatalogEntry();
-		case ICatalogElement.TYPE_NEXT_CATALOG:
-			return new NextCatalog();
-		case ICatalogEntry.ENTRY_TYPE_PUBLIC:
-			return new CatalogEntry(ICatalogEntry.ENTRY_TYPE_PUBLIC);
-		case ICatalogEntry.ENTRY_TYPE_SYSTEM:
-			return new CatalogEntry(ICatalogEntry.ENTRY_TYPE_SYSTEM);
-		case ICatalogEntry.ENTRY_TYPE_URI:
-			return new CatalogEntry(ICatalogEntry.ENTRY_TYPE_URI);
-		default:
-			return new CatalogElement(type);
-		}
-	}
-
-	public String getBase()
-	{
-		return base;
-	}
-
-	private List getCatalogElements(int type)
-	{
-		List result = new ArrayList();
-		ICatalogElement[] elements = (ICatalogElement[]) catalogElements
-				.toArray(new ICatalogElement[catalogElements.size()]);
-		for (int i = 0; i < elements.length; i++)
-		{
-			ICatalogElement element = elements[i];
-			if (element.getType() == type)
-			{
-				result.add(element);
-			}
-		}
-		return result;
-	}
-
-	public ICatalogEntry[] getCatalogEntries()
-	{
-		List result = getCatalogElements(ICatalogElement.TYPE_ENTRY);
-		return (ICatalogEntry[]) result
-				.toArray(new ICatalogEntry[result.size()]);
-	}
-
-	protected CatalogSet getCatalogSet()
-	{
-		return resourceSet;
-	}
-
-	public String getId()
-	{
-		return id;
-	}
-
-	public String getLocation()
-	{
-		return location;
-	}
-
-	public INextCatalog[] getNextCatalogs()
-	{
-		List result = getCatalogElements(ICatalogElement.TYPE_NEXT_CATALOG);
-		return (INextCatalog[]) result.toArray(new INextCatalog[result.size()]);
-	}
-
-	protected InternalResolver getOrCreateInternalResolver()
-	{
-		if (internalResolver == null)
-		{
-			internalResolver = new InternalResolver();
-		}
-		return internalResolver;
-	}
-
-	protected boolean isNotificationEnabled()
-	{
-		return isNotificationEnabled;
-	}
-
-	public void load() throws IOException
-	{
-		catalogLS.load();
-	}
-
-	protected void notifyAddElement(ICatalogElement entry)
-	{
-		if (isNotificationEnabled)
-		{
-			ICatalogEvent event = new CatalogEvent(this, entry,
-					ICatalogEvent.ELEMENT_ADDED);
-			notifyListeners(event);
-		}
-	}
-
-	protected void notifyChanged()
-	{
-		ICatalogEvent event = new CatalogEvent(this, null,
-				ICatalogEvent.CHANGED);
-		notifyListeners(event);
-	}
-
-	protected void notifyListeners(ICatalogEvent event)
-	{
-		List list = new ArrayList();
-		list.addAll(listenerList);
-		for (Iterator i = list.iterator(); i.hasNext();)
-		{
-			ICatalogListener listener = (ICatalogListener) i.next();
-			listener.catalogChanged(event);
-		}
-	}
-
-	protected void notifyRemoveElement(ICatalogElement element)
-	{
-		if (isNotificationEnabled)
-		{
-			ICatalogEvent event = new CatalogEvent(this, element,
-					ICatalogEvent.ELEMENT_REMOVED);
-			notifyListeners(event);
-		}
-	}
-
-	public void removeCatalogElement(ICatalogElement element)
-	{
-		catalogElements.remove(element);
-		internalResolver = null;
-		notifyRemoveElement(element);
-		
-	}
-
-	public void removeListener(ICatalogListener listener)
-	{
-		listenerList.remove(listener);
-	}
-
-	public String resolvePublic(String publicId, String systemId)
-			throws MalformedURLException, IOException
-	{
-		return getOrCreateInternalResolver().resolvePublic(publicId, systemId);
-	}
-
-	protected String resolveSubordinateCatalogs(int entryType, String publicId,
-			String systemId) throws MalformedURLException, IOException
-	{
-		String result = null;
-		INextCatalog[] nextCatalogs = getNextCatalogs();
-		for (int i = 0; i < nextCatalogs.length; i++)
-		{
-			INextCatalog nextCatalog = nextCatalogs[i];
-			ICatalog catalog = nextCatalog.getReferencedCatalog();
-			if (catalog != null)
-			{
-				switch (entryType)
-				{
-				case ICatalogEntry.ENTRY_TYPE_PUBLIC:
-					result = catalog.resolvePublic(publicId, systemId);
-					break;
-				case ICatalogEntry.ENTRY_TYPE_SYSTEM:
-					result = catalog.resolveSystem(systemId);
-					break;
-				case ICatalogEntry.ENTRY_TYPE_URI:
-					result = catalog.resolveURI(systemId);
-					break;
-				default:
-					break;
-				}
-				if (result != null)
-				{
-					return result;
-				}
-			}
-		}
-		return null;
-	}
-
-	public String resolveSystem(String systemId) throws MalformedURLException,
-			IOException
-	{
-		return getOrCreateInternalResolver().resolveSystem(systemId);
-	}
-
-	public String resolveURI(String uri) throws MalformedURLException,
-			IOException
-	{
-		return getOrCreateInternalResolver().resolveURI(uri);
-	}
-
-	public void save() throws IOException
-	{
-		catalogLS.save();
-	}
-
-	public void setBase(String base)
-	{
-		this.base = base;
-	}
-
-	public void setId(String id)
-	{
-		this.id = id;
-	}
-
-	public void setLocation(String location)
-	{
-		this.location = location;
-	}
-
-	protected void setNotificationEnabled(boolean b)
-	{
-		isNotificationEnabled = b;
-	}
-
-	public ICatalogElement[] getCatalogElements()
-	{
-		return (ICatalogElement[]) catalogElements.toArray(new ICatalogElement[catalogElements.size()]);
-	}
-	
-
-	
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogContributorRegistryReader.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogContributorRegistryReader.java
deleted file mode 100644
index 2f01c5f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogContributorRegistryReader.java
+++ /dev/null
@@ -1,269 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.catalog;
-
-import java.io.IOException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.InvalidRegistryObjectException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.XMLCoreMessages;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogElement;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog;
-import org.osgi.framework.Bundle;
-
-public class CatalogContributorRegistryReader
-{
-  protected static final String EXTENSION_POINT_ID = "catalogContributions"; //$NON-NLS-1$
-  protected static final String TAG_CONTRIBUTION = "catalogContribution"; //$NON-NLS-1$
-  /*
-   * this is a sample exptension 
-   * <extension point="org.eclipse.wst.xml.core.catalogContributions"> 
-   * <catalogContribution>
-   *    <uri
-   *             name="http://schemas.xmlsoap.org/wsdl/soap/" 
-   *             uri="xsd/soap.xsd"/> 
-   *   	<public
-   *          publicId="-//W3C//DTD XHTML 1.1//EN"
-   *          uri="dtds/xhtml11-flat.dtd"/> 
-   *  	<nextCatalog id="nestedCatalog" catalog="data/catalog1.xml"/> 
-   *  </catalogContribution> 
-   *  </extension>
-   *  
-   */
-  protected ICatalog catalog;
-
-  protected String declaringExtensionId;
-  
-  protected CatalogContributorRegistryReader(ICatalog aCatalog)
-  {
-    catalog = aCatalog;
-  }
-
-  /**
-   * read from plugin registry and parse it.
-   */
-  protected void readRegistry()
-  {
-    IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
-    IExtensionPoint point = pluginRegistry.getExtensionPoint(XMLCorePlugin.getDefault().getBundle().getSymbolicName(), EXTENSION_POINT_ID);
-    if (point != null)
-    {
-      IConfigurationElement[] elements = point.getConfigurationElements();
-      for (int i = 0; i < elements.length; i++)
-      {
-        readElement(elements[i]);
-      }
-    }
-    
-  }
-  
-  public static String resolvePath(URL platformURL, String path) 
-  {      
-	String fileLocation = path;
-	int jarPathStart = path.indexOf("jar:"); //$NON-NLS-1$
-	jarPathStart = jarPathStart < 0 ? 0 : jarPathStart + "jar:".length(); //$NON-NLS-1$
-	int jarPathEnd = path.indexOf("!"); //$NON-NLS-1$
-	jarPathEnd = jarPathEnd < 0 ? path.length() : jarPathEnd;
-	fileLocation = path.substring(jarPathStart, jarPathEnd);
-	
-	String result = path;
-	String resolvedLocation = fileLocation;
-	URL resolvedURL = null;
-    if (fileLocation.startsWith("platform:/plugin")) //$NON-NLS-1$
-    {
-      // this is the speclial case, where the resource is located relative 
-      // to another plugin (not the one that declares the extension point)
-      //
-		try
-		{
-			resolvedURL = Platform.resolve(new URL(fileLocation));
-		} catch (IOException e)
-		{
-			// do nothing
-		} 
-    }
-    else{
-    	 // this is the typical case, where the resource is located relative
-        // to the plugin that declares the extension point
-    	 try {
-    	     	resolvedURL = new URL(Platform.resolve(platformURL), fileLocation);
-    	 } catch (IOException e) {
-    	    	// do nothing
-    	 }
-    }
-   
-   if(resolvedURL != null){
-    	resolvedLocation = resolvedURL.toExternalForm().replace('\\', '/');
-    	result = result.replaceFirst(fileLocation, resolvedLocation);
-    }
-    return result;
-  }
-  
-  public static URL getPlatformURL(String pluginId){
-	  Bundle bundle = Platform.getBundle(pluginId);
-		if (bundle != null)
-		{
-			URL bundleEntry = bundle.getEntry("/"); //$NON-NLS-1$
-			
-			if(bundleEntry != null){
-				try
-				{
-					return Platform.resolve(bundleEntry);
-				} catch (IOException e)
-				{
-					Logger.logException(e);
-				}
-			}
-		}
-		return null;
-  }
-
-  private String resolvePath(String path)
-  {
-	  return resolvePath(getPlatformURL(declaringExtensionId), path);
-  }
-
-  protected void readElement(IConfigurationElement element)
-  {
-    try
-    {
-	  declaringExtensionId = element.getDeclaringExtension().getNamespace();
-    }
-    catch (InvalidRegistryObjectException e)
-    {
-      Logger.logException(e);
-    }
-    
-    if (TAG_CONTRIBUTION.equals(element.getName())){
-    	IConfigurationElement[] mappingInfoElementList = element.getChildren(OASISCatalogConstants.TAG_PUBLIC);
-    	processMappingInfoElements(mappingInfoElementList);
-    	mappingInfoElementList = element.getChildren(OASISCatalogConstants.TAG_SYSTEM);
-    	processMappingInfoElements(mappingInfoElementList);
-    	mappingInfoElementList = element.getChildren(OASISCatalogConstants.TAG_URI);
-    	processMappingInfoElements(mappingInfoElementList);
-    	IConfigurationElement[] nextCatalogElementList = element.getChildren(OASISCatalogConstants.TAG_NEXT_CATALOG);
-    	processNextCatalogElements(nextCatalogElementList);
-    	
-    }
-    
-  }
-
-  private void processMappingInfoElements(IConfigurationElement[] childElementList)
-  {
-    if (catalog == null)
-      return;
-    for (int i = 0; i < childElementList.length; i++)
-    {
-      IConfigurationElement childElement = childElementList[i];
-      String name = childElement.getName();
-      String key = null;
-	
-      int type = ICatalogEntry.ENTRY_TYPE_PUBLIC;
-      if (OASISCatalogConstants.TAG_PUBLIC.equals(name))
-      {
-        key = childElement.getAttribute(OASISCatalogConstants.ATTR_PUBLIC_ID);
-      }
-      else if (OASISCatalogConstants.TAG_SYSTEM.equals(name))
-      {
-        key = childElement.getAttribute(OASISCatalogConstants.ATTR_SYSTEM_ID);
-        type = ICatalogEntry.ENTRY_TYPE_SYSTEM;
-      }
-      else if (OASISCatalogConstants.TAG_URI.equals(name))
-      {
-        key = childElement.getAttribute(OASISCatalogConstants.ATTR_NAME);
-        type = ICatalogEntry.ENTRY_TYPE_URI;
-      }
-      else if (OASISCatalogConstants.TAG_NEXT_CATALOG.equals(name))
-      {
-        processNextCatalogElements(new IConfigurationElement[]{childElement});
-        continue;
-      }
-      if (key == null || key.equals("")) //$NON-NLS-1$
-      {
-         Logger.log(Logger.ERROR, XMLCoreMessages.Catalog_entry_key_not_set);
-        continue;
-      }
-      String entryURI = childElement.getAttribute(OASISCatalogConstants.ATTR_URI); // mandatory
-      if (entryURI == null || entryURI.equals("")) //$NON-NLS-1$
-      {
-       Logger.log(Logger.ERROR, XMLCoreMessages.Catalog_entry_uri_not_set);
-        continue;
-      }
-      ICatalogElement catalogElement = catalog.createCatalogElement(type);
-      if (catalogElement instanceof ICatalogEntry)
-      {
-        ICatalogEntry entry = (ICatalogEntry) catalogElement;
-        entry.setKey(key);
-		String resolvedPath = resolvePath(entryURI);
-		entry.setURI(resolvedPath);
-        String id = childElement.getAttribute(OASISCatalogConstants.ATTR_ID); // optional
-        if (id != null && !id.equals("")) //$NON-NLS-1$
-        {
-          entry.setId(id);
-        }
-      }
-      // process any other attributes
-      for (int j = 0; j < childElement.getAttributeNames().length; j++)
-      {
-        String attrName = childElement.getAttributeNames()[j];
-        if (!attrName.equals(OASISCatalogConstants.ATTR_URI) && !attrName.equals(OASISCatalogConstants.ATTR_NAME) && !attrName.equals(OASISCatalogConstants.ATTR_PUBLIC_ID)
-            && !attrName.equals(OASISCatalogConstants.ATTR_SYSTEM_ID) && !attrName.equals(OASISCatalogConstants.ATTR_CATALOG) && !attrName.equals(OASISCatalogConstants.ATTR_ID)
-            && !attrName.equals(OASISCatalogConstants.ATTR_BASE))
-        {
-          String attrValue = childElement.getAttribute(attrName);
-          if (attrValue != null && !attrValue.equals("")) //$NON-NLS-1$
-          {
-            catalogElement.setAttributeValue(attrName, attrValue);
-          }
-        }
-      }
-      catalog.addCatalogElement(catalogElement);
-    }
-  }
-
-  private void processNextCatalogElements(IConfigurationElement[] childElementList)
-  {
-    if (catalog == null)
-      return;
-    for (int i = 0; i < childElementList.length; i++)
-    {
-      IConfigurationElement childElement = childElementList[i];
-      String location = childElement.getAttribute(OASISCatalogConstants.ATTR_CATALOG); // mandatory
-      if (location == null || location.equals("")) //$NON-NLS-1$
-      {
-        Logger.log(Logger.ERROR, XMLCoreMessages.Catalog_next_catalog_location_uri_not_set);
-        continue;
-      }
-      INextCatalog nextCatalog = new NextCatalog();
-	  String resolvedPath = resolvePath(location);
-      nextCatalog.setCatalogLocation(resolvedPath);
-	  String id = childElement.getAttribute(OASISCatalogConstants.ATTR_ID);
-	  if (id != null && !id.equals("")) //$NON-NLS-1$
-      { 
-		  nextCatalog.setId(id);
-      }
-      catalog.addCatalogElement(nextCatalog);
-    }
-  }
-  
- 
- 
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogElement.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogElement.java
deleted file mode 100644
index 1e51a04..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogElement.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.catalog;
-
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogElement;
-
-
-public class CatalogElement implements ICatalogElement
-{
-	int type;
-
-	String id;
-
-	Map attributes = new HashMap();
-
-	ICatalog ownerCatalog;
-
-	public CatalogElement(int aType)
-	{
-		super();
-		type = aType;
-	}
-
-	public int getType()
-	{
-		return type;
-	}
-
-	public String getAttributeValue(String name)
-	{
-		return (String) attributes.get(name);
-	}
-
-	public void setAttributeValue(String name, String value)
-	{
-		attributes.put(name, value);
-	}
-
-	public String[] getAttributes()
-	{
-		Collection c = attributes.values();
-		String[] result = new String[c.size()];
-		attributes.keySet().toArray(result);
-		return result;
-	}
-
-	public String getId()
-	{
-		return id;
-	}
-
-	public void setId(String id)
-	{
-		this.id = id;
-	}
-
-	public ICatalog getOwnerCatalog()
-	{
-		return ownerCatalog;
-	}
-
-	public void setOwnerCatalog(ICatalog catalog)
-	{
-		this.ownerCatalog = catalog;
-	}
-
-	protected static String makeAbsolute(String baseLocation, String location)
-	{
-		URL local = null;
-		location = location.replace('\\', '/');
-		try
-		{
-			URL baseURL = new URL(baseLocation);
-			local = new URL(baseURL, location);
-		} catch (MalformedURLException e)
-		{
-		}
-
-		if (local != null)
-		{
-			return local.toString();
-		} else
-		{
-			return location;
-		}
-	}
-
-	public String getAbsolutePath(String path)
-	{
-		try
-		{
-			URI uri = new URI(path);
-			if (uri.isAbsolute())
-			{
-				return path;
-			}
-		} catch (URISyntaxException e)
-		{
-		}
-
-		String result = path;
-		Catalog catalog = (Catalog) getOwnerCatalog();
-		if (catalog != null)
-		{
-			String base = catalog.getBase();
-			if (base == null || base.equals("")) //$NON-NLS-1$
-			{
-				base = catalog.getLocation();
-			}
-			result = makeAbsolute(base, path);
-		}
-		return result;
-	}
-	
-	  /*
-	   * Since we don't have events notifications for entry properties, clone()
-	   * could allow to copy and edit entry and then replace it in catalog. Entry
-	   * replacement will signal ICatalogEvent @return
-	   */
-	  public Object clone()
-	  {
-		ICatalogElement element = ownerCatalog.createCatalogElement(type);
-	    String[] attributes = getAttributes();   
-	    for (int i = 0; i < attributes.length; i++)
-	    {
-	      String attrName = attributes[i];
-	      String attrValue = getAttributeValue(attrName);
-	      element.setAttributeValue(attrName, attrValue);
-	    }
-		element.setOwnerCatalog(ownerCatalog);
-		element.setId(id);
-	    return element;
-	  }
-
-	
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogEntry.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogEntry.java
deleted file mode 100644
index 550a8e4..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogEntry.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.catalog;
-
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogElement;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-
-public class CatalogEntry extends CatalogElement implements ICatalogEntry, Cloneable
-{
-  int entryType = ICatalogEntry.ENTRY_TYPE_PUBLIC;
-  String key;
-  String uri;
-
-  protected CatalogEntry(int anEntryType)
-  {
-    super(ICatalogElement.TYPE_ENTRY);
-    entryType = anEntryType;
-  }
-
-  protected CatalogEntry()
-  {
-    super(ICatalogElement.TYPE_ENTRY);
-  }
-
-  public void setEntryType(int value)
-  {
-    entryType = value;
-  }
-
-  public int getEntryType()
-  {
-    return entryType;
-  }
-
-  public void setKey(String value)
-  {
-    key = value;
-  }
-
-  public String getKey()
-  {
-    return key;
-  }
-
-  public String getURI()
-  {
-    return uri;
-  }
-  
-  public void setURI(String value)
-  {
-    uri = value;
-  }
-
-  public Object clone()
-  {
-    CatalogEntry entry = (CatalogEntry)super.clone();
-	entry.setEntryType(entryType);
-    entry.setKey(key);
-    entry.setURI(uri);
-    return entry;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogEvent.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogEvent.java
deleted file mode 100644
index 8fba64d..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogEvent.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.catalog;
-
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogElement;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEvent;
-
-
-public class CatalogEvent implements ICatalogEvent
-{
-  protected ICatalog catalog;
-  protected ICatalogElement catalogElement;
-  protected int eventType;
-
-  public CatalogEvent(Catalog catalog, ICatalogElement element, int eventType)
-  {
-    this.catalog = catalog;
-    this.catalogElement = element;
-    this.eventType = eventType;
-  }
-
-  public ICatalog getCatalog()
-  {
-    return catalog;
-  }
-
-  public ICatalogElement getCatalogElement()
-  {
-    return catalogElement;
-  }
-
-  public int getEventType()
-  {
-    return eventType;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogReader.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogReader.java
deleted file mode 100644
index bdb88d3..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogReader.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.catalog;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Stack;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.eclipse.wst.common.uriresolver.internal.URI;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.XMLCoreMessages;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogElement;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-import org.xml.sax.Attributes;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * 
- * 
- */
-public final class CatalogReader
-{
-  public static void read(Catalog xmlCatalog, InputStream input) throws IOException
-  {
-    try
-    {
-      SAXParserFactory factory = SAXParserFactory.newInstance();
-      factory.setNamespaceAware(true);
-      SAXParser parser = factory.newSAXParser();
-      parser.parse(new InputSource(input), new CatalogContentHandler(xmlCatalog));
-    }
-    catch (ParserConfigurationException e)
-    {
-      Logger.logException(e);
-    }
-    catch (SAXException e)
-    {
-      Logger.logException(e);
-    }
-  }
-  protected static class CatalogContentHandler extends DefaultHandler
-  {
-    protected Catalog catalog;
-    protected Stack baseURIStack = new Stack();
-
-    public CatalogContentHandler(Catalog xmlCatalog)
-    {
-      this.catalog = xmlCatalog;
-      String base = xmlCatalog.getBase();
-      if(base == null || base == "") {  //$NON-NLS-1$
-    	  base = xmlCatalog.getLocation();
-      }
-      baseURIStack.push(base);
-    }
-
-    public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
-    {
-      // set base
-      String base = attributes.getValue(OASISCatalogConstants.ATTR_BASE); //$NON-NLS-1$
-      if (base != null && !base.equals("")) //$NON-NLS-1$
-      {
-          baseURIStack.push(base);
-      } else {
-    	  baseURIStack.push(baseURIStack.peek());
-      }
-
-	  // processing for backward compatability start
-	  if (localName.equals(CompatabilityConstants.TAG_USER_ENTRY))
-      {
-		int type = ICatalogEntry.ENTRY_TYPE_PUBLIC;
-        String typeName = attributes.getValue("", CompatabilityConstants.ATT_TYPE); //$NON-NLS-1$
-        if (typeName != null)
-        {
-          if (typeName.compareToIgnoreCase("SYSTEM") == 0) //$NON-NLS-1$
-          {
-            type = ICatalogEntry.ENTRY_TYPE_SYSTEM;
-          }
-        }
-		  ICatalogElement catalogElement = catalog.createCatalogElement(type);
-	      if (catalogElement instanceof CatalogEntry)
-	      {
-	        CatalogEntry catalogEntry = (CatalogEntry) catalogElement;
-		    String key = attributes.getValue("", CompatabilityConstants.ATT_ID);   		     //$NON-NLS-1$
-	        catalogEntry.setKey(key);
-	        String entryUri = attributes.getValue("", CompatabilityConstants.ATT_URI);    //$NON-NLS-1$
-	        
-	        // For relative URIs, try to resolve them using the corresponding base URI.
-	        if(URI.createURI(entryUri).isRelative()) {
-	        	entryUri = URI.resolveRelativeURI(entryUri, baseURIStack.peek().toString());
-	        }
-
-	        catalogEntry.setURI(URIHelper.ensureURIProtocolFormat(entryUri));  
-	        String webURL = attributes.getValue("", CompatabilityConstants.ATT_WEB_URL); //$NON-NLS-1$
-			if (webURL != null)
-			{
-				catalogEntry.setAttributeValue(
-						ICatalogEntry.ATTR_WEB_URL, webURL);
-			}
-	      }
-		  catalog.addCatalogElement(catalogElement);
-		  return;
-      }
-	  //  processing for backward compatability start
-      
-	  int type = ICatalogEntry.ENTRY_TYPE_PUBLIC;
-	  String key = null;
-	 //dw String catalogId = attributes.getValue("", OASISCatalogConstants.ATTR_ID);
-      if (OASISCatalogConstants.TAG_PUBLIC.equals(localName))
-      {
-        key = attributes.getValue("", OASISCatalogConstants.ATTR_PUBLIC_ID); //$NON-NLS-1$
-      }
-      else if (OASISCatalogConstants.TAG_SYSTEM.equals(localName))
-      {
-        key = attributes.getValue("", OASISCatalogConstants.ATTR_SYSTEM_ID); //$NON-NLS-1$
-        type = ICatalogEntry.ENTRY_TYPE_SYSTEM;
-      }
-      else if (OASISCatalogConstants.TAG_URI.equals(localName))
-      {
-        key = attributes.getValue("", OASISCatalogConstants.ATTR_NAME); //$NON-NLS-1$
-        type = ICatalogEntry.ENTRY_TYPE_URI;
-      }
-      else if (OASISCatalogConstants.TAG_NEXT_CATALOG.equals(localName))
-      {
-        String nextCatalogId = attributes.getValue("", OASISCatalogConstants.ATTR_ID); //$NON-NLS-1$
-
-        String location = attributes.getValue("", OASISCatalogConstants.ATTR_CATALOG);    //$NON-NLS-1$
-        NextCatalog delegate = new NextCatalog();
-        delegate.setCatalogLocation(location);  
-        delegate.setId(nextCatalogId);
-        catalog.addCatalogElement(delegate);
-        return;
-      }
-      else{
-    	  // do not handle other entries
-    	  return;
-      }
-      if (key == null || key.equals("")) //$NON-NLS-1$
-      {
-        Logger.log(Logger.ERROR, XMLCoreMessages.Catalog_entry_key_not_set);
-        return;
-      }
-      String entryURI = attributes.getValue("", OASISCatalogConstants.ATTR_URI); // mandatory //$NON-NLS-1$
-      if (entryURI == null || entryURI.equals("")) //$NON-NLS-1$
-      {
-        Logger.log(Logger.ERROR, XMLCoreMessages.Catalog_entry_uri_not_set);
-        return;
-      }
- 
-      ICatalogElement catalogElement = catalog.createCatalogElement(type);
-      if (catalogElement instanceof CatalogEntry)
-      {
-        CatalogEntry catalogEntry = (CatalogEntry) catalogElement;
-        catalogEntry.setKey(key); 
-
-        //      For relative URIs, try to resolve them using the corresponding base URI.
-        if(URI.createURI(entryURI).isRelative()) {
-        	entryURI = URI.resolveRelativeURI(entryURI, baseURIStack.peek().toString());
-        } 
-
-        catalogEntry.setURI(URIHelper.ensureURIProtocolFormat(entryURI));     
-
-      }
-      // process any other attributes
-      for (int j = 0; j < attributes.getLength(); j++)
-      {
-        String attrName = attributes.getLocalName(j);
-        if (!attrName.equals(OASISCatalogConstants.ATTR_URI) && !attrName.equals(OASISCatalogConstants.ATTR_NAME) && !attrName.equals(OASISCatalogConstants.ATTR_PUBLIC_ID)
-            && !attrName.equals(OASISCatalogConstants.ATTR_SYSTEM_ID) && !attrName.equals(OASISCatalogConstants.ATTR_CATALOG) && !attrName.equals(OASISCatalogConstants.ATTR_ID)
-            && !attrName.equals(OASISCatalogConstants.ATTR_BASE))
-        {
-          String attrValue = attributes.getValue(attrName);
-          if (attrValue != null && !attrValue.equals("")) //$NON-NLS-1$
-          {
-            catalogElement.setAttributeValue(attrName, attrValue);
-          }
-        }
-      }
-      catalog.addCatalogElement(catalogElement);
-
-    }
-
-    public void endElement(String uri, String localName, String qName) throws SAXException
-    {
-      if (baseURIStack.size() > 0)
-      {
-        baseURIStack.pop();
-      }
-    }
-    
-  }  
-  
-  // for backward compatability
-  interface CompatabilityConstants{
-	  
-	  public static final String TAG_ID_XML_CATALOG_SETTINGS = "XMLCatalogSettings"; //$NON-NLS-1$
-	  public static final String TAG_ID_USER_ENTRIES = "UserEntries"; //$NON-NLS-1$
-	  public static final String TAG_USER_ENTRY = "UserEntry"; //$NON-NLS-1$
-	  public static final String ATT_TYPE = "TYPE"; //$NON-NLS-1$
-	  public static final String ATT_ID = "ID"; //$NON-NLS-1$
-	  public static final String ATT_URI = "URI"; //$NON-NLS-1$
-	  public static final String ATT_WEB_URL = "WEB_URL"; //$NON-NLS-1$
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogSet.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogSet.java
deleted file mode 100644
index acfbd16..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogSet.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.catalog;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.wst.xml.core.internal.Logger;
-
-
-
-public class CatalogSet {
-	protected Map uriResourceMap = new HashMap();
-	protected Map catalogPersistenceLocations = new HashMap();
-	public CatalogSet() {
-		super();
-	}
-
-	/**
-	 * Find a Catalog with the given ID.  If one is not found, create one at the given URI.
-	 * 
-	 * @param id
-	 * @param uri - the URI, the parent of this file path must already exist
-	 * @return
-	 */
-	public Catalog lookupOrCreateCatalog(String id, String uri) {
-		Catalog catalog = getCatalog(id, uri);
-		if (catalog == null) {
-			catalog = new Catalog(this, id, uri);
-			try {
-				catalog.load();
-				uriResourceMap.put(uri, catalog);
-			}
-			catch (Exception e) {
-				// we catch and log all exceptions, to disallow
-				// one bad extension interfering with others
-				Logger.logException("error loading catalog: " + id + " " + uri, e); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-		return catalog;
-	}
-
-	private Catalog getCatalog(String id, String uri) {
-		return (Catalog) uriResourceMap.get(uri);
-	}
-
-	public void putCatalogPersistenceLocation(String logicalURI, String actualURI) {
-		catalogPersistenceLocations.put(logicalURI, actualURI);
-	}
-
-	// Never used?
-	public String getCatalogPersistenceLocation(String id) {
-		return (String) catalogPersistenceLocations.get(id);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogWriter.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogWriter.java
deleted file mode 100644
index 5900e1f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogWriter.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.catalog;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- * Write OASIS XML Catalog format
- * 
- */
-public final class CatalogWriter
-{
-  private Document doc;
-
-  public void write(ICatalog xmlCatalog, String uri) throws FileNotFoundException, IOException
-  {
-	OutputStream outputStream = null;
-	try {
-      visitCatalog(xmlCatalog);
-      outputStream = getOutputStream(uri);
-      serialize(outputStream);
-	}
-	finally {
-	  if(outputStream != null) {
-		outputStream.close();
-	  }
-	}
-  }
-
-  public void write(ICatalog catalog, OutputStream os) throws FileNotFoundException, IOException
-  {
-    if (catalog != null)
-    {
-      visitCatalog(catalog);
-      serialize(os);
-    }
-  }
-
-  private void visitCatalog(ICatalog xmlCatalog)
-  {
-    try
-    {
-      doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
-    }
-    catch (ParserConfigurationException e)
-    {
-      Logger.logException(e);
-    }
-    if (doc == null)
-      return;
-    Element catalogElement = doc.createElementNS(OASISCatalogConstants.namespaceName, OASISCatalogConstants.TAG_CATALOG);
-    doc.appendChild(catalogElement);
-    processCatalogEntries(xmlCatalog, catalogElement);
-    processNextCatalogs(xmlCatalog, catalogElement);
-  }
-
-  private void processCatalogEntries(ICatalog catalog, Element parent)
-  {
-    ICatalogEntry[] catalogEntries = catalog.getCatalogEntries();
-  
-    for (int i = 0; i < catalogEntries.length; i++)
-    {
-      ICatalogEntry entry = catalogEntries[i];
-      String key = entry.getKey();
-      String uri = entry.getURI();
-	  String id = entry.getId();
-	  Element childElement = null;
-	 
-     switch (entry.getEntryType())
-      {
-        case ICatalogEntry.ENTRY_TYPE_PUBLIC :
-          childElement = parent.getOwnerDocument().createElement(OASISCatalogConstants.TAG_PUBLIC);
-          if (childElement != null)
-          {
-            childElement.setAttribute(OASISCatalogConstants.ATTR_PUBLIC_ID, key);
-            childElement.setAttribute(OASISCatalogConstants.ATTR_URI, uri);
-          }
-          break;
-        case ICatalogEntry.ENTRY_TYPE_SYSTEM :
-          childElement = parent.getOwnerDocument().createElement(OASISCatalogConstants.TAG_SYSTEM);
-          if (childElement != null)
-          {
-            childElement.setAttribute(OASISCatalogConstants.ATTR_SYSTEM_ID, key);
-            childElement.setAttribute(OASISCatalogConstants.ATTR_URI, uri);
-          }
-          break;
-        case ICatalogEntry.ENTRY_TYPE_URI :
-          childElement = parent.getOwnerDocument().createElement(OASISCatalogConstants.TAG_URI);
-          if (childElement != null)
-          {
-            childElement.setAttribute(OASISCatalogConstants.ATTR_NAME, key);
-            childElement.setAttribute(OASISCatalogConstants.ATTR_URI, uri);
-          }
-          break;
-        default :
-          break;
-      }
-	  if(childElement != null && id != null && !id.equals("")){ //$NON-NLS-1$
-		  childElement.setAttribute(OASISCatalogConstants.ATTR_ID, id);
-	  }
-      
-      String[] attributes = entry.getAttributes();   
-      for (int j = 0; j < attributes.length; j++)
-      {
-        String attrName = attributes[j];
-        if (attrName != null && !attrName.equals("")) //$NON-NLS-1$
-        {
-		  String attrValue = entry.getAttributeValue(attrName);
-          if (childElement != null && attrValue != null)
-          {
-            childElement.setAttribute(attrName, attrValue);
-          }
-        }
-      }
-      if (childElement != null)
-      {
-        parent.appendChild(childElement);
-      }
-    }
-  }
-
-  private void processNextCatalogs(ICatalog catalog, Element parent)
-  {
-    // handle catalog entries
-    INextCatalog[] nextCatalogs = catalog.getNextCatalogs();
-    Element childElement = null;
-   //dw String attrValue = null;
-    for (int i = 0; i < nextCatalogs.length; i++)
-    {
-      INextCatalog delegate = nextCatalogs[i];
-      childElement = parent.getOwnerDocument().createElement(OASISCatalogConstants.TAG_NEXT_CATALOG);
-      if (childElement != null)
-      {
-        parent.appendChild(childElement);
-        String location = delegate.getCatalogLocation();
-        if (location != null)
-        {
-          childElement.setAttribute(OASISCatalogConstants.ATTR_CATALOG, location);
-        }
-		 String id = delegate.getId();
-		 if (id != null)
-		 {
-			 childElement.setAttribute(OASISCatalogConstants.ATTR_ID, id);
-		 }
-      }
-    }
-  }
-
-  private void serialize(OutputStream outputStream) throws FileNotFoundException, IOException
-  {
-    if (doc == null)
-      return;
-    try
-    {
-      TransformerFactory transformerFactory = TransformerFactory.newInstance();
-      Transformer transformer = transformerFactory.newTransformer();
-      transformer.setOutputProperty(OutputKeys.INDENT, "yes"); //$NON-NLS-1$
-      transformer.setOutputProperty(OutputKeys.METHOD, "xml"); //$NON-NLS-1$
-      // Unless a width is set, there will be only line breaks but no
-      // indentation.
-      // The IBM JDK and the Sun JDK don't agree on the property name,
-      // so we set them both.
-      //
-      transformer.setOutputProperty("{http://xml.apache.org/xalan}indent-amount", "2"); //$NON-NLS-1$ //$NON-NLS-2$
-      transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); //$NON-NLS-1$ //$NON-NLS-2$
-      String encoding = "UTF-8"; // TBD //$NON-NLS-1$
-      if (encoding != null)
-      {
-        transformer.setOutputProperty(OutputKeys.ENCODING, encoding);
-      }
-      transformer.transform(new DOMSource(doc), new StreamResult(outputStream));
-    }
-    catch (TransformerException e)
-    {
-      Logger.logException(e);
-    }
-  }
-
-  private OutputStream getOutputStream(String uri) throws FileNotFoundException, IOException
-  {
-    String filePath = removeProtocol(uri);
-    File file = new File(filePath);
-    OutputStream stream = new FileOutputStream(file);
-    return stream;
-  }
-  
-  protected static String removeProtocol(String uri)
-  {
-    String result = uri;  
-    String protocol_pattern = ":"; //$NON-NLS-1$
-    if (uri != null)
-    {
-      int index = uri.indexOf(protocol_pattern);
-      if (index > 2)
-      {
-        result = result.substring(index + protocol_pattern.length());                 
-      }
-    }
-    return result;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/NextCatalog.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/NextCatalog.java
deleted file mode 100644
index 16f755a..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/NextCatalog.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     Raj Mandayam, IBM
- *           136400 NextCatalog.getReferencedCatalog() takes a lot of time computing constant information
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.catalog;
-
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogElement;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog;
-
-
-
-public class NextCatalog extends CatalogElement implements INextCatalog
-{
-  private String location;
-  private ICatalog referencedCatalog;
-
-  public NextCatalog()
-  {
-    super(ICatalogElement.TYPE_NEXT_CATALOG);
-  }
-    
-  public String getCatalogLocation()
-  {
-    return location;
-  }
-
-  public ICatalog getReferencedCatalog()
-  {
-    if (referencedCatalog == null)
-    {
-      referencedCatalog = ((Catalog)ownerCatalog).getCatalogSet().lookupOrCreateCatalog(getId(), getAbsolutePath(location));
-    }
-    return referencedCatalog;
-  }
-
-  public void setCatalogLocation(String uri)
-  {
-    location = uri;
-    referencedCatalog = null;
-  }
-  
-  public Object clone()
-  {
-	NextCatalog nextCatalog = (NextCatalog)super.clone();
-	nextCatalog.setCatalogLocation(location);
-    return nextCatalog;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/OASISCatalogConstants.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/OASISCatalogConstants.java
deleted file mode 100644
index a3c578a..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/OASISCatalogConstants.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.catalog;
-
-public interface OASISCatalogConstants
-{
-  public static final String namespaceName = "urn:oasis:names:tc:entity:xmlns:xml:catalog"; //$NON-NLS-1$
-  /** Types of the catalog entries */
-  /** The CATALOG element name. */
-  public static final String TAG_CATALOG = "catalog"; //$NON-NLS-1$
-  /** The GROUP catalog entry. */
-  public static final String TAG_GROUP = "group"; //$NON-NLS-1$
-  /** The PUBLIC catalog entry. */
-  public static final String TAG_PUBLIC = "public"; //$NON-NLS-1$
-  /** The SYSTEM catalog etnry. */
-  public static final String TAG_SYSTEM = "system"; //$NON-NLS-1$
-  /** The URI catalog entry. */
-  public static final String TAG_URI = "uri"; //$NON-NLS-1$
-  /** The REWRITE_SYSTEM catalog entry. */
-  public static final String TAG_REWRITE_SYSTEM = "rewriteSystem"; //$NON-NLS-1$
-  /** The REWRITE_URI catalog entry. */
-  public static final String TAG_REWRITE_URI = "rewritePublic"; //$NON-NLS-1$
-  /** The DELEGATE_PUBLIC catalog entry. */
-  public static final String TAG_DELEGATE_PUBLIC = "delegatePublic"; //$NON-NLS-1$
-  /** The DELEGATE_SYSTEM catalog entry. */
-  public static final String TAG_DELEGATE_SYSTEM = "delegateSystem"; //$NON-NLS-1$
-  /** The DELEGATE_URI catalog entry. */
-  public static final String TAG_DELEGATE_URI = "delegateUri"; //$NON-NLS-1$
-  /** The NEXT_CATALOG catalog entry. */
-  public static final String TAG_NEXT_CATALOG = "nextCatalog"; //$NON-NLS-1$
-  /** Attributes */
-  /** Attribute id used in all catalog entries */
-  public static final String ATTR_ID = "id"; //$NON-NLS-1$
-  /** Attribute id base in all catalog entries */
-  public static final String ATTR_BASE = "xml:base"; //$NON-NLS-1$
-  /** Attribute id prefere in catalog entries: CATALOG, GROUP */
-  public static final String ATTR_PREFERE = "prefere"; //$NON-NLS-1$
-  /** Attribute used in catalog entries of type: PUBLIC */
-  public static final String ATTR_PUBLIC_ID = "publicId"; //$NON-NLS-1$
-  /**
-   * Attribute used in catalog entries of type: SYSTEM
-   */
-  public static final String ATTR_SYSTEM_ID = "systemId"; //$NON-NLS-1$
-  /**
-   * Attribute used in catalog entries of type: URI
-   */
-  public static final String ATTR_NAME = "name"; //$NON-NLS-1$
-  /**
-   * Attribute used in catalog entries of type: PUBLIC, URI
-   */
-  public static final String ATTR_URI = "uri"; //$NON-NLS-1$
-  /**
-   * Attribute used in catalog entries of type: REWRITE_SYSTEM, DELEGATE_SYSTEM
-   */
-  public static final String ATTR_SYSTEM_ID_START_STRING = "systemIdStartString"; //$NON-NLS-1$
-  /**
-   * Attribute used in catalog entries of type: REWRITE_SYSTEM, REWRITE_URI
-   */
-  public static final String ATTR_REWRITE_PREFIX = "rewritePrefix"; //$NON-NLS-1$
-  /**
-   * Attribute used in catalog entries of type: DELEGATE_PUBLIC
-   */
-  public static final String ATTR_PUBLIC_ID_START_STRING = "publicIdStartString"; //$NON-NLS-1$
-  /**
-   * Attribute used in catalog entries of type: DELEGATE_PUBLIC,
-   * DELEGATE_SYSTEM, DELEGATE_URI, NEXT_CATALOG
-   */
-  public static final String ATTR_CATALOG = "catalog"; //$NON-NLS-1$
-  /**
-   * Attribute used in catalog entries of type: REWRITE_URI, DELEGATE_URI
-   */
-  public static final String ATTR_URI_START_STRING = "uriStartString"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/XMLCatalogURIResolverExtension.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/XMLCatalogURIResolverExtension.java
deleted file mode 100644
index 0b4af07..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/XMLCatalogURIResolverExtension.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.catalog;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverExtension;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.XMLCoreMessages;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-
-/**
- * This class is used to inject the XMLCatalog resolution behaviour into the
- * Common Extensible URI Resolver. This class is referenced in the XML Catalog
- * plugin's plugin.xml file.
- */
-public class XMLCatalogURIResolverExtension implements URIResolverExtension
-{
-  public String resolve(IFile file, String baseLocation, String publicId, String systemId)
-  {
-    // if we have catalog in a project we may add it
-    // to the catalog manager first
-    ICatalog catalog = XMLCorePlugin.getDefault().getDefaultXMLCatalog();
-    if (catalog == null)
-    {
-      Logger.log(Logger.ERROR_DEBUG, XMLCoreMessages.Catalog_resolution_null_catalog);
-      return null;
-    }
-    String resolved = null;
-    if (systemId != null)
-    {
-      try
-      {
-        resolved = catalog.resolveSystem(systemId);
-        if (resolved == null)
-        {
-          resolved = catalog.resolveURI(systemId);
-        }
-      }
-      catch (MalformedURLException me)
-      {
-        Logger.log(Logger.ERROR_DEBUG, XMLCoreMessages.Catalog_resolution_malformed_url);
-        resolved = null;
-      }
-      catch (IOException ie)
-      {
-        Logger.log(Logger.ERROR_DEBUG, XMLCoreMessages.Catalog_resolution_io_exception);
-        resolved = null;
-      }
-    }
-    if (resolved == null)
-    {
-      if (publicId != null)
-      {
-        // CS : this is a temporary workaround for bug 96772
-        //
-        // For schemas we always use locations where available and only use
-        // namespace when no location is specified.  For XML entities (such as DOCTYPE) 
-        // default always utilize the public catalog entry.
-        //
-        // This lame test below roughly discriminate between schema and XML entities.
-        // TODO (bug 103243) remove this lame test once we move to the new URIResolver API
-        // since the new API is explicit about namespace and publicId
-        // 
-        if (!(systemId != null && systemId.endsWith(".xsd"))) //$NON-NLS-1$
-        {
-          try
-          {
-            resolved = catalog.resolvePublic(publicId, systemId);
-            if (resolved == null)
-            {
-              resolved = catalog.resolveURI(publicId);
-            }
-          }
-          catch (MalformedURLException me)
-          {
-            Logger.log(Logger.ERROR_DEBUG, XMLCoreMessages.Catalog_resolution_malformed_url);
-            resolved = null;
-          }
-          catch (IOException ie)
-          {
-            Logger.log(Logger.ERROR_DEBUG, XMLCoreMessages.Catalog_resolution_io_exception);
-            resolved = null;
-          }
-        }
-      }
-    }
-    return resolved;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalog.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalog.java
deleted file mode 100644
index 0637a3c..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalog.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.catalog.provisional;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-
-
-
-/**
- * A representation of the model object '<em><b>Catalog</b></em>'.
- * 
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- */
-public interface ICatalog
-{
-    /**
-     * Returns catalog id string
-     * 
-     * @return catalog id string
-     */
-    public String getId();
-    
-    /**
-     * Sets catalog id string
-     * 
-     */
-    public void setId(String id);
-    
-    
-    public void setLocation(String location);
-    public String getLocation();
-    
-    /**
-     * Return the applicable PUBLIC or SYSTEM identifier.
-     * 
-     * <p>
-     * This method searches the Catalog and returns the system identifier
-     * specified for the given system or public identifiers. If no appropriate
-     * PUBLIC or SYSTEM entry is found in the Catalog, null is returned.
-     * </p>
-     * 
-     * @param publicId
-     *            The public identifier to locate in the catalog. Public
-     *            identifiers are normalized before comparison.
-     * @param systemId
-     *            The nominal system identifier for the entity in question (as
-     *            provided in the source document).
-     * 
-     * @throws MalformedURLException
-     *             The formal system identifier of a subordinate catalog cannot
-     *             be turned into a valid URL.
-     * @throws IOException
-     *             Error reading subordinate catalog file.
-     * 
-     * @return The system identifier to use. Note that the nominal system
-     *         identifier is not returned if a match is not found in the
-     *         catalog, instead null is returned to indicate that no match was
-     *         found.
-     */
-    public String resolvePublic(String publicId, String systemId)
-            throws MalformedURLException, IOException;
-
-    /**
-     * Return the applicable SYSTEM system identifier.
-     * 
-     * <p>
-     * If a SYSTEM entry exists in the Catalog for the system ID specified,
-     * return the mapped value.
-     * </p>
-     * 
-     * <p>
-     * On Windows-based operating systems, the comparison between the system
-     * identifier provided and the SYSTEM entries in the Catalog is
-     * case-insensitive.
-     * </p>
-     * 
-     * @param systemId
-     *            The system ID to locate in the catalog.
-     * 
-     * @return The resolved system identifier.
-     * 
-     * @throws MalformedURLException
-     *             The formal system identifier of a subordinate catalog cannot
-     *             be turned into a valid URL.
-     * @throws IOException
-     *             Error reading subordinate catalog file.
-     */
-    public String resolveSystem(String systemId) throws MalformedURLException,
-            IOException;
-
-    /**
-     * Return the applicable URI.
-     * 
-     * <p>
-     * If a URI entry exists in the Catalog for the URI specified, return the
-     * mapped value.
-     * </p>
-     * 
-     * <p>
-     * URI comparison is case sensitive.
-     * </p>
-     * 
-     * @param uri
-     *            The URI to locate in the catalog.
-     * 
-     * @return The resolved URI.
-     * 
-     * @throws MalformedURLException
-     *             The system identifier of a subordinate catalog cannot be
-     *             turned into a valid URL.
-     * @throws IOException
-     *             Error reading subordinate catalog file.
-     */
-    public String resolveURI(String uri) throws MalformedURLException,
-            IOException;
-
-    /**
-     * Adds catalog element to the collection of the catalog elements.
-     * 
-     * @param element -
-     *            catalog element
-     */
-    public void addCatalogElement(ICatalogElement element);
-
-    /**
-     * Removes catalog element from the collection of the catalog elements.
-     * 
-     * @param element -
-     *            catalog element
-     */
-    public void removeCatalogElement(ICatalogElement element);
-
-    /**
-     * Returns an array of catalog elements of type ICatalogElement.TYPE_ENTRY
-     * 
-     * @return an array of catalog elements
-     */
-    public ICatalogEntry[] getCatalogEntries();
-
-    /**
-     * Returns an array of catalog elements of type
-     * ICatalogElement.TYPE_DELEGATE
-     * 
-     * @return an array of catalog elements
-     */
-    public INextCatalog[] getNextCatalogs();
-
-    /**
-     * Returns new catalog element with the specified type. If the type is one
-     * of ELEMENT_TYPE, the result entry will have corresponding interface.
-     * 
-     * @return
-     */
-    public ICatalogElement createCatalogElement(int type);
-
-    /**
-     * Removes all the elements from this catalog.
-     * 
-     */
-    public void clear();
-    
-    //public void load() throws IOException;
-    
-    public void save() throws IOException;
-
-    /*
-     * Loads catalog from the specified location. Expecting OASIS XML Catalog
-     * format
-     * 
-     * @param location -
-     *            uri of the file where catalog will be saved
-
-     * @throws IOException -
-     *             problem loading file
-     * 
-     */
-    //public void load(InputStream inputStream) throws IOException;
-
-    /*
-     * Saves catalog to the specified location in OASIS XML Catalog format
-     * 
-     * @param location -
-     *            uri of the file where catalog will be saved
-
-     * @throws IOException -
-     *             problem saving file
-     * 
-     */
-    //public void save(OutputStream outputStream) throws IOException;
-
-    /**
-     * This method copies all catalog entries from source catalog to this one.
-     * 
-     * @param catalog -
-     *            source catalog
-     * @param includeNested -
-     *            a boolean flag indicating wether to include entries of the
-     *            same type from the nested catalogs
-     */
-    public void addEntriesFromCatalog(ICatalog catalog);
-
-    /**
-     * Adds a listener of the catalog events
-     * 
-     * @param listener -
-     *            listener of the catalog events
-     * @see ICatalogEvent
-     */
-    public void addListener(ICatalogListener listener);
-
-    /**
-     * Removes a listener of the catalog events
-     * 
-     * @param listener -
-     *            listener of the catalog events
-     * @see ICatalogEvent
-     */
-    public void removeListener(ICatalogListener listener);      
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogElement.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogElement.java
deleted file mode 100644
index 15055c3..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogElement.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.catalog.provisional;
-
-
-/**
- * 
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- */
-public interface ICatalogElement
-{
-    /** Types of the catalog entries */
-    /** The PUBLIC, URI or SYSTEM Catalog Entry. */
-    public static final int TYPE_ENTRY = 1;
-
-    /** The NEXT_CATALOG Catalog Entry type. */
-    public static final int TYPE_NEXT_CATALOG = 10;
-
-    /**
-     * Returns the value of the '<em><b>Type</b></em>' attribute.
-     * 
-     * @return the value of the '<em>Type</em>' attribute.
-     */
-    int getType();
-
-    /**
-     * Returns the value of the attribute with specified name.
-     * 
-     * @return the value of the attribute with specified name.
-     * @see #setAttributeValue(String)
-     */
-    String getAttributeValue(String name);
-
-    /**
-     * Sets the value of the named attribute.
-     * 
-     * @param name
-     *            the name of the attribute that will be set
-     * @param value
-     *            the new value of the named attribute.
-     * @see #getAttributeValue()
-     */
-    void setAttributeValue(String name, String value);
-
-    /**
-     * Returns an array of attribute names for any dynamic attributes that may exist
-     * 
-     * @return array of attribute names
-     * @see #getAttributeValue()
-     * @see #setAttributeValue(String)
-     */
-    String[] getAttributes();
-    
-    /**
-     * Returns element's id string
-     * 
-     * @return element's id string
-     */
-    public String getId();
-    
-    /**
-     * Sets element's id string
-     * 
-     */
-    public void setId(String id);
-    
-    public void setOwnerCatalog(ICatalog catalog);
-    
-    public ICatalog getOwnerCatalog();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogEntry.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogEntry.java
deleted file mode 100644
index 271cbe2..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogEntry.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.catalog.provisional;
-
-/**
- * 
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- */
-public interface ICatalogEntry extends ICatalogElement
-{
-    /** The SYSTEM Catalog Entry type. */
-    public static final int ENTRY_TYPE_PUBLIC = 2;
-
-    /** The SYSTEM Catalog Entry type. */
-    public static final int ENTRY_TYPE_SYSTEM = 3;
-
-    /** The URI Catalog Entry type. */
-    public static final int ENTRY_TYPE_URI = 4;
-
-    /** Attribute name for Web address of catalog entry */
-    public static final String ATTR_WEB_URL = "webURL"; //$NON-NLS-1$
-
-    /**
-     * 
-     * @param entryType
-     */
-    public void setEntryType(int entryType);
-
-    /**
-     * 
-     * @return
-     */
-    public int getEntryType();
-
-    /**
-     * 
-     * @param key
-     */
-    public void setKey(String key);
-
-    /**
-     * 
-     * @return
-     */
-    public String getKey();
-
-    /**
-     * 
-     * @return
-     */
-    public String getURI();
-
-    /**
-     * 
-     * @param uri
-     */
-    public void setURI(String uri);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogEvent.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogEvent.java
deleted file mode 100644
index 7825768..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogEvent.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.catalog.provisional;
-
-
-
-/**
- * 
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- */
-public interface ICatalogEvent
-{
-    /** */
-    public static final int CHANGED = 0;
-
-    public static final int ELEMENT_ADDED = 1;
-
-    /** */
-    public static final int ELEMENT_REMOVED = 2;
-
-    /** */
-    public static final int ELEMENT_CHANGED = 3;
-
-    /**
-     * 
-     * @return
-     */
-    public int getEventType();
-
-    /**
-     * 
-     * @return
-     */
-    public ICatalog getCatalog();
-
-    /**
-     * 
-     * @return
-     */
-    public ICatalogElement getCatalogElement();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogListener.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogListener.java
deleted file mode 100644
index 7c3dc0d..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogListener.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.catalog.provisional;
-
-import java.util.EventListener;
-
-
-/**
- * The clients of the catalog that want to listen to catalog changes should
- * implement this interface.
- * 
- * @see ICatalog, ICatalogEvent,
- * 
- */
-public interface ICatalogListener extends EventListener
-{
-    /**
-     * This method allows to react to catalog events
-     * 
-     * @param event -
-     *            an event that client should react to
-     */
-    public void catalogChanged(ICatalogEvent event);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/INextCatalog.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/INextCatalog.java
deleted file mode 100644
index 47c939c..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/INextCatalog.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.catalog.provisional;
-
-
-
-/**
- * 
- * A representation of the nextCatalog OASIS XML catalog element. Object of the
- * class that implements this interface would serve as a reference to the
- * catalog object.
- * 
- * @see ICatalog, ICatalogElement
- * 
- * This interface currently is used only by the catalog itself. Need to find if
- * there are any clients that need it.
- * 
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * 
- */
-public interface INextCatalog extends ICatalogElement
-{
-    /**
-     * Set location of the referenced catalog.
-     * 
-     * @param uri -
-     *            location uri of the referenced catalog
-     */
-    public void setCatalogLocation(String uri);
-
-    /**
-     * Get location uri of the referenced catalog.
-     * 
-     * @return location uri of the referenced catalog
-     */
-    public String getCatalogLocation();
-    
-    public ICatalog getReferencedCatalog();
-
-   
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMAnyElement.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMAnyElement.java
deleted file mode 100644
index 72a4702..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMAnyElement.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel;
-
-/**
- * CMAnyElement interface
- */
-public interface CMAnyElement extends CMContent {
-/**
- * getNamespaceURI method
- * @return java.lang.String
- */
-String getNamespaceURI();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMAttributeDeclaration.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMAttributeDeclaration.java
deleted file mode 100644
index c5f718f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMAttributeDeclaration.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel;
-
-import java.util.Enumeration;
-
-/**
- * AttributeDeclaration interface
- */
-public interface CMAttributeDeclaration extends CMNode {
-  public static final int OPTIONAL   = 1;
-  public static final int REQUIRED   = 2;
-  public static final int FIXED      = 3;
-  public static final int PROHIBITED = 4;
-/**
- * getAttrName method
- * @return java.lang.String
- */
-String getAttrName();
-/**
- * getAttrType method
- * @return CMDataType
- */
-CMDataType getAttrType();
-/**
- * getDefaultValue method
- * @return java.lang.String
- * @deprecated -- to be replaced in future with additional CMDataType methods (currently found on CMDataTypeHelper)
- */
-String getDefaultValue();
-/**
- * getEnumAttr method
- * @return java.util.Enumeration
- * @deprecated -- to be replaced in future with additional CMDataType methods (currently found on CMDataTypeHelper)
- */
-Enumeration getEnumAttr();
-/**
- * getUsage method
- * @return int
- */
-int getUsage();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMContent.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMContent.java
deleted file mode 100644
index 218b297..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMContent.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel;
-
-public interface CMContent extends CMNode
-{
-/**
- * getMaxOccur method
- * @return int
- *
- * If -1, it's UNBOUNDED.
- */
-int getMaxOccur();
-/**
- * getMinOccur method
- * @return int
- *
- * If 0, it's OPTIONAL.
- * If 1, it's REQUIRED.
- */
-int getMinOccur();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDataType.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDataType.java
deleted file mode 100644
index 79d9f5f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDataType.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel;
-
-/**
- * CMDataType
- */
-public interface CMDataType extends CMNode {
-    
-  // todo... at some point we should remove these names to
-  // avoid exposing implementation details via the interfaces
-  //
-	static final String CDATA = "CDATA"; //$NON-NLS-1$
-	static final String ID = "ID"; //$NON-NLS-1$
-	static final String IDREF = "IDREF"; //$NON-NLS-1$
-	static final String ENTITY = "ENTITY"; //$NON-NLS-1$
-	static final String ENTITIES = "ENTITIES"; //$NON-NLS-1$
-	static final String NOTATION = "NOTATION"; //$NON-NLS-1$
-	static final String NMTOKEN = "NMTOKEN"; //$NON-NLS-1$
-	static final String NMTOKENS = "NMTOKENS"; //$NON-NLS-1$
-	static final String NUMBER = "NUMBER"; //$NON-NLS-1$
-	static final String URI = "URI"; //$NON-NLS-1$
-	static final String ENUM = "ENUM"; //$NON-NLS-1$
-
-  static final int IMPLIED_VALUE_NONE             = 1;
-  static final int IMPLIED_VALUE_FIXED            = 2;
-  static final int IMPLIED_VALUE_DEFAULT          = 3;
-
-/**
- * getTypeName method
- * @return java.lang.String
- */
-String getDataTypeName();    
-
-/**
- * getImpliedValueKind method
- * @return int
- *
- * Returns one of :
- * IMPLIED_VALUE_NONE, IMPLIED_VALUE_FIXED, IMPLIED_VALUE_DEFAULT.
- */      
-
-int getImpliedValueKind();  
-
-/**
- * getTypeName method
- * @return java.lang.String  
- *
- * Returns the implied value or null if none exists.
- */
-String getImpliedValue();
-
-/**
- * getTypeName method
- * @return java.lang.String[]
- *
- */
-String[] getEnumeratedValues();
-
-/**
- * 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.
- */
-String generateInstanceValue();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDocument.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDocument.java
deleted file mode 100644
index 58d7a43..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDocument.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel;
-
-/**
- * CMDocument interface
- */
-public interface CMDocument extends CMNode {
-/**
- * getElements method
- * @return CMNamedNodeMap
- *
- * Returns CMNamedNodeMap of ElementDeclaration
- */
-CMNamedNodeMap getElements();
-/**
- * getEntities method
- * @return CMNamedNodeMap
- *
- * Returns CMNamedNodeMap of EntityDeclaration
- */
-CMNamedNodeMap getEntities();
-/**
- * getNamespace method
- * @return CMNamespace
- */
-CMNamespace getNamespace();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDocumentation.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDocumentation.java
deleted file mode 100644
index 88e4d8d..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDocumentation.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel;
-
-/**
- * CMDocumentation interface
- */
-public interface CMDocumentation extends CMNode {        
-  public String getValue();
-  public String getLanguage();
-  public String getSource();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMElementDeclaration.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMElementDeclaration.java
deleted file mode 100644
index 2c48077..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMElementDeclaration.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel;
-
-/**
- * CMElementDeclaration interface
- */
-public interface CMElementDeclaration extends CMContent {
-  
-	public static final int ANY = 0;
-	public static final int EMPTY = 1;
-	public static final int ELEMENT = 2;
-	public static final int MIXED = 3;
-	public static final int PCDATA = 4;
-	public static final int CDATA = 5; // todo... clarify this one
-/**
- * getAttributes method
- * @return CMNamedNodeMap
- *
- * Returns CMNamedNodeMap of AttributeDeclaration
- */
-CMNamedNodeMap getAttributes();
-/**
- * getCMContent method
- * @return CMContent
- *
- * Returns the root node of this element's content model.
- * This can be an CMElementDeclaration or a CMGroup
- */
-CMContent getContent();
-/**
- * getContentType method
- * @return int
- *
- * Returns one of :
- * ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA.
- */
-public int getContentType();
-/**
- * getElementName method
- * @return java.lang.String
- */
-String getElementName();
-
-/**
- * getDataType method
- * @return java.lang.String
- */
-CMDataType getDataType();
-
-/**
- * getLocalElements method
- * @return CMNamedNodeMap
- *
- * Returns a list of locally defined elements.
- */
-CMNamedNodeMap getLocalElements();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMEntityDeclaration.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMEntityDeclaration.java
deleted file mode 100644
index 99b5434..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMEntityDeclaration.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel;
-
-/**
- * CMEntityDeclaration interface
- */
-public interface CMEntityDeclaration extends CMNode {
-  
-/**
- * getName method
- * @return java.lang.String
- */
-String getName();
-/**
- * getValue method
- * @return java.lang.String
- */
-String getValue();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMGroup.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMGroup.java
deleted file mode 100644
index ce01ca7..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMGroup.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel;
-
-/**
- * CMGroup interface
- */
-public interface CMGroup extends CMContent {
-  
-	static final int ALL = 3;
-	static final int CHOICE = 2;
-	static final int SEQUENCE = 1;
-/**
- * getChildNodes method
- * @return CMNodeList
- *
- * Returns child CMNodeList, which includes ElementDefinition or CMElement.
- */
-CMNodeList getChildNodes();
-
-/**
- * getOperation method
- * @return int
- *
- * Returns one of :
- * ALONE (a), SEQUENCE (a,b), CHOICE (a|b), ALL (a&b).
- */
-int getOperator();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNamedNodeMap.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNamedNodeMap.java
deleted file mode 100644
index 2c79b81..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNamedNodeMap.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel;
-import java.util.Iterator;
-/**
- * NamedCMNodeMap
- */
-public interface CMNamedNodeMap {
-/**
- * getLength method
- * @return int
- */
-int getLength();
-/**
- * getNamedItem method
- * @return CMNode
- * @param name java.lang.String
- */
-CMNode getNamedItem(String name);
-/**
- * item method
- * @return CMNode
- * @param index int
- */
-CMNode item(int index);
-
-/**
- *
- */
-Iterator iterator();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNamespace.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNamespace.java
deleted file mode 100644
index 100bcbc..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNamespace.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel;
-
-/**
- * CMNamespace interface
- */
-public interface CMNamespace extends CMNode {
-  
-/**
- * getPrefix method
- * @return java.lang.String
- */
-String getPrefix();
-/**
- * getURI method
- * @return java.lang.String
- */
-String getURI();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNode.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNode.java
deleted file mode 100644
index 8bd95e8..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNode.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel;
-
-/**
- * CMNode interface
- */
-public interface CMNode {        
-  
-  static final int ANY_ELEMENT           = 1;
-	static final int ATTRIBUTE_DECLARATION = 2;
-	static final int DATA_TYPE             = 3;
-	static final int DOCUMENT              = 4;
-	static final int ELEMENT_DECLARATION   = 5;
-	static final int ENTITY_DECLARATION    = 6;
-	static final int GROUP                 = 7;
-  static final int NAME_SPACE            = 8;
-  static final int DOCUMENTATION         = 9;
-/**
- * getNodeName method
- * @return java.lang.String
- */
-String getNodeName();
-/**
- * getNodeType method
- * @return int
- *
- * Returns one of :
- *
- */
-int getNodeType();
-
-/**
- * supports method
- * @return boolean
- *
- * Returns true if the CMNode supports a specified property
- *
- */
-boolean supports(String propertyName);
-
-/**
- * getProperty method
- * @return java.lang.Object
- *
- * Returns the object property desciped by the propertyName
- *
- */
-Object getProperty(String propertyName); //todo throw unsupported property exception
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNodeList.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNodeList.java
deleted file mode 100644
index 94adbf8..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNodeList.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel;
-
-/**
- * CMNodeList interface
- */
-public interface CMNodeList {
-  
-/**
- * getLength method
- * @return int
- */
-int getLength();
-/**
- * item method
- * @return CMNode
- * @param index int
- */
-CMNode item(int index);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/ContentModelManager.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/ContentModelManager.java
deleted file mode 100644
index 602b160..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/ContentModelManager.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.wst.xml.core.internal.contentmodel.factory.CMDocumentFactory;
-import org.eclipse.wst.xml.core.internal.contentmodel.factory.CMDocumentFactoryRegistry;
-import org.eclipse.wst.xml.core.internal.contentmodel.factory.CMDocumentFactoryRegistryReader;
-import org.eclipse.wst.xml.core.internal.contentmodel.internal.annotation.AnnotationFileRegistry;
-import org.eclipse.wst.xml.core.internal.contentmodel.internal.annotation.AnnotationFileRegistryReader;
-
-
-/**
- * ContentModelManager class
- */
-public class ContentModelManager extends Plugin {
-	// private static InferredGrammarFactory inferredGrammarFactory;
-	private CMDocumentFactoryRegistry cmDocumentFactoryRegistry;
-	private AnnotationFileRegistry annotationFileRegistry;
-
-	private static ContentModelManager instance;
-
-	public ContentModelManager() {
-		super();
-	}
-
-	public static ContentModelManager getInstance() {
-		if (instance == null) {
-			instance = new ContentModelManager();
-		}
-		return instance;
-	}
-
-	public CMDocument createCMDocument(String uri, String resourceType) {
-		if (resourceType == null && uri != null) {
-			int index = uri.lastIndexOf("."); //$NON-NLS-1$
-			resourceType = uri.substring(index + 1);
-		}
-
-		if (resourceType != null) {
-			resourceType = resourceType.toLowerCase();
-		}
-		CMDocumentFactory factory = getCMDocumentFactoryRegistry().getFactory(resourceType);
-		return factory != null ? factory.createCMDocument(uri) : null;
-	}
-
-
-	private CMDocumentFactoryRegistry getCMDocumentFactoryRegistry() {
-		if (cmDocumentFactoryRegistry == null) {
-			cmDocumentFactoryRegistry = new CMDocumentFactoryRegistry();
-			new CMDocumentFactoryRegistryReader(cmDocumentFactoryRegistry).readRegistry();
-		}
-		return cmDocumentFactoryRegistry;
-	}
-
-
-	public List getAnnotationFilesInfos(String publicId) {
-		return getAnnotationFileRegistry().getAnnotationFilesInfos(publicId);
-	}
-
-	private AnnotationFileRegistry getAnnotationFileRegistry() {
-		if (annotationFileRegistry == null) {
-			annotationFileRegistry = new AnnotationFileRegistry();
-			new AnnotationFileRegistryReader(annotationFileRegistry).readRegistry();
-		}
-		return annotationFileRegistry;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/annotation/Annotation.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/annotation/Annotation.java
deleted file mode 100644
index e0a3b39..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/annotation/Annotation.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.annotation;
-
-import java.util.Hashtable;
-import java.util.List;
-         
-/**
- * 
- */
-public class Annotation
-{       
-  protected Hashtable hashtable = new Hashtable();                     
-
-  public Annotation()
-  {
-  }
-
-  public void setSpec(String spec)
-  {
-    hashtable.put("spec", spec); //$NON-NLS-1$
-  }     
-
-  public String getSpec()
-  {
-    return (String)hashtable.get("spec"); //$NON-NLS-1$
-  }
-      
-  public void setProperty(String name, String value)
-  {                             
-    hashtable.put(name, value);
-  }
-
-  public String getProperty(String propertyName)
-  {     
-    return (String)hashtable.get(propertyName);
-  }    
-
-  public List getAttributeList()
-  {
-    return null; // todo
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/annotation/AnnotationMap.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/annotation/AnnotationMap.java
deleted file mode 100644
index 4b93035..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/annotation/AnnotationMap.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.annotation;
-
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import com.ibm.icu.util.StringTokenizer;
-import java.util.Vector;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.internal.annotation.AnnotationFileInfo;
-import org.eclipse.wst.xml.core.internal.contentmodel.internal.annotation.AnnotationFileParser;
-
-
-/**
- * AnnotationMap
- */
-public class AnnotationMap {
-	protected List list = new Vector();
-	protected Hashtable hashtable = new Hashtable();
-	protected boolean isCaseSensitive = true;
-
-	public AnnotationMap() {
-	}
-
-	public void setCaseSensitive(boolean isCaseSensitive) {
-		this.isCaseSensitive = isCaseSensitive;
-	}
-
-	public void addAnnotation(Annotation annotation) {
-		String spec = annotation.getSpec();
-		if (spec != null) {
-			list.add(annotation);
-			StringTokenizer st = new StringTokenizer(spec, "[]|\t\n\r\f "); //$NON-NLS-1$
-			while (st.hasMoreTokens()) {
-				String cmNodeSpec = st.nextToken();
-				addAnnotationForCMNodeSpec(cmNodeSpec, annotation);
-			}
-		}
-	}
-
-	protected void addAnnotationForCMNodeSpec(String cmNodeSpec, Annotation annotation) {
-		String key = isCaseSensitive ? cmNodeSpec : cmNodeSpec.toLowerCase();
-		List list = (List) hashtable.get(key);
-		if (list == null) {
-			list = new Vector();
-
-			hashtable.put(key, list);
-		}
-		list.add(annotation);
-	}
-
-	public String getProperty(String cmNodeSpec, String propertyName) {
-		String result = null;
-		String key = isCaseSensitive ? cmNodeSpec : cmNodeSpec.toLowerCase();
-		List annotationList = (List) hashtable.get(key);
-		if (annotationList != null) {
-			for (Iterator i = annotationList.iterator(); i.hasNext();) {
-				Annotation annotation = (Annotation) i.next();
-				result = annotation.getProperty(propertyName);
-				if (result != null) {
-					break;
-				}
-			}
-		}
-		return result;
-	}
-
-	public String getProperty(CMNode cmNode, String propertyName) {
-		String result = null;
-		String cmNodeSpec = (String) cmNode.getProperty("spec"); //$NON-NLS-1$
-		if (cmNodeSpec == null) {
-			cmNodeSpec = cmNode.getNodeName();
-		}
-		if (cmNodeSpec != null) {
-			result = getProperty(cmNodeSpec, propertyName);
-		}
-		return result;
-	}
-
-	public List getAnnotations() {
-		return list;
-	}
-
-	public void load(String uri, String bundleId) throws Exception {
-		AnnotationFileParser parser = new AnnotationFileParser();
-		AnnotationFileInfo fileInfo = new AnnotationFileInfo(uri, bundleId);
-		parser.parse(this, fileInfo);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMAnyElementImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMAnyElementImpl.java
deleted file mode 100644
index 8300a90..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMAnyElementImpl.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.basic;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAnyElement;
-
-
-public class CMAnyElementImpl extends CMContentImpl implements CMAnyElement
-{
-  protected String namespaceURI;  
-
-  public CMAnyElementImpl(String namespaceURI)
-  {
-    this.namespaceURI = namespaceURI;
-    minOccur = -1;
-  }             
-
-  public static String computeNodeName(String uri)
-  {
-    return uri != null ? ("any#" + uri) : "any"; //$NON-NLS-1$ //$NON-NLS-2$
-  }
-
-  // implements CMNode
-  //
-  public String getNodeName()
-  {
-    return computeNodeName(namespaceURI);
-  }
- 
-  public int getNodeType()
-  {
-    return ANY_ELEMENT;
-  } 
-
-  // implements CMAnyElement
-  //
-  public String getNamespaceURI()
-  {
-    return namespaceURI;
-  }                     
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMAttributeDeclarationImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMAttributeDeclarationImpl.java
deleted file mode 100644
index f0df4fa..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMAttributeDeclarationImpl.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.basic;
-
-import java.util.Enumeration;
-import java.util.List;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-
-public class CMAttributeDeclarationImpl extends CMNodeImpl implements CMAttributeDeclaration
-{
-  protected CMDataType dataType;
-  protected String nodeName;    
-  protected int usage;  
-  protected CMDocument cmDocument;
-  protected boolean prefixQualification;
-  protected List xsiTypes;
-                
-  public CMAttributeDeclarationImpl(String nodeName, int usage)
-  {
-    this(nodeName, usage, null);
-  }     
-
-  public CMAttributeDeclarationImpl(String nodeName, int usage, CMDataType dataType)
-  {        
-    this.nodeName = nodeName;
-    this.usage = usage;
-    this.dataType = dataType; 
-  }    
-
-  public int getNodeType()
-  {
-    return CMNode.ATTRIBUTE_DECLARATION;
-  }
-
-  public Object getProperty(String propertyName)
-  {
-    Object result = null;   
-    if (propertyName.equals("CMDocument")) //$NON-NLS-1$
-    {
-      result = cmDocument;
-    } 
-    else if (propertyName.equals("XSITypes")) //$NON-NLS-1$
-    {                                      
-      result = xsiTypes;
-    }
-    else if (propertyName.equals("http://org.eclipse.wst/cm/properties/nsPrefixQualification")) //$NON-NLS-1$
-    {
-      result = prefixQualification ? "qualified" : "unqualified"; //$NON-NLS-1$ //$NON-NLS-2$
-    }  
-    else
-    {
-      result = super.getProperty(propertyName);
-    }
-    return result;
-  }
-
-  public void setPrefixQualification(boolean qualified)
-  {
-    prefixQualification = qualified;
-  }              
-
-  public void setXSITypes(List list)
-  {
-    xsiTypes = list;
-  }
-     
-  public void setCMDocument(CMDocument cmDocument)
-  {
-    this.cmDocument = cmDocument;
-  }
-
-  public String getNodeName()
-  {
-    return nodeName;
-  }
-
-  public String getAttrName()
-  {
-    return nodeName;
-  }
-
-  public void setAttrType(CMDataType dataType)
-  {
-    this.dataType = dataType;
-  }
-
-  public CMDataType getAttrType()
-  {
-    return dataType;
-  }
-
-  public int getUsage()
-  {
-    return usage;
-  }
-           
-  /** @deprecated */
-  public String getDefaultValue()
-  {
-    return ""; //$NON-NLS-1$
-  }                 
-
-  /** @deprecated */
-  public Enumeration getEnumAttr()
-  {
-    return null;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMContentImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMContentImpl.java
deleted file mode 100644
index 2357eec..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMContentImpl.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.basic;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-
-
-public abstract class CMContentImpl extends CMNodeImpl implements CMContent
-{
-  protected int minOccur = 0;
-  protected int maxOccur = -1;       
-                
-  // implements CMContent
-  //
-  public int getMaxOccur()
-  {
-    return maxOccur;
-  }          
- 
-  public int getMinOccur()
-  {
-    return minOccur;
-  }  
-     
-  // implementation specific
-  //
-  public void setMaxOccur(int n)
-  {
-    maxOccur = n;
-  }          
- 
-  public void setMinOccur(int n)
-  {
-    minOccur = n;
-  }                      
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMDataTypeImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMDataTypeImpl.java
deleted file mode 100644
index a004626..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMDataTypeImpl.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.basic;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-public class CMDataTypeImpl extends CMNodeImpl implements CMDataType
-{
-  protected String dataTypeName;
-  protected String[] enumeratedValues;     
-  protected String instanceValue;
-
-  public CMDataTypeImpl(String dataTypeName, String instanceValue)
-  {
-    this.dataTypeName = dataTypeName;
-    this.instanceValue = instanceValue;
-    this.enumeratedValues = new String[0];
-  }
-
-  public CMDataTypeImpl(String dataTypeName, String[] enumeratedValues)
-  {
-    this.dataTypeName = dataTypeName;
-    this.enumeratedValues = enumeratedValues;   
-    this.instanceValue = enumeratedValues[0];
-  }
-
-
-  public int getNodeType()
-  {
-    return CMNode.DATA_TYPE;
-  }
-
-  public String getNodeName()
-  {
-    return getDataTypeName();
-  }
-
-  public String getDataTypeName()
-  {
-    return dataTypeName;
-  }
-
-  public int getImpliedValueKind()
-  {
-    return IMPLIED_VALUE_NONE;
-  }
-
-  public String getImpliedValue()
-  {
-    return null;
-  }
-
-  public String[] getEnumeratedValues()
-  {
-    return enumeratedValues;
-  }
-
-  public String generateInstanceValue()
-  {
-    return instanceValue;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMDocumentImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMDocumentImpl.java
deleted file mode 100644
index 7c76a8e..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMDocumentImpl.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.basic;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamespace;
-
-
-public class CMDocumentImpl extends CMNodeImpl implements CMDocument
-{
-  protected String targetNamespace;
-  protected CMNamedNodeMapImpl elements = new CMNamedNodeMapImpl();
-  protected CMNamedNodeMapImpl localElementPool;
-  protected CMNamedNodeMapImpl anyElements;
-
-  public CMDocumentImpl(String targetNamespace)
-  {
-    this.targetNamespace = targetNamespace;
-  }
-
-  public int getNodeType()
-  {
-    return DOCUMENT;
-  }
-
-  public String getNodeName()
-  {
-    return ""; //$NON-NLS-1$
-  }
- 
-  public Object getProperty(String propertyName)
-  {
-    Object result = null;
-    if (propertyName.equals("http://org.eclipse.wst/cm/properties/targetNamespaceURI")) //$NON-NLS-1$
-    {
-      result = targetNamespace;
-    }                
-    else
-    {
-      result = super.getProperty(propertyName);
-    }
-    return result;
-  }    
-
-  public CMNamedNodeMap getElements()
-  {
-    return elements;
-  }
-
-  public CMNamedNodeMapImpl getAnyElements()
-  { 
-    if (anyElements == null)
-    {
-      anyElements = new CMNamedNodeMapImpl();
-    }
-    return anyElements;
-  }
-  
-  public CMNamedNodeMapImpl getLocalElementPool()
-  { 
-    if (localElementPool == null)
-    {
-      localElementPool = new CMNamedNodeMapImpl();
-    }                 
-    return localElementPool;
-  }
-
-  public CMNamedNodeMap getEntities()
-  {
-    return new CMNamedNodeMapImpl();
-  }
-
-  public CMNamespace getNamespace()
-  {
-    return null;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMElementDeclarationImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMElementDeclarationImpl.java
deleted file mode 100644
index 1879b9f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMElementDeclarationImpl.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.basic;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-
-
-public class CMElementDeclarationImpl extends CMContentImpl implements CMElementDeclaration
-{
-  protected String name;          
-  protected CMDocument cmDocument;
-  protected CMNamedNodeMapImpl attributeMap = new CMNamedNodeMapImpl();
-  protected CMNamedNodeMapImpl localElementMap = new CMNamedNodeMapImpl();
-  protected CMContent content;
-  protected CMDataType dataType;
-  protected boolean isLocal;
-
-  public CMElementDeclarationImpl(CMDocument cmDocument, String name)
-  {                              
-    this.cmDocument = cmDocument;
-    this.name = name;
-  }     
-
-  // implements CMNode
-  //
-  public String getNodeName()
-  {
-    return name;
-  }
- 
-  public int getNodeType()
-  {
-    return ELEMENT_DECLARATION;
-  }
-
-  public Object getProperty(String propertyName)
-  { 
-    Object result = null;               
-    if (propertyName.equals("http://org.eclipse.wst/cm/properties/nsPrefixQualification")) //$NON-NLS-1$
-    {
-      result = isLocal ? "unqualified" : "qualified"; //$NON-NLS-1$ //$NON-NLS-2$
-    }    
-    else if (propertyName.equals("CMDocument")) //$NON-NLS-1$
-    {
-      result = cmDocument;       
-    }    
-    else
-    {
-      result = super.getProperty(propertyName);
-    }
-    return result;
-  }
-                
-  // implements CMElementDeclaration
-  //
-  public CMNamedNodeMap getAttributes()
-  {
-    return attributeMap;
-  }                     
-
-  public CMContent getContent()
-  {
-    return content;
-  }
-
-  public int getContentType()
-  {
-    return MIXED;
-  }            
-
-  public String getElementName()
-  {
-    return name;
-  }
-
-  public CMDataType getDataType()
-  { 
-    return dataType;
-  }
-
-  public CMNamedNodeMap getLocalElements()
-  { 
-    return localElementMap;
-  } 
-    
-  //
-  //
-  public void setContent(CMContent cmContent)
-  {
-    content = cmContent;
-  }                 
-
-  public void setDataType(CMDataType cmDataType)
-  {
-    dataType = cmDataType;
-  }
-
-  public CMNamedNodeMapImpl getAttributeMap()
-  {
-    return attributeMap;
-  }
-
-  public void setLocal(boolean isLocal)
-  {
-    this.isLocal = isLocal;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMEntityDeclarationImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMEntityDeclarationImpl.java
deleted file mode 100644
index a5d97fa..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMEntityDeclarationImpl.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.basic;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMEntityDeclaration;
-
-public class CMEntityDeclarationImpl extends CMNodeImpl implements CMEntityDeclaration
-{
-  protected String name;                         
-  protected String value;
-
-  public CMEntityDeclarationImpl(String name, String value)
-  {
-    this.name = name;
-    this.value = value;
-  }
-
-  public int getNodeType()
-  {
-    return ENTITY_DECLARATION;
-  }
-
-  public String getNodeName()
-  {
-    return name;
-  }
- 
-  public String getName()
-  {
-    return name;
-  }
-
-  public String getValue()
-  {
-    return value;
-  }
-}   
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMGroupImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMGroupImpl.java
deleted file mode 100644
index 59c4ece..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMGroupImpl.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.basic;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-
-public class CMGroupImpl extends CMContentImpl implements CMGroup
-{
-  protected CMNodeList nodeList;                         
-  protected int operator;  
-
-  public CMGroupImpl(CMNodeList nodeList, int operator)
-  {
-    this.nodeList = nodeList;
-    this.operator = operator;
-  }
-
-  public int getNodeType()
-  {
-    return GROUP;
-  }
- 
-  public CMNodeList getChildNodes()
-  {
-    return nodeList;
-  }
-
-  public int getOperator()
-  {
-    return operator;
-  } 
-}   
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNamedNodeMapImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNamedNodeMapImpl.java
deleted file mode 100644
index fee63d2..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNamedNodeMapImpl.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.basic;
-
-import java.util.Enumeration;
-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();
-  }
-
-  public CMNamedNodeMapImpl(CMNamedNodeMap initialContentsMap) {
-		super();
-		if (initialContentsMap != null) {
-			int length = initialContentsMap.getLength();
-			for (int j = 0; j < length; j++) {
-				put(initialContentsMap.item(j));
-			}
-		}
-	}
-  /**
-   * getLength method
-   * @return int
-   */
-  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)
-  {
-    CMNode result = null;
-    int size = table.size();
-    if (index < size)
-    {
-      Enumeration values = table.elements();
-      for(int i = 0; i <= index; i++)
-      {
-        result = (CMNode)values.nextElement();
-      }
-    }
-    return result;
-  }
-  
-  public Hashtable getHashtable()
-  {
-          return table;
-  }
-  
-  public Iterator iterator()
-  {
-          return table.values().iterator();
-  }        
-  
-  public void put(CMNode cmNode)
-  {
-    table.put(cmNode.getNodeName(), cmNode);
-  }
-}
-  
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNodeImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNodeImpl.java
deleted file mode 100644
index a12e2ac..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNodeImpl.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.basic;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-
-public abstract class CMNodeImpl implements CMNode
-{            
-  protected boolean isInferred = false;
-   
-  public String getNodeName()
-  {
-    return ""; //$NON-NLS-1$
-  }
- 
-  public boolean supports(String propertyName)
-  {
-    return false;
-  } 
-
-  public Object getProperty(String propertyName)
-  {              
-    Object result = null;
-    if ("isInferred".equals(propertyName)) //$NON-NLS-1$
-    {
-      result = isInferred ? Boolean.TRUE : Boolean.FALSE;
-    }
-    return result;
-  }    
-
-  public void setInferred(boolean isInferred)
-  {
-    this.isInferred = isInferred;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNodeListImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNodeListImpl.java
deleted file mode 100644
index 6bcba38..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNodeListImpl.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.basic;
-
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-
-
-public class CMNodeListImpl implements CMNodeList 
-{
-  public static CMNodeListImpl EMPTY_NODE_LIST = new CMNodeListImpl(Collections.EMPTY_LIST);
-  protected List list;
-
-  public CMNodeListImpl()
-  {
-    this(new Vector());
-  }
-
-  public CMNodeListImpl(List list)
-  {
-    this.list = list;
-  }
-
-  /**
-   * getLength method
-   * @return int
-   */
-  public int getLength()
-  {
-    return list.size();
-  }
-  /**
-   * item method
-   * @return CMNode
-   * @param index int
-   */
-  public CMNode item(int index)
-  {
-    return (CMNode)list.get(index);
-  }
-  
-  public List getList()
-  {
-    return list;
-  }
-  
-  public Iterator iterator()
-  {
-    return list.iterator();
-  }
-  
-  public boolean contains(CMNode cmNode)
-  {
-    return list.contains(cmNode);
-  } 
-  
-  public void add(CMNode cmNode)
-  {
-    list.add(cmNode);
-  }  
-}
-
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactory.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactory.java
deleted file mode 100644
index a84be95..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactory.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.factory;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-
-// this interface is used to build a grammar document given a local file name
-//
-public interface CMDocumentFactory
-{   
-  public CMDocument createCMDocument(String uri);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryDescriptor.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryDescriptor.java
deleted file mode 100644
index c737b92..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryDescriptor.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.factory;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.wst.xml.core.internal.Logger;
-
-
-public class CMDocumentFactoryDescriptor
-{
-  private IConfigurationElement fElement;
-  private CMDocumentFactory factory;
-
-  public CMDocumentFactoryDescriptor(IConfigurationElement element)
-  {
-    this.fElement = element;
-  }
-
-  public CMDocumentFactory getFactory()
-  {
-    if (factory == null)
-    {
-      try
-      {
-        factory = (CMDocumentFactory) fElement.createExecutableExtension("class"); //$NON-NLS-1$
-      }
-      catch (Exception e)
-      {
-        Logger.logException("Exception loading CMDocumentFactory",e); //$NON-NLS-1$
-      }
-    }
-    return factory;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryRegistry.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryRegistry.java
deleted file mode 100644
index 9f403b9..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryRegistry.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.factory;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Vector;
-
-/**
- * 
- * 
- */
-public class CMDocumentFactoryRegistry 
-{
-	protected static CMDocumentFactoryRegistry instance;
-
-  private static String DEFAULT_RESOURCE_TYPE = "*"; //$NON-NLS-1$
-
-	protected Map resourceTypeMap = new HashMap();
-
-	protected Vector documentBuilderList = new Vector();
-
-	public CMDocumentFactoryRegistry() {
-	}
-
-	public void putFactory(String resourceType, CMDocumentFactoryDescriptor factoryDescriptor) {
-		resourceTypeMap.put(resourceType, factoryDescriptor);
-	}
-
-	public CMDocumentFactory getFactory(String resourceType) {
-		CMDocumentFactoryDescriptor factoryDescriptor = null;
-		if (resourceType != null) {
-			factoryDescriptor = (CMDocumentFactoryDescriptor) resourceTypeMap.get(resourceType);
-		}
-		if (factoryDescriptor == null) {
-			// (dmw) issue: a default type of '*' means what? registered as
-			// '*' is the way this works now. is that the intent? Or should it
-			// mean registered as any other type?
-			factoryDescriptor = (CMDocumentFactoryDescriptor) resourceTypeMap.get(DEFAULT_RESOURCE_TYPE);
-		}
-		return factoryDescriptor != null ? factoryDescriptor.getFactory() : null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryRegistryReader.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryRegistryReader.java
deleted file mode 100644
index 6c8b193..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryRegistryReader.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.factory;
-
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.xml.core.internal.Logger;
-
-
-
-
-public class CMDocumentFactoryRegistryReader
-{
-  protected static final String EXTENSION_POINT_ID = "documentFactories"; //$NON-NLS-1$
-  protected static final String TAG_NAME = "factory"; //$NON-NLS-1$
-  protected static final String ATT_CLASS = "class"; //$NON-NLS-1$
-  protected static final String ATT_TYPE = "type";   //$NON-NLS-1$
-  protected String pluginId, extensionPointId;
-  
-  protected CMDocumentFactoryRegistry registry;
-  
-  public CMDocumentFactoryRegistryReader(CMDocumentFactoryRegistry registry)
-  {
-  	this.registry = registry;
-  }
-
-  public void readRegistry()
-  {
-    String bundleid = "org.eclipse.wst.xml.core"; //$NON-NLS-1$
-    IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(bundleid, EXTENSION_POINT_ID);
-    if (point != null)
-    {
-      IConfigurationElement[] elements = point.getConfigurationElements();
-      for (int i = 0; i < elements.length; i++)
-      {
-        readElement(elements[i]);
-      }
-    }
-  }
-
-  protected void readElement(IConfigurationElement element)
-  {
-    if (element.getName().equals(TAG_NAME))
-    {
-      String factoryClass = element.getAttribute(ATT_CLASS);
-      String filenameExtensions = element.getAttribute(ATT_TYPE);
-      if (factoryClass != null && filenameExtensions != null)
-      {
-        try
-        {
-          CMDocumentFactoryDescriptor descriptor = new CMDocumentFactoryDescriptor(element);
-          for (StringTokenizer st = new StringTokenizer(filenameExtensions, ","); st.hasMoreTokens(); ) //$NON-NLS-1$
-          {
-          	String token = st.nextToken().trim();
-			registry.putFactory(token, descriptor);	
-          }         
-        }
-        catch (Exception e)
-        {
-			Logger.logException(e);
-        }
-      }
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileInfo.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileInfo.java
deleted file mode 100644
index a9a372f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileInfo.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.internal.annotation;
-
-/**
- * Contains information about annotation files
- */
-public class AnnotationFileInfo {
-	private String fAnnotationFileLocation;
-	private String fBundleId;
-
-	public AnnotationFileInfo(String annotationFileLocation, String bundleId) {
-		fAnnotationFileLocation = annotationFileLocation;
-		fBundleId = bundleId;
-	}
-
-	/**
-	 * Get the location of the annotation file as originally specified.
-	 * 
-	 * @return String
-	 */
-	public String getAnnotationFileLocation() {
-		return fAnnotationFileLocation;
-	}
-
-	/**
-	 * Get the bundle id where the annotation file is located.
-	 * 
-	 * @return String
-	 */
-	public String getBundleId() {
-		return fBundleId;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileParser.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileParser.java
deleted file mode 100644
index 641915d..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileParser.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.internal.annotation;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.PropertyResourceBundle;
-import java.util.ResourceBundle;
-
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.contentmodel.annotation.Annotation;
-import org.eclipse.wst.xml.core.internal.contentmodel.annotation.AnnotationMap;
-import org.xml.sax.Attributes;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-
-/**
- * 
- */
-public class AnnotationFileParser {
-	public static final String TAG_ID_ANNOTATIONS = "abstractGrammarAnnotations"; //$NON-NLS-1$
-	public static final String TAG_ID_ANNOTATION = "annotation"; //$NON-NLS-1$
-	public static final String TAG_ID_PROPERTY = "property"; //$NON-NLS-1$
-
-	/**
-	 * This method is called to parse an annotation file and store the
-	 * contents into an annotationMap
-	 */
-	private void parse(AnnotationMap annotationMap, InputStream input, AnnotationFileInfo fileInfo) throws Exception {
-		// move to Xerces-2.... add 'contextClassLoader' stuff
-		ClassLoader prevClassLoader = Thread.currentThread().getContextClassLoader();
-		try {
-			SAXParserFactory factory = SAXParserFactory.newInstance();
-			factory.setNamespaceAware(true);
-			SAXParser parser = factory.newSAXParser();
-			parser.parse(new InputSource(input), new AnnotationMapContentHandler(annotationMap, fileInfo));
-		}
-		finally {
-			Thread.currentThread().setContextClassLoader(prevClassLoader);
-		}
-	}
-
-	/**
-	 * This method is called to parse an annotation file and store the
-	 * contents into an annotationMap
-	 */
-	public void parse(AnnotationMap map, AnnotationFileInfo fileInfo) throws Exception {
-		InputStream inputStream = null;
-		try {
-			URL url = Platform.find(Platform.getBundle(fileInfo.getBundleId()), Path.fromOSString(fileInfo.getAnnotationFileLocation()));
-			if (url != null) {
-				inputStream = url.openStream();
-				parse(map, inputStream, fileInfo);
-			}
-		}
-		catch (Exception e) {
-			Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-			throw (e);
-		}
-		finally {
-			try {
-				if (inputStream != null) {
-					inputStream.close();
-				}
-			}
-			catch (IOException e) {
-			}
-		}
-	}
-
-	protected class AnnotationMapContentHandler extends DefaultHandler {
-		private AnnotationMap annotationMap;
-		private Annotation currentAnnotation;
-		private String currentPropertyName;
-		private StringBuffer propertyValueBuffer;
-		private ResourceBundle resourceBundle;
-		private AnnotationFileInfo fFileInfo;
-
-		public AnnotationMapContentHandler(AnnotationMap annotationMap, AnnotationFileInfo fileInfo) {
-			this.annotationMap = annotationMap;
-			this.fFileInfo = fileInfo;
-		}
-
-		private URL generatePropertiesFileURL(AnnotationFileInfo fileInfo, String propertiesLocation) {
-			URL propertiesURL = null;
-
-			// prepend $nl$ variable to location
-			IPath annotationPath = Path.fromOSString("$nl$/" + fileInfo.getAnnotationFileLocation()); //$NON-NLS-1$
-			// remove the annotation.xml file
-			IPath annotationFolder = annotationPath.removeLastSegments(1);
-			// append location of propertiles file
-			IPath propertiesFile = annotationFolder.append(propertiesLocation);
-			// append .properties extension if needed
-			if (propertiesFile.getFileExtension() == null)
-				propertiesFile = propertiesFile.addFileExtension("properties"); //$NON-NLS-1$
-			// create a URL out of the properties file location
-			propertiesURL = Platform.find(Platform.getBundle(fileInfo.getBundleId()), propertiesFile);
-			return propertiesURL;
-		}
-
-		public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
-			propertyValueBuffer = new StringBuffer();
-			if (localName.equals(TAG_ID_ANNOTATIONS)) {
-				int attributesLength = attributes.getLength();
-				for (int i = 0; i < attributesLength; i++) {
-					String attributeName = attributes.getLocalName(i);
-					String attributeValue = attributes.getValue(i);
-					if (attributeName.equals("propertiesLocation")) //$NON-NLS-1$
-					{
-						URL bundleURL = generatePropertiesFileURL(fFileInfo, attributeValue);
-						if (bundleURL != null) {
-							InputStream bundleStream = null;
-							try {
-								bundleStream = bundleURL.openStream();
-								resourceBundle = new PropertyResourceBundle(bundleStream);
-							}
-							catch (IOException e) {
-								Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-							}
-							finally {
-								try {
-									if (bundleStream != null)
-										bundleStream.close();
-								}
-								catch (IOException x) {
-									Logger.log(Logger.WARNING_DEBUG, x.getMessage(), x);
-								}
-							}
-						}
-					}
-					else if (attributeName.equals("caseSensitive")) //$NON-NLS-1$
-					{
-						if (attributeValue.trim().equals("false")) //$NON-NLS-1$
-						{
-							annotationMap.setCaseSensitive(false);
-						}
-					}
-				}
-			}
-			else if (localName.equals(TAG_ID_ANNOTATION)) {
-				currentAnnotation = null;
-				String specValue = attributes.getValue("spec"); //$NON-NLS-1$
-				if (specValue != null) {
-					currentAnnotation = new Annotation();
-					currentAnnotation.setSpec(specValue);
-				}
-				annotationMap.addAnnotation(currentAnnotation);
-			}
-			else if (localName.equals(TAG_ID_PROPERTY)) {
-				if (currentAnnotation != null) {
-					currentPropertyName = attributes.getValue("name"); //$NON-NLS-1$
-				}
-			}
-		}
-
-		public void endElement(String uri, String localName, String qName) throws SAXException {
-			if (currentPropertyName != null && currentAnnotation != null) {
-				String propertyValue = propertyValueBuffer.toString();
-				if (propertyValue != null) {
-					if (propertyValue.startsWith("%") && resourceBundle != null) //$NON-NLS-1$
-					{
-						try {
-							propertyValue = resourceBundle.getString(propertyValue.substring(1));
-						}
-						catch (Exception e) {
-							// ignore any exception that occurs while trying
-							// to fetch a resource
-						}
-					}
-					currentAnnotation.setProperty(currentPropertyName, propertyValue);
-				}
-			}
-
-			if (localName.equals(TAG_ID_ANNOTATION)) {
-				currentAnnotation = null;
-			}
-			else if (localName.equals(TAG_ID_PROPERTY)) {
-				currentPropertyName = null;
-			}
-		}
-
-		public void characters(char[] ch, int start, int length) {
-			if (currentPropertyName != null && currentAnnotation != null) {
-				propertyValueBuffer.append(ch, start, length);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileRegistry.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileRegistry.java
deleted file mode 100644
index c8991fb..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileRegistry.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.internal.annotation;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * This class is used to associate one or more annotation files with a grammar
- * file.
- * 
- */
-public class AnnotationFileRegistry {
-	private Map map = new HashMap();
-
-	public AnnotationFileRegistry() {
-		new AnnotationFileRegistryReader(this).readRegistry();
-	}
-	
-	public synchronized List getAnnotationFilesInfos(String publicId) {
-		List theList = (List) map.get(publicId);
-		return theList != null ? theList : new ArrayList();
-	}
-		
-	public synchronized void addAnnotationFile(String publicId, AnnotationFileInfo fileInfo) {
-		List fileInfos = (List) map.get(publicId);
-		if (fileInfos == null) {
-			fileInfos = new ArrayList();
-			map.put(publicId, fileInfos);
-		}
-		fileInfos.add(fileInfo);
-	}
-
-	public synchronized void removeAnnotationFile(String publicId, AnnotationFileInfo fileInfo) {
-		List fileInfos = (List) map.get(publicId);
-		if (fileInfos != null) {
-			fileInfos.remove(fileInfo);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileRegistryReader.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileRegistryReader.java
deleted file mode 100644
index 3c7c423..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileRegistryReader.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.internal.annotation;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.xml.core.internal.Logger;
-
-
-/**
- * This class reads the plugin manifests and adds each specified gramamr
- * annotation file with the AnnotationProvider
- */
-public class AnnotationFileRegistryReader {
-	protected static final String EXTENSION_POINT_ID = "annotationFiles"; //$NON-NLS-1$
-	protected static final String TAG_NAME = "annotationFile"; //$NON-NLS-1$
-	protected static final String ATT_PUBLIC_ID = "publicId"; //$NON-NLS-1$
-	protected static final String ATT_LOCATION = "location"; //$NON-NLS-1$
-
-	private AnnotationFileRegistry annotationFileRegistry;
-
-	public AnnotationFileRegistryReader(AnnotationFileRegistry annotationFileRegistry) {
-		this.annotationFileRegistry = annotationFileRegistry;
-	}
-
-	/**
-	 * read from plugin registry and parse it.
-	 */
-	public void readRegistry() {
-		IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
-		String pluginId = "org.eclipse.wst.xml.core"; //$NON-NLS-1$
-		IExtensionPoint point = extensionRegistry.getExtensionPoint(pluginId, EXTENSION_POINT_ID);
-		if (point != null) {
-			IConfigurationElement[] elements = point.getConfigurationElements();
-			for (int i = 0; i < elements.length; i++) {
-				readElement(elements[i]);
-			}
-		}
-	}
-
-	/**
-	 * readElement() - parse and deal with an extension like:
-	 * 
-	 * <extension
-	 * point="org.eclipse.wst.xml.core.internal.contentmodel.util_implementation">
-	 * <util_implementation class =
-	 * corg.eclipse.wst.baseutil.CMUtilImplementationImpl /> </extension>
-	 */
-	protected void readElement(IConfigurationElement element) {
-		if (element.getName().equals(TAG_NAME)) {
-			String publicId = element.getAttribute(ATT_PUBLIC_ID);
-			String location = element.getAttribute(ATT_LOCATION);
-			if (publicId != null && location != null) {
-				try {
-					String bundleId = element.getNamespace();
-					AnnotationFileInfo fileInfo = new AnnotationFileInfo(location, bundleId);
-					annotationFileRegistry.addAnnotationFile(publicId, fileInfo);
-				}
-				catch (Exception e) {
-					Logger.logException("problem adding annotation file " + location, e); //$NON-NLS-1$
-				}
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationUtility.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationUtility.java
deleted file mode 100644
index 061088a..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationUtility.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.internal.annotation;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.ContentModelManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.annotation.AnnotationMap;
-
-
-/**
- * 
- */
-public class AnnotationUtility {
-	public static void loadAnnotationsForGrammar(String publicId, CMDocument cmDocument) {
-		List annotationFiles = ContentModelManager.getInstance().getAnnotationFilesInfos(publicId);
-		AnnotationMap map = (AnnotationMap) cmDocument.getProperty("annotationMap"); //$NON-NLS-1$
-		if (map != null) {
-			for (Iterator i = annotationFiles.iterator(); i.hasNext();) {
-				try {
-					AnnotationFileInfo annotationFileInfo = (AnnotationFileInfo) i.next();
-					AnnotationFileParser parser = new AnnotationFileParser();
-					parser.parse(map, annotationFileInfo);
-				}
-				catch (Exception e) {
-					Logger.logException(e);
-				}
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/ResourceBundleHelper.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/ResourceBundleHelper.java
deleted file mode 100644
index 98eeba4..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/ResourceBundleHelper.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.internal.annotation;
-                     
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.Locale;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.runtime.Platform;
-
-
-public class ResourceBundleHelper
-{
-  public static ResourceBundle getResourceBundle(String resourceURI, Locale targetLocale) throws Exception
-  {
-	  // try to load bundle from the location specified in the resourceURI
-    // we make the assumption that the resourceURI points to the local file system
-         
-    int index = resourceURI.lastIndexOf("/"); //$NON-NLS-1$
-    if (index == -1)
-    {
-      throw new Exception("Invalid resourceURI"); //$NON-NLS-1$
-    }                               
-
-    // Below we set 'resourceDirectory' so that it ends with a '/'.
-    // Here's an excerpt from the ClassLoader Javadoc ...
-    // Any URL that ends with a '/' is assumed to refer to a directory. Otherwise, the URL is assumed
-    // to refer to a JAR file which will be opened as needed. 
-    //
-    String resourceDirectory = resourceURI.substring(0, index + 1);
-    String resourceBundleName = resourceURI.substring(index + 1);
-    
-    // create a class loader with a class path that points to the resource bundle's location
-    //         
-    URL[] classpath = new URL[1];
-    classpath[0] = Platform.resolve(new URL(resourceDirectory));
-	  ClassLoader resourceLoader = new URLClassLoader(classpath, null); 
-       
-  	return ResourceBundle.getBundle(resourceBundleName, targetLocale, resourceLoader);
-	}  
-
-  public static ResourceBundle getResourceBundle(String resourceURI) throws Exception 
-  {
-	  return getResourceBundle(resourceURI, Locale.getDefault());
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/InferredGrammarFactory.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/InferredGrammarFactory.java
deleted file mode 100644
index 19d8131..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/InferredGrammarFactory.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.internal.modelqueryimpl;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAnyElement;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-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.basic.CMAnyElementImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMAttributeDeclarationImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMDocumentImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMElementDeclarationImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMGroupImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNodeListImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDescriptionBuilder;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-
- 
-
-public class InferredGrammarFactory
-{                                      
-  public InferredGrammarFactory()
-  {
-  }
-
-  public CMDocument createCMDocument(String uri)
-  {                      
-    CMDocumentImpl cmdocument =new CMDocumentImpl(uri);
-    cmdocument.setInferred(true);
-    return cmdocument;
-  }    
- 
-  public CMElementDeclaration createCMElementDeclaration(CMDocument cmDocument, Element element, boolean isLocal)
-  {
-    String localName = element.getLocalName();                                   
-    CMDocumentImpl cmDocumentImpl = (CMDocumentImpl)cmDocument;
-
-    CMNamedNodeMapImpl elementMap = isLocal ?
-                                    (CMNamedNodeMapImpl)cmDocumentImpl.getLocalElementPool() :
-                                    (CMNamedNodeMapImpl)cmDocumentImpl.getElements();
-
-    CMElementDeclarationImpl ed = (CMElementDeclarationImpl)elementMap.getNamedItem(localName);
-    if (ed == null)
-    {                                                                                          
-      //System.out.println("create ed " + localName);
-      ed = new CMElementDeclarationImpl(cmDocument, localName);
-      ed.setInferred(true);
-      ed.setLocal(isLocal);
-      ed.setMaxOccur(1);
-      CMGroupImpl group = new CMGroupImpl(new CMNodeListImpl(), CMGroup.CHOICE);
-      group.setInferred(true);
-      group.setMinOccur(0);
-      group.setMaxOccur(-1);
-      ed.setContent(group);            
-      elementMap.put(ed);
-    } 
-
-    // lookup or create the attributes
-    //
-    NamedNodeMap attributeMap = element.getAttributes();
-    int attributeMapLength = attributeMap.getLength();
-    for (int i = 0; i < attributeMapLength; i++)
-    {
-      Attr attr = (Attr)attributeMap.item(i);
-      CMAttributeDeclarationImpl ad = (CMAttributeDeclarationImpl)ed.getAttributeMap().getNamedItem(attr.getNodeName());
-      if (ad == null)
-      {     
-        // todo... use an attribute pool to be more efficient?
-        ad = new CMAttributeDeclarationImpl(attr.getNodeName(), CMAttributeDeclaration.OPTIONAL);
-        ad.setInferred(true);
-        ed.getAttributeMap().put(ad);
-      }
-    }
-    return ed;
-  }         
-
-  public void createCMContent(CMDocument parentCMDocument, CMElementDeclaration parentEd, CMDocument childCMDocument, CMElementDeclaration childEd, boolean isLocal, String uri)
-  {
-    // add element to the parent's content
-    // consider all content to be of the form (A | B | C)*    
-    //
-    CMGroupImpl group = (CMGroupImpl)parentEd.getContent();
-    CMNodeListImpl groupChildNodeList = (CMNodeListImpl)group.getChildNodes();
-
-    if (parentCMDocument == childCMDocument)
-    {
-      if (!groupChildNodeList.contains(childEd))
-      {
-        groupChildNodeList.add(childEd);
-      }
-      if (isLocal)
-      {
-        CMNamedNodeMapImpl localElementMap = (CMNamedNodeMapImpl)parentEd.getLocalElements();
-        localElementMap.put(childEd);
-      }
-    }     
-    else
-    {                                                    
-      CMAnyElement cmAnyElement = lookupOrCreateCMAnyElement((CMDocumentImpl)parentCMDocument, uri);
-      if (!groupChildNodeList.contains(cmAnyElement))
-      {
-        groupChildNodeList.add(cmAnyElement);
-      }
-    }      
-  }   
-
-  protected CMAnyElement lookupOrCreateCMAnyElement(CMDocumentImpl parentCMDocument, String uri)
-  {
-    CMNamedNodeMapImpl anyElementMap = parentCMDocument.getAnyElements();
-    CMAnyElementImpl anyElement = (CMAnyElementImpl)anyElementMap.getNamedItem(CMAnyElementImpl.computeNodeName(uri));
-    if (anyElement == null)
-    {                                                                                     
-      //System.out.println("create anyElement " + uri);
-      anyElement = new CMAnyElementImpl(uri);
-      anyElement.setInferred(true);
-      anyElementMap.put(anyElement);
-    }
-    return anyElement;
-  } 
-      
-
-  public void debugPrint(Collection collection)
-  {                
-    for (Iterator iter = collection.iterator(); iter.hasNext(); )
-    {
-      CMDocument cmDocument = (CMDocument)iter.next(); 
-      System.out.println("-----------------------------------------------"); //$NON-NLS-1$
-      System.out.println("cmDocument (" + cmDocument.getProperty("http://org.eclipse.wst/cm/properties/targetNamespaceURI") +")");  //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-      CMNamedNodeMapImpl elementMap = (CMNamedNodeMapImpl)cmDocument.getElements();
-      int size = elementMap.getLength();
-      for (int i = 0; i < size; i++)
-      {
-        CMElementDeclaration ed = (CMElementDeclaration)elementMap.item(i);
-        CMDescriptionBuilder builder = new CMDescriptionBuilder();
-        System.out.println("  ELEMENT " + ed.getNodeName() + " = " + builder.buildDescription(ed)); //$NON-NLS-1$ //$NON-NLS-2$
-      }
-    }
-  }        
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionDescriptor.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionDescriptor.java
deleted file mode 100644
index c6d9490..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionDescriptor.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.internal.modelqueryimpl;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.extension.ModelQueryExtension;
-
-/**
- * Describes an extension to the <code>modelQueryExtension</code> extension
- * point.
- * 
- */
-public class ModelQueryExtensionDescriptor
-{
-  private static final String CONTENT_TYPE_ATTRIBUTE = "contentType"; //$NON-NLS-1$
-  private static final String NAMESPACE_ATTRIBUTE = "namespace"; //$NON-NLS-1$
-  private static final String CLASS_ATTRIBUTE = "class"; //$NON-NLS-1$
-  private IConfigurationElement configuration;
-  private String contentTypeId;
-  private String namespace;
-  private ModelQueryExtension extension;
-
-  public ModelQueryExtensionDescriptor(IConfigurationElement element)
-  {
-    configuration = element;
-  }
-
-  public ModelQueryExtension createModelQueryExtension() throws CoreException
-  {
-    if (extension == null)
-    {  
-      extension = (ModelQueryExtension) configuration.createExecutableExtension(CLASS_ATTRIBUTE);
-    }  
-    return extension;
-  }
-
-  public String getContentTypeId()
-  {
-    if (contentTypeId == null)
-    {
-      contentTypeId = configuration.getAttribute(CONTENT_TYPE_ATTRIBUTE);
-    }
-    return contentTypeId;
-  }
-
-  public String getNamespace()
-  {
-    if (namespace == null)
-    {
-      namespace = configuration.getAttribute(NAMESPACE_ATTRIBUTE);
-    }
-    return namespace;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionManagerImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionManagerImpl.java
deleted file mode 100644
index 72c28fd..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionManagerImpl.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.internal.modelqueryimpl;
-        
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.extension.ModelQueryExtension;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.extension.ModelQueryExtensionManager;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-
-public class ModelQueryExtensionManagerImpl implements ModelQueryExtensionManager
-{           
-  protected ModelQueryExtensionRegistry modelQueryExtensionRegistry = new ModelQueryExtensionRegistry();
-
-  public List getDataTypeValues(Element element, CMNode cmNode)
-  {    
-    List list = new ArrayList();      
-    String contentTypeId = getContentTypeId(element);
-    String namespace = getNamespace(cmNode);
-    String name = cmNode.getNodeName();
-    
-    for (Iterator i = modelQueryExtensionRegistry.getApplicableExtensions(contentTypeId, namespace).iterator(); i.hasNext();)
-    {
-      ModelQueryExtension extension = (ModelQueryExtension)i.next();
-      String[] values = null;
-      if (cmNode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION)
-      {  
-        values = extension.getAttributeValues(element, namespace, name);
-      }
-      else
-      {
-        values = extension.getElementValues(element, namespace, name);        
-      }
-      if (values != null)
-      {
-        list.addAll(Arrays.asList(values));
-      }  
-    }  
-    return list;  
-  }                               
-
-  public void filterAvailableElementContent(List cmnodes, Element element, CMElementDeclaration ed)
-  {
-	  filterAvailableElementContent(cmnodes, element, ed, ModelQuery.INCLUDE_CHILD_NODES);
-  }
-
-  public void filterAvailableElementContent(List cmnodes, Element element, CMElementDeclaration ed, int includeOptions)
-  {
-    String contentTypeId = getContentTypeId(element);
-    String parentNamespace = element.getNamespaceURI();
-
-	List modelQueryExtensions = modelQueryExtensionRegistry.getApplicableExtensions(contentTypeId, parentNamespace);
-	if((includeOptions & ModelQuery.INCLUDE_CHILD_NODES) > 0)
-	{
-      for (Iterator j = cmnodes.iterator(); j.hasNext(); )
-      {
-        CMNode cmNode = (CMNode)j.next();  
-        String namespace = getNamespace(cmNode);
-        String name = cmNode.getNodeName();
-      
-        boolean include = true;
-        for(int k = 0; k < modelQueryExtensions.size() && include; k++) {
-        {
-            ModelQueryExtension extension = (ModelQueryExtension)modelQueryExtensions.get(k);
-            include = extension.isApplicableChildElement(element, namespace, name);
-            if (!include)
-            {
-              // remove the cmNode from the list
-              j.remove();
-            }
-          }
-        }
-      }
-    }
-    // add MQE-provided content
-    for(int k = 0; k < modelQueryExtensions.size(); k++)
-    {
-        ModelQueryExtension extension = (ModelQueryExtension)modelQueryExtensions.get(k);
-        cmnodes.addAll(Arrays.asList(extension.getAvailableElementContent(element, parentNamespace, includeOptions)));
-    }
-  }
-  
-  private String getNamespace(CMNode cmNode)
-  {
-    String namespace = null;
-    CMDocument cmDocument = (CMDocument)cmNode.getProperty("CMDocument"); //$NON-NLS-1$
-    if (cmDocument != null)          
-    {     
-      namespace = (String)cmDocument.getProperty("http://org.eclipse.wst/cm/properties/targetNamespaceURI");    //$NON-NLS-1$
-    }
-    return namespace;
-  }
-  
-  private String getContentTypeId(Node node)
-  {
-    String contentTypeId = "org.eclipse.core.runtime.xml"; //$NON-NLS-1$
-    if (node instanceof IDOMNode)
-    {
-      IDOMNode domNode = (IDOMNode) node;
-      contentTypeId = domNode.getModel().getContentTypeIdentifier();
-    }   
-    return contentTypeId;
-  } 
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionRegistry.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionRegistry.java
deleted file mode 100644
index 5366f41..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionRegistry.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.internal.modelqueryimpl;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.extension.ModelQueryExtension;
-
-public class ModelQueryExtensionRegistry
-{
-  protected static final String EXTENSION_POINT_ID = "modelQueryExtensions"; //$NON-NLS-1$
-  protected static final String TAG_NAME = "modelQueryExtension"; //$NON-NLS-1$
-  private List descriptors;
-
-  public List getApplicableExtensions(String contentTypeId, String namespace)
-  {
-    List list = new ArrayList();
-    if (contentTypeId != null)
-    {
-      ensureExtensionsLoaded();
-      for (Iterator i = descriptors.iterator(); i.hasNext();)
-      {
-        ModelQueryExtensionDescriptor descriptor = (ModelQueryExtensionDescriptor) i.next();
-        if (contentTypeId.equals(descriptor.getContentTypeId()))
-        {
-          if (descriptor.getNamespace() == null ||  descriptor.getNamespace().equals(namespace))
-          {  
-            try
-            {
-              ModelQueryExtension extension = descriptor.createModelQueryExtension();
-              list.add(extension);
-            }
-            catch (CoreException e) {
-            	Logger.logException("problem creating model query extension", e); //$NON-NLS-1$
-            }
-          }  
-        }
-      }
-    }
-    return list;
-  }
-  
-  /*
-   *  TODO : consider providing a non-plugin means add/remove extensions
-   *   
-  public void addExtension(ModelQueryExtension extension)
-  {     
-  }
-
-  public void removeExtension(ModelQueryExtensionDeprecated extension)
-  {
-  }*/
-
-  /**
-   * Reads all extensions.
-   * <p>
-   * This method can be called more than once in order to reload from a changed
-   * extension registry.
-   * </p>
-   */
-  private synchronized void reloadExtensions()
-  {
-    descriptors = new ArrayList();
-    String bundleid = "org.eclipse.wst.xml.core"; //$NON-NLS-1$      
-    IConfigurationElement[] elements = Platform.getExtensionRegistry().getConfigurationElementsFor(bundleid, EXTENSION_POINT_ID);
-    for (int i = 0; i < elements.length; i++)
-    {
-      ModelQueryExtensionDescriptor descriptor = new ModelQueryExtensionDescriptor(elements[i]);
-      descriptors.add(descriptor);
-    }
-  }
-
-  /**
-   * Ensures the extensions have been loaded at least once.
-   */
-  private void ensureExtensionsLoaded()
-  {
-    if (descriptors == null)
-    {
-      reloadExtensions();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/CMDataTypeValueHelper.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/CMDataTypeValueHelper.java
deleted file mode 100644
index e09fa6c..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/CMDataTypeValueHelper.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.internal.util;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceHelper;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceTable;
-
-
-public class CMDataTypeValueHelper
-{
-  protected int idCount = 0;
-
-
-  public String getValue(CMAttributeDeclaration ad, NamespaceTable namespaceTable)
-  {
-    String value = null;
-       
-    if (isXSIType(ad))         
-    {       
-      List list = getQualifiedXSITypes(ad, namespaceTable);
-      value = list.size() > 0 ? (String)list.get(0) : null;
-    } 
-
-    // shameless hack
-    //
-    if (value == null)
-    {
-      if (ad.getAttrName().equals("xml:lang"))     //$NON-NLS-1$
-      {
-        value = "EN"; //$NON-NLS-1$
-      }
-    }
-
-    if (value == null)
-    {
-      CMDataType dataType = ad.getAttrType();
-      if (dataType != null)
-      {
-        value = getValue(dataType);
-      }
-    }
-    return value;
-  }
-
-
-  public String getValue(CMDataType dataType)
-  {
-    String value = null;
-    value = dataType.getImpliedValue();
-
-    if (value == null)
-    {
-      String[] values = dataType.getEnumeratedValues();
-      if (values != null && values.length > 0)
-      {
-        value = values[0];
-      }
-    }
-
-    if (value == null)
-    {
-      value = dataType.generateInstanceValue();
-    }               
-
-    // Here is a special case where we handle DTD's ID related datatypes.
-    // These values must be generated/validate by considering the entire xml file
-    // so we can't rely on the 'generateInstanceValue' method.
-    //
-    // todo... find a nicer way to handle this    
-    if (value == null)
-    {
-      String dataTypeName = dataType.getDataTypeName();
-      if (dataTypeName != null)
-      {
-        if (dataTypeName.equals("ID")) //$NON-NLS-1$
-        {
-          value = "idvalue" + idCount++; //$NON-NLS-1$
-        }
-        else if (dataTypeName.equals("IDREF") || dataTypeName.equals("IDREFS")) //$NON-NLS-1$ //$NON-NLS-2$
-        {
-          value = "idvalue0"; //$NON-NLS-1$
-        }
-      }
-    }     
-    return value;
-  } 
-      
-
-  public boolean isValidEmptyValue(CMAttributeDeclaration ad)
-  {    
-    boolean result = true;
-    CMDataType dataType = ad.getAttrType();
-    if (dataType != null)
-    {                                                          
-      String propertyValue = (String)dataType.getProperty("isValidEmptyValue"); //$NON-NLS-1$
-      if (propertyValue != null && propertyValue.equals("false")) //$NON-NLS-1$
-      {
-        result = false;
-      }
-    }   
-    return result;
-  }
-
-
-  public boolean isXSIType(CMAttributeDeclaration ad)
-  {         
-    boolean result = false;
-    if (ad.getNodeName().equals("type"))  //$NON-NLS-1$
-    {
-      CMDocument cmDocument = (CMDocument)ad.getProperty("CMDocument"); //$NON-NLS-1$
-      if (cmDocument != null)
-      {
-        String namespaceName = (String)cmDocument.getProperty("http://org.eclipse.wst/cm/properties/targetNamespaceURI"); //$NON-NLS-1$
-        if (namespaceName != null && namespaceName.equals("http://www.w3.org/2001/XMLSchema-instance")) //$NON-NLS-1$
-        {           
-          result = true;
-        }
-      }
-    }                   
-    return result;
-  }
-   
-
-  public List getQualifiedXSITypes(CMAttributeDeclaration ad, NamespaceTable table)
-  {          
-    List list = new Vector();                                                 
-                                       
-    List xsiTypes = (List)ad.getProperty("XSITypes"); //$NON-NLS-1$
-    if (xsiTypes != null && xsiTypes.size() > 0)
-    {
-      for (Iterator i = xsiTypes.iterator(); i.hasNext(); )
-      { 
-        String uriQualifiedName = (String)i.next();
-        String[] components = DOMNamespaceHelper.getURIQualifiedNameComponents(uriQualifiedName);  
-        String prefix = table.getPrefixForURI(components[0] != null ? components[0] : ""); //$NON-NLS-1$
-        String typeName = (prefix != null && prefix.length() > 0) ? 
-                           prefix + ":" + components[1] :  //$NON-NLS-1$
-                           components[1];
-        list.add(typeName);
-      }
-    }           
-    return list;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/CMValidator.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/CMValidator.java
deleted file mode 100644
index 3ee535f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/CMValidator.java
+++ /dev/null
@@ -1,1244 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.internal.util;
-
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAnyElement;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMVisitor;
-
-
-
-public class CMValidator
-{
-  protected static StringElementContentComparator stringContentComparitor = new StringElementContentComparator();
-  protected Hashtable graphNodeTable = new Hashtable();
-
-  /**
-   * GraphNode
-   */
-  protected static class GraphNode
-  {
-    public String name;
-    public boolean isTerminal;
-    public Vector arcList = new Vector();
-
-    public GraphNode(String name)
-    {
-      this.name = name;
-    }
-
-    public void addArc(Arc arc)
-    {
-      arcList.addElement(arc);
-    }
-
-    public String toString()
-    {
-      return "[GraphNode " + name + "]"; //$NON-NLS-1$ //$NON-NLS-2$
-    }
-  }
-
-
-  /**
-   * Arc
-   */
-  protected static class Arc
-  {
-    public static final int ELEMENT  = 1;
-    public static final int REPEAT   = 2;
-    public static final int OPTIONAL = 3;
-    public static final int PREV_IN  = 4;
-    public static final int OUT_NEXT = 5;
-    public static final int LINK     = 6;
-
-    public int kind;
-    public String name;
-    public GraphNode node;
-    public CMNode cmNode;
-
-    public Arc(int kind, GraphNode node, CMNode cmNode)
-    {
-      this(kind, "", node, cmNode); //$NON-NLS-1$
-    }
-
-    protected Arc(int kind, String name, GraphNode node, CMNode cmNode)
-    {
-      this.name = name;
-      this.kind = kind;
-      this.node = node;
-      this.cmNode = cmNode;
-    }
-  }
-
-
-  /**
-   * GraphGenerator
-   */
-  protected static class GraphGenerator extends CMVisitor
-  {
-    public int indent;
-    public int count;
-    public GraphNode startGraphNode;
-    public Context context;
-
-    protected static class Context
-    {
-      GraphNode from;
-      GraphNode to;
-
-      Context(GraphNode from, GraphNode to)
-      {
-        this.from = from;
-        this.to = to;
-      }
-
-      GraphNode getLastGraphNode()
-      {
-        return (to != null) ? to : from;
-      }
-    }
-
-
-    protected GraphGenerator()
-    {
-      startGraphNode = new GraphNode(getGraphNodeName());
-      context = new Context(startGraphNode, null);
-    }
-
-
-    protected void generateGraph(CMElementDeclaration ed)
-    {
-      int contentType = ed.getContentType();
-
-      if (contentType == CMElementDeclaration.MIXED ||
-          contentType == CMElementDeclaration.ELEMENT)
-      {
-        visitCMNode(ed.getContent());
-      }
-      // CMElementDeclaration.PCDATA... no graph required
-      // CMElementDeclaration.ANY... no graph required
-      context.getLastGraphNode().isTerminal = true;
-    }
-
-
-    protected String getGraphNodeName()
-    {
-      return "n" + count++; //$NON-NLS-1$
-    }
-
-
-    protected GraphNode getStartGraphNode()
-    {
-      return startGraphNode;
-    }
-
-
-    /**
-     *                repeat
-     *             +----#-----+
-     *             |          |
-     *             v          |
-     *  prev --#-> in --'x'-> out --#-> next
-     *  |                               ^
-     *  |                               |
-     *  +----------------#--------------+
-     *                optional
-     *
-     */
-    protected void createArcs(GraphNode in, GraphNode out, CMContent cmContent)
-    {
-      createArcs(in, out, cmContent, false);
-    }
-
-    protected void createArcs(GraphNode in, GraphNode out, CMContent cmContent, boolean isAllGroup)
-    {
-      //println("+createArcs() " + ed.getDescription() + " " + ed.getMinOccur());
-      GraphNode prev = context.from;
-      GraphNode next = new GraphNode(getGraphNodeName());
-
-      prev.addArc(new Arc(Arc.PREV_IN, in, cmContent));
-      out.addArc(new Arc(Arc.OUT_NEXT, next, cmContent));
-
-      if (context.to != null)
-      {
-        next.addArc(new Arc(Arc.LINK, context.to, cmContent));
-      }
-      else
-      {
-        context.from = next;
-      }
-
-      if (cmContent.getMinOccur() == 0)
-      {
-        // todo... should we see if an optional arc has already been added?
-        prev.addArc(new Arc(Arc.OPTIONAL, next, cmContent));
-      }
-
-      if (cmContent.getMaxOccur() == -1 || cmContent.getMaxOccur() > 1 || isAllGroup)
-      {
-        out.addArc(new Arc(Arc.REPEAT, in, cmContent));
-      }
-    }
-
-
-    public void visitCMGroup(CMGroup group)
-    {
-      Context prevContext = context;
-      GraphNode in = new GraphNode("(" + getGraphNodeName()); //$NON-NLS-1$
-      GraphNode out = new GraphNode(")" + getGraphNodeName()); //$NON-NLS-1$
-
-      int groupOperator = group.getOperator();
-      if (groupOperator == CMGroup.SEQUENCE)
-      {
-        context = new Context(in, null);
-        super.visitCMGroup(group);
-        context.from.addArc(new Arc(Arc.LINK, out, group));
-      }
-      else if (groupOperator == CMGroup.CHOICE ||
-               groupOperator == CMGroup.ALL)
-      {
-        context = new Context(in, out);
-        super.visitCMGroup(group);
-      }
-
-      context = prevContext;
-      createArcs(in, out, group, groupOperator == CMGroup.ALL);
-    }
-
-
-    public void visitCMElementDeclaration(CMElementDeclaration ed)
-    {
-      GraphNode in = new GraphNode(getGraphNodeName());
-      GraphNode out = new GraphNode(getGraphNodeName());
-      createArcs(in, out, ed);
-      in.addArc(new Arc(Arc.ELEMENT, ed.getElementName(), out, ed));
-    }
-                            
-
-    public void visitCMAnyElement(CMAnyElement anyElement)
-    {
-      GraphNode in = new GraphNode(getGraphNodeName());
-      GraphNode out = new GraphNode(getGraphNodeName());
-      createArcs(in, out, anyElement);
-      in.addArc(new Arc(Arc.ELEMENT, "any", out, anyElement)); //$NON-NLS-1$
-    }
-  }
-
-  // todo.. implement cache strategy hook, handle name spaces, locals etc.
-  //
-  public GraphNode lookupOrCreateGraph(CMElementDeclaration element)
-  {
-    Object key = element;
-    GraphNode node = (GraphNode)graphNodeTable.get(key);
-    if (node == null)
-    {
-      node = createGraph(element);
-      graphNodeTable.put(key, node);
-    }
-    return node;
-  }
-
-  public GraphNode createGraph(CMElementDeclaration element)
-  {
-    GraphGenerator generator = new GraphGenerator();
-    generator.generateGraph(element);
-    return generator.getStartGraphNode();
-  }
-
-
-  public void printGraph(GraphNode node, Vector namedArcList, Vector unamedArcList, int indent)
-  {
-    //String decoration = node.isTerminal ? " *" : "";
-    //printlnIndented(indent, "GraphNode:" + node.name + decoration);
-
-    indent += 2;
-    for (Enumeration e = node.arcList.elements() ; e.hasMoreElements() ;)
-    {
-      Arc arc = (Arc)e.nextElement();
-      //boolean visit = false;
-      //printlnIndented(indent, "Arc:" + arc.name + " (" + arc.kind + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-      if (arc.kind == Arc.ELEMENT)
-      {
-        //table.add(currentGrammarObject, arc.grammarObject);
-        if (!namedArcList.contains(arc))
-        {
-          namedArcList.add(arc);
-          unamedArcList = new Vector();
-          printGraph(arc.node, namedArcList, unamedArcList, indent + 2);
-        }
-      }
-      else
-      {
-        if (!unamedArcList.contains(arc))
-        {
-          unamedArcList.add(arc);
-          printGraph(arc.node, namedArcList, unamedArcList, indent + 2);
-        }
-      }
-    }
-  }
-
-  public void printGraph(GraphNode node)
-  {
-    printGraph(node, new Vector(), new Vector(), 0);
-  }
-
-
-  public void validateElementList(ElementList list, GraphNode node, ElementContentComparator comparator, Result result, boolean loopFlag)
-  {
-    //println("+validateElementList " + node + " " + list);
-    if (list == null && node.isTerminal)
-    {
-      result.isValid = true;
-    }
-    else
-    {
-      for (Iterator i = node.arcList.iterator(); i.hasNext();)
-      {
-        Arc arc = (Arc)i.next();
-        boolean traverseArc = false;
-        if (arc.kind == Arc.ELEMENT)
-        {
-          if (list != null && comparator.matches(list.head, arc.cmNode))
-          {
-            loopFlag = false;
-            traverseArc = true;
-            list = list.tail; // increment our position in the list
-          }
-        }
-        else if (arc.kind == Arc.REPEAT)
-        {
-          if (!loopFlag)
-          {
-            traverseArc = true;
-          }
-          loopFlag = true;
-        }
-        else
-        {
-          traverseArc = true;
-        }
-
-        if (traverseArc)
-        {
-          // test to see if we can push this arc due to facet constraints
-          //
-          if (result.canPush(arc))
-          {          
-            // see if this arc leads to a correct solution          
-            result.push(arc);
-            validateElementList(list, arc.node, comparator, result, loopFlag);
-            if (result.isValid)
-            {
-              break;
-            }
-            result.pop(arc);
-          }
-        }
-      }
-    }
-  }
-
-
-  /**
-   *
-   */
-  protected static ElementList createElementList(int contentType, List v, ElementContentComparator comparator, Result result)
-  {
-    ElementList first = null;
-    ElementList prev = null;
-
-    int size = v.size();
-    for (int i = 0; i < size; i++)
-    {
-      Object o = v.get(i);
-      if (o != null && !comparator.isIgnorable(o))
-      {
-        if (comparator.isElement(o))
-        {
-          ElementList list = new ElementList();
-          list.head = o;
-
-          if (prev != null)
-          {
-            prev.tail = list;
-          }
-          else
-          {
-            first = list;
-          }
-          prev = list;
-        }
-        else if (contentType == CMElementDeclaration.ELEMENT)
-        {
-          result.isValid = false;
-          result.errorIndex = i;
-          result.errorMessage = "Element can not include PCDATA content"; //$NON-NLS-1$
-        }
-      }
-    }
-    return first;
-  }
-
-  /**
-   *
-   */
-  public void validate(CMElementDeclaration ed, List elementContent, ElementContentComparator comparator, Result result)
-  {
-    int contentType = ed.getContentType();
-
-    if (contentType == CMElementDeclaration.MIXED ||
-        contentType == CMElementDeclaration.ELEMENT)
-    {
-      ElementList elementList = createElementList(contentType, elementContent, comparator, result);
-      if (result.isValid == true)
-      {  
-        // defect 226213 ... elements with a large number of children will cause the recursion based validation
-        // algorithm to stack overflow ... as a quick fix assume any element with a large number of children is valid        
-        if (elementContent.size() < 500)
-        {
-          boolean isGraphValidationNeeded = !(elementList == null && contentType == CMElementDeclaration.MIXED);
-                      
-          // exlicity handle 'All' groups
-          //
-          CMContent content = ed.getContent();
-          if (content.getNodeType() == CMNode.GROUP)
-          {
-            CMGroup group = (CMGroup)content;
-            if (group.getOperator() == CMGroup.ALL)
-            {
-              isGraphValidationNeeded = false;
-              validatAllGroupContent(elementContent, comparator, group, result);                               
-            }              
-          }  
-          
-          if (isGraphValidationNeeded)
-          {
-            // validate the elementList using a graph
-            //
-            result.isValid = false;
-            GraphNode node = lookupOrCreateGraph(ed);
-            validateElementList(elementList, node, comparator, result, false);
-          }
-        }
-      }
-    }
-    else if (contentType == CMElementDeclaration.PCDATA)
-    {
-      int size = elementContent.size();
-      for (int i = 0; i < size; i++)
-      {
-        Object o = elementContent.get(i);
-        if (comparator.isElement(o))
-        {
-          result.isValid = false;
-          result.errorIndex = i;
-          result.errorMessage = "Element may only include PCDATA content"; //$NON-NLS-1$
-          break;
-        }
-      }
-    }
-    else if (contentType == CMElementDeclaration.EMPTY)
-    {
-      int size = elementContent.size();
-      for (int i = 0; i < size; i++)
-      {
-        Object o = elementContent.get(i);
-        if (!comparator.isIgnorable(o))
-        {
-          result.isValid = false;
-          result.errorIndex = i;
-          result.errorMessage = "Element may not contain PCDATA or Element content"; //$NON-NLS-1$
-          break;
-        }
-      }
-    }
-    //else if (contentType == CMElementDeclaration.ANY)
-    // {
-    //   assume elementContent will always be valid for this content type
-    // }
-  }
-    
-  static class ItemCount
-  {
-    int count = 0;    
-  }
-  
-  private void validatAllGroupContent(List elementContent, ElementContentComparator comparator, CMGroup allGroup, Result result) 
-  {
-    boolean isValid = true;
-    boolean isPartiallyValid = true;
-    HashMap map = new HashMap();
-    CMNodeList list = allGroup.getChildNodes();
-    for (int j = list.getLength() - 1; j >= 0; j--)
-    {
-      CMNode node = list.item(j);      
-      if (map.get(node) == null)
-      {  
-        map.put(node, new ItemCount());
-      }  
-    }    
-    int validitionCount = 0;
-    for (Iterator i = elementContent.iterator(); i.hasNext(); validitionCount++)
-    {
-      Object o = i.next();        
-      if (comparator.isElement(o))
-      {              
-        // test to see if the element is listed in the all group
-        //
-        CMNode matchingCMNode = null;
-        for (int j = list.getLength() - 1; j >= 0; j--)
-        {
-          CMNode node = list.item(j);
-          if (comparator.matches(o, node))
-          {
-            matchingCMNode = node;
-            break;
-          }             
-        }                              
-        if (matchingCMNode == null)
-        {     
-          isPartiallyValid = false;
-          isValid = false;
-          break;
-        }
-        else
-        {  
-          // test to see that the element occurs only once
-          //
-          ItemCount itemCount = (ItemCount)map.get(matchingCMNode);
-          if (itemCount != null)
-          {  
-            if (itemCount.count > 0)
-            {
-              // we don't want to allow too many elements!
-              // we consider 'not enough' to be partially valid... but not 'too many'
-              isPartiallyValid = false;
-              break;
-            }  
-            else
-            {
-              itemCount.count++;
-            }  
-          }
-        }  
-      }  
-    }
-    if (isValid)
-    {  
-      for (int j = list.getLength() - 1; j >= 0; j--)
-      {
-        CMNode node = list.item(j);      
-        if (node.getNodeType() == CMNode.ELEMENT_DECLARATION)
-        {  
-          CMContent content = (CMContent)node;
-          ItemCount itemCount = (ItemCount)map.get(node);
-//          System.out.print("content " + content.getNodeName() + " " + content.getMinOccur());
-          if (itemCount.count < content.getMinOccur())
-          {  
-            isValid = false;
-            break;
-          }  
-        }  
-      }
-    }
-    if (result instanceof ElementPathRecordingResult && isPartiallyValid)
-    {
-      ((ElementPathRecordingResult)result).setPartialValidationCount(validitionCount);
-    }  
-    result.isValid = isValid;
-  }  
-  
-  
-  public void getOriginArray(CMElementDeclaration ed, List elementContent, ElementContentComparator comparator, ElementPathRecordingResult result)
-  {
-    CMNode[] cmNodeArray = null;
-    validate(ed, elementContent, comparator, result);
-    if (result.isValid)
-    {
-      CMDataType dataType = ed.getDataType();
-      int size = elementContent.size();
-      cmNodeArray = new CMNode[size];
-      Vector originList = result.getElementOriginList();
-      int originListSize = originList.size(); 
-      int originListIndex = 0;
-      for (int i = 0; i < size; i++)
-      {
-        Object o = elementContent.get(i);
-        if (comparator.isElement(o))
-        {     
-          if (originListIndex < originListSize)
-          {
-            cmNodeArray[i] = (CMNode)originList.get(originListIndex);
-            originListIndex++;
-          }
-        }
-        else if (comparator.isPCData(o))
-        {
-          cmNodeArray[i] = dataType;
-        }
-        // else the CMNode at this index is null
-      }
-      result.setOriginArray(cmNodeArray);
-    }
-  }
-  
-  private void collectNamedArcs(GraphNode node, List namedArcList, int indent)
-  {
-    //printlnIndented(indent, "GraphNode:" + node.name + decoration);
-    indent += 2;
-    for (Iterator i = node.arcList.iterator(); i.hasNext() ;)
-    {
-      Arc arc = (Arc)i.next();
-      //printlnIndented(indent, "Arc:" + arc.name + " (" + arc.kind + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-      if (arc.kind == Arc.ELEMENT)
-      { 
-        if (!namedArcList.contains(arc))
-        {
-          namedArcList.add(arc);
-          collectNamedArcs(arc.node, namedArcList, indent + 2);
-        }
-      }
-      else if (arc.kind != Arc.REPEAT && arc.kind != Arc.OPTIONAL)
-      {
-        collectNamedArcs(arc.node, namedArcList, indent + 2);
-      }
-    }
-  }
-  
-  
-  private List getMatchingArcs(CMElementDeclaration ed, String elementName)
-  {
-    List arcList = new ArrayList();
-    GraphNode graphNode = lookupOrCreateGraph(ed);
-    if (elementName == null)
-    {
-      // here we add the 'root' arc
-      for (Iterator i = graphNode.arcList.iterator(); i.hasNext() ;)
-      {
-        Arc arc = (Arc)i.next();
-        if (arc.kind == Arc.PREV_IN)
-        {
-          arcList.add(arc);
-          break;
-        }  
-      }
-    }
-    else
-    { 
-      List namedArcs = new ArrayList();
-      collectNamedArcs(graphNode, namedArcs, 0);
-      for (Iterator i = namedArcs.iterator(); i.hasNext(); )
-      {
-        Arc arc = (Arc)i.next();
-        if (arc.cmNode != null && elementName.equals(arc.cmNode.getNodeName()))
-        {  
-          arcList.add(arc);
-        }  
-      }  
-    }      
-    return arcList;
-  }
-
-  
-  private void collectNextSiblings(GraphNode node, List nextSiblingList, List namedArcList, List unamedArcList, int indent)
-  {
-    //printlnIndented(indent, "GraphNode:" + node.name + decoration);
-    indent += 2;
-    for (Iterator i = node.arcList.iterator(); i.hasNext(); )
-    {
-      Arc arc = (Arc)i.next();
-      if (arc.kind == Arc.ELEMENT)
-      {       
-        if (!namedArcList.contains(arc))
-        {
-          if (arc.cmNode != null)
-          {  
-            nextSiblingList.add(arc.cmNode);
-            if (arc.cmNode.getNodeType() == CMNode.ELEMENT_DECLARATION ||
-                arc.cmNode.getNodeType() == CMNode.ANY_ELEMENT)
-            {              
-              namedArcList.add(arc);
-              CMContent cmNode = (CMContent)arc.cmNode; 
-              if (cmNode.getMinOccur() == 0)
-              {
-                unamedArcList = new ArrayList();
-                collectNextSiblings(arc.node, nextSiblingList, namedArcList, unamedArcList, indent + 2);
-              }
-            }            
-          }
-        }
-      }  
-      else
-      {
-        if (!unamedArcList.contains(arc))
-        {
-          unamedArcList.add(arc);
-          collectNextSiblings(arc.node, nextSiblingList, namedArcList, unamedArcList, indent + 2);
-        }
-      }
-    }  
-  }
-    
-  public CMNode[] getNextSiblings(CMElementDeclaration ed, String elementName)
-  {
-    List arcList = getMatchingArcs(ed, elementName);
-    List nextSiblingList = new ArrayList();
-    for (Iterator i = arcList.iterator(); i.hasNext(); )
-    {
-      Arc arc = (Arc)i.next();
-      collectNextSiblings(arc.node, nextSiblingList, new ArrayList(), new ArrayList(), 0);      
-    }  
-    CMNode[] result = new CMNode[nextSiblingList.size()];
-    nextSiblingList.toArray(result);    
-    //System.out.print("getNextSibling(" +elementName + ")");
-    //for (int i = 0; i < result.length; i++)
-    //{
-    //  System.out.print("[" + result[i].getNodeName() + "]");
-    //}  
-    //System.out.println();
-    return result;
-  }
-
-  /**
-   *
-   */
-  public static class Result
-  {
-    public boolean isValid = true;
-    public int errorIndex = -1;
-    public String errorMessage;
-    public boolean isRepeatTraversed; // detects if a repeat has been traversed
-
-    public boolean canPush(Arc arc)
-    {
-      return true;
-    }
-    
-    public void push(Arc arc)
-    {
-      // overide this method to record traversed nodes
-    }
-    public void pop(Arc arc)
-    {
-      // overide this method to record traversed nodes
-    }
-    public CMNode[] getOriginArray()
-    {
-      return null;
-    }
-  }
-
-  /**
-   *
-   */
-  public static class ElementPathRecordingResult extends Result
-  {  
-    protected List activeItemCountList = new ArrayList();
-    protected List inactiveItemCountList = new ArrayList();    
-    protected Vector elementOriginStack = new Vector();
-    protected CMNode[] originArray = null;
-    protected int partialValidationCount = 0;
-
-    
-    // this method is used to support facet counts
-    //
-    public boolean canPush(Arc arc)
-    {     
-      boolean result = true;        
-      try
-      {        
-        if (arc.kind == Arc.REPEAT)
-        {          
-          if (arc.cmNode instanceof CMContent)
-          {
-            CMContent content = (CMContent)arc.cmNode;
-            
-            // we only need to do 'special' facet checking if the maxOccurs is > 1
-            // values of '0' and '-1' (unbounded) work 'for free' without any special checking
-            //
-            if (content.getMaxOccur() > 1)
-            {  
-              ItemCount itemCount = (ItemCount)activeItemCountList.get(activeItemCountList.size() - 1);
-              
-              // here we need to compute if we can do another repeat
-              // if we increase the repeat count by '1' will this violate the maxOccurs
-              //
-              if (itemCount.count + 1 >= content.getMaxOccur())
-              {
-                result = false;
-              }
-            }
-            //System.out.println("canPush REPEAT (" + itemCount.count + ")" + content.getNodeName() + " result= " + result);            
-          } 
-        }       
-      }
-      catch (Exception e)
-      {
-        e.printStackTrace();
-      }
-      //System.out.flush();
-      return result;
-    }
-    
-    public void push(Arc arc)
-    {
-      if (arc.kind == Arc.ELEMENT)
-      {
-        //System.out.println("[X]push(" + arc.kind + ")" + arc.cmNode.getNodeName());
-        elementOriginStack.add(arc.cmNode);
-        partialValidationCount = Math.max(elementOriginStack.size(), partialValidationCount);
-      }
-      else if (arc.kind == Arc.PREV_IN)
-      {
-        //System.out.println("[X]push(" + arc.kind + ")" + arc.cmNode.getNodeName());
-        activeItemCountList.add(new ItemCount());   
-      }
-      else if (arc.kind == Arc.OUT_NEXT)
-      {        
-        //System.out.println("[X]push(" + arc.kind + ")" + arc.cmNode.getNodeName() + "[" + arc + "]");
-        int size = activeItemCountList.size();
-        ItemCount itemCount = (ItemCount)activeItemCountList.get(size - 1);
-        activeItemCountList.remove(size - 1);
-        inactiveItemCountList.add(itemCount); 
-      }      
-      else if (arc.kind == Arc.REPEAT)
-      {
-        //System.out.println("[X]push(" + arc.kind + ")" + arc.cmNode.getNodeName());
-        ItemCount itemCount = (ItemCount)activeItemCountList.get(activeItemCountList.size() - 1);
-        itemCount.count++;
-        //System.out.println("repeat(" + itemCount.count + ")" + arc.cmNode.getNodeName());
-      }        
-    }
-
-    public void pop(Arc arc)
-    {
-      if (arc.kind == Arc.ELEMENT)
-      {
-        //System.out.println("[X]pop(" + arc.kind + ")" + arc.cmNode.getNodeName());
-        int size = elementOriginStack.size();
-        elementOriginStack.remove(size - 1);
-      }
-      else if (arc.kind == Arc.PREV_IN)
-      {
-        //System.out.println("[X]pop(" + arc.kind + ")" + arc.cmNode.getNodeName());
-        activeItemCountList.remove(activeItemCountList.size() - 1);        
-      }
-      else if (arc.kind == Arc.OUT_NEXT)
-      {
-        //System.out.println("[X]pop(" + arc.kind + ")" + arc.cmNode.getNodeName());
-        int size = inactiveItemCountList.size();
-        ItemCount itemCount = (ItemCount)inactiveItemCountList.get(size - 1);
-        inactiveItemCountList.remove(size - 1);
-        activeItemCountList.add(itemCount);     
-      }  
-      else if (arc.kind == Arc.REPEAT)
-      {
-        //System.out.println("[X]pop(" + arc.kind + ")" + arc.cmNode.getNodeName());
-        ItemCount itemCount = (ItemCount)activeItemCountList.get(activeItemCountList.size() - 1);
-        itemCount.count--;
-      }     
-    }
-
-    public Vector getElementOriginList()
-    {
-      return elementOriginStack;
-    }
-
-    public CMNode[] getOriginArray()
-    {
-      return originArray;
-    }
-
-    public void setOriginArray(CMNode[] originArray)
-    {
-      this.originArray = originArray;
-    }
-    
-    public int getPartialValidationCount()
-    {
-      return partialValidationCount;
-    }
-
-    public void setPartialValidationCount(int partialValidationCount)
-    {
-      this.partialValidationCount = partialValidationCount;
-    }
-  }  
-
-  /**
-   *
-   */
-  public static class PathRecordingResult extends Result
-  {
-    protected Vector arcList = new Vector();
-
-    public void push(Arc arc)
-    {
-      arcList.add(arc);
-    }
-
-    public void pop(Arc arc)
-    {
-      int size = arcList.size();
-      arcList.remove(size - 1);
-    }
-
-    public List getArcList()
-    {
-      List list = new Vector();
-      for (Iterator iterator = arcList.iterator(); iterator.hasNext(); )
-      {
-        Arc arc = (Arc)iterator.next();
-        if (arc.kind == Arc.ELEMENT)
-        {
-          list.add(arc);
-        }
-      }
-      return list;
-    }
-
-    public MatchModelNode getMatchModel()
-    {
-      MatchModelNodeBuilder builder = new MatchModelNodeBuilder(arcList);
-      builder.buildMatchModel();
-      return builder.getRoot();
-    }
-  }
-
-  /**
-   *
-   */
-  public static class MatchModelNode
-  {
-    public CMNode cmNode;
-    public List children = new Vector();
-    public Object data;
-
-    public MatchModelNode(MatchModelNode parent, CMNode cmNode)
-    {
-      this.cmNode = cmNode;
-    }
-
-    public void printModel(int indent)
-    {
-      //String cmNodeName = cmNode != null ? cmNode.getNodeName() : "null";
-      //printlnIndented(indent, "MatchModelNode : " + cmNodeName);
-      for (Iterator iterator = children.iterator(); iterator.hasNext(); )
-      {
-        MatchModelNode child = (MatchModelNode)iterator.next();
-        child.printModel(indent + 2);
-      }
-    }
-  }
-
-  public static class MatchModelNodeBuilder
-  {
-    protected List arcList;
-    protected List stack = new Vector();
-    protected MatchModelNode root;
-    protected MatchModelNode current;
-
-    public MatchModelNodeBuilder(List arcList)
-    {
-      this.arcList = arcList;
-      root = new MatchModelNode(null, null);
-      push(root);
-    }
-
-    protected void push(MatchModelNode node)
-    {
-      current = node;
-      stack.add(node);
-    }
-
-    protected void pop()
-    {
-      int size = stack.size();
-      stack.remove(size - 1);
-      current = (MatchModelNode)stack.get(size - 2);
-    }
-
-    public boolean isCMGroup(CMNode cmNode)
-    {
-      return cmNode != null && cmNode.getNodeType() == CMNode.GROUP;
-    }
-
-    public void buildMatchModel()
-    {
-      for (Iterator iterator = arcList.iterator(); iterator.hasNext(); )
-      {
-        Arc arc = (Arc)iterator.next();
-
-        if (arc.kind == Arc.ELEMENT)
-        {
-          current.children.add(new MatchModelNode(current, arc.cmNode));
-        }
-        else if (arc.kind == Arc.PREV_IN)
-        {
-          if (isCMGroup(arc.cmNode))
-          {
-            MatchModelNode newModelNode = new MatchModelNode(current, arc.cmNode);
-            current.children.add(newModelNode);
-            push(newModelNode);
-          }
-        }
-        else if (arc.kind == Arc.OUT_NEXT)
-        {
-          if (isCMGroup(arc.cmNode))
-          {
-            pop();
-          }
-        }
-        else if (arc.kind == Arc.REPEAT)
-        {
-          if (isCMGroup(arc.cmNode))
-          {
-            pop();
-            MatchModelNode newModelNode = new MatchModelNode(current, arc.cmNode);
-            current.children.add(newModelNode);
-            push(newModelNode);
-          }
-        }
-      }
-    }
-
-    public MatchModelNode getRoot()
-    {
-      return root;
-    }
-  }
-
-
-  /**
-   *
-   */
-  public interface ElementContentComparator
-  {
-    public boolean isIgnorable(Object o);
-    public boolean isPCData(Object o);
-    public boolean isElement(Object o);
-    public boolean matches(Object o, CMNode cmNode);
-  }
-
-  /**
-   * A linked list
-   */
-  public static class ElementList
-  {
-    protected Object head;
-    protected ElementList tail;
-
-    public static ElementList create(List v)
-    {
-      ElementList first = null;
-      ElementList prev = null;
-
-      for (Iterator iterator = v.iterator(); iterator.hasNext(); )
-      {
-        Object o = iterator.next();
-        if (o != null)
-        {
-          ElementList list = new ElementList();
-          list.head = o;
-
-          if (prev != null)
-          {
-            prev.tail = list;
-          }
-          else
-          {
-            first = list;
-          }
-          prev = list;
-        }
-      }
-      return first;
-    }
-
-
-    public String toString()
-    {
-      String string = "[" + head + "],"; //$NON-NLS-1$ //$NON-NLS-2$
-
-      if (tail != null)
-      {
-        string += tail.toString();
-      }
-
-      return string;
-    }
-  }
-
-  /**
-   * StringElementContentComparator
-   */
-  public static class StringElementContentComparator implements ElementContentComparator
-  {
-    public boolean isIgnorable(Object o)
-    {
-      String string = o.toString();
-      return string.startsWith("!") || string.startsWith("?"); //$NON-NLS-1$ //$NON-NLS-2$
-    }
-
-    public boolean isPCData(Object o)
-    {
-      String string = o.toString();
-      return string.startsWith("'") || string.startsWith("\""); //$NON-NLS-1$ //$NON-NLS-2$
-    }
-
-    public boolean isElement(Object o)
-    {
-      return !isIgnorable(o) && !isPCData(o);
-    }
-
-    public boolean matches(Object o, CMNode cmNode)
-    {
-      boolean result = false;
-      if (cmNode.getNodeType() == CMNode.ELEMENT_DECLARATION)
-      { 
-        CMElementDeclaration element = (CMElementDeclaration)cmNode;
-        String name = o.toString();                              
-        int index = name.indexOf("]"); //$NON-NLS-1$
-        if (index != -1)
-        {
-          name = name.substring(index + 1);
-        }
-        result = name.equalsIgnoreCase(element.getElementName());        
-
-        // TODO... here's we consider substitution groups... revisit to see if this should be moved into validator code
-        if (!result)
-        {
-          CMNodeList cmNodeList = (CMNodeList)element.getProperty("SubstitutionGroup");   //$NON-NLS-1$
-          if (cmNodeList != null)
-          {
-            int cmNodeListLength = cmNodeList.getLength();
-            if (cmNodeListLength > 1)
-            {                        
-              for (int i = 0; i < cmNodeListLength; i++)
-              {                                                               
-                CMElementDeclaration alternativeCMElementDeclaration = (CMElementDeclaration)cmNodeList.item(i);
-                String altName = alternativeCMElementDeclaration.getElementName();
-                result = name.equalsIgnoreCase(altName);
-                if (result)
-                {
-                  break;
-                }
-              }
-            }
-          }
-        }         
-      }   
-      else if (cmNode.getNodeType() == CMNode.ANY_ELEMENT)
-      {                                   
-        String string = o.toString();
-        if (string.equals("*")) //$NON-NLS-1$
-        {
-          result = true;
-        }
-        else
-        {
-          CMAnyElement anyElement = (CMAnyElement)cmNode;
-          String anyElementURI = anyElement.getNamespaceURI();    
-          if (anyElementURI != null)
-          {           
-            if (anyElementURI.equals("##any")) //$NON-NLS-1$
-            {                               
-              result = true;
-            }
-            else if (anyElementURI.equals("##other")) //$NON-NLS-1$
-            {     
-              result = true;    
-              CMDocument cmDocument = (CMDocument)anyElement.getProperty("CMDocument");   //$NON-NLS-1$
-              if (cmDocument != null)
-              {
-                String excludedURI = (String)cmDocument.getProperty("http://org.eclipse.wst/cm/properties/targetNamespaceURI"); //$NON-NLS-1$
-                if (excludedURI != null)
-                { 
-                  String specifiedURI = getURIForContentSpecification(string);
-                  if (specifiedURI != null && excludedURI.equals(specifiedURI))
-                  { 
-                    result = false;
-                  } 
-                }
-              }
-            } 
-            else if (anyElementURI.equals("##targetNamespace")) //$NON-NLS-1$
-            {
-              result = true;
-              CMDocument cmDocument = (CMDocument)anyElement.getProperty("CMDocument");   //$NON-NLS-1$
-              if (cmDocument != null)
-              {     
-                String targetNamespaceURI = (String)cmDocument.getProperty("http://org.eclipse.wst/cm/properties/targetNamespaceURI"); //$NON-NLS-1$
-                String specifiedURI = getURIForContentSpecification(string);
-                if (specifiedURI != null && !targetNamespaceURI.equals(specifiedURI))
-                { 
-                  result = false;
-                } 
-              }
-            }
-            else  
-            {        
-              result = true;
-              String specifiedURI = getURIForContentSpecification(string);
-              if (specifiedURI != null && !anyElementURI.equals(specifiedURI))
-              { 
-                result = false;
-              }      
-            }
-          }  
-          else 
-          {          
-            result = true;
-          }        
-        }
-      }
-      return result;
-    }     
-    
-
-    protected String getURIForContentSpecification(String specification)
-    {           
-      String result = null;
-      int index = specification.indexOf("]"); //$NON-NLS-1$
-      if (index != -1)
-      {                
-        result = specification.substring(1, index);
-      } 
-      return result;  
-    }
-  }      
-
-  public static List createStringList(String arg[], int startIndex)
-  {
-    Vector v = new Vector();
-    for (int i = startIndex; i < arg.length; i++)
-    {
-      v.add(arg[i]);
-    }
-    return v;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/DOMValidator.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/DOMValidator.java
deleted file mode 100644
index 4a11a27..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/DOMValidator.java
+++ /dev/null
@@ -1,424 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.internal.util;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAnyElement;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-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;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMVisitor;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceHelper;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-
-/**
- * A special CMValidator that knows about DOMs
- */
-public class DOMValidator extends CMValidator
-{               
-  protected String getNamespaceURI(Node node)
-  {   
-    return DOMNamespaceHelper.getNamespaceURI(node);
-    //return node.getNamespaceURI();
-  }
-          
-
-  //
-  // This is a temporary hack!!
-  //
-  protected String getFallbackNamepaceURI(CMElementDeclaration ed)
-  {   
-    String fallbackNamepaceURI = null;
-    CMDocument cmDocument = (CMDocument)ed.getProperty("CMDocument"); //$NON-NLS-1$
-    if (cmDocument != null)
-    {
-      fallbackNamepaceURI = (String)cmDocument.getProperty("http://org.eclipse.wst/cm/properties/targetNamespaceURI");   //$NON-NLS-1$
-    }  
-    return fallbackNamepaceURI;
-  }
-
-  /**
-   * Encode the Element's NodeList as a List of strings that the validator recognizes
-   */
-  public List createContentSpecificationList(Element element, CMElementDeclaration ed)
-  {                                                                    
-    boolean isNamespaceAware = isNamespaceAware(ed);
-    Vector v = new Vector();         
-    for (Node childNode = element.getFirstChild(); childNode != null; childNode = childNode.getNextSibling())
-    { 
-      v.add(createContentSpecification(childNode, isNamespaceAware, isNamespaceAware ? getFallbackNamepaceURI(ed) : null));
-    }
-    return v;
-  }
-
-
-  public List createContentSpecificationList(List nodeList, CMElementDeclaration ed)
-  {             
-    boolean isNamespaceAware = isNamespaceAware(ed);
-    Vector v = new Vector();            
- 
-    for (Iterator i = nodeList.iterator(); i.hasNext(); )
-    {
-      Node node = (Node)i.next();
-      v.add(createContentSpecification(node, isNamespaceAware, getFallbackNamepaceURI(ed)));
-    }
-    return v;
-  }
-
-
-  /**
-   * Encode the Node as a string that the validator recognizes
-   */
-  public String createContentSpecification(Node node, boolean isNamespaceAware, String fallbackNamepaceURI)
-  {
-    String result = "!"; //$NON-NLS-1$
-    switch (node.getNodeType())
-    {
-      case Node.ELEMENT_NODE :
-      {  
-        String nodeName = node.getNodeName();  
-        if (nodeName.startsWith("jsp:")) //$NON-NLS-1$
-        {  
-          result = "!"; // treat it as a comment so that it's ignored by the validator //$NON-NLS-1$
-        }
-        else
-        {
-          if (isNamespaceAware)
-          {
-            result = DOMNamespaceHelper.getUnprefixedName(nodeName);
-            String uri = getNamespaceURI(node);
-            if (uri != null)
-            {
-              result = "[" + uri + "]" + result;    //$NON-NLS-1$ //$NON-NLS-2$
-            } 
-            else if (fallbackNamepaceURI != null)
-            {
-              result = "[" + fallbackNamepaceURI + "]" + result;   //$NON-NLS-1$ //$NON-NLS-2$
-            }
-          }  
-          else
-          {
-            result = nodeName;
-          }
-        }        
-        //ContentModelManager.println("result " + result);
-        break;
-      }
-      case Node.PROCESSING_INSTRUCTION_NODE :
-      {
-        result = "?"; //$NON-NLS-1$
-        break;
-      }
-      case Node.COMMENT_NODE :
-      {
-        result = "!"; //$NON-NLS-1$
-        break;
-      }
-      case Node.CDATA_SECTION_NODE :
-      {
-        result = "\"" + node.getNodeName() + "\""; //$NON-NLS-1$ //$NON-NLS-2$
-        break;
-      }
-      case Node.TEXT_NODE :
-      {
-        String data = ((Text)node).getData();
-        // here we test to see if the test node is 'ignorable'
-        if (data != null && data.trim().length() > 0)
-        {
-          result = "\"" + node.getNodeName() + "\""; //$NON-NLS-1$ //$NON-NLS-2$
-        }
-        else
-        {
-          result = "!"; // todo... use another symbol? //$NON-NLS-1$
-        }
-        break;
-      }
-    }
-    return result;
-  }
-
-
-  /**
-   *
-   */
-  public List createContentSpecificationList(CMNode cmNode)
-  {
-    List list = new Vector();
-    switch (cmNode.getNodeType())
-    {
-      case CMNode.ELEMENT_DECLARATION :
-      {         
-        list.add(createContentSpecificationForCMElementDeclaration((CMElementDeclaration)cmNode));   
-        break;
-      }
-      case CMNode.DATA_TYPE :
-      {
-        list.add("\"" + cmNode.getNodeName() + "\""); //$NON-NLS-1$ //$NON-NLS-2$
-        break;
-      }
-      case CMNode.GROUP :
-      {
-        createContentSpecificationListForCMGroup((CMGroup)cmNode, list);
-        break;
-      }
-      case CMNode.ANY_ELEMENT :
-      {
-        list.add("*"); //$NON-NLS-1$
-        break;
-      }
-      default :
-      {
-        list.add("!"); //$NON-NLS-1$
-      }
-    }
-    return list;
-  }
-     
-
-  /**
-   * 
-   */              
-  protected String createContentSpecificationForCMElementDeclaration(CMElementDeclaration ed)
-  {  
-    CMDocument document = (CMDocument)ed.getProperty("CMDocument"); //$NON-NLS-1$
-    String uri = document != null ? (String)document.getProperty("http://org.eclipse.wst/cm/properties/targetNamespaceURI") : null; //$NON-NLS-1$
-    String string = ed.getNodeName();
-    if (uri != null)
-    {            
-      string = "[" + uri + "]" + string; //$NON-NLS-1$ //$NON-NLS-2$
-    }
-    return string;
-  }
-  
-  /**
-   *
-   */
-  protected void createContentSpecificationListForCMGroup(CMGroup group, List list)
-  {         
-    CMGroupContentVisitor visitor = new CMGroupContentVisitor(group, list);
-    visitor.visitCMNode(group);
-  } 
-     
-  protected class CMGroupContentVisitor extends CMVisitor
-  {  
-    protected CMGroup root;                             
-    protected List list;
-
-    public CMGroupContentVisitor(CMGroup root, List list)
-    {                                        
-      this.root = root;        
-      this.list = list;
-    }
-
-    public void visitCMElementDeclaration(CMElementDeclaration ed)
-    {           
-      if (ed.getMinOccur() > 0)
-      {
-        list.add(createContentSpecificationForCMElementDeclaration(ed));
-      }
-    }       
-
-    public void visitCMAnyElement(CMAnyElement anyElement)
-    {   
-      list.add("*"); //$NON-NLS-1$
-    }
-
-    public void visitCMGroup(CMGroup group)
-    {                              
-      if (group == root || group.getMinOccur() > 0)
-      {
-        int op = group.getOperator();
-        if (op == CMGroup.SEQUENCE)
-        {
-          super.visitCMGroup(group);
-        }
-        else if (op == CMGroup.CHOICE)
-        {
-          CMNodeList nodeList = group.getChildNodes();
-          if (nodeList.getLength() > 0)
-          {
-            visitCMNode(nodeList.item(0));
-          }      
-        }
-      }
-    }
-  }
-
-  public boolean isNamespaceAware(CMElementDeclaration ed)
-  { 
-    return ed != null ? ed.getProperty("http://org.eclipse.wst/cm/properties/isNameSpaceAware") != null : false; //$NON-NLS-1$
-  }
-     
-  /**
-   *
-   */
-  public CMNode[] getOriginArray(CMElementDeclaration ed, Element element)
-  {
-    ElementPathRecordingResult result = new ElementPathRecordingResult();
-    getOriginArray(ed, createContentSpecificationList(element, ed), stringContentComparitor, result);
-    return result.getOriginArray();
-  }
-                   
-  /**
-   *
-   */
-  public MatchModelNode getMatchModel(CMElementDeclaration ed, Element element)
-  {
-    MatchModelNode matchModelNode = null;
-    PathRecordingResult result = new PathRecordingResult();
-    validate(ed, createContentSpecificationList(element, ed), stringContentComparitor, result);
-    if (result.isValid)
-    {
-      matchModelNode = result.getMatchModel();
-    }
-    return matchModelNode;
-  }
-                           
-
-  public List clone(List list)
-  {   
-    List result = new Vector(list.size());
-    result.addAll(list);
-    return result;
-  }
- 
-  /**
-   *
-   */
-  public boolean canInsert(CMElementDeclaration ed, List contentSpecificationList, int insertIndex, CMNode cmNode)
-  {           
-    List clonedList = clone(contentSpecificationList);
-    insert(clonedList, insertIndex, cmNode);
-    boolean result = isPartiallyValid(ed, clonedList);   
-    return result;
-  }  
-
-  /**
-   *
-   */
-  public boolean canInsert(CMElementDeclaration ed, List contentSpecificationList, int insertIndex, List cmNodeList)
-  {              
-    List clonedList = clone(contentSpecificationList);
-    insert(clonedList, insertIndex, cmNodeList);
-    return isValid(ed, clonedList);
-  }  
-
-  /**
-   *
-   */
-  public boolean canRemove(CMElementDeclaration ed, List contentSpecificationList, int startRemoveIndex)
-  {
-    return canRemove(ed, contentSpecificationList, startRemoveIndex, startRemoveIndex);
-  }
-
-  /**
-   *
-   */
-  public boolean canRemove(CMElementDeclaration ed, List contentSpecificationList, int startRemoveIndex, int endRemoveIndex)
-  {
-    List clonedList = clone(contentSpecificationList);
-    remove(clonedList, startRemoveIndex, endRemoveIndex);
-    return isValid(ed, clonedList);
-  }
-                        
-  /**
-   *
-   */
-  public boolean canReplace(CMElementDeclaration ed, List contentSpecificationList, int startRemoveIndex, int endRemoveIndex, CMNode cmNode)
-  {
-    List clonedList = clone(contentSpecificationList);
-    remove(clonedList, startRemoveIndex, endRemoveIndex); 
-    insert(clonedList, startRemoveIndex, cmNode);
-    return isValid(ed, clonedList);
-  }
-
-  /**
-   *
-   */                      
-  public boolean isValid(CMElementDeclaration ed, List contentSpecificationList)
-  {
-    Result result = new Result();
-    validate(ed, contentSpecificationList, stringContentComparitor, result);
-    return result.isValid;
-  }
-
-  public boolean isPartiallyValid(CMElementDeclaration ed, List contentSpecificationList)
-  {
-    CMValidator.ElementPathRecordingResult result = new CMValidator.ElementPathRecordingResult();
-    validate(ed, contentSpecificationList, stringContentComparitor, result);
-    int count = getElementCount(contentSpecificationList);
-    //System.out.println("elementOriginList " + result.getPartialValidationCount() + "vs" + count);
-    return result.getPartialValidationCount() >= count;
-  }  
-  
-  public int getElementCount(List contentSpecificationList)
-  {
-    int count = 0;
-    for (Iterator i = contentSpecificationList.iterator(); i.hasNext(); )
-    {
-      if (stringContentComparitor.isElement(i.next()))
-      {
-        count++;
-      }  
-    }  
-    return count;
-  }
-
-  protected Result validate(CMElementDeclaration ed, Element element)
-  {
-    Result result = new Result();
-    validate(ed, createContentSpecificationList(element, ed), stringContentComparitor, result);
-    return result;
-  }
-
-
-  protected void remove(List stringList, int startRemoveIndex, int endRemoveIndex)
-  {
-    if (startRemoveIndex != -1)
-    {
-      for (int i = startRemoveIndex; i <= endRemoveIndex; i++)
-      {
-        stringList.remove(i);
-      }
-    }
-  }
-
-  protected void insert(List stringList, int insertIndex, CMNode cmNode)
-  {
-    if (insertIndex != -1)
-    {
-      stringList.addAll(insertIndex, createContentSpecificationList(cmNode));
-    }
-  }
-
-  protected void insert(List stringList, int insertIndex, List cmNodeList)
-  {
-    if (insertIndex != -1)
-    {
-      int insertListSize = cmNodeList.size();
-      for (int i = insertListSize - 1; i >= 0; i--)
-      {
-        CMNode cmNode = (CMNode)cmNodeList.get(i);
-        stringList.addAll(insertIndex, createContentSpecificationList(cmNode));
-      }
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentManager.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentManager.java
deleted file mode 100644
index 6fbee2a..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentManager.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.modelquery;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
-
-
-/**
- * The CMDocumentManager can be visualized as a table of CMDocument
- * references, each with a corresponding entry in a CMDocument cache. The
- * CMDocumentManager also performs the task of loading CMDocuments providing
- * support for synchronous and asynchronous loading.
- * 
- * publicIdTable CMDocumentCache ---------------------------
- * --------------------------------------- | publicId | resolvedURI | -> |
- * resolvedURI | status | CMDocument | ---------------------------
- * --------------------------------------- | (null) | file:/x.dtd | |
- * file:/x.dtd | loading | (null) | ---------------------------
- * --------------------------------------- | http:/... | file:/y.xsd | |
- * file:/y.xsd | loaded | | ---------------------------
- * ---------------------------------------
- * 
- */
-public interface CMDocumentManager {
-	/**
-	 * This property specifies WHEN CMDocuments are loaded. Setting this
-	 * property to true allows the CMDocumentManager to load CMDocuments on
-	 * demand. Settings this property a false puts the onus on the client to
-	 * call addCMDocumentReference() to explicity trigger a load. This allows
-	 * the client to control exactly when loading should take place. )
-	 */
-	public static final String PROPERTY_AUTO_LOAD = "autoLoad"; //$NON-NLS-1$
-
-	/**
-	 * This property specifies HOW CMDocuments are loaded. When set to false,
-	 * the getCMDocument() method will load the CMDocument synchronously and
-	 * return a CMDocument object when loading is successful. When set to
-	 * true, the getCMDocument() will load the CMDocument asynchronously and
-	 * will immediately return null. When loading is complete, the
-	 * CMDocumentManager will inform its listeners that the CMDocument has
-	 * been loaded.
-	 */
-	public static final String PROPERTY_ASYNC_LOAD = "asyncLoad"; //$NON-NLS-1$
-
-	/**
-	 * 
-	 */
-	public static final String PROPERTY_USE_CACHED_RESOLVED_URI = "useCachedResovledURI"; //$NON-NLS-1$
-
-	/**
-	 * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=136399
-	 * Allows a client to control whether the document manager attempts to resolve a
-	 * CM document's URI. When set to false, the CM systemID will be assumed to point
-	 * to an already resolved URI. By default this property is set to true.
-	 */
-	public static final String PROPERTY_PERFORM_URI_RESOLUTION = "performURIResolution"; //$NON-NLS-1$
-	
-	/**
-	 * Set the enabled state of a property.
-	 */
-	public void setPropertyEnabled(String propertyName, boolean enabled);
-
-	/**
-	 * Get the enabled state of the property.
-	 */
-	public boolean getPropertyEnabled(String propertyName);
-
-	/**
-	 * Adds a listener. Listeners should expect to receive call backs on a
-	 * secondary thread when asynchronously loading is used.
-	 */
-	public void addListener(CMDocumentManagerListener listener);
-
-	/**
-	 * Removes a listener.
-	 */
-	public void removeListener(CMDocumentManagerListener listener);
-
-	/**
-	 * Lookup or create a CMDocument (depending on PROPERTY_AUTO_LOAD).
-	 * 
-	 * @param publicId
-	 * @param systemId
-	 * @param type -
-	 *            'dtd', 'xsd', 'tld', etc. if null is given as the type, then
-	 *            the type is calculated as last segment (e.g. file extension)
-	 *            of the resolved URI
-	 * @return
-	 */
-	public CMDocument getCMDocument(String publicId, String systemId, String type);
-
-	/**
-	 * Lookup a CMDocument.
-	 */
-	public CMDocument getCMDocument(String publicId);
-
-	/**
-	 * Get the status of a CMDocument.
-	 */
-	public int getCMDocumentStatus(String publicId);
-
-	/**
-	 * Creates a CMDocument and adds the associated CMDocument reference
-	 * information to the table. Calling this method always triggers a
-	 * CMDocument load.
-	 */
-	public void addCMDocumentReference(String publicId, String systemId, String type);
-
-	/**
-	 * Add an existingCMDocument and the reference information to the table.
-	 */
-	public void addCMDocument(String publicId, String systemId, String resolvedURI, String type, CMDocument cmDocument);
-
-	/**
-	 * Remove all entries from the table.
-	 */
-	public void removeAllReferences();
-
-	/**
-	 * Get the CMDocumentCache that is used to store loaded CMDocuments and
-	 * associated status.
-	 */
-	public CMDocumentCache getCMDocumentCache();
-
-	/**
-	 * Builds a CMDocument given a resoulvedURI. Note that no entries are
-	 * added to the table.
-	 */
-	public CMDocument buildCMDocument(String publicId, String resolvedURI, String type);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentManagerListener.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentManagerListener.java
deleted file mode 100644
index bd607dc..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentManagerListener.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.modelquery;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCacheListener;
-
-/**
- *
- */
-public interface CMDocumentManagerListener extends CMDocumentCacheListener
-{                    
-  public void propertyChanged(CMDocumentManager cmDocumentManager, String propertyName);
-}       
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentReference.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentReference.java
deleted file mode 100644
index 1d57f46..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentReference.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.modelquery;
-
-
-public interface CMDocumentReference
-{
-  public String getPublicId();
-  public String getSystemId();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentReferenceProvider.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentReferenceProvider.java
deleted file mode 100644
index d7dc8bf..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentReferenceProvider.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.modelquery;
-
-import java.util.List;
-
-import org.w3c.dom.Node;
- 
-/**
- * The interface is used to abstract the task of computing the document references associated with a DOM
- * or a particular node within the DOM.  
- */
-public interface CMDocumentReferenceProvider
-{
-  List getCMDocumentReferences(Node node, boolean deep);
-  String resolveGrammarURI(String publicId, String systemId);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQuery.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQuery.java
deleted file mode 100644
index 5d300e8..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQuery.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.modelquery;
-
-import java.util.List;
-
-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.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.extension.ModelQueryExtensionManager;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-/**
- * This class provides an interface for performing higher level queries based on
- * a xml model (DOM) and one or more associated content models (CMDocument).
- *
- * The queries provided can be organized into three groups:
- *
- * 1) DOM Node to CMNode mapping
- *      Given a grammatically valid DOM Node the corresponding CMNode can be determined.
- *      (i.e. Element -> CMElementDeclaration, Attr -> CMAttributeDeclaration, CharacterData -> CMDataType)
- *
- * 2) DOM editing tests ("Can I do this?")
- *      Questions such as canInsert, canRemove, canReplace can assist in the editing of a DOM.
- *
- *      The validityChecking argument determines the strictness of the validity testing that occurs.
- *
- *      - VALIDITY_NONE    : The current content of the Element is ignored.
- *                           Only the content model is considered.
- *                           This is most useful for codeassist related queries.
- *
- *      - VALIDITY_STRICT  : The current content of the Element is considered.
- *                           Returns true only if the operation preserves content validity.
- *                           This is useful when DOM editing needs to be constrained to maintain validity.
- *
- *      - VALIDITY_PARTIAL : Some optimized compromise between the two options above.
- *
- * 3) DOM editing actions ("What can I do here?")
- *      These methods return ModelQueryActions that are relevant at some specified DOM Node.
- *      The actions indicate what kinds of DOM Node can be inserted where (at what index).
- */
-public interface ModelQuery
-{
-  public static final int VALIDITY_NONE = 0;
-  public static final int VALIDITY_PARTIAL = 1;
-  public static final int VALIDITY_STRICT = 2;
-
-  public static final int INCLUDE_ALL = 0xFF;
-  public static final int INCLUDE_ATTRIBUTES = 0x01;
-  public static final int INCLUDE_CHILD_NODES = 0x02;
-  public static final int INCLUDE_SEQUENCE_GROUPS = 0x04;
-  public static final int INCLUDE_TEXT_NODES = 0x08;
-  public static final int INCLUDE_ENCLOSING_REPLACE_ACTIONS = 0x10;
-
-  public static final int EDIT_MODE_UNCONSTRAINED = 0;
-  public static final int EDIT_MODE_CONSTRAINED_LENIENT= 1;
-  public static final int EDIT_MODE_CONSTRAINED_STRICT = 2;
-
-
-  void setEditMode(int editMode);
-
-  int  getEditMode();
-
-  /**
-   * Returns the CMDocument that corresponds to the DOM Node.
-   * or null if no CMDocument is appropriate for the DOM Node.
-   */
-  CMDocument getCorrespondingCMDocument(Node node);
-
-  /**
-   * Returns the corresponding CMNode for the DOM Node
-   * or null if no CMNode is appropriate for the DOM Node.
-   */
-  CMNode getCMNode(Node node);
-
-  /**
-   * Returns the corresponding CMAttribute for the DOM Node
-   * or null if no CMNode is appropriate for the DOM Node.
-   */
-  CMAttributeDeclaration getCMAttributeDeclaration(Attr attr);
-
-  /**
-   * Returns the corresponding CMAttribute for the DOM Node
-   * or null if no CMNode is appropriate for the DOM Node.
-   */
-  CMElementDeclaration getCMElementDeclaration(Element element);
-
-  /**
-   * Returns true if the content of the element is valid
-   */
-  boolean isContentValid(Element element);
-
-  /**
-   * Returns the CMNode of the parent element's content model
-   * that corresponds to the node
-   */
-  CMNode getOrigin(Node node);
-
-  /**
-   * Returns an array of CMNodes of the parent element's content model
-   * that corresponds to the node
-   */
-  CMNode[] getOriginArray(Element element);
-
-  /**
-   * Returns a list of all CMNode 'meta data' that may be potentially added to the element.
-   */
-  List getAvailableContent(Element element, CMElementDeclaration ed, int includeOptions);
-
-  /**
-   * Can a DOM Node corresponding to the CMNode 'meta data' be added to the parent
-   */
-  boolean canInsert(Element parent, CMNode cmNode, int index, int validityChecking);
-
-  /**
-   * Can multiple DOM Nodes corresponding to the list of CMNode 'meta data' be added to the parent
-   */
-  boolean canInsert(Element parent, List cmNodeList, int index, int validityChecking);
-
-  /**
-   * Can the DOM Node be removed
-   */
-  boolean canRemove(Node node, int validityChecking);
-
-  /**
-   * Can the list of DOM Nodes be removed
-   */
-  boolean canRemove(List nodeList, int validityChecking);
-
-  /**
-   * Can the children within the indicated indices be replaced with a DOM Node corresponding to the CMNode 'meta data'
-   */
-  boolean canReplace(Element parent, int startIndex, int endIndex, CMNode cmNode, int validityChecking);
-
-  /**
-   * Can the children within the indicated indices be replaced with multiple DOM Nodes corresponding to the list of CMNode 'meta data'
-   */
-  boolean canReplace(Element parent, int startIndex, int endIndex, List cmNodeList, int validityChecking);
-
-  /**
-   *
-   */
-  void getInsertActions(Element parent, CMElementDeclaration ed, int index, int includeOptions, int validityChecking, List actionList);
-
-  /**
-   *
-   */
-  void getInsertActions(Document parent, CMDocument cmDocument, int index, int includeOptions, int validityChecking, List actionList);
-
-  /**
-   * Return a list of replace actions that can be performed on the parent's content
-   */
-  void getReplaceActions(Element parent, CMElementDeclaration ed, int includeOptions, int validityChecking, List actionList);
-
-  /**
-   * Return a list of replace actions that can be performed on the selected children of that parent 
-   */
-  void getReplaceActions(Element parent, CMElementDeclaration ed, List selectedChildren, int includeOptions, int validityChecking, List actionList);
-
-                        
-  /** 
-   *  @deprecated - use getPossibleDataTypeValues()
-   */
-  List getDataTypeValues(Element element, CMNode cmNode);
-
-  /**
-   * This methods return an array of possible values corresponding to the datatype of the CMNode (either an CMAttributeDeclaration or a CMElementDeclaration)
-   */
-  String[] getPossibleDataTypeValues(Element element, CMNode cmNode);
-
-  /**
-   * This method may return null if a CMDocumentManager is not used by the ModelQuery
-   */
-  CMDocumentManager getCMDocumentManager();                                       
-
-  /**
-   * This method may return null the ModelQuery doesn't support the use of extensions
-   */
-  ModelQueryExtensionManager getExtensionManager();   
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryAction.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryAction.java
deleted file mode 100644
index 059c4ff..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryAction.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.modelquery;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.w3c.dom.Node;
-
-
-public interface ModelQueryAction
-{
-  public static final int INSERT  = 1;
-  public static final int REMOVE  = 2;
-  public static final int REPLACE = 4;
-
-  public int getKind();
-  /**
-   * if start index == -1 then no insert is possible
-   * if start index != -1 and endIndex == -1 then an insert at any position is possible
-   */
-  public int getStartIndex();
-  public int getEndIndex();
-  public Node getParent();
-  public CMNode getCMNode();
-  public Object getUserData();
-  public void setUserData(Object object);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryAssociationProvider.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryAssociationProvider.java
deleted file mode 100644
index 7777756..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryAssociationProvider.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.modelquery;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-
-/**
- * 
- *
- */
-public interface ModelQueryAssociationProvider extends ModelQueryCMProvider
-{
-  public CMNode getCMNode(Node node);
-  public CMDataType getCMDataType(Text text); 
-  public CMAttributeDeclaration getCMAttributeDeclaration(Attr attr);
-  public CMElementDeclaration getCMElementDeclaration(Element element);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryCMProvider.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryCMProvider.java
deleted file mode 100644
index f0f9373..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryCMProvider.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.modelquery;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.w3c.dom.Node;
-
-
-
-/**
- *
- */
-public interface ModelQueryCMProvider
-{
-  /**
-   * Returns the CMDocument that corresponds to the DOM Node.
-   * or null if no CMDocument is appropriate for the DOM Node.
-   */
-  CMDocument getCorrespondingCMDocument(Node node);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/extension/ModelQueryExtension.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/extension/ModelQueryExtension.java
deleted file mode 100644
index b417f56..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/extension/ModelQueryExtension.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.modelquery.extension;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public abstract class ModelQueryExtension
-{  
-  protected static final String[] EMPTY_STRING_ARRAY = {};
-  protected static final CMNode[] EMPTY_CMNODE_ARRAY = {};
-  
-  /**
- * @param ownerElement - the owner element
- * @param namespace - the active namespace
- * @param name - the name of an attribute node
- * @return valid values for the given attribute
- */
-public String[] getAttributeValues(Element ownerElement, String namespace, String name)
-  {
-    return EMPTY_STRING_ARRAY;
-  }
-  
-  public String[] getElementValues(Node parentNode, String namespace, String name)
-  {
-    return EMPTY_STRING_ARRAY;
-  }
-  
-  /**
- * @param parentNode
- * @param namespace
- * @param name
- * @return whether a child element of the given parentNode is valid given the active namespace
- */
-public boolean isApplicableChildElement(Node parentNode, String namespace, String name)
-  {
-    return true;
-  }
-  
-  /**
- * @param parentElement - the parent Element when asking for children, the owner Element when asking for attributes 
- * @param namespace - the active namespace
- * @param includeOptions - ModelQuery.INCLUDE_ATTRIBUTES or ModelQuery.INCLUDE_CHILD_NODES
- * @return additional valid CMAttributeDeclarations or CMElementDeclarations 
- */
-public CMNode[] getAvailableElementContent(Element parentElement, String namespace, int includeOptions) 
-  {
-	  return EMPTY_CMNODE_ARRAY;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/extension/ModelQueryExtensionManager.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/extension/ModelQueryExtensionManager.java
deleted file mode 100644
index 31c440f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/extension/ModelQueryExtensionManager.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.modelquery.extension;
-
-import java.util.List;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.w3c.dom.Element;
-
-
-
-public interface ModelQueryExtensionManager
-{
-  List getDataTypeValues(Element element, CMNode cmNode);                             
-
-  void filterAvailableElementContent(List availableContent, Element element, CMElementDeclaration ed);
-
-  void filterAvailableElementContent(List availableContent, Element element, CMElementDeclaration ed, int includeOptions);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/BaseAssociationProvider.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/BaseAssociationProvider.java
deleted file mode 100644
index 54242f6..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/BaseAssociationProvider.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQueryAssociationProvider;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-
-/**
- *
- */
-public abstract class BaseAssociationProvider implements ModelQueryAssociationProvider
-{                    
-  public BaseAssociationProvider()
-  {
-  }
-
-  public CMNode getCMNode(Node node)
-  {
-    CMNode result = null;
-    switch (node.getNodeType())
-    {
-      case Node.ATTRIBUTE_NODE :
-      {
-        result = getCMAttributeDeclaration((Attr)node);
-        break;
-      }
-      case Node.ELEMENT_NODE :
-      {
-        result = getCMElementDeclaration((Element)node);
-        break;
-      }
-      case Node.CDATA_SECTION_NODE :
-      case Node.TEXT_NODE :
-      {
-        result = getCMDataType((Text)node);
-        break;
-      }
-    }
-    return result;
-  }
-
-
-  public CMDataType getCMDataType(Text text)
-  {
-    CMDataType result = null;
-    Node parentNode = text.getParentNode();
-    if (parentNode != null && parentNode.getNodeType() == Node.ELEMENT_NODE)
-    {
-      CMElementDeclaration ed = getCMElementDeclaration((Element)parentNode);
-      result = ed.getDataType();
-    }
-    return result;
-  }
-
-
-  public CMAttributeDeclaration getCMAttributeDeclaration(Attr attr)
-  {
-    CMAttributeDeclaration result = null;
-    Element element = attr.getOwnerElement();
-    if (element != null)
-    {
-      CMElementDeclaration ed = getCMElementDeclaration(element);
-      if (ed != null)
-      {
-        result = (CMAttributeDeclaration)ed.getAttributes().getNamedItem(attr.getName());
-      }
-    }
-    return result;
-  }          
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentLoader.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentLoader.java
deleted file mode 100644
index 6905948..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentLoader.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl;
-                          
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceTable;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-/**
- *
- */
-public class CMDocumentLoader
-{                                           
-  protected Document document;
-  protected ModelQuery modelQuery;
-  protected CMDocumentManager cmDocumentManager;
-  protected boolean isInferredGrammarEnabled = true;  
-  protected CMDocumentLoadingNamespaceTable namespaceTable;
-  protected int count = 0;
-    
-  public CMDocumentLoader(Document document, ModelQuery modelQuery)
-  {                             
-    this(document, modelQuery.getCMDocumentManager());
-  }
-  
-  public CMDocumentLoader(Document document, CMDocumentManager cmDocumentManager)
-  {   
-    this.document = document;                     
-    this.cmDocumentManager = cmDocumentManager;  	
-  }
-  
-  public void loadCMDocuments()
-  {          
-    //System.out.println("----------loadCMDocuments ------------");          
-    //long time = System.currentTimeMillis();
-       
-    boolean walkDocument = false;
-            
-    cmDocumentManager.removeAllReferences();
-      
-    String[] doctypeInfo = XMLAssociationProvider.getDoctypeInfo(document);
-    if (doctypeInfo != null)
-    {
-      // load the doctype if required
-      walkDocument = handleGrammar(doctypeInfo[0], doctypeInfo[1], "DTD"); //$NON-NLS-1$
-    }                                   
-    else
-    {                           
-      Element element = getRootElement(document);
-      if (element != null)
-      {
-        namespaceTable = new CMDocumentLoadingNamespaceTable(document);   
-        namespaceTable.addElement(element);
-        if (namespaceTable.isNamespaceEncountered())
-        {   
-          walkDocument = true;
-          //System.out.println("isNamespaceAware");
-        }
-        else
-        {
-          namespaceTable = null;
-          walkDocument = isInferredGrammarEnabled;
-          //System.out.println("is NOT namespaceAware");
-        }        
-      }  
-    } 
-
-    if (walkDocument)
-    {
-      visitNode(document);   
-    } 
-
-    //System.out.println("--- elapsed time (" + count + ") = " + (System.currentTimeMillis() - time));
-  }
-
-
-  public boolean handleGrammar(String publicId, String systemId, String type)
-  {           
-    boolean result = false;
-    
-    int status = cmDocumentManager.getCMDocumentStatus(publicId);
-    if (status == CMDocumentCache.STATUS_NOT_LOADED)
-    {
-      cmDocumentManager.addCMDocumentReference(publicId, systemId, type);
-    }                 
-    else if (status == CMDocumentCache.STATUS_ERROR)
-    {
-      result = true;
-    }
-    return result;
-  } 
-    
-
-  public void handleElement(Element element)
-  {  
-    visitChildNodes(element);
-  }
-
-                             
-  public void handleElementNS(Element element)
-  {
-    namespaceTable.addElement(element);
-    visitChildNodes(element);
-  }
-                                                    
-
-  public void visitNode(Node node)
-  {                    
-    int nodeType = node.getNodeType();
-    if (nodeType == Node.ELEMENT_NODE)
-    {
-      count++;       
-
-      Element element = (Element)node;    
-      if (namespaceTable == null)
-      {
-        handleElement(element); 
-      }
-      else
-      {
-        handleElementNS(element);
-      }            
-    }
-    else if (nodeType == Node.DOCUMENT_NODE)
-    {
-      visitChildNodes(node);
-    }
-  }
-
-
-  protected void visitChildNodes(Node node)
-  {   
-	  for (Node child = node.getFirstChild(); child != null; child = child.getNextSibling()) 
-    {
-	    visitNode(child);
-    }
-	}             
-
-
-  protected class CMDocumentLoadingNamespaceTable extends NamespaceTable
-  {                                        
-    protected List newNamespaceList;
-
-    public CMDocumentLoadingNamespaceTable(Document document)
-    {                                                          
-      super(document);     
-    }  
-                                           
-
-    public void addElement(Element element)
-    {                               
-      newNamespaceList = null;
-      super.addElement(element);  
-      if (newNamespaceList != null)
-      {
-        for (Iterator i = newNamespaceList.iterator(); i.hasNext(); )
-        {
-          NamespaceInfo info = (NamespaceInfo)i.next();
-          handleGrammar(info.uri, info.locationHint, "XSD"); //$NON-NLS-1$
-        }
-      }
-    }                 
-     
-                               
-    protected void internalAddNamespaceInfo(String key, NamespaceInfo info)
-    {
-      super.internalAddNamespaceInfo(key, info);           
-      if (newNamespaceList == null)
-      {
-        newNamespaceList = new ArrayList();
-      }
-      newNamespaceList.add(info);    
-    }                     
-  }
-
-  
-  protected Element getRootElement(Document document)
-  {
-    Element result = null;
-    NodeList nodeList = document.getChildNodes();
-    int nodeListLength = nodeList.getLength();
-    for (int i = 0 ; i < nodeListLength; i++)
-    {
-      Node node = nodeList.item(i);
-      if (node.getNodeType() == Node.ELEMENT_NODE)
-      {
-        result = (Element)node;
-        break;
-      }
-    }
-    return result;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentManagerImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentManagerImpl.java
deleted file mode 100644
index c4cbfc4..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentManagerImpl.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl;
-                          
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.XMLCoreMessages;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.ContentModelManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.internal.annotation.AnnotationUtility;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManagerListener;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentReferenceProvider;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
-
-
-/**
- *
- */
-public class CMDocumentManagerImpl implements CMDocumentManager
-{                                
-  protected CMDocumentCache cmDocumentCache;
-  protected CMDocumentReferenceProvider cmDocumentReferenceProvider;
-  protected List listenerList = new Vector(); 
-  protected Hashtable propertyTable = new Hashtable();
-  protected Hashtable publicIdTable = new Hashtable();
-
-       
-  public CMDocumentManagerImpl(CMDocumentCache cmDocumentCache, CMDocumentReferenceProvider cmDocumentReferenceProvider)
-  {                                                       
-    this.cmDocumentCache = cmDocumentCache;                                                                            
-    this.cmDocumentReferenceProvider = cmDocumentReferenceProvider;
-    setPropertyEnabled(PROPERTY_AUTO_LOAD, true);
-    setPropertyEnabled(PROPERTY_USE_CACHED_RESOLVED_URI, false);
-    setPropertyEnabled(PROPERTY_PERFORM_URI_RESOLUTION, true);
-  }         
-
-       
-  public CMDocumentCache getCMDocumentCache()
-  {
-    return cmDocumentCache;
-  }
-
- 
-  public void setPropertyEnabled(String propertyName, boolean value)
-  {
-    propertyTable.put(propertyName, value ? "true" : "false"); //$NON-NLS-1$ //$NON-NLS-2$
-    for (Iterator i = listenerList.iterator(); i.hasNext(); )
-    {
-      CMDocumentManagerListener listener = (CMDocumentManagerListener)i.next();
-      listener.propertyChanged(this, propertyName);
-    }
-  }                                        
-
-        
-  public boolean getPropertyEnabled(String propertyName)
-  {
-    Object object = propertyTable.get(propertyName);
-    return object != null && object.equals("true"); //$NON-NLS-1$
-  }
-
-
-  public void addListener(CMDocumentManagerListener listener)
-  {
-    listenerList.add(listener);
-    cmDocumentCache.addListener(listener);
-  }
-
-
-  public void removeListener(CMDocumentManagerListener listener)
-  {
-    listenerList.remove(listener);
-    cmDocumentCache.removeListener(listener);
-  }                       
-   
-                   
-  protected String lookupResolvedURI(String publicId)
-  {
-    String key = publicId != null ? publicId : ""; //$NON-NLS-1$
-    return (String)publicIdTable.get(key);
-  }
-    
-
-  protected String lookupOrCreateResolvedURI(String publicId, String systemId)
-  {                    
-    String resolvedURI = null;                  
-
-    String key = publicId != null ? publicId : ""; //$NON-NLS-1$
-
-    if (getPropertyEnabled(PROPERTY_USE_CACHED_RESOLVED_URI))
-    {
-      resolvedURI = (String)publicIdTable.get(key);
-    }   
-
-    if (resolvedURI == null)
-    {
-      resolvedURI = cmDocumentReferenceProvider.resolveGrammarURI(publicId, systemId);
-      if (resolvedURI == null)
-      {
-        resolvedURI = ""; //$NON-NLS-1$
-      }
-      publicIdTable.put(key, resolvedURI);     
-    }                       
-  
-    return resolvedURI;
-  }
-
-
-  public int getCMDocumentStatus(String publicId)
-  {                                           
-    int status = CMDocumentCache.STATUS_NOT_LOADED; 
-    String resolvedURI = lookupResolvedURI(publicId);
-    if (resolvedURI != null)
-    {                      
-      status = cmDocumentCache.getStatus(resolvedURI);
-    }
-    return status;
-  }    
-              
-
-  public CMDocument getCMDocument(String publicId)
-  {                                           
-    CMDocument result = null;
-    String resolvedURI = lookupResolvedURI(publicId);
-    if (resolvedURI != null)
-    {                      
-      result = cmDocumentCache.getCMDocument(resolvedURI);
-    }
-    return result;
-  }    
-  
-
-  /* (non-Javadoc)
- * @see org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManager#getCMDocument(java.lang.String, java.lang.String, java.lang.String)
- */
-public CMDocument getCMDocument(String publicId, String systemId, String type)
-  {                
-    CMDocument cmDocument = null;                           
-    String resolvedURI = null;
-
-    if (getPropertyEnabled(PROPERTY_AUTO_LOAD))
-    {
-      // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=136399
-      
-      if (getPropertyEnabled(PROPERTY_PERFORM_URI_RESOLUTION))
-      {
-        resolvedURI = lookupOrCreateResolvedURI(publicId, systemId);
-      }
-      else
-      {
-        resolvedURI = systemId;
-      }
-    }    
-    else
-    {
-      resolvedURI = lookupResolvedURI(publicId);
-    } 
-
-    if (resolvedURI != null)
-    {                   
-      int status = cmDocumentCache.getStatus(resolvedURI);
-      if (status == CMDocumentCache.STATUS_LOADED)
-      {                      
-        cmDocument = cmDocumentCache.getCMDocument(resolvedURI);
-      }   
-      else if (status == CMDocumentCache.STATUS_NOT_LOADED)
-      {     
-        if (getPropertyEnabled(PROPERTY_AUTO_LOAD))
-        {
-          cmDocument = loadCMDocument(publicId, resolvedURI, type, getPropertyEnabled(PROPERTY_ASYNC_LOAD));
-        }
-      }
-    }
-    return cmDocument;   
-  } 
-  
-  public void addCMDocumentReference(String publicId, String systemId, String type)
-  {
-    String resolvedURI = lookupOrCreateResolvedURI(publicId, systemId);
-    if (resolvedURI != null && resolvedURI.length() > 0)
-    {                                                                      
-      int status = cmDocumentCache.getStatus(resolvedURI);
-      if (status == CMDocumentCache.STATUS_NOT_LOADED)
-      {                      
-        loadCMDocument(publicId, resolvedURI, type, getPropertyEnabled(PROPERTY_ASYNC_LOAD));
-      }         
-    } 
-  }
-     
-
-  public void addCMDocument(String publicId, String systemId, String resolvedURI, String type, CMDocument cmDocument)
-  {
-    String key = publicId != null ? publicId : ""; //$NON-NLS-1$
-    publicIdTable.put(key, resolvedURI);
-    cmDocumentCache.putCMDocument(resolvedURI, cmDocument);
-  }
-
-
-  protected CMDocument loadCMDocument(final String publicId, final String resolvedURI, final String type, boolean async)
-  {                                                      
-    CMDocument result = null;
-                         
-    //System.out.println("about to build CMDocument(" + publicId + ", " + unresolvedURI + " = " + resolvedURI + ")");
-    if (async)
-    {     
-      cmDocumentCache.setStatus(resolvedURI, CMDocumentCache.STATUS_LOADING);
-      //Thread thread = new Thread(new AsyncBuildOperation(publicId, resolvedURI, type));
-      //thread.start();
-      Job job = new Job(XMLCoreMessages.loading + resolvedURI)
-      {
-        public boolean belongsTo(Object family)
-        {
-          boolean result = (family == CMDocumentManager.class);
-          return result;
-        }
-        
-        protected IStatus run(IProgressMonitor monitor)
-        {
-          try
-          {
-        	  buildCMDocument(publicId, resolvedURI, type);
-          }
-          catch (Exception e)
-          {
-        	  Logger.logException(e);
-          }
-          return Status.OK_STATUS;
-        }
-      };
-      job.schedule();
-    }
-    else
-    {                
-      result = buildCMDocument(publicId, resolvedURI, type);
-    }          
-    return result;
-  } 
-
-    
-
-  public synchronized CMDocument buildCMDocument(String publicId, String resolvedURI, String type)
-  {                                     
-    cmDocumentCache.setStatus(resolvedURI, CMDocumentCache.STATUS_LOADING);
-  
-    CMDocument result = null;         
-    if (resolvedURI != null && resolvedURI.length() > 0)
-    {
-      // TODO... pass the TYPE thru to the CMDocumentBuilder
-      result = ContentModelManager.getInstance().createCMDocument(resolvedURI, type);
-    }
-    if (result != null)
-    { 
-      // load the annotation files for the document 
-      if (publicId != null)
-      {    
-        AnnotationUtility.loadAnnotationsForGrammar(publicId, result);
-      }
-      cmDocumentCache.putCMDocument(resolvedURI, result);
-    }
-    else
-    {
-      cmDocumentCache.setStatus(resolvedURI, CMDocumentCache.STATUS_ERROR);
-    }
-    return result;
-  } 
-
-  public void removeAllReferences()
-  {
-    // TODO... initiate a timed release of the entries in the CMDocumentCache
-    publicIdTable = new Hashtable();
-  }
-}                                            
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentReferenceImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentReferenceImpl.java
deleted file mode 100644
index f4edabd..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentReferenceImpl.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentReference;
-
-public class CMDocumentReferenceImpl implements CMDocumentReference
-{              
-  protected String systemId;
-  protected String publicId;
-
-  public CMDocumentReferenceImpl(String publicId, String systemId)
-  {
-    this.publicId = publicId;                                    
-    this.systemId = systemId;
-  }
-
-  public String getPublicId()
-  {                          
-    return publicId;
-  }
-
-  public String getSystemId()
-  {                          
-    return systemId;
-  }      
-  
-  public String toString()
-  {
-    return "[" + publicId + ", " + systemId + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/InferredGrammarBuildingCMDocumentLoader.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/InferredGrammarBuildingCMDocumentLoader.java
deleted file mode 100644
index c91e72c..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/InferredGrammarBuildingCMDocumentLoader.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl;
-                          
-import java.util.Hashtable;
-
-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.internal.modelqueryimpl.InferredGrammarFactory;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-
-/**
- *
- */
-public class InferredGrammarBuildingCMDocumentLoader extends CMDocumentLoader
-{     
-  protected CMElementDeclaration inferredCMElementDeclaration;
-  protected CMDocument inferredCMDocument;
-  protected InferredGrammarFactory inferredGrammarFactory;
-  protected Hashtable createdCMDocumentTable;
-
-  public InferredGrammarBuildingCMDocumentLoader(Document document, ModelQuery modelQuery)
-  {                             
-    this(document, modelQuery.getCMDocumentManager());
-  }
-  
-  public InferredGrammarBuildingCMDocumentLoader(Document document, CMDocumentManager cmDocumentManager)
-  {                             
-    super(document, cmDocumentManager);
-    createdCMDocumentTable = new Hashtable();             
-    inferredGrammarFactory = new InferredGrammarFactory();
-  }     
-
-     
-  public void loadCMDocuments()
-  {   
-    //System.out.println("----------loadCMDocuments ------------");          
-    if (inferredGrammarFactory != null)
-    {
-      //long time = System.currentTimeMillis();
-      super.loadCMDocuments();
-      //System.out.println("--- elapsed time (" + count + ") = " + (System.currentTimeMillis() - time));
-      //inferredGrammarFactory.debugPrint(createdCMDocumentTable.values());
-    }
-    
-  }
-
-  public void handleElement(Element element)
-  { 
-    CMElementDeclaration parentInferredCMElementDeclaration = inferredCMElementDeclaration;
-                
-    if (inferredCMDocument == null)
-    {     
-      String cacheKey = "inferred-document";                    //$NON-NLS-1$
-      inferredCMDocument = inferredGrammarFactory.createCMDocument("");   //$NON-NLS-1$
-      cmDocumentManager.addCMDocument("", "", cacheKey, "DTD", inferredCMDocument); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-      createdCMDocumentTable.put(cacheKey, inferredCMDocument);
-    } 
-
-    inferredCMElementDeclaration = inferredGrammarFactory.createCMElementDeclaration(inferredCMDocument, element, false);                             
-     
-    if (parentInferredCMElementDeclaration != null)
-    {
-      inferredGrammarFactory.createCMContent(inferredCMDocument, parentInferredCMElementDeclaration, inferredCMDocument, inferredCMElementDeclaration, false, null);
-    }     
-       
-
-    visitChildNodes(element);   
-           
-    // reset the 'current' state to inital values
-    inferredCMElementDeclaration = parentInferredCMElementDeclaration;
-  }
-  
-
-  public void handleElementNS(Element element)
-  {                             
-    CMDocument parentInferredCMDocument = inferredCMDocument;
-    CMElementDeclaration parentInferredCMElementDeclaration = inferredCMElementDeclaration;
-        
-    inferredCMDocument = null;                                                            
-    inferredCMElementDeclaration = null;
-
-    // by adding the element to the namespaceTable, handleGrammar() will get called for any schema references
-    if (element.getParentNode() != document)
-    {
-      namespaceTable.addElement(element);
-    }
-
-    String prefix = element.getPrefix();
-    String uri = namespaceTable.getURIForPrefix(prefix);
-
-    if (uri == null && element.getParentNode() == document)
-    {
-      // when this is the root element
-      // we need to add an implied "no namespace schema location"
-      uri = "ommitted-namespace"; //$NON-NLS-1$
-      namespaceTable.addNamespaceInfo(prefix, uri, ""); //$NON-NLS-1$
-    }  
-
-    // here's where we update the inferred grammar if required
-    // 
-    boolean createCMElementDeclaration = true;
-          
-    boolean isLocal = (uri == null && prefix == null);         
-    if (isLocal)
-    {          
-      if (parentInferredCMDocument == null)
-      {
-        // this is a local element... and the parent is not inferred (e.g) it has a known grammar
-        // so we don't need to create an element declaration for this element
-        createCMElementDeclaration = false; 
-      }                             
-      else
-      {
-        if (uri == null)
-        {
-          uri = "ommitted-namespace"; //$NON-NLS-1$
-        }
-      }
-    }
-
-    if (createCMElementDeclaration)
-    {            
-      if (isLocal)
-      {
-        inferredCMDocument = parentInferredCMDocument;
-        inferredCMElementDeclaration = inferredGrammarFactory.createCMElementDeclaration(inferredCMDocument, element, true);       
-      }          
-      else
-      {
-        boolean createCMDocument = false;
-
-        String cacheKey = "inferred-document" + uri;  //$NON-NLS-1$
-        inferredCMDocument = (CMDocument)createdCMDocumentTable.get(cacheKey);
-
-        if (inferredCMDocument == null)
-        {
-          // we don't have an inferred document for this uri yet... let's see of we need one
-          int status = cmDocumentManager.getCMDocumentStatus(uri);                                                                                           
-          if (status == CMDocumentCache.STATUS_NOT_LOADED || status == CMDocumentCache.STATUS_ERROR)
-          {                  
-            // the cache does not contain a 'proper' CMDocument for this uri
-            // so we need to create an inferred one
-            createCMDocument = true;
-          } 
-        } 
-                
-        if (createCMDocument)
-        {           
-          //System.out.println("encountered element {" + element.getNodeName() + "} ... creating inferred CMDocument for " + uri);
-          inferredCMDocument = inferredGrammarFactory.createCMDocument(uri);
-          cmDocumentManager.addCMDocument(uri, "", cacheKey, "XSD", inferredCMDocument); //$NON-NLS-1$ //$NON-NLS-2$
-          createdCMDocumentTable.put(cacheKey, inferredCMDocument);
-        }
-
-        if (inferredCMDocument != null)
-        {
-          inferredCMElementDeclaration = inferredGrammarFactory.createCMElementDeclaration(inferredCMDocument, element, false);
-        }                                                                                                                                                   
-      }
-
-      if (parentInferredCMElementDeclaration != null)
-      {
-        inferredGrammarFactory.createCMContent(parentInferredCMDocument, parentInferredCMElementDeclaration, inferredCMDocument, inferredCMElementDeclaration, isLocal, uri);
-      } 
-    }               
-          
-    visitChildNodes(element);
-      
-    // reset the 'current' state to inital values
-    inferredCMElementDeclaration = parentInferredCMElementDeclaration;
-    inferredCMDocument = parentInferredCMDocument;
-  }                                                                                                       
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/ModelQueryActionHelper.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/ModelQueryActionHelper.java
deleted file mode 100644
index b66a0d6..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/ModelQueryActionHelper.java
+++ /dev/null
@@ -1,574 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl;
-
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-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.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-import org.eclipse.wst.xml.core.internal.contentmodel.internal.util.CMValidator;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQueryAction;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-/**
- *
- */
-public class ModelQueryActionHelper
-{
-  protected ModelQueryImpl modelQuery;
-
-  protected static class Action implements ModelQueryAction
-  {
-    public int kind;
-    public int startIndex;
-    public int endIndex;
-    public Node parent;
-    public CMNode cmNode;
-    public Object userData;
-
-    public Action(int kind, Node parent, CMNode cmNode)
-    {
-      this.kind = kind;
-      this.parent = parent;
-      this.cmNode = cmNode;
-    }
-
-    public Action(int kind, Node parent, CMNode cmNode, int startIndex, int endIndex)
-    {
-      this.kind = kind;
-      this.parent = parent;
-      this.cmNode = cmNode;
-      this.startIndex = startIndex;
-      this.endIndex = endIndex;
-    }
-
-    public int getKind()
-    {
-      return kind;
-    }
-
-    public int getStartIndex()
-    {
-      return startIndex;
-    }
-
-    public int getEndIndex()
-    {
-      return endIndex;
-    }
-
-    public Node getParent()
-    {
-      return parent;
-    }
-
-    public CMNode getCMNode()
-    {
-      return cmNode;
-    }
-
-    public Object getUserData()
-    {
-      return userData;
-    }
-
-    public void setUserData(Object object)
-    {
-      userData = object;
-    }
-
-    public void performAction()
-    {
-    }
-  }
-
-
-  public ModelQueryActionHelper(ModelQueryImpl modelQuery)
-  {
-    this.modelQuery = modelQuery;
-  }
-
-
-  public void getAllActions(Element parent, CMElementDeclaration ed, int validityChecking, List actionList)
-  {
-  }
-
-
-  // insert actions
-  //
-  public void getInsertActions(Element parent, CMElementDeclaration ed, int index, int includeOptions, int validityChecking, List actionList)
-  {
-    if ((includeOptions & ModelQuery.INCLUDE_ATTRIBUTES) != 0)
-    {
-      getInsertAttributeActions(parent, ed, validityChecking, actionList);
-    }
-    includeOptions &= ~ModelQuery.INCLUDE_ATTRIBUTES;
-    if ((includeOptions & ModelQuery.INCLUDE_CHILD_NODES) != 0)
-    {
-      if (index != -1)
-      {
-        getInsertChildNodeActionsAtIndex(parent, ed, index, includeOptions, validityChecking, actionList);
-      }
-      else
-      {
-        getInsertChildNodeActions(parent, ed, includeOptions, validityChecking, actionList);
-      }
-    }
-  }
-
-
-
-  protected void getInsertAttributeActions(Element parent, CMElementDeclaration ed, int validityChecking, List actionList)
-  {
-    // get actions for each insertable attribute
-    //
-    List availableAttributeList = modelQuery.getAvailableContent(parent, ed, ModelQuery.INCLUDE_ATTRIBUTES);
-
-    for (Iterator i = availableAttributeList.iterator(); i.hasNext(); )
-    {
-      CMAttributeDeclaration ad = (CMAttributeDeclaration)i.next();
-      if (modelQuery.canInsert(parent, ed, ad, 0, validityChecking))
-      {
-        Action action = new Action(ModelQueryAction.INSERT, parent, ad);
-        actionList.add(action);
-      }
-    }
-  }
-
-
-  protected void getInsertChildNodeActionsAtIndex(Element parent, CMElementDeclaration ed, int index, int includeOptions, int validityChecking, List actionList)
-  {                       
-    // get actions for each insertable attribute
-    //
-    int size = parent.getChildNodes().getLength();
-    if (index <= size)
-    {                                                                                          
-      List contentSpecificationList = modelQuery.getValidator().createContentSpecificationList(parent, ed); 
-      List availableChildNodeList = modelQuery.getAvailableContent(parent, ed, includeOptions);
-
-      boolean isSimpleChoice = isSimpleChoiceGroupContentModel(ed);
-     
-      for (Iterator i = availableChildNodeList.iterator(); i.hasNext(); )
-      {
-        CMNode cmNode = (CMNode)i.next();      
-        if (isSimpleChoice || modelQuery.canInsert(parent, ed, cmNode, index, validityChecking, contentSpecificationList))
-        {
-          Action action = new Action(ModelQueryAction.INSERT, parent, cmNode, index, index);
-          actionList.add(action);
-        }
-      }
-    }
-  }
-                  
- 
-  protected boolean isSimpleChoiceGroupContentModel(CMElementDeclaration ed)
-  {       
-    boolean result = false;
-    CMNode cmNode = ed.getContent();
-    if (cmNode != null && cmNode.getNodeType() == CMNode.GROUP)
-    {
-      CMGroup cmGroup = (CMGroup)cmNode;
-      if (cmGroup.getOperator() == CMGroup.CHOICE && cmGroup.getMaxOccur() == -1)
-      {                   
-        result = true;
-        CMNodeList list = cmGroup.getChildNodes();
-        for (int i = list.getLength() - 1; i >= 0; i--)
-        {
-          if (list.item(i).getNodeType() != CMNode.ELEMENT_DECLARATION)
-          {
-            result = false;
-            break;
-          }
-        }
-      }
-    }
-    return result;
-  }
-
-
-  protected void getInsertChildNodeActions(Element parent, CMElementDeclaration ed, int includeOptions, int validityChecking, List actionList)
-  {
-    int size = parent.getChildNodes().getLength();
-    List contentSpecificationList = modelQuery.getValidator().createContentSpecificationList(parent, ed);
-    List availableChildNodeList = modelQuery.getAvailableContent(parent, ed, includeOptions);
-
-    boolean isSimpleChoice = isSimpleChoiceGroupContentModel(ed);
-
-    for (Iterator iterator = availableChildNodeList.iterator(); iterator.hasNext(); )
-    {
-      CMNode cmNode = (CMNode)iterator.next();
-      for (int i = size; i >= 0; i--)
-      {
-        if (isSimpleChoice || modelQuery.canInsert(parent, ed, cmNode, i, validityChecking, contentSpecificationList))
-        {
-          Action action = new Action(ModelQueryAction.INSERT, parent, cmNode, i, i);
-          actionList.add(action);
-          break;
-        }
-      }
-    }
-  }
-
-  public void getInsertActions(Document parent, CMDocument cmDocument, int index, int includeOptions, int validityChecking, List actionList)
-  {
-    // get the root element and doctype index (if any)
-    //
-    int doctypeIndex = -1;
-    DocumentType doctype = null;
-    Element rootElement = null;
-    NodeList nodeList = parent.getChildNodes();
-    int nodeListLength = nodeList.getLength();
-    for (int i = 0; i < nodeListLength; i++)
-    {
-      Node childNode = nodeList.item(i);
-      if (childNode.getNodeType() == Node.ELEMENT_NODE)
-      {
-        rootElement = (Element)childNode;
-        break;
-      }
-      else if (childNode.getNodeType() == Node.DOCUMENT_TYPE_NODE)
-      {
-        doctype = (DocumentType)childNode;
-        doctypeIndex = i;
-      }
-    }
-
-    // make sure that root elements are only added after the doctype (if any)
-    if (rootElement == null && index > doctypeIndex)
-    {
-      CMNamedNodeMap map = cmDocument.getElements();
-      int mapLength = map.getLength();
-      for (int i = 0; i < mapLength; i++)
-      {
-        CMNode cmNode = map.item(i);
-
-        boolean canAdd = true;
-        if (validityChecking == ModelQuery.VALIDITY_STRICT)
-        {
-          canAdd = doctype == null || doctype.getName().equals(cmNode.getNodeName());
-        }
-
-        if (canAdd)
-        {
-          Action action = new Action(ModelQueryAction.INSERT, parent, cmNode, index, index);
-          actionList.add(action);
-        }
-      }
-    }
-  }
-
-
-
-  public void getInsertChildNodeActionTable(Element parent, CMElementDeclaration ed, int validityChecking, Hashtable actionTable)
-  {
-  }
-
-
-  public void getReplaceActions(Element parent, CMElementDeclaration ed, int includeOptions, int validityChecking, List actionList)
-  {
-    CMValidator.MatchModelNode matchModelNode = modelQuery.getValidator().getMatchModel(ed, parent);
-    if (matchModelNode != null)
-    {
-      MatchModelVisitor visitor = new MatchModelVisitor(parent, actionList);
-      visitor.visitMatchModelNode(matchModelNode);
-    }     
-  }
-
-  public void getReplaceActions(Element parent, CMElementDeclaration ed, List selectedChildren, int includeOptions, int validityChecking, List actionList)
-  {
-    int[] range = getRange(parent, selectedChildren);
-    if (range != null)
-    {                
-      if (isContiguous(parent, range, selectedChildren))
-      {
-        List tempList = new Vector();
-        getReplaceActions(parent, ed, includeOptions, validityChecking, tempList);
-        if ((includeOptions & ModelQuery.INCLUDE_ENCLOSING_REPLACE_ACTIONS) != 0)
-        {
-          removeActionsNotContainingRange(tempList, range[0], range[1]);            
-        }
-        else
-        {
-          removeActionsNotMatchingRange(tempList, range[0], range[1]);    
-        }
-        actionList.addAll(tempList);
-      }
-    }   
-    
-    if (selectedChildren.size() == 1)
-    {
-      Node node = (Node)selectedChildren.get(0);
-      if (node.getNodeType() == Node.ELEMENT_NODE)
-      {        
-        Element childElement = (Element)node;       
-        CMNode childEd = modelQuery.getCMElementDeclaration(childElement);
-        if (childEd != null)
-        {         
-
-          CMNode childOrigin= modelQuery.getOrigin(childElement);
-
-          CMNodeList cmNodeList = childOrigin != null ? 
-                                    (CMNodeList)childOrigin.getProperty("SubstitutionGroup") : //$NON-NLS-1$
-                                    (CMNodeList)childEd.getProperty("SubstitutionGroup"); //$NON-NLS-1$
-
-          if (cmNodeList != null && cmNodeList.getLength() > 1)
-          {                                                 
-            int replaceIndex = getIndex(parent, childElement);
-            String childEdName = childEd.getNodeName();
-            for (int i = 0; i < cmNodeList.getLength(); i++)
-            {         
-              CMNode substitution = cmNodeList.item(i);
-              if (!substitution.getNodeName().equals(childEdName) && !Boolean.TRUE.equals(substitution.getProperty("Abstract"))) //$NON-NLS-1$
-              {
-                Action action = new Action(ModelQueryAction.REPLACE, parent, cmNodeList.item(i), replaceIndex, replaceIndex);
-                actionList.add(action);
-              }
-            }
-          }
-        }
-      }   
-    }
-  }     
-           
-  
-  // returns true if the selected nodes are contiguous
-  //  
-  protected boolean isContiguous(Element parent, int[] range, List selectedNodeList)
-  {         
-    boolean result = true;
-    NodeList nodeList = parent.getChildNodes();
-	// issue: nodeListLength was never read, but in theory, 
-	// nodelList.getLength() might cause some clearing of cached 
-	// data, or something, so leaving in a potential meaningless call, for now.
-    //int nodeListLength = nodeList.getLength();
-	nodeList.getLength();
-    for (int i = range[0]; i < range[1]; i++)
-    {       
-      Node node = nodeList.item(i);    
-      if (!isWhitespaceNode(node) && !selectedNodeList.contains(node))
-      {             
-        result = false;
-        break;
-      }                       
-    }         
-    return result;
-  }
- 
- 
-  protected int[] getRange(Element parent, List list)
-  {
-    int[] result = null;
-    int first = -1;
-    int last = -1;                     
-
-    NodeList nodeList = parent.getChildNodes();
-    int nodeListLength = nodeList.getLength();
-    for (int i = 0; i < nodeListLength; i++)
-    {       
-      Node node = nodeList.item(i);    
-      if (list.contains(node))
-      {             
-        first = (first == -1) ? i : Math.min(first, i);        
-        last = Math.max(last, i);
-      }    
-    }
-   
-    if (first != -1 && last!= -1)
-    {             
-      result = new int[2];
-      result[0] = first;
-      result[1] = last;
-    }   
-    return result;
-  } 
-
-
-  protected boolean isWhitespaceNode(Node node)
-  {
-    return node.getNodeType() == Node.TEXT_NODE &&
-           node.getNodeValue().trim().length() == 0;
-  } 
-
-
-  protected int getIndex(Node parentNode, Node child)
-  {
-    NodeList nodeList = parentNode.getChildNodes();
-    int index = -1;
-    int size = nodeList.getLength();
-    for (int i = 0; i < size; i++)
-    {
-      if (nodeList.item(i) == child)
-      {
-        index = i;
-        break;
-      }
-    }
-    return index;
-  }                    
-
-
-  protected boolean isActionContainingRange(ModelQueryAction action, int startIndex, int endIndex)
-  {
-    int actionStartIndex = action.getStartIndex();
-    int actionEndIndex = action.getEndIndex();
-
-    return (actionStartIndex <= startIndex &&
-            actionEndIndex >= endIndex);
-  } 
-           
-
-  protected boolean isActionMatchingRange(ModelQueryAction action, int startIndex, int endIndex)
-  {
-    int actionStartIndex = action.getStartIndex();
-    int actionEndIndex = action.getEndIndex();
-    return (actionStartIndex == startIndex &&        
-            actionEndIndex == endIndex);
-  } 
-           
-
-  protected void removeActionsNotContainingRange(List actionList, int startIndex, int endIndex)
-  {
-    for (int i = actionList.size() - 1; i >= 0; i--)
-    {
-      ModelQueryAction action = (ModelQueryAction)actionList.get(i);
-      if (!isActionContainingRange(action, startIndex, endIndex))
-      {
-        actionList.remove(i);
-      }
-    }
-  }
-
-
-  protected void removeActionsNotMatchingRange(List actionList, int startIndex, int endIndex)
-  {
-    for (int i = actionList.size() - 1; i >= 0; i--)
-    {
-      ModelQueryAction action = (ModelQueryAction)actionList.get(i);
-      if (!isActionMatchingRange(action, startIndex, endIndex))
-      {
-        actionList.remove(i);
-      }
-    }
-  }
-
-
-  public static class MatchModelVisitor
-  {
-    int indent;
-    int elementIndex;
-    Node parent;
-    List actionList;
-
-    public MatchModelVisitor(Node parent, List actionList)
-    {
-      this.parent = parent;
-      this.actionList = actionList;
-    }
-
-    public int indexOfNextElement(int start)
-    {
-      NodeList nodeList = parent.getChildNodes();
-      int length = nodeList.getLength();
-      int result = length;
-      for (int i = start; i < length; i++)
-      {
-        Node node = nodeList.item(i);
-        if (node.getNodeType() == Node.ELEMENT_NODE)
-        {
-          result = i;
-          break;
-        }
-      }
-      return result;
-    }
-
-    public void visitMatchModelNode(CMValidator.MatchModelNode matchModelNode)
-    {
-      int startIndex = indexOfNextElement(elementIndex);
-
-      //String cmNodeName = matchModelNode.cmNode != null ? matchModelNode.cmNode.getNodeName() : "null";
-      //printIndented(indent, "+MatchModelNode : " + cmNodeName +  " " + startIndex);
-
-      indent += 2;
-      for (Iterator iterator = matchModelNode.children.iterator(); iterator.hasNext(); )
-      {
-        CMValidator.MatchModelNode child = (CMValidator.MatchModelNode)iterator.next();
-        visitMatchModelNode(child);
-      }
-      indent -= 2;
-
-      if (matchModelNode.cmNode != null)
-      {
-        int nodeType = matchModelNode.cmNode.getNodeType();
-        if (nodeType == CMNode.GROUP)
-        {
-          CMGroup group = (CMGroup)matchModelNode.cmNode;
-          if (group.getOperator() == CMGroup.CHOICE)
-          {
-            addReplaceActions(matchModelNode, group, startIndex, elementIndex - 1);
-          }
-        }
-        else if (nodeType == CMNode.ELEMENT_DECLARATION)
-        {
-          elementIndex = startIndex + 1;
-        }
-        //printIndented(indent, "-MatchModelNode : " + cmNodeName +  " " + (elementIndex - 1));
-      }
-    }
-
-    public void addReplaceActions(CMValidator.MatchModelNode matchModelNode, CMGroup group, int startIndex, int endIndex)
-    {
-      CMNode excludeCMNode = null;
-      if (matchModelNode.children.size() > 0)
-      {
-        CMValidator.MatchModelNode child = (CMValidator.MatchModelNode)matchModelNode.children.get(0);
-        excludeCMNode = child.cmNode;
-      }
-
-      CMNodeList nodeList = group.getChildNodes();
-      int size = nodeList.getLength();
-      for (int i = 0; i < size; i++)
-      {
-        CMNode alternative = nodeList.item(i);
-        if (alternative != excludeCMNode)
-        {
-          Action action = new Action(ModelQueryAction.REPLACE, parent, alternative, startIndex, endIndex);
-          actionList.add(action);
-        }
-      }
-    }
-  }
-
-  //public static void printIndented(int indent, String string)
-  //{
-  //  for (int i = 0; i < indent; i++)
-  //  {
-  //    System.out.print(" ");
-  //  }
-  //  System.out.println(string);
-  //}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/ModelQueryImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/ModelQueryImpl.java
deleted file mode 100644
index 436d8ff..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/ModelQueryImpl.java
+++ /dev/null
@@ -1,856 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAnyElement;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-import org.eclipse.wst.xml.core.internal.contentmodel.internal.modelqueryimpl.ModelQueryExtensionManagerImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.internal.util.CMDataTypeValueHelper;
-import org.eclipse.wst.xml.core.internal.contentmodel.internal.util.DOMValidator;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQueryAssociationProvider;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.extension.ModelQueryExtensionManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMVisitor;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceHelper;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceTable;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.Text;
-
-
-/**
- * This class implements a large portion of the ModelQuery interfaces.
- * Some work is delegated to the DOMHelper, CMDocumentManager, and DOMValidator.
- */
-public class ModelQueryImpl implements ModelQuery
-{
-  protected ModelQueryAssociationProvider modelQueryAssociationProvider;
-  protected ModelQueryActionHelper modelQueryActionHelper;
-  protected DOMValidator validator;   
-  protected ModelQueryExtensionManagerImpl extensionManager;   
-  protected CMDataTypeValueHelper valueHelper;
-  protected int editMode = EDIT_MODE_CONSTRAINED_STRICT;
-
-  public ModelQueryImpl(ModelQueryAssociationProvider modelQueryAssociationProvider)
-  {
-    this.modelQueryAssociationProvider = modelQueryAssociationProvider;
-    modelQueryActionHelper = createModelQueryActionHelper();
-    validator = new DOMValidator();                         
-    extensionManager = new ModelQueryExtensionManagerImpl();
-    valueHelper = new CMDataTypeValueHelper();
-  }
-                         
-  public int getEditMode()
-  {
-    return editMode;
-  }
-                    
-  public void setEditMode(int editMode)
-  {
-    this.editMode =editMode;
-  }
-
-
-  // factory methods
-  public ModelQueryActionHelper createModelQueryActionHelper()
-  {
-    return new ModelQueryActionHelper(this);
-  } 
-
-  public DOMValidator getValidator()
-  {
-    return validator;
-  }
-
-  public CMDocument getCorrespondingCMDocument(Node node)
-  {
-    return modelQueryAssociationProvider.getCorrespondingCMDocument(node);
-  }
-
-  public CMNode getCMNode(Node node)
-  {
-    return modelQueryAssociationProvider.getCMNode(node);
-  }
-
-  public CMDataType getCMDataType(Text text)
-  {
-    return modelQueryAssociationProvider.getCMDataType(text);
-  }
-
-  public CMAttributeDeclaration getCMAttributeDeclaration(Attr attr)
-  {
-    return modelQueryAssociationProvider.getCMAttributeDeclaration(attr);
-  }
-
-  public CMElementDeclaration getCMElementDeclaration(Element element)
-  {
-    return modelQueryAssociationProvider.getCMElementDeclaration(element);
-  }
-   
-  public CMDocumentManager getCMDocumentManager()
-  {
-    CMDocumentManager result = null;
-    if (modelQueryAssociationProvider instanceof XMLAssociationProvider)
-    {             
-      XMLAssociationProvider xmlAssociationProvider = (XMLAssociationProvider)modelQueryAssociationProvider;
-      result = xmlAssociationProvider.getCMDocumentManager();
-    }    
-    return result;
-  }
-       
-
-  /**
-   * @deprected - use 3 arg version below
-   */
-  public List getCMDocumentList(Element element, String uri)
-  {        
-    return Collections.EMPTY_LIST;
-  }
-
-  public List getCMDocumentList(Element element, CMElementDeclaration ed, String uri)
-  {                
-    List result = new Vector();
-    if (modelQueryAssociationProvider instanceof XMLAssociationProvider)
-    {              
-      XMLAssociationProvider xmlAssociationProvider = (XMLAssociationProvider)modelQueryAssociationProvider;
-     
-      // todo... revist... handle each ##thing explicitly
-      //          
-      if (uri == null)
-      {
-        uri = "##any"; //$NON-NLS-1$
-      }               
-
-      if (uri.equals("##targetNamespace")) //$NON-NLS-1$
-      {                                                      
-        CMDocument cmDocument = (CMDocument)ed.getProperty("CMDocument"); //$NON-NLS-1$
-        if (cmDocument != null)
-        {  
-          result.add(cmDocument);
-        }
-      }
-      else if (uri.equals("##any") || uri.equals("##other")) //$NON-NLS-1$ //$NON-NLS-2$
-      {                                        
-        String excludedURI = null;
-        if (uri.equals("##other")) //$NON-NLS-1$
-        {
-          CMDocument cmDocument = (CMDocument)ed.getProperty("CMDocument");        //$NON-NLS-1$
-          if (cmDocument != null)
-          {
-            excludedURI = (String)cmDocument.getProperty("http://org.eclipse.wst/cm/properties/targetNamespaceURI"); //$NON-NLS-1$
-          }
-        }
-                               
-        // in this case we should consider all of the schema related to this document
-        //
-        NamespaceTable namespaceTable = new NamespaceTable(element.getOwnerDocument());
-        namespaceTable.addElementLineage(element);
-        List list = namespaceTable.getNamespaceInfoList();
-        for (Iterator i = list.iterator(); i.hasNext();)
-        {
-          NamespaceInfo info = (NamespaceInfo)i.next();
-          if (info.uri != null && !info.uri.equals(excludedURI))
-          {
-            CMDocument document = xmlAssociationProvider.getCMDocument(info.uri, info.locationHint, "XSD"); //$NON-NLS-1$
-            if (document != null)
-            {
-              result.add(document);
-            }
-          }
-        }
-      }   
-      else
-      {        
-        CMDocument document = xmlAssociationProvider.getCMDocument(element, uri);
-        if (document != null)
-        {
-          result.add(document);
-        }
-      }      
-    }
-    return result;
-  }
-
-
-  public CMDocument getCMDocument(Element element, String uri)
-  {                
-
-    CMDocument result = null;
-    if (modelQueryAssociationProvider instanceof XMLAssociationProvider)
-    {             
-      XMLAssociationProvider xmlAssociationProvider = (XMLAssociationProvider)modelQueryAssociationProvider;
-      result = xmlAssociationProvider.getCMDocument(element, uri);
-    }
-    //ContentModelManager.println("ModelQueryImpl.getCMDocument(" + element.getNodeName() + ", " + uri + ") = " + result);
-    return result;
-  }
-
-  public boolean isContentValid(Element element)
-  {               
-    CMElementDeclaration ed = getCMElementDeclaration(element);
-    return isContentValid(ed, element);
-  }
-
-  public boolean isContentValid(CMElementDeclaration ed, Element element)
-  {                                               
-    boolean result = true;    
-    if (ed != null)
-    { 
-      // first check to see if all the required attributes are present
-      //                                                      
-      CMNamedNodeMap map = ed.getAttributes();
-      int mapLength = map.getLength();
-      for (int i = 0; i < mapLength; i++)
-      {                                                           
-        CMAttributeDeclaration ad = (CMAttributeDeclaration)map.item(i);
-        String attributeName = DOMNamespaceHelper.computeName(ad, element, null);
-        if (ad.getUsage() == CMAttributeDeclaration.REQUIRED)
-        {               
-           Attr attr = element.getAttributeNode(attributeName);
-           if (attr == null)
-           {
-             result = false;
-             break;
-           }
-        }
-      }
-
-      // now check to see of the children validate properly
-      //
-      if (result) 
-      {
-        CMNode[] originArray = getOriginArray(element);
-        result = originArray != null && originArray.length == element.getChildNodes().getLength();
-      }
-    }
-    return result;
-  }
-
-
-  public CMNode getOrigin(Node node)
-  {
-    CMNode result = null;
-    // todo... make sure parent is right
-    //
-    Node parentNode = getParentOrOwnerNode(node);
-    if (parentNode != null && parentNode.getNodeType() == Node.ELEMENT_NODE)
-    {
-      Element parentElement = (Element)parentNode;
-      CMNode[] array = getOriginArray(parentElement);
-      if (array != null)
-      {
-        int index = getIndexOfNode(parentElement.getChildNodes(), node);
-        if (index < array.length)
-        {
-          result = array[index];
-        }
-      }
-    }
-    return result;
-  }
-
-  public CMNode[] getOriginArray(Element element)
-  {
-    CMElementDeclaration ed = getCMElementDeclaration(element);
-    return (ed != null) ? getValidator().getOriginArray(ed, element) : null;
-  }
-
-  public int getIndexOfNode(NodeList nodeList, Node node)
-  {
-    int result = -1;
-    int size = nodeList.getLength();
-    for (int i = 0; i < size; i++)
-    {
-       if (nodeList.item(i) == node)
-       {
-         result = i;
-         break;
-       }
-    }
-    return result;
-  }
-
-
-  /**
-   * Returns a list of all CMNode 'meta data' that may be potentially added to the element.
-   */
-  public List getAvailableContent(Element element, CMElementDeclaration ed, int includeOptions)
-  {
-    AvailableContentCMVisitor visitor = new AvailableContentCMVisitor(element, ed);
-    List list = visitor.computeAvailableContent(includeOptions);
-    if (extensionManager != null)
-    {                    
-      extensionManager.filterAvailableElementContent(list, element, ed, includeOptions);
-    }  
-    return list;
-  }  
-
-
-  public boolean canInsert(Element parent, CMNode cmNode, int index, int validityChecking)
-  {
-    boolean result = true;
-    CMElementDeclaration ed = getCMElementDeclaration(parent);
-    if (ed != null)
-    {
-      result = canInsert(parent, ed, cmNode, index, validityChecking);
-    }
-    return result;
-  }
-
-
-  public boolean canInsert(Element parent, CMElementDeclaration ed, CMNode cmNode, int index, int validityChecking)
-  {
-    return canInsert(parent, ed, cmNode, index, validityChecking, null);
-  }         
-
-  protected boolean canInsert(Element parent, CMElementDeclaration ed, CMNode cmNode, int index, int validityChecking, Object reuseableData)
-  {
-    boolean result = true;
-    switch (cmNode.getNodeType())
-    {
-      case CMNode.ATTRIBUTE_DECLARATION :
-      {
-        String attributeName = DOMNamespaceHelper.computeName(cmNode, parent, null);
-        result = parent.getAttributeNode(attributeName) == null;
-        break;
-      }
-      case CMNode.ELEMENT_DECLARATION :
-      case CMNode.GROUP :
-      {
-        if (validityChecking == VALIDITY_STRICT)
-        {                                  
-          // create list                       
-          List contentSpecificationList = null;
-          if (reuseableData != null)
-          {                            
-            contentSpecificationList = (List)reuseableData;
-          }    
-          else
-          {                                                                                  
-            contentSpecificationList = getValidator().createContentSpecificationList(parent, ed);
-          }
-          result = getValidator().canInsert(ed, contentSpecificationList, index, cmNode);
-        }
-        break;
-      }
-      case CMNode.DATA_TYPE :
-      {
-        int contentType = ed.getContentType();
-        result = (contentType == CMElementDeclaration.MIXED ||
-                  contentType == CMElementDeclaration.PCDATA ||
-                  contentType == CMElementDeclaration.ANY);
-        break;
-      }
-      default :
-      {
-        result = false;
-        break;
-      }
-    }
-    return result;
-  }
-
-  public boolean canInsert(Element parent, List cmNodeList, int index, int validityChecking)
-  {
-    // todo
-    return true;
-  }
-
-
-  public boolean canRemove(Node node, int validityChecking)
-  {
-    boolean result = true;      
-    if (validityChecking == VALIDITY_STRICT)
-    {
-      int nodeType = node.getNodeType();
-      switch (nodeType)
-      {
-        case Node.ATTRIBUTE_NODE:
-        {
-          CMAttributeDeclaration ad = getCMAttributeDeclaration((Attr)node);
-          if (ad != null)
-          {
-            result = (ad.getUsage() == CMAttributeDeclaration.OPTIONAL);
-          }
-          break;
-        }
-        case Node.ELEMENT_NODE:
-        {
-          Node parentNode = node.getParentNode();
-          if (parentNode.getNodeType() == Node.ELEMENT_NODE)
-          {
-            Element parentElement = (Element)parentNode;
-            CMElementDeclaration ed = getCMElementDeclaration(parentElement);
-            if (ed != null)
-            {
-              List contentSpecificationList = getValidator().createContentSpecificationList(parentElement, ed);
-              int index = getIndexOfNode(parentElement.getChildNodes(), node);
-              result = getValidator().canRemove(ed, contentSpecificationList, index);
-            }
-          }
-          break;
-        }
-      }
-    }
-    return result;
-  }
-
-
-  public boolean canRemove(List nodeList, int validityChecking)
-  {
-    boolean result = true;
-
-    if (validityChecking == VALIDITY_STRICT)
-    {
-      Element parentElement = null;
-      List childList = null;
-
-      for (Iterator i = nodeList.iterator(); i.hasNext(); )
-      {
-        Node node = (Node)i.next();
-
-        if (parentElement == null)
-        {
-          parentElement = getParentOrOwnerElement(node);
-        }
-        else if (parentElement != getParentOrOwnerElement(node))
-        {
-          // make sure the parent are the same
-          result = false;
-          break;
-        }
-
-        if (parentElement == null)
-        {
-          result = true;
-          break;
-        }
-
-        int nodeType = node.getNodeType();
-        if (nodeType == Node.ATTRIBUTE_NODE)
-        {
-          if (!canRemove(node, validityChecking))
-          {
-            result = false;
-            break;
-          }
-        }
-        else
-        {
-          if (childList == null)
-          {
-            childList = nodeListToList(parentElement.getChildNodes());
-          }
-          childList.remove(node);
-        }
-      }
-
-      if (result && childList != null)
-      {
-        CMElementDeclaration ed = getCMElementDeclaration(parentElement);
-        if (ed != null)
-        {                                
-          List contentSpecificationList = getValidator().createContentSpecificationList(childList, ed);
-          result = getValidator().isValid(ed, contentSpecificationList);
-        }
-      }
-    }
-
-    return result;
-  }
-
-  public boolean canReplace(Element parent, int startIndex, int endIndex, CMNode cmNode, int validityChecking)
-  {
-    return true;
-  }
-
-  public boolean canReplace(Element parent, int startIndex, int endIndex, List cmNodeList, int validityChecking)
-  {
-    return true;
-  }     
-   
-  /**
-   * This method is experimental... use at your own risk
-   */
-  public boolean canWrap(Element childElement, CMElementDeclaration wrapElement, int validityChecking)
-  {                        
-    boolean result = true;  
-    Node parentNode = childElement.getParentNode();                      
-    if (parentNode.getNodeType() == Node.ELEMENT_NODE)
-    {           
-      Element parentElement = (Element)parentNode;      
-      CMElementDeclaration parentEd = getCMElementDeclaration(parentElement);
-      if (parentEd != null)
-      {                                                                                         
-        if (validityChecking == VALIDITY_STRICT)
-        {
-          int index = getIndexOfNode(parentElement.getChildNodes(), childElement);
-
-          List contentSpecificationList = getValidator().createContentSpecificationList(parentElement, parentEd);
-          List subList = contentSpecificationList.subList(index, index + 1);
-          result = getValidator().canReplace(parentEd, contentSpecificationList, index, index, wrapElement);
-          if (result)
-          {
-            result = getValidator().isValid(wrapElement, subList);
-          }
-        }
-      }
-    }
-    else
-    {
-      result = false;
-    }                
-    return result;
-  }
-
-  public void getInsertActions(Element parent, CMElementDeclaration ed, int index, int includeOptions, int validityChecking, List actionList)
-  {
-    modelQueryActionHelper.getInsertActions(parent, ed, index, includeOptions, validityChecking, actionList);
-  }
-
-  public void getInsertActions(Document parent, CMDocument cmDocument, int index, int includeOptions, int validityChecking, List actionList)
-  {
-    modelQueryActionHelper.getInsertActions(parent, cmDocument, index, includeOptions, validityChecking, actionList);
-  }
-
-  public void getReplaceActions(Element parent, CMElementDeclaration ed, int includeOptions, int validityChecking, List actionList)
-  {
-    modelQueryActionHelper.getReplaceActions(parent, ed, includeOptions, validityChecking, actionList);
-  }                     
-
-  public void getReplaceActions(Element parent, CMElementDeclaration ed, List selectedChildren, int includeOptions, int validityChecking, List actionList)
-  {
-    modelQueryActionHelper.getReplaceActions(parent, ed, selectedChildren, includeOptions, validityChecking, actionList);
-  }
-
-  public void getInsertChildNodeActionTable(Element parent, CMElementDeclaration ed, int validityChecking, Hashtable actionTable)
-  {
-    modelQueryActionHelper.getInsertChildNodeActionTable(parent, ed, validityChecking, actionTable);
-  }
-
-  public void getActionTable(Element parent, CMElementDeclaration ed, int index, int validityChecking, Hashtable actionTable)
-  {
-    //modelQueryActionHelper.getAllActions(parent, ed, validityChecking, actionList);
-  }
-
-
-  // some helper methods
-  //
-  protected Node getParentOrOwnerNode(Node node)
-  {
-    return (node.getNodeType() == Node.ATTRIBUTE_NODE) ?
-           ((Attr)node).getOwnerElement() :
-           node.getParentNode();
-  }
-
-  protected Element getParentOrOwnerElement(Node node)
-  {
-    Node parent = getParentOrOwnerNode(node);
-    return (parent.getNodeType() == Node.ELEMENT_NODE) ? (Element)parent : null;
-  }
-               
-
-  protected List nodeListToList(NodeList nodeList)
-  {
-    int size = nodeList.getLength();
-    Vector v = new Vector(size);
-    for (int i = 0; i < size; i++)
-    {
-      v.add(nodeList.item(i));
-    }
-    return v;
-  }   
-   
-  /**
-  protected List getCMNodeList(NodeList nodeList)
-  {
-    int size = nodeList.getLength();
-    Vector v = new Vector(size);
-    for (int i = 0; i < size; i++)
-    {
-      v.add(getCMNode(nodeList.item(i));
-    }
-    return v;
-  }
-  */  
-
-  public class AvailableContentCMVisitor extends CMVisitor
-  {
-    public Hashtable childNodeTable = new Hashtable();
-    public Hashtable attributeTable = new Hashtable();
-    public Element rootElement;
-    public CMElementDeclaration rootElementDeclaration; 
-    public boolean isRootVisited;
-    protected boolean includeSequenceGroups;
-
-    public AvailableContentCMVisitor(Element rootElement, CMElementDeclaration rootElementDeclaration)
-    {                                     
-      this.rootElement = rootElement;
-      this.rootElementDeclaration = rootElementDeclaration;
-    }
-
-    protected String getKey(CMNode cmNode)
-    {
-      String key = cmNode.getNodeName();
-      CMDocument cmDocument = (CMDocument)cmNode.getProperty("CMDocument"); //$NON-NLS-1$
-      if (cmDocument != null)
-      {                         
-        String namespaceURI = (String)cmDocument.getProperty("http://org.eclipse.wst/cm/properties/targetNamespaceURI");    //$NON-NLS-1$
-        if (namespaceURI != null)
-        {   
-          key = "[" + namespaceURI + "]" + key; //$NON-NLS-1$ //$NON-NLS-2$
-        }
-      }
-      return key;
-    }
-    
-    protected void addToTable(Hashtable table, CMNode cmNode)
-    {
-      String nodeName = cmNode.getNodeName();
-      if (nodeName != null && nodeName.length() > 0)
-      {  
-        table.put(getKey(cmNode), cmNode);
-      }  
-    }
-
-    public List computeAvailableContent(int includeOptions)
-    {                   
-      Vector v = new Vector();  
-
-      int contentType = rootElementDeclaration.getContentType();
-      includeSequenceGroups = ((includeOptions & INCLUDE_SEQUENCE_GROUPS) != 0);
-      visitCMNode(rootElementDeclaration);
-      
-      if ((includeOptions & INCLUDE_ATTRIBUTES) != 0)
-      {
-        v.addAll(attributeTable.values());
-        CMAttributeDeclaration nillableAttribute = (CMAttributeDeclaration)rootElementDeclaration.getProperty("http://org.eclipse.wst/cm/properties/nillable"); //$NON-NLS-1$
-        if (nillableAttribute != null)
-        {
-          v.add(nillableAttribute);
-        }
-      }  
-
-      if ((includeOptions & INCLUDE_CHILD_NODES) != 0)
-      {      
-        if (contentType == CMElementDeclaration.MIXED ||
-            contentType == CMElementDeclaration.ELEMENT)
-        {
-          v.addAll(childNodeTable.values());
-        }
-        else if (contentType == CMElementDeclaration.ANY)
-        {      
-          CMDocument cmDocument =  (CMDocument)rootElementDeclaration.getProperty("CMDocument"); //$NON-NLS-1$
-          if (cmDocument != null)
-          {
-            CMNamedNodeMap elements = cmDocument.getElements();            
-            for (Iterator i = elements.iterator(); i.hasNext(); )
-            {
-              v.add(i.next());
-            } 
-          }
-        }
-              
-        if (contentType == CMElementDeclaration.MIXED ||
-            contentType == CMElementDeclaration.PCDATA || 
-            contentType == CMElementDeclaration.ANY)
-        {
-          CMDataType dataType = rootElementDeclaration.getDataType();
-          if (dataType != null)
-          {
-            v.add(dataType);
-          }                                       
-        }
-      }
-      return v;
-    }   
-
-    public void visitCMAnyElement(CMAnyElement anyElement)
-    {            
-      String uri = anyElement.getNamespaceURI();                          
-      List list = getCMDocumentList(rootElement, rootElementDeclaration, uri);
-      for (Iterator iterator = list.iterator(); iterator.hasNext(); )
-      {
-        CMDocument cmdocument = (CMDocument)iterator.next();
-        if (cmdocument != null)
-        {                          
-          CMNamedNodeMap map = cmdocument.getElements();
-          int size = map.getLength();
-          for (int i = 0; i < size; i++)
-          {                       
-            CMNode ed = map.item(i);                  
-            addToTable(childNodeTable,ed);
-          }        
-        }                
-      }
-    }
-
-    public void visitCMAttributeDeclaration(CMAttributeDeclaration ad)
-    {
-      super.visitCMAttributeDeclaration(ad);
-      attributeTable.put(ad.getNodeName(), ad);
-    }
-
-    public void visitCMElementDeclaration(CMElementDeclaration ed)
-    {
-      if (ed == rootElementDeclaration && !isRootVisited)
-      {
-        isRootVisited = true;
-        super.visitCMElementDeclaration(ed);
-      }
-      else
-      {                                                                                  
-        if (!Boolean.TRUE.equals(ed.getProperty("Abstract"))) //$NON-NLS-1$
-        {
-          addToTable(childNodeTable,ed);
-        }
-
-        CMNodeList substitutionGroup = (CMNodeList)ed.getProperty("SubstitutionGroup"); //$NON-NLS-1$
-        if (substitutionGroup != null)
-        {
-          handleSubstitutionGroup(substitutionGroup);
-        }
-      }
-    }                                              
-
-    protected void handleSubstitutionGroup(CMNodeList substitutionGroup)
-    {
-      int substitutionGroupLength = substitutionGroup.getLength();
-      if (substitutionGroupLength > 1)
-      {
-        for (int i = 0; i < substitutionGroupLength; i++)
-        {
-          CMNode ed = substitutionGroup.item(i);
-          if (!Boolean.TRUE.equals(ed.getProperty("Abstract"))) //$NON-NLS-1$
-          {
-            addToTable(childNodeTable,ed);
-          }
-        }
-      }
-    }
-
-    public void visitCMGroup(CMGroup group)
-    {
-      if (includeSequenceGroups)
-      {
-        if (group.getOperator() == CMGroup.SEQUENCE &&
-            group.getChildNodes().getLength() > 1 &&
-            includesRequiredContent(group))
-        {                                        
-          childNodeTable.put(group, group);
-        }
-      }  
-      super.visitCMGroup(group);
-    }   
-
-    public boolean includesRequiredContent(CMGroup group)
-    {
-      List list = getValidator().createContentSpecificationList(group);
-      return list.size() > 1;
-    }
-  }    
-
- 
-  /**
-   * @deprected - use getPossibleDataTypeValues()
-   */
-  public List getDataTypeValues(Element element, CMNode cmNode)
-  {                                                                             
-    return Arrays.asList(getPossibleDataTypeValues(element, cmNode));
-  }
-  
-  /**
-   * This methods return an array of possible values corresponding to the datatype of the CMNode (either an CMAttributeDeclaration or a CMElementDeclaration)
-   */
-  public String[] getPossibleDataTypeValues(Element element, CMNode cmNode)
-  {
-    List list = new Vector();                            
-                               
-    if (cmNode != null)
-    {       
-      CMDataType dataType = null;
-      if (cmNode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION)
-      {
-        dataType = ((CMAttributeDeclaration)cmNode).getAttrType();
-      }
-      else if (cmNode.getNodeType() == CMNode.ELEMENT_DECLARATION)
-      {
-        dataType = ((CMElementDeclaration)cmNode).getDataType();
-      }         
-     
-      String[] enumeratedValues = dataType != null ? dataType.getEnumeratedValues() : null;      
-      if (enumeratedValues != null)
-      {
-        for (int i = 0; i < enumeratedValues.length; i++)
-        {
-          list.add(enumeratedValues[i]);
-        } 
-      }                              
-    }
-                         
-    addValuesForXSIType(element, cmNode, list);
-    
-    if (extensionManager != null)
-    {                    
-      list.addAll(extensionManager.getDataTypeValues(element, cmNode));
-    }          
-                        
-    int listSize = list.size();
-    String[] result = new String[listSize];
-    for (int i = 0; i < listSize; i++)
-    {
-      result[i] = (String)list.get(i);
-    }     
-    return result;
-  }    
-
-           
-  protected void addValuesForXSIType(Element element, CMNode cmNode, List list)
-  {               
-    if (cmNode != null && cmNode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) 
-    {                         
-      CMAttributeDeclaration ad = (CMAttributeDeclaration)cmNode;                              
-      if (valueHelper.isXSIType(ad))
-      {             
-        NamespaceTable table = new NamespaceTable(element.getOwnerDocument());
-        table.addElementLineage(element);
-        list.addAll(valueHelper.getQualifiedXSITypes(ad, table));     
-      }
-    }
-  }
-    
-
-  public ModelQueryExtensionManager getExtensionManager()
-  {
-    return extensionManager;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/SimpleAssociationProvider.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/SimpleAssociationProvider.java
deleted file mode 100644
index de5242f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/SimpleAssociationProvider.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQueryCMProvider;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-/**
- *
- */
-public class SimpleAssociationProvider extends BaseAssociationProvider
-{
-  protected ModelQueryCMProvider modelQueryCMProvider;
-          
-  public SimpleAssociationProvider(ModelQueryCMProvider modelQueryCMProvider)
-  {                                              
-    this.modelQueryCMProvider = modelQueryCMProvider;
-  }
-
-  public CMDocument getCorrespondingCMDocument(Node node)
-  {
-    return modelQueryCMProvider.getCorrespondingCMDocument(node);
-  }
-  
-  public CMElementDeclaration getCMElementDeclaration(Element element)
-  {
-    CMElementDeclaration result = null;
-    CMDocument cmDocument = getCorrespondingCMDocument(element);
-    if (cmDocument != null)
-    {        
-      result = (CMElementDeclaration)cmDocument.getElements().getNamedItem(element.getNodeName());    
-    }
-    return result;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/XMLAssociationProvider.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/XMLAssociationProvider.java
deleted file mode 100644
index 9e20be6..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/XMLAssociationProvider.java
+++ /dev/null
@@ -1,403 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentReferenceProvider;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceHelper;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceTable;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-/**
- *
- */
-public abstract class XMLAssociationProvider extends BaseAssociationProvider implements CMDocumentReferenceProvider
-{              
-  protected CMDocumentCache cmDocumentCache; 
-  protected CMDocumentManagerImpl documentManager;
-
-  public XMLAssociationProvider(CMDocumentCache cmDocumentCache)
-  {
-    this.cmDocumentCache = cmDocumentCache; 
-    documentManager = new CMDocumentManagerImpl(cmDocumentCache, this);
-  }                              
-
-  public CMDocumentManager getCMDocumentManager()
-  {
-    return documentManager;
-  }
- 
-      
-  public static String[] getDoctypeInfo(Document document)
-  {   
-    String[] result = null;
-    DocumentType doctype = document.getDoctype();
-
-    // defect 206833 ... here we test for DTDs that are declared inline
-    // since we currently have no way of making use of inline DTDs we ingore them
-    // so that the implict DTD (if any) can be used
-    if (doctype != null && (doctype.getPublicId() != null || doctype.getSystemId() != null))
-    {
-      result = new String[2];
-      result[0] = doctype.getPublicId();
-      result[1] = doctype.getSystemId();
-    }   
-    else if (getImplictDoctype(document) != null)
-    {
-      result = getImplictDoctype(document);
-    }                  
-    return result;
-  }   
-
-
-  protected static String[] getImplictDoctype(Document document)
-  { 
-    String[] result = null;
-    /*
-    DOMExtension domExtension = DOMExtensionProviderRegistry.getInstance().getDOMExtension(document);
-    if (domExtension != null)
-    {
-      result = domExtension.getImplicitDoctype();
-    }*/
-    return result;
-  }
-
-  public CMDocument getCorrespondingCMDocument(Node node)
-  {        
-    return getCorrespondingCMDocument(node, true);
-  }
-
-  protected CMDocument getCorrespondingCMDocument(Node node, boolean getDocumentFromCMNode)
-  {            
-    CMDocument result = null;
-    try
-    {
-      Document document = node.getNodeType() == Node.DOCUMENT_NODE ? (Document)node : node.getOwnerDocument();
-   
-      String[] doctypeInfo = getDoctypeInfo(document);
-
-      if (doctypeInfo != null)
-      {
-        result = getCMDocument(doctypeInfo[0], doctypeInfo[1], "DTD"); //$NON-NLS-1$
-      }                                             
-      // defect 211236 ... in some cases calling this method can result in a cycle
-      // we use the getDocumentFromCMNode as a flag to avoid this 
-      // TODO... see if there is a way to re-organize to avoid the need for this flag
-      else if (getDocumentFromCMNode)
-      {
-        CMNode cmNode = getCMNode(node);
-        if (cmNode != null)       
-        {                
-          // todo... add a getCMDocument() methods to CMNode
-          // for now use the getProperty interface
-          result = (CMDocument)cmNode.getProperty("CMDocument"); //$NON-NLS-1$
-        }
-      }
-    }
-    catch (Exception e)
-    {
-      Logger.logException("exception locating CMDocument for " + node, e); //$NON-NLS-1$
-    }
-    return result;
-  }    
-
-      
-  public CMDocument getCMDocument(Element element, String uri)
-  {
-    CMDocument result = null;
-    NamespaceTable namespaceTable = new NamespaceTable(element.getOwnerDocument());
-    namespaceTable.addElementLineage(element);
-    NamespaceInfo namespaceInfo = namespaceTable.getNamespaceInfoForURI(uri);
-    if (namespaceInfo != null)
-    {
-      result = getCMDocument(namespaceInfo.uri, namespaceInfo.locationHint, "XSD"); //$NON-NLS-1$
-    }
-    return result;
-  }         
-  
-                          
-  public CMDocument getCMDocument(String publicId, String systemId, String type)
-  {                   
-    //String resolvedGrammarURI = resolveGrammarURI(document, publicId, systemId);
-    return documentManager.getCMDocument(publicId, systemId, type);  
-  }
-
-  //public CMDocument getCMDocument(Document document, String publicId, String systemId)
-  //{                   
-  //  //String resolvedGrammarURI = resolveGrammarURI(document, publicId, systemId);
-  //  return documentManager.getCMDocument(publicId, systemId);  
-  //}
-   
-  public String resolveGrammarURI(String publicId, String systemId)
-  {
-    return resolveGrammarURI(null, publicId, systemId);
-  }
-
-
-  /**
-   * This method should be specialized in order to implement specialized uri resolution
-   */
-  protected String resolveGrammarURI(Document document, String publicId, String systemId)
-  {
-    return systemId;
-  }
-  
-
-  public CMElementDeclaration getCMElementDeclaration(Element element)
-  { 
-    CMElementDeclaration result = null; 
-    Document document = element.getOwnerDocument();
-    String[] doctypeInfo = getDoctypeInfo(document);
-    if (doctypeInfo != null)
-    {   
-      // we have detected doctype information so we assume that we can locate the CMElementDeclaration 
-      // in the CMDocument's table of global elements 
-      CMDocument cmDocument = getCorrespondingCMDocument(element, false);
-
-      // TODO... consider replacing above with 
-      // CMDocument cmDocument = getCMDocument(document, doctypeInfo[0], doctypeInfo[1]);
-
-      if (cmDocument != null)
-      {        
-        result = (CMElementDeclaration)cmDocument.getElements().getNamedItem(element.getNodeName());    
-                 
-        // this is a hack to get our xsl code assist working... we might want to handle similar
-        // grammar behaviour via some established model query setting 
-        if (result == null && getImplictDoctype(document) != null)
-        {         
-          Node parent = element.getParentNode();
-          if (parent != null && parent.getNodeType() == Node.ELEMENT_NODE)
-          {
-            result = getCMElementDeclaration((Element)parent);
-          }
-        }
-      }
-    }    
-    else
-    {  
-      // here we use a namespaceTable to consider if the root element has any namespace information
-      //
-      NamespaceTable namespaceTable = new NamespaceTable(element.getOwnerDocument());
-      List list = NamespaceTable.getElementLineage(element);
-      Element rootElement = (Element)list.get(0);
-      namespaceTable.addElement(rootElement);
-         
-      if (namespaceTable.isNamespaceEncountered())
-      {                                         
-        // we assume that this is an XMLSchema style namespace aware document
-        result = getCMElementDeclaration(element, list, namespaceTable);
-      }
-      else
-      { 
-        // we assume that this is an inferred CMDocument for a DTD style 'namespaceless' document
-        CMDocument cmDocument = getCMDocument("", "", "DTD"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        if (cmDocument != null)
-        {
-          result = (CMElementDeclaration)cmDocument.getElements().getNamedItem(element.getNodeName()); 
-        }
-      }
-    }             
-    return result;
-  } 
-     
-
-  protected CMElementDeclaration getCMElementDeclaration(Element targetElement, List list, NamespaceTable namespaceTable)
-  {         
-    CMElementDeclaration currentED = null;
-    try
-    {    
-      int listSize = list.size();
-      for (int i = 0; i < listSize; i++)
-      {
-        Element element = (Element)list.get(i);                                     
-                    
-        if (i != 0)
-        {
-          namespaceTable.addElement(element);                        
-        }
-
-        String nodeName = element.getNodeName();
-        String unprefixedName = DOMNamespaceHelper.getUnprefixedName(nodeName);
-        String prefix = DOMNamespaceHelper.getPrefix(nodeName);
- 
-        CMElementDeclaration ed = null;
- 
-        // see if the element is a local of the currentED
-        //             
-        if (currentED != null)
-        {  
-          ed = (CMElementDeclaration)currentED.getLocalElements().getNamedItem(unprefixedName);
-        } 
-                                                                   
-        if (ed == null) 
-        {               
-          NamespaceInfo namespaceInfo = namespaceTable.getNamespaceInfoForPrefix(prefix);                   
-          if (namespaceInfo != null) 
-          {
-            CMDocument cmDocument = getCMDocument(namespaceInfo.uri, namespaceInfo.locationHint, "XSD"); //$NON-NLS-1$
-            if (cmDocument != null)
-            { 
-              ed = (CMElementDeclaration)cmDocument.getElements().getNamedItem(unprefixedName);   
-            }                                        
-          }
-        }                                                   
-        currentED = ed;     
-
-        // handle XSIType     
-        if (currentED != null)
-        {
-          CMElementDeclaration derivedED = getDerivedCMElementDeclaration(element, currentED, namespaceTable);
-          if (derivedED != null)
-          {                           
-            currentED = derivedED;
-          }    
-        }
-      }                                       
-    }
-    catch (Exception e)
-    { 
-      Logger.logException("exception locating element declaration for " + targetElement, e); //$NON-NLS-1$
-    } 
-  
-    return currentED;
-  }  
-      
-
-  protected CMElementDeclaration getDerivedCMElementDeclaration(Element element, CMElementDeclaration ed, NamespaceTable namespaceTable)
-  {                      
-    CMElementDeclaration result = null;
-    String xsiPrefix = namespaceTable.getPrefixForURI("http://www.w3.org/2001/XMLSchema-instance"); //$NON-NLS-1$
-    if (xsiPrefix != null)
-    {
-      String xsiTypeValue = element.getAttribute(xsiPrefix + ":type"); //$NON-NLS-1$
-      if (xsiTypeValue != null)
-      {  
-        String typePrefix = DOMNamespaceHelper.getPrefix(xsiTypeValue);
-        String typeName = DOMNamespaceHelper.getUnprefixedName(xsiTypeValue);
-        String typeURI = namespaceTable.getURIForPrefix(typePrefix);
-        String uriQualifiedTypeName = typeName;
-        if (typeURI != null && typeURI.length() > 0) 
-        {
-          uriQualifiedTypeName = "[" +  typeURI + "]" + typeName; //$NON-NLS-1$ //$NON-NLS-2$
-        }
-        result = (CMElementDeclaration)ed.getProperty("DerivedElementDeclaration=" + uriQualifiedTypeName);   //$NON-NLS-1$
-      }
-    }                                                                                                    
-    return result;
-  }   
-
-
-  public CMAttributeDeclaration getCMAttributeDeclaration(Attr attr)
-  {
-    CMAttributeDeclaration result = null;
-    Element element = attr.getOwnerElement();
-    if (element != null)
-    {
-      CMElementDeclaration ed = getCMElementDeclaration(element);
-      if (ed != null)
-      {                                                
-        result = (CMAttributeDeclaration)ed.getAttributes().getNamedItem(attr.getName());
-        if (result == null)
-        {                                              
-          // try to get the unprefixed name             
-          String name = DOMNamespaceHelper.getUnprefixedName(attr.getName());
-          result = (CMAttributeDeclaration)ed.getAttributes().getNamedItem(name);
-        }                                                                        
-        if (result == null)
-        {
-          // todo... perhaps this is a globally defined attribute... 
-        }
-      }
-    }
-    return result;
-  }               
-
-  /**
-   * This method returns a list of CMDocumentReferences associated with a particular node or subtree
-   */                                                                                                          
-  public List getCMDocumentReferences(Node node, boolean deep)
-  { 
-    List result = new ArrayList();  
-    Document document = (node.getNodeType() == Node.DOCUMENT_NODE) ? (Document)node : node.getOwnerDocument();
-    DocumentType doctype = document.getDoctype();
-    // defect 206833 ... here we test for DTDs that are declared inline
-    // since we currently have no way of making use of inline DTDs we ingore them
-    // so that the implict DTD (if any) can be used
-    if (doctype != null && (doctype.getPublicId() != null || doctype.getSystemId() != null))
-    {                                                                               
-      String uri = resolveGrammarURI(document, doctype.getPublicId(), doctype.getSystemId());
-      result.add(new CMDocumentReferenceImpl(doctype.getPublicId(), uri));
-    }   
-    else if (getImplictDoctype(document) != null)
-    {                  
-      String[] implicitDoctype = getImplictDoctype(document);
-      String uri = resolveGrammarURI(document, implicitDoctype[0], implicitDoctype[1]);
-      result.add(new CMDocumentReferenceImpl(implicitDoctype[0], uri));
-    }                              
-    else
-    {   
-      NamespaceTable namespaceTable = new NamespaceTable(document);
-      if (node.getNodeType() == Node.ELEMENT_NODE)
-      {
-		    namespaceTable.addElement((Element)node);
-      }                                     
-      if (deep)
-      {
-        addChildElementsToNamespaceTable(node, namespaceTable);
-      }
-	    List list = namespaceTable.getNamespaceInfoList();
-		  for (Iterator i = list.iterator(); i.hasNext();) 
-      {
-			  NamespaceInfo info = (NamespaceInfo) i.next();    
-        String uri = resolveGrammarURI(document, info.uri, info.locationHint);
-        result.add(new CMDocumentReferenceImpl(info.uri, uri));
-		  }	
-    } 
-    return result;
-  }
-
-  protected void addChildElementsToNamespaceTable(Node node, NamespaceTable namespaceTable)
-  {
-    NodeList nodeList = node.getChildNodes();
-	  if (nodeList != null) 
-    {
-		  int nodeListLength = nodeList.getLength();
-		  for (int i = 0; i < nodeListLength; i++) 
-      {
-			  Node childNode = nodeList.item(i);
-        if (childNode.getNodeType() == Node.ELEMENT_NODE)
-        {   
-          namespaceTable.addElement((Element)childNode);
-          addChildElementsToNamespaceTable(childNode, namespaceTable);
-        }
-		  }
-	  }
-  }  
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDescriptionBuilder.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDescriptionBuilder.java
deleted file mode 100644
index f1cc690..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDescriptionBuilder.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.util;
-
-import java.util.Stack;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAnyElement;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-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.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-
-public class CMDescriptionBuilder extends CMVisitor
-{
-  protected StringBuffer sb;
-  protected CMNode root;
-  protected boolean isRootVisited;
-  protected Stack visitedCMGroupStack = new Stack();
-
-  public String buildDescription(CMNode node)
-  {
-    sb = new StringBuffer();
-    root = node;
-    isRootVisited = false;
-    visitCMNode(node);
-    return sb.toString();
-  }       
-
-  public void visitCMAnyElement(CMAnyElement anyElement)
-  {
-    sb.append("namespace:uri=\"" + anyElement.getNamespaceURI() + "\""); //$NON-NLS-1$ //$NON-NLS-2$
-  }
-
-  public void visitCMDataType(CMDataType dataType)
-  {
-    sb.append("#PCDATA"); //$NON-NLS-1$
-  }
-
-  public void visitCMDocument(CMDocument document)
-  {
-    CMNamedNodeMap map = document.getElements();
-    int size = map.getLength();
-    for (int i = 0; i < size; i++)
-    {
-      visitCMNode(map.item(i));
-    }
-  }
-
-  public void visitCMGroup(CMGroup group)
-  {
-    // This is to prevent recursion.
-    if (visitedCMGroupStack.contains(group))
-    {
-      return;
-    }
-    int op = group.getOperator();
-    if (op == CMGroup.ALL)
-    {
-      sb.append("all"); //$NON-NLS-1$
-    }
-
-    sb.append("("); //$NON-NLS-1$
-
-    String separator = ", "; //$NON-NLS-1$
-
-    if (op == CMGroup.CHOICE)
-    {
-      separator = " | "; //$NON-NLS-1$
-    }
-    
-    // Push the current group to check later to avoid potential recursion
-    visitedCMGroupStack.push(group);
-   
-    CMNodeList nodeList = group.getChildNodes();
-    int size = nodeList.getLength();
-    for (int i = 0; i < size; i++)
-    {
-      visitCMNode(nodeList.item(i));
-      if (i < size - 1)
-      {
-        sb.append(separator);
-      }
-    }
-    
-    // Pop the current group
-    visitedCMGroupStack.pop();
-    
-    sb.append(")"); //$NON-NLS-1$
-    addOccurenceSymbol(group);
-  }
-
-  public void visitCMElementDeclaration(CMElementDeclaration ed)
-  {
-    if (ed == root && !isRootVisited)
-    {
-      isRootVisited = true;
-      CMContent content = ed.getContent();
-      if (content != null)
-      {
-        if (content.getNodeType() != CMNode.GROUP)
-        {
-          sb.append("("); //$NON-NLS-1$
-          visitCMNode(content);
-          sb.append(")"); //$NON-NLS-1$
-        }
-        else
-        {
-          visitCMNode(content);
-        }
-      }
-    }
-    else
-    {
-      sb.append(ed.getElementName());
-      addOccurenceSymbol(ed);
-    }
-  }
-
-  public void addOccurenceSymbol(CMContent content)
-  {
-    int min = content.getMinOccur();
-    int max = content.getMaxOccur();
-    if (min == 0)
-    {
-      if (max > 1 || max == -1)
-      {
-        sb.append("*"); //$NON-NLS-1$
-      }
-      else
-      {
-        sb.append("?"); //$NON-NLS-1$
-      }
-    }
-    else if (max > 1 || max == -1)
-    {
-      sb.append("+"); //$NON-NLS-1$
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDocumentCache.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDocumentCache.java
deleted file mode 100644
index 670ff53..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDocumentCache.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.util;
-
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-
-
-
-/**
- *
- */
-public class CMDocumentCache
-{                                     
-  public static final int STATUS_NOT_LOADED = 0;
-  public static final int STATUS_LOADING    = 2;
-  public static final int STATUS_LOADED     = 3;
-  public static final int STATUS_ERROR      = 4;
-
-  protected class Entry
-  {
-    public String uri;
-    public int status = STATUS_NOT_LOADED;
-    public float progress;
-    public CMDocument cmDocument;
-
-    public Entry(String uri)
-    {                      
-      this.uri = uri;         
-    }
-
-    public Entry(String uri, int status, CMDocument cmDocument)
-    {                                     
-      this.uri = uri;
-      this.status = status;      
-      this.cmDocument = cmDocument;
-    }
-  }
-
-  protected Hashtable hashtable;
-  protected List listenerList = new Vector();
-
-
-  /**
-   * temporarily public until caching problem is solved
-   */
-  public CMDocumentCache()
-  {
-    hashtable = new Hashtable();
-  }
-
-  public void addListener(CMDocumentCacheListener listener)
-  {
-    listenerList.add(listener);
-  }
-
-  public void removeListener(CMDocumentCacheListener listener)
-  {
-    listenerList.remove(listener);
-  }   
-
-  /**
-   *
-   */
-  public CMDocument getCMDocument(String grammarURI)
-  {
-    CMDocument result = null;
-    if (grammarURI != null)
-    {  
-      Entry entry = (Entry)hashtable.get(grammarURI);
-      if (entry != null)
-      {
-        result = entry.cmDocument;
-      }   
-    }
-    return result;
-  }    
-
-  /**
-   *
-   */
-  public int getStatus(String grammarURI)
-  {
-    int result = STATUS_NOT_LOADED;
-    if (grammarURI != null)
-    {  
-      Entry entry = (Entry)hashtable.get(grammarURI);
-      if (entry != null)
-      {
-        result = entry.status;
-      }      
-      
-    }
-    return result;
-  }            
-            
-  /**
-   *
-   */
-  protected Entry lookupOrCreate(String grammarURI)
-  {
-    Entry entry = (Entry)hashtable.get(grammarURI);
-    if (entry == null)
-    {
-      entry = new Entry(grammarURI);                       
-      hashtable.put(grammarURI, entry);
-    }
-    return entry;
-  }
-
-    
-  /**
-   *
-   */
-  public void putCMDocument(String grammarURI, CMDocument cmDocument)
-  {                                    
-    if (grammarURI != null && cmDocument != null)
-    {                           
-      Entry entry = lookupOrCreate(grammarURI);
-      int oldStatus = entry.status;
-      entry.status = STATUS_LOADED;
-      entry.cmDocument = cmDocument;  
-      notifyCacheUpdated(grammarURI, oldStatus, entry.status, entry.cmDocument);  
-    }
-  }
-     
-  /**
-   *
-   */
-  public void setStatus(String grammarURI, int status)
-  {
-    if (grammarURI != null)
-    {
-      Entry entry = lookupOrCreate(grammarURI);
-      int oldStatus = entry.status;
-      entry.status = status;
-      notifyCacheUpdated(grammarURI, oldStatus, entry.status, entry.cmDocument);   
-    }
-  }
-     
-  /**
-   *
-   */
-  public void clear()
-  {
-    hashtable.clear();
-    notifyCacheCleared();
-  }  
-
-  /**
-   *
-   */
-  protected void notifyCacheUpdated(String uri, int oldStatus, int newStatus, CMDocument cmDocument)
-  {      
-    List list = new Vector();
-    list.addAll(listenerList);
-    for (Iterator i = list.iterator(); i.hasNext(); )
-    {
-      CMDocumentCacheListener listener = (CMDocumentCacheListener)i.next();
-      listener.cacheUpdated(this, uri, oldStatus, newStatus, cmDocument);
-    }
-  }
-
-  /**
-   *
-   */
-  protected void notifyCacheCleared()
-  {     
-    List list = new Vector();
-    list.addAll(listenerList);
-    for (Iterator i = list.iterator(); i.hasNext(); )
-    {
-      CMDocumentCacheListener listener = (CMDocumentCacheListener)i.next();
-      listener.cacheCleared(this);
-    }
-  }
-  
-  public List getCMDocuments()
-  {
-  	List list = new ArrayList();  	
-  	for (Iterator i = hashtable.values().iterator(); i.hasNext(); )
-  	{
-  		Entry entry = (Entry)i.next();
-  		list.add(entry.cmDocument);
-  	}
-  	return list;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDocumentCacheListener.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDocumentCacheListener.java
deleted file mode 100644
index d9f6dcd..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDocumentCacheListener.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.util;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-
-
-/**
- * todo... add more interface methods
- */
-public interface CMDocumentCacheListener
-{
-  /** Tells the client that the cache has been cleared.
-   *  This gives clients an opportunity to flush any state that depends on the CMDocument
-   *  since this CMDocument will be recomputed on a subsequent 'lookup' request
-   */
-  public void cacheCleared(CMDocumentCache cache); 
-
-  /** 
-   *  Tells the client that the cache has been updated.  
-   */
-  public void cacheUpdated(CMDocumentCache cache, String uri, int oldStatus, int newStatus, CMDocument cmDocument);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMVisitor.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMVisitor.java
deleted file mode 100644
index fc4f35d..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMVisitor.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.util;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAnyElement;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-
-public class CMVisitor
-{
-  protected int indent = 0;
-
-  public void visitCMNode(CMNode node)
-  {
-    if (node != null)
-    {
-      //ContentModelManager.printlnIndented("visitCMNode : " + node.getNodeName() + " " + node);
-      indent += 2;
-      int nodeType = node.getNodeType();
-      switch (nodeType)
-      {
-        case CMNode.ANY_ELEMENT :
-        {
-          visitCMAnyElement((CMAnyElement)node);
-          break;
-        }
-        case CMNode.ATTRIBUTE_DECLARATION :
-        {
-          visitCMAttributeDeclaration((CMAttributeDeclaration)node);
-          break;
-        }
-        case CMNode.DATA_TYPE :
-        {
-          visitCMDataType((CMDataType)node);
-          break;
-        }
-        case CMNode.DOCUMENT :
-        {
-          visitCMDocument((CMDocument)node);
-          break;
-        }
-        case CMNode.ELEMENT_DECLARATION :
-        {
-          visitCMElementDeclaration((CMElementDeclaration)node);
-          break;
-        }
-        case CMNode.GROUP :
-        {
-          visitCMGroup((CMGroup)node);
-          break;
-        }
-      }
-      indent -= 2;
-    }
-  }
-      
-  public void visitCMAnyElement(CMAnyElement anyElement)
-  {
-  }
-
-  public void visitCMAttributeDeclaration(CMAttributeDeclaration ad)
-  {
-  }
-
-  public void visitCMDataType(CMDataType dataType)
-  {
-  }
-
-  public void visitCMDocument(CMDocument document)
-  {
-    CMNamedNodeMap map = document.getElements();
-    int size = map.getLength();
-    for (int i = 0; i < size; i++)
-    {
-      visitCMNode(map.item(i));
-    }
-  }
-
-  public void visitCMGroup(CMGroup group)
-  {
-    CMNodeList nodeList = group.getChildNodes();
-    int size = nodeList.getLength();
-    for (int i = 0; i < size; i++)
-    {
-      visitCMNode(nodeList.item(i));
-    }
-  }
-
-  public void visitCMElementDeclaration(CMElementDeclaration ed)
-  {
-    CMNamedNodeMap nodeMap = ed.getAttributes();
-    int size = nodeMap.getLength();
-    for (int i = 0; i < size; i++)
-    {
-      visitCMNode(nodeMap.item(i));
-    }
-
-    visitCMNode(ed.getContent());
-
-    visitCMDataType(ed.getDataType());
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/ContentBuilder.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/ContentBuilder.java
deleted file mode 100644
index 14d02b1..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/ContentBuilder.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.util;
-
-import java.util.Vector;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAnyElement;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.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.CMNodeList;
-
-                   
-/**
- * This class lets you traverse a 'CM' model providing callbacks to build content.
- */
-public class ContentBuilder extends CMVisitor
-{
-  public static final int BUILD_ALL_CONTENT = 1;
-  public static final int BUILD_ONLY_REQUIRED_CONTENT = 2;
-  protected int buildPolicy = BUILD_ALL_CONTENT;
-
-  protected boolean alwaysVisit;
-  protected Vector visitedCMElementDeclarationList = new Vector();
-
-  public ContentBuilder()
-  {
-  }
-                
-  public void setBuildPolicy(int buildPolicy)
-  {
-    this.buildPolicy = buildPolicy;
-  }
-
-  public int getBuildPolicy()
-  {
-    return buildPolicy;
-  }                
-           
-  protected void createAnyElementNode(CMAnyElement anyElement)
-  {
-  }
-
-  protected void createElementNodeStart(CMElementDeclaration ed)
-  {      
-  }
-
-  protected void createElementNodeEnd(CMElementDeclaration ed)
-  {
-  }
-
-  protected void createTextNode(CMDataType dataType)
-  {
-  } 
-
-  protected void createAttributeNode(CMAttributeDeclaration attribute)
-  {
-  } 
- 
-  public void visitCMElementDeclaration(CMElementDeclaration ed)
-  {
-    int forcedMin = (buildPolicy == BUILD_ALL_CONTENT || alwaysVisit) ? 1 : 0;
-    int min = Math.max(ed.getMinOccur(), forcedMin);                          
-    alwaysVisit = false;
-
-    if (min > 0 && !visitedCMElementDeclarationList.contains(ed))
-    {
-      visitedCMElementDeclarationList.add(ed);
-      for (int i = 1; i <= min; i++)
-      {       
-        createElementNodeStart(ed);       
-        
-        // instead of calling super.visitCMElementDeclaration()
-        // we duplicate the code with some minor modifications
-        CMNamedNodeMap nodeMap = ed.getAttributes();
-        int size = nodeMap.getLength();
-        for (int j = 0; j < size; j++)
-        {
-          visitCMNode(nodeMap.item(j));
-        }
-
-        CMContent content = ed.getContent();
-        if (content != null)
-        {
-          visitCMNode(content);
-        }
-
-        if (ed.getContentType() == CMElementDeclaration.PCDATA)
-        {
-          CMDataType dataType = ed.getDataType();
-          if (dataType != null)
-          {
-            visitCMDataType(dataType);
-          }
-        }
-        // end duplication
-        createElementNodeEnd(ed);  
-      }
-      int size = visitedCMElementDeclarationList.size();
-      visitedCMElementDeclarationList.remove(size - 1);
-    }
-  }
-    
-
-  public void visitCMDataType(CMDataType dataType)
-  {
-    createTextNode(dataType);   
-  }
-
-
-  public void visitCMGroup(CMGroup e)
-  { 
-    int forcedMin = (buildPolicy == BUILD_ALL_CONTENT || alwaysVisit) ? 1 : 0;
-    int min = Math.max(e.getMinOccur(), forcedMin);                          
-    alwaysVisit = false;
-
-    for (int i = 1; i <= min; i++)
-    {   
-      if (e.getOperator() == CMGroup.CHOICE)
-      {
-        // add only 1 element from the group
-        // todo... perhaps add something other than the first one        
-        CMNodeList nodeList = e.getChildNodes();
-        if (nodeList.getLength() > 0)
-        {
-          visitCMNode(nodeList.item(0));
-        }
-      }
-      else // SEQUENCE, ALL
-      {
-        // visit all of the content
-        super.visitCMGroup(e);
-      }
-    }
-  } 
-
-  public void visitCMAttributeDeclaration(CMAttributeDeclaration ad)
-  {
-    if (alwaysVisit ||
-        buildPolicy == BUILD_ALL_CONTENT ||
-        ad.getUsage() == CMAttributeDeclaration.REQUIRED)
-    {
-      createAttributeNode(ad);      
-    }
-  }                     
-  
-
-  public void visitCMAnyElement(CMAnyElement anyElement)
-  {  
-    int forcedMin = (buildPolicy == BUILD_ALL_CONTENT || alwaysVisit) ? 1 : 0;
-    alwaysVisit = false; 
-    int min = Math.max(anyElement.getMinOccur(), forcedMin);                          
-    for (int i = 1; i <= min; i++)
-    {                                
-      createAnyElementNode(anyElement);
-    }
-  }     
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMContentBuilder.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMContentBuilder.java
deleted file mode 100644
index 9d23576..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMContentBuilder.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.util;
-
-import java.util.List;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.w3c.dom.Node;
-
-
-public interface DOMContentBuilder
-{
-  public static final int BUILD_OPTIONAL_ATTRIBUTES = 1;
-  public static final int BUILD_OPTIONAL_ELEMENTS = 1<<1;
-  public static final int BUILD_FIRST_CHOICE = 1<<2;
-  public static final int BUILD_TEXT_NODES = 1<<3;
-  public static final int BUILD_FIRST_SUBSTITUTION = 1<<4;
-  
-  public static final int 
-    BUILD_ONLY_REQUIRED_CONTENT =
-      BUILD_FIRST_CHOICE
-      | BUILD_TEXT_NODES;
-  public static final int 
-    BUILD_ALL_CONTENT = 
-      BUILD_OPTIONAL_ATTRIBUTES 
-      | BUILD_OPTIONAL_ELEMENTS 
-      | BUILD_FIRST_CHOICE
-      | BUILD_TEXT_NODES;
-      
-  public static final String PROPERTY_BUILD_BLANK_TEXT_NODES = "buildBlankTextNodes"; //$NON-NLS-1$
-  
-  public void setBuildPolicy(int buildPolicy);
-  public int  getBuildPolicy();
-  public void setProperty(String propertyName, Object value);
-  public Object getProperty(String propertyName);
-  public List getResult();
-  public void build(Node parent, CMNode child);
-  public void createDefaultRootContent(CMDocument cmDocument, CMElementDeclaration rootCMElementDeclaration) throws Exception;
-  public void createDefaultRootContent(CMDocument cmDocument, CMElementDeclaration rootCMElementDeclaration, List namespaceInfoList) throws Exception;
-  public void createDefaultContent(Node parent, CMElementDeclaration ed) throws Exception;
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMContentBuilderImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMContentBuilderImpl.java
deleted file mode 100644
index 532a484..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMContentBuilderImpl.java
+++ /dev/null
@@ -1,602 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.util;
-
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Stack;
-import java.util.Vector;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAnyElement;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-import org.eclipse.wst.xml.core.internal.contentmodel.ContentModelManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.internal.util.CMDataTypeValueHelper;
-import org.w3c.dom.Attr;
-import org.w3c.dom.DOMImplementation;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.ProcessingInstruction;
-import org.w3c.dom.Text;
-
-
-/**
- * todo... common up this code with 'ContentBuilder'
- */
-public class DOMContentBuilderImpl extends CMVisitor implements DOMContentBuilder {
-	protected int buildPolicy = BUILD_ALL_CONTENT;
-	protected Hashtable propertyTable = new Hashtable();
-
-	protected boolean alwaysVisit = false;
-	protected List resultList;
-	protected Document document;
-	protected Node currentParent;
-	protected Node topParent;
-	protected Vector visitedCMElementDeclarationList = new Vector();
-	protected boolean attachNodesToParent = true;
-	protected NamespaceTable namespaceTable;
-
-	protected List namespaceInfoList;
-	protected Element rootElement; // this is used only teporarily via
-									// createDefaultRootContent
-	protected ExternalCMDocumentSupport externalCMDocumentSupport;
-
-	public boolean supressCreationOfDoctypeAndXMLDeclaration;
-
-	protected CMDataTypeValueHelper valueHelper = new CMDataTypeValueHelper();
-
-	protected int numOfRepeatableElements = 1;
-	protected Stack cmGroupStack = new Stack();
-
-	public interface ExternalCMDocumentSupport {
-		public CMDocument getCMDocument(Element element, String uri);
-	}
-
-	public void setExternalCMDocumentSupport(ExternalCMDocumentSupport externalCMDocumentSupport) {
-		this.externalCMDocumentSupport = externalCMDocumentSupport;
-	}
-
-	public DOMContentBuilderImpl(Document document) {
-		this.document = document;
-		namespaceTable = new NamespaceTable(document);
-	}
-
-	public void setBuildPolicy(int buildPolicy) {
-		this.buildPolicy = buildPolicy;
-	}
-
-	public int getBuildPolicy() {
-		return buildPolicy;
-	}
-
-	protected boolean buildAllContent(int policy) {
-		return (policy & BUILD_ALL_CONTENT) == BUILD_ALL_CONTENT;
-	}
-
-	protected boolean buildOptionalElements(int policy) {
-		return (policy & BUILD_OPTIONAL_ELEMENTS) == BUILD_OPTIONAL_ELEMENTS;
-	}
-
-	protected boolean buildOptionalAttributes(int policy) {
-		return (policy & BUILD_OPTIONAL_ATTRIBUTES) == BUILD_OPTIONAL_ATTRIBUTES;
-	}
-
-	protected boolean buildFirstChoice(int policy) {
-		return (policy & BUILD_FIRST_CHOICE) == BUILD_FIRST_CHOICE;
-	}
-
-	protected boolean buildTextNodes(int policy) {
-		return (policy & BUILD_TEXT_NODES) == BUILD_TEXT_NODES;
-	}
-
-	protected boolean buildFirstSubstitution(int policy) {
-		return (policy & BUILD_FIRST_SUBSTITUTION) == BUILD_FIRST_SUBSTITUTION;
-	}
-
-	public List getResult() {
-		return resultList;
-	}
-
-	public void setProperty(String propertyName, Object value) {
-		propertyTable.put(propertyName, value);
-	}
-
-	public Object getProperty(String propertyName) {
-		return propertyTable.get(propertyName);
-	}
-
-	public void build(Node parent, CMNode child) {
-		resultList = new Vector();
-		topParent = parent;
-		currentParent = parent;
-		if (parent instanceof Element) {
-			namespaceTable.addElementLineage((Element) parent);
-		}
-		attachNodesToParent = false;
-		alwaysVisit = true;
-		visitCMNode(child);
-	}
-
-	public void createDefaultRootContent(CMDocument cmDocument, CMElementDeclaration rootCMElementDeclaration, List namespaceInfoList) throws Exception {
-		this.namespaceInfoList = namespaceInfoList;
-		createDefaultRootContent(cmDocument, rootCMElementDeclaration);
-	}
-
-	public void createDefaultRootContent(CMDocument cmDocument, CMElementDeclaration rootCMElementDeclaration) throws Exception {
-		String grammarFileName = cmDocument.getNodeName();
-		if (!supressCreationOfDoctypeAndXMLDeclaration) {
-			// TODO cs... investigate to see if this code path is ever used,
-			// doesn't seem to be
-			// for now I'm setting the encoding to UTF-8 just incase this code
-			// path is used somewhere
-			//
-			String piValue = "version=\"1.0\""; //$NON-NLS-1$
-			String encoding = "UTF-8"; //$NON-NLS-1$
-			piValue += " encoding=\"" + encoding + "\""; //$NON-NLS-1$ //$NON-NLS-2$      
-			ProcessingInstruction pi = document.createProcessingInstruction("xml", piValue); //$NON-NLS-1$
-			document.appendChild(pi);
-
-			// if we have a 'dtd' then add a DOCTYPE tag
-			//
-			if (grammarFileName != null && grammarFileName.endsWith("dtd")) //$NON-NLS-1$
-			{
-				DOMImplementation domImpl = document.getImplementation();
-				DocumentType documentType = domImpl.createDocumentType(rootCMElementDeclaration.getElementName(), grammarFileName, grammarFileName);
-				document.appendChild(documentType);
-			}
-		}
-
-		// if we have a schema add an xsi:schemaLocation attribute
-		//
-		if (grammarFileName != null && grammarFileName.endsWith("xsd") && namespaceInfoList != null) //$NON-NLS-1$
-		{
-			DOMNamespaceInfoManager manager = new DOMNamespaceInfoManager();
-			String name = rootCMElementDeclaration.getNodeName();
-			if (namespaceInfoList.size() > 0) {
-				NamespaceInfo info = (NamespaceInfo) namespaceInfoList.get(0);
-				if (info.prefix != null && info.prefix.length() > 0) {
-					name = info.prefix + ":" + name; //$NON-NLS-1$
-				}
-			}
-			rootElement = createElement(rootCMElementDeclaration, name, document);
-			manager.addNamespaceInfo(rootElement, namespaceInfoList, true);
-		}
-		createDefaultContent(document, rootCMElementDeclaration);
-	}
-
-	public void createDefaultContent(Node parent, CMElementDeclaration ed) {
-		currentParent = parent;
-		alwaysVisit = true;
-		visitCMElementDeclaration(ed);
-	}
-
-	public String computeName(CMNode cmNode, Node parent) {
-		String prefix = null;
-		return DOMNamespaceHelper.computeName(cmNode, parent, prefix, namespaceTable);
-	}
-
-	// overide the following 'create' methods to control how nodes are created
-	//
-	protected Element createElement(CMElementDeclaration ed, String name, Node parent) {
-		return document.createElement(name);
-	}
-
-	protected Attr createAttribute(CMAttributeDeclaration ad, String name, Node parent) {
-		return document.createAttribute(name);
-	}
-
-	protected Text createTextNode(CMDataType dataType, String value, Node parent) {
-		return document.createTextNode(value);
-	}
-
-	protected void handlePushParent(Element parent, CMElementDeclaration ed) {
-	}
-
-	protected void handlePopParent(Element element, CMElementDeclaration ed) {
-	}
-
-	// The range must be between 1 and 99.
-	public void setNumOfRepeatableElements(int i) {
-		numOfRepeatableElements = i;
-	}
-
-	protected int getNumOfRepeatableElements() {
-		return numOfRepeatableElements;
-	}
-
-	public void visitCMElementDeclaration(CMElementDeclaration ed) {
-		int forcedMin = (buildOptionalElements(buildPolicy) || alwaysVisit) ? 1 : 0;
-		int min = Math.max(ed.getMinOccur(), forcedMin);
-
-		// Correct the min value if the element is contained in
-		// a group.
-		if (!cmGroupStack.isEmpty()) {
-			CMGroup group = (CMGroup) cmGroupStack.peek();
-			int gmin = group.getMinOccur();
-			if (gmin == 0)
-				if (buildOptionalElements(buildPolicy)) { 
-					/* do nothing: min = min */
-				}
-				else {
-					min = min * gmin; // min = 0
-				}
-			else {
-				min = min * gmin;
-			}
-		}
-
-		int max = Math.min(ed.getMaxOccur(), getNumOfRepeatableElements());
-		if (max < min)
-			max = min;
-
-		alwaysVisit = false;
-
-		// Note - ed may not be abstract but has substitutionGroups
-		// involved.
-		if (buildFirstSubstitution(buildPolicy) || isAbstract(ed)) // leave
-																	// this
-																	// for
-																	// backward
-																	// compatibility
-																	// for now
-		{
-			// Note - To change so that if ed is optional, we do not
-			// generate anything here.
-			ed = getSubstitution(ed);
-
-			// Note - the returned ed may be an abstract element in
-			// which case the xml will be invalid.
-		}
-
-		if (min > 0 && !visitedCMElementDeclarationList.contains(ed)) {
-			visitedCMElementDeclarationList.add(ed);
-			for (int i = 1; i <= max; i++) {
-				// create an Element for each
-				Element element = null;
-				if (rootElement != null) {
-					element = rootElement;
-					rootElement = null;
-				}
-				else {
-					element = createElement(ed, computeName(ed, currentParent), currentParent);
-				}
-
-				// visit the children of the GrammarElement
-				Node oldParent = currentParent;
-				currentParent = element;
-				handlePushParent(element, ed);
-
-				namespaceTable.addElement(element);
-
-				boolean oldAttachNodesToParent = attachNodesToParent;
-				attachNodesToParent = true;
-
-				// instead of calling super.visitCMElementDeclaration()
-				// we duplicate the code with some minor modifications
-				CMNamedNodeMap nodeMap = ed.getAttributes();
-				int size = nodeMap.getLength();
-				for (int j = 0; j < size; j++) {
-					visitCMNode(nodeMap.item(j));
-				}
-
-				CMContent content = ed.getContent();
-				if (content != null) {
-					visitCMNode(content);
-				}
-
-				if (ed.getContentType() == CMElementDeclaration.PCDATA) {
-					CMDataType dataType = ed.getDataType();
-					if (dataType != null) {
-						visitCMDataType(dataType);
-					}
-				}
-				// end duplication
-				attachNodesToParent = oldAttachNodesToParent;
-				handlePopParent(element, ed);
-				currentParent = oldParent;
-				linkNode(element);
-			}
-			int size = visitedCMElementDeclarationList.size();
-			visitedCMElementDeclarationList.remove(size - 1);
-		}
-	}
-
-
-	public void visitCMDataType(CMDataType dataType) {
-		Text text = null;
-		String value = null;
-
-		// For backward compatibility:
-		// Previous code uses a property value but new one uses
-		// buildPolicy.
-		if (getProperty(PROPERTY_BUILD_BLANK_TEXT_NODES) != null && getProperty(PROPERTY_BUILD_BLANK_TEXT_NODES).equals("true")) //$NON-NLS-1$
-			buildPolicy = buildPolicy ^ BUILD_TEXT_NODES;
-
-		if (buildTextNodes(buildPolicy)) {
-			value = valueHelper.getValue(dataType);
-			if (value == null) {
-				if (currentParent != null && currentParent.getNodeType() == Node.ELEMENT_NODE) {
-					value = currentParent.getNodeName();
-				}
-				else {
-					value = "pcdata"; //$NON-NLS-1$
-				}
-			}
-		}
-		else {
-			value = ""; //$NON-NLS-1$
-		}
-		text = createTextNode(dataType, value, currentParent);
-		linkNode(text);
-	}
-
-
-	public void visitCMGroup(CMGroup e) {
-		cmGroupStack.push(e);
-
-		int forcedMin = (buildOptionalElements(buildPolicy) || alwaysVisit) ? 1 : 0;
-		int min = Math.max(e.getMinOccur(), forcedMin);
-
-		int max = 0;
-		if (e.getMaxOccur() == -1) // unbounded
-			max = getNumOfRepeatableElements();
-		else
-			max = Math.min(e.getMaxOccur(), getNumOfRepeatableElements());
-
-		if (max < min)
-			max = min;
-
-		alwaysVisit = false;
-
-		for (int i = 1; i <= max; i++) {
-			if (e.getOperator() == CMGroup.CHOICE && buildFirstChoice(buildPolicy)) {
-				CMNode hintNode = null;
-
-				// todo... the CMGroup should specify the hint... but it seems
-				// as though
-				// the Yamato guys are making the CMElement specify the hint.
-				// I do it that way for now until... we should fix this post
-				// GA
-				//    
-				int listSize = visitedCMElementDeclarationList.size();
-				if (listSize > 0) {
-					CMElementDeclaration ed = (CMElementDeclaration) visitedCMElementDeclarationList.get(listSize - 1);
-					Object contentHint = ed.getProperty("contentHint"); //$NON-NLS-1$
-					if (contentHint instanceof CMNode) {
-						hintNode = (CMNode) contentHint;
-					}
-				}
-
-				// see if this hint corresponds to a valid choice
-				//
-				CMNode cmNode = null;
-
-				if (hintNode != null) {
-					CMNodeList nodeList = e.getChildNodes();
-					int nodeListLength = nodeList.getLength();
-					for (int j = 0; j < nodeListLength; j++) {
-						if (hintNode == nodeList.item(j)) {
-							cmNode = hintNode;
-						}
-					}
-				}
-
-				// if no cmNode has been determined from the hint, just use
-				// the first choice
-				//
-				if (cmNode == null) {
-					CMNodeList nodeList = e.getChildNodes();
-					if (nodeList.getLength() > 0) {
-						cmNode = nodeList.item(0);
-					}
-				}
-
-				if (cmNode != null) {
-					visitCMNode(cmNode);
-				}
-			}
-			else if (e.getOperator() == CMGroup.ALL // ALL
-						|| e.getOperator() == CMGroup.SEQUENCE) // SEQUENCE
-			{
-				// visit all of the content
-				super.visitCMGroup(e);
-			}
-		}
-
-		cmGroupStack.pop();
-	}
-
-	static int count = 0;
-
-	public void visitCMAttributeDeclaration(CMAttributeDeclaration ad) {
-		if (alwaysVisit || buildOptionalAttributes(buildPolicy) || ad.getUsage() == CMAttributeDeclaration.REQUIRED) {
-			alwaysVisit = false;
-			String name = computeName(ad, currentParent);
-			String value = valueHelper.getValue(ad, namespaceTable);
-			Attr attr = createAttribute(ad, name, currentParent);
-			attr.setValue(value != null ? value : ""); //$NON-NLS-1$
-			linkNode(attr);
-		}
-	}
-
-	protected boolean isAbstract(CMNode ed) {
-		boolean result = false;
-		if (ed != null) {
-			Object value = ed.getProperty("Abstract"); //$NON-NLS-1$
-			result = (value == Boolean.TRUE);
-		}
-		return result;
-	}
-
-	protected CMElementDeclaration getSubstitution(CMElementDeclaration ed) {
-		CMElementDeclaration result = ed;
-		CMNodeList l = (CMNodeList) ed.getProperty("SubstitutionGroup"); //$NON-NLS-1$
-		if (l != null) {
-			for (int i = 0; i < l.getLength(); i++) {
-				CMNode candidate = l.item(i);
-				if (!isAbstract(candidate) && (candidate instanceof CMElementDeclaration)) {
-					result = (CMElementDeclaration) candidate;
-					break;
-				}
-			}
-		}
-		return result;
-	}
-
-	protected CMElementDeclaration getParentCMElementDeclaration() {
-		CMElementDeclaration ed = null;
-		int listSize = visitedCMElementDeclarationList.size();
-		if (listSize > 0) {
-			ed = (CMElementDeclaration) visitedCMElementDeclarationList.get(listSize - 1);
-		}
-		return ed;
-	}
-
-	public void visitCMAnyElement(CMAnyElement anyElement) {
-		// ingnore buildPolicy for ANY elements... only create elements if
-		// absolutely needed
-		//
-		int forcedMin = alwaysVisit ? 1 : 0;
-		int min = Math.max(anyElement.getMinOccur(), forcedMin);
-		alwaysVisit = false;
-
-		String uri = anyElement.getNamespaceURI();
-		String targetNSProperty = "http://org.eclipse.wst/cm/properties/targetNamespaceURI"; //$NON-NLS-1$
-		CMDocument parentCMDocument = (CMDocument) anyElement.getProperty("CMDocument"); //$NON-NLS-1$
-		CMElementDeclaration ed = null;
-
-		// System.out.println("parentCMDocument = " + parentCMDocument);
-		// //$NON-NLS-1$
-		if (parentCMDocument != null) {
-			if (uri == null || uri.startsWith("##") || uri.equals(parentCMDocument.getProperty(targetNSProperty))) //$NON-NLS-1$
-			{
-				ed = getSuitableElement(getParentCMElementDeclaration(), parentCMDocument);
-			}
-		}
-
-
-		if (ed == null && externalCMDocumentSupport != null && uri != null && !uri.startsWith("##") && currentParent instanceof Element) //$NON-NLS-1$
-		{
-			CMDocument externalCMDocument = externalCMDocumentSupport.getCMDocument((Element) currentParent, uri);
-			if (externalCMDocument != null) {
-				ed = getSuitableElement(null, externalCMDocument);
-			}
-		}
-
-		for (int i = 1; i <= min; i++) {
-			if (ed != null) {
-				visitCMElementDeclaration(ed);
-			}
-			else {
-				Element element = document.createElement("ANY-ELEMENT"); //$NON-NLS-1$
-				linkNode(element);
-			}
-		}
-	}
-
-	protected CMElementDeclaration getSuitableElement(CMNamedNodeMap nameNodeMap) {
-		CMElementDeclaration result = null;
-		int size = nameNodeMap.getLength();
-		for (int i = 0; i < size; i++) {
-			CMElementDeclaration candidate = (CMElementDeclaration) nameNodeMap.item(i);
-			if (!visitedCMElementDeclarationList.contains(candidate)) {
-				result = candidate;
-				break;
-			}
-		}
-		return result;
-	}
-
-	protected CMElementDeclaration getSuitableElement(CMElementDeclaration ed, CMDocument cmDocument) {
-		CMElementDeclaration result = null;
-
-		if (ed != null) {
-			result = getSuitableElement(ed.getLocalElements());
-		}
-
-		if (result == null && cmDocument != null) {
-			result = getSuitableElement(cmDocument.getElements());
-		}
-
-		return result;
-	}
-
-
-	public void linkNode(Node node) {
-		if (attachNodesToParent && currentParent != null) {
-			if (node.getNodeType() == Node.ATTRIBUTE_NODE) {
-				((Element) currentParent).setAttributeNode((Attr) node);
-			}
-			else {
-				currentParent.appendChild(node);
-			}
-		}
-		else if (resultList != null) {
-			resultList.add(node);
-		}
-	}
-
-	public static void testPopulateDocumentFromGrammarFile(Document document, String grammarFileName, String rootElementName, boolean hack) {
-		try {
-			CMDocument cmDocument = ContentModelManager.getInstance().createCMDocument(grammarFileName, null);
-			CMNamedNodeMap elementMap = cmDocument.getElements();
-			CMElementDeclaration element = (CMElementDeclaration) elementMap.getNamedItem(rootElementName);
-
-			DOMContentBuilderImpl contentBuilder = new DOMContentBuilderImpl(document);
-			contentBuilder.supressCreationOfDoctypeAndXMLDeclaration = hack;
-			contentBuilder.createDefaultRootContent(cmDocument, element);
-
-			System.out.println();
-			System.out.println("-----------------------------"); //$NON-NLS-1$
-			DOMWriter writer = new DOMWriter();
-			if (hack) {
-				writer.print(document, grammarFileName);
-			}
-			else {
-				writer.print(document);
-			}
-			System.out.println("-----------------------------"); //$NON-NLS-1$
-		}
-		catch (Exception e) {
-			System.out.println("Error: " + e); //$NON-NLS-1$
-			e.printStackTrace();
-		}
-	}
-
-	// test
-	//
-	/*
-	 * public static void main(String arg[]) { if (arg.length >= 2) { try {
-	 * CMDocumentFactoryRegistry.getInstance().registerCMDocumentBuilderWithClassName("org.eclipse.wst.xml.core.internal.contentmodel.mofimpl.CMDocumentBuilderImpl");
-	 * 
-	 * String grammarFileName = arg[0]; String rootElementName = arg[1];
-	 * 
-	 * Document document =
-	 * (Document)Class.forName("org.apache.xerces.dom.DocumentImpl").newInstance();
-	 * testPopulateDocumentFromGrammarFile(document, grammarFileName,
-	 * rootElementName, true); } catch (Exception e) {
-	 * System.out.println("DOMContentBuilderImpl error"); e.printStackTrace(); } }
-	 * else { System.out.println("Usage : java
-	 * org.eclipse.wst.xml.util.DOMContentBuildingCMVisitor grammarFileName
-	 * rootElementName"); } }
-	 */
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMNamespaceHelper.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMNamespaceHelper.java
deleted file mode 100644
index 049d445..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMNamespaceHelper.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.util;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class DOMNamespaceHelper
-{                
-  protected static String getURIForPrefix(Element element, String prefix)
-  {              
-    String result = null;
-	  String nsAttrName = null;
-	  if (prefix != null && prefix.length() > 0) 
-    {
-		  nsAttrName = "xmlns:" + prefix; //$NON-NLS-1$
-	  }
-	  else 
-    {
-		  nsAttrName = "xmlns"; //$NON-NLS-1$
-	  }
-            
-    // assume the node is qualified... look up the URI base on the prefix
-    //
-	  for (Node node = element; node != null; node = node.getParentNode()) 
-    {
-	   	if (node.getNodeType() == Node.ELEMENT_NODE)
-      {
-        Element theElement = (Element)node;
-		    Attr attr = theElement.getAttributeNode(nsAttrName);
-		    if (attr != null) 
-        {
-          result = attr.getValue();
-        }
-      }
-      else
-      {
-        break;
-      }
-    }
-         
-    // see if we can find some info from an 'implicit' namespace
-    //
-    if (result == null)
-    {                                
-      NamespaceTable table = new NamespaceTable(element.getOwnerDocument());
-      result = table.getURIForPrefix(prefix);
-    }
-    return result;
-	}
-
-  public static String getNamespaceURI(Node node)
-  {            
-    String result = null;
-    if (node.getNodeType() == Node.ELEMENT_NODE)
-    {               
-      Element element = (Element)node;
-      String prefix = element.getPrefix();
-      result = getURIForPrefix(element, prefix);
-    }
-    else if (node.getNodeType() == Node.ATTRIBUTE_NODE)
-    {      
-      Attr attr = (Attr)node;
-      String prefix = attr.getPrefix();
-      result = getURIForPrefix(attr.getOwnerElement(), prefix);
-    }
-    return result;
-  }                 
-
-  // todo... this is an ugly hack... needs to be fixed
-  //
-  public static String computePrefix(CMNode cmNode, Node parentNode)
-  {
-    String result = null;
-    for (Node node = parentNode; node != null; node = node.getParentNode())
-    {
-      if (node.getNodeType() == Node.ELEMENT_NODE)
-      {
-        result = getPrefix(node.getNodeName());
-        if (result != null)
-        {
-          break;
-        }
-      }
-    }
-    return result;
-  }        
-
-
-  public static String getPrefix(String name)
-  {
-    String prefix = null;
-    int index = name.indexOf(":"); //$NON-NLS-1$
-    if (index != -1)
-    {
-      prefix = name.substring(0, index);
-    }
-    return prefix;
-  }
-
-
-  public static String getUnprefixedName(String name)
-  {
-    int index = name.indexOf(":"); //$NON-NLS-1$
-    if (index != -1)
-    {
-      name = name.substring(index + 1);
-    }
-    return name;
-  }
-
-
-  public static String computeName(CMNode cmNode, Node parent, String prefix)
-  {     
-    return computeName(cmNode, parent, prefix, null);
-  }   
-
-
-  public static String computeName(CMNode cmNode, Node parent, String prefix, NamespaceTable namespaceTable)
-  {
-    String result = cmNode.getNodeName();
-
-    // if the cmNode has a hard coded prefix then we don't need to do anything
-    //
-    if (getPrefix(result) == null)
-    {              
-      String qualification = (String)cmNode.getProperty("http://org.eclipse.wst/cm/properties/nsPrefixQualification"); //$NON-NLS-1$
-      // see if we need a namespace prefix
-      //
-      if (qualification != null && qualification.equals("qualified")) //$NON-NLS-1$
-      {            
-        if (prefix == null)                 
-        {
-          // todo... add getCMDocument() method to CMNode
-          // for now use this getProperty() hack
-          CMDocument cmDocument = (CMDocument)cmNode.getProperty("CMDocument"); //$NON-NLS-1$
-          if (cmDocument != null)          
-          {     
-            String namespaceURI = (String)cmDocument.getProperty("http://org.eclipse.wst/cm/properties/targetNamespaceURI");    //$NON-NLS-1$
-            if (namespaceURI != null)
-            {   
-              // use the NamespaceTable to figure out the correct prefix for this namespace uri
-              //      
-              if (namespaceTable == null)
-              {                                            
-                Document document = parent.getNodeType() == Node.DOCUMENT_NODE ? (Document)parent : parent.getOwnerDocument();
-                namespaceTable = new NamespaceTable(document);
-                if (parent instanceof Element)
-                {
-                  namespaceTable.addElementLineage((Element)parent);
-                }
-              }
-              prefix = namespaceTable.getPrefixForURI(namespaceURI);
-            }
-          }
-        }
-        if (prefix != null && prefix.length() > 0)
-        {
-          result = prefix + ":" + result; //$NON-NLS-1$
-        }
-      }    
-    }
-    return result;
-  }  
-  
-
-  public static String[] getURIQualifiedNameComponents(String uriQualifiedName)
-  {
-    String[] result = new String[2];
-    int firstIndex = uriQualifiedName.indexOf("["); //$NON-NLS-1$
-    int lastIndex = uriQualifiedName.indexOf("]"); //$NON-NLS-1$
-    if (firstIndex != -1 && lastIndex > firstIndex)
-    {
-      result[0] = uriQualifiedName.substring(firstIndex + 1, lastIndex);
-      result[1] = uriQualifiedName.substring(lastIndex + 1);
-    }  
-    else
-    {
-      result[1] = uriQualifiedName;
-    }                              
-    return result;
-  }   
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMNamespaceInfoManager.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMNamespaceInfoManager.java
deleted file mode 100644
index 747efbc..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMNamespaceInfoManager.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.util;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-
-/**
- * DOMNamespaceInfoManager          
- *
- *
- */
-public class DOMNamespaceInfoManager
-{                               
-  public static final String XSI_URI = "http://www.w3.org/2001/XMLSchema-instance"; //$NON-NLS-1$
-
-  public DOMNamespaceInfoManager()
-  {
-  }                 
-
-  public List getNamespaceInfoList(Element element)
-  {
-    NamespaceInfoReader reader = new NamespaceInfoReader();
-    return reader.getNamespaceInfoList(element);
-  }            
-   
-  public void removeNamespaceInfo(Element element)
-  {     
-    NamespaceInfoRemover remover = new NamespaceInfoRemover();
-    remover.removeNamespaceInfo(element);
-  }
-
-  public void addNamespaceInfo(Element element, List namespaceInfoList, boolean needsXSI)
-  {  
-    // first we create an xmlns attribute for each namespace
-    //                   
-    Document document = element.getOwnerDocument();
-                                
-    String schemaLocationValue = "";      //$NON-NLS-1$
-
-    for (Iterator iterator = namespaceInfoList.iterator(); iterator.hasNext(); )
-    {
-      NamespaceInfo nsInfo = (NamespaceInfo)iterator.next();
-      nsInfo.normalize();
-               
-      if (nsInfo.uri != null) 
-      {            
-        String attrName = nsInfo.prefix != null ? "xmlns:" + nsInfo.prefix : "xmlns"; //$NON-NLS-1$ //$NON-NLS-2$
-        Attr namespaceAttr = document.createAttribute(attrName);  
-        namespaceAttr.setValue(nsInfo.uri);
-        element.setAttributeNode(namespaceAttr);   
-
-        // in this case we use the attribute "xsi:schemaLocation"
-        // here we build up its value
-        //
-        if (nsInfo.locationHint != null)
-        {
-          schemaLocationValue += nsInfo.uri;
-          schemaLocationValue += " "; //$NON-NLS-1$
-          schemaLocationValue += nsInfo.locationHint;
-          schemaLocationValue += " ";    //$NON-NLS-1$
-        }   
-
-        if (nsInfo.uri.equals(XSI_URI))
-        {
-          needsXSI = false;
-        }
-      }     
-      else if (nsInfo.locationHint != null)
-      {
-        // in this case we use the attribute "xsi:noNamespaceSchemaLocation"
-        //
-        Attr attr = document.createAttribute("xsi:noNamespaceSchemaLocation");   //$NON-NLS-1$
-        attr.setValue(nsInfo.locationHint);
-        element.setAttributeNode(attr);
-      } 
-    } 
-
-    if (needsXSI)
-    {
-      // we add an xmlns:xsi attribute to define 'xsi:schemaLocation' attribute
-      //   
-      Attr attr = document.createAttribute("xmlns:xsi"); //$NON-NLS-1$
-      attr.setValue(XSI_URI);
-      element.setAttributeNode(attr);
-    }
-
-    if (schemaLocationValue.length() > 0)
-    {
-      // create the "xsi:schemaLocation" attribute
-      //
-      Attr attr = document.createAttribute("xsi:schemaLocation"); //$NON-NLS-1$
-      attr.setValue(schemaLocationValue);
-      element.setAttributeNode(attr);
-    }                             
-  } 
-       
-  /**
-   *
-   */
-  protected static class NamespaceInfoReader extends NamespaceAttributeVisitor
-  {  
-    protected List namespaceInfoList = new Vector();
-
-    public List getNamespaceInfoList(Element element)
-    {
-      visitElement(element);
-      return namespaceInfoList;
-    }
-                       
-
-    public void visitXSINoNamespaceSchemaLocationAttribute(Attr attr, String value)
-    {
-      NamespaceInfo info = createNamespaceInfo();
-      info.locationHint = value;      
-    }
-    
-    public void visitXMLNamespaceAttribute(Attr attr, String prefix, String uri)
-    {           
-      NamespaceInfo info = createNamespaceInfo();
-      info.uri = uri;
-      info.prefix = prefix;      
-      super.visitXMLNamespaceAttribute(attr, prefix, uri);
-    }
-
-    public void visitXSISchemaLocationValuePair(String uri, String locationHint)
-    {    
-      NamespaceInfo info = getNamespaceInfoForURI(uri);            
-      if (info != null)
-      {
-        info.locationHint = locationHint;
-      } 
-      else
-      {
-        info = createNamespaceInfo();
-        info.uri = uri;
-        info.locationHint = locationHint;
-      }
-    }                                                                 
-
-    protected NamespaceInfo getNamespaceInfoForURI(String uri)
-    {    
-      NamespaceInfo result = null;
-      for (Iterator i = namespaceInfoList.iterator(); i.hasNext(); )
-      {
-        NamespaceInfo info = (NamespaceInfo)i.next();
-        if (info.uri != null && info.uri.equals(uri))
-        {
-          result = info;
-          break;
-        }
-      }         
-      return result;
-    }     
-
-    protected NamespaceInfo createNamespaceInfo()
-    {
-      NamespaceInfo info = new NamespaceInfo();
-      namespaceInfoList.add(info);
-      return info;
-    }
-  }
-     
-                                                
-  /**
-   *
-   */
-  protected static class NamespaceInfoRemover extends NamespaceAttributeVisitor
-  {                   
-    protected List attributesToRemove = new Vector();
-
-    public void removeNamespaceInfo(Element element)
-    {  
-      visitElement(element);
-      removeAttributes();
-    }   
-
-    public void visitXSINoNamespaceSchemaLocationAttribute(Attr attr, String value)
-    {
-      attributesToRemove.add(attr);
-    }        
-    
-    public void visitXMLNamespaceAttribute(Attr attr, String namespacePrefix, String namespaceURI)
-    {   
-      attributesToRemove.add(attr);
-      super.visitXMLNamespaceAttribute(attr, namespacePrefix, namespaceURI);
-    }
-    
-    public void visitXSISchemaLocationAttribute(Attr attr, String value)
-    {
-      attributesToRemove.add(attr);
-    }   
-
-    public void removeAttributes()
-    {
-      for (Iterator i = attributesToRemove.iterator(); i.hasNext(); )
-      {
-        Attr attr = (Attr)i.next();
-        Element element = attr.getOwnerElement();
-        if (element != null)
-        {
-          element.removeAttributeNode(attr);
-        }
-      }
-    }   
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMVisitor.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMVisitor.java
deleted file mode 100644
index 0742f7b..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMVisitor.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.util;
-
-import org.w3c.dom.Attr;
-import org.w3c.dom.CDATASection;
-import org.w3c.dom.Comment;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.ProcessingInstruction;
-import org.w3c.dom.Text;
-
-// todo.. move this class to another package (perhaps xmlutility)
-//
-public class DOMVisitor
-{         
-  public void visitNode(Node node)
-  {
-    switch (node.getNodeType())
-    {
-      case Node.ATTRIBUTE_NODE :
-      {
-        visitAttr((Attr)node);
-        break;
-      }
-      case Node.CDATA_SECTION_NODE :
-      {
-        visitCDATASection((CDATASection)node);
-        break;
-      }
-      case Node.COMMENT_NODE :
-      {
-        visitComment((Comment)node);
-        break;
-      }
-      case Node.DOCUMENT_NODE :
-      {
-        visitDocument((Document)node);
-        break;
-      }
-      case Node.DOCUMENT_TYPE_NODE :
-      {
-        visitDocumentType((DocumentType)node);
-        break;
-      }
-      case Node.ELEMENT_NODE :
-      {
-        visitElement((Element)node);
-        break;
-      }
-      case Node.PROCESSING_INSTRUCTION_NODE :
-      {
-        visitProcessingInstruction((ProcessingInstruction)node);
-        break;
-      }
-      case Node.TEXT_NODE :
-      {
-        visitText((Text)node);
-        break;
-      }
-    }  
-  }    
-    
-  protected void visitDocument(Document document)
-  {                   
-    visitChildNodesHelper(document);
-  }
-
-  protected void visitDocumentType(DocumentType doctype)
-  {         
-
-  }  
-
-  protected void visitElement(Element element)
-  {        
-    visitAttributesHelper(element);
-    visitChildNodesHelper(element);
-  } 
- 
-
-  public void visitAttr(Attr attr)
-  {                                  
-  }
-
-  protected void visitText(Text text)
-  {    
-  }
-
-  protected void visitCDATASection(CDATASection cdataSection)
-  {                       
-  }     
-
-  protected void visitComment(Comment comment)
-  {                   
-  }   
-
-  protected void visitProcessingInstruction(ProcessingInstruction pi)
-  {    
-  }
- 
-
-  protected void visitChildNodesHelper(Node node)
-  {
-    NodeList children = node.getChildNodes();
-    for (int i = 0; i < children.getLength(); i++)
-    {
-      visitNode(children.item(i));
-    }
-  }
-
-  protected void visitAttributesHelper(Node node)
-  {
-    NamedNodeMap map = node.getAttributes();
-    for (int i = 0; i < map.getLength(); i++ )
-    {
-      visitNode(map.item(i));
-    }
-  }         
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMWriter.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMWriter.java
deleted file mode 100644
index d5a1150..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMWriter.java
+++ /dev/null
@@ -1,411 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.util;
-
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.io.UnsupportedEncodingException;
-import java.io.Writer;
-
-import org.w3c.dom.Attr;
-import org.w3c.dom.CDATASection;
-import org.w3c.dom.Comment;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.ProcessingInstruction;
-import org.w3c.dom.Text;
-
-
-/**
- * This is a hacked up dom writer stolen from a Xerces sample.
- * I'd like to use an exisitng 'generic DOM' writer
- * If anyone can find such a thing then please go ahead and junk this.
- *
- * @version
- */
-public class DOMWriter
-{
-  protected boolean formattingEnabled = true;
-   protected boolean outputDoctypeEnabled = true;
-   protected PrintWriter out;
-   protected int indent = 0;  
-
-   public DOMWriter() throws UnsupportedEncodingException
-   {
-     this(System.out);
-   }
-
-   public DOMWriter(OutputStream outputSteam)
-   {
-     out = new PrintWriter(outputSteam);
-   }
-
-   public DOMWriter(Writer writer)
-   {
-     out = new PrintWriter(writer);
-   }
-
-   public void setFormattingEnabled(boolean enabled)
-   {
-     formattingEnabled = enabled;
-   }
-
-   public boolean getFormattingEnabled()
-   {
-     return formattingEnabled;
-   }
-
-   public void setOutputDoctypeEnabled(boolean enabled)
-   {
-     outputDoctypeEnabled = enabled;
-   }
-
-   public class XMLVisitor
-   {
-     protected boolean currentElementHasChildElements = false;
-
-     public void visitNode(Node node)
-     {
-       switch (node.getNodeType())
-       {
-         case Node.ATTRIBUTE_NODE :
-         {
-           visitAttr((Attr)node);
-           break;
-         }
-         case Node.CDATA_SECTION_NODE :
-         {
-           visitCDATASection((CDATASection)node);
-           break;
-         }
-         case Node.COMMENT_NODE :
-         {
-           visitComment((Comment)node);
-           break;
-         }
-         case Node.DOCUMENT_NODE :
-         {
-           visitDocument((Document)node);
-           break;
-         }
-         case Node.DOCUMENT_TYPE_NODE :
-         {
-           visitDocumentType((DocumentType)node);
-           break;
-         }
-         case Node.ELEMENT_NODE :
-         {
-           visitElement((Element)node);
-           break;
-         }
-         case Node.PROCESSING_INSTRUCTION_NODE :
-         {
-           visitProcessingInstruction((ProcessingInstruction)node);
-           break;
-         }
-         case Node.TEXT_NODE :
-         {
-           visitText((Text)node);
-           break;
-         }
-       }
-     }
-
-     public void visitDocument(Document document)
-     {
-       visitChildNodesHelper(document);
-     }
-
-     public void visitDocumentType(DocumentType doctype)
-     {                       
-       if (outputDoctypeEnabled)
-       {
-         String data = getDocumentTypeData(doctype);
-         print("<!DOCTYPE " + data + ">"); //$NON-NLS-1$ //$NON-NLS-2$
-       }
-     }
-
-     public void visitElement(Element element)
-     {                                  
-       if (!doShow(element))
-         return;
-
-       boolean parentElementHasChildNodes = currentElementHasChildElements;
-       currentElementHasChildElements = hasChildElements(element);
-
-       printIndent();
-       print("<"); //$NON-NLS-1$
-       print(element.getNodeName());
-       visitAttributesHelper(element);
-
-       boolean hasChildNodes = element.getChildNodes().getLength() > 0;                
-       boolean isRootElement = element.getParentNode().getNodeType() == Node.DOCUMENT_NODE;
-       if (hasChildNodes || isRootElement)
-       {
-         if (currentElementHasChildElements || isRootElement)
-         {
-           println(">"); //$NON-NLS-1$
-         }
-         else
-         {
-           print(">"); //$NON-NLS-1$
-         }
-         indent += 2;
-         visitChildNodesHelper(element);
-         indent -= 2;
-
-         if (currentElementHasChildElements || isRootElement)
-         {
-           printIndent();
-         }
-         print("</"); //$NON-NLS-1$
-         print(element.getNodeName());
-         println(">"); //$NON-NLS-1$
-       }
-       else
-       {
-         println("/>"); //$NON-NLS-1$
-       }
-
-       currentElementHasChildElements = parentElementHasChildNodes;
-     }
-
-     public void visitAttr(Attr attr)
-     {
-       print(" "); //$NON-NLS-1$
-       print(attr.getNodeName());
-       print("=\""); //$NON-NLS-1$
-       print(createPrintableCharacterData(attr.getValue()));
-       print("\""); //$NON-NLS-1$
-     }
-
-     public void visitText(Text text)
-     {
-       if (currentElementHasChildElements)
-       {
-         printIndent();
-         print(createPrintableCharacterData(text.getNodeValue()));
-         println();
-       }
-       else
-       {
-         print(createPrintableCharacterData(text.getNodeValue()));
-       }
-     }
-
-     public void visitCDATASection(CDATASection cdataSection)
-     {
-     }
-
-     public void visitComment(Comment comment)
-     {
-       printIndent();
-       print("<!--"); //$NON-NLS-1$
-       print(comment.getNodeValue());
-       println("-->"); //$NON-NLS-1$
-     }
-
-     public void visitProcessingInstruction(ProcessingInstruction pi)
-     {
-       printIndent();
-       print("<?"); //$NON-NLS-1$
-       print(pi.getNodeName());
-       print(" "); //$NON-NLS-1$
-       print(pi.getNodeValue());
-       println("?>"); //$NON-NLS-1$
-     }
-             
-
-     public boolean hasChildElements(Node node)
-     {
-       boolean result = false;
-       NodeList children = node.getChildNodes();
-       for (int i = 0; i < children.getLength(); i++)
-       {
-         if (children.item(i).getNodeType() == Node.ELEMENT_NODE)
-         {
-           result = true;
-           break;
-         }
-       }
-       return result;
-     }
-
-     public void visitChildNodesHelper(Node node)
-     {
-       NodeList children = node.getChildNodes();
-       for (int i = 0; i < children.getLength(); i++)
-       {
-         visitNode(children.item(i));
-       }
-     }
-
-     public void visitAttributesHelper(Node node)
-     {
-       NamedNodeMap map = node.getAttributes();
-       for (int i = 0; i < map.getLength(); i++ )
-       {
-         visitNode(map.item(i));
-       }
-     }
-   }
-
-  /** an ugly hack until I restruct this code a little
-   *  
-   */  
-  protected boolean doShow(Element element)    
-  {
-    return true;
-  }
-                                               
-  /** converts DOM text values to 'printable' values 
-   *  - converts '&' to '&amp;'
-   */
-  protected String createPrintableCharacterData(String string)
-  {              
-    String result = ""; //$NON-NLS-1$
-    int index = 0;                             
-    while (true)
-    {                                                 
-      int ampersandIndex = string.indexOf("&", index); //$NON-NLS-1$
-      if (ampersandIndex != -1)
-      {
-        result += string.substring(index, ampersandIndex);
-        result += "&amp;"; //$NON-NLS-1$
-        index = ampersandIndex + 1; 
-      }
-      else
-      {
-        break;
-      }
-    } 
-    result += string.substring(index);
-    return result;
-  }
-
-
-  /** Prints the specified node, recursively. */
-  public void print(Node node)
-  {
-    // is there anything to do?
-    if (node != null)
-    {
-      XMLVisitor visitor = new XMLVisitor();
-      visitor.visitNode(node);
-    }
-    out.flush();
-  }
-
-  /** a temporary hack to workaround our inability to create a DocumentType tag*/
-  public void print(Document document, String grammarURL)
-  {
-    String systemId = null;
-    if (grammarURL.endsWith("dtd")) //$NON-NLS-1$
-    {
-      int lastSlashIndex = Math.max(grammarURL.lastIndexOf("/"), grammarURL.lastIndexOf("\\")); //$NON-NLS-1$ //$NON-NLS-2$
-      if (lastSlashIndex != -1)
-      {
-        systemId = grammarURL.substring(lastSlashIndex + 1);
-      }
-    }
-    print(document, "UTF-8", grammarURL, null, systemId); //$NON-NLS-1$
-
-  }
-
-  /** a temporary hack to workaround our inability to create a DocumentType tag*/
-  public void print(Document document, String encoding, String grammarFileName, String publicId, String systemId)
-  {
-    out.println("<?xml version=\"1.0\"" + " encoding=\"" + encoding + "\"?>");   //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-    if (grammarFileName.endsWith(".dtd")) //$NON-NLS-1$
-    {
-      String docTypeLine = "<!DOCTYPE " + document.getDocumentElement().getNodeName() + " "; //$NON-NLS-1$ //$NON-NLS-2$
-      if (publicId != null) 
-      {
-        docTypeLine += "PUBLIC \"" + publicId + "\" "; //$NON-NLS-1$ //$NON-NLS-2$
-        if (systemId != null)
-        {
-          docTypeLine += "\"" + systemId + "\" "; //$NON-NLS-1$ //$NON-NLS-2$
-        }
-        docTypeLine += ">"; //$NON-NLS-1$
-        out.println(docTypeLine);
-      }
-      else if (systemId != null)
-      {
-        docTypeLine += "SYSTEM \"" + systemId + "\" >"; //$NON-NLS-1$ //$NON-NLS-2$
-        out.println(docTypeLine);
-      }
-    }
-    print(document);
-  }  
-
-  public static String getDocumentTypeData(DocumentType doctype)
-  {
-    String data = doctype.getName();
-    if (doctype.getPublicId() != null)
-    {
-      data += " PUBLIC \"" + doctype.getPublicId() + "\""; //$NON-NLS-1$ //$NON-NLS-2$
-      String systemId = doctype.getSystemId();
-      if (systemId == null)
-      {
-        systemId = ""; //$NON-NLS-1$
-      }
-      data += " \"" + systemId + "\"";      //$NON-NLS-1$ //$NON-NLS-2$
-    }
-    else
-    {
-      data += " SYSTEM \"" + doctype.getSystemId() + "\""; //$NON-NLS-1$ //$NON-NLS-2$
-    }
-    return data;
-  }     
-
-  public void println()
-  {
-    if (formattingEnabled)
-    {
-      out.println();
-    }
-  }
-
-  public void println(String string)
-  {
-    if (formattingEnabled)
-    {
-      out.println(string);
-    }
-    else
-    {
-      out.print(string);
-    }
-  }
-
-  public void printIndent()
-  {             
-    if (formattingEnabled)
-    {
-      for (int i = 0; i < indent; i++)
-      {
-        out.print(" "); //$NON-NLS-1$
-      }
-    }
-  }       
-
-  public void print(String string)
-  {
-    out.print(string);
-  }
-}
-
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/InferredGrammarFactory.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/InferredGrammarFactory.java
deleted file mode 100644
index d4a3c40..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/InferredGrammarFactory.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.util;
-
-import java.util.Collection;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.w3c.dom.Element;
-
-
-// this interface is used to build a grammar document given a local file name
-//
-public interface InferredGrammarFactory
-{   
-  public CMDocument createCMDocument(String uri); 
-  public CMElementDeclaration createCMElementDeclaration(CMDocument cmDocument, Element element, boolean isLocal);
-  public void createCMContent(CMDocument parentCMDocument, CMElementDeclaration parentEd, CMDocument childCMDocument, CMElementDeclaration childEd, boolean isLocal, String uri);
-  public void debugPrint(Collection collection); 
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceAttributeVisitor.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceAttributeVisitor.java
deleted file mode 100644
index 58d193d..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceAttributeVisitor.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     David Carver - STAR - bug 198807 - attribute order dependancy.
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.util;
-
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-
-import com.ibm.icu.util.StringTokenizer;
-
-
-public class NamespaceAttributeVisitor
-{                                      
-  public static final String XML_SCHEMA_INSTANCE_URI = "http://www.w3.org/2001/XMLSchema-instance"; //$NON-NLS-1$
-  public String xsiPrefix = "xsi"; //$NON-NLS-1$
-
-  public void visitXMLNamespaceAttribute(Attr attr, String namespacePrefix, String namespaceURI)
-  {   
-    if (namespaceURI.equals(XML_SCHEMA_INSTANCE_URI))
-    {
-      xsiPrefix = namespacePrefix;
-    }
-  } 
-
-  public void visitXSINoNamespaceSchemaLocationAttribute(Attr attr, String value)
-  {
-  }
-
-  public void visitXSISchemaLocationAttribute(Attr attr, String value)
-  {
-    StringTokenizer st = new StringTokenizer(value);          
-    while (true)
-    {
-      String nsURI = st.hasMoreTokens() ? st.nextToken() : null;
-      String locationHint = st.hasMoreTokens() ? st.nextToken() : null;            
-      if (nsURI != null && locationHint != null)
-      {    
-        visitXSISchemaLocationValuePair(nsURI, locationHint);          
-      }
-      else
-      {
-        break;
-      }
-    }
-  }   
-
-  public void visitXSISchemaLocationValuePair(String uri, String locationHint)
-  {
-  }
-
-  public void visitElement(Element element)
-  {
-    NamedNodeMap map = element.getAttributes();
-    int mapLength = map.getLength();
-    
-    // First retrieve all the namespaces so that they are loaded before
-    // doing any special prefix handling.  This allows the attributes to be
-    // defined in any order, but the namespaces have to be retrieved first.
-    
-    for (int i = 0; i < mapLength; i++)
-    {
-      Attr attr = (Attr)map.item(i);
-      String prefix = DOMNamespaceHelper.getPrefix(attr.getName());
-      String unprefixedName = DOMNamespaceHelper.getUnprefixedName(attr.getName());
-      if (prefix != null && unprefixedName != null)
-      {
-        if (prefix.equals("xmlns")) //$NON-NLS-1$
-        {
-          visitXMLNamespaceAttribute(attr, unprefixedName, attr.getValue());
-        }
-      }
-      else if (unprefixedName != null)
-      {
-        if (unprefixedName.equals("xmlns")) //$NON-NLS-1$
-        {
-          visitXMLNamespaceAttribute(attr, "", attr.getValue()); //$NON-NLS-1$
-        }
-      }      
-
-    }
-
-    for (int i = 0; i < mapLength; i++)
-    {
-      Attr attr = (Attr)map.item(i);
-      String prefix = DOMNamespaceHelper.getPrefix(attr.getName());
-      String unprefixedName = DOMNamespaceHelper.getUnprefixedName(attr.getName());
-      if (prefix != null && unprefixedName != null)
-      {
-       	if (prefix.equals(xsiPrefix) && unprefixedName.equals("schemaLocation")) //$NON-NLS-1$
-        {
-          visitXSISchemaLocationAttribute(attr, attr.getValue());
-        }
-        else if (prefix.equals(xsiPrefix) && unprefixedName.equals("noNamespaceSchemaLocation")) //$NON-NLS-1$
-        {
-          visitXSINoNamespaceSchemaLocationAttribute(attr, attr.getValue());
-        }
-      }
-    }
-  }      
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceInfo.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceInfo.java
deleted file mode 100644
index 56af91b..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceInfo.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.util;
-
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-public class NamespaceInfo
-{                        
-  public String uri;
-  public String prefix;
-  public String locationHint;
-  public boolean isPrefixRequired; 
-  protected Hashtable hashtable;
-
-  public NamespaceInfo()
-  {
-  }
-
-  public NamespaceInfo(String uri, String prefix, String locationHint)
-  {                                                                  
-    this.uri = uri;                             
-    this.prefix = prefix;
-    this.locationHint = locationHint;
-  }   
-
-  public NamespaceInfo(NamespaceInfo that)
-  {                                               
-    this.uri = that.uri;                             
-    this.prefix = that.prefix;
-    this.locationHint = that.locationHint;
-    // todo... see if we need to clone the hastable 
-  }
-
-  public void normalize()
-  {
-    uri = getNormalizedValue(uri);
-    prefix  = getNormalizedValue(prefix);
-    locationHint= getNormalizedValue(locationHint);
-  }
-
-  protected String getNormalizedValue(String string)
-  {
-    return (string != null && string.trim().length() == 0) ? null : string;
-  }
-    
-  public void setProperty(String property, Object value)
-  {
-    if (hashtable == null)
-    {
-      hashtable = new Hashtable();
-    }
-    hashtable.put(property, value);
-  }
-
-  public Object getProperty(String property)
-  {
-    return (hashtable != null) ? hashtable.get(property) : null;
-  }
-
-  public static List cloneNamespaceInfoList(List oldList)
-  {  
-    List newList = new Vector(oldList.size());
-    for (Iterator i = oldList.iterator(); i.hasNext(); )
-    {
-      NamespaceInfo oldInfo = (NamespaceInfo)i.next();
-      newList.add(new NamespaceInfo(oldInfo));
-    }               
-    return newList;
-  }
-}      
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceTable.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceTable.java
deleted file mode 100644
index 18a2541..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceTable.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contentmodel.util;
-                          
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class NamespaceTable extends NamespaceAttributeVisitor
-{                   
-  public Hashtable hashtable = new Hashtable();
-
-  public NamespaceTable(Document document)
-  {         
-	  this();
-    //DOMExtension domExtension = DOMExtensionProviderRegistry.getInstance().getDOMExtension(document);
-    //if (domExtension != null)
-    //{                          
-    //  addNamespaceInfoList(domExtension.getImplictNamespaceInfoList(), true);
-    // }
-  }   
-
-  private NamespaceTable()
-  {       
-	  super();
-  }  
-
-  public boolean isNamespaceEncountered()
-  {
-    return hashtable.values().size() > 0;
-  }
-
-  public String getPrefixForURI(String uri)
-  {           
-    String result = null;
-    NamespaceInfo entry = getNamespaceInfoForURI(uri, true);
-    if (entry != null) 
-    {
-      result = entry.prefix;
-    }                         
-    return result;
-  }
-      
-
-  public String getURIForPrefix(String prefix)
-  {           
-    String result = null;
-    NamespaceInfo info = getNamespaceInfoForPrefix(prefix);
-    if (info != null) 
-    {
-      result = info.uri;
-    }                         
-    return result;
-  }    
-
-          
-  protected boolean isMatchingString(String a, String b)
-  {
-    return ((a == null && b == null) || (a != null && b != null && a.equals(b)));
-  }
-   
-
-  public NamespaceInfo getNamespaceInfoForURI(String uri)
-  {                                                     
-    return getNamespaceInfoForURI(uri, false);
-  }
-
-
-  public NamespaceInfo getNamespaceInfoForURI(String uri, boolean testImplied)
-  {
-    NamespaceInfo result = null;
-    for (Iterator i = hashtable.values().iterator(); i.hasNext(); )
-    {                    
-      NamespaceInfo nsInfo = (NamespaceInfo)i.next(); 
-      if (isMatchingString(nsInfo.uri, uri))
-      {                 
-        result = nsInfo;
-        if (testImplied && nsInfo.getProperty("isImplied") != null) //$NON-NLS-1$
-        {
-          // continue
-        }            
-        else
-        {
-          break;
-        }
-      }
-    }
-    return result;
-  } 
-
-
-  public void setLocationHintForURI(String uri, String locationHint)
-  {      
-   // List list = new Vector();
-    for (Iterator i = hashtable.values().iterator(); i.hasNext(); )
-    {                    
-      NamespaceInfo nsInfo = (NamespaceInfo)i.next(); 
-      if (isMatchingString(nsInfo.uri, uri))
-      {                                               
-        nsInfo.locationHint = locationHint;
-      }
-    }
-  }
-    
-
-  public NamespaceInfo getNamespaceInfoForPrefix(String prefix)
-  {                                      
-    prefix = prefix != null ? prefix : ""; //$NON-NLS-1$
-    return (NamespaceInfo)hashtable.get(prefix);
-  }   
-
-
-  public void visitXMLNamespaceAttribute(Attr attr, String namespacePrefix, String namespaceURI)
-  {                                 
-    NamespaceInfo nsInfo = new NamespaceInfo();      
-    nsInfo.prefix = namespacePrefix;
-    nsInfo.uri = namespaceURI;      
-   
-    NamespaceInfo matchingNamespaceInfo = getNamespaceInfoForURI(namespaceURI);
-    if (matchingNamespaceInfo != null)
-    {                           
-      nsInfo.locationHint = matchingNamespaceInfo.locationHint;
-    }                                      
-
-    internalAddNamespaceInfo(namespacePrefix, nsInfo);
-
-    super.visitXMLNamespaceAttribute(attr, namespacePrefix, namespaceURI);
-  } 
-                 
-  public void visitXSISchemaLocationValuePair(String uri, String locationHint)
-  {
-    setLocationHintForURI(uri, locationHint);
-  }   
-
-  public void addNamespaceInfo(NamespaceInfo info)
-  {                           
-    String key  = (info.prefix != null) ? info.prefix : ""; //$NON-NLS-1$
-    internalAddNamespaceInfo(key, info);
-  }
-
-  protected void internalAddNamespaceInfo(String key, NamespaceInfo info)
-  {
-    hashtable.put(key, info);
-  }
-
-  protected void addNamespaceInfoList(List list, boolean isImplied)
-  {       
-    if (list != null)
-    {
-      for (Iterator i = list.iterator(); i.hasNext(); )
-      {
-        NamespaceInfo info = (NamespaceInfo)i.next();
-        NamespaceInfo clone = new NamespaceInfo(info);    
-        if (isImplied)
-        {
-          clone.setProperty("isImplied", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-        addNamespaceInfo(clone);
-      }
-    }
-  }
-
-  public void addNamespaceInfoList(List list)
-  {  
-    addNamespaceInfoList(list, false);  
-  }
-
-  public void visitXSINoNamespaceSchemaLocationAttribute(Attr attr, String locationHint)
-  {
-    addNoNamespaceSchemaLocation(locationHint);
-  } 
-
-  public void addNoNamespaceSchemaLocation(String locationHint)
-  {
-    NamespaceInfo nsInfo = new NamespaceInfo();      
-    nsInfo.prefix = null;
-    nsInfo.uri = "";       //$NON-NLS-1$
-    nsInfo.locationHint = locationHint;  
-    internalAddNamespaceInfo("", nsInfo); //$NON-NLS-1$
-  } 
-
-  public void addNamespaceInfo(String prefix, String uri, String locationHint)
-  {
-    NamespaceInfo nsInfo = new NamespaceInfo();      
-    nsInfo.prefix = prefix;
-    nsInfo.uri = uri;      
-    nsInfo.locationHint = locationHint;  
-    internalAddNamespaceInfo(prefix != null ? prefix : "", nsInfo); //$NON-NLS-1$
-  } 
-
-  public void addElement(Element element)
-  {   
-    visitElement(element);  
-  }      
-         
-  public void addElementLineage(Element targetElement)
-  {
-    List list = NamespaceTable.getElementLineage(targetElement);                 
-    for (Iterator i = list.iterator(); i.hasNext(); )
-    {
-      Element element = (Element)i.next();
-      addElement(element);
-    }            
-  }
-
-  public static List getElementLineage(Element element)
-  {          
-    List result = new ArrayList();             
-    for (Node node = element; node != null; node = node.getParentNode())
-    {                               
-      if (node.getNodeType() == Node.ELEMENT_NODE)
-      {
-        result.add(0, node);                      
-      }
-      else
-      {
-        break;
-      }
-    }  
-    return result;
-  }    
-
-  public Collection getNamespaceInfoCollection()
-  {              
-    return hashtable.values();
-  } 
-
-  public List getNamespaceInfoList()
-  {                               
-    List list = new Vector();
-    list.addAll(hashtable.values());
-    return list;
-  }
-} 
diff --git a/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSEAdapter.java b/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSEAdapter.java
deleted file mode 100644
index 409ffa0..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSEAdapter.java
+++ /dev/null
@@ -1,439 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.emf2xml;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.wst.common.internal.emf.resource.EMF2DOMAdapter;
-import org.eclipse.wst.common.internal.emf.resource.EMF2DOMAdapterImpl;
-import org.eclipse.wst.common.internal.emf.resource.EMF2DOMRenderer;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-import org.eclipse.wst.common.internal.emf.resource.TranslatorResource;
-import org.eclipse.wst.common.internal.emf.utilities.Assert;
-import org.eclipse.wst.common.internal.emf.utilities.DOMUtilities;
-import org.eclipse.wst.common.internal.emf.utilities.FeatureValueConversionException;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-public class EMF2DOMSSEAdapter extends EMF2DOMAdapterImpl implements INodeAdapter {
-	
-	private Class resourceClass;
-	public EMF2DOMSSEAdapter(Node node, EMF2DOMRenderer renderer, Translator translator) {
-		super(node, renderer, translator);
-	}
-
-	public EMF2DOMSSEAdapter(Notifier object, Node node, EMF2DOMRenderer renderer, Translator translator) {
-		super(object, node, renderer, translator);
-	}
-
-	public EMF2DOMSSEAdapter(TranslatorResource resource, Document document, EMF2DOMRenderer renderer, Translator translator) {
-		super(resource, document, renderer, translator);
-	}
-
-	protected String calcIndentString(Node node) {
-		Assert.isNotNull(node);
-		Assert.isNotNull(node.getParentNode(), "Node must be connected into the tree"); //$NON-NLS-1$
-
-		Node parent = node.getParentNode();
-
-		String indentString = getNewlineString(node);
-
-		// Find indentation string for this node based on its sibling or
-		// parent
-		Node previousSibling = DOMUtilities.getPreviousNodeSibling(node);
-		if (previousSibling != null) {
-			indentString = primGetIndentString(previousSibling);
-		}
-		else {
-			String parentIndentString = primGetIndentString(parent);
-			indentString = parentIndentString + DOMUtilities.INDENT_STRING;
-		}
-		return indentString;
-	}
-
-	/*
-	 * Prints out a DOM notification for debugging.
-	 */
-	protected void debugDOMNotify(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue) {
-		if (fDebug) {
-			String notifType = ""; //$NON-NLS-1$
-			switch (eventType) {
-				case INodeNotifier.ADD :
-					notifType = "ADD"; //$NON-NLS-1$
-					break;
-				case INodeNotifier.REMOVE :
-					notifType = "REMOVE"; //$NON-NLS-1$
-					break;
-				case INodeNotifier.CHANGE :
-					notifType = "CHANGE"; //$NON-NLS-1$
-					break;
-				case INodeNotifier.CONTENT_CHANGED :
-					notifType = "CONTENT_CHANGED"; //$NON-NLS-1$
-					break;
-				case INodeNotifier.STRUCTURE_CHANGED :
-					notifType = "STRUCTURE_CHANGE"; //$NON-NLS-1$
-					break;
-			}
-			Logger.log(Logger.INFO_DEBUG, "DOM Change: " + notifType); //$NON-NLS-1$
-			Logger.log(Logger.INFO_DEBUG, "\tnotifier      : " + notifier); //$NON-NLS-1$
-			Logger.log(Logger.INFO_DEBUG, "\tchangedFeature: " + changedFeature); //$NON-NLS-1$
-			Logger.log(Logger.INFO_DEBUG, "\toldValue      : " + oldValue); //$NON-NLS-1$
-			Logger.log(Logger.INFO_DEBUG, "\tnewValue      : " + newValue); //$NON-NLS-1$
-		}
-	}
-
-	protected void disableUndoManagementIfNecessary() {
-		IDOMModel model = getXMLModel();
-		if (model != null && model.getUndoManager() != null)
-			model.disableUndoManagement();
-	}
-
-	protected void enableUndoManagement() {
-		IDOMModel model = getXMLModel();
-		if (model != null && model.getUndoManager() != null)
-			model.enableUndoManagement();
-	}
-
-	protected String getNewlineString(Node node) {
-		/*
-		 * We should always have IDOMNode, and IStructuredDocument, and
-		 * consquently a valid "preferred" line delimiter, but just to be
-		 * safe, we'll assign something by default.
-		 */
-		if (node instanceof IDOMNode) {
-			IDOMNode xmlNode = (IDOMNode) node;
-			IStructuredDocument document = xmlNode.getStructuredDocument();
-			if (document != null) {
-				return document.getLineDelimiter();
-			}
-		}
-		return DOMUtilities.NEWLINE_STRING;
-	}
-
-	protected IDOMModel getXMLModel() {
-		if (getNode() != null)
-			return ((IDOMNode) getNode()).getModel();
-		return null;
-	}
-
-	protected IDOMNode getXMLNode() {
-		return (IDOMNode) getNode();
-	}
-
-	/*
-	 * Do nothing for SSE, we will tolerate anything they add
-	 */
-	protected void handleFeatureValueConversionException(FeatureValueConversionException ex) {
-		// Do nothing
-	}
-
-	/*
-	 * Do nothing for SSE, we will tolerate anything they add
-	 */
-	protected void handleInvalidMultiNodes(String nodeName) {
-		// Do nothing
-	}
-
-	protected void indent(Node node, Translator map) {
-		Assert.isNotNull(node.getParentNode(), "Node must be connected into the tree"); //$NON-NLS-1$
-		Assert.isNotNull(node);
-
-		String indentString = calcIndentString(node);
-
-		// Indent before the start tag
-		indentStartTag(indentString, node, map);
-
-		// Indent before the end tag
-		indentEndTag(indentString, node, map);
-	}
-
-	/**
-	 * Indent before the end tag of the <node>passed in.
-	 */
-	protected void indentEndTag(String indentString, Node node, Translator map) {
-		if (!map.shouldIndentEndTag(node))
-			return;
-		String domPath = map.getDOMPath();
-
-		if ((!map.isManagedByParent() && !map.isDOMTextValue()) || (map.isManagedByParent() && domPath.length() != 0) && node.getNodeName().equals(domPath)) {
-			Text newWS = node.getOwnerDocument().createTextNode(getNewlineString(node) + indentString); //$NON-NLS-1$
-			DOMUtilities.insertBeforeNode(node, newWS, null);
-		}
-	}
-
-	/**
-	 * Indent before the start tag of the <node>passed in.
-	 */
-	protected void indentStartTag(String indentString, Node node, Translator map) {
-		Node parent = node.getParentNode();
-		Text newWS = node.getOwnerDocument().createTextNode(getNewlineString(node) + indentString); //$NON-NLS-1$
-		DOMUtilities.insertAfterNode(parent, newWS, DOMUtilities.getPreviousNodeSibling(node));
-	}
-
-	protected boolean isEmptyTag(Element parent) {
-		return ((IDOMElement) parent).isEmptyTag();
-	}
-
-	/*
-	 * This method is called when the DOM node changes. It attempts to update
-	 * MOF object based on the changes.
-	 */
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-
-		if (!isNotificationEnabled())
-			return;
-
-		debugDOMNotify(notifier, eventType, changedFeature, oldValue, newValue);
-
-		if (notifier != getNode() && eventType != INodeNotifier.CHANGE) {
-			// This is the case where the notification was sent from a
-			// sub node. Use the notifiers name to determine which
-			// MOF feature to update. Note that is is assumed that if
-			// the eventType is CHANGE then it attribute on a path node
-			// changing. This was put in for the EGL group.
-			if (notifier instanceof Element) {
-				if (eventType == INodeNotifier.STRUCTURE_CHANGED || eventType == INodeNotifier.CONTENT_CHANGED || eventType == INodeNotifier.CHANGE) {
-					Element notifyingNode = (Element) notifier;
-					Translator map = findTranslator(notifyingNode.getNodeName(), false);
-					if (map != null)
-						updateMOFFeature(map, getNode(), getEObject());
-				}
-			}
-		}
-		else {
-			// Update everything on STRUCTURE_CHANGE or CONTENT_CHANGE.
-			// Other event types occur too often.
-			if (eventType == INodeNotifier.STRUCTURE_CHANGED || eventType == INodeNotifier.CONTENT_CHANGED) {
-				updateMOF();
-			}
-			// Update just the attribute that changed.
-			else if (eventType == INodeNotifier.CHANGE) {
-				Translator map = findTranslator(changedFeature.toString(), true);
-				if (map != null)
-					updateMOFFeature(map, getNode(), getEObject());
-			}
-		}
-	}
-
-	protected void postUpdateDOMFeature(Translator map, Node node, EObject mofObject) {
-		enableUndoManagement();
-	}
-
-	protected void preUpdateDOMFeature(Translator map, Node node, EObject mofObject) {
-		super.preUpdateDOMFeature(map, node, mofObject);
-		disableUndoManagementIfNecessary();
-	}
-
-	protected void primAddDOMAdapter(Node aNode, EMF2DOMAdapter anAdapter) {
-		((IDOMNode) aNode).addAdapter((EMF2DOMSSEAdapter) anAdapter);
-	}
-
-	/**
-	 * Create an adapter for a child DOM node
-	 * 
-	 * @param node
-	 *            org.w3c.dom.Node The node to create the adapter for.
-	 */
-	protected EMF2DOMAdapter primCreateAdapter(EObject mofObject, Translator childMap) {
-		Element newNode = createNewNode(mofObject, childMap);
-		return new EMF2DOMSSEAdapter(mofObject, newNode, fRenderer, childMap);
-	}
-
-	/**
-	 * Create an adapter for a child DOM node
-	 * 
-	 * @param node
-	 *            org.w3c.dom.Node The node to create the adapter for.
-	 */
-	protected EMF2DOMAdapter primCreateAdapter(Node node, Translator childMap) {
-		return new EMF2DOMSSEAdapter(node, fRenderer, childMap);
-	}
-	protected EMF2DOMAdapter createAdapter(Node node, Translator childMap) {
-
-		//Assert.isNotNull(childMap.getChildAdapterClass());
-		Assert.isNotNull(node);
-
-		EMF2DOMAdapter adapter = primGetExistingAdapter(node);
-
-		if (adapter != null) {
-			if (adapter.isMOFProxy() || adapter.getTarget() == null) {
-				removeDOMAdapter(node, adapter);
-				if (adapter.getTarget() != null) {
-					adapter.getTarget().eAdapters().remove(adapter);
-				}
-				adapter = null;
-			}
-		} else {
-			adapter = primCreateAdapter(node, childMap);
-		}
-		return adapter;
-	}
-	protected void addDOMAdapter(Node childNode) {
-
-		// Only add the adapter if this is an child node that will not be
-		// adapted. For instance a subtree that maps to a MOF attribute
-		// setting.
-		if (childNode.getNodeType() == Node.ELEMENT_NODE) {
-			EMF2DOMAdapter attrAdapter = primGetExistingAdapter(childNode);
-
-			if (attrAdapter == null || attrAdapter.getNode() != getNode()) {
-				// If the node is adapted, but not by this adapter then remove
-				// it. This happens to non-object children when the parent tag
-				// name is changed.
-				removeDOMAdapter(childNode, attrAdapter);
-
-				if (fDebug) {
-					org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\tCHILD: Adding DOM adapter: " + this); //$NON-NLS-1$
-					org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\t\tto: " + childNode); //$NON-NLS-1$
-				}
-				primAddDOMAdapter(childNode, this);
-			}
-		}
-	}
-	
-	protected EMF2DOMAdapter primGetExistingAdapter(Node aNode) {
-		INodeNotifier sseNode = (INodeNotifier) aNode;
-		Collection adapters = sseNode.getAdapters();
-		for (Iterator iterator = adapters.iterator(); iterator.hasNext();) {
-			INodeAdapter adapter = (INodeAdapter) iterator.next();
-			// First Check if it's an EMF2DOMAdapter
-			if (adapter != null && adapter.isAdapterForType(EMF2DOMAdapter.ADAPTER_CLASS)) {
-				// Cast to EMF2DOMAdapter
-				EMF2DOMSSEAdapter e2DAdapter = (EMF2DOMSSEAdapter) adapter;
-				Object adapterTarget = e2DAdapter.getTarget();
-				
-				//Handle the cases where either adapter's target is null 
-				if ((getTarget() == null) || (adapterTarget == null))
-					if(resourceClass.equals(e2DAdapter.getResourceClass()))
-						return e2DAdapter;
-					else
-						continue;
-				
-				
-				// Check if target is an EMF resource
-				if (getTarget() instanceof Resource) {
-					/*
-					 * Now check if it's the right one (Multiple resources
-					 * could be attached)
-					 */
-					if (adapterTarget != null && adapterTarget == getTarget()) {
-						return e2DAdapter;
-					}
-				}
-				else {
-					// Check if targets are EObjects with the same resources
-					EObject myTarget = (EObject) getTarget();
-					/*
-					 * Now check if it's the right one (Multiple resources could
-					 * be attached)
-					 */
-					if (adapterTarget != null && ((EObject)adapterTarget).eResource() == myTarget.eResource()) {
-						return e2DAdapter;
-					}
-				}
-				
-				if (adapterTarget instanceof EObject) {
-					if (((EObject) e2DAdapter.getTarget()).eResource() == null) {
-						return e2DAdapter;
-					}
-				}
-			}
-		}
-		return null;
-	}
-
-	protected String primGetIndentString(Node node) {
-		IStructuredDocument flatModel = ((IDOMNode) node).getStructuredDocument();
-		int nodeStartOff = ((IDOMNode) node).getStartOffset();
-
-		int startOff = Math.max(0, nodeStartOff - 100);
-		int endOff = nodeStartOff;
-
-		try {
-			String text = flatModel.get(startOff, endOff - startOff);
-
-			int inx = text.length() - 1;
-			if (inx >= 0) {
-				for (; inx >= 0; inx--) {
-					char ch = text.charAt(inx);
-					if (Character.isWhitespace(ch) && ch != '\n' && ch != '\r') {
-						continue;
-					}
-					inx++;
-					break;
-				}
-
-				return text.substring(inx);
-			}
-		}
-		catch (BadLocationException ex) {
-			Logger.logException(ex);
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	protected void removeDOMAdapter(Node aNode, EMF2DOMAdapter anAdapter) {
-		((IDOMNode) aNode).removeAdapter((INodeAdapter) anAdapter);
-	}
-
-
-	protected void reorderDOMChild(Node parentNode, Node childNode, Node insertBeforeNode, Translator map) {
-		super.reorderDOMChild(parentNode, childNode, insertBeforeNode, map);
-		// Since reordering deletes all the whitespace before the node, we
-		// must indent .
-		if (insertBeforeNode != null && insertBeforeNode.getNodeType() == Node.ELEMENT_NODE)
-			indentStartTag(calcIndentString(insertBeforeNode), insertBeforeNode, map);
-		else
-			indentStartTag(calcIndentString(childNode), childNode, map);
-	}
-
-	protected void setEmptyTag(Element element) {
-		((IDOMElement) element).setEmptyTag(true);
-	}
-
-	public void updateDOM() {
-		if (!isNotificationEnabled())
-			return;
-		try {
-			disableUndoManagementIfNecessary();
-			primUpdateDOM();
-		}
-		finally {
-			enableUndoManagement();
-		}
-	}
-
-	public Class getResourceClass() {
-		return resourceClass;
-	}
-
-	protected void initChildTranslators() {
-		if (fRenderer != null && fRenderer.getResource() != null)
-			resourceClass = fRenderer.getResource().getClass();
-		super.initChildTranslators();
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERenderer.java b/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERenderer.java
deleted file mode 100644
index 8b23e11..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERenderer.java
+++ /dev/null
@@ -1,644 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.emf2xml;
-
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.jem.util.emf.workbench.ProjectResourceSet;
-import org.eclipse.jem.util.emf.workbench.WorkbenchResourceHelperBase;
-import org.eclipse.wst.common.internal.emf.resource.EMF2DOMAdapter;
-import org.eclipse.wst.common.internal.emf.resource.EMF2DOMRenderer;
-import org.eclipse.wst.common.internal.emf.resource.TranslatorResource;
-import org.eclipse.wst.common.internal.emf.utilities.DOMUtilities;
-import org.eclipse.wst.common.internal.emfworkbench.WorkbenchResourceHelper;
-import org.eclipse.wst.common.internal.emfworkbench.integration.ResourceSetWorkbenchEditSynchronizer;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.model.ModelLifecycleEvent;
-import org.eclipse.wst.sse.core.internal.provisional.IModelLifecycleListener;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IModelStateListener;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.document.DocumentTypeImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Node;
-
-
-public class EMF2DOMSSERenderer extends EMF2DOMRenderer implements IModelStateListener, IModelLifecycleListener {
-
-	protected Object aboutToChangeNode = null;
-
-	protected boolean isBatchChanges = false;
-
-	private boolean isSaving = false;
-
-	private IModelManager modelManager;
-	
-	private Class resourceClass;
-
-	/** The XML DOM model */
-	protected IDOMModel xmlModel;
-
-	/** Used internally; the unique id for the xml model */
-	protected String xmlModelId;
-
-	protected boolean xmlModelReverted = false;
-
-	public EMF2DOMSSERenderer() {
-		super();
-	}
-
-	public void accessForRead() {
-		if (!resource.isNew()) {
-			String id = getModelManagerId();
-			getModelManager().getExistingModelForRead(id);
-		}
-	}
-
-	public void accessForWrite() {
-		modelAccessForWrite();
-	}
-
-	/**
-	 * see batchModelEnd
-	 * 
-	 */
-
-	public void batchModeEnd() {
-		getXMLModel().changedModel();
-		setRootNodeAdapterNotificationEnabled(true);
-		isBatchChanges = false;
-	}
-
-	/**
-	 * batchModeStart and batchModeEnd is a pair that controls notifications,
-	 * and tread access. They should always be called in a try/finally block.
-	 * 
-	 * setBatchModel begins the processing where notifications are not sent
-	 * out on each change, but saved up until the endBatchMode called.
-	 * 
-	 * This pair of calls can also, indirectly, "lock" the DOM Model to access
-	 * from only one thread, so it should not be locked for long periods of
-	 * time. That's also why it is important to have the endBatchMode in a
-	 * finally block to be sure it is always called, or the DOM will be left
-	 * in a locked, unusable, state and only shortly away from severere
-	 * program error.
-	 * 
-	 * <pre><code>
-	 * Example
-	 * </code>
-	 *  
-	 *  try { 
-	 *  		batchModelStart();
-	 *  		...do a some work ...
-	 *  		}
-	 *  	finally {
-	 *  		endBatchMode();
-	 *  		}
-	 *  
-	 *  
-	 * </pre>
-	 */
-	public void batchModeStart() {
-		isBatchChanges = true;
-		getXMLModel().aboutToChangeModel();
-		setRootNodeAdapterNotificationEnabled(false);
-	}
-
-	private void cacheSynchronizationStamp() {
-		IFile file = WorkbenchResourceHelper.getFile(resource);
-		if (file != null) {
-			if (xmlModel != null)
-				xmlModel.resetSynchronizationStamp(file);
-		}
-	}
-
-	/**
-	 * Create a new Document given
-	 * 
-	 * @aResource.
-	 */
-	protected void createDocument() {
-		TranslatorResource res = getResource();
-		res.setDefaults();
-		IFile file = WorkbenchResourceHelper.getFile(resource);
-		InputStream is = DOMUtilities.createHeaderInputStream(res.getDoctype(), res.getPublicId(), res.getSystemId());
-		if (is == null)
-			return;
-		try {
-			try {
-				List folders = new ArrayList();
-				IContainer container = file.getParent();
-				while (null != container && !container.exists() && container instanceof IFolder) {
-					folders.add(container);
-					container = container.getParent();
-				}
-				IFolder folder = null;
-				for (int i = 0; i < folders.size(); i++) {
-					folder = (IFolder) folders.get(i);
-					folder.create(true, true, null);
-				}
-				file.create(is, true, null);
-				file.setLocal(true, 1, null);
-			}
-			catch (CoreException e1) {
-				Logger.logException(e1);
-			}
-			finally {
-				if (null != is) {
-					is.close();
-				}
-			}
-			initializeXMLModel(file, resource.getWriteCount() != 0);
-		}
-		catch (IOException ex) {
-			Logger.log(Logger.ERROR, "IWAE0017E Unexpected IO exception occurred creating xml document");//$NON-NLS-1$
-		}
-	}
-
-	protected void createDOMTreeIfNecessary() {
-		if (needsToCreateDOM)
-			createDOMTree();
-	}
-
-	protected EMF2DOMAdapter createRootDOMAdapter() {
-		return new EMF2DOMSSEAdapter(getResource(), document, this, getResource().getRootTranslator());
-	}
-
-	public void deRegisterAsModelLifecycleListener() {
-		if (xmlModel != null)
-			xmlModel.removeModelLifecycleListener(this);
-	}
-
-	public void deRegisterAsModelStateListener() {
-		if (xmlModel != null)
-			xmlModel.removeModelStateListener(this);
-	}
-
-	private void deregisterFromXMLModel() {
-		
-		deRegisterAsModelStateListener();
-		deRegisterAsModelLifecycleListener();
-		// This try/catch block is a hack to fix defect 204114. This occurs
-		// because
-		// the model manager plugin is shut down and unloaded before the j2ee
-		// plugin.
-		// Calling getModelManager() can result in a class cast exception that
-		// should
-		// be ignored.
-		// ModelManager mgr = null;
-		try {
-			getModelManager();
-		}
-		catch (ClassCastException exc) {
-			return;
-		}
-		if (xmlModel != null) {
-			int writeCount = resource.getWriteCount();
-			int readCount = resource.getReadCount();
-			for (int i = 0; i < writeCount; i++)
-				xmlModel.releaseFromEdit();
-			for (int ii = 0; ii < readCount; ii++)
-				xmlModel.releaseFromRead();
-		}
-		EMF2DOMAdapter adapter = (EMF2DOMAdapter) EcoreUtil.getAdapter(resource.eAdapters(), EMF2DOMAdapter.ADAPTER_CLASS);
-		if (adapter != null) {
-			adapter.removeAdapters(adapter.getNode());
-		}
-		xmlModel = null;
-		xmlModelId = null;
-	}
-
-	public void doSave(OutputStream outputStream, Map options) throws IOException {
-
-		try {
-			isSaving = true;
-			if (null != outputStream) {
-				throw new RuntimeException(this.getClass().getName() + " should not use an OutputStream for saving");} //$NON-NLS-1$
-			createDOMTreeIfNecessary();
-			ResourceSetWorkbenchEditSynchronizer synchronizer = (ResourceSetWorkbenchEditSynchronizer) ((ProjectResourceSet) resource.getResourceSet()).getSynchronizer();
-			IFile aFile = WorkbenchResourceHelper.getFile(resource);
-			try {
-				synchronizer.preSave(aFile, resource);
-				xmlModel.save(aFile);
-			}
-			catch (CoreException ex) {
-				synchronizer.removeFromRecentlySavedList(aFile);
-				Logger.logException(ex);
-			}
-			cacheSynchronizationStamp();
-		}
-		finally {
-			isSaving = false;
-		}
-	}
-
-	public EMF2DOMAdapter getExistingDOMAdapter(Node node) {
-		//IDOMNode xNode = (IDOMNode) node;
-		//return (EMF2DOMSSEAdapter) xNode.getAdapterFor(EMF2DOMAdapter.ADAPTER_CLASS);
-
-		INodeNotifier sseNode = (INodeNotifier) node;
-		Collection adapters = sseNode.getAdapters();
-		for (Iterator iterator = adapters.iterator(); iterator.hasNext();) {
-			INodeAdapter adapter = (INodeAdapter) iterator.next();
-			// First Check if it's an EMF2DOMAdapter
-			if (adapter != null && adapter.isAdapterForType(EMF2DOMAdapter.ADAPTER_CLASS)) {
-				// Cast to EMF2DOMSSEAdapter
-				EMF2DOMSSEAdapter e2DAdapter = (EMF2DOMSSEAdapter) adapter;
-				//Handle the cases where either adapter's target is null 
-				//Use the resourceClass to make sure the resource type is identical
-				if (getResource() == null || e2DAdapter.getTarget() == null)
-					if(resourceClass.equals(e2DAdapter.getResourceClass()))
-						return e2DAdapter;
-					else
-						continue;
-				
-				// First check if targets are resources
-				if (e2DAdapter.getTarget() instanceof Resource) {
-					/*
-					 * Now check if it's the right one (Multiple resources
-					 * could be attached)
-					 */
-					if (e2DAdapter.getTarget() == getResource()) {
-						return e2DAdapter;
-					}
-				} else {
-					// Check if targets are EObjects with the same resources
-					TranslatorResource myTarget = getResource();
-					EObject adapterTarget = (EObject) e2DAdapter.getTarget();
-					/*
-					 * Now check if it's the right one (Multiple resources could
-					 * be attached)
-					 */
-					if (adapterTarget.eResource() == myTarget || adapterTarget.eResource() == null) {
-						return e2DAdapter;
-					}
-				}
-			}
-		}
-		return null;
-	
-	}
-
-	protected IModelManager getModelManager() {
-		if (modelManager == null)
-			modelManager = StructuredModelManager.getModelManager();
-		return modelManager;
-	}
-
-	/**
-	 * Return id used to key the XML resource in the XML ModelManager.
-	 */
-	protected String getModelManagerId() {
-		if (xmlModelId == null) {
-			IFile file = WorkbenchResourceHelper.getFile(getResource());
-			if (file != null) {
-				xmlModelId = getModelManager().calculateId(file);
-			}
-			else {
-				xmlModelId = resource.getURI() + Long.toString(System.currentTimeMillis());
-			}
-		}
-		return xmlModelId;
-	}
-
-	protected ResourceSet getResourceSet() {
-		return resource == null ? null : resource.getResourceSet();
-	}
-
-	/**
-	 * Return the DOM model for this resource.
-	 */
-	public IDOMModel getXMLModel() {
-		return xmlModel;
-	}
-
-	public String getXMLModelId() {
-		return xmlModelId;
-	}	
-	
-	private IDOMModel initializeXMLModel(IFile file, boolean forWrite) throws UnsupportedEncodingException, IOException {
-		if (file == null || !file.exists())
-			throw new FileNotFoundException((file == null) ? "null" : file.getFullPath().toOSString()); //$NON-NLS-1$
-		try {
-			IModelManager manager = getModelManager();
-			String id = manager.calculateId(file);			
-			if (forWrite) {
-				IDOMModel mod = (IDOMModel)manager.getExistingModelForEdit(id);
-				if (mod == null)
-					setXMLModel((IDOMModel) manager.getModelForEdit(file));
-				else {
-					setXMLModel(mod);
-				}
-			}
-			else {
-				IDOMModel mod = (IDOMModel)manager.getExistingModelForRead(id);
-				if (mod == null)
-					setXMLModel((IDOMModel) manager.getModelForRead(file));
-				else {
-					setXMLModel(mod);
-				}
-			}
-			setXMLModelId(getXMLModel().getId());
-			needsToCreateDOM = false;
-		}
-		catch (CoreException e) {
-			Logger.logException(e);
-			return null;
-		}
-		String id = getXMLModel().getId();
-		syncReferenceCounts(id, forWrite);
-		if (xmlModel != null)
-			document = xmlModel.getDocument();
-		return xmlModel;
-	}
-
-	public boolean isBatchMode() {
-		return isBatchChanges;
-	}
-
-	public boolean isModified() {
-		return (getXMLModel() != null && getXMLModel().isDirty());
-	}
-
-	public boolean isShared() {
-		
-		if( xmlModel == null) { //resource could be in process of being unloaded - check with model manager
-			String id = getModelManagerId();
-			return getModelManager().isShared(id);
-		}
-		if (getResourceSet() == null)
-			return false;
-		return xmlModel.isShared();
-	}
-
-	public boolean isSharedForWrite() {
-		if (getResourceSet() == null || xmlModel == null)
-			return false;
-		return xmlModel.isSharedForEdit();
-	}
-
-	protected void loadDocument(InputStream in, Map options) throws IOException {
-		if (null != in) {
-			throw new RuntimeException(this.getClass().getName() + " should not use an InputStream for loading");} //$NON-NLS-1$
-		IFile file = WorkbenchResourceHelper.getFile(resource);
-		initializeXMLModel(file, (resource.getWriteCount() != 0));
-		cacheSynchronizationStamp();
-	}
-
-	protected boolean managesDOMAdapters() {
-		return false;
-	}
-
-	public void modelAboutToBeChanged(IStructuredModel model) {
-		if (model.getStructuredDocument() != null)
-			aboutToChangeNode = model.getStructuredDocument().getFirstStructuredDocumentRegion();
-	}
-
-	public void modelAboutToBeReinitialized(IStructuredModel structuredModel) {
-		// TODO Auto-generated method stub
-
-	}
-
-	private void modelAccessForWrite() {
-		String id = getModelManagerId();
-		getModelManager().getExistingModelForEdit(id);
-	}
-
-	public void modelChanged(IStructuredModel model) {
-		if (isBatchChanges)
-			return;
-		try {
-			if (aboutToChangeNode != null && model.getStructuredDocument() != null
-					&& model.getStructuredDocument().getFirstStructuredDocumentRegion() != aboutToChangeNode) {
-				String id = getModelManagerId();
-				IStructuredModel tempModel = null;
-				try {
-					tempModel = getModelManager().getExistingModelForEdit(id);
-					xmlModelReverted = true;
-					resource.unload();
-				} finally {
-					if (tempModel != null && (tempModel.getReferenceCountForEdit() > 0)) {
-						tempModel.releaseFromEdit();
-					}
-				}
-			}
-		} finally {
-			aboutToChangeNode = null;
-		}
-	} 
-	
-	public void modelDirtyStateChanged(IStructuredModel model, boolean isDirty) {
-		if (!isDirty && resource.isModified()) { // The XMLModel was saved
-			resource.setModified(false);
-			long stamp = WorkbenchResourceHelper.computeModificationStamp(resource);
-			WorkbenchResourceHelper.setSynhronizationStamp(resource, stamp);
-			IProject proj = WorkbenchResourceHelper.getProject(resource);
-			ResourceSetWorkbenchEditSynchronizer synchronizer = (ResourceSetWorkbenchEditSynchronizer) ((ProjectResourceSet) WorkbenchResourceHelperBase.getResourceSet(proj)).getSynchronizer();
-			IFile aFile = WorkbenchResourceHelper.getFile(resource);
-			synchronizer.preSave(aFile, resource);
-		}
-		if (isDirty)
-			resource.setModified(true);
-	}
-
-	public void modelReinitialized(IStructuredModel structuredModel) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void modelResourceDeleted(IStructuredModel model) {
-		// Do nothing
-	}
-
-	public void modelResourceMoved(IStructuredModel oldModel, IStructuredModel newModel) {
-		// Do nothing
-	}
-
-	/**
-	 * This method is called just prior to being removed from the ResourceSet.
-	 * Ensure that all reference counts to the XMLModel are removed.
-	 */
-	public void preDelete() {
-		if (resource.isLoaded())
-			deregisterFromXMLModel();
-	}
-
-	public void preUnload() {
-		deregisterFromXMLModel();
-	}
-
-	public void processPostModelEvent(ModelLifecycleEvent event) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void processPreModelEvent(ModelLifecycleEvent event) {
-		if (!isSaving) {
-			if (event.getType() == ModelLifecycleEvent.MODEL_SAVED) {
-				ResourceSetWorkbenchEditSynchronizer synchronizer = (ResourceSetWorkbenchEditSynchronizer) ((ProjectResourceSet) resource.getResourceSet()).getSynchronizer();
-				IFile aFile = WorkbenchResourceHelper.getFile(resource);
-				synchronizer.preSave(aFile, resource);
-			}
-		}
-	}
-
-
-	public void registerAsModelLifecycleListener() {
-		this.xmlModel.addModelLifecycleListener(this);
-	}
-
-	/**
-	 * Insert the method's description here. Creation date: (9/7/2001 10:49:53
-	 * AM)
-	 */
-	public void registerAsModelStateListener() {
-		this.xmlModel.addModelStateListener(this);
-	}
-
-	public void releaseFromRead() {
-		if (xmlModel != null)
-			xmlModel.releaseFromRead();
-	}
-
-	public void releaseFromWrite() {
-		if (xmlModel != null)
-			xmlModel.releaseFromEdit();
-	}
-
-	public void removeDOMAdapter(Node aNode, EMF2DOMAdapter anAdapter) {
-		((IDOMNode) aNode).removeAdapter((EMF2DOMSSEAdapter) anAdapter);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.internal.util.emf.xml.EMF2DOMRenderer#replaceDocumentType(java.lang.String,
-	 *      java.lang.String, java.lang.String)
-	 */
-	public void replaceDocumentType(String docTypeName, String publicId, String systemId) {
-		if (document == null)
-			return;
-		DocumentTypeImpl docType = (DocumentTypeImpl) document.getDoctype();
-		if (docType == null)
-			return;
-		if (publicId == null && systemId == null)
-			document.removeChild(docType);
-		else {
-			docType.setPublicId(publicId);
-			docType.setSystemId(systemId);
-		}
-	}
-
-	/**
-	 * @deprecated use batchModeStart and BatchModeEnd instead even if you do
-	 *             not use batchModelStart/End, you still need to use the
-	 *             try/finally pattern documented there.
-	 */
-
-	public void setBatchMode(boolean isBatch) {
-
-		// This is some extra processing for clients to know they may be using
-		// incorrectly
-		if (isBatch) {
-			if (isBatchChanges) {
-				Logger.log(Logger.INFO_DEBUG, "setBatch was set to true when it was already true. This can be an indication of invalid calling order"); //$NON-NLS-1$
-			}
-		}
-
-
-		if (isBatch) {
-			batchModeStart();
-		}
-		else {
-			batchModeEnd();
-		}
-	}
-
-	private void setRootNodeAdapterNotificationEnabled(boolean b) {
-		EObject root = resource.getRootObject();
-		if (root != null) {
-			EMF2DOMAdapter adapter = (EMF2DOMAdapter) EcoreUtil.getExistingAdapter(root, EMF2DOMAdapter.ADAPTER_CLASS);
-			if (adapter != null) {
-				adapter.setNotificationEnabled(b);
-				if (b)
-					adapter.updateDOM();
-			}
-		}
-	}
-
-	/**
-	 * Return the DOM model for this resource.
-	 */
-	public void setXMLModel(IDOMModel xmlModel) {
-		deRegisterAsModelStateListener();
-		deRegisterAsModelLifecycleListener();
-		this.xmlModel = xmlModel;
-		registerAsModelStateListener();
-		registerAsModelLifecycleListener();
-	}
-
-	public void setXMLModelId(String id) {
-		xmlModelId = id;
-	}
-
-	private void syncReferenceCounts(String id, boolean forWrite) {
-		int editIndex = 0, readIndex = 0;
-		if (forWrite)
-			editIndex++;
-		else
-			readIndex++;
-		int writeCount = resource.getWriteCount();
-		int readCount = resource.getReadCount();
-		for (int i = writeCount; i > editIndex; i--)
-			modelManager.getExistingModelForEdit(id);
-		for (int i = readCount; i > readIndex; i--)
-			modelManager.getExistingModelForRead(id);
-	}
-
-	public boolean useStreamsForIO() {
-		return false;
-	}
-
-	public boolean wasReverted() {
-		return xmlModelReverted;
-	}
-
-	public void setResource(TranslatorResource resource) {
-		super.setResource(resource);
-		if (resource != null)
-			resourceClass = resource.getClass();
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERendererFactory.java b/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERendererFactory.java
deleted file mode 100644
index 9b79123..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERendererFactory.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.emf2xml;
-
-import org.eclipse.wst.common.internal.emf.resource.Renderer;
-import org.eclipse.wst.common.internal.emf.resource.RendererFactory;
-
-/**
- * @author schacher
- */
-public class EMF2DOMSSERendererFactory extends RendererFactory {
-
-	public static final EMF2DOMSSERendererFactory INSTANCE = new EMF2DOMSSERendererFactory();
-
-	public EMF2DOMSSERendererFactory() {
-		// Default constructor
-	}
-
-
-	public Renderer createRenderer() {
-		return new EMF2DOMSSERenderer();
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/ComponentSearchContributor.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/ComponentSearchContributor.java
deleted file mode 100644
index 6c1dcde..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/ComponentSearchContributor.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-
-public abstract class ComponentSearchContributor  {
-
-	protected HashMap declarations;
-
-	protected HashMap references;
-
-	protected String[] namespaces;
-
-	public ComponentSearchContributor() {
-		super();
-	}
-
-	public XMLSearchPattern getDeclarationPattern(QualifiedName componentName) {
-		return (XMLSearchPattern) getDeclarations().get(componentName);
-	}
-
-	protected Map getDeclarations() {
-		if (declarations == null) {
-			initializeDeclarations();
-		}
-		return declarations;
-	}
-
-	protected Map getReferences() {
-		if (references == null) {
-			initializeReferences();
-		}
-		return references;
-	}
-
-	public XMLSearchPattern[] getReferencesPatterns(QualifiedName componentName) {
-		List references = (List) getReferences().get(componentName);
-		if (references != null) {
-			return (XMLSearchPattern[]) references
-					.toArray(new XMLSearchPattern[references.size()]);
-		}
-		return new XMLSearchPattern[0];
-	}
-	
-	
-	public boolean supports(QualifiedName componentName){
-		return getReferencesPatterns(componentName).length > 0 ||
-			getDeclarationPattern(componentName) != null;
-	}
-
-	public String[] getSupportedNamespaces() {
-		return namespaces;
-	}
-
-	protected abstract void initializeDeclarations();
-
-	protected abstract void initializeReferences();
-
-	protected abstract void initializeSupportedNamespaces();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/TargetNamespaceReferencePattern.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/TargetNamespaceReferencePattern.java
deleted file mode 100644
index 6321b7c..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/TargetNamespaceReferencePattern.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search;
-
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-
-public class TargetNamespaceReferencePattern extends SearchPattern {
-	
-	String namespaceURI;
-	
-	public TargetNamespaceReferencePattern(int matchRule, String namespaceuri) {
-		super(matchRule);
-		namespaceURI = namespaceuri;
-	}
-	
-	public TargetNamespaceReferencePattern(String namespaceuri) {
-		super();
-		namespaceURI = namespaceuri;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentDeclarationPattern.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentDeclarationPattern.java
deleted file mode 100644
index 19f475b..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentDeclarationPattern.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-
-public class XMLComponentDeclarationPattern extends XMLComponentSearchPattern {
-
-	public XMLComponentDeclarationPattern(QualifiedName elementQName, QualifiedName typeQName, int matchRule) {
-		super(null, elementQName, typeQName, matchRule);
-		
-	}
-
-	public XMLComponentDeclarationPattern(IFile file, QualifiedName elementQName, QualifiedName typeQName) {
-		super(file, elementQName, typeQName);
-	}
-	
-	public XMLComponentDeclarationPattern(QualifiedName elementQName, QualifiedName typeQName) {
-		super(null, elementQName, typeQName);
-	}
-
-	
-	
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentReferencePattern.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentReferencePattern.java
deleted file mode 100644
index e68a8a4..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentReferencePattern.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-
-public class XMLComponentReferencePattern extends XMLComponentSearchPattern{
-
-	public XMLComponentReferencePattern(IFile file, QualifiedName elementQName, QualifiedName typeQName, int matchRule) {
-		super(file, elementQName, typeQName, matchRule);
-		
-	}
-
-	public XMLComponentReferencePattern(IFile file, QualifiedName elementQName, QualifiedName typeQName) {
-		super(file, elementQName, typeQName);
-		
-	}
-	
-	public XMLComponentReferencePattern(QualifiedName elementQName, QualifiedName typeQName) {
-		super(null, elementQName, typeQName);
-		
-	}
-	
-	
-	
-	
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentSearchPattern.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentSearchPattern.java
deleted file mode 100644
index dff3048..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentSearchPattern.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.common.core.search.SearchParticipant;
-import org.eclipse.wst.common.core.search.pattern.ComponentSearchPattern;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-
-/**
- * XML component search pattern is a composite pattern that combines XML element pattern.
- *
- */
-public class XMLComponentSearchPattern extends ComponentSearchPattern {
-	
-	/**
-	 * Containing element patterns
-	 * @deprecated
-	 */
-	XMLSearchPattern[] children = new XMLSearchPattern[0];
-	
-	/**
-	 * A map of XMLSearchPattern[] by {@link SearchParticipant search participant}.
-	 */
-	protected Map childPatternsByParticipant = new HashMap();
-	
-	public XMLComponentSearchPattern(IFile file, QualifiedName elementQName, QualifiedName typeQName, int matchRule) {
-		super(file, elementQName, typeQName, matchRule);
-		
-	}
-
-
-	public XMLComponentSearchPattern(IFile file, QualifiedName elementQName, QualifiedName typeQName) {
-		super(file, elementQName, typeQName);
-		
-	}
-
-	/**
-	 * @deprecated Use {@link #getChildren(SearchParticipant)} instead.
-	 */
-	public XMLSearchPattern[] getChildren(){
-		return children;
-	}
-	
-    /**
-     * @deprecated Use {@link #addChildren(SearchParticipant, XMLSearchPattern[])} instead.
-     */
-	public void setChildren(XMLSearchPattern[] patterns){
-		children = patterns;
-		
-	}
-	
-	/**
-	 * Provides the child patterns contributed by the given search participant. 
-	 * @param searchParticipant the {@link SearchParticipant search participant} that contributed the patterns.
-     * @see XMLComponentSearchPattern#addChildren(SearchParticipant, XMLSearchPattern[]) addChildren
-	 * @return an array with the {@link XMLSearchPattern patterns} contributed by the {@link SearchParticipant search participant}.
-	 */
-	public XMLSearchPattern[] getChildren(SearchParticipant searchParticipant){
-	  XMLSearchPattern[] childPatterns = getChildren();
-	  if (searchParticipant != null){
-	    childPatterns = (XMLSearchPattern[])childPatternsByParticipant.get(searchParticipant);
-	    if (childPatterns == null){
-	      childPatterns = getChildren();
-	    }
-	  }
-	  return childPatterns;
-	}
-
-	/**
-	 * Saves the child patterns contributed by the given search participant.
-	 * @param searchParticipant the {@link SearchParticipant search participant} that is contributing the child search patterns.
-	 * @param childPatterns the child patterns contributed by the {@link SearchParticipant searchParticipant search participant}.
-	 * @see XMLComponentSearchPattern#getChildren(SearchParticipant) getChildren
-	 */
-	public void addChildren(SearchParticipant searchParticipant, XMLSearchPattern[] childPatterns){
-	  if (searchParticipant != null && childPatterns != null) {
-	    childPatternsByParticipant.put(searchParticipant, childPatterns);
-	  }
-	  else {
-	    children = childPatterns;
-	  }
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchParticipant.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchParticipant.java
deleted file mode 100644
index b709f58..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchParticipant.java
+++ /dev/null
@@ -1,387 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.common.core.search.SearchMatch;
-import org.eclipse.wst.common.core.search.SearchParticipant;
-import org.eclipse.wst.common.core.search.SearchRequestor;
-import org.eclipse.wst.common.core.search.document.ComponentDeclarationEntry;
-import org.eclipse.wst.common.core.search.document.Entry;
-import org.eclipse.wst.common.core.search.document.FileReferenceEntry;
-import org.eclipse.wst.common.core.search.document.SearchDocument;
-import org.eclipse.wst.common.core.search.document.SearchDocumentSet;
-import org.eclipse.wst.common.core.search.pattern.ComponentSearchPattern;
-import org.eclipse.wst.common.core.search.pattern.FileReferencePattern;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.eclipse.wst.common.core.search.scope.ContentTypeSearchScope;
-import org.eclipse.wst.common.core.search.scope.SearchScope;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.search.impl.IXMLSearchConstants;
-import org.eclipse.wst.xml.core.internal.search.impl.XMLSearchDocument;
-import org.eclipse.wst.xml.core.internal.search.matching.PatternMatcher;
-import org.eclipse.wst.xml.core.internal.search.matching.XMLSearchPatternMatcher;
-import org.eclipse.wst.xml.core.internal.search.quickscan.XMLQuickScan;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- *
- */
-public abstract class XMLSearchParticipant extends SearchParticipant {
-	
-	protected static final boolean debugPerf = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.xml.core.internal.search/perf")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	public XMLSearchParticipant() {
-		super();
-	}
-
-	
-	/*
- public  boolean initialize(SearchPattern pattern, String[] contentTypes){
-		
-	    super.initialize(pattern, contentTypes);
-		this.supportedContentTypes = contentTypes;
-		
-		if(pattern instanceof XMLComponentSearchPattern){
-			return true;
-		}
-		return false;
-	}*/
-
-	
-
-	public SearchDocument createSearchDocument(String documentPath) {
-
-		return new XMLSearchDocument(documentPath, this);
-
-	}
-
-	public String getDescription() {
-		return "XML search participant"; //$NON-NLS-1$
-	}
-
-
-
-	private void locateMatches(SearchPattern pattern, SearchDocument document,
-			SearchRequestor requestor, Map searchOptions, IProgressMonitor monitor) {
-
-        // TODO... utilize search options (that should get passed down via the SearchEngine)
-        // to specify if accurate source coordinates are req'd if not, simply use the SAX results
-        //
-        if (pattern.getMatchRule() == SearchPattern.R_PATTERN_MATCH)
-        {          
-          IFile file = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(new Path(document.getPath()));
-          // TODO.. don't assume the category is COMPONENT_DECL... handle any arbitarty category
-          Entry[] entries = document.getEntries(IXMLSearchConstants.COMPONENT_DECL, null, 0);
-          for (int i = 0; i < entries.length; i++)
-          {
-            // TODO.. don't assume this is just a component declaration entry            
-            ComponentDeclarationEntry entry = (ComponentDeclarationEntry)entries[i];
-            SearchMatch searchMatch = new SearchMatch(null, 0, 0, file);
-            searchMatch.map.put("name", entry.getName()); //$NON-NLS-1$
-            searchMatch.map.put("metaName", entry.getMetaName()); //$NON-NLS-1$
-            try
-            {
-              requestor.acceptSearchMatch(searchMatch);
-            }
-            catch (Exception e)
-            {              
-            }
-          }  
-        }
-        else 
-        {  if (document.getModel() instanceof IDOMModel) {
-			IDOMModel domModel = (IDOMModel) document.getModel();
-			IDOMElement contextNode = (IDOMElement) domModel.getDocument()
-					.getDocumentElement();
-			DOMVisitor visitor = new DOMVisitor(document.getPath(), pattern,
-					requestor);
-			visitor.visit(contextNode);
-		}
-        }
-	}
-	
-	private PatternMatcher getAdapter(Object adaptableObject, Class adapterType) {
-		if (PatternMatcher.class.equals(adapterType) &&
-				(adaptableObject instanceof XMLSearchPattern ||
-				adaptableObject instanceof XMLComponentSearchPattern) ) {
-			return new XMLSearchPatternMatcher(this);
-		} 
-		return null; 
-	}
-
-	private class DOMVisitor {
-
-		String path;
-		SearchPattern pattern;
-		SearchRequestor requestor;
-		PatternMatcher matcher;
-
-		
-		protected DOMVisitor(String path, SearchPattern pattern,
-				SearchRequestor requestor) {
-			super();
-			this.path = path;
-			this.pattern = pattern;
-			
-			matcher = (PatternMatcher)pattern.getAdapter(PatternMatcher.class);
-			if(matcher == null){
-				matcher = getAdapter(pattern, PatternMatcher.class);
-			}
-			this.requestor = requestor;
-		}
-
-		private void visit(Node node) {
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				match((Element)node);
-				NodeList nodeList = node.getChildNodes();
-				for (int i = 0; i < nodeList.getLength(); i++) {
-					Node aNode = nodeList.item(i);
-					visit(aNode);
-				}
-			}
-		}
-
-		private void match(Element node) {
-			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(
-					new Path(path));
-			if(matcher != null){
-				matcher.locateMatches(pattern, file, node, requestor);
-			}
-
-			
-		}
-
-	}
-
-	public SearchScope selectDocumentLocations(SearchPattern pattern, SearchScope scope, Map searchOptions, IProgressMonitor monitor) {
-		/*
-		 * gate #1: reduce the scope to the files with the content type that
-		 * could be searched using this participant
-		 */ 
-		String[] contentTypes = getSupportedContentTypes();	
-		if(contentTypes != null && contentTypes.length > 0){
-			scope = new ContentTypeSearchScope(scope, contentTypes);
-		}
-		return super.selectDocumentLocations(pattern, scope, searchOptions, monitor);
-	}
-	
-	public abstract ComponentSearchContributor getSearchContributor();
-
-
-	public void beginSearching(SearchPattern pattern, Map searchOptions) {
-		
-		super.beginSearching(pattern, searchOptions);
-		if(pattern instanceof XMLComponentDeclarationPattern){
-			XMLComponentDeclarationPattern componentPattern = (XMLComponentDeclarationPattern)pattern;
-			XMLSearchPattern childPattern = getSearchContributor().getDeclarationPattern(componentPattern.getMetaName());
-			if(childPattern != null){
-					childPattern.setSearchName(componentPattern.getName().getLocalName());
-					childPattern.setSearchNamespace(componentPattern.getName().getNamespace());
-	     			componentPattern.addChildren(this, new XMLSearchPattern[]{childPattern});
-			}
-			
-		}
-		else if(pattern instanceof XMLComponentReferencePattern){
-			XMLComponentReferencePattern componentPattern = (XMLComponentReferencePattern)pattern;
-			XMLSearchPattern[] childPatterns = getSearchContributor().getReferencesPatterns(componentPattern.getMetaName());
-			for (int i = 0; i < childPatterns.length; i++) {
-				XMLSearchPattern childPattern = childPatterns[i];
-				childPattern.setSearchName(componentPattern.getName().getLocalName());
-				childPattern.setSearchNamespace(componentPattern.getName().getNamespace());				
-			}
-			componentPattern.addChildren(this, childPatterns);
-			
-		}
-	}
-	
-	
-	/**
-	 * The intend of this method is to limit the search to the files that have content 
-	 * which can be searched for the given pattern. It is called from 
-	 * {@link #selectDocumentLocations(SearchPattern, SearchScope, IProgressMonitor)}
-	 * 
-	 * @param pattern the search pattern that is searched for
-	 * @return content type's unique identifiers that could be searched for the given pattern.
-	 */
-	public abstract String[] getSupportedContentTypes();
-
-	public void populateSearchDocument(SearchDocument document, SearchPattern pattern)
-	{
-		PatternMatcher matcher = (PatternMatcher)pattern.getAdapter(PatternMatcher.class);
-		if(matcher == null){
-			matcher = getAdapter(pattern, PatternMatcher.class);
-		}
-		XMLQuickScan.populateSearchDocument(document, matcher, pattern);		
-	}
-
-	public void locateMatches(SearchDocumentSet documentSet, SearchPattern pattern, SearchScope scope, SearchRequestor requestor, Map searchOptions, IProgressMonitor monitor) throws CoreException
-	{
-		long time = System.currentTimeMillis();
-		
-		// TODO: use the file reference entries in the documents to reduce the scope to the referenced files only
-		// SearchDocument[] documents = documentSet.getSearchDocuments(id);
-                
-        // check to see if the search pattern is qualified by a file location
-        // if this is the case then we can use file scoping rules to prune the matches
-        IFile targetFile = null;
-        if (pattern instanceof ComponentSearchPattern)
-        {
-          ComponentSearchPattern componentSearchPattern = (ComponentSearchPattern)pattern;
-          targetFile = componentSearchPattern.getFile();                                       
-        }		
-        
-		// here we should have in scope only referenced files
-		IFile[] files = scope.enclosingFiles();  
-		for (int i = 0; i < files.length; i++)
-		{
-			IFile file = files[i];
-			String path = file.getLocation().toString();
-			SearchDocument document = documentSet.getSearchDocument(path, id); 
-			if (document != null)
-			{              
-			Entry[] entries = document.getEntries(getSearchEntryCategory(pattern), null, 0);           
-			if ((entries != null && entries.length > 0) || (searchOptions != null && searchOptions.get("searchDirtyContent") != null))
-            {
-              //for (int j = 0; j < entries.length; j++)
-              //{
-              //  Entry entry = entries[j];
-                //System.out.println("entry " + entry.getCategory() + " " + entry.getKey() + " " + entry.getClass().getName());                 
-              //}  
-              
-              boolean isInScope = true;
-              if (targetFile != null)
-              {
-                try
-                {
-                  isInScope = isLinked(documentSet, "file:///" + path, "file:///" + targetFile.getLocation().toString()); //$NON-NLS-1$ //$NON-NLS-2$
-                  //if (path.endsWith("CancelSelection.wsdl")  && path.indexOf("clone1") != -1)
-                  //{
-                  //  fileReferenceTable.debug(qualifiedPath, 0, 5);
-                  //}                   
-                }
-                catch (Exception e)
-                {
-                  e.printStackTrace();
-                }
-              }              
-              if (isInScope)
-              { 
-			    this.locateMatches(pattern, document, requestor, searchOptions, monitor);
-              }  
-            }
-			}
-		}
-		
-		
-		if (debugPerf)
-		{
-			System.out
-					.println("" //$NON-NLS-1$
-							+ getDescription()
-							+ ": " + (System.currentTimeMillis() - time) + "ms for locateMatches"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		
-	}
-    
-    private boolean isLinked(SearchDocumentSet set, String source, String target)
-    {
-      return isLinked(set, source, target, new HashMap());
-    }
-    
-    private boolean isLinked(SearchDocumentSet set, String source, String target, HashMap visited)
-    {
-      if (source.equals(target))
-        return true;
-      
-      String fileProtocol = "file:///";             //$NON-NLS-1$
-      
-      // Fix for bug 204174 - Begin
-      if(target.charAt(fileProtocol.length()) == '/')  //$NON-NLS-1$
-      {
-          target = fileProtocol + target.substring(fileProtocol.length() + 1);
-      }
-      // Fix for bug 204174 - End
-            
-      if (source.startsWith(fileProtocol))
-      {    
-        
-      SearchDocument document = set._tempGetSearchDocumetn(source.substring(fileProtocol.length()));      
-      if (document != null)
-      {        
-        URIResolver uriResolver = URIResolverPlugin.createResolver();        
-        Entry[] entries = document.getEntries(IXMLSearchConstants.REF, null, 0);
-        String[] resolveEntry = new String[entries.length];        
-        for (int j = 0; j < entries.length; j++)
-        {
-          Entry entry = entries[j];
-          if (entry instanceof FileReferenceEntry)
-          {
-            FileReferenceEntry fileReferenceEntry = (FileReferenceEntry)entry;
-            // TODO.. record an utilize the public id from the fileReferenceEntry
-            //
-            if (fileReferenceEntry.getRelativeFilePath() != null)
-            {  
-              String resolvedURI = uriResolver.resolve(source, null, fileReferenceEntry.getRelativeFilePath());
-              resolveEntry[j] = resolvedURI;
-              if (resolvedURI.equals(target))
-              {
-                return true;
-              }             
-            }  
-          }
-        }
-        // now see if there's an indirect link from the source to the target
-        // we keep track of the nodes we've already visited to avoid cycles
-        if (visited.get(source) == null)
-        {
-          visited.put(source, Boolean.TRUE);
-          for (int j = 0; j < entries.length; j++)
-          {                     
-            String resolvedURI = resolveEntry[j];
-            if (resolvedURI != null && isLinked(set, resolveEntry[j], target, visited))                
-              return true;            
-          }    
-        }                      
-      }            
-      } 
-      return false;
-    }
-    
-   
-    
-	public static String getSearchEntryCategory(SearchPattern pattern){
-		if(pattern instanceof XMLComponentDeclarationPattern){
-			return IXMLSearchConstants.COMPONENT_DECL;
-		}
-		else if(pattern instanceof XMLComponentReferencePattern){
-			return IXMLSearchConstants.COMPONENT_REF;
-		}
-		else if(pattern instanceof FileReferencePattern){
-		   return IXMLSearchConstants.COMPONENT_REF;
-		}
-		return null;
-	}   
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchPattern.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchPattern.java
deleted file mode 100644
index e3b58e1..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchPattern.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search;
-
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-
-public class XMLSearchPattern extends SearchPattern{
-	
-	private String elementNamespace = null;
-	private String elementName = null;
-	private String attributeName = null;
-	private String searchName = null;
-	private String searchNamespace = null;
-	private String parentName = null;
-    private int depth = -1;
-
-    public XMLSearchPattern(String elementNamespace, String parentElementName,String elementName, String attributeName) {
-    	this(elementNamespace, parentElementName, elementName, attributeName, -1);
-    }
-	
-	public XMLSearchPattern(String elementNamespace, String elementName, String attributeName) {
-       this(elementNamespace, null, elementName, attributeName, -1);
-    }
-    
-    public XMLSearchPattern(String elementNamespace, String elementName, String attributeName, int depth) {
-    	this(elementNamespace, null, elementName, attributeName, depth);       
-    }
-           
-    private XMLSearchPattern(String elementNamespace, String parentElementName, String elementName, String attributeName, int depth) {
-        super();
-        this.attributeName = attributeName;
-        this.elementName = elementName;
-        this.parentName = parentElementName;
-        this.elementNamespace = elementNamespace;
-        this.depth = depth;
-    }
-    
-	public XMLSearchPattern(){
-		
-	}
-	
-	public String getAttributeName() {
-		return attributeName;
-	}
-
-	public String getElementName() {
-		return elementName;
-	}
-
-	public String getElementNamespace() {
-		return elementNamespace;
-	}
-
-	public String getSearchName() {
-		return searchName;
-	}
-
-	public String getSearchNamespace() {
-		return searchNamespace;
-	}
-
-	public void setSearchName(String searchName) {
-		this.searchName = searchName;
-	}
-
-	public void setSearchNamespace(String searchNamespace) {
-		this.searchNamespace = searchNamespace;
-	}
-
-	public void setAttributeName(String attributeName) {
-		this.attributeName = attributeName;
-	}
-
-	public void setElementName(String elementName) {
-		this.elementName = elementName;
-	}
-
-	public void setElementNamespace(String elementNamespace) {
-		this.elementNamespace = elementNamespace;
-	}
-
-  public int getDepth()
-  {
-    return depth;
-  }
-
-  public void setDepth(int depth)
-  {
-    this.depth = depth;
-  }
-
-public String getParentName() {
-	return parentName;
-}
-
-public void setParentName(String parentName) {
-	this.parentName = parentName;
-}
-	
-
-	
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/IXMLSearchConstants.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/IXMLSearchConstants.java
deleted file mode 100644
index d160d81..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/IXMLSearchConstants.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search.impl;
-
-public interface IXMLSearchConstants
-{
-		String REF= "outLink"; //$NON-NLS-1$
-		String COMPONENT_DECL = "componentDecl"; //$NON-NLS-1$
-		String COMPONENT_REF = "componentDecl"; //$NON-NLS-1$
-	
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/Messages.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/Messages.java
deleted file mode 100644
index d7ae22f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/Messages.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search.impl;
-
-import java.text.MessageFormat;
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	
-	private static final String BUNDLE_NAME = "org.eclipse.wst.xml.core.internal.search.messages";//$NON-NLS-1$
-
-	
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-	private Messages() {
-		// Do not instantiate
-	}
-	
-	/**
-	 * Bind the given message's substitution locations with the given string values.
-	 * 
-	 * @param message the message to be manipulated
-	 * @return the manipulated String
-	 */
-	public static String bind(String message) {
-		return bind(message, null);
-	}
-	
-	/**
-	 * Bind the given message's substitution locations with the given string values.
-	 * 
-	 * @param message the message to be manipulated
-	 * @param binding the object to be inserted into the message
-	 * @return the manipulated String
-	 */
-	public static String bind(String message, Object binding) {
-		return bind(message, new Object[] {binding});
-	}
-
-	/**
-	 * Bind the given message's substitution locations with the given string values.
-	 * 
-	 * @param message the message to be manipulated
-	 * @param binding1 An object to be inserted into the message
-	 * @param binding2 A second object to be inserted into the message
-	 * @return the manipulated String
-	 */
-	public static String bind(String message, Object binding1, Object binding2) {
-		return bind(message, new Object[] {binding1, binding2});
-	}
-
-	/**
-	 * Bind the given message's substitution locations with the given string values.
-	 * 
-	 * @param message the message to be manipulated
-	 * @param bindings An array of objects to be inserted into the message
-	 * @return the manipulated String
-	 */
-	public static String bind(String message, Object[] bindings) {
-		return MessageFormat.format(message, bindings);
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/XMLSearchDocument.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/XMLSearchDocument.java
deleted file mode 100644
index 7908adf..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/XMLSearchDocument.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search.impl;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.common.core.search.document.Entry;
-import org.eclipse.wst.common.core.search.document.SearchDocument;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.search.XMLSearchParticipant;
-
-public class XMLSearchDocument extends SearchDocument {
-	
-	IDOMModel model;
-	Map entries = new HashMap(); // category -> set (entry)	
-
-	public XMLSearchDocument(String documentPath, XMLSearchParticipant participant) {
-		super(documentPath, participant);
-	}
-
-	public Object getModel() {
-		if(model == null){
-            //System.out.println("creating DOM for " + getPath());
-			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(new Path(getPath()));
-			if(file != null){
-				try {
-					model = (IDOMModel)StructuredModelManager.getModelManager().getModelForEdit(file);
-				} catch (IOException e) {
-					e.printStackTrace();
-				} catch (CoreException e) {
-					e.printStackTrace();
-				}
-			
-			}
-		}
-		return model;
-	}
-
-	public Entry[] getEntries(String category, String key, int matchRule)
-	{
-		// TODO use matchRule
-		Set results = new HashSet();
-		if(category != null){
-			Set values = (Set)entries.get(category);
-			if(values == null){
-				return new Entry[0];
-			}
-			if(key == null || "".equals(key) || "*".equals(key)){ //$NON-NLS-1$ //$NON-NLS-2$
-				// entries with any key in the given category
-				results.addAll(values);
-			}
-			else{
-				// entries with the specified key in the given category
-				for (Iterator iter = values.iterator(); iter.hasNext();)
-				{
-					Entry entry = (Entry) iter.next();
-					if(key.equals(entry.getKey())){
-						results.add(entry);
-					}
-				}
-			}
-			
-		}
-		return (Entry[]) results.toArray(new Entry[results.size()]);
-	}
-
-	public void putEntry(Entry entry)
-	{
-		if(entry.getCategory() != null){
-			Set values = (Set)entries.get(entry.getCategory());
-			if(values == null){
-				entries.put(entry.getCategory(), values=new HashSet());
-			}
-			values.add(entry);
-		}
-		
-	}
-
-    public void dispose()
-    {     
-      if (model != null)
-      {  
-        model.releaseFromEdit();        
-      }  
-    }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/messages.properties b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/messages.properties
deleted file mode 100644
index 43aea95..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/messages.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/PatternMatcher.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/PatternMatcher.java
deleted file mode 100644
index fa518e8..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/PatternMatcher.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search.matching;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.core.search.SearchMatch;
-import org.eclipse.wst.common.core.search.SearchRequestor;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-
-/**
- * This class contains matching implementation.  
- * <p>
- * Subclasses of the PatternMatches should provide an implementation of the specific pattern matching.
- * </p>
- * <p>
- * Subclasses of the PatternMatches should be set as adapters for the patterns that they match.
- * </p>
- * An implementation of {@link org.eclipse.wst.common.core.search.SearchParticipant#selectDocumentLocations()} will call 
- * { @link PatternMatcher#matches() } on the adapter on pattern matcher.
- * 
- * An implementation of {@link org.eclipse.wst.common.core.search.SearchParticipant#locateMatches()} will call 
- * { @link PatternMatcher#locateMatches() } on the adapter on pattern matcher.
- *
- */
-public abstract class PatternMatcher {
-	
-	
-	/**
-	 * This method does dive actual match location to the requestor if there are matches
-	 */
-	public abstract void locateMatches(SearchPattern pattern, IFile file, Element element, SearchRequestor requestor);
-
-	/**
-	 * This method only answers if the pattern matches element, it does not give actual match location
-	 */
-	public abstract boolean matches(SearchPattern pattern, Object element);
-    
-    protected SearchMatch createSearchMatch(IFile file, Attr attributeNode)
-    {
-        int start = 0;
-        int length = 0;
-        if(attributeNode instanceof IDOMAttr){
-            IDOMAttr domAttr = (IDOMAttr)attributeNode;
-            start = domAttr.getValueRegionStartOffset();
-            length = domAttr.getValueRegionText().length();
-        }
-        SearchMatch match = new SearchMatch(attributeNode, start, length, file);
-        return match;
-    }
-	
-	protected void addMatch(SearchPattern pattern, IFile file, Attr attributeNode, SearchRequestor requestor) {
-        //System.out.println("addMatch " + pattern + " " + attributeNode.getName() + "=" + attributeNode.getValue());
-		if (attributeNode != null) {
-				SearchMatch match = createSearchMatch(file, attributeNode);                
-				if(requestor != null){
-					try {
-						requestor.acceptSearchMatch(match);
-					} catch (CoreException e) {
-						//do nothing
-					}
-				}
-		}
-	}
-
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/SAXSearchElement.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/SAXSearchElement.java
deleted file mode 100644
index a9ec4a1..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/SAXSearchElement.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search.matching;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.xml.sax.Attributes;
-
-public class SAXSearchElement{
-	Attributes attributes;
-	String elementName;
-	String elementNamespace;
-	Map namespaceMap = new HashMap(); // Map of string prefix keys and namespace
-	String targetNamespace = ""; //$NON-NLS-1$
-	String parentName;
-    int depth = -1;
-	
-	public SAXSearchElement() {
-		super();
-	}
-	public Attributes getAttributes() {
-		return attributes;
-	}
-	public String getElementName() {
-		return elementName;
-	}
-	public String getElementNamespace() {
-		return elementNamespace;
-	}
-	public Map getNamespaceMap() {
-		return namespaceMap;
-	}
-	public String getTargetNamespace() {
-		return targetNamespace;
-	}
-	public void setAttributes(Attributes attributes) {
-		this.attributes = attributes;
-	}
-	public void setElementName(String elementName) {
-		this.elementName = elementName;
-	}
-	public void setElementNamespace(String elementNamespace) {
-		this.elementNamespace = elementNamespace;
-	}
-	public void setNamespaceMap(Map namespaceMap) {
-		this.namespaceMap = namespaceMap;
-	}
-	public void setTargetNamespace(String targetNamespace) {
-		this.targetNamespace = targetNamespace;
-	}
-  public int getDepth()
-  {
-    return depth;
-  }
-  public void setDepth(int depth)
-  {
-    this.depth = depth;
-  }
-public String getParentName() {
-	return parentName;
-}
-public void setParentName(String parentName) {
-	this.parentName = parentName;
-}
-	
-	
-	
-	
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/XMLSearchPatternMatcher.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/XMLSearchPatternMatcher.java
deleted file mode 100644
index a5ee621..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/XMLSearchPatternMatcher.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search.matching;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.common.core.search.SearchMatch;
-import org.eclipse.wst.common.core.search.SearchParticipant;
-import org.eclipse.wst.common.core.search.SearchRequestor;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.eclipse.wst.xml.core.internal.search.XMLComponentSearchPattern;
-import org.eclipse.wst.xml.core.internal.search.XMLSearchPattern;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class XMLSearchPatternMatcher extends PatternMatcher{
-	
-   /**
-    * The active search participant.
-    */
-    private SearchParticipant searchParticipant;
-  
-    /**
-     * Constructs a pattern matcher given a search participant.
-     * @param searchParticipant the active {@link SearchParticipant search participant}.
-     */
-    public XMLSearchPatternMatcher(SearchParticipant searchParticipant)
-    {
-      this.searchParticipant = searchParticipant;
-    }
-    
-	protected String computeNamespaceForPrefix(Element element, String prefix)
-	{
-	  String result = null;
-	  for (Node node = element; node != null; node = node.getParentNode())
-	  {
-		if (node.getNodeType() == Node.ELEMENT_NODE)
-		{
-		  Element e = (Element)node;
-		  String attributeName = (prefix != null && prefix.length() > 0) ? ("xmlns:" + prefix) : "xmlns";  //$NON-NLS-1$ //$NON-NLS-2$
-		  result = e.getAttribute(attributeName);
-		  if (result != null)
-		  {
-			 break;  
-		  }	  
-		}	
-	  }	  
-	  return result;
-	}
-	
-
-	protected void initialize(XMLSearchPattern pattern, Element domElement) {
-	
-			pattern.setElementName(domElement.getLocalName());
-			pattern.setElementNamespace(domElement.getNamespaceURI());
-            // TODO (cs) set the depth attribute on the pattern
-            //
-			String actualValue = domElement.getAttribute(pattern.getAttributeName());
-			 if(actualValue != null){
-					int n = actualValue.indexOf(":"); //$NON-NLS-1$
-					if(n > 0){
-						String prefix = actualValue.substring(0, n);
-						pattern.setSearchName(actualValue.substring(n+1));      
-						
-						String namespace = computeNamespaceForPrefix(domElement, prefix);
-						pattern.setSearchNamespace(namespace);
-					
-					}
-					else {
-						pattern.setSearchName(actualValue);
-						pattern.setSearchNamespace(domElement.getOwnerDocument().getDocumentElement().getAttribute("targetNamespace")); //$NON-NLS-1$
-					}
-			    }
-		
-	}
-	
-	protected void initialize(XMLSearchPattern pattern, SAXSearchElement saxElement) {
-		
-		pattern.setElementName(saxElement.getElementName());
-		pattern.setElementNamespace(saxElement.getElementNamespace());
-        pattern.setDepth(saxElement.getDepth());
-        pattern.setParentName(saxElement.getParentName());
-		String actualValue = saxElement.getAttributes().getValue(pattern.getAttributeName());
-		 if(actualValue != null){
-				int n = actualValue.indexOf(":"); //$NON-NLS-1$
-				if(n > 0){
-					String prefix = actualValue.substring(0, n);
-					pattern.setSearchName(actualValue.substring(n+1));
-					pattern.setSearchNamespace((String)saxElement.getNamespaceMap().get(prefix));
-				
-				}
-				else {
-					pattern.setSearchName(actualValue);
-					pattern.setSearchNamespace(saxElement.getTargetNamespace());
-				}
-		    }
-	
-	}
-	
-	XMLSearchPattern searchPattern;
-	
-	public XMLSearchPatternMatcher() {
-		super();
-		
-	}
-
-	
-
-	
-	/**
-	 * This method does dive actual match location to the requestor if there are matches
-	 */
-	
-	public void locateMatches(SearchPattern pattern, IFile file, Element element, SearchRequestor requestor) {
-		if(pattern instanceof XMLComponentSearchPattern){
-			XMLSearchPattern[] childPatterns = ((XMLComponentSearchPattern)pattern).getChildren(searchParticipant);
-			if (childPatterns == null){
-			  return;
-			}
-			for (int i = 0; i < childPatterns.length; i++) {
-				PatternMatcher matcher = (PatternMatcher)childPatterns[i].getAdapter(PatternMatcher.class);
-				if(matcher == null){
-					matcher = this;
-				}
-				if(matcher != null){
-					matcher.locateMatches(childPatterns[i], file, element, requestor);
-				}
-			}
-		}
-		else if(pattern instanceof XMLSearchPattern){
-			if(matches(pattern, element)){
-				Attr attribute = element.getAttributeNode(((XMLSearchPattern)pattern).getAttributeName());
-				addMatch(pattern, file, attribute, requestor);
-			}
-		
-		}
-	}
-	
-	/**
-	 * This method only answers if the pattern matches element, it does not give actual match location
-	 */
-	public boolean matches(SearchPattern pattern, Object element){
-		if(pattern instanceof XMLComponentSearchPattern){
-			XMLSearchPattern[] childPatterns = ((XMLComponentSearchPattern)pattern).getChildren(searchParticipant);
-            if (childPatterns == null){
-              return false;
-            }
-			for (int i = 0; i < childPatterns.length; i++) {
-				PatternMatcher matcher = (PatternMatcher)childPatterns[i].getAdapter(PatternMatcher.class);
-				if(matcher == null){
-					matcher = this;
-				}
-				if(matcher != null){
-					if(matcher.matches(childPatterns[i], element)){
-						return true;
-					}
-				}
-				
-			}
-		}
-		else if(pattern instanceof XMLSearchPattern){
-			
-			XMLSearchPattern possibleMatch = new XMLSearchPattern();
-			possibleMatch.setAttributeName(((XMLSearchPattern)pattern).getAttributeName());
-			if(element instanceof Element){
-				initialize(possibleMatch, (Element)element);
-			}
-			else if(element instanceof SAXSearchElement){
-				initialize(possibleMatch, (SAXSearchElement)element);
-			}
-			searchPattern = (XMLSearchPattern)pattern;
-			return matchesPattern(possibleMatch);
-		}
-		return false;
-	}
-	
-	protected boolean matchesPattern(SearchPattern pattern) {
-		if(searchPattern != null && pattern instanceof XMLSearchPattern){
-			XMLSearchPattern decodedPattern = (XMLSearchPattern)pattern;
-            if(searchPattern.getElementName().equals(decodedPattern.getElementName()) &&                    
-					searchPattern.getElementNamespace().equals(decodedPattern.getElementNamespace())){                
-                if(searchPattern.getParentName() != null &&
-                   decodedPattern.getParentName() != null &&
-                   !searchPattern.getParentName().equals(decodedPattern.getParentName()))
-                {
-                  return false;  
-                }  
-                if(searchPattern.getSearchName() == null)
-                {  
-                  return false;
-                }
-                else if ("*".equals(searchPattern.getSearchName())) //$NON-NLS-1$
-                {
-                  return true;
-                }  
-                else if(searchPattern.getSearchNamespace() == null){
-					return searchPattern.getSearchName().equals(decodedPattern.getSearchName());
-				}
-				else{
-					return searchPattern.getSearchName().equals(decodedPattern.getSearchName()) &&
-					searchPattern.getSearchNamespace().equals(decodedPattern.getSearchNamespace());
-				}
-			}
-		}
-		
-		return false;
-	}
-	
-    
-    protected SearchMatch createSearchMatch(IFile file, Attr attributeNode)
-    {
-      SearchMatch match = super.createSearchMatch(file, attributeNode);
-      // todo... remove this ugly hack!!
-      if ("name".equals(attributeNode.getName())) //$NON-NLS-1$
-      {
-        QualifiedName qualifiedName = new QualifiedName("todo-compute-targetNamespace", attributeNode.getValue()); //$NON-NLS-1$
-        match.map.put("name", qualifiedName); //$NON-NLS-1$
-      }
-      //Element element = attributeNode.getOwnerDocument().getDocumentElement();
-      //if (element.getAttribute("targetNamespace"))
-      //{        
-      //}  
-      return match;
-    }
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScan.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScan.java
deleted file mode 100644
index bf8a14c..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScan.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.search.quickscan;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import org.eclipse.wst.common.core.search.document.SearchDocument;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.eclipse.wst.xml.core.internal.search.matching.PatternMatcher;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-import org.xml.sax.XMLReader;
-
-/**
- * 
- */
-public class XMLQuickScan
-{
-    /*
-	public static String getTargetNamespace(String fullFilePath)
-	{
-		XMLQuickScanContentHandler handler = new XMLQuickScanContentHandler();
-		parseFile(fullFilePath, handler);
-		return handler.getTargetNamespace();
-	}*/
-	
-	/*
-	 * Returns information about matches encountered based on the criteria
-	 * provided.
-	 *
-	public static boolean hasMatch(String fullFilePath, PatternMatcher matcher, SearchPattern pattern)
-	{
-		XMLQuickScanContentHandler handler = new XMLQuickScanContentHandler(matcher, pattern);
-		parseFile(fullFilePath, handler);
-		return handler.hasMatch();
-	}*/
-	
-	public static boolean populateSearchDocument(SearchDocument document, PatternMatcher matcher, SearchPattern pattern)
-	{
-		XMLQuickScanContentHandler handler = new XMLQuickScanContentHandler(document, matcher, pattern);
-		parseFile(document.getPath(), handler);
-		return handler.hasMatch();
-	}
-
-    private static XMLReader reader;
-    private static XMLReader getOrCreateReader()
-    {
-       if (reader == null)
-       {
-         try
-         {
-          SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
-          reader = parser.getXMLReader();  
-          reader.setFeature("http://xml.org/sax/features/namespaces", true); //$NON-NLS-1$
-          reader.setErrorHandler(new InternalErrorHandler());          
-         }
-         catch (Exception e)
-         {           
-         }
-       } 
-       return reader;
-    }
-    
-    static class InternalErrorHandler implements ErrorHandler
-    {
-      public void error(SAXParseException exception) throws SAXException
-      {          
-      }
-      
-      public void fatalError(SAXParseException exception) throws SAXException
-      {
-      }
-      public void warning(SAXParseException exception) throws SAXException
-      {        
-      }
-    }
-    
-	private synchronized static void parseFile(String fullFilePath,
-			XMLQuickScanContentHandler handler)
-	{
-		FileInputStream inputStream = null;
-		try
-		{            
-			inputStream = new FileInputStream(new File(fullFilePath));
-			XMLReader reader = getOrCreateReader();
-            reader.setContentHandler(handler);
-			//System.out.println("parseFile" + reader + " (" +  fullFilePath + ")");			
-			reader.parse(new InputSource(inputStream));
-		} catch (Exception e)
-		{
-			// skip the file
-		} 
-		finally{
-			if(inputStream != null){
-				try {
-					inputStream.close();
-				} catch (IOException e) {
-					// can not do much 
-				}
-			}
-			
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScanContentHandler.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScanContentHandler.java
deleted file mode 100644
index 65d87cd..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScanContentHandler.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.search.quickscan;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Stack;
-
-import org.eclipse.wst.common.core.search.document.ComponentDeclarationEntry;
-import org.eclipse.wst.common.core.search.document.ComponentReferenceEntry;
-import org.eclipse.wst.common.core.search.document.FileReferenceEntry;
-import org.eclipse.wst.common.core.search.document.SearchDocument;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.eclipse.wst.xml.core.internal.search.XMLComponentDeclarationPattern;
-import org.eclipse.wst.xml.core.internal.search.XMLComponentReferencePattern;
-import org.eclipse.wst.xml.core.internal.search.impl.IXMLSearchConstants;
-import org.eclipse.wst.xml.core.internal.search.matching.PatternMatcher;
-import org.eclipse.wst.xml.core.internal.search.matching.SAXSearchElement;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * This class is a SAX content handler, it should be recycled before scanning a file for the new SearchPattern.
- *
- */
-public class XMLQuickScanContentHandler extends DefaultHandler
-{
-	private Map namespaceMap = new HashMap(); // Map of string prefix keys and namespace
-	private String targetNamespace = ""; //$NON-NLS-1$
-	
-	private SearchPattern pattern;
-	private SearchDocument document;  // we'll add useful entries in the search document as we parsing
-	private SAXSearchElement searchElement = new SAXSearchElement();
-
-	private boolean hasMatch = false;
-	private Stack currentPath = new Stack();
-	private PatternMatcher matcher;
-	
-	public static final String XMLSCHEMA_NAMESPACE = "http://www.w3.org/2001/XMLSchema"; //$NON-NLS-1$
-  public static final String WSDL_NAMESPACE = "http://schemas.xmlsoap.org/wsdl/"; //$NON-NLS-1$
-
-	
-	public XMLQuickScanContentHandler(PatternMatcher matcher, SearchPattern pattern) {
-		super();
-		this.pattern = pattern;
-		this.matcher = matcher;
-	}
-	
-	public XMLQuickScanContentHandler(SearchDocument document, PatternMatcher matcher, SearchPattern pattern) {
-		super();
-		this.pattern = pattern;
-		this.matcher = matcher;
-		this.document = document;
-	}
-	
-	public XMLQuickScanContentHandler() {
-		super();
-	}
-
-	public void startElement(String uri, String localName, String qName,
-			Attributes attributes) throws SAXException
-	{	
-		// Search for targetNamespace if we haven't encountered it yet.
-		if (targetNamespace.equals("")) //$NON-NLS-1$
-		{
-			int nAttributes = attributes.getLength();
-			for (int i = 0; i < nAttributes; i++)
-			{
-				if ("targetNamespace".equals(attributes.getQName(i))) //$NON-NLS-1$
-				{
-					targetNamespace = attributes.getValue(i);
-					break;
-				}
-			}
-		}
-		
-		// collect link info
-    
-    // TODO This code should be refactored to delegate the responsibility to
-    // detect links between files to the search providers/contributors.
-    // The current code only handles the XSD and WSDL cases. 
-    
-		if("import".equals(localName) && namespaceMatches(uri)){ //$NON-NLS-1$
-			FileReferenceEntry documentEntry = new FileReferenceEntry();
-			documentEntry.setCategory(IXMLSearchConstants.REF);
-			documentEntry.setKey("import"); //$NON-NLS-1$
-			String namespace = attributes.getValue("namespace"); //$NON-NLS-1$
-			String location = attributes.getValue(getLocationAttributeName(uri)); //$NON-NLS-1$
-			documentEntry.setPublicIdentifier(namespace);
-			documentEntry.setRelativeFilePath(location);            
-			document.putEntry(documentEntry);
-		}
-		if(("redefine".equals(localName)|| "include".equals(localName)) && //$NON-NLS-1$ //$NON-NLS-2$
-				namespaceMatches(uri)){
-			FileReferenceEntry documentEntry = new FileReferenceEntry();
-			documentEntry.setCategory(IXMLSearchConstants.REF);
-			documentEntry.setKey("include"); //$NON-NLS-1$
-			String location = attributes.getValue(getLocationAttributeName(uri)); //$NON-NLS-1$
-			documentEntry.setPublicIdentifier(uri);
-			documentEntry.setRelativeFilePath(location);
-			document.putEntry(documentEntry);
-		}
-		
-		
-        // issue (cs) you may want to try perf measurements to compate reusing the same
-        // instance of a SAXSearchElement instead of newing one each time 
-		//XMLSearchPattern.SAXSearchElement searchElement = new XMLSearchPattern.SAXSearchElement();
-		searchElement.setElementName(localName);
-		searchElement.setElementNamespace(uri);
-		searchElement.setAttributes(attributes);
-		searchElement.setNamespaceMap(namespaceMap);
-		searchElement.setTargetNamespace(targetNamespace);
-		if (currentPath.size() > 0)
-		{
-		  String parentName = (String)currentPath.peek();
-		  searchElement.setParentName(parentName);
-		}			
-	
-
-		if(matcher != null){
-			if(matcher.matches(pattern, searchElement)){
-				hasMatch = true;
-				if(pattern instanceof XMLComponentReferencePattern){
-					ComponentReferenceEntry documentEntry = new ComponentReferenceEntry();
-					documentEntry.setCategory(IXMLSearchConstants.COMPONENT_REF);
-					QualifiedName name = new QualifiedName(uri, localName);
-					documentEntry.setKey(name.toString());
-					documentEntry.setName(name);
-					document.putEntry(documentEntry);
-				}
-				else if(pattern instanceof XMLComponentDeclarationPattern){
-					ComponentDeclarationEntry documentEntry = new ComponentDeclarationEntry();
-					documentEntry.setCategory(IXMLSearchConstants.COMPONENT_DECL);
-                    QualifiedName name = new QualifiedName(targetNamespace, attributes.getValue("name")); //$NON-NLS-1$
-					QualifiedName metaName = new QualifiedName(uri, localName);                    
-					documentEntry.setKey(name.toString());
-                    documentEntry.setName(name);
-					documentEntry.setMetaName(metaName);
-					document.putEntry(documentEntry);
-				}
-			}
-		}
-		currentPath.push(localName); //$NON-NLS-1$		
-	}
-
-  private String getLocationAttributeName(String uri)
-  {
-    if (XMLSCHEMA_NAMESPACE.equals(uri))
-    {
-      return "schemaLocation";
-    }
-    
-    else if (WSDL_NAMESPACE.equals(uri))
-    {
-      return "location";
-    }
-    
-    return "";
-  }
-
-  private boolean namespaceMatches(String uri)
-  {
-    return XMLSCHEMA_NAMESPACE.equals(uri) ||
-          WSDL_NAMESPACE.equals(uri);
-  }
-	
-	public void endElement(String uri, String localName, String qName)
-			throws SAXException
-	{
-		currentPath.pop();
-	}
-
-	/**
-	 * Callback for SAX parser
-	 * 
-	 * @see org.xml.sax.ContentHandler#startPrefixMapping(java.lang.String,
-	 *      java.lang.String)
-	 */
-	public void startPrefixMapping(String arg0, String arg1)
-			throws SAXException
-	{
-		if (arg0 != null && arg0.length() > 0)
-		{
-			this.namespaceMap.put(arg0, arg1);
-		}
-	}
-
-	public String getTargetNamespace() {
-		return targetNamespace;
-	}
-
-	public void setTargetNamespace(String targetNamespace) {
-		this.targetNamespace = targetNamespace;
-	}
-
-	public boolean hasMatch() {
-		return hasMatch;
-	}
-
-	
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/ValidatorHelper.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/ValidatorHelper.java
deleted file mode 100644
index 96c578c..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/ValidatorHelper.java
+++ /dev/null
@@ -1,357 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.validation;
-
-import java.io.InputStream;
-import java.io.Reader;
-import java.net.URL;
-import java.util.List;
-import com.ibm.icu.util.StringTokenizer;
-import java.util.Vector;
-
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.xml.sax.Attributes;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.ext.LexicalHandler;
-
-/**
- * A helper class for the XML validator.
- * 
- * @author Craig Salter, IBM
- * @author Lawrence Mandel, IBM
- */
-public class ValidatorHelper
-{                           
-  public List namespaceURIList = new Vector();
-  public boolean isGrammarEncountered = false;    
-  public boolean isDTDEncountered = false;
-  public boolean isNamespaceEncountered = false;
-  public String schemaLocationString = ""; //$NON-NLS-1$
-  public int numDTDElements = 0;
-
-  /**
-   * Constructor.
-   */
-  public ValidatorHelper()
-  {
-  }
- 
-  /**
-   * Create an XML Reader.
-   * 
-   * @return An XML Reader if one can be created or null.
-   * @throws Exception
-   */
-  protected XMLReader createXMLReader(String uri) throws Exception
-  {     
-    XMLReader reader = null;
-    
-    reader = new org.apache.xerces.parsers.SAXParser();     
-    reader.setFeature("http://apache.org/xml/features/continue-after-fatal-error", false); //$NON-NLS-1$
-    reader.setFeature("http://xml.org/sax/features/namespace-prefixes", true); //$NON-NLS-1$
-    reader.setFeature("http://xml.org/sax/features/namespaces", false); //$NON-NLS-1$
-    reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); //$NON-NLS-1$
-    reader.setContentHandler(new MyContentHandler(uri));
-    reader.setErrorHandler(new InternalErrorHandler()); 
-
-    LexicalHandler lexicalHandler = new LexicalHandler()
-    {      
-      public void startDTD (String name, String publicId, String systemId)
-      {
-        isGrammarEncountered = true;   
-        isDTDEncountered = true;
-      }
-
-      public void endDTD() throws SAXException
-      {
-      }
-
-      public void startEntity(String name) throws SAXException
-      {
-      }
-
-      public void endEntity(String name) throws SAXException
-      {
-      }
-
-      public void startCDATA() throws SAXException
-      {
-      }
-
-      public void endCDATA() throws SAXException
-      {
-      }
- 
-      public void comment (char ch[], int start, int length) throws SAXException
-      {
-      }
-    };
-    reader.setProperty("http://xml.org/sax/properties/lexical-handler", lexicalHandler); //$NON-NLS-1$
-    
-    return reader;
-  }  
-
-  /**
-   * An error handler to suppress error and warning information.
-   */
-  private class InternalErrorHandler implements org.xml.sax.ErrorHandler
-  {
-	public InternalErrorHandler()
-	{
-	  super();
-	}
-	
-    public void error(SAXParseException exception) throws SAXException
-    {
-    }
-
-    public void fatalError(SAXParseException exception) throws SAXException
-    {
-    }
-
-    public void warning(SAXParseException exception) throws SAXException
-    {
-    }
-  }
-
- 
-  /**
-   * Figures out the information needed for validation.
-   * 
-   * @param uri The uri of the file to validate.
-   * @param uriResolver A helper to resolve locations.
-   */
-  public void computeValidationInformation(String uri, Reader characterStream, URIResolver uriResolver)
-  {
-    try
-    {
-      XMLReader reader = createXMLReader(uri);  
-      InputSource inputSource = new InputSource(uri);
-      inputSource.setCharacterStream(characterStream);
-      reader.parse(inputSource);
-    }
-    catch (Exception e)
-    {     
-      //System.out.println(e);
-    }
-  }
-  
- 
-
-  /**
-   * Handle the content while parsing the file.
-   */
-  class MyContentHandler extends org.xml.sax.helpers.DefaultHandler
-  {      
-    /* (non-Javadoc)
-     * @see org.xml.sax.ErrorHandler#error(org.xml.sax.SAXParseException)
-     */
-    boolean isRootElement = true;
-    String baseURI;
-    
-    MyContentHandler(String uri)
-    {
-      this.baseURI = uri;  
-    }
-    
-    public void error(SAXParseException e) throws SAXException
-    {
-    }
-    /* (non-Javadoc)
-     * @see org.xml.sax.ErrorHandler#fatalError(org.xml.sax.SAXParseException)
-     */
-    public void fatalError(SAXParseException e) throws SAXException
-    {
-    }
-    /* (non-Javadoc)
-     * @see org.xml.sax.ErrorHandler#warning(org.xml.sax.SAXParseException)
-     */
-    public void warning(SAXParseException e) throws SAXException
-    {
-    }
-    public String getPrefix(String name)
-    {
-      String prefix = null;
-      int index = name.indexOf(":"); //$NON-NLS-1$
-      if (index != -1)
-      {
-        prefix = name.substring(0, index);
-      }
-      return prefix;
-    }    
-        
-    public String getUnprefixedName(String name)
-    {
-      int index = name.indexOf(":"); //$NON-NLS-1$
-      if (index != -1)
-      {
-        name = name.substring(index + 1);
-      }
-      return name;
-    }
-    
-    public String getPrefixedName(String prefix, String localName)
-    {
-      return prefix != null && prefix.length() > 0 ? prefix + ":" + localName : localName;      //$NON-NLS-1$
-    }
-
-    public void startElement(String namespaceURI, String localName, String rawName, Attributes atts)
-    {      
-      //String explicitLocation = null;
-      if (isRootElement)
-      {  
-        
-        isRootElement = false;  
-        int nAtts = atts.getLength();    
-        String schemaInstancePrefix = null;
-        for (int i =0; i < nAtts; i++)
-        {              
-          String attributeName = atts.getQName(i);       
-          if (attributeName.equals("xmlns") || attributeName.startsWith("xmlns:")) //$NON-NLS-1$ //$NON-NLS-2$
-          {                                         
-            isNamespaceEncountered = true;    
-            String value = atts.getValue(i);                 
-            if (value.startsWith("http://www.w3.org/") && value.endsWith("/XMLSchema-instance")) //$NON-NLS-1$ //$NON-NLS-2$
-            {
-              schemaInstancePrefix = attributeName.equals("xmlns") ? "" : getUnprefixedName(attributeName); //$NON-NLS-1$ //$NON-NLS-2$
-            }                   
-          }                 
-        }
-        
-        String prefix = getPrefix(rawName);
-        String rootElementNamespaceDeclarationName = (prefix != null && prefix.length() > 0) ? "xmlns:" + prefix : "xmlns"; //$NON-NLS-1$ //$NON-NLS-2$
-        String rootElementNamespace = rootElementNamespaceDeclarationName != null ? atts.getValue(rootElementNamespaceDeclarationName) : null;        
-        
-        String location = null;
-        
-        // first we use any 'xsi:schemaLocation' or 'xsi:noNamespaceSchemaLocation' attribute
-        // to determine a location
-        if (schemaInstancePrefix != null)
-        {                     
-          location = atts.getValue(getPrefixedName(schemaInstancePrefix, "noNamespaceSchemaLocation")); //$NON-NLS-1$
-          if (location == null)
-          {            
-        	String schemaLoc = atts.getValue(getPrefixedName(schemaInstancePrefix, "schemaLocation"));  //$NON-NLS-1$
-            location = getSchemaLocationForNamespace(schemaLoc, rootElementNamespace);
-          }  
-        }  
-        if (rootElementNamespace == null)
-        {
-          rootElementNamespace = "";
-        }
-        
-        location = URIResolverPlugin.createResolver().resolve(baseURI, rootElementNamespace, location);    
-        location = URIResolverPlugin.createResolver().resolvePhysicalLocation(baseURI, rootElementNamespace, location);                                                    
-        location = URIHelper.addImpliedFileProtocol(location);
-        
-        schemaLocationString = location;
-        
-        if (location != null)
-        {  
-          InputStream is = null;
-          try
-          {
-            URL url = new URL(location);
-            is = url.openStream();
-            isGrammarEncountered = true;
-          }
-          catch(Exception e)
-          {
-        	// Do nothing.
-          }
-          finally
-          {
-        	if(is != null)
-        	{
-        	  try
-        	  {
-        	    is.close();
-        	  }
-        	  catch(Exception e)
-        	  {
-        		// Do nothing.
-        	  }
-        	}
-          }
-        }        
-      }
-    }     
-    /* (non-Javadoc)
-     * @see org.xml.sax.ext.DeclHandler#elementDecl(java.lang.String, java.lang.String)
-     */
-    public void elementDecl(String name, String model) 
-    {
-      numDTDElements++;
-    }
-    
-    // The xsiSchemaLocationValue is a list of namespace/location pairs that are separated by whitespace 
-    // this method walks the list of pairs looking for the specified namespace and returns the associated
-    // location.
-    //   
-    protected String getSchemaLocationForNamespace(String xsiSchemaLocationValue, String namespace)
-    {      
-      String result = null;
-      if (xsiSchemaLocationValue != null && namespace != null)
-      {
-        
-        StringTokenizer st = new StringTokenizer(xsiSchemaLocationValue);
-        while(st.hasMoreTokens())
-        {
-          if(st.nextToken().equals(namespace))
-          {
-            if(st.hasMoreTokens())
-            {
-              result = st.nextToken();
-            }
-          }
-          else
-          {
-            if(st.hasMoreTokens())
-            {
-              st.nextToken();
-            }
-          }
-        }
-      }
-      return result;
-    }         
-  }   
-       
-  
-  /**
-   * Replace all instances in the string of the old pattern with the new pattern.
-   * 
-   * @param string The string to replace the patterns in.
-   * @param oldPattern The old pattern to replace.
-   * @param newPattern The pattern used for replacement.
-   * @return The modified string with all occurrances of oldPattern replaced by new Pattern.
-   */
-  protected static String replace(String string, String oldPattern, String newPattern)
-  {     
-    int index = 0;
-    while (index != -1)
-    {
-      index = string.indexOf(oldPattern, index);
-      if (index != -1)
-      {
-        string = string.substring(0, index) + newPattern + string.substring(index + oldPattern.length());
-        index = index + oldPattern.length();
-      }
-    }
-    return string;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationConfiguration.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationConfiguration.java
deleted file mode 100644
index 2b01b88..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationConfiguration.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.validation;
-
-/**
- * An XML validation configuration allows setting specific configuration
- * information for a WTP XML validation run. Any features and properties
- * set on this configuration should not be confused with those from
- * parsers such as Xerces. (This object does not by default wrap features
- * and properties from specific parsers.)
- */
-public class XMLValidationConfiguration 
-{
-  /**
-   * @deprecated
-   */
-  public static String WARN_NO_GRAMMAR = "WARN_NO_GRAMMAR"; //$NON-NLS-1$
-  public static String INDICATE_NO_GRAMMAR = "INDICATE_NO_GRAMMAR"; //$NON-NLS-1$
-  private boolean warn_no_grammar_value = false;
-  private int indicate_no_grammar_value = 1;
-  
-  /**
-   * Set a feature of this configuration.
-   * 
-   * @param feature
-   * 		The feature to set.
-   * @param value
-   * 		The value to set for the feature.
-   * @throws 
-   * 		An exception is thrown if the feature is not recognized.
-   */
-  public void setFeature(String feature, boolean value) throws Exception
-  {
-	if(WARN_NO_GRAMMAR.equals(feature))
-	  warn_no_grammar_value = value;
-	else
-	  throw new Exception("Feature not recognized."); //$NON-NLS-1$
-	
-  }
-  
-  /**
-   * Set a feature of this configuration.
-   * 
-   * @param feature
-   * 		The feature to set.
-   * @param value
-   * 		The value to set for the feature.
-   * @throws 
-   * 		An exception is thrown if the feature is not recognized.
-   */
-  public void setFeature(String feature, int value) throws Exception
-  {
-	if(INDICATE_NO_GRAMMAR.equals(feature))
-	  indicate_no_grammar_value = value;
-	else
-	  throw new IllegalArgumentException("Feature not recognized."); //$NON-NLS-1$
-	
-  }
-  
-  
-  /**
-   * Get the value for a given feature. If the feature is not defined
-   * this method will throw an exception.
-   * 
-   * @param feature
-   * 		The feature for which to retrieve the value.
-   * @return
-   * 		The feature's value, true or false.
-   * @throws 
-   * 		An exception is thrown if the feature is not recognized.
-   */
-  public boolean getFeature(String feature) throws Exception
-  {
-	if(WARN_NO_GRAMMAR.equals(feature))
-	  return warn_no_grammar_value;
-	
-	throw new Exception("Feature not recognized."); //$NON-NLS-1$
-  }
-
-  /**
-   * Get the value for a given feature. If the feature is not defined
-   * this method will throw an exception.
-   * 
-   * @param feature
-   * 		The feature for which to retrieve the value.
-   * @return
-   * 		The feature's value, true or false.
-   * @throws 
-   * 		An exception is thrown if the feature is not recognized.
-   */
-  public int getIntFeature(String feature) throws Exception
-  {
-	if(INDICATE_NO_GRAMMAR.equals(feature))
-	  return indicate_no_grammar_value;
-	
-	throw new IllegalArgumentException("Feature not recognized."); //$NON-NLS-1$
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationInfo.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationInfo.java
deleted file mode 100644
index 888bc40..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationInfo.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     David Carver - STAR - [205989] - [validation] validate XML after XInclude resolution
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.validation;
-
-import java.util.Stack;
-
-import org.apache.xerces.xni.XMLLocator;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationInfo;
-import org.eclipse.wst.xml.core.internal.validation.errorcustomization.ErrorCustomizationManager;
-
-
-/**
- * A validation information object specific to XML validators.
- */
-public class XMLValidationInfo extends ValidationInfo implements XMLValidationReport
-{
-  protected boolean grammarEncountered = false;
-  protected boolean dtdEncountered = false;
-  protected boolean namespaceEncountered = false;
-  protected int elementDeclCount = 0;
-  protected String currentErrorKey;
-  protected Object messageArguments[] = null;
-  protected XMLLocator locator = null;
-  protected ErrorCustomizationManager errorCustomizationManager = null;
-  
-  /**
-   * A stack of start tag locations, used to move errors
-   * reported at the close tag to be reported at the start tag.
-   */
-  protected Stack startElementLocations = new Stack();
-  
-  /**
-   * Constructor.
-   * 
-   * @param uri The URI of the file this report describes.
-   */
-  public XMLValidationInfo(String uri)
-  {
-    super(uri);
-  }
-  
-  public boolean isGrammarEncountered()
-  {
-    return grammarEncountered;
-  }
-  
-  /**
-   * Set whether a grammar has been encountered or not.
-   * 
-   * @param grammarEncountered Set true if a grammar has been encountered, false otherwise.
-   */
-  public void setGrammarEncountered(boolean grammarEncountered)
-  {
-    this.grammarEncountered = grammarEncountered;
-  }
-  
-  public boolean isDTDWithoutElementDeclarationEncountered()
-  {
-    return dtdEncountered && elementDeclCount == 0;
-  }
-  
-  /**
-   * Set whether a DTD without an element declaration was encountered.
-   * 
-   * @param dtdWithoutElementDeclarationEncountered Set true if a DTD without an
-   *         element declaration was encountered, false otherwise.
-   */
-  public void setDTDEncountered(boolean dtdEncountered)
-  {
-    this.dtdEncountered = dtdEncountered;
-  }
-  
-  public boolean isNamespaceEncountered()
-  {
-    return namespaceEncountered;
-  }
-  
-  /**
-   * Set whether a namespace was encountered.
-   * 
-   * @param namespaceEncountered Set true if a namespace was encountered, false otherwise.
-   */
-  public void setNamespaceEncountered(boolean namespaceEncountered)
-  {
-    this.namespaceEncountered = namespaceEncountered;
-  }
-  
-  /**
-   * Increase the element declaration count for DTD elements by one.
-   */
-  public void increaseElementDeclarationCount()
-  {
-    this.elementDeclCount++;
-  }
-  
-  /**
-   * Set the number of DTD elements encountered.
-   * 
-   * @param count The number of DTD elements encountered.
-   */
-  public void setElementDeclarationCount(int count)
-  {
-  	elementDeclCount = count;
-  }
-  
-  /**
-   * Get the XML locator if one has been specified.
-   * 
-   * @return The XML locator if one has been specified or null.
-   */
-  public XMLLocator getXMLLocator()
-  {
-    return locator;
-  }
-  
-  /**
-   * Set the XMLLocator.
-   * 
-   * @param locator The XMLLocator to set.
-   */
-  public void setXMLLocator(XMLLocator locator)
-  {
-    this.locator = locator;
-  }
-  
-  /**
-   * Get the current error key.
-   * 
-   * @return Returns the currentErrorKey.
-   */
-  public String getCurrentErrorKey()
-  {
-    return currentErrorKey;
-  }
-  
-  /**
-   * Set the current error key.
-   * 
-   * @param currentErrorKey The currentErrorKey to set.
-   */
-  public void setCurrentErrorKey(String currentErrorKey)
-  {
-    this.currentErrorKey = currentErrorKey;
-  }
-
-public Object[] getMessageArguments() {
-	return messageArguments;
-}
-
-
-public void setMessageArguments(Object[] messageArguments) {
-	this.messageArguments = messageArguments;
-}
-
-  /**
-   * Get the start elements locations.
-   * 
-   * @return 
-   * 		A stack containing the start element locations.
-   */
-  protected Stack getStartElementLocations()
-  {
-    return startElementLocations;
-  }
-  
-  /**
-   * Get the error customization manager for this validation run.
-   * 
-   * @return
-   * 	The error customization manager for this validation run.
-   */
-  protected ErrorCustomizationManager getErrorCustomizationManager()
-  {
-	  if(errorCustomizationManager == null)
-	  {
-		  errorCustomizationManager = new ErrorCustomizationManager();
-	  }
-	  return errorCustomizationManager;
-  }
-  
-  public boolean isUseXInclude() {
-	  return XMLCorePlugin.getDefault().getPluginPreferences().getBoolean(XMLCorePreferenceNames.USE_XINCLUDE);
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationMessages.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationMessages.java
deleted file mode 100644
index 7cd08da..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationMessages.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.validation;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Strings used by XML Validation
- */
-public class XMLValidationMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.wst.xml.core.internal.validation.xmlvalidation";//$NON-NLS-1$
-
-	public static String _UI_PROBLEMS_VALIDATING_UNKNOWN_HOST;
-	public static String _UI_PROBLEMS_VALIDATING_FILE_NOT_FOUND;
-	public static String _UI_PROBLEMS_CONNECTION_REFUSED;
-	public static String _UI_REF_FILE_ERROR_MESSAGE;
-	public static String _WARN_NO_GRAMMAR;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, XMLValidationMessages.class);
-	}
-
-	private XMLValidationMessages() {
-		// cannot create new instance
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationReport.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationReport.java
deleted file mode 100644
index 5a4f1f6..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationReport.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.validation;
-
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationReport;
-
-/**
- * An interface represention a validation report for XML validation.
- * 
- * @author Lawrence Mandel, IBM
- */
-public interface XMLValidationReport extends ValidationReport
-{
-  
-  /**
-   * Returns whether a grammar was encountered during the validation.
-   * 
-   * @return True if a grammar was encountered, false otherwise.
-   */
-  public boolean isGrammarEncountered();
-  
-  /**
-   * Returns whether a namespace was encountered.
-   * 
-   * @return True if a namespace was encountered, false otherwise.
-   */
-  public boolean isNamespaceEncountered();
-  
-  /**
-   * Returns whether a DTD without element declarations was encountered.
-   * 
-   * @return True if a DTD without element declarations was encountered.
-   */
-  public boolean isDTDWithoutElementDeclarationEncountered();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidator.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidator.java
deleted file mode 100644
index 1a44faf..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidator.java
+++ /dev/null
@@ -1,756 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     David Carver - STAR - [205989] - [validation] validate XML after XInclude resolution
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.validation;
-
-import java.io.BufferedReader;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringReader;
-import java.net.ConnectException;
-import java.net.URL;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Set;
-import java.util.TreeSet;
-
-import org.apache.xerces.impl.XMLErrorReporter;
-import org.apache.xerces.impl.msg.XMLMessageFormatter;
-import org.apache.xerces.parsers.XIncludeAwareParserConfiguration;
-import org.apache.xerces.xni.Augmentations;
-import org.apache.xerces.xni.NamespaceContext;
-import org.apache.xerces.xni.QName;
-import org.apache.xerces.xni.XMLAttributes;
-import org.apache.xerces.xni.XMLLocator;
-import org.apache.xerces.xni.XMLResourceIdentifier;
-import org.apache.xerces.xni.XNIException;
-import org.apache.xerces.xni.parser.XMLEntityResolver;
-import org.apache.xerces.xni.parser.XMLInputSource;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.validation.ValidationResult;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.validation.core.LazyURLInputStream;
-import org.xml.sax.Attributes;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.ext.DeclHandler;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * This class performs validation using a xerces sax parser.  
- * Here's a quick overview of the details : 
- *   - an ErrorHandler is used to collect errors into a list (so they may be displayed by the UI)
- *   - an EntityResolver is used along with the xerces "external-schemaLocation" property to implement XML Catalog support
- */
-public class XMLValidator
-{
-  protected URIResolver uriResolver = null;
-  protected Hashtable ingoredErrorKeyTable = new Hashtable();
-  protected Set adjustLocationErrorKeySet = new TreeSet();
-
-  protected static final String IGNORE_ALWAYS = "IGNORE_ALWAYS"; //$NON-NLS-1$
-  protected static final String IGNORE_IF_DTD_WITHOUT_ELEMENT_DECL = "IGNORE_IF_DTD_WITHOUT_ELEMENT_DECL"; //$NON-NLS-1$
-  protected static final String PREMATURE_EOF = "PrematureEOF"; //$NON-NLS-1$
-  protected static final String ROOT_ELEMENT_TYPE_MUST_MATCH_DOCTYPEDECL = "RootElementTypeMustMatchDoctypedecl"; //$NON-NLS-1$
-  protected static final String MSG_ELEMENT_NOT_DECLARED = "MSG_ELEMENT_NOT_DECLARED"; //$NON-NLS-1$
-  
-  // WTP XML validator specific key.
-  protected static final String NO_GRAMMAR_FOUND = "NO_GRAMMAR_FOUND"; //$NON-NLS-1$
-  
-  private static final String FILE_NOT_FOUND_KEY = "FILE_NOT_FOUND"; //$NON-NLS-1$
-
-  /**
-   * Constructor.
-   */
-  public XMLValidator()
-  {                          
-    // Here we add some error keys that we need to filter out when we're validation 
-    // against a DTD without any element declarations.       
-    ingoredErrorKeyTable.put(PREMATURE_EOF, IGNORE_ALWAYS);
-    ingoredErrorKeyTable.put(ROOT_ELEMENT_TYPE_MUST_MATCH_DOCTYPEDECL, IGNORE_IF_DTD_WITHOUT_ELEMENT_DECL);
-    ingoredErrorKeyTable.put(MSG_ELEMENT_NOT_DECLARED, IGNORE_IF_DTD_WITHOUT_ELEMENT_DECL);
-    
-    // Here we add some error keys that we need to adjust the location information for.
-    // The location information will be adjusted to place the message on the line of the starting
-    // element instead of on the line of the closing element.
-    adjustLocationErrorKeySet.add("MSG_CONTENT_INVALID");
-    adjustLocationErrorKeySet.add("MSG_CONTENT_INCOMPLETE");
-    adjustLocationErrorKeySet.add("cvc-complex-type.2.4.b");
-    adjustLocationErrorKeySet.add("cvc-complex-type.2.3");
-  }
-
-  /**
-   * Set the URI Resolver to use.
-   * 
-   * @param uriResolver The URI Resolver to use.
-   */
-  public void setURIResolver(URIResolver uriResolver)
-  {
-    this.uriResolver = uriResolver;
-    //entityResolver = new MyEntityResolver(uriResolver);
-  }
-
- 
-  /**
-   * Create an XML Reader.
-   * 
-   * @return The newly created XML reader or null if unsuccessful.
-   * @throws Exception
-   */
-  protected XMLReader createXMLReader(final XMLValidationInfo valinfo, XMLEntityResolver entityResolver) throws Exception
-  {     
-    XMLReader reader = null;
-    // move to Xerces-2... add the contextClassLoader stuff
-    ClassLoader prevClassLoader = Thread.currentThread().getContextClassLoader();
-    try
-    {
-      Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
-      MyStandardParserConfiguration configuration = new MyStandardParserConfiguration(valinfo);
-      reader = new org.apache.xerces.parsers.SAXParser(configuration)
-      {
-    	private XMLLocator locator = null;
-    	
-        /* (non-Javadoc)
-         * @see org.apache.xerces.parsers.AbstractSAXParser#startDocument(org.apache.xerces.xni.XMLLocator, java.lang.String, org.apache.xerces.xni.NamespaceContext, org.apache.xerces.xni.Augmentations)
-         */
-        public void startDocument(org.apache.xerces.xni.XMLLocator theLocator, java.lang.String encoding, NamespaceContext nscontext, org.apache.xerces.xni.Augmentations augs) 
-        {
-          locator = theLocator;
-          valinfo.setXMLLocator(theLocator);
-          super.startDocument(theLocator, encoding, nscontext, augs); 
-        }
-
-        /* (non-Javadoc)
-         * @see org.apache.xerces.parsers.AbstractSAXParser#startElement(org.apache.xerces.xni.QName, org.apache.xerces.xni.XMLAttributes, org.apache.xerces.xni.Augmentations)
-         */
-        public void startElement(QName arg0, XMLAttributes arg1, Augmentations arg2) throws XNIException 
-        {
-          valinfo.getStartElementLocations().push(new LocationCoordinate(locator.getLineNumber(), locator.getColumnNumber()));
-		  super.startElement(arg0, arg1, arg2);
-		}
-        
-		/* (non-Javadoc)
-		 * @see org.apache.xerces.parsers.AbstractSAXParser#endElement(org.apache.xerces.xni.QName, org.apache.xerces.xni.Augmentations)
-		 */
-		public void endElement(QName arg0, Augmentations arg1) throws XNIException {
-			super.endElement(arg0, arg1);
-			valinfo.getStartElementLocations().pop();
-		}
-      };
-
-      reader.setFeature("http://apache.org/xml/features/continue-after-fatal-error", false); //$NON-NLS-1$
-      reader.setFeature("http://xml.org/sax/features/namespace-prefixes", valinfo.isNamespaceEncountered()); //$NON-NLS-1$
-      reader.setFeature("http://xml.org/sax/features/namespaces", valinfo.isNamespaceEncountered());               //$NON-NLS-1$
-      reader.setFeature("http://xml.org/sax/features/validation", valinfo.isGrammarEncountered());  //$NON-NLS-1$
-      reader.setFeature("http://apache.org/xml/features/validation/schema", valinfo.isGrammarEncountered()); //$NON-NLS-1$
-   	  reader.setFeature("http://apache.org/xml/features/xinclude", valinfo.isUseXInclude()); //$NON-NLS-1$      
-      reader.setContentHandler(new DefaultHandler()
-      {
-        public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
-          valinfo.getErrorCustomizationManager().startElement(uri, localName);                    
-        }
-        
-        public void endElement(String uri, String localName, String qName) throws SAXException {
-          valinfo.getErrorCustomizationManager().endElement(uri, localName);
-        }
-      });      
-      
-      // MH make sure validation works even when a customer entityResolver is note set (i.e. via setURIResolver())
-      if (entityResolver != null)
-      {  
-        reader.setProperty("http://apache.org/xml/properties/internal/entity-resolver", entityResolver); //$NON-NLS-1$
-      }  
-      reader.setProperty("http://xml.org/sax/properties/declaration-handler", new MyDeclHandler());      //$NON-NLS-1$
-    } 
-    catch(Exception e)
-    { 
-      Logger.logException(e);
-      //e.printStackTrace();
-    }
-    finally
-    {
-      Thread.currentThread().setContextClassLoader(prevClassLoader);
-    }
-    return reader;
-  }  
-
-  /**
-   * Validate the file located at the given URI.
-   * 
-   * @param uri The URI of the file to validate.
-   * @return Returns an XML validation report.
-   */
-  public XMLValidationReport validate(String uri)
-  {
-    return validate(uri, null, new XMLValidationConfiguration());  
-  }
-
-  final String createStringForInputStream(InputStream inputStream)
-  {
-    // Here we are reading the file and storing to a stringbuffer.
-    StringBuffer fileString = new StringBuffer();
-    try
-    {
-      InputStreamReader inputReader = new InputStreamReader(inputStream, "UTF-8");
-      BufferedReader reader = new BufferedReader(inputReader);
-      char[] chars = new char[1024];
-      int numberRead = reader.read(chars);
-      while (numberRead != -1)
-      {
-        fileString.append(chars, 0, numberRead);
-        numberRead = reader.read(chars);
-      }
-    }
-    catch (Exception e)
-    {
-      //TODO: log error message
-      //e.printStackTrace();
-    }
-    return fileString.toString();
-  }
-  /**
-   * Validate the inputStream
-   * 
-   * @param uri The URI of the file to validate.
-   * @param the inputStream of the file to validate
-   * @return Returns an XML validation report.
-   */
-  public XMLValidationReport validate(String uri, InputStream inputStream)
-  {
-	return validate(uri, inputStream, new XMLValidationConfiguration());
-  }
-  /**
-   * Validate the inputStream
-   * 
-   * @param uri 
-   * 		The URI of the file to validate.
-   * @param inputstream
-   * 		The inputStream of the file to validate
-   * @param configuration
-   * 		A configuration for this validation session.
-   * @return 
-   * 		Returns an XML validation report.
-   */
-  public XMLValidationReport validate(String uri, InputStream inputStream, XMLValidationConfiguration configuration)
-  {
-    return validate(uri, inputStream, configuration, null);  
-  }
- 
-  /**
-   * Validate the inputStream
-   * 
-   * @param uri 
-   *    The URI of the file to validate.
-   * @param inputstream
-   *    The inputStream of the file to validate
-   * @param configuration
-   *    A configuration for this validation session.
-   * @param result
-   *    The validation result
-   * @return 
-   *    Returns an XML validation report.
-   */
-  public XMLValidationReport validate(String uri, InputStream inputStream, XMLValidationConfiguration configuration, ValidationResult result)
-  {
-    String grammarFile = "";
-    Reader reader1 = null; // Used for the preparse.
-    Reader reader2 = null; // Used for validation parse.
-    
-    if (inputStream != null)
-    {  
-      String string = createStringForInputStream(inputStream);
-      reader1 = new StringReader(string);
-      reader2 = new StringReader(string);
-    } 
-        
-    XMLValidationInfo valinfo = new XMLValidationInfo(uri);
-    MyEntityResolver entityResolver = new MyEntityResolver(uriResolver); 
-    ValidatorHelper helper = new ValidatorHelper(); 
-    try
-    {  
-        helper.computeValidationInformation(uri, reader1, uriResolver);
-        valinfo.setDTDEncountered(helper.isDTDEncountered);
-        valinfo.setElementDeclarationCount(helper.numDTDElements);
-        valinfo.setNamespaceEncountered(helper.isNamespaceEncountered);
-        valinfo.setGrammarEncountered(helper.isGrammarEncountered);
-        
-        XMLReader reader = createXMLReader(valinfo, entityResolver);
-        XMLErrorHandler errorhandler = new XMLErrorHandler(valinfo);
-        reader.setErrorHandler(errorhandler);
-        
-        InputSource inputSource = new InputSource(uri);
-        inputSource.setCharacterStream(reader2);
-        reader.parse(inputSource);   
-        if(configuration.getIntFeature(XMLValidationConfiguration.INDICATE_NO_GRAMMAR) > 0 && 
-        		valinfo.isValid() && !helper.isGrammarEncountered)
-        {
-          if(configuration.getIntFeature(XMLValidationConfiguration.INDICATE_NO_GRAMMAR) == 1)
-            valinfo.addWarning(XMLValidationMessages._WARN_NO_GRAMMAR, 1, 0, uri, NO_GRAMMAR_FOUND, null);
-          else // 2
-              valinfo.addError(XMLValidationMessages._WARN_NO_GRAMMAR, 1, 0, uri, NO_GRAMMAR_FOUND, null);
-        }
-
-        if (helper.isDTDEncountered)
-          grammarFile = entityResolver.getLocation();
-        else
-          grammarFile = helper.schemaLocationString;
-    }
-    catch (SAXParseException saxParseException)
-    {
-      // These errors are caught by the error handler.
-      //addValidationMessage(valinfo, saxParseException);
-    }                 
-    catch (IOException ioException)
-    {
-      addValidationMessage(valinfo, ioException);
-    }                 
-    catch (Exception exception)
-    {  
-    	Logger.logException(exception.getLocalizedMessage(), exception);
-    }
-
-    // Now set up the dependencies
-    // Wrap with try catch so that if something wrong happens, validation can
-    // still proceed as before
-    if (result != null)
-    {
-      try
-      {
-        IResource resource = getWorkspaceFileFromLocation(grammarFile);
-        ArrayList resources = new ArrayList();
-        if (resource != null)
-          resources.add(resource);
-        result.setDependsOn((IResource [])resources.toArray(new IResource [0]));
-      }
-      catch (Exception e)
-      {
-        Logger.logException(e.getLocalizedMessage(), e);
-      }
-    }
-    
-    return valinfo;
-       
-  }
-
-  /**
-   * Add a validation message to the specified list.
-   * 
-   * @param valinfo The validation info object to add the error to.
-   * @param exception The exception that contains the validation information.
-   */
-  protected void addValidationMessage(XMLValidationInfo valinfo, IOException exception)
-  { 
-    String validationMessageStr = exception.getMessage();
-	Throwable cause = exception.getCause() != null ? exception.getCause() : exception;
-	while(validationMessageStr == null && cause != null){
-		String localizedMessage = cause.getLocalizedMessage();
-	    cause = cause.getCause();
-	    if(cause == null && localizedMessage != null )
-	    {
-	      validationMessageStr = localizedMessage;
-	    }
-	}
-	
-	if (validationMessageStr != null)
-    {
-      if (cause instanceof FileNotFoundException)
-      {
-        validationMessageStr = NLS.bind(XMLValidationMessages._UI_PROBLEMS_VALIDATING_FILE_NOT_FOUND, new Object [] { validationMessageStr });
-      }
-      else if (cause instanceof UnknownHostException)
-      {
-    	validationMessageStr = NLS.bind(XMLValidationMessages._UI_PROBLEMS_VALIDATING_UNKNOWN_HOST, new Object [] { validationMessageStr });
-      }
-      else if(cause instanceof ConnectException)
-      {
-    	validationMessageStr = XMLValidationMessages._UI_PROBLEMS_CONNECTION_REFUSED;
-      }
-    }
-
-    if (validationMessageStr != null)
-    {
-      XMLLocator locator = valinfo.getXMLLocator();
-      valinfo.addWarning(validationMessageStr, locator != null ? locator.getLineNumber() : 1, locator != null ? locator.getColumnNumber() : 0, valinfo.getFileURI(), FILE_NOT_FOUND_KEY, null);
-    }
-  }
-                                                                    
-  /**
-   * Add a validation message to the specified list.
-   * 
-   * @param valinfo The validation info object to add the error to.
-   * @param exception The exception that contains the validation information.
-   */
-  protected void addValidationMessage(XMLValidationInfo valinfo, SAXParseException exception)
-  { 
-    if (exception.getMessage() != null)
-    { 
-      valinfo.addError(exception.getLocalizedMessage(), exception.getLineNumber(), exception.getColumnNumber(), exception.getSystemId());
-    }
-  }
-
-  
-  /**
-   * A custom entity resolver that uses the URI resolver specified to resolve entities.
-   */
-  protected class MyEntityResolver implements XMLEntityResolver 
-  {
-    private URIResolver uriResolver;
-    private String resolvedDTDLocation;
-   
-    /**
-     * Constructor.
-     * 
-     * @param uriResolver The URI resolver to use with this entity resolver.
-     */
-    public MyEntityResolver(URIResolver uriResolver)
-    {
-      this.uriResolver = uriResolver;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.apache.xerces.xni.parser.XMLEntityResolver#resolveEntity(org.apache.xerces.xni.XMLResourceIdentifier)
-     */
-    public XMLInputSource resolveEntity(XMLResourceIdentifier rid) throws XNIException, IOException
-    {
-      try
-      {
-        XMLInputSource inputSource = _internalResolveEntity(uriResolver, rid);
-        if (inputSource != null)
-        {
-          resolvedDTDLocation = inputSource.getSystemId();
-        }
-        return inputSource;
-      }
-      catch(IOException e)
-      {
-        //e.printStackTrace();   
-      }      
-      return null;
-    }
-   
-    public String getLocation()
-    {
-      return resolvedDTDLocation;
-    }
-  }
-  
-  // cs : I've refactored the common SAX based resolution code into this method for use by other validators 
-  // (i.e. XML Schema, WSDL etc).   The other approach is maintain a copy for each validator that has
-  // identical code.  In any case we should strive to ensure that the validators perform resolution consistently. 
-  public static XMLInputSource _internalResolveEntity(URIResolver uriResolver, XMLResourceIdentifier rid) throws  IOException
-  {
-    XMLInputSource is = null;
-    
-    if (uriResolver != null)
-    {         
-      String id = rid.getPublicId();
-      if(id == null)
-      {
-        id = rid.getNamespace();
-      }
-      
-      String location = null;
-      if (id != null || rid.getLiteralSystemId() != null)
-      {  
-        location = uriResolver.resolve(rid.getBaseSystemId(), id, rid.getLiteralSystemId());
-      }  
-      
-      if (location != null)
-      {                     
-        String physical = uriResolver.resolvePhysicalLocation(rid.getBaseSystemId(), id, location);
-        is = new XMLInputSource(rid.getPublicId(), location, location);
-        
-        // This block checks that the file exists. If it doesn't we need to throw
-        // an exception so Xerces will report an error. note: This may not be
-        // necessary with all versions of Xerces but has specifically been 
-        // experienced with the version included in IBM's 1.4.2 JDK.
-        InputStream isTemp = null;
-        try
-        {
-          isTemp = new URL(physical).openStream();
-        }
-        finally
-        {
-          if(isTemp != null)
-          {
-            isTemp.close();
-          }
-        }
-        is.setByteStream(new LazyURLInputStream(physical));      
-      }
-    }
-    return is;    
-  }      
-  
-  /**
-   * An error handler to catch errors encountered while parsing the XML document.
-   */
-  protected class XMLErrorHandler implements org.xml.sax.ErrorHandler
-  {
-
-    private final int ERROR = 0;
-    private final int WARNING = 1;
-    private XMLValidationInfo valinfo;
-    
-    /**
-     * Constructor.
-     * 
-     * @param valinfo The XML validation info object that will hold the validation messages.
-     */
-    public XMLErrorHandler(XMLValidationInfo valinfo)
-    {
-      this.valinfo = valinfo;
-    }
-
-    /**
-     * Add a validation message with the given severity.
-     * 
-     * @param exception The exception that contains the message.
-     * @param severity The severity of the message.
-     */
-    
-    protected void addValidationMessage(SAXParseException exception, int severity)
-    {
-      if(exception.getSystemId() != null)
-      {       	
-    	int lineNumber = exception.getLineNumber();
-    	int columnNumber = exception.getColumnNumber();
-    	
-    	// For the following three errors the line number will be modified to use that of the start
-    	// tag instead of the end tag.
-    	String currentErrorKey = valinfo.currentErrorKey;
-    	if (currentErrorKey != null && adjustLocationErrorKeySet.contains(currentErrorKey))  
-    	{
-    	  LocationCoordinate adjustedCoordinates = (LocationCoordinate)valinfo.getStartElementLocations().peek();
-    	  lineNumber = adjustedCoordinates.getLineNumber();
-    	  columnNumber = adjustedCoordinates.getColumnNumner();
-    	}
-    	
-        if(severity == WARNING)
-        {
-          valinfo.addWarning(exception.getLocalizedMessage(), lineNumber, columnNumber, exception.getSystemId());
-        }
-        else
-        {
-          valinfo.addError(exception.getLocalizedMessage(), lineNumber, columnNumber, exception.getSystemId(), valinfo.getCurrentErrorKey(), valinfo.getMessageArguments());
-        }
-      }
-    }
-
-    /* (non-Javadoc)
-     * @see org.xml.sax.ErrorHandler#error(org.xml.sax.SAXParseException)
-     */
-    public void error(SAXParseException exception) throws SAXException
-    {
-      addValidationMessage(exception, ERROR);
-    }
-
-    /* (non-Javadoc)
-     * @see org.xml.sax.ErrorHandler#fatalError(org.xml.sax.SAXParseException)
-     */
-    public void fatalError(SAXParseException exception) throws SAXException
-    {
-      addValidationMessage(exception, ERROR);
-    }
-
-    /* (non-Javadoc)
-     * @see org.xml.sax.ErrorHandler#warning(org.xml.sax.SAXParseException)
-     */
-    public void warning(SAXParseException exception) throws SAXException
-    {
-      addValidationMessage(exception, WARNING);
-    }
-  }
-                                                                          
-  /** 
-   * This class is used to count the elementDecls that are encountered in a DTD.
-   */
-  protected class MyDeclHandler implements DeclHandler 
-  {
-    
-    /**
-     * Constructor.
-     * 
-     * @param valinfo The XMLValidationInfo object that will count the declarations.
-     */
-    public MyDeclHandler()
-    {
-    }
-    
-    /* (non-Javadoc)
-     * @see org.xml.sax.ext.DeclHandler#attributeDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
-     */
-    public void attributeDecl(String eName, String aName, String type, String valueDefault, String value) 
-    {
-    }                                    
-
-    /* (non-Javadoc)
-     * @see org.xml.sax.ext.DeclHandler#elementDecl(java.lang.String, java.lang.String)
-     */
-    public void elementDecl(String name, String model) 
-    {
-      //valinfo.increaseElementDeclarationCount();
-    }
-  
-    /* (non-Javadoc)
-     * @see org.xml.sax.ext.DeclHandler#externalEntityDecl(java.lang.String, java.lang.String, java.lang.String)
-     */
-    public void externalEntityDecl(String name, String publicId, String systemId) 
-    {
-    }      
-
-    /* (non-Javadoc)
-     * @see org.xml.sax.ext.DeclHandler#internalEntityDecl(java.lang.String, java.lang.String)
-     */
-    public void internalEntityDecl(String name, String value) 
-    {
-    }
-  }
-
-  /**
-   * A XIncludeAwareParserConfiguration that creates an error reporter which can ignore
-   * DTD error messages for DTD's with no elements defined.
-   */
-
-  protected class MyStandardParserConfiguration extends XIncludeAwareParserConfiguration
-  {
-  	XMLValidationInfo valinfo = null;
-    List reportedExceptions = new ArrayList(); 
-  	
-  	/**
-  	 * Constructor.
-  	 * 
-  	 * @param valinfo The XMLValidationInfo object to use.
-  	 */
-  	public MyStandardParserConfiguration(XMLValidationInfo valinfo)
-  	{
-  	  this.valinfo = valinfo;
-  	  
-  	  XMLErrorReporter errorReporter = createErrorReporter();
-      if (errorReporter.getMessageFormatter(XMLMessageFormatter.XML_DOMAIN) == null) {
-          XMLMessageFormatter xmft = new XMLMessageFormatter();
-          errorReporter.putMessageFormatter(XMLMessageFormatter.XML_DOMAIN, xmft);
-          errorReporter.putMessageFormatter(XMLMessageFormatter.XMLNS_DOMAIN, xmft);
-      }  	  
-      fErrorReporter = errorReporter;
-	  setProperty(ERROR_REPORTER, errorReporter);
-	  fCommonComponents.remove(fErrorReporter);
-	  fCommonComponents.add(fErrorReporter);
-  	}
-
-    /* (non-Javadoc)
-     * @see org.apache.xerces.parsers.DTDConfiguration#createErrorReporter()
-     */
-    protected XMLErrorReporter createErrorReporter() 
-    {
-    	return new XMLErrorReporter()
-		{
-    		/* (non-Javadoc)
-    		 * @see org.apache.xerces.impl.XMLErrorReporter#reportError(java.lang.String, java.lang.String, java.lang.Object[], short)
-    		 */
-    		public void reportError(String domain, String key, Object[] arguments, short severity) throws XNIException 
-    	    {                    
-		      boolean reportError = true;
-              valinfo.setCurrentErrorKey(key);  
-			  valinfo.setMessageArguments(arguments);
-		      String ignoreCondition = (String)ingoredErrorKeyTable.get(key);
-		      if (ignoreCondition != null)
-		      {
-		        if (ignoreCondition.equals(XMLValidator.IGNORE_IF_DTD_WITHOUT_ELEMENT_DECL))
-		        {                    
-		          boolean isDTDWithoutElementDeclarationEncountered = valinfo.isDTDWithoutElementDeclarationEncountered(); 
-		          reportError = !isDTDWithoutElementDeclarationEncountered;  
-		        }
-		        else 
-		        {
-		          reportError = false;
-		        }
-		      }
-		      if ("schema_reference.4".equals(key) && arguments.length > 0) //$NON-NLS-1$
-              {
-                Object location = arguments[0];  
-                if (location != null)
-                {  
-                  if(reportedExceptions.contains(location))
-                  {
-                    reportError = false;
-                  }
-                  else
-                  {
-                    reportedExceptions.add(location);
-                  }
-                }
-              }          
-		      if (reportError)
-		      {
-		        super.reportError(domain, key, arguments, severity);
-		        valinfo.getErrorCustomizationManager().considerReportedError(valinfo, key, arguments);
-		      }
-		    }
-		};
-    }
-  }
-  
-  /** 
-   * A line and column number coordinate.
-   */
-  protected class LocationCoordinate
-  {	
-	private int lineNo = -1;
-    private int columnNo = -1;
-    
-    public LocationCoordinate(int lineNumber, int columnNumber)
-    {
-      this.lineNo = lineNumber;
-      this.columnNo = columnNumber;
-    }
-    	
-    public int getLineNumber()
-    { 
-      return this.lineNo;
-    }
-    	
-    public int getColumnNumner()
-    { 
-      return this.columnNo;
-    } 
-  }
-  
-  protected IResource getWorkspaceFileFromLocation(String location)
-  {
-    if (location == null) return null;
-    IWorkspace workspace = ResourcesPlugin.getWorkspace();
-    // To canonicalize the EMF URI
-    IPath canonicalForm = new Path(location);
-    // Need to convert to absolute location...
-    IPath pathLocation = new Path(URIHelper.removeProtocol(canonicalForm.toString()));
-    // ...to find the resource file that is in the workspace
-    IResource resourceFile = workspace.getRoot().getFileForLocation(pathLocation);
-    // If the resource is resolved to a file from http, or a file outside
-    // the workspace, then we will just ignore it.
-    return resourceFile;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/AbstractNestedValidator.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/AbstractNestedValidator.java
deleted file mode 100644
index 9a48579..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/AbstractNestedValidator.java
+++ /dev/null
@@ -1,482 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.validation.core;
-
-import java.io.InputStream;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.wst.validation.AbstractValidator;
-import org.eclipse.wst.validation.ValidationResult;
-import org.eclipse.wst.validation.ValidationState;
-import org.eclipse.wst.validation.internal.core.Message;
-import org.eclipse.wst.validation.internal.core.ValidationException;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-import org.eclipse.wst.validation.internal.provisional.core.IValidationContext;
-import org.eclipse.wst.validation.internal.provisional.core.IValidator;
-import org.eclipse.wst.validation.internal.provisional.core.IValidatorJob;
-
-/**
- * An abstract validator that assists validators in running and contributing
- * nested messages in the validation results. 
- * *note: Subclasses do not need to contribute nested messages in order to
- * benefit from the use of this class. This class takes care of iterating
- * through results for validators that use the standard context.
- */
-public abstract class AbstractNestedValidator extends AbstractValidator implements IValidatorJob 
-{
-  // Locally used, non-UI strings.
-  private static final String REFERENCED_FILE_ERROR_OPEN = "referencedFileError("; //$NON-NLS-1$
-  private static final String REFERENCED_FILE_ERROR_CLOSE = ")"; //$NON-NLS-1$
-  private static final String FILE_PROTOCOL_NO_SLASH = "file:"; //$NON-NLS-1$
-  private static final String FILE_PROTOCOL = "file:///"; //$NON-NLS-1$
-  private final String GET_FILE = "getFile"; //$NON-NLS-1$
-  private final String GET_PROJECT_FILES = "getAllFiles"; //$NON-NLS-1$
-  private final String GET_INPUTSTREAM = "inputStream"; //$NON-NLS-1$
-  
-  // Internal strings. These strings are common addition information types.
-  protected static final String COLUMN_NUMBER_ATTRIBUTE = "columnNumber"; //$NON-NLS-1$
-  protected static final String SQUIGGLE_SELECTION_STRATEGY_ATTRIBUTE = "squiggleSelectionStrategy"; //$NON-NLS-1$
-  protected static final String SQUIGGLE_NAME_OR_VALUE_ATTRIBUTE = "squiggleNameOrValue"; //$NON-NLS-1$
-
-  /**
-   * Perform the validation using version 2 of the validation framework.
-   */
-  public ValidationResult validate(IResource resource, int kind, ValidationState state, IProgressMonitor monitor){
-	  ValidationResult result = new ValidationResult();  
-	  IReporter reporter = result.getReporter(monitor);
-	  NestedValidatorContext nestedcontext = new NestedValidatorContext();
-		setupValidation(nestedcontext);
-		IFile file = null;
-		if (resource instanceof IFile)file = (IFile)resource;
-		if (file != null)validate(file, null, result, reporter, nestedcontext);
-		teardownValidation(nestedcontext);
-	    return result;
-  }
- 
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.validation.internal.provisional.core.IValidatorJob#validateInJob(org.eclipse.wst.validation.internal.provisional.core.IValidationContext, org.eclipse.wst.validation.internal.provisional.core.IReporter)
-   */
-  public IStatus validateInJob(IValidationContext context, IReporter reporter) throws ValidationException 
-  {
-	NestedValidatorContext nestedcontext = new NestedValidatorContext();
-	setupValidation(nestedcontext);
-	String[] fileURIs = context.getURIs();
-	if (fileURIs != null && fileURIs.length > 0) 
-	{
-	  int numFiles = fileURIs.length;
-	  for (int i = 0; i < numFiles && !reporter.isCancelled(); i++) 
-	  {
-	    String fileName = fileURIs[i];
-	    if (fileName != null)
-	    {          
-	      Object []parms = {fileName};
-
-	      IFile file = (IFile) context.loadModel(GET_FILE, parms);
-	      if (file != null && shouldValidate(file)) 
-	      { 
-	    	// The helper may not have a file stored in it but may have an InputStream if being
-	    	// called from a source other than the validation framework such as an editor.
-	        if (context.loadModel(GET_INPUTSTREAM) instanceof InputStream) //$NON-NLS-1$
-	        {
-	          validate(file, (InputStream)context.loadModel(GET_INPUTSTREAM), null, reporter, nestedcontext); //do we need the fileName?  what is int ruleGroup? //$NON-NLS-1$
-	        }
-	        else
-	        {
-	    	  validate(file, null, null, reporter, nestedcontext);
-	        }
-	      }
-	    }
-	  }
-	}
-	// TODO: Is this needed? Shouldn't the framework pass the complete list? 
-	// Should I know that I'm validating a project as opposed to files?
-	else 
-    {
-      Object []parms = {getValidatorID()};
-      Collection files = (Collection) context.loadModel(GET_PROJECT_FILES, parms);
-      Iterator iter = files.iterator();
-      while (iter.hasNext() && !reporter.isCancelled()) 
-      {
-        IFile file = (IFile) iter.next();
-        if(shouldValidate(file))
-        {
-	      validate(file, null, null, reporter, nestedcontext);
-        }
-      }
-    }
-	
-	teardownValidation(nestedcontext);
-	if(reporter.isCancelled())
-	  return Status.CANCEL_STATUS;
-    return Status.OK_STATUS;
-  }
-  
-  /**
-   * Provides the id of this validator. The ID is used by the validation
-   * framework. It usually is the fully qualified class name of the class
-   * implementing the IValidator interface.
-   * 
-   * @return a String with the ID of this validator.
-   */
-  protected String getValidatorID()
-  {
-    return this.getClass().getName();
-  }
-  
-  /**
-   * Perform set up before validation runs. Subclasses may implement this
-   * method to perform validation specific set up.
-   * 
-   * @param context
-   * 		The context of the current validation.
-   */
-  protected void setupValidation(NestedValidatorContext context)
-  {
-	// Default implementation does nothing.
-  }
-  
-  /**
-   * Perform tear down after validation runs. Subclasses may implement this
-   * method to perform validation specific tear down.
-   * 
-   * @param context
-   * 		The context of the current validation.
-   */
-  protected void teardownValidation(NestedValidatorContext context)
-  {
-	// Default implementation does nothing.
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.validation.internal.provisional.core.IValidatorJob#getSchedulingRule(org.eclipse.wst.validation.internal.provisional.core.IValidationContext)
-   */
-  public ISchedulingRule getSchedulingRule(IValidationContext arg0) 
-  {
-	// TODO review whether returning a null rule is correct. Gary had a suggestion in the bug report.
-	return null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.validation.internal.provisional.core.IValidator#cleanup(org.eclipse.wst.validation.internal.provisional.core.IReporter)
-   */
-  public void cleanup(IReporter arg0) 
-  {
-    // No cleanup to perform. Subclasses are free to implement this method.
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.validation.internal.provisional.core.IValidator#validate(org.eclipse.wst.validation.internal.provisional.core.IValidationContext, org.eclipse.wst.validation.internal.provisional.core.IReporter)
-   */
-  public void validate(IValidationContext context, IReporter reporter) throws ValidationException 
-  {  
-	validateInJob(context, reporter);
-  }
-	
-	
-  /**
-   * Determine if a given file should be validated. 
-   * 
-   * @param file The file that may be validated.
-   * @return True if the file should be validated, false otherwise.
-   */
-  private static boolean shouldValidate(IFile file) 
-  {
-	IResource resource = file;
-	do 
-	{
-	  if (resource.isDerived() || resource.isTeamPrivateMember() || 
-		  !resource.isAccessible() || resource.getName().charAt(0) == '.') 
-	  {
-		return false;
-	  }
-	  resource = resource.getParent();
-	}while ((resource.getType() & IResource.PROJECT) == 0);
-	
-	return true;
-  }
-  
-  /**
-   * Validate the given file and use the reporter for the validation messages.
-   * This method does not perform the validation logic but rather delegates
-   * to the validate method in subclasses to validate. This method is responsible
-   * for reporting the messages that result from validation.
-   * 
-   * @param file 
-   * 		An IFile to validate.
-   * @param inputstream 
-   * 		An InputStream that represents the file. The InputStream may be null
-   * 		in which case the files should be validated from the IFile.
-   * @param result - The validation result
-   * @param reporter 
-   * 		The reporter with which to report validation messages.
-   * @param context
-   * 		The context of the current validation.
-   */
-  private void validate(IFile file, InputStream inputstream, ValidationResult result, IReporter reporter, NestedValidatorContext context)
-  {  
-	Message message = new LocalizedMessage(IMessage.LOW_SEVERITY, file.getFullPath().toString());
-    reporter.displaySubtask(this, message);
-    
-	String locationString = null;		
-	if (file.getLocation() != null) {
-		locationString = file.getLocation().toString();
-	}
-	if (locationString == null && file.getLocationURI() != null) {
-		locationString = file.getLocationURI().toString();
-	}
-	if (locationString == null) {
-		locationString = file.getFullPath().toString();
-	}
-	String uri = createURIForFilePath(locationString);
-
-	clearMarkers(file, this, reporter);
-	
-	ValidationReport valreport = null;
-	if (result == null)
-	  valreport = validate(uri, inputstream, context);
-	else
-	  valreport = validate(uri, inputstream, context, result);
-	
-	createMarkers(file, valreport.getValidationMessages(), reporter);
-	        
-	try
-	{
-	  file.setSessionProperty(ValidationMessage.ERROR_MESSAGE_MAP_QUALIFIED_NAME, valreport.getNestedMessages());
-	}
-	catch(CoreException e)
-	{
-	  System.out.println("Unable to set nested messages property."); //$NON-NLS-1$
-	}
-  }
-	
-  /**
-   * Validate the given file and use the reporter for the validation messages.
-   * Clients must implement this method with their specific validation logic.
-   * 
-   * @param uri
-   * 		The URI of the file to validate.
-   * @param inputstream 
-   * 		An InputStream that represents the file. The InputStream may be null
-   * 		in which case the files should be validated from the IFile.
-   * @param context
-   * 		The context of the current validation.
-   * @return
-   * 		A validation report summarizing the validation.
-   */
-  public abstract ValidationReport validate(String uri, InputStream inputstream, NestedValidatorContext context);
-  
-  /**
-   * Validate the given file and use the reporter for the validation messages.
-   * Clients should override this method with their specific validation logic.
-   * This method should now be used instead of the abstract version.
-   * Design decision to not make this abstract.
-   * 
-   * @param uri
-   * @param inputstream
-   * @param context
-   * @param result
-   * @return
-   */
-  public ValidationReport validate(String uri, InputStream inputstream, NestedValidatorContext context, ValidationResult result)
-  {
-    return validate(uri, inputstream, context);
-  }
-
-  /**
-   * This method clears all the markers on the given IFile for a specified
-   * validator.
-   * This is a convenience method for subclasses.
-   * 
-   * @param iFile
-   * 		The IFile from which to clear the markers.
-   * @param validator
-   * 		The validator for which to remove the markers.
-   * @param reporter
-   * 		The reporter that can remove the markers.
-   */
-  private void clearMarkers(IFile iFile, IValidator validator, IReporter reporter)
-  {
-	if (fileIsAccessible(iFile))
-	{
-	  reporter.removeAllMessages(validator, iFile);
-	}
-  }
-	  
-  /**
-   * Test whether the given file is accessible and may be used for validation. A file is 
-   * available if 
-   * 1. It is not null.
-   * 2. It exists. 
-   * 3. The project containing the file is accessible.
-   * 
-   * @param file 
-   * 		The file to check to ensure it is accessible.
-   * @return 
-   * 		True if the file is accessible, false otherwise.
-   */
-  private boolean fileIsAccessible(IFile file)
-  {
-    if (file != null && file.exists() && file.getProject().isAccessible())
-	{
-	  return true;
-	}
-	return false;
-  }
-	  
-  /**
-   * Format a file name into a correct URI. 
-   * This is a convenience method for subclasses.
-   * 
-   * @param filename 
-   * 		The file name to format.
-   * @return 
-   * 		
-   * The formatted URI.
-   */
-  private String createURIForFilePath(String filename)
-  {
-	if(!filename.startsWith(FILE_PROTOCOL_NO_SLASH))
-	{
-	  while(filename.startsWith("/")) //$NON-NLS-1$
-	  {
-	    filename = filename.substring(1);
-	  }
-	  filename = FILE_PROTOCOL + filename;
-	}
-	return filename;
-  }
-	  
-  /**
-   * Create markers for the valiation messages generated from the validation.
-   * 
-   * @param iFile
-   *          The resource to create the markers on.
-   * @param valmessages
-   *          The array of validation messages.
-   */
-  public void createMarkers(IFile iFile, ValidationMessage[] valmessages, IReporter reporter)
-  {
-    if (!fileIsAccessible(iFile))
-    {
-      return;
-    }
-    int nummessages = valmessages.length;
-    for (int i = 0; i < nummessages; i++)
-    {
-      ValidationMessage validationMessage = valmessages[i];
-      String uri = validationMessage.getUri();
-
-      LocalizedMessage message;
-      if (validationMessage.getSeverity() == ValidationMessage.SEV_LOW)
-      {
-        message = new LocalizedMessage(IMessage.NORMAL_SEVERITY, 
-        		validationMessage.getMessage(), iFile);
-      }
-      else
-      { 
-        message = new LocalizedMessage(IMessage.HIGH_SEVERITY, validationMessage.getMessage(), iFile);
-      }
-      
-      message.setLineNo(validationMessage.getLineNumber());
-      addInfoToMessage(validationMessage, message);
-      
-      List nestederrors = validationMessage.getNestedMessages();
-      if (nestederrors != null && !nestederrors.isEmpty())
-      {
-        message.setGroupName(REFERENCED_FILE_ERROR_OPEN + uri + REFERENCED_FILE_ERROR_CLOSE);
-      }
-
-      reporter.addMessage(this, message);
-	      
-    }
-  }
-	  
-  /**
-   * This method allows the addition of information to the validation message
-   * @param validationmessage
-   * 		The ValidationMessage to retrieve the information from.
-   * @param message
-   * 		The IMessage to add the information to.
-   */
-  protected void addInfoToMessage (ValidationMessage validationmessage, IMessage message)
-  { 
-	// This method may be overidden by subclasses
-  }
-	  
-  /**
-   * A localized message is a specialized type of IMessage that allows setting
-   * and using a localized message string for a message.
-   */
-  class LocalizedMessage extends Message 
-  {
-    private String _message = null;
-
-	public LocalizedMessage(int severity, String messageText) 
-	{
-	  this(severity, messageText, null);
-	}
-
-	public LocalizedMessage(int severity, String messageText, IResource targetObject) 
-	{
-	  this(severity, messageText, (Object) targetObject);
-	}
-
-	public LocalizedMessage(int severity, String messageText, Object targetObject) 
-	{
-	  super(null, severity, null);
-	  setLocalizedMessage(messageText);
-	  setTargetObject(targetObject);
-	}
-
-	public void setLocalizedMessage(String message) 
-	{
-	  _message = message;
-	}
-
-	public String getLocalizedMessage() 
-	{
-	  return _message;
-	}
-
-	public String getText() 
-	{
-	  return getLocalizedMessage();
-	}
-
-	public String getText(ClassLoader cl) 
-	{
-	  return getLocalizedMessage();
-	}
-
-	public String getText(Locale l) 
-	{
-	  return getLocalizedMessage();
-	}
-
-	public String getText(Locale l, ClassLoader cl) 
-	{
-	  return getLocalizedMessage();
-	}
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/Helper.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/Helper.java
deleted file mode 100644
index d9497af..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/Helper.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.validation.core;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.validation.internal.operations.ValidatorManager;
-import org.eclipse.wst.validation.internal.operations.WorkbenchContext;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-
-/**
- * A helper class for validation in the validation framework.
- * 
- * @author Ernest Mah (ernest@ca.ibm.com)
- * @author Lawrence Mandel, IBM
- */
-public class Helper extends WorkbenchContext
-{
-  public static final String GET_PROJECT_FILES = "getAllFiles"; //$NON-NLS-1$
-  public static final String GET_FILE = "getFile"; //$NON-NLS-1$
-  //dw private static final IContainer[] NO_CONTAINERS = new IContainer[0];
-  public static final String VALIDATION_MARKER = "org.eclipse.wst.validation.problemmarker"; //$NON-NLS-1$
-  public static final String VALIDATION_MARKER_OWNER = "owner";   //$NON-NLS-1$
-
-  /**
-   * Constructor.
-   */
-  public Helper()
-  {
-    super();
-
-    // the following will register the helper's symbolic methods
-    Class [] args = new Class[1] ;
-    args[0] = String.class ;  // a string argument denoting a specific JSP.
-    
-    registerModel(GET_FILE, "getFile", args);//$NON-NLS-1$
-    registerModel(GET_PROJECT_FILES, "getFiles", args);//$NON-NLS-1$
-  }
-
-  /**
-   * Get the IFile for the given filename.
-   * 
-   * @param filename The name of the file to retrieve.
-   * @return An IFile representing the file specified or null if it can't be resolved.
-   */
-  public IFile getFile(String filename)
-  {
-    //    System.out.println("file name = " + filename);
-    IResource res = getProject().findMember(filename, true); // true means include phantom resources
-    if (res instanceof IFile) 
-    {
-      return (IFile) res;
-    }
-    return null;
-  }
-  
-  /**
-   * Get the collection of files from the project that are relevant for the
-   * validator with the given class name.
-   * 
-   * @param validatorClassName The name of the validator class.
-   * @return The collection of files relevant for the validator class specified.
-   */
-  public Collection getFiles(String validatorClassName)
-  {
-    IProject project = getProject();
-    List files = new ArrayList();
-    getFiles(files, project, validatorClassName);
-    return files;
-  }
-
-  /**
-   * Get the collection of files from the project that are relevant for the
-   * validator with the given class name.
-   * 
-   * @param files The files relevant for the class name.
-   * @param resource The resource to look for files in.
-   * @param validatorClassName The name of the validator class.
-   */
-  protected void getFiles(Collection files, IContainer resource, String validatorClassName)
-  {
-    try
-    {
-      IResource [] resourceArray = resource.members(false);
-      for (int i=0; i<resourceArray.length; i++)
-      {       
-        if (ValidatorManager.getManager().isApplicableTo(validatorClassName, resourceArray[i])) 
-        {
-          if (resourceArray[i] instanceof IFile) 
-          {
-            files.add(resourceArray[i]);
-          }
-        }
-        if (resourceArray[i].getType() == IResource.FOLDER)
-         getFiles(files,(IContainer)resourceArray[i], validatorClassName) ;
-      }
-    }
-    catch (Exception e) {}
-  }
-
-  
-/**
- * Return the name of the resource, without the project-specific information 
- * in front.
- *
- * This method is used by ValidationOperation to calculate the non-environment 
- * specific names of the files. Only the IWorkbenchContext implementation knows how 
- * much information to strip off of the IResource name. For example, if there is
- * an EJB Project named "MyEJBProject", and it uses the default names for the 
- * source and output folders, "source" and "ejbModule", respectively, then the
- * current implementation of EJB Helper knows how much of that structure is 
- * eclipse-specific. 
- *
- * Since the "source" folder contains Java source files, a portable name would
- * be the fully-qualified name of the Java class, without the eclipse-specific
- * project and folder names in front of the file name. The EJBHelper knows that 
- * everything up to the "source" folder, for example, can be removed, because, 
- * according to the definition of the EJB Project, everything contained
- * in the source folder is java source code. So if there is an IResource in an
- * EJB Project named "/MyEJBProject/source/com/ibm/myclasses/MyJavaFile.java",
- * this method would make this name portable by stripping off the
- * "/MyEJBProject/source", and returning "com/ibm/myclasses/MyJavaFile.java".
- *
- * The output of this method is used by the ValidationOperation, when it
- * is calculating the list of added/changed/deleted file names for incremental
- * validation. If getPortableName(IResource) returns null, that means
- * that the IWorkbenchContext's implementation does not support that particular
- * type of resource, and the resource should not be included in the array of
- * IFileDelta objects in the IValidator's "validate" method. 
- * 
- * @param resource The resource to get the name from.
- * @return The portable name of the resource.
- */
-public String getPortableName(IResource resource)
-  {
-    //    System.out.println("get portablename for " + resource);
-    return resource.getProjectRelativePath().toString();
-  }
-
-/**
- * When an IValidator associates a target object with an IMessage,
- * the WorkbenchReporter eventually resolves that target object
- * with an IResource. Sometimes more than one target object resolves
- * to the same IResource (usually the IProject, which is the default
- * IResource when an IFile cannot be found). This method is called,
- * by the WorkbenchReporter, so that the WorkbenchReporter can 
- * distinguish between the IMessages which are on the same IResource, 
- * but refer to different target objects. This is needed for the 
- * removeAllMessages(IValidator, Object) method, so that when one
- * target object removes all of its messages, that it doesn't remove
- * another target object's messages.
- *
- * This method may return null only if object is null. Otherwise, an
- * id which can uniquely identify a particular object must be returned.
- * The id needs to be unique only within one particular IValidator.
- * 
- * @param object The object from which to get the name.
- * @return The name of the object or null if the object is null.
- */
-public String getTargetObjectName(Object object)
-  {
-    if (object == null) 
-    {
-      return null;
-    }
-    
-    //    System.out.println("get targetname for " + object);
-    return object.toString();
-  }
-  
-  /**
-   * Delete the markers of the specified type from the specified resource.
-   * 
-   * @param resource The resource to delete the markers from.
-   * @param markerType The type of markers to delete from the resource.
-   * @param attributeName The name of the attribute which the markers must have to be deleted.
-   * @param attributeValue The value of the attribute corresponding to attributeName which the markers must have to be deleted.
-   * @throws CoreException
-   */
-  public static void deleteMarkers(IResource resource, String markerType, final String attributeName, final Object attributeValue) throws CoreException
-  {          
-    final IMarker[] v400Markers = resource.findMarkers(IMarker.PROBLEM, false, IResource.DEPTH_INFINITE);
-    final IMarker[] markers = resource.findMarkers(markerType, true, IResource.DEPTH_INFINITE);
-    IWorkspaceRunnable op = new IWorkspaceRunnable() 
-     {
-       public void run(IProgressMonitor progressMonitor) throws CoreException 
-       {    
-         // this fixes defect 193406
-         // here we remove markers that may have been added by the v400 code
-         // hopefully the '.markers' metadata files will be removed for the V5 install
-         // and this kludge will not be needed there
-         for (int i = 0; i < v400Markers.length; i++)
-         {
-           IMarker marker = markers[i];           
-           marker.delete();           
-         }
-    
-         for (int i = 0; i < markers.length; i++) 
-         {
-           IMarker marker = markers[i];
-           
-           Object value = marker.getAttribute(attributeName);
-           if (value != null &&
-               value.equals(attributeValue)) 
-           {
-             marker.delete();
-           }
-         }
-       }
-     };
-    
-    try
-    {
-      ResourcesPlugin.getWorkspace().run(op, null);
-    }
-    catch (Exception e) { }
-  }
-  
-  /**
-   * Get the validation framework severity for the given severity.
-   * 
-   * @param severity The severity to convert to validation framework severity.
-   * @return The validation framework severity for the given severity.
-   */
-  static public int getValidationFrameworkSeverity(int severity)
-  {
-    switch (severity)
-    {
-      case IMarker.SEVERITY_ERROR:
-        return IMessage.HIGH_SEVERITY;
-      case IMarker.SEVERITY_WARNING:
-        return IMessage.NORMAL_SEVERITY;
-      case IMarker.SEVERITY_INFO:
-        return IMessage.LOW_SEVERITY;
-    }
-    return IMessage.LOW_SEVERITY;  
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/LazyURLInputStream.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/LazyURLInputStream.java
deleted file mode 100644
index 834cb0b..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/LazyURLInputStream.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.validation.core;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-
-
-/**
- * This class allows InputStreams to be created and returned to xerces without
- * actually opening file handles or network connections until it is absolutely
- * neccessary.
- */
-public class LazyURLInputStream extends InputStream
-{  
-  private static int debugTotalOpenStreamCount = 0; 
-  protected InputStream inner;
-  protected String url;
-  protected boolean error;
-  boolean hasMarks;
-  boolean pretendFileIsStillOpen;
-
-  public LazyURLInputStream(String url)
-  {
-    this.url = url;
-	inner = null;
-	pretendFileIsStillOpen = false;
-  }
-
-  private void createInnerStreamIfRequired() throws IOException
-  {
-    if (inner == null && !error)
-    {
-      debugTotalOpenStreamCount++;
-    
-      try
-      {
-        inner = new URL(url).openStream();
-		pretendFileIsStillOpen = false;
-		hasMarks = false;
-      }
-      finally 
-      {
-        if (inner == null)
-        {  
-          error = true;
-        }
-      }
-    }
-  }
-
-	protected void closeStream() throws IOException {
-		if (inner != null && !pretendFileIsStillOpen) {
-			inner.close();
-			pretendFileIsStillOpen = true;
-		}
-  	}
-
-  public int available() throws IOException
-  {
-	if (pretendFileIsStillOpen) return 0;
-	createInnerStreamIfRequired();
-	if (inner == null) throw new IOException("Stream not available"); //$NON-NLS-1$
-	return inner.available();
-  }
-
-  public void close() throws IOException
-  {
-	if (pretendFileIsStillOpen) {
-		// Stop behaving as if the stream were still open.
-		pretendFileIsStillOpen = false;
-	} else {
-		if (inner != null) {
-			debugTotalOpenStreamCount--;
-			inner.close();
-		}
-	}
-  }
-
-  public void mark(int readlimit)
-  {
-	if (pretendFileIsStillOpen) return;
-	hasMarks = true;
-	try {
-		createInnerStreamIfRequired();
-		inner.mark(readlimit);
-	} catch (IOException e) {
-		// TODO Auto-generated catch block
-		e.printStackTrace();
-	}
-  }
-
-  public boolean markSupported()
-  {
-	if (pretendFileIsStillOpen) return false;
-	try {
-		createInnerStreamIfRequired();
-		if (inner == null) return false;
-		return inner.markSupported();
-	} catch (IOException e) {
-		// TODO Auto-generated catch block
-		e.printStackTrace();
-	}
-	return false;
-  }
-
-  public int read() throws IOException
-  {
-	if (pretendFileIsStillOpen) return -1;
-	createInnerStreamIfRequired();
-	if (inner == null) throw new IOException("Stream not available"); //$NON-NLS-1$
-	int bytesRead = inner.read();
-	if (bytesRead == -1 && !hasMarks) closeStream();
-	return bytesRead;
-  }
-
-
-	public int read(byte[] b) throws IOException {
-		if (pretendFileIsStillOpen) return -1;
-		createInnerStreamIfRequired();
-		if (inner == null) throw new IOException("Stream not available"); //$NON-NLS-1$
-		int bytesRead = inner.read(b);
-		if (bytesRead == -1 && !hasMarks) closeStream();
-		return bytesRead;
-	}
-
-  public int read(byte[] b, int off, int len) throws IOException
-  {    
-	if (pretendFileIsStillOpen) return -1;
-	createInnerStreamIfRequired();
-	if (inner == null) throw new IOException("Stream not available"); //$NON-NLS-1$
-	int bytesRead = inner.read(b, off, len);
-	if (bytesRead == -1 && !hasMarks) closeStream();
-	return bytesRead;
-  }
-
-  public void reset() throws IOException
-  {
-	if (pretendFileIsStillOpen) return;
-	createInnerStreamIfRequired();
-	if (inner == null) throw new IOException("Stream not available"); //$NON-NLS-1$
-	inner.reset();
-  }
-
-  public long skip(long n) throws IOException
-  {   
-	if (pretendFileIsStillOpen) return 0;
-	createInnerStreamIfRequired();
-	if (inner == null) throw new IOException("Stream not available"); //$NON-NLS-1$
-	return inner.skip(n);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/NestedValidatorContext.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/NestedValidatorContext.java
deleted file mode 100644
index 3c2710a..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/NestedValidatorContext.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.validation.core;
-
-
-/**
- * A context class for validators to be able to determine the context of
- * given validation session. Currently this class is only used to identify
- * the unique context.
- */
-public class NestedValidatorContext 
-{
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationInfo.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationInfo.java
deleted file mode 100644
index fa2e1a5..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationInfo.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.validation.core;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.xml.core.internal.validation.XMLValidationMessages;
-
-/**
- * This class handles messages from a validator. This class can handle
- * 
- * @author Lawrence Mandel, IBM
- */
-public class ValidationInfo implements ValidationReport
-{
-  private boolean WRAPPER_ERROR_SUPPORT_ENABLED = true;
-  public static int SEV_ERROR = 0;
-  public static int SEV_WARNING = 1;
-  
-  private String validating_file_uri = null;
-  private URL validating_file_url = null;
-  private boolean valid = true;
-  private List messages = new ArrayList();
-  private HashMap nestedMessages = new HashMap();
-
-  /**
-   * Constructor.
-   * 
-   * @param uri
-   *            The URI of the file for the validation.
-   */
-  public ValidationInfo(String uri)
-  {
-    if(uri != null)
-    {
-      this.validating_file_uri = uri;
-      try
-      {
-        this.validating_file_url = new URL(uri);
-      } catch (MalformedURLException e)
-      {
-      }
-    }
-  }
-
-  public String getFileURI()
-  {
-    return validating_file_uri;
-  }
-
-  public boolean isValid()
-  {
-    return valid;
-  }
-
-  /**
-   * Add an error message.
-   * 
-   * @param message The message to add.
-   * @param line The line location of the message.
-   * @param column The column location of the message.
-   * @param uri The URI of the file that contains the message.
-   */
-  public void addError(String message, int line, int column, String uri)
-  {
-    addError(message, line, column, uri, null, null);
-  }  
-  
-  /**
-   * 
-   * Add an error message.
-   * 
-   * @param message The message to add.
-   * @param line The line location of the message.
-   * @param column The column location of the message.
-   * @param uri The URI of the file that contains the message.
-   * @param key The key for the message.
-   * @param messageArguments more information about the error
-   */
-  public void addError(String message, int line, int column, String uri, String key, Object[] messageArguments)
-  {    
-    if(addMessage(message, line, column, uri, SEV_ERROR, key, messageArguments))
-    {
-      valid = false;
-    }
-  }
-
-  /**
-   * Add a warning message.
-   * 
-   * @param message The string message of the warning.
-   * @param line The line location of the warning.
-   * @param column The column location of the warning.
-   * @param uri The URI of the file that contains the warning.
-   */
-  public void addWarning(String message, int line, int column, String uri)
-  {
-    addWarning(message, line, column, uri, null, null);
-  }
-  
-  /**
-   * 
-   * Add an error message.
-   * 
-   * @param message The message to add.
-   * @param line The line location of the message.
-   * @param column The column location of the message.
-   * @param uri The URI of the file that contains the message.
-   * @param key The key for the message.
-   * @param messageArguments more information about the error
-   */
-  public void addWarning(String message, int line, int column, String uri, String key, Object[] messageArguments)
-  {    
-    addMessage(message, line, column, uri, SEV_WARNING, key, messageArguments);
-  }
-  
-  /**
-   * Add a message to the list. Return true if successful, false otherwise.
-   * 
-   * @param message The message to add to the list.
-   * @param line The line location of the message.
-   * @param column The column location of the message.
-   * @param uri The URI of the file that contains the message.
-   * @param severity The severity of the message.
-   * @param key the Xerces error key for this error
-   * @param messageArguments more information on the error
-   * @return True if the message was successfully added, false otherwise.
-   */
-  private boolean addMessage(String message, int line, int column, String uri, int severity, String key, Object[] messageArguments)
-  {
-    boolean successfullyAdded = false;
-    // If the message if null there is nothing to add.
-    if(message == null)
-    {
-      return successfullyAdded;
-    }
-    String errorURI = normalize(uri);
-    URL errorURL = null;
-    if (errorURI != null)
-    {
-      try
-      {
-        errorURL = new URL(errorURI);
-      } catch (MalformedURLException e)
-      {
-      }
-      //errorURI = normalizeURI(errorURI);
-    }
-    //boolean doDialog = true;
-    if (errorURL != null)
-    {
-      successfullyAdded = true;
-      // Add to the appropriate list if nested error support is off or
-      // this message is for the current file.
-      if (!WRAPPER_ERROR_SUPPORT_ENABLED || validating_file_url.sameFile(errorURL))
-      {
-
-        ValidationMessage valmes = new ValidationMessage(message, line,
-            column, validating_file_uri, key, messageArguments);
-        if (severity == SEV_ERROR)
-        {
-          valmes.setSeverity(ValidationMessage.SEV_NORMAL);
-        } else if (severity == SEV_WARNING)
-        {
-          valmes.setSeverity(ValidationMessage.SEV_LOW);
-        }
-        messages.add(valmes);
-      }
-      // If nested error support is enabled create a nested error.
-      else if (WRAPPER_ERROR_SUPPORT_ENABLED)
-      {
-        String nesteduri = errorURL.toExternalForm();
-        ValidationMessage nestedmess = new ValidationMessage(message, line,
-            column, nesteduri, key, messageArguments);
-        if(severity == SEV_WARNING)
-        {
-          nestedmess.setSeverity(ValidationMessage.SEV_LOW);
-        }
-        else
-        {
-          nestedmess.setSeverity(ValidationMessage.SEV_NORMAL);
-        }
-
-        ValidationMessage container = (ValidationMessage) nestedMessages.get(nesteduri);
-        if(container == null)
-        {
-          container = new ValidationMessage(NLS.bind(XMLValidationMessages._UI_REF_FILE_ERROR_MESSAGE, new Object [] { nesteduri }), 1, 0, nesteduri);
-       
-          // Initially set the nested error to a warning. This will automatically be changed
-          // to an error if a nested message has a severity of error.
-          container.setSeverity(ValidationMessage.SEV_LOW);
-          nestedMessages.put(nesteduri, container);
-          messages.add(container);
-        }
-        container.addNestedMessage(nestedmess);
-      }
-    }
-    return successfullyAdded;
-  }
-  
-  
-  /**
-   * Add a nested message to the validation information.
-   * 
-   * @param message The string message of the validation message.
-   * @param line The line location of the validation message.
-   * @param column The column location of the validation message.
-   * @param uri The URI of the validation message.
-   * @param severity The severity of the validation message.
-   */
-//  public void addNestedMessage(String message, int line, int column, String uri, int severity)
-//  {
-//    ValidationMessage nestedmess = new ValidationMessage(message, line, column, uri);
-//    if(severity == SEV_WARNING)
-//    {
-//      nestedmess.setSeverity(ValidationMessage.SEV_LOW);
-//    }
-//    else
-//    {
-//      nestedmess.setSeverity(ValidationMessage.SEV_NORMAL);
-//    }
-//    ValidationMessage container = (ValidationMessage)nestedMessages.get(uri);
-//    if(container == null)
-//    {
-//      container = new ValidationMessage(XMLCoreValidationPlugin.getResourceString(_UI_REF_FILE_ERROR_MESSAGE, uri), 1, 0, validating_file_uri);
-//      // Initially set the nested error to a warning. This will automatically be changed
-//      // to an error if a nested message has a severity of error.
-//      container.setSeverity(ValidationMessage.SEV_LOW);
-//      nestedMessages.put(uri, container);
-//      messages.add(container);
-//    }
-//    container.addNestedMessage(nestedmess);
-//  }
-
-  /**
-   * @see org.eclipse.wsdl.validate.ValidationReport#getValidationMessages()
-   */
-  public ValidationMessage[] getValidationMessages()
-  {
-    return (ValidationMessage[])messages.toArray(new ValidationMessage[messages.size()]);
-  }
-
-  public HashMap getNestedMessages()
-  {
-    return nestedMessages;
-  }
-  
-  /**
-   * Put the URI in a standard format.
-   * 
-   * @param uri The URI to put into a standard format.
-   * @return The standard format of the URI.
-   */
-  private String normalize(String uri)
-  {
-//    if(uri.startsWith("platform:"))
-//    {
-//      try
-//      {
-//        uri = Platform.resolve(new URL(uri)).toString();
-//      }
-//      catch(Exception e)
-//      {
-//      }
-//    }
-    uri = uri.replaceAll("%20"," "); //$NON-NLS-1$ //$NON-NLS-2$
-    uri = uri.replaceAll("%5E", "^"); //$NON-NLS-1$ //$NON-NLS-2$
-    uri = uri.replace('\\','/');
-    
-    return uri;
-  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationMessage.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationMessage.java
deleted file mode 100644
index 5e1dcf7..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationMessage.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.validation.core;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-/**
- * A class for holding validation message information. Holds the message and the
- * message location.
- */
-public class ValidationMessage
-{
-  public static final QualifiedName ERROR_MESSAGE_MAP_QUALIFIED_NAME = new QualifiedName("org.eclipse.wst.xml.validation", "errorMessageMap"); //$NON-NLS-1$ //$NON-NLS-2$
-  protected String message;
-  protected int lineNumber;
-  protected int columnNumber;
-  protected String uri;
-  protected List nestedErrors;
-  protected String key;
-  protected Object[] messageArguments;
-  protected int startOffset;
-  protected int severity = IMessage.NORMAL_SEVERITY;
-  public static int SEV_HIGH = IMessage.HIGH_SEVERITY;
-  public static int SEV_NORMAL = IMessage.NORMAL_SEVERITY;
-  public static int SEV_LOW = IMessage.LOW_SEVERITY;
-
-  /**
-   * Constructor.
-   * 
-   * @param message The message for the validation message.
-   * @param lineNumber The line location of the message.
-   * @param columnNumber The column location of the message.
-   */
-  public ValidationMessage(String message, int lineNumber, int columnNumber)
-  {
-    this(message, lineNumber, columnNumber, null);
-  }
-
-  /** 
-   * Constructor.
-   * 
-   * @param message The message for the validation message.
-   * @param lineNumber The line location of the message.
-   * @param columnNumber The column location of the message.
-   * @param uri The uri of the file the message is for.
-   */
-   public ValidationMessage(String message, int lineNumber, int columnNumber, String uri)
-  {
-     this(message, lineNumber, columnNumber, uri, null, null);
-  }
-   
-   /** 
-    * Constructor.
-    * 
-    * @param message The message for the validation message.
-    * @param lineNumber The line location of the message.
-    * @param columnNumber The column location of the message.
-    * @param uri The uri of the file the message is for.
-    * @param key a unique string representing the error
-    * @param messageArguments the arguments Xerces uses to create the message
-    */
-    public ValidationMessage(String message, int lineNumber, int columnNumber, String uri, String key, Object[] messageArguments)
-   {
-     this.message = message;
-     this.lineNumber = lineNumber;
-     this.columnNumber = columnNumber;
-     this.uri = uri;
-     this.key = key;
-	 this.messageArguments = messageArguments;
-     this.startOffset = 0;    
-   }
-   
-
-  /**
-   * Get the message for this valiation message.
-   * 
-   * @return The message for this validation message.
-   */
-  public String getMessage()
-  {
-    return message;
-  }
-
-  /**
-   * Get the column location.
-   * 
-   * @return The column number.
-   */
-  public int getColumnNumber()
-  {
-    return columnNumber;
-  }
-
-  /**
-   * Get the line location.
-   * 
-   * @return The line number.
-   */
-  public int getLineNumber()
-  {
-    return lineNumber;
-  }
-
-  /**
-   * Get the uri for the file that contains the message.
-   * 
-   * @return The uri of the file that contains the message.
-   */
-  public String getUri()
-  {
-    return uri;
-  }
-  
-  /**
-   * Add a nested validation message to this validation message.
-   * 
-   * @param validationMessage The validation message to add as a nested message.
-   */
-  public void addNestedMessage(ValidationMessage validationMessage)
-  {
-    if (nestedErrors == null)
-    {
-      nestedErrors = new ArrayList();
-    }
-    nestedErrors.add(validationMessage);
-    int validaitonmessageSeverity = validationMessage.getSeverity();
-    if(validaitonmessageSeverity == SEV_NORMAL || validaitonmessageSeverity == SEV_HIGH)
-    {
-      setSeverity(SEV_NORMAL);
-    }
-  }
-
-  /**
-   * Get the list of nested validation messages.
-   * 
-   * @return The list of nested validation messages.
-   */
-  public List getNestedMessages()
-  {
-    return nestedErrors != null ? nestedErrors : Collections.EMPTY_LIST;
-  }
-  
-  /**
-   * Get the severity of the defect.
-   * 
-   * @return The severity of the defect.
-   */
-  public int getSeverity()
-  {
-  	return severity;
-  }
-  
-  /**
-   * Set the severity of the message.
-   * 
-   * @param sev The severity to set.
-   */
-  public void setSeverity(int sev)
-  {
-  	severity = sev;
-  }
-  
-  public void setStartOffset(int offset)
-  {
-    this.startOffset = offset;
-  }
-  
-  /**
-   * @return Returns the key.
-   */
-  public String getKey()
-  {
-    return key;
-  }
-  
-  public Object[] getMessageArguments()
-  {
-	  return this.messageArguments;
-  }
-  
-
-  public void setMessage(String message)
-  {
-    this.message = message;
-  }  
-                                     
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationReport.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationReport.java
deleted file mode 100644
index dbb1570..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationReport.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.validation.core;
-
-import java.util.HashMap;
-
-/**
- * An interface for a validation report.
- * 
- * @author Lawrence Mandel, IBM
- */
-public interface ValidationReport
-{
-  /**
-   * Returns the URI for the file the report refers to.
-   * 
-   * @return The URI for the file the report refers to.
-   */
-  public String getFileURI();
-  
-  /**
-   * Returns whether the file is valid. The file may have warnings associated with it.
-   * 
-   * @return True if the file is valid, false otherwise.
-   */
-  public boolean isValid();
-
-  /**
-   * Returns an array of validation messages.
-   * 
-   * @return An array of validation messages.
-   */
-  public ValidationMessage[] getValidationMessages();
-  
-  public HashMap getNestedMessages();
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/CommandLineLogger.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/CommandLineLogger.java
deleted file mode 100644
index 0d38f38..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/CommandLineLogger.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.validation.core.logging;
-
-/**
- * A logger that will print log info to System.out.
- * 
- * @author Lawrence Mandel, IBM
- */
-public class CommandLineLogger implements ILogger
-{
-  public void logError(String error, Throwable exception)
-  {
-    System.out.println(error);
-    System.out.println(exception.toString());
-  }
-
-  public void logWarning(String warning, Throwable exception)
-  {
-    System.out.println(warning);
-    System.out.println(exception.toString());
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/EclipseLogger.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/EclipseLogger.java
deleted file mode 100644
index 573cf2d..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/EclipseLogger.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.validation.core.logging;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-
-
-/**
- * A logger that will log to the log file in the eclipse metadata directory.
- */
-public class EclipseLogger implements ILogger
-{
-  
-  public void logError(String error, Throwable exception)
-  {
-    XMLCorePlugin.getDefault().getLog().log(new Status(IStatus.ERROR, XMLCorePlugin.getDefault().getBundle().getSymbolicName(), IStatus.ERROR, error, exception));
-  }
- 
-  public void logWarning(String warning, Throwable exception)
-  {
-    XMLCorePlugin.getDefault().getLog().log(new Status(IStatus.WARNING, XMLCorePlugin.getDefault().getBundle().getSymbolicName(), IStatus.WARNING, warning, exception));
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/ILogger.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/ILogger.java
deleted file mode 100644
index e81a410..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/ILogger.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.validation.core.logging;
-
-/**
- * The interface for a standard logger. Allows for logging errors and warnings.
- * 
- * @author Lawrence Mandel, IBM
- */
-public interface ILogger
-{
-  /**
-   * Log an error message.
-   * 
-   * @param error The error message to log.
-   * @param exception The exception to log.
-   */
-  public void logError(String error, Throwable exception);
-
-  /**
-   * Log a warning message.
-   * 
-   * @param warning The warning message to log.
-   * @param exception The exception to log.
-   */
-  public void logWarning(String warning, Throwable exception);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/LoggerFactory.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/LoggerFactory.java
deleted file mode 100644
index 81549e3..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/LoggerFactory.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.validation.core.logging;
-
-/**
- * The logger factory allows for simple use of whatever logging mechanism is in
- * place. The tool can specify a custom logging class and can request the
- * logger from this class.
- * 
- * @author Lawrence Mandel, IBM
- * 
- * @deprecated - not used in WTP or by any adopters as of 9/12/2007
- */
-public class LoggerFactory
-{
-  private static ILogger      logger            = null;
-  private static ClassLoader  classloader       = null;
-  private static String       loggerClass       = null;
-  private static final String commandlinelogger = "org.eclipse.wst.xml.validation.internal.core.logging.CommandLineLogger"; //$NON-NLS-1$
-  private static final String eclipselogger     = "org.eclipse.wst.xml.validation.internal.core.logging.EclipseLogger"; //$NON-NLS-1$
-  private static String       defaultlogger     = commandlinelogger;
-
-  /**
-   * Get the one and only instance of the logger.
-   * 
-   * @return The one and only instance of the logger.
-   */
-  public static ILogger getLoggerInstance()
-  {
-    if(logger == null)
-    {
-      if(loggerClass != null)
-      {
-        if(classloader != null)
-        {
-          try
-          {
-            Class lc = classloader.loadClass(loggerClass);
-            logger = (ILogger) lc.newInstance();
-          }
-          catch (Exception e)
-          {
-          }
-        }
-        if(logger == null)
-        {
-          try
-          {
-            Class lc = LoggerFactory.class.getClassLoader().loadClass(loggerClass);
-            logger = (ILogger) lc.newInstance();
-          }
-          catch (Exception e)
-          {
-          }
-        }
-      }
-      if(logger == null)
-      {
-        try
-        {
-          Class lc = LoggerFactory.class.getClassLoader().loadClass(defaultlogger);
-          logger = (ILogger) lc.newInstance();
-        }
-        catch (Exception e)
-        {
-        }
-      }
-    }
-    return logger;
-  }
-
-  /**
-   * Specify the logger implementation to be used.
-   * 
-   * @param classname
-   *            The name of the logger class.
-   * @param loggerclassloader
-   *            The classloader to use to load the logger. If null, the default
-   *            classloader will be used.
-   */
-  public static void specifyLogger(String classname, ClassLoader loggerclassloader)
-  {
-    loggerClass = classname;
-    classloader = loggerclassloader;
-  }
-
-  /**
-   * Set the default logger to the eclipse logger.
-   */
-  public static void useEclipseLogger()
-  {
-    defaultlogger = eclipselogger;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/ErrorCustomizationPluginRegistryReader.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/ErrorCustomizationPluginRegistryReader.java
deleted file mode 100644
index 44a6481..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/ErrorCustomizationPluginRegistryReader.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.validation.eclipse;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.xml.core.internal.validation.errorcustomization.ErrorCustomizationRegistry;
-import org.eclipse.wst.xml.core.internal.validation.errorcustomization.ErrorMessageCustomizerDelegate;
-import org.osgi.framework.Bundle;
-/**
- * This class reads the plug-in manifests and registers each extension
- * error customizer with the ErrorCustomizationRegistry.
- */
-public class ErrorCustomizationPluginRegistryReader {
-	
-	  protected static final String PLUGIN_ID = "org.eclipse.wst.xml.core"; //$NON-NLS-1$
-	  protected static final String ATT_CLASS = "class"; //$NON-NLS-1$
-	  protected static final String ATT_NAMESPACE = "namespace"; //$NON-NLS-1$
-	  protected static final String EXTENSION_POINT_ID = "errorCustomizer"; //$NON-NLS-1$
-	  protected static final String tagName = EXTENSION_POINT_ID;
-
-	  /**
-	   * Read from plugin registry for the errorcustomizer extension.
-	   */
-	  public void readRegistry()
-	  {
-	    IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
-	    IExtensionPoint point = pluginRegistry.getExtensionPoint(PLUGIN_ID, EXTENSION_POINT_ID);
-	    if (point != null)
-	    {
-	      IConfigurationElement[] elements = point.getConfigurationElements();
-	      for (int i = 0; i < elements.length; i++)
-	      {
-	        readElement(elements[i]);
-	      }
-	    }
-	  }
-
-	  /**
-	   * readElement() - parse and deal with an extension like:
-	   *
-	   * <extension point="org.eclipse.wst.xml.core.errorCustomizer"
-	   *            id="specificErrorCustomizer"
-	   *            name="Specific Error Customizer">
-	   *   <errorCustomizer
-	   *   			namespace="http://specificnamespace"
-	   *   			class="org.eclipse.wst.xml.core.MySpecificErrorCustomizer/>
-	   * </extension>
-	   */
-	  protected void readElement(IConfigurationElement element)
-	  {
-	    if (element.getName().equals(tagName))
-	    {
-	      String errorCustomizerClass = element.getAttribute(ATT_CLASS);
-	      String namespace = element.getAttribute(ATT_NAMESPACE);
-
-	      if (errorCustomizerClass != null)
-	      {
-	        try
-	        {
-	          Bundle pluginBundle = Platform.getBundle(element.getDeclaringExtension().getContributor().getName());
-	          ErrorMessageCustomizerDelegate delegate = new ErrorMessageCustomizerDelegate(pluginBundle, errorCustomizerClass);
-	          ErrorCustomizationRegistry.getInstance().addErrorMessageCustomizer(namespace, delegate);
-	        }
-	        catch (Exception e)
-	        {
-	        }
-	      }
-	    }
-	  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/Validator.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/Validator.java
deleted file mode 100644
index 79acb37..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/Validator.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.validation.eclipse;
-
-import java.io.InputStream;
-
-import org.eclipse.wst.validation.ValidationResult;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
-import org.eclipse.wst.xml.core.internal.validation.XMLValidationConfiguration;
-import org.eclipse.wst.xml.core.internal.validation.XMLValidationReport;
-import org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator;
-import org.eclipse.wst.xml.core.internal.validation.core.NestedValidatorContext;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationReport;
-
-public class Validator extends AbstractNestedValidator
-{
-  protected int indicateNoGrammar = 0;
-  
-  /**
-   * Set any preferences for XML validation.
-   * 
-   * @see org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator#setupValidation(org.eclipse.wst.xml.core.internal.validation.core.NestedValidatorContext)
-   */
-  protected void setupValidation(NestedValidatorContext context) 
-  {
-	super.setupValidation(context);
-	indicateNoGrammar = XMLCorePlugin.getDefault().getPluginPreferences().getInt(XMLCorePreferenceNames.INDICATE_NO_GRAMMAR);
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator#validate(java.lang.String, java.io.InputStream, org.eclipse.wst.xml.core.internal.validation.core.NestedValidatorContext)
-   */
-  public ValidationReport validate(String uri, InputStream inputstream, NestedValidatorContext context)
-  {
-    return validate(uri, inputstream, context, null);
-  }
-
-  public ValidationReport validate(String uri, InputStream inputstream, NestedValidatorContext context, ValidationResult result)
-  {
-    XMLValidator validator = XMLValidator.getInstance();
-
-    XMLValidationConfiguration configuration = new XMLValidationConfiguration();
-    try
-    {
-      configuration.setFeature(XMLValidationConfiguration.INDICATE_NO_GRAMMAR, indicateNoGrammar);
-    }
-    catch(Exception e)
-    {
-      // TODO: Unable to set the preference. Log this problem.
-    }
-    
-    XMLValidationReport valreport = null;
-    if (inputstream != null)
-    {
-      valreport = validator.validate(uri, inputstream, configuration, result);
-    }
-    else
-    {
-      valreport = validator.validate(uri, null, configuration, result);
-    }
-              
-    return valreport;
-  }
-	  
-  /**
-   * Store additional information in the message parameters. For XML validation there
-   * are three additional pieces of information to store:
-   * param[0] = the column number of the error
-   * param[1] = the 'squiggle selection strategy' for which DOM part to squiggle
-   * param[2] = the name or value of what is to be squiggled
-   * 
-   * @see org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator#addInfoToMessage(org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage, org.eclipse.wst.validation.internal.provisional.core.IMessage)
-   */
-  protected void addInfoToMessage(ValidationMessage validationMessage, IMessage message)
-  { 
-	String key = validationMessage.getKey();
-	if(key != null)
-	{
-      XMLMessageInfoHelper messageInfoHelper = new XMLMessageInfoHelper();
-      String[] messageInfo = messageInfoHelper.createMessageInfo(key, validationMessage.getMessageArguments());
-      
-      message.setAttribute(COLUMN_NUMBER_ATTRIBUTE, new Integer(validationMessage.getColumnNumber()));
-      message.setAttribute(SQUIGGLE_SELECTION_STRATEGY_ATTRIBUTE, messageInfo[0]);
-      message.setAttribute(SQUIGGLE_NAME_OR_VALUE_ATTRIBUTE, messageInfo[1]);
-	}
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/XMLMessageInfoHelper.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/XMLMessageInfoHelper.java
deleted file mode 100644
index 4582514..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/XMLMessageInfoHelper.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.validation.eclipse;
-
-/**
- * The message info helper determines the selection strategy for elements
- * in a SSE editor.
- *
- */
-public class XMLMessageInfoHelper
-{
-  public XMLMessageInfoHelper()
-  {
-    super();
-  }
-
-  /**
-   *  Returns an array containing information about what should be underlined with the red "squiggles"
-   *  using the errorKey, and the messageArguments.
-   *  <br>Position 0 of the array returned contains the selection Strategy, or what DOM Element to underline.  
-   *  For example "ATTRIBUTE_NAME"  
-   *  <br>Position 1 contains the name or value to squiggle.
-   *  <p>For example, if we wanted to squiggle the attribute name of an attribute name
-   *  foo this method would return {"ATTRIBUTE_NAME", "foo"}
-   *  </p>
-   *  @param errorKey 
-   *  		The error key given by the Xerces parser.
-   *  @param messageArguments 
-   *  		The arguments used by Xerces to "fill in the blanks" of their messages.
-   *  @return 
-   *  		An array containing the squiggle information.
-   *  @see org.eclipse.wst.xml.ui.internal.validation.DelegatingSourceValidator
-   *  
-   */
-  public String[] createMessageInfo(String errorKey, Object[] messageArguments)
-  { 
-    String selectionStrategy = null;
-    String nameOrValue = null;
-    
-    if(errorKey != null)
-    {
-      if (errorKey.equals("cvc-complex-type.2.4.a") || errorKey.equals("cvc-complex-type.2.4.d") || errorKey.equals("cvc-complex-type.2.4.b") || errorKey.equals("MSG_CONTENT_INVALID") //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-        | errorKey.equals("MSG_CONTENT_INCOMPLETE") || errorKey.equals("MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED") || errorKey.equals("cvc-complex-type.4")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-      {
-        selectionStrategy = "START_TAG"; //$NON-NLS-1$
-      }
-      else if (errorKey.equals("cvc-type.3.1.3")) //$NON-NLS-1$
-      {
-        selectionStrategy = "TEXT"; //$NON-NLS-1$
-      }
-      else if (errorKey.equals("cvc-complex-type.2.3")) //$NON-NLS-1$
-      {
-    	selectionStrategy = "FIRST_NON_WHITESPACE_TEXT"; //$NON-NLS-1$
-      }
-      else if (errorKey.equals("cvc-type.3.1.1")) //$NON-NLS-1$
-      {
-        selectionStrategy = "ALL_ATTRIBUTES"; //$NON-NLS-1$
-      }
-      else if (errorKey.equals("cvc-complex-type.3.2.2") || errorKey.equals("MSG_ATTRIBUTE_NOT_DECLARED")) //$NON-NLS-1$ //$NON-NLS-2$
-      {
-        selectionStrategy = "ATTRIBUTE_NAME"; //$NON-NLS-1$
-	    //in this case we need nameOrValue to be the name of the attribute to underline
-	    nameOrValue = (String)messageArguments[1];
-      }
-      else if (errorKey.equals("cvc-attribute.3") || errorKey.equals("MSG_ATTRIBUTE_VALUE_NOT_IN_LIST") || errorKey.equals("cvc-complex-type.3.1")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-      {	
-    	selectionStrategy = "ATTRIBUTE_VALUE";   //$NON-NLS-1$
-		//in this case we need nameOrValue to be the name of the Attribute
-    	if (errorKey.equals("cvc-attribute.3") || errorKey.equals("cvc-complex-type.3.1")) //$NON-NLS-1$ //$NON-NLS-2$
-    	{ 
-    	  nameOrValue = (String)messageArguments[1];
-    	}
-    	else if (errorKey.equals("MSG_ATTRIBUTE_VALUE_NOT_IN_LIST")) //$NON-NLS-1$
-    	{	
-    	  nameOrValue = (String)messageArguments[0];
-    	}
-      }
-      else if (errorKey.equals("cvc-elt.4.2")) //$NON-NLS-1$
-      {	
-    	selectionStrategy="VALUE_OF_ATTRIBUTE_WITH_GIVEN_VALUE"; //$NON-NLS-1$
-		//in this case we need nameOrValue to be the value of the attribute we want to unerline
-    	nameOrValue = (String)messageArguments[1];	
-      }
-      else if (errorKey.equals("EntityNotDeclared")) //$NON-NLS-1$
-      {  	
-    	selectionStrategy="TEXT_ENTITY_REFERENCE"; //$NON-NLS-1$
-        nameOrValue = (String)messageArguments[0];
-      }
-      else if (errorKey.equals("ElementUnterminated")) //$NON-NLS-1$
-      {
-        selectionStrategy = "ENTIRE_ELEMENT"; //$NON-NLS-1$
-      }
-      else if (errorKey.equals("ETagUnterminated") || errorKey.equals("ETagRequired"))  //$NON-NLS-1$  //$NON-NLS-2$
-      {
-        selectionStrategy = "END_TAG";   //$NON-NLS-1$
-      }
-    }
-    String messageInfo[] = new String[2];
-    messageInfo[0] = selectionStrategy != null? selectionStrategy: ""; //$NON-NLS-1$
-    messageInfo[1] = nameOrValue;
-    return messageInfo;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/XMLValidator.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/XMLValidator.java
deleted file mode 100644
index d481058..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/XMLValidator.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.validation.eclipse;
-
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
-
-/**
- * An XML validator specific to Eclipse. This validator will wrap the internal
- * XML validator and provide automatic URI resolution support. This class also
- * reads from the plug-in registry and registers all error customizers with the
- * registry.
- */
-public class XMLValidator extends org.eclipse.wst.xml.core.internal.validation.XMLValidator
-{
-  private static XMLValidator instance = null;
-  
-  /**
-   * Return the one and only instance of the XML validator. The validator
-   * can be reused and cannot be customized so there should only be one instance of it.
-   * 
-   * @return The one and only instance of the XML validator.
-   */
-  public static XMLValidator getInstance()
-  {
-    if(instance == null)
-    {
-      instance = new XMLValidator();
-    }
-    return instance;
-  }
-  /**
-   * Constructor. Create the XML validator, set the URI resolver and
-   * get the extension error customizers from the registry.
-   */
-  protected XMLValidator()
-  {
-    setURIResolver(URIResolverPlugin.createResolver());
-    new ErrorCustomizationPluginRegistryReader().readRegistry();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ElementInformation.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ElementInformation.java
deleted file mode 100644
index 649c99e..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ElementInformation.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.validation.errorcustomization;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A simple class to store information about an XML element.
- */
-public class ElementInformation
-{
-  protected String localName;
-  protected String namespace;
-  protected List children = new ArrayList();
-
-  /**
-   * Constructor.
-   * 
-   * @param uri
-   * 		The namespace URI of the element.
-   * @param localName
-   * 		The local name of the element.
-   */
-  public ElementInformation(String uri, String localName)
-  {
-    this.localName = localName;
-    this.namespace = uri;
-  }
-  
-  /**
-   * Get the namespace of this element.
-   * 
-   * @return
-   * 		The namespace of this element.
-   */
-  public String getNamespace()
-  {
-	return namespace;
-  }
-  
-  /**
-   * Get the local name of this element.
-   * 
-   * @return
-   * 		The local name of this element.
-   */
-  public String getLocalname()
-  {
-	return localName;
-  }
-  
-  /**
-   * Get the list of children of this element. The list contains
-   * ElementInformation objects representing the children of this element.
-   * 
-   * @return
-   * 		The list of children of this element.
-   */
-  public List getChildren()
-  {
-	return children;
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorCustomizationManager.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorCustomizationManager.java
deleted file mode 100644
index 745acc0..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorCustomizationManager.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.validation.errorcustomization;
-
-import java.util.Stack;
-
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationInfo;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage;
-
-/**
- * This class tracks the context of the parsed document to help identify error
- * conditions
- */
-public class ErrorCustomizationManager
-{
-  protected Stack elementInformationStack = new Stack();
-  protected ErrorMessageInformation messageForConsideration;
-
-  /**
-   * This method should be called in the start element method of the XML validator's
-   * content handler.
-   * 
-   * @param uri
-   * 		The namespace of the element.
-   * @param localName
-   * 		The local name of the element.
-   */
-  public void startElement(String uri, String localName)
-  { 
-    ElementInformation elementInformation = new ElementInformation(uri, localName);
-    if (elementInformationStack.size() > 0)
-    {
-      ElementInformation parent = (ElementInformation) elementInformationStack.peek();
-      parent.children.add(elementInformation);
-    }
-    elementInformationStack.push(elementInformation);
-  }
-
-  /**
-   * This method should be called in the end element method of the XML validator's
-   * content handler.
-   * 
-   * @param uri
-   * 		The namespace of the element.
-   * @param localName
-   * 		The local name of the element.
-   */
-  public void endElement(String uri, String localName)
-  {   
-    if (elementInformationStack.size() > 0)
-    {
-      ElementInformation elementInformation = (ElementInformation)elementInformationStack.pop();
-      if (messageForConsideration != null)
-      {  
-        IErrorMessageCustomizer[] customizers = ErrorCustomizationRegistry.getInstance().getCustomizers(elementInformation.getNamespace());
-        int numCustomizers = customizers.length;
-        for(int i = 0; i < numCustomizers; i++)
-        {
-          String message = customizers[i].customizeMessage(elementInformation, messageForConsideration.key, messageForConsideration.arguments);
-          if(message != null)
-          {
-        	messageForConsideration.message.setMessage(message);
-        	break;
-          }
-        }
-      }  
-    }
-  }
-
-  /**
-   * Consider the reported error for customization.
-   * 
-   * @param valInfo
-   * 		The current ValidationInfo object containing validation specific information.
-   * @param key
-   * 		The key related to the message.
-   * @param arguments
-   * 		Any message arguments.
-   */
-  public void considerReportedError(ValidationInfo valInfo, String key, Object[] arguments)
-  {
-    messageForConsideration = null;
-    ValidationMessage[] messages = valInfo.getValidationMessages();
-    if (messages.length > 0)
-    {  
-      messageForConsideration = new ErrorMessageInformation();
-      messageForConsideration.key = key;
-      messageForConsideration.arguments = arguments;
-      messageForConsideration.message = messages[messages.length - 1]; 
-    }
-  }
-  
-  /**
-   * A simple class to hold error message information.
-   */
-  public class ErrorMessageInformation
-  {
-	public String key = null;
-	public Object[] arguments = null;
-	public ValidationMessage message = null;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorCustomizationRegistry.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorCustomizationRegistry.java
deleted file mode 100644
index 2094879..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorCustomizationRegistry.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.validation.errorcustomization;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * The error customization regsitry manages all registered
- * IErrorMessageCustomizers by namespace.
- */
-public class ErrorCustomizationRegistry 
-{
-  protected static ErrorCustomizationRegistry registry = null;
-  protected Map customizers = new HashMap();
-  
-  /**
-   * Restricted constructor in keeping with the singleton pattern.
-   */
-  protected ErrorCustomizationRegistry()
-  {
-  }
-  
-  /**
-   * Get the one and only instance of the registry.
-   * 
-   * @return
-   * 		The one and only instance of the registry.
-   */
-  public static ErrorCustomizationRegistry getInstance()
-  {
-	if(registry == null)
-	{
-	  registry = new ErrorCustomizationRegistry();
-	}
-	return registry;
-  }
-  
-  /**
-   * Add a customizer to the registry. 
-   * 
-   * @param namespace
-   * 		The namespace the customizer will act on.
-   * @param customizer
-   * 		The error customizer to register.
-   */
-  public void addErrorMessageCustomizer(String namespace, IErrorMessageCustomizer customizer)
-  {
-	// To register a customizer for the no namespace use an empty string.
-	if(namespace == null)
-	{
-	  namespace = ""; //$NON-NLS-1$
-	}
-	List customizersForNS = (List)customizers.get(namespace);
-	if(customizersForNS == null)
-	{
-	  customizersForNS = new ArrayList();
-	  customizers.put(namespace, customizersForNS);
-	}
-	if(customizer != null)
-	{
-	  customizersForNS.add(customizer);
-	}
-  }
-  
-  /**
-   * Get the error customizers for a given namespace.
-   * 
-   * @param namespace
-   * 		The namespace for which to retrieve the customizers.
-   * @return
-   * 		An array of customizers registered for this namespace.
-   */
-  public IErrorMessageCustomizer[] getCustomizers(String namespace)
-  {
-	if(namespace == null)
-	{
-	  namespace = ""; //$NON-NLS-1$
-	}
-	List customizersForNS = (List)customizers.get(namespace);
-	if(customizersForNS == null)
-	{
-	  customizersForNS = new ArrayList();
-	}
-	return (IErrorMessageCustomizer[])customizersForNS.toArray(new IErrorMessageCustomizer[customizersForNS.size()]);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorMessageCustomizerDelegate.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorMessageCustomizerDelegate.java
deleted file mode 100644
index 07147c1..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/ErrorMessageCustomizerDelegate.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.validation.errorcustomization;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.osgi.framework.Bundle;
-
-/**
- * An error message customizer delegate is used to allow for
- * lazy loading of error customizers.
- *
- */
-public class ErrorMessageCustomizerDelegate implements IErrorMessageCustomizer
-{
-  protected Bundle bundle = null;
-  protected String classname = null;
-  protected IErrorMessageCustomizer customizer = null;
-  
-  public ErrorMessageCustomizerDelegate(Bundle bundle, String classname)
-  {
-	this.bundle = bundle;
-	this.classname = classname;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.xml.core.internal.validation.errorcustomization.IErrorMessageCustomizer#customizeMessage(org.eclipse.wst.xml.core.internal.validation.errorcustomization.ElementInformation, java.lang.String, java.lang.Object[])
-   */
-  public String customizeMessage(ElementInformation elementInfo, String errorKey, Object[] arguments) 
-  {
-	if(customizer == null)
-	{
-	  loadCustomizer();
-	}
-	if(customizer == null)
-	{
-	  return null;
-	}
-	return customizer.customizeMessage(elementInfo, errorKey, arguments);
-  }
-  
-  /**
-   * Load the customizer class.
-   */
-  protected void loadCustomizer()
-  {
-	try
-	{
-	  Class customizerClass = bundle.loadClass(classname);
-	  customizer = (IErrorMessageCustomizer)customizerClass.newInstance();
-	}
-	catch(Exception e)
-	{
-	  XMLCorePlugin.getDefault().getLog().log(
-			  new Status(IStatus.WARNING, 
-					     XMLCorePlugin.getDefault().getBundle().getSymbolicName(), 
-					     IStatus.OK, 
-					     "The XML validator error customizer was unable to load class " + classname, e)); //$NON-NLS-1$
-	}
-  }
-  
-  
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/IErrorMessageCustomizer.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/IErrorMessageCustomizer.java
deleted file mode 100644
index ac6d1e0..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/errorcustomization/IErrorMessageCustomizer.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.validation.errorcustomization;
-
-/**
- * An error message customizer will be called by the XML validator to customize
- * XML validation errors for a given namespace. The customizer can be used to 
- * create clearer errors for specific application domains.
- */
-public interface IErrorMessageCustomizer 
-{
-  /**
-   * Return a customized error message for the given element. Null should be returned
-   * if the message should not be customized.
-   * 
-   * @param elementInformation
-   * 		The information about the element for which to customize the error.
-   * @param errorKey
-   * 		The key for the error for which to replace the message.
-   * @param arguments
-   * 		Arguments related the the error message.
-   * @return
-   * 		A customized error message or null if this customizer will not customize the message.
-   */
-  public String customizeMessage(ElementInformation elementInfo, String errorKey, Object[] arguments);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/xmlvalidation.properties b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/xmlvalidation.properties
deleted file mode 100644
index 91fc0ce..0000000
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/xmlvalidation.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-!-- Constants for strings  
-
-! Usage:
-!   {0} replaced with the host name
-!
-_UI_PROBLEMS_VALIDATING_UNKNOWN_HOST             = The file cannot be validated as the host "{0}" is currently unreachable.
-
-! Usage:
-!   {0} replaced with the file name
-!
-_UI_PROBLEMS_VALIDATING_FILE_NOT_FOUND           = The file cannot be validated as the XML Schema "{0}" that is specified as describing the syntax of the file cannot be located.
-
-_UI_PROBLEMS_CONNECTION_REFUSED                  = The file cannot be validated as there was a connection problem.
-
-!
-! Referenced File Dialog Related Message
-!
-_UI_REF_FILE_ERROR_MESSAGE                       = Referenced file contains errors ({0}).  For more information, right click on the message and select "Show Details..."
-
-# Warning when no grammar is located.
-_WARN_NO_GRAMMAR                                 = No grammar constraints (DTD or XML schema) detected for the document.
- 
diff --git a/bundles/org.eclipse.wst.xml.core/src/.cvsignore b/bundles/org.eclipse.wst.xml.core/src/.cvsignore
deleted file mode 100644
index 101c29e..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-notebook.jpage
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/DebugAdapterFactory.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/DebugAdapterFactory.java
deleted file mode 100644
index 266b80a..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/DebugAdapterFactory.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal;
-
-import java.util.ArrayList;
-
-import org.eclipse.wst.sse.core.internal.PropagatingAdapterFactory;
-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;
-
-
-public class DebugAdapterFactory extends AbstractAdapterFactory implements PropagatingAdapterFactory {
-
-	/**
-	 * Constructor for DebugAdapterFactory.
-	 */
-	public DebugAdapterFactory() {
-		this(IDebugAdapter.class, true);
-	}
-
-	/**
-	 * Constructor  for DebugAdapterFactory.
-	 * 
-	 * @param fAdapterKey
-	 * @param registerAdapters
-	 */
-	private DebugAdapterFactory(Object adapterKey, boolean registerAdapters) {
-		super(adapterKey, registerAdapters);
-	}
-
-	
-	public void addContributedFactories(INodeAdapterFactory factory) {
-		//none expected
-	}
-
-	public INodeAdapterFactory copy() {
-		return new DebugAdapterFactory(getAdapterKey(), isShouldRegisterAdapter());
-	}
-
-	protected INodeAdapter createAdapter(INodeNotifier target) {
-		EveryNodeDebugAdapter result = null;
-		result = EveryNodeDebugAdapter.getInstance();
-		return result;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IAdapterFactory#isFactoryForType(java.lang.Object)
-	 */
-	public boolean isFactoryForType(Object type) {
-
-		return IDebugAdapter.class == type;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.PropagatingAdapterFactory#setContributedFactories(java.util.ArrayList)
-	 */
-	public void setContributedFactories(ArrayList list) {
-		// none expected
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/EveryNodeDebugAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/EveryNodeDebugAdapter.java
deleted file mode 100644
index baa718c..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/EveryNodeDebugAdapter.java
+++ /dev/null
@@ -1,284 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal;
-
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.wst.sse.core.internal.provisional.IModelStateListener;
-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.events.AboutToBeChangedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.IModelAboutToBeChangedListener;
-import org.eclipse.wst.sse.core.internal.provisional.events.IStructuredDocumentListener;
-import org.eclipse.wst.sse.core.internal.provisional.events.NewDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.NoChangeEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionsReplacedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentRegionsReplacedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-
-
-/**
- * Purely for use in debugging
- */
-public class EveryNodeDebugAdapter implements IDebugAdapter {
-
-	static class InternalDocumentListener implements IDocumentListener {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.text.IDocumentListener#documentAboutToBeChanged(org.eclipse.jface.text.DocumentEvent)
-		 */
-		public void documentAboutToBeChanged(DocumentEvent event) {
-			Debug.println("IdocumentAboutToBeChanged: " + event); //$NON-NLS-1$
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.text.IDocumentListener#documentChanged(org.eclipse.jface.text.DocumentEvent)
-		 */
-		public void documentChanged(DocumentEvent event) {
-			Debug.println("IdocumentChanged: " + event); //$NON-NLS-1$
-
-		}
-
-	}
-
-	static class InternalModelStateListener implements IModelStateListener {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.core.IModelStateListener#modelAboutToBeChanged(org.eclipse.wst.sse.core.IStructuredModel)
-		 */
-		public void modelAboutToBeChanged(IStructuredModel model) {
-			Debug.println("modelAboutToBeChanged: " + model); //$NON-NLS-1$
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.core.IModelStateListener#modelChanged(org.eclipse.wst.sse.core.IStructuredModel)
-		 */
-		public void modelChanged(IStructuredModel model) {
-			Debug.println("modelChanged: " + model); //$NON-NLS-1$
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.core.IModelStateListener#modelDirtyStateChanged(org.eclipse.wst.sse.core.IStructuredModel,
-		 *      boolean)
-		 */
-		public void modelDirtyStateChanged(IStructuredModel model, boolean isDirty) {
-			Debug.println("modelDirtyStateChanged: " + model); //$NON-NLS-1$
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.core.IModelStateListener#modelResourceDeleted(org.eclipse.wst.sse.core.IStructuredModel)
-		 */
-		public void modelResourceDeleted(IStructuredModel model) {
-			Debug.println("modelResourceDeleted: " + model); //$NON-NLS-1$
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.core.IModelStateListener#modelResourceMoved(org.eclipse.wst.sse.core.IStructuredModel,
-		 *      org.eclipse.wst.sse.core.IStructuredModel)
-		 */
-		public void modelResourceMoved(IStructuredModel oldModel, IStructuredModel newModel) {
-			Debug.println("modelResourceMoved: " + "oldModel: " + oldModel + "newModel: " + newModel); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-
-		public void modelAboutToBeReinitialized(IStructuredModel structuredModel) {
-			Debug.println("modelAboutToBeReinitialized: " + "structuredModel: " + structuredModel); //$NON-NLS-1$ //$NON-NLS-2$
-
-		}
-
-		public void modelReinitialized(IStructuredModel structuredModel) {
-			Debug.println("modelReinitialized: " + "structuredModel: " + structuredModel); //$NON-NLS-1$ //$NON-NLS-2$
-
-		}
-
-	}
-
-	static class InternalStructuredDocumentAboutToChange implements IModelAboutToBeChangedListener {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.core.events.IModelAboutToBeChangedListener#modelAboutToBeChanged(org.eclipse.wst.sse.core.events.AboutToBeChangedEvent)
-		 */
-		public void modelAboutToBeChanged(AboutToBeChangedEvent structuredDocumentEvent) {
-			Debug.println("structuredDocumentAboutToBeChanged: " + structuredDocumentEvent); //$NON-NLS-1$
-
-		}
-
-	}
-
-	static class InternalStructuredDocumentListener implements IStructuredDocumentListener {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.core.events.IStructuredDocumentListener#newModel(org.eclipse.wst.sse.core.events.NewDocumentContentEvent)
-		 */
-		public void newModel(NewDocumentEvent structuredDocumentEvent) {
-			Debug.println("structuredDocumentChanged - newModel: " + structuredDocumentEvent); //$NON-NLS-1$
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.core.events.IStructuredDocumentListener#noChange(org.eclipse.wst.sse.core.events.NoChangeEvent)
-		 */
-		public void noChange(NoChangeEvent structuredDocumentEvent) {
-			Debug.println("structuredDocumentChanged - noChange: " + structuredDocumentEvent); //$NON-NLS-1$
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.core.events.IStructuredDocumentListener#nodesReplaced(org.eclipse.wst.sse.core.events.StructuredDocumentRegionsReplacedEvent)
-		 */
-		public void nodesReplaced(StructuredDocumentRegionsReplacedEvent structuredDocumentEvent) {
-			Debug.println("structuredDocumentChanged - nodesReplaced: " + structuredDocumentEvent); //$NON-NLS-1$
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.core.events.IStructuredDocumentListener#regionChanged(org.eclipse.wst.sse.core.events.RegionChangedEvent)
-		 */
-		public void regionChanged(RegionChangedEvent structuredDocumentEvent) {
-			Debug.println("structuredDocumentChanged - regionChanged: " + structuredDocumentEvent); //$NON-NLS-1$
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.core.events.IStructuredDocumentListener#regionsReplaced(org.eclipse.wst.sse.core.events.RegionsReplacedEvent)
-		 */
-		public void regionsReplaced(RegionsReplacedEvent structuredDocumentEvent) {
-			Debug.println("structuredDocumentChanged - regionsReplaced: " + structuredDocumentEvent); //$NON-NLS-1$
-
-		}
-
-	}
-
-	private static EveryNodeDebugAdapter singletonInstance;
-
-	public static EveryNodeDebugAdapter getInstance() {
-		if (singletonInstance == null) {
-			singletonInstance = new EveryNodeDebugAdapter();
-		}
-		return singletonInstance;
-	}
-
-	InternalDocumentListener fInternalDocumentListener;
-	InternalModelStateListener fInternalModelStateListener;
-	InternalStructuredDocumentAboutToChange fInternalStructuredDocumentAboutToChange;
-	InternalStructuredDocumentListener fInternalStructuredDocumentListener;
-	IStructuredModel fModel;
-
-	/**
-	 * 
-	 */
-	public EveryNodeDebugAdapter() {
-		super();
-		fInternalDocumentListener = new InternalDocumentListener();
-		fInternalStructuredDocumentAboutToChange = new InternalStructuredDocumentAboutToChange();
-		fInternalStructuredDocumentListener = new InternalStructuredDocumentListener();
-		fInternalModelStateListener = new InternalModelStateListener();
-	}
-
-	/**
-	 * @param target
-	 */
-	public EveryNodeDebugAdapter(INodeNotifier target) {
-		this();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.INodeAdapter#isAdapterForType(java.lang.Object)
-	 */
-	public boolean isAdapterForType(Object type) {
-		return (type == IDebugAdapter.class);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.INodeAdapter#notifyChanged(org.eclipse.wst.sse.core.INodeNotifier,
-	 *      int, java.lang.Object, java.lang.Object, java.lang.Object, int)
-	 */
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-		if (notifier instanceof IDOMNode) {
-			setModel(((IDOMNode) notifier).getModel());
-		}
-		Debug.println("notifier: " + notifier + " " + INodeNotifier.EVENT_TYPE_STRINGS[eventType] + " changedFeature: " + changedFeature + " oldValue: " + oldValue + " newValue: " + newValue + " pos: " + pos); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.internal.IDebugAdapter#setDocument(org.eclipse.wst.sse.core.text.IStructuredDocument)
-	 */
-	private void setModel(IStructuredModel structuredModel) {
-		if (fModel == structuredModel)
-			return;
-
-		if (fModel != null) {
-			fModel.removeModelStateListener(fInternalModelStateListener);
-			//
-			IStructuredDocument structuredDocument = fModel.getStructuredDocument();
-			if (structuredDocument != null) {
-				structuredDocument.removeDocumentListener(fInternalDocumentListener);
-				structuredDocument.removeDocumentAboutToChangeListener(fInternalStructuredDocumentAboutToChange);
-				structuredDocument.removeDocumentChangedListener(fInternalStructuredDocumentListener);
-			}
-		}
-		fModel = structuredModel;
-		if (fModel != null) {
-
-			fModel.addModelStateListener(fInternalModelStateListener);
-			//
-			IStructuredDocument structuredDocument = fModel.getStructuredDocument();
-			if (structuredDocument != null) {
-				structuredDocument.addDocumentListener(fInternalDocumentListener);
-				structuredDocument.addDocumentAboutToChangeListener(fInternalStructuredDocumentAboutToChange);
-				structuredDocument.addDocumentChangedListener(fInternalStructuredDocumentListener);
-			}
-		}
-
-
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/IDebugAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/IDebugAdapter.java
deleted file mode 100644
index 35c5712..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/IDebugAdapter.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal;
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-
-
-public interface IDebugAdapter extends INodeAdapter {
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/Logger.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/Logger.java
deleted file mode 100644
index 798c9bb..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/Logger.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.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.wst.xml.core"; //$NON-NLS-1$
-	
-	public static final int ERROR = IStatus.ERROR; // 4
-	public static final int ERROR_DEBUG = 200 + ERROR;
-	public static final int INFO = IStatus.INFO; // 1
-	public static final int INFO_DEBUG = 200 + INFO;
-
-	public static final int OK = IStatus.OK; // 0
-
-	public static final int OK_DEBUG = 200 + OK;
-
-	private static final String TRACEFILTER_LOCATION = "/debug/tracefilter"; //$NON-NLS-1$
-	public static final int WARNING = IStatus.WARNING; // 2
-	public static final int WARNING_DEBUG = 200 + WARNING;
-
-	/**
-	 * Adds message to log.
-	 * 
-	 * @param level
-	 *            severity level of the message (OK, INFO, WARNING, ERROR,
-	 *            OK_DEBUG, INFO_DEBUG, WARNING_DEBUG, ERROR_DEBUG)
-	 * @param message
-	 *            text to add to the log
-	 * @param exception
-	 *            exception thrown
-	 */
-	protected static void _log(int level, String message, Throwable exception) {
-		if (level == OK_DEBUG || level == INFO_DEBUG || level == WARNING_DEBUG || level == ERROR_DEBUG) {
-			if (!isDebugging())
-				return;
-		}
-
-		int severity = IStatus.OK;
-		switch (level) {
-			case INFO_DEBUG :
-			case INFO :
-				severity = IStatus.INFO;
-				break;
-			case WARNING_DEBUG :
-			case WARNING :
-				severity = IStatus.WARNING;
-				break;
-			case ERROR_DEBUG :
-			case ERROR :
-				severity = IStatus.ERROR;
-		}
-		message = (message != null) ? message : "null"; //$NON-NLS-1$
-		Status statusObj = new Status(severity, PLUGIN_ID, severity, message, exception);
-		Bundle bundle = Platform.getBundle(PLUGIN_ID);
-		if (bundle != null) 
-			Platform.getLog(bundle).log(statusObj);
-	}
-
-	/**
-	 * Prints message to log if category matches /debug/tracefilter option.
-	 * 
-	 * @param message
-	 *            text to print
-	 * @param category
-	 *            category of the message, to be compared with
-	 *            /debug/tracefilter
-	 */
-	protected static void _trace(String category, String message, Throwable exception) {
-		if (isTracing(category)) {
-			message = (message != null) ? message : "null"; //$NON-NLS-1$
-			Status statusObj = new Status(IStatus.OK, PLUGIN_ID, IStatus.OK, message, exception);
-			Bundle bundle = Platform.getBundle(PLUGIN_ID);
-			if (bundle != null) 
-				Platform.getLog(bundle).log(statusObj);
-		}
-	}
-
-	/**
-	 * @return true if the platform is debugging
-	 */
-	public static boolean isDebugging() {
-		return Platform.inDebugMode();
-	}
-
-	/**
-	 * Determines if currently tracing a category
-	 * 
-	 * @param category
-	 * @return true if tracing category, false otherwise
-	 */
-	public static boolean isTracing(String category) {
-		if (!isDebugging())
-			return false;
-
-		String traceFilter = Platform.getDebugOption(PLUGIN_ID + TRACEFILTER_LOCATION);
-		if (traceFilter != null) {
-			StringTokenizer tokenizer = new StringTokenizer(traceFilter, ","); //$NON-NLS-1$
-			while (tokenizer.hasMoreTokens()) {
-				String cat = tokenizer.nextToken().trim();
-				if (category.equals(cat)) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	public static void log(int level, String message) {
-		_log(level, message, null);
-	}
-
-	public static void log(int level, String message, Throwable exception) {
-		_log(level, message, exception);
-	}
-
-	public static void logException(String message, Throwable exception) {
-		_log(ERROR, message, exception);
-	}
-
-	public static void logException(Throwable exception) {
-		_log(ERROR, exception.getMessage(), exception);
-	}
-
-	public static void trace(String category, String message) {
-		_trace(category, message, null);
-	}
-
-	public static void traceException(String category, String message, Throwable exception) {
-		_trace(category, message, exception);
-	}
-
-	public static void traceException(String category, Throwable exception) {
-		_trace(category, exception.getMessage(), exception);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCoreMessages.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCoreMessages.java
deleted file mode 100644
index 7d05ad0..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCoreMessages.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 IBM Corporation and others. All rights reserved.   This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.wst.xml.core.internal;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Strings used by XML Core
- * 
- * @plannedfor 1.0
- */
-public class XMLCoreMessages {
-	private static final String BUNDLE_NAME = "org.eclipse.wst.xml.core.internal.XMLCorePluginResources";//$NON-NLS-1$
-	
-	public static String Invalid_character_lt_fo_ERROR_;
-	public static String Invalid_character_gt_fo_ERROR_;
-	public static String Invalid_character_amp_fo_ERROR_;
-	public static String Invalid_character__f_EXC_;
-	public static String loading;
-	public static String Catalog_entry_key_not_set;
-	public static String Catalog_entry_uri_not_set;
-	public static String Catalog_next_catalog_location_uri_not_set;
-	public static String Catalog_resolution_null_catalog;
-	public static String Catalog_resolution_malformed_url;
-	public static String Catalog_resolution_io_exception;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, XMLCoreMessages.class);
-	}
-	
-	private XMLCoreMessages() {
-		// cannot create new instance
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePlugin.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePlugin.java
deleted file mode 100644
index bb148a2..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePlugin.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.wst.xml.core.internal.catalog.Catalog;
-import org.eclipse.wst.xml.core.internal.catalog.CatalogSet;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class XMLCorePlugin extends Plugin {
-	// The shared instance.
-	private static XMLCorePlugin plugin;
-	public static final String USER_CATALOG_ID = "user_catalog"; //$NON-NLS-1$
-	public static final String DEFAULT_CATALOG_ID = "default_catalog"; //$NON-NLS-1$
-	public static final String SYSTEM_CATALOG_ID = "system_catalog"; //$NON-NLS-1$
-	private CatalogSet catalogSet = null;
-	private String defaultCatalogFileStateLocation;
-
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static XMLCorePlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * @deprecated use ResourcesPlugin.getWorkspace() directly
-	 */
-	public static IWorkspace getWorkspace() {
-		return ResourcesPlugin.getWorkspace();
-	}
-
-	/**
-	 * The constructor.
-	 */
-	public XMLCorePlugin() {
-		super();
-		plugin = this;
-	}
-
-	private String getPluginStateLocation(String fileName) {
-		String location = getStateLocation().append(fileName).toString();
-		String file_protocol = "file:"; //$NON-NLS-1$
-		if (location != null && !location.startsWith(file_protocol)) {
-			location = file_protocol + location;
-		}
-		return location;
-	}
-
-	public ICatalog getDefaultXMLCatalog() {
-		if (catalogSet == null) {
-			catalogSet = new CatalogSet();
-
-			defaultCatalogFileStateLocation = getPluginStateLocation(Catalog.DEFAULT_CATALOG_FILE);
-
-			catalogSet.putCatalogPersistenceLocation(DEFAULT_CATALOG_ID, defaultCatalogFileStateLocation);
-			catalogSet.putCatalogPersistenceLocation(SYSTEM_CATALOG_ID, getPluginStateLocation(Catalog.SYSTEM_CATALOG_FILE));
-			catalogSet.putCatalogPersistenceLocation(USER_CATALOG_ID, getPluginStateLocation(Catalog.USER_CATALOG_FILE));
-		}
-		return catalogSet.lookupOrCreateCatalog(DEFAULT_CATALOG_ID, defaultCatalogFileStateLocation);
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePluginResources.properties b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePluginResources.properties
deleted file mode 100644
index ca630a2..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePluginResources.properties
+++ /dev/null
@@ -1,26 +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
-#     
-###############################################################################
-Invalid_character_lt_fo_ERROR_=Invalid character ('<') found
-Invalid_character_gt_fo_ERROR_=Invalid character ('>') found
-Invalid_character_amp_fo_ERROR_=Invalid character ('&') found
-Invalid_character__f_EXC_=Invalid character ('\"') found
-###############################################################################
-# contentmodel strings
-loading=loading 
-# catalog strings
-Catalog_entry_key_not_set=Catalog entry key is not set
-Catalog_entry_uri_not_set=Catalog entry uri is not set
-Catalog_next_catalog_location_uri_not_set=Next catalog location uri is not set
-Catalog_resolution_null_catalog=Catalog resolution attempted with null catalog; ignored
-Catalog_resolution_malformed_url=Malformed URL exception trying to resolve
-Catalog_resolution_io_exception=I/O exception trying to resolve
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/CleanupProcessorXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/CleanupProcessorXML.java
deleted file mode 100644
index e62e98b..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/CleanupProcessorXML.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.cleanup;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.sse.core.internal.cleanup.AbstractStructuredCleanupProcessor;
-import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler;
-import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences;
-import org.eclipse.wst.sse.core.internal.cleanup.StructuredCleanupPreferences;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.formatter.XMLFormatterFormatProcessor;
-import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
-import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
-import org.w3c.dom.Node;
-
-
-public class CleanupProcessorXML extends AbstractStructuredCleanupProcessor {
-	protected IStructuredCleanupPreferences fCleanupPreferences = null;
-
-	protected IStructuredCleanupHandler getCleanupHandler(Node node) {
-		short nodeType = node.getNodeType();
-		IStructuredCleanupHandler cleanupHandler = null;
-		switch (nodeType) {
-			case Node.ELEMENT_NODE : {
-				cleanupHandler = new ElementNodeCleanupHandler();
-				break;
-			}
-			case Node.TEXT_NODE : {
-				cleanupHandler = new NodeCleanupHandler();
-				break;
-			}
-			default : {
-				cleanupHandler = new NodeCleanupHandler();
-			}
-		}
-
-		// init CleanupPreferences
-		cleanupHandler.setCleanupPreferences(getCleanupPreferences());
-
-		return cleanupHandler;
-	}
-
-	public IStructuredCleanupPreferences getCleanupPreferences() {
-		if (fCleanupPreferences == null) {
-			fCleanupPreferences = new StructuredCleanupPreferences();
-
-			Preferences preferences = getModelPreferences();
-			if (preferences != null) {
-				fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(XMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS));
-				fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(XMLCorePreferenceNames.INSERT_REQUIRED_ATTRS));
-				fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(XMLCorePreferenceNames.INSERT_MISSING_TAGS));
-				fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(XMLCorePreferenceNames.QUOTE_ATTR_VALUES));
-				fCleanupPreferences.setFormatSource(preferences.getBoolean(XMLCorePreferenceNames.FORMAT_SOURCE));
-				fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(XMLCorePreferenceNames.CONVERT_EOL_CODES));
-				fCleanupPreferences.setEOLCode(preferences.getString(XMLCorePreferenceNames.CLEANUP_EOL_CODE));
-			}
-		}
-
-		return fCleanupPreferences;
-	}
-
-	protected String getContentType() {
-		return ContentTypeIdForXML.ContentTypeID_XML;
-	}
-
-	protected IStructuredFormatProcessor getFormatProcessor() {
-		return new XMLFormatterFormatProcessor();
-	}
-
-	protected Preferences getModelPreferences() {
-		return XMLCorePlugin.getDefault().getPluginPreferences();
-	}
-
-	protected void refreshCleanupPreferences() {
-		fCleanupPreferences = null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/ElementNodeCleanupHandler.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/ElementNodeCleanupHandler.java
deleted file mode 100644
index fcf9a21..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/ElementNodeCleanupHandler.java
+++ /dev/null
@@ -1,557 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.cleanup;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.text.edits.InsertEdit;
-import org.eclipse.text.edits.MultiTextEdit;
-import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.ISourceGenerator;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-public class ElementNodeCleanupHandler extends NodeCleanupHandler {
-	protected static final char DOUBLE_QUOTE = '\"'; //$NON-NLS-1$
-	protected static final String DOUBLE_QUOTES = "\"\""; //$NON-NLS-1$
-	protected static final String EMPTY_TAG_CLOSE = "/>"; //$NON-NLS-1$
-	protected static final String END_TAG_OPEN = "</"; //$NON-NLS-1$
-	protected static final char SINGLE_QUOTE = '\''; //$NON-NLS-1$
-	protected static final String SINGLE_QUOTES = "''"; //$NON-NLS-1$
-
-	/** Non-NLS strings */
-	protected static final String START_TAG_OPEN = "<"; //$NON-NLS-1$
-	protected static final String TAG_CLOSE = ">"; //$NON-NLS-1$
-
-	public Node cleanup(Node node) {
-		Node newNode = cleanupChildren(node);
-		IDOMNode renamedNode = newNode instanceof IDOMNode ? (IDOMNode) newNode : null;
-
-		// call quoteAttrValue() first so it will close any unclosed attr
-		// quoteAttrValue() will return the new start tag if there is a
-		// structure change
-		renamedNode = quoteAttrValue(renamedNode);
-
-		// insert tag close if missing
-		// if node is not comment tag
-		// and not implicit tag
-		if (!isCommentTag(renamedNode) && !isImplicitTag(renamedNode)) {
-			IDOMModel structuredModel = renamedNode.getModel();
-
-			// save start offset before insertTagClose()
-			// or else renamedNode.getStartOffset() will be zero if
-			// renamedNode replaced by insertTagClose()
-			int startTagStartOffset = renamedNode.getStartOffset();
-
-			// for start tag
-			IStructuredDocumentRegion startTagStructuredDocumentRegion = renamedNode.getStartStructuredDocumentRegion();
-			insertTagClose(structuredModel, startTagStructuredDocumentRegion);
-
-			// update renamedNode and startTagStructuredDocumentRegion after
-			// insertTagClose()
-			renamedNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset);
-			startTagStructuredDocumentRegion = renamedNode.getStartStructuredDocumentRegion();
-
-			// for end tag
-			IStructuredDocumentRegion endTagStructuredDocumentRegion = renamedNode.getEndStructuredDocumentRegion();
-			if (endTagStructuredDocumentRegion != startTagStructuredDocumentRegion)
-				insertTagClose(structuredModel, endTagStructuredDocumentRegion);
-		}
-
-		// call insertMissingTags() next, it will generate implicit tags if
-		// there are any
-		// insertMissingTags() will return the new missing start tag if one is
-		// missing
-		renamedNode = insertMissingTags(renamedNode);
-
-		renamedNode = compressEmptyElementTag(renamedNode);
-
-		renamedNode = insertRequiredAttrs(renamedNode);
-
-		return renamedNode;
-	}
-
-	protected Node cleanupChildren(Node node) {
-		Node parentNode = node;
-
-		if (node != null) {
-			Node childNode = node.getFirstChild();
-			while (childNode != null) {
-				// get cleanup handler
-				IStructuredCleanupHandler cleanupHandler = getCleanupHandler(childNode);
-
-				// cleanup each child
-				childNode = cleanupHandler.cleanup(childNode);
-
-				// get new parent node
-				parentNode = childNode.getParentNode();
-
-				// get next child node
-				childNode = childNode.getNextSibling();
-			}
-		}
-
-		return parentNode;
-	}
-
-	private IDOMNode compressEmptyElementTag(IDOMNode node) {
-		boolean compressEmptyElementTags = getCleanupPreferences().getCompressEmptyElementTags();
-		IDOMNode newNode = node;
-
-		IStructuredDocumentRegion startTagStructuredDocumentRegion = newNode.getFirstStructuredDocumentRegion();
-		IStructuredDocumentRegion endTagStructuredDocumentRegion = newNode.getLastStructuredDocumentRegion();
-
-		if (compressEmptyElementTags && startTagStructuredDocumentRegion != endTagStructuredDocumentRegion && startTagStructuredDocumentRegion != null) {
-			ITextRegionList regions = startTagStructuredDocumentRegion.getRegions();
-			ITextRegion lastRegion = regions.get(regions.size() - 1);
-			// format children and end tag if not empty element tag
-			if (lastRegion.getType() != DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
-				NodeList childNodes = newNode.getChildNodes();
-				if (childNodes == null || childNodes.getLength() == 0 || (childNodes.getLength() == 1 && (childNodes.item(0)).getNodeType() == Node.TEXT_NODE && ((childNodes.item(0)).getNodeValue().trim().length() == 0))) {
-					IDOMModel structuredModel = newNode.getModel();
-					IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-
-					int startTagStartOffset = newNode.getStartOffset();
-					int offset = endTagStructuredDocumentRegion.getStart();
-					int length = endTagStructuredDocumentRegion.getLength();
-					structuredDocument.replaceText(structuredDocument, offset, length, ""); //$NON-NLS-1$
-					newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset); // save
-
-					offset = startTagStructuredDocumentRegion.getStart() + lastRegion.getStart();
-					structuredDocument.replaceText(structuredDocument, offset, 0, "/"); //$NON-NLS-1$
-					newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset); // save
-				}
-			}
-		}
-
-		return newNode;
-	}
-
-	protected IStructuredCleanupHandler getCleanupHandler(Node node) {
-		short nodeType = node.getNodeType();
-		IStructuredCleanupHandler cleanupHandler = null;
-		switch (nodeType) {
-			case org.w3c.dom.Node.ELEMENT_NODE : {
-				cleanupHandler = new ElementNodeCleanupHandler();
-				break;
-			}
-			case org.w3c.dom.Node.TEXT_NODE : {
-				cleanupHandler = new NodeCleanupHandler();
-				break;
-			}
-			default : {
-				cleanupHandler = new NodeCleanupHandler();
-			}
-		}
-
-		// init CleanupPreferences
-		cleanupHandler.setCleanupPreferences(getCleanupPreferences());
-
-		return cleanupHandler;
-	}
-
-
-	protected ModelQuery getModelQuery(Node node) {
-		if (node.getNodeType() == Node.DOCUMENT_NODE) {
-			return ModelQueryUtil.getModelQuery((Document) node);
-		} else {
-			return ModelQueryUtil.getModelQuery(node.getOwnerDocument());
-		}
-	}
-
-	protected List getRequiredAttrs(Node node) {
-		List result = new ArrayList();
-
-		ModelQuery modelQuery = getModelQuery(node);
-		if (modelQuery != null) {
-			CMElementDeclaration elementDecl = modelQuery.getCMElementDeclaration((Element) node);
-			if (elementDecl != null) {
-				CMNamedNodeMap attrMap = elementDecl.getAttributes();
-				Iterator it = attrMap.iterator();
-				CMAttributeDeclaration attr = null;
-				while (it.hasNext()) {
-					attr = (CMAttributeDeclaration) it.next();
-					if (attr.getUsage() == CMAttributeDeclaration.REQUIRED) {
-						result.add(attr);
-					}
-				}
-			}
-		}
-
-		return result;
-	}
-
-	private IDOMNode insertEndTag(IDOMNode node) {
-		IDOMNode newNode = node;
-		IDOMElement element = (IDOMElement) node;
-		if (element.isCommentTag())
-			return node; // do nothing
-
-		int startTagStartOffset = node.getStartOffset();
-		IDOMModel structuredModel = node.getModel();
-
-		if (isEmptyElement(element)) {
-			IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-			IStructuredDocumentRegion startStructuredDocumentRegion = node.getStartStructuredDocumentRegion();
-			ITextRegionList regions = startStructuredDocumentRegion.getRegions();
-			ITextRegion lastRegion = regions.get(regions.size() - 1);
-			structuredDocument.replaceText(structuredDocument, startStructuredDocumentRegion.getStartOffset(lastRegion), lastRegion.getLength(), EMPTY_TAG_CLOSE);
-
-			if (regions.size() > 1) {
-				ITextRegion regionBeforeTagClose = regions.get(regions.size() - 1 - 1);
-
-				// insert a space separator before tag close if the previous
-				// region does not have extra spaces
-				if (regionBeforeTagClose.getTextLength() == regionBeforeTagClose.getLength())
-					structuredDocument.replaceText(structuredDocument, startStructuredDocumentRegion.getStartOffset(lastRegion), 0, " "); //$NON-NLS-1$
-			}
-		} else {
-			String tagName = node.getNodeName();
-			String endTag = END_TAG_OPEN.concat(tagName).concat(TAG_CLOSE);
-
-			IDOMNode lastChild = (IDOMNode) node.getLastChild();
-			int endTagStartOffset = 0;
-			if (lastChild != null)
-				// if this node has children, insert the end tag after the
-				// last child
-				endTagStartOffset = lastChild.getEndOffset();
-			else
-				// if this node does not has children, insert the end tag
-				// after the start tag
-				endTagStartOffset = node.getEndOffset();
-
-			IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-			structuredDocument.replaceText(structuredDocument, endTagStartOffset, 0, endTag);
-		}
-
-		newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset); // save
-		// new
-		// node
-
-		return newNode;
-	}
-
-	private IDOMNode insertMissingTags(IDOMNode node) {
-		boolean insertMissingTags = getCleanupPreferences().getInsertMissingTags();
-		IDOMNode newNode = node;
-
-		if (insertMissingTags) {
-			IStructuredDocumentRegion startTagStructuredDocumentRegion = node.getStartStructuredDocumentRegion();
-			if (startTagStructuredDocumentRegion == null) {
-				// implicit start tag; generate tag for it
-				newNode = insertStartTag(node);
-				startTagStructuredDocumentRegion = newNode.getStartStructuredDocumentRegion();
-			}
-
-			IStructuredDocumentRegion endTagStructuredDocumentRegion = newNode.getEndStructuredDocumentRegion();
-			ITextRegionList startStructuredDocumentRegionRegions = startTagStructuredDocumentRegion.getRegions();
-			if (startTagStructuredDocumentRegion != null && startStructuredDocumentRegionRegions != null && (startStructuredDocumentRegionRegions.get(startStructuredDocumentRegionRegions.size() - 1)).getType() == DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
-
-			} else {
-				if (startTagStructuredDocumentRegion == null) {
-					// start tag missing
-					if (isStartTagRequired(newNode))
-						newNode = insertStartTag(newNode);
-				} else if (endTagStructuredDocumentRegion == null) {
-					// end tag missing
-					if (isEndTagRequired(newNode))
-						newNode = insertEndTag(newNode);
-				}
-			}
-		}
-
-		return newNode;
-	}
-
-	private IDOMNode insertRequiredAttrs(IDOMNode node) {
-		boolean insertRequiredAttrs = getCleanupPreferences().getInsertRequiredAttrs();
-		IDOMNode newNode = node;
-
-		if (insertRequiredAttrs) {
-			List requiredAttrs = getRequiredAttrs(newNode);
-			if (requiredAttrs.size() > 0) {
-				NamedNodeMap currentAttrs = node.getAttributes();
-				List insertAttrs = new ArrayList();
-				if (currentAttrs.getLength() == 0)
-					insertAttrs.addAll(requiredAttrs);
-				else {
-					for (int i = 0; i < requiredAttrs.size(); i++) {
-						String requiredAttrName = ((CMAttributeDeclaration) requiredAttrs.get(i)).getAttrName();
-						boolean found = false;
-						for (int j = 0; j < currentAttrs.getLength(); j++) {
-							String currentAttrName = currentAttrs.item(j).getNodeName();
-							if (requiredAttrName.compareToIgnoreCase(currentAttrName) == 0) {
-								found = true;
-								break;
-							}
-						}
-						if (!found)
-							insertAttrs.add(requiredAttrs.get(i));
-					}
-				}
-				if (insertAttrs.size() > 0) {
-					IStructuredDocumentRegion startStructuredDocumentRegion = newNode.getStartStructuredDocumentRegion();
-					int index = startStructuredDocumentRegion.getEndOffset();
-					ITextRegion lastRegion = startStructuredDocumentRegion.getLastRegion();
-					if (lastRegion.getType() == DOMRegionContext.XML_TAG_CLOSE) {
-						index--;
-						lastRegion = startStructuredDocumentRegion.getRegionAtCharacterOffset(index - 1);
-					} else if (lastRegion.getType() == DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
-						index = index - 2;
-						lastRegion = startStructuredDocumentRegion.getRegionAtCharacterOffset(index - 1);
-					}
-					MultiTextEdit multiTextEdit = new MultiTextEdit();
-					try {
-						for (int i = insertAttrs.size() - 1; i >= 0; i--) {
-							CMAttributeDeclaration attrDecl = (CMAttributeDeclaration) insertAttrs.get(i);
-							String requiredAttributeName = attrDecl.getAttrName();
-							String defaultValue = attrDecl.getDefaultValue();
-							if (defaultValue == null)
-								defaultValue = ""; //$NON-NLS-1$
-							String nameAndDefaultValue = " "; //$NON-NLS-1$
-							if (i == 0 && lastRegion.getLength() > lastRegion.getTextLength())
-								nameAndDefaultValue = ""; //$NON-NLS-1$
-							nameAndDefaultValue += requiredAttributeName + "=\"" + defaultValue + "\""; //$NON-NLS-1$ //$NON-NLS-2$
-							multiTextEdit.addChild(new InsertEdit(index, nameAndDefaultValue));
-							// BUG3381: MultiTextEdit applies all child
-							// TextEdit's basing on offsets
-							//          in the document before the first TextEdit, not
-							// after each
-							//          child TextEdit. Therefore, do not need to
-							// advance the index.
-							//index += nameAndDefaultValue.length();
-						}
-						multiTextEdit.apply(newNode.getStructuredDocument());
-					} catch (BadLocationException e) {
-						// log for now, unless we find reason not to
-						Logger.log(Logger.INFO, e.getMessage());
-					}
-				}
-			}
-		}
-
-		return newNode;
-	}
-
-	private IDOMNode insertStartTag(IDOMNode node) {
-		IDOMNode newNode = node;
-
-		if (isCommentTag(node))
-			return node; // do nothing
-
-		String tagName = node.getNodeName();
-		String startTag = START_TAG_OPEN.concat(tagName).concat(TAG_CLOSE);
-		int startTagStartOffset = node.getStartOffset();
-
-		IDOMModel structuredModel = node.getModel();
-		IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-		structuredDocument.replaceText(structuredDocument, startTagStartOffset, 0, startTag);
-		newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset); // save
-		// new
-		// node
-
-		return newNode;
-	}
-
-	private void insertTagClose(IDOMModel structuredModel, IStructuredDocumentRegion flatNode) {
-		if (flatNode != null) {
-			ITextRegionList flatnodeRegions = flatNode.getRegions();
-			if (flatnodeRegions != null) {
-				ITextRegion lastRegion = flatnodeRegions.get(flatnodeRegions.size() - 1);
-				if (lastRegion != null) {
-					String regionType = lastRegion.getType();
-					if ((regionType != DOMRegionContext.XML_EMPTY_TAG_CLOSE) && (regionType != DOMRegionContext.XML_TAG_CLOSE)) {
-						IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-
-						// insert ">" after lastRegion of flatNode
-						// as in "<a</a>" if flatNode is for start tag, or in
-						// "<a></a" if flatNode is for end tag
-						structuredDocument.replaceText(structuredDocument, flatNode.getTextEndOffset(lastRegion), 0, ">"); //$NON-NLS-1$
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * @param renamedNode
-	 * @return
-	 */
-	private boolean isCommentTag(Node renamedNode) {
-		boolean result = false;
-		if (renamedNode instanceof IDOMElement) {
-			IDOMElement element = (IDOMElement) renamedNode;
-			result = element.isCommentTag();
-		}
-		return result;
-	}
-
-	private boolean isEmptyElement(IDOMElement element) {
-		Document document = element.getOwnerDocument();
-		if (document == null)
-			// undefined tag, return default
-			return false;
-
-		ModelQuery modelQuery = ModelQueryUtil.getModelQuery(document);
-		if (modelQuery == null)
-			// undefined tag, return default
-			return false;
-
-		CMElementDeclaration decl = modelQuery.getCMElementDeclaration(element);
-		if (decl == null)
-			// undefined tag, return default
-			return false;
-
-		return (decl.getContentType() == CMElementDeclaration.EMPTY);
-	}
-
-	private boolean isEndTagRequired(IDOMNode node) {
-		if (node == null)
-			return false;
-		return node.isContainer();
-	}
-
-	/**
-	 * A tag is implicit if it has not corresponding region in document.
-	 * 
-	 * @param renamedNode
-	 * @return
-	 */
-	private boolean isImplicitTag(IDOMNode renamedNode) {
-		return renamedNode.getStartStructuredDocumentRegion() == null;
-	}
-
-	/**
-	 * The end tags of HTML EMPTY content type, such as IMG, and HTML
-	 * undefined tags are parsed separately from the start tags. So inserting
-	 * the missing start tag is useless and even harmful.
-	 */
-	private boolean isStartTagRequired(IDOMNode node) {
-		if (node == null)
-			return false;
-		return node.isContainer();
-	}
-
-	private boolean isXMLType(IDOMModel structuredModel) {
-		boolean result = false;
-
-		if (structuredModel != null && structuredModel != null) {
-			IDOMDocument document = structuredModel.getDocument();
-
-			if (document != null)
-				result = document.isXMLType();
-		}
-
-		return result;
-	}
-
-	private IDOMNode quoteAttrValue(IDOMNode node) {
-		IDOMNode newNode = node;
-		//XMLElement element = (XMLElement) node;
-		if (isCommentTag(node))
-			return node; // do nothing
-
-		boolean quoteAttrValues = getCleanupPreferences().getQuoteAttrValues();
-
-		if (quoteAttrValues) {
-			NamedNodeMap attributes = newNode.getAttributes();
-			if (attributes != null) {
-				int attributesLength = attributes.getLength();
-				ISourceGenerator generator = node.getModel().getGenerator();
-
-				for (int i = 0; i < attributesLength; i++) {
-					attributes = newNode.getAttributes();
-					attributesLength = attributes.getLength();
-					IDOMAttr eachAttr = (IDOMAttr) attributes.item(i);
-					//ITextRegion oldAttrValueRegion =
-					// eachAttr.getValueRegion();
-					String oldAttrValue = eachAttr.getValueRegionText();
-					if (oldAttrValue == null) {
-						IDOMModel structuredModel = node.getModel();
-						if (isXMLType(structuredModel)) {
-							String newAttrValue = "\"" + eachAttr.getNameRegionText() + "\""; //$NON-NLS-1$ //$NON-NLS-2$
-
-							IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-							if (eachAttr.getEqualRegion() != null)
-								// equal region exists
-								structuredDocument.replaceText(structuredDocument, eachAttr.getEndOffset(), 0, newAttrValue);
-							else
-								// no equal region
-								structuredDocument.replaceText(structuredDocument, eachAttr.getNameRegionTextEndOffset(), 0, "=".concat(newAttrValue)); //$NON-NLS-1$
-							newNode = (IDOMNode) structuredModel.getIndexedRegion(node.getStartOffset()); // save
-							// new
-							// node
-						}
-					} else {
-						//String oldAttrValue = oldAttrValueRegion.getText();
-						char quote = StringUtils.isQuoted(oldAttrValue) ? oldAttrValue.charAt(0) : DOUBLE_QUOTE;
-						String newAttrValue = generator.generateAttrValue(eachAttr, quote);
-
-						// There is a problem in
-						// StructuredDocumentRegionUtil.getAttrValue(ITextRegion)
-						// when the region is instanceof ContextRegion.
-						// Workaround for now...
-						if (oldAttrValue.length() == 1) {
-							char firstChar = oldAttrValue.charAt(0);
-							if (firstChar == SINGLE_QUOTE)
-								newAttrValue = SINGLE_QUOTES;
-							else if (firstChar == DOUBLE_QUOTE)
-								newAttrValue = DOUBLE_QUOTES;
-						}
-
-						if (newAttrValue != null) {
-							if (newAttrValue.compareTo(oldAttrValue) != 0) {
-								int attrValueStartOffset = eachAttr.getValueRegionStartOffset();
-								int attrValueLength = oldAttrValue.length();
-								int startTagStartOffset = node.getStartOffset();
-
-								IDOMModel structuredModel = node.getModel();
-								IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-								structuredDocument.replaceText(structuredDocument, attrValueStartOffset, attrValueLength, newAttrValue);
-								newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset); // save
-								// new
-								// node
-							}
-						}
-					}
-				}
-			}
-		}
-
-		return newNode;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/NodeCleanupHandler.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/NodeCleanupHandler.java
deleted file mode 100644
index 95c2097..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/NodeCleanupHandler.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.cleanup;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler;
-import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences;
-import org.eclipse.wst.sse.core.internal.cleanup.StructuredCleanupPreferences;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
-import org.w3c.dom.Node;
-
-
-public class NodeCleanupHandler implements IStructuredCleanupHandler {
-
-	protected IStructuredCleanupPreferences fCleanupPreferences = null;
-	protected IProgressMonitor fProgressMonitor = null;
-
-
-	public Node cleanup(Node node) {
-
-		return node;
-	}
-
-	public IStructuredCleanupPreferences getCleanupPreferences() {
-		if (fCleanupPreferences == null) {
-			fCleanupPreferences = new StructuredCleanupPreferences();
-
-			Preferences preferences = getModelPreferences();
-			if (preferences != null) {
-				fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(XMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS));
-				fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(XMLCorePreferenceNames.INSERT_REQUIRED_ATTRS));
-				fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(XMLCorePreferenceNames.INSERT_MISSING_TAGS));
-				fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(XMLCorePreferenceNames.QUOTE_ATTR_VALUES));
-				fCleanupPreferences.setFormatSource(preferences.getBoolean(XMLCorePreferenceNames.FORMAT_SOURCE));
-				fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(XMLCorePreferenceNames.CONVERT_EOL_CODES));
-				fCleanupPreferences.setEOLCode(preferences.getString(XMLCorePreferenceNames.CLEANUP_EOL_CODE));
-			}
-		}
-
-		return fCleanupPreferences;
-	}
-
-	protected Preferences getModelPreferences() {
-		return XMLCorePlugin.getDefault().getPluginPreferences();
-	}
-
-	public void setCleanupPreferences(IStructuredCleanupPreferences cleanupPreferences) {
-
-		fCleanupPreferences = cleanupPreferences;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/XMLCleanupPreferencesImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/XMLCleanupPreferencesImpl.java
deleted file mode 100644
index 473c487..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/XMLCleanupPreferencesImpl.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.cleanup;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.eclipse.wst.xml.core.internal.provisional.IXMLPreferenceNames;
-
-/**
- * @deprecated renamed to StructuredCleanupPreferences
- * 
- * TODO will delete in C5
- */
-public class XMLCleanupPreferencesImpl {
-
-	private static XMLCleanupPreferencesImpl fInstance;
-
-	public synchronized static XMLCleanupPreferencesImpl getInstance() {
-
-		// added for one method in CleanupDialog ... may be better way
-		if (fInstance == null) {
-			fInstance = new XMLCleanupPreferencesImpl();
-		}
-		return fInstance;
-	}
-
-	private int fAttrNameCase;
-	private boolean fConvertEOLCodes;
-	private String fEOLCode;
-	private boolean fFormatSource;
-	private boolean fInsertMissingTags;
-	// private IPreferenceStore fPreferenceStore = null;
-	private Preferences fPreferences = null;
-	private boolean fQuoteAttrValues;
-	private int fTagNameCase;
-
-	public int getAttrNameCase() {
-
-		return fAttrNameCase;
-	}
-
-	public boolean getConvertEOLCodes() {
-
-		return fConvertEOLCodes;
-	}
-
-	public String getEOLCode() {
-
-		return fEOLCode;
-	}
-
-	public boolean getFormatSource() {
-
-		return fFormatSource;
-	}
-
-	public boolean getInsertMissingTags() {
-
-		return fInsertMissingTags;
-	}
-
-	public Preferences getPreferences() {
-
-		if (fPreferences == null) {
-			fPreferences = SSECorePlugin.getDefault().getPluginPreferences();
-		}
-		return fPreferences;
-	}
-
-	public boolean getQuoteAttrValues() {
-
-		return fQuoteAttrValues;
-	}
-
-	public int getTagNameCase() {
-
-		return fTagNameCase;
-	}
-
-	public void setAttrNameCase(int attrNameCase) {
-
-		fAttrNameCase = attrNameCase;
-	}
-
-	public void setConvertEOLCodes(boolean convertEOLCodes) {
-
-		fConvertEOLCodes = convertEOLCodes;
-	}
-
-	public void setEOLCode(String EOLCode) {
-
-		fEOLCode = EOLCode;
-	}
-
-	public void setFormatSource(boolean formatSource) {
-
-		fFormatSource = formatSource;
-	}
-
-	public void setInsertMissingTags(boolean insertMissingTags) {
-
-		fInsertMissingTags = insertMissingTags;
-	}
-
-	public void setPreferences(Preferences prefs) {
-
-		fPreferences = prefs;
-		updateOptions();
-	}
-
-	public void setQuoteAttrValues(boolean quoteAttrValues) {
-
-		fQuoteAttrValues = quoteAttrValues;
-	}
-
-	public void setTagNameCase(int tagNameCase) {
-
-		fTagNameCase = tagNameCase;
-	}
-
-	protected void updateOptions() {
-
-		Preferences p = getPreferences();
-		fTagNameCase = p.getInt(IXMLPreferenceNames.CLEANUP_TAG_NAME_CASE);
-		fAttrNameCase = p.getInt(IXMLPreferenceNames.CLEANUP_ATTR_NAME_CASE);
-		fInsertMissingTags = p.getBoolean(IXMLPreferenceNames.INSERT_MISSING_TAGS);
-		fQuoteAttrValues = p.getBoolean(IXMLPreferenceNames.QUOTE_ATTR_VALUES);
-		fFormatSource = p.getBoolean(IXMLPreferenceNames.FORMAT_SOURCE);
-		fConvertEOLCodes = p.getBoolean(IXMLPreferenceNames.CONVERT_EOL_CODES);
-		fEOLCode = p.getString(IXMLPreferenceNames.CLEANUP_EOL_CODE);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/CommentElementAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/CommentElementAdapter.java
deleted file mode 100644
index c06af5e..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/CommentElementAdapter.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.commentelement;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.xml.core.internal.commentelement.impl.CommentElementConfiguration;
-import org.eclipse.wst.xml.core.internal.document.TagAdapter;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-
-
-/**
- */
-public class CommentElementAdapter implements TagAdapter {
-	private CommentElementConfiguration fConfiguration;
-
-	private boolean fEndTag;
-	private CommentElementHandler fHandler;
-
-	public CommentElementAdapter(boolean isEndTag, CommentElementHandler handler) {
-		fEndTag = isEndTag;
-		fHandler = handler;
-	}
-
-	private String generateCommentClose(IDOMElement element) {
-		return (element.isJSPTag()) ? "--%>" : "-->"; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	private String generateCommentOpen(IDOMElement element) {
-		return (element.isJSPTag()) ? "<%--" : "<!--"; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	private CommentElementConfiguration getConfiguration() {
-		return fConfiguration;
-	}
-
-	public String getEndTag(IDOMElement element) {
-		String content = fHandler.generateEndTagContent(element);
-		if (content == null) {
-			return null;
-		}
-		StringBuffer buffer = new StringBuffer();
-
-		buffer.append(generateCommentOpen(element));
-		buffer.append(content);
-		buffer.append(generateCommentClose(element));
-
-		return buffer.toString();
-	}
-
-	public String getHandlerID() {
-		return getConfiguration().getHandlerID();
-	}
-
-
-	public String getProperty(String name) {
-		return getConfiguration().getProperty(name);
-	}
-
-	public String getStartTag(IDOMElement element) {
-		String content = fHandler.generateStartTagContent(element);
-		if (content == null) {
-			return null;
-		}
-		StringBuffer buffer = new StringBuffer();
-
-		buffer.append(generateCommentOpen(element));
-		buffer.append(content);
-		buffer.append(generateCommentClose(element));
-
-		return buffer.toString();
-	}
-
-	public boolean isAdapterForType(Object type) {
-		return (type == CommentElementAdapter.class || type == TagAdapter.class);
-	}
-
-	public boolean isContainer() {
-		return (!fHandler.isEmpty());
-	}
-
-	public boolean isEndTag() {
-		return fEndTag;
-	}
-
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-	}
-
-	public void setConfiguration(CommentElementConfiguration configuration) {
-		fConfiguration = configuration;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/CommentElementHandler.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/CommentElementHandler.java
deleted file mode 100644
index 93e8e6e..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/CommentElementHandler.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.commentelement;
-
-
-
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-
-/**
- */
-public interface CommentElementHandler {
-	/**
-	 * This method is called when the prefix of the comment content matches
-	 * the string specified in &lt;startswith prefix=""/&gt; in plugin
-	 * extension. Comment content is parsed and new DOM element is created in
-	 * this method. Implementor has to do following:
-	 * <li>For start tag :
-	 * <ul>
-	 * <li>parse comment content and create new element instance.</li>
-	 * </ul>
-	 * </li>
-	 * <li>For end tag :
-	 * <ul>
-	 * <li>parse comment content and create new element instance.</li>
-	 * <li>make isEndTag flag true.</li>
-	 * <li>Parser framework searches mached start tag element instance after
-	 * this createElement call, and new instance is just thrown away.</li>
-	 * </ul>
-	 * </li>
-	 * <li>For empty tag :
-	 * <ul>
-	 * <li>parse comment content and create new element instance.</li>
-	 * <li>make isEndTag flag true.</li>
-	 * </ul>
-	 * </li>
-	 * 
-	 * @param document
-	 *            parent DOM document
-	 * @param data
-	 *            comment content. comment prefix (&lt;!-- or &lt;%--), suffix
-	 *            (--&gt; or --%&gt;), and surrounding spaces are trimmed.
-	 * @param isJSPTag
-	 *            true if the comment is JSP style comment. This information
-	 *            may be required by handler when the handler accepts both XML
-	 *            style and JSP style comment (namely,
-	 *            commenttype=&quot;both&quot; in plugin.xml).
-	 * @return comment element instance if the comment content is rightly
-	 *         parsed. if parse failed, returns null.
-	 */
-	Element createElement(Document document, String data, boolean isJSPTag);
-
-	/**
-	 * This method generates the source text of the end tag for the passed
-	 * element. Do not generate comment prefix (&lt;!-- or &lt;%--) and suffix
-	 * (--&gt; or --%&gt;). XMLGenerator uses this method to generate XML/HTML
-	 * source for a comment element.
-	 * 
-	 * @param element
-	 *            the comment element
-	 * @return generated tag string
-	 */
-	String generateEndTagContent(IDOMElement element);
-
-	/**
-	 * This method generates the source text of the start tag for the passed
-	 * element. Do not generate comment prefix (&lt;!-- or &lt;%--) and suffix
-	 * (--&gt; or --%&gt;). XMLGenerator uses this method to generate XML/HTML
-	 * source for a comment element.
-	 * 
-	 * @param element
-	 *            the comment element
-	 * @return generated tag string
-	 */
-	String generateStartTagContent(IDOMElement element);
-
-	/**
-	 * 
-	 * @param element
-	 *            the element
-	 * @return boolean whether the element is comment element or not
-	 */
-	boolean isCommentElement(IDOMElement element);
-
-	/**
-	 * 
-	 * @return boolean whether this element can have children or not
-	 */
-	boolean isEmpty();
-
-	/**
-	 * @return String
-	 */
-	//	String getElementPrefix();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/BasicCommentElementHandler.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/BasicCommentElementHandler.java
deleted file mode 100644
index caf6228..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/BasicCommentElementHandler.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.commentelement.impl;
-
-
-
-import org.eclipse.wst.xml.core.internal.commentelement.CommentElementHandler;
-import org.eclipse.wst.xml.core.internal.commentelement.util.CommentElementFactory;
-import org.eclipse.wst.xml.core.internal.commentelement.util.TagScanner;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.ISourceGenerator;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-
-
-/**
- */
-class BasicCommentElementHandler implements CommentElementHandler {
-
-	private String elementName;
-	private boolean isEmpty;
-
-	public BasicCommentElementHandler(String elementName, boolean isEmpty) {
-		super();
-		this.elementName = elementName;
-		this.isEmpty = isEmpty;
-	}
-
-
-	public Element createElement(Document document, String data, boolean isJSPTag) {
-		Element element = null;
-		String str = data.trim();
-		CommentElementFactory factory = new CommentElementFactory(document, isJSPTag, this);
-		if (str.charAt(0) == '/') { // end tag
-			TagScanner scanner = new TagScanner(str, 1); // skip '/'
-			String name = scanner.nextName();
-			if (name.equals(elementName)) {
-				element = factory.create(name, CommentElementFactory.IS_END);
-			}
-		} else { // start tag
-			TagScanner scanner = new TagScanner(str, 0);
-			String name = scanner.nextName();
-			if (name.equals(elementName)) {
-				element = factory.create(name, (isEmpty) ? CommentElementFactory.IS_EMPTY : CommentElementFactory.IS_START);
-				// set attributes
-				String attrName = scanner.nextName();
-				while (attrName != null) {
-					String attrValue = scanner.nextValue();
-					Attr attr = document.createAttribute(attrName);
-					if (attr != null) {
-						if (attrValue != null)
-							((IDOMAttr) attr).setValueSource(attrValue);
-						element.setAttributeNode(attr);
-					}
-					attrName = scanner.nextName();
-				}
-			}
-		}
-		return element;
-	}
-
-
-	public String generateEndTagContent(IDOMElement element) {
-		if (isEmpty) {
-			return null;
-		}
-		ISourceGenerator generator = element.getModel().getGenerator();
-		StringBuffer buffer = new StringBuffer();
-
-		buffer.append(" /"); //$NON-NLS-1$
-		String tagName = generator.generateTagName(element);
-		if (tagName != null) {
-			buffer.append(tagName);
-		}
-		buffer.append(' ');
-
-		return buffer.toString();
-	}
-
-	public String generateStartTagContent(IDOMElement element) {
-		ISourceGenerator generator = element.getModel().getGenerator();
-		StringBuffer buffer = new StringBuffer();
-
-		buffer.append(' ');
-		String tagName = generator.generateTagName(element);
-		if (tagName != null) {
-			buffer.append(tagName);
-		}
-
-		NamedNodeMap attributes = element.getAttributes();
-		int length = attributes.getLength();
-		for (int i = 0; i < length; i++) {
-			Attr attr = (Attr) attributes.item(i);
-			if (attr == null) {
-				continue;
-			}
-			buffer.append(' ');
-			String attrName = generator.generateAttrName(attr);
-			if (attrName != null) {
-				buffer.append(attrName);
-			}
-			String attrValue = generator.generateAttrValue(attr);
-			if (attrValue != null) {
-				// attr name only for HTML boolean and JSP
-				buffer.append('=');
-				buffer.append(attrValue);
-			}
-		}
-
-		buffer.append(' ');
-
-		return buffer.toString();
-	}
-
-	public boolean isCommentElement(IDOMElement element) {
-		return (element != null && element.getTagName().equals(elementName)) ? true : false;
-	}
-
-	public boolean isEmpty() {
-		return isEmpty;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/CommentElementConfiguration.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/CommentElementConfiguration.java
deleted file mode 100644
index 73133b2..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/CommentElementConfiguration.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.commentelement.impl;
-
-
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.commentelement.CommentElementAdapter;
-import org.eclipse.wst.xml.core.internal.commentelement.CommentElementHandler;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-
-/**
- */
-public class CommentElementConfiguration {
-	private Map fAttributes = null;
-	private boolean fCustom;
-	private IConfigurationElement fElement = null;
-
-	private boolean fEmpty;
-	private CommentElementHandler fHandler = null;
-	private String fID = null;
-	private boolean fJSPComment;
-	private String[] fPrefix = null;
-	private boolean fXMLComment;
-
-	CommentElementConfiguration() {
-		super();
-	}
-
-	CommentElementConfiguration(IConfigurationElement element) {
-		super();
-		fElement = element;
-		fCustom = (element.getName().equalsIgnoreCase("handler-custom")) ? true : false; //$NON-NLS-1$
-
-		fillAttributes(element);
-
-		fXMLComment = fJSPComment = false;
-		String commentType = getProperty("commenttype"); //$NON-NLS-1$
-		if (commentType.equalsIgnoreCase("xml")) { //$NON-NLS-1$
-			fXMLComment = true;
-		} else if (commentType.equalsIgnoreCase("jsp")) { //$NON-NLS-1$
-			fJSPComment = true;
-		} else if (commentType.equalsIgnoreCase("both")) { //$NON-NLS-1$
-			fXMLComment = fJSPComment = true;
-		}
-		String empty = getProperty("isempty"); //$NON-NLS-1$
-		fEmpty = (empty != null && !empty.equals("false")) ? true : false; //$NON-NLS-1$
-	}
-
-	public boolean acceptJSPComment() {
-		return fJSPComment;
-	}
-
-	public boolean acceptXMLComment() {
-		return fXMLComment;
-	}
-
-	public Element createElement(Document document, String data, boolean isJSPTag) {
-		IDOMElement element = (IDOMElement) getHandler().createElement(document, data, isJSPTag);
-		if (element != null) {
-			CommentElementAdapter adapter = (CommentElementAdapter) element.getAdapterFor(CommentElementAdapter.class);
-			if (adapter != null) {
-				adapter.setConfiguration(this);
-			}
-		}
-		return element;
-	}
-
-	private void fillAttributes(IConfigurationElement element) {
-		if (fAttributes == null) {
-			fAttributes = new HashMap();
-		} else {
-			fAttributes.clear();
-		}
-		String[] names = element.getAttributeNames();
-		if (names == null) {
-			return;
-		}
-		int length = names.length;
-		for (int i = 0; i < length; i++) {
-			String name = names[i];
-			fAttributes.put(name.toLowerCase(), element.getAttribute(name));
-		}
-	}
-
-	public CommentElementHandler getHandler() {
-		if (fHandler == null) {
-			if (fElement != null) {
-				try {
-					if (isCustom()) {
-						fHandler = (CommentElementHandler) fElement.createExecutableExtension("class"); //$NON-NLS-1$
-					} else {
-						String elementName = getProperty("elementname"); //$NON-NLS-1$
-						fHandler = new BasicCommentElementHandler(elementName, fEmpty);
-					}
-					//					((AbstractCommentElementHandler)fHandler).setElementPrefix(fElement.getAttribute("prefix"));
-				} catch (Exception e) {
-					// catch and log (and ignore) ANY exception created
-					// by executable extension.
-					Logger.logException(e);
-					fHandler = null;
-				}
-			}
-			if (fHandler == null) {
-				fHandler = new CommentElementHandler() {
-					public Element createElement(Document document, String data, boolean isJSPTag) {
-						return null;
-					}
-
-					public String generateEndTagContent(IDOMElement element) {
-						return null;
-					}
-
-					public String generateStartTagContent(IDOMElement element) {
-						return null;
-					}
-
-// removed in RC2, ro removed "unused" error/warning
-//					public String getElementPrefix() {
-//						return null;
-//					}
-
-					public boolean isCommentElement(IDOMElement element) {
-						return false;
-					}
-
-					public boolean isEmpty() {
-						return false;
-					}
-				};
-			}
-		}
-		return fHandler;
-	}
-
-	public String getHandlerID() {
-		if (fID == null) {
-			fID = getProperty("id"); //$NON-NLS-1$
-			if (fID == null) {
-				if (isCustom()) {
-					fID = getProperty("class"); //$NON-NLS-1$				
-				} else {
-					StringBuffer buf = new StringBuffer();
-					buf.append(fElement.getDeclaringExtension().getNamespace());
-					buf.append('.');
-					buf.append(getProperty("elementname")); //$NON-NLS-1$
-					fID = buf.toString();
-				}
-			}
-		}
-		return fID;
-	}
-
-
-	public String[] getPrefix() {
-		if (fPrefix == null) {
-			if (fElement != null) {
-				if (isCustom()) { // custom
-					IConfigurationElement[] prefixes = fElement.getChildren("startwith"); //$NON-NLS-1$	
-					if (prefixes != null) {
-						fPrefix = new String[prefixes.length];
-						for (int i = 0; i < prefixes.length; i++) {
-							fPrefix[i] = prefixes[i].getAttribute("prefix"); //$NON-NLS-1$	
-						}
-					}
-				} else { // basic
-					String name = getProperty("elementname"); //$NON-NLS-1$
-					if (name != null) {
-						if (isEmpty()) {
-							fPrefix = new String[1];
-							fPrefix[0] = name;
-						} else {
-							fPrefix = new String[2];
-							fPrefix[0] = name;
-							fPrefix[1] = '/' + name;
-						}
-					}
-				}
-			}
-		}
-		if (fPrefix == null) {
-			fPrefix = new String[1];
-			fPrefix[0] = ""; //$NON-NLS-1$
-		}
-		return fPrefix;
-	}
-
-	public String getProperty(String name) {
-		return (fAttributes != null) ? (String) fAttributes.get(name) : null;
-	}
-
-	private boolean isCustom() {
-		return fCustom;
-	}
-
-	private boolean isEmpty() {
-		return fEmpty;
-	}
-
-	void setupCommentElement(IDOMElement element) {
-		element.setCommentTag(true);
-		CommentElementAdapter adapter = new CommentElementAdapter(false, fHandler);
-		adapter.setConfiguration(this);
-		element.addAdapter(adapter);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/CommentElementRegistry.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/CommentElementRegistry.java
deleted file mode 100644
index efd1f67..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/CommentElementRegistry.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.commentelement.impl;
-
-
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.xml.core.internal.commentelement.CommentElementHandler;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-
-
-/**
- */
-public class CommentElementRegistry {
-
-	private static CommentElementRegistry fInstance = null;
-
-	public synchronized static CommentElementRegistry getInstance() {
-		if (fInstance == null) {
-			fInstance = new CommentElementRegistry();
-		}
-		return fInstance;
-	}
-
-	private String EXTENSION_POINT_ID = "commentElementHandler"; //$NON-NLS-1$
-	private CommentElementConfiguration[] fConfigurations = null;
-
-	private String PLUGIN_ID = "org.eclipse.wst.sse.core"; //$NON-NLS-1$
-
-	/**
-	 * Constructor for CommentElementRegistry.
-	 */
-	private CommentElementRegistry() {
-		super();
-	}
-
-	public CommentElementConfiguration[] getConfigurations() {
-		if (fConfigurations == null) {
-			IExtensionRegistry registry = Platform.getExtensionRegistry();
-			IExtensionPoint point = registry.getExtensionPoint(PLUGIN_ID, EXTENSION_POINT_ID);
-			if (point != null) {
-				IConfigurationElement[] elements = point.getConfigurationElements();
-				fConfigurations = new CommentElementConfiguration[elements.length];
-				for (int i = 0; i < elements.length; i++) {
-					fConfigurations[i] = new CommentElementConfiguration(elements[i]);
-				}
-			}
-			if (fConfigurations == null) {
-				fConfigurations = new CommentElementConfiguration[0];
-			}
-		}
-		return fConfigurations;
-	}
-
-	public boolean setupCommentElement(IDOMElement element) {
-		CommentElementConfiguration configurations[] = getConfigurations();
-		int length = configurations.length;
-		for (int i = 0; i < length; i++) {
-			CommentElementConfiguration conf = configurations[i];
-			boolean isJSP = element.isJSPTag();
-			if (isJSP && conf.acceptJSPComment() || !isJSP && conf.acceptXMLComment()) {
-				CommentElementHandler handler = conf.getHandler();
-				if (handler.isCommentElement(element)) {
-					conf.setupCommentElement(element);
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/util/CommentElementFactory.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/util/CommentElementFactory.java
deleted file mode 100644
index 2ac27ba..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/util/CommentElementFactory.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.commentelement.util;
-
-
-
-import org.eclipse.wst.xml.core.internal.commentelement.CommentElementAdapter;
-import org.eclipse.wst.xml.core.internal.commentelement.CommentElementHandler;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-
-/**
- */
-public class CommentElementFactory {
-	public static final int IS_EMPTY = 4866;
-	public static final int IS_END = 1808;
-
-	public static final int IS_START = 28011;
-
-	private Document fDocument;
-	private CommentElementHandler fHandler;
-	private boolean fJSPTag;
-
-	/**
-	 * Constructor for CommentElementFactory.
-	 */
-	private CommentElementFactory() {
-		super();
-	}
-
-	public CommentElementFactory(Document document, boolean isJSPTag, CommentElementHandler handler) {
-		this();
-		fDocument = document;
-		fJSPTag = isJSPTag;
-		fHandler = handler;
-	}
-
-	public Element create(String name, int nodeType) {
-		IDOMElement element = (IDOMElement) fDocument.createElement(name);
-		if (element == null)
-			return null;
-		element.setCommentTag(true);
-		if (nodeType == IS_EMPTY) {
-			element.setEmptyTag(true);
-		}
-		element.setJSPTag(fJSPTag);
-
-		CommentElementAdapter adapter = new CommentElementAdapter((nodeType == IS_END), fHandler);
-		element.addAdapter(adapter);
-
-		return element;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/util/TagScanner.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/util/TagScanner.java
deleted file mode 100644
index 1d0d404..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/util/TagScanner.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.commentelement.util;
-
-
-
-/**
- */
-public class TagScanner {
-
-	/**
-	 */
-	private static boolean isEqual(char c) {
-		return (c == '=');
-	}
-
-	/**
-	 */
-	private static boolean isQuote(char c) {
-		return (c == '"' || c == '\'');
-	}
-
-	/**
-	 */
-	private static boolean isSpace(char c) {
-		return Character.isWhitespace(c);
-	}
-
-	private int length = 0;
-	private int memOffset = 0;
-	private int offset = 0;
-	private boolean oneLine = false;
-
-	private String tag = null;
-
-	/**
-	 */
-	public TagScanner(String tag, int offset) {
-		super();
-
-		this.tag = tag;
-		this.offset = offset;
-		this.memOffset = -1;
-		if (tag != null)
-			this.length = tag.length();
-	}
-
-	/**
-	 */
-	public TagScanner(String tag, int offset, boolean oneLine) {
-		this(tag, offset);
-
-		this.oneLine = oneLine;
-	}
-
-	/**
-	 */
-	public int getNextOffset() {
-		int i;
-		char c;
-		for (i = offset; i < length; i++) {
-			c = tag.charAt(i);
-			if (isEnd(c))
-				break;
-			if (isQuote(c)) {
-				i++;
-				break;
-			}
-			if (!isSpace(c) && !isEqual(c))
-				break;
-		}
-		return i;
-	}
-
-	/**
-	 */
-	public int getOffset() {
-		return this.memOffset;
-	}
-
-	/**
-	 */
-	private final boolean isEnd(char c) {
-		return (this.oneLine && (c == '\r' || c == '\n'));
-	}
-
-	/**
-	 */
-	public boolean isNewLine() {
-		if (oneLine)
-			return false;
-		char c;
-		for (int i = memOffset - 1; 0 <= i; i--) {
-			c = tag.charAt(i);
-			if (c == '\r' || c == '\n')
-				return true;
-			if (!isSpace(c))
-				return false;
-		}
-		return false;
-	}
-
-	/**
-	 */
-	private char nextChar() {
-		for (; this.offset < this.length; this.offset++) {
-			char c = this.tag.charAt(this.offset);
-			if (isEnd(c))
-				break;
-			if (!isSpace(c))
-				return c;
-		}
-		return 0;
-	}
-
-	/**
-	 */
-	public String nextName() {
-		if (this.tag == null)
-			return null;
-		if (this.offset >= this.length)
-			return null;
-
-		if (nextChar() == 0)
-			return null;
-
-		int nameOffset = this.offset;
-		for (; this.offset < this.length; this.offset++) {
-			char c = this.tag.charAt(this.offset);
-			if (isEnd(c) || isSpace(c))
-				break;
-			if (isEqual(c) && this.offset > nameOffset)
-				break;
-		}
-		if (this.offset == nameOffset)
-			return null;
-
-		this.memOffset = nameOffset;
-		return this.tag.substring(nameOffset, this.offset);
-	}
-
-	/**
-	 */
-	public String nextValue() {
-		if (this.tag == null)
-			return null;
-		if (this.offset >= this.length)
-			return null;
-
-		char seperator = nextChar();
-		if (!isEqual(seperator))
-			return null;
-		this.offset++; // skip '='
-		char quote = nextChar();
-		if (quote == 0)
-			return null;
-		if (isQuote(quote))
-			this.offset++;
-		else
-			quote = 0;
-
-		int valueOffset = this.offset;
-		for (; this.offset < this.length; this.offset++) {
-			char c = this.tag.charAt(this.offset);
-			if (isEnd(c)) {
-				quote = 0;
-				break;
-			}
-			if (quote == 0) {
-				if (isSpace(c))
-					break;
-			} else {
-				if (c == quote)
-					break;
-			}
-		}
-		int valueEnd = this.offset;
-		if (quote != 0 && this.offset < this.length)
-			this.offset++;
-		if (valueEnd == valueOffset)
-			return null;
-
-		this.memOffset = valueOffset;
-		return this.tag.substring(valueOffset, valueEnd);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/AbstractResourceEncodingDetector.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/AbstractResourceEncodingDetector.java
deleted file mode 100644
index fcbcbea..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/AbstractResourceEncodingDetector.java
+++ /dev/null
@@ -1,258 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.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 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;
-
-
-public abstract class AbstractResourceEncodingDetector implements IResourceCharsetDetector {
-
-	protected EncodingMemento fEncodingMemento;
-
-	protected boolean fHeaderParsed;
-
-	protected Reader fReader;
-
-	/**
-	 *  
-	 */
-	public AbstractResourceEncodingDetector() {
-		super();
-	}
-
-	/**
-	 * 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());
-	}
-
-	/**
-	 * convience method all subclasses can use (but not override)
-	 * 
-	 * @param detectedCharsetName
-	 * @param reason
-	 */
-	final protected void createEncodingMemento(String detectedCharsetName, String reason) {
-		createEncodingMemento(detectedCharsetName);
-	}
-
-	/**
-	 * convience method all subclasses can use (but not override)
-	 */
-	final protected void ensureInputSet() {
-		if (fReader == null) {
-			throw new IllegalStateException("input must be set before use"); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * 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;
-	}
-
-	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;
-	}
-
-	/**
-	 * This is to return a default encoding -- as specified by an industry
-	 * content type spec -- when not present in the stream, for example, XML
-	 * specifies UTF-8, JSP specifies ISO-8859-1. This method should return
-	 * null if there is no such "spec default".
-	 */
-	abstract public String getSpecDefaultEncoding();
-
-	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;
-	}
-
-	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);
-		}
-	}
-
-	/**
-	 * Every subclass must provide a way to parse the input. This method has
-	 * several critical responsibilities:
-	 * <li>set the fEncodingMemento field appropriately, according to the
-	 * results of the parse of fReader.</li>
-	 * <li>set fHarderParsed to true, to avoid wasted re-parsing.</li>
-	 */
-	abstract protected void parseInput() throws IOException;
-
-	/**
-	 *  
-	 */
-	protected void resetAll() {
-		fReader = null;
-		fHeaderParsed = false;
-		fEncodingMemento = null;
-	}
-
-	/**
-	 *  
-	 */
-	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);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/ByteReader.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/ByteReader.java
deleted file mode 100644
index 3d50b3f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/ByteReader.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.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) {
-		fInputStream = inputStream;
-		if (!inputStream.markSupported()) {
-			throw new IllegalArgumentException("ByteReader is required to have a resettable stream"); //$NON-NLS-1$
-		}
-		fBuffer = new byte[size];
-
-	}
-
-	public void close() throws IOException {
-		fInputStream.close();
-	}
-
-	public void mark(int readAheadLimit) throws IOException {
-		fInputStream.mark(readAheadLimit);
-	}
-
-	public boolean markSupported() {
-		return true;
-	}
-
-	public int read() throws IOException {
-		int b0 = fInputStream.read();
-		return (b0 & 0x00FF);
-	}
-
-	public int read(char ch[], int offset, int length) throws IOException {
-		if (length > fBuffer.length) {
-			length = fBuffer.length;
-		}
-
-		int count = fInputStream.read(fBuffer, 0, length);
-
-		for (int i = 0; i < count; i++) {
-			int b0 = 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 fInputStream.available() > 0;
-	}
-
-	public void reset() throws IOException {
-		fInputStream.reset();
-	}
-
-	public long skip(long n) throws IOException {
-		return fInputStream.skip(n);
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/ContentDescriberForXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/ContentDescriberForXML.java
deleted file mode 100644
index 9e56e70..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/ContentDescriberForXML.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.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.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 ContentDescriberForXML implements ITextContentDescriber {
-	private final static QualifiedName[] SUPPORTED_OPTIONS = {IContentDescription.CHARSET, IContentDescription.BYTE_ORDER_MARK, IContentDescriptionExtended.DETECTED_CHARSET, IContentDescriptionExtended.UNSUPPORTED_CHARSET, IContentDescriptionExtended.APPROPRIATE_DEFAULT};
-	/**
-	 * <code>restrictedMode</code> is used just for testing/experiments.
-	 * 
-	 * If in restrictedMode, our "custom" contentType is seen as valid only in
-	 * cases that the platform's standard one does not cover.
-	 */
-	private final static boolean restrictedMode = true;
-	private IResourceCharsetDetector getDetector() {
-			return new XMLResourceEncodingDetector();
-	}
-
-	/*
-	 * (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 {
-		// for this special case, always assume invalid, unless
-		// our special circumstances are met.
-		int result = IContentDescriber.INVALID;
-
-		if (description == null) {
-			// purely request for validty
-			result = determineValidity(result, contents);
-		}
-		else {
-			result = calculateSupportedOptions(result, contents, description);
-		}
-		return result;
-	}
-
-	/*
-	 * (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 {
-		// for this special case, always assume invalid, unless
-		// our special circumstances are met.
-		int result = IContentDescriber.INVALID;
-
-		if (description == null) {
-			// purely request for validty
-			result = determineValidity(result, contents);
-		}
-		else {
-			result = calculateSupportedOptions(result, contents, description);
-		}
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.content.IContentDescriber#getSupportedOptions()
-	 */
-	public QualifiedName[] getSupportedOptions() {
-
-		return SUPPORTED_OPTIONS;
-	}
-
-	private int calculateSupportedOptions(int result, InputStream contents, IContentDescription description) throws IOException {
-		int returnResult = result;
-		if (isRelevent(description)) {
-			IResourceCharsetDetector detector = getDetector();
-			contents.reset();
-			detector.set(contents);
-			returnResult = handleCalculations(result, description, detector);
-		}
-		return returnResult;
-	}
-
-	private int determineValidity(int result, InputStream contents) throws IOException {
-		int returnResult = result;
-		IResourceCharsetDetector detector = getDetector();
-		contents.reset();
-		detector.set(contents);
-		returnResult = determineValidity(detector, returnResult);
-		return returnResult;
-	}
-	private int determineValidity(int result, Reader contents) throws IOException {
-		int returnResult = result;
-		IResourceCharsetDetector detector = getDetector();
-		contents.reset();
-		detector.set(contents);
-		returnResult = determineValidity(detector, returnResult);
-		return returnResult;
-	}
-	/**
-	 * @param contents
-	 * @param description
-	 * @throws IOException
-	 */
-	private int calculateSupportedOptions(int result, Reader contents, IContentDescription description) throws IOException {
-		int returnResult = result;
-		if (isRelevent(description)) {
-			IResourceCharsetDetector detector = getDetector();
-			detector.set(contents);
-			returnResult = handleCalculations(result, description, detector);
-		}
-		return returnResult;
-	}
-
-	private void handleDetectedSpecialCase(IContentDescription description, Object detectedCharset, Object javaCharset) {
-		// since equal, we don't need to add, but if our detected version is
-		// different than
-		// javaCharset, then we should add it. This will happen, for example,
-		// if there's
-		// differences in case, or differences due to override properties
-		if (detectedCharset != null) {
-			// if (!detectedCharset.equals(javaCharset)) {
-			// description.setProperty(IContentDescriptionExtended.DETECTED_CHARSET,
-			// detectedCharset);
-			// }
-
-			// 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
-	 * @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;
-		return result;
-	}
-
-	/**
-	 * @param description
-	 * @param detector
-	 * @throws IOException
-	 */
-	private int handleCalculations(int result, IContentDescription description, IResourceCharsetDetector detector) throws IOException {
-		int returnResult = result;
-		EncodingMemento encodingMemento = ((XMLResourceEncodingDetector) detector).getEncodingMemento();
-		if (description != null) {
-			// 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.
-						// TODO: this is probably a dead branch in current
-						// code, should re-examine for removal.
-						description.setProperty(IContentDescription.CHARSET, javaCharset);
-					}
-				}
-			}
-		}
-
-		returnResult = determineValidity(detector, returnResult);
-		return returnResult;
-	}
-
-	private int determineValidity(IResourceCharsetDetector detector, int returnResult) {
-		// we always expect XMLResourceEncodingDetector, but just to make safe
-		// cast.
-		if (detector instanceof XMLResourceEncodingDetector) {
-			XMLResourceEncodingDetector xmlResourceDetector = (XMLResourceEncodingDetector) detector;
-			if (xmlResourceDetector.isDeclDetected()) {
-				if (restrictedMode) {
-					// if there is no initial whitespace, then platform's
-					// default one will do.
-					if (xmlResourceDetector.hasInitialWhiteSpace()) {
-						returnResult = IContentDescriber.VALID;
-					}
-				}
-				else {
-					returnResult = IContentDescriber.VALID;
-				}
-			}
-		}
-		return returnResult;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/EncodingParserConstants.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/EncodingParserConstants.java
deleted file mode 100644
index d4542a4..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/EncodingParserConstants.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contenttype;
-
-
-public interface EncodingParserConstants {
-
-	final String EOF = "EOF"; //$NON-NLS-1$
-	final String InvalidTerminatedStringValue = "InvalidTerminatedStringValue"; //$NON-NLS-1$
-	final String InvalidTermintatedUnDelimitedStringValue = "InvalidTermintatedUnDelimitedStringValue"; //$NON-NLS-1$
-	final String MAX_CHARS_REACHED = "MAX_CHARS_REACHED"; //$NON-NLS-1$
-	final String StringValue = "strval"; //$NON-NLS-1$
-	final String UnDelimitedStringValue = "UnDelimitedStringValue"; //$NON-NLS-1$
-	public final String UTF16BE = "UTF16BE"; //$NON-NLS-1$
-	public final String UTF16LE = "UTF16LE"; //$NON-NLS-1$
-
-
-	public final String UTF83ByteBOM = "UTF83ByteBOM"; //$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/HeadParserToken.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/HeadParserToken.java
deleted file mode 100644
index 0f14b8b..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/HeadParserToken.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.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.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/IntStack.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/IntStack.java
deleted file mode 100644
index 1d1052d..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/IntStack.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.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.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/NullMemento.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/NullMemento.java
deleted file mode 100644
index 23f7462..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/NullMemento.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contenttype;
-
-import org.eclipse.wst.sse.core.internal.encoding.EncodingMemento;
-import org.eclipse.wst.sse.core.internal.encoding.NonContentBasedEncodingRules;
-
-
-
-/**
- * This class can be used in place of an EncodingMemento (its super class),
- * when there is not in fact ANY encoding information. For example, when a
- * structuredDocument is created directly from a String
- */
-public class NullMemento extends EncodingMemento {
-	/**
-	 *  
-	 */
-	public NullMemento() {
-		super();
-		String defaultCharset = NonContentBasedEncodingRules.useDefaultNameRules(null);
-		setJavaCharsetName(defaultCharset);
-		setAppropriateDefault(defaultCharset);
-		setDetectedCharsetName(null);
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLDeclDetector.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLDeclDetector.java
deleted file mode 100644
index 40d0fde..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLDeclDetector.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contenttype;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-
-public class XMLDeclDetector {
-	private static final int MAX_BUF_SIZE = 1024 * 8;
-	private static final int MAX_MARK_SIZE = 1024 * 8;
-	protected boolean fHeaderParsed;
-	private boolean fIsXML;
-	protected Reader fReader;
-	//private boolean DEBUG = false;
-	private XMLHeadTokenizer fTokenizer;
-
-	private boolean canHandleAsUnicodeStream(String tokenType) {
-		boolean canHandleAsUnicodeStream = false;
-		if (tokenType == EncodingParserConstants.UTF83ByteBOM) {
-			canHandleAsUnicodeStream = true;
-			//fUnicode = "UTF-8"; //$NON-NLS-1$
-		} else if (tokenType == EncodingParserConstants.UTF16BE) {
-			canHandleAsUnicodeStream = true;
-			//fUnicode = "UTF-16BE"; //$NON-NLS-1$
-		} else if (tokenType == EncodingParserConstants.UTF16LE) {
-			canHandleAsUnicodeStream = true;
-			//fUnicode = "UTF-16"; //$NON-NLS-1$
-		}
-		return canHandleAsUnicodeStream;
-	}
-
-	final private void ensureInputSet() {
-		if (fReader == null) {
-			throw new IllegalStateException("input must be set before use"); //$NON-NLS-1$
-		}
-	}
-
-	//private String fUnicode;
-
-	/**
-	 * @return Returns the tokenizer.
-	 */
-	private XMLHeadTokenizer getTokenizer() {
-		if (fTokenizer == null) {
-			fTokenizer = new XMLHeadTokenizer();
-		}
-		return fTokenizer;
-	}
-
-	/**
-	 * @return Returns the isXML.
-	 */
-	public boolean isXML() throws IOException {
-		ensureInputSet();
-		if (!fHeaderParsed) {
-			parseInput();
-		}
-		return fIsXML;
-	}
-
-	private void parseInput() throws IOException {
-		XMLHeadTokenizer tokenizer = getTokenizer();
-		tokenizer.reset(fReader);
-		HeadParserToken token = null;
-		String tokenType = null;
-		do {
-			token = tokenizer.getNextToken();
-			tokenType = token.getType();
-			if (canHandleAsUnicodeStream(tokenType)) {
-				fReader.reset();
-				// this is (obviously) not always true.
-				// TODO: need to fix so we "remember" original iFile or
-				// inputstream, and
-				// create appropriate InputStreamReader.
-				// I'm not sure what to do for the set(reader) case ... if its
-				// even relevent.
-				// plus, ensure against infinite loops!
-				fIsXML = true;
-				//fReader = new InputStreamReader(fReader, fUnicode);
-				// parseInput();
-			} else {
-				if (tokenType == XMLHeadTokenizerConstants.XMLDelEncoding) {
-					fIsXML = true;
-				}
-			}
-		} while (tokenizer.hasMoreTokens());
-
-	}
-
-	private void resetAll() {
-		fReader = null;
-		fHeaderParsed = false;
-		fIsXML = false;
-		//fUnicode = null;
-
-	}
-
-	public void set(IFile iFile) throws CoreException {
-		resetAll();
-		InputStream inputStream = iFile.getContents(true);
-		InputStream resettableStream = new BufferedInputStream(inputStream, MAX_BUF_SIZE);
-		resettableStream.mark(MAX_MARK_SIZE);
-		set(resettableStream);
-	}
-
-	public void set(InputStream inputStream) {
-		resetAll();
-		fReader = new ByteReader(inputStream);
-		try {
-			fReader.mark(MAX_MARK_SIZE);
-		} catch (IOException e) {
-			// impossible, since we know ByteReader supports marking
-			throw new Error(e);
-		}
-	}
-
-	/**
-	 * 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(MAX_MARK_SIZE);
-		} catch (IOException e) {
-			// impossble, since we just checked if markable
-			throw new Error(e);
-		}
-
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLHeadTokenizer.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLHeadTokenizer.java
deleted file mode 100644
index 76fb40b..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLHeadTokenizer.java
+++ /dev/null
@@ -1,1451 +0,0 @@
-/* The following code was generated by JFlex 1.4.2 on 7/28/08 9:29 AM */
-
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*nlsXXX*/
-package org.eclipse.wst.xml.core.internal.contenttype;
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.wst.xml.core.internal.contenttype.EncodingParserConstants;
-import org.eclipse.wst.xml.core.internal.contenttype.XMLHeadTokenizerConstants;
-
-
-
-/**
- * This class is a scanner generated by 
- * <a href="http://www.jflex.de/">JFlex</a> 1.4.2
- * on 7/28/08 9:29 AM from the specification file
- * <tt>D:/workspaces/wtp301/workspace/org.eclipse.wst.xml.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer.jFlex</tt>
- */
-public class XMLHeadTokenizer {
-
-  /** 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 = 10;
-  public static final int DQ_STRING = 6;
-  public static final int SQ_STRING = 8;
-  public static final int ST_XMLDecl = 2;
-  public static final int QuotedAttributeValue = 4;
-
-  /**
-   * 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
-  };
-
-  /** 
-   * Translates characters to character classes
-   */
-  private static final String ZZ_CMAP_PACKED = 
-    "\1\11\10\0\1\6\1\10\2\0\1\7\22\0\1\6\1\0\1\33"+
-    "\2\0\1\35\1\0\1\34\24\0\1\13\1\12\1\32\1\14\3\0"+
-    "\1\27\1\30\1\21\1\0\1\31\1\0\1\24\2\0\1\17\1\16"+
-    "\1\26\1\25\2\0\1\22\1\23\2\0\1\20\1\0\1\15\12\0"+
-    "\1\27\1\30\1\21\1\0\1\31\1\0\1\24\2\0\1\17\1\16"+
-    "\1\26\1\25\2\0\1\22\1\23\2\0\1\20\1\0\1\15\102\0"+
-    "\1\4\3\0\1\5\17\0\1\3\16\0\1\1\20\0\1\3\16\0"+
-    "\1\1\1\2\170\0\1\2\ufe87\0";
-
-  /** 
-   * Translates characters to character classes
-   */
-  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 =
-    "\7\0\13\1\2\2\1\1\1\2\1\3\1\4\1\5"+
-    "\1\6\1\1\1\5\1\7\1\1\1\5\1\10\1\1"+
-    "\1\11\1\12\1\13\12\0\1\14\5\0\1\2\1\3"+
-    "\1\4\1\6\2\0\1\15\1\7\2\0\1\10\1\11"+
-    "\1\16\3\0\1\14\4\0\1\2\1\15\14\0\1\17"+
-    "\5\0\1\17\6\0\1\20\3\0\1\20\2\0\1\21"+
-    "\1\0\1\21\1\0";
-
-  private static int [] zzUnpackAction() {
-    int [] result = new int[111];
-    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 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;
-
-  /** number of newlines encountered up to the start of the matched text */
-//  private int yyline;
-
-  /** the number of characters up to the start of the matched text */
-  private int yychar;
-
-  /**
-   * the number of characters from the last newline up to the start of the 
-   * matched text
-   */
-//  private int yycolumn;
-
-  /** 
-   * 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;
-
-
-	public XMLHeadTokenizer() {
-		super();
-	}
-
-	  public void reset (Reader in) {
-                /* the input device */
-                zzReader = in;
-
-                /* the current state of the DFA */
-                zzState = 0;
-
-                /* the current lexical state */
-                zzLexicalState = YYINITIAL;
-
-                /* this buffer contains the current text to be matched and is
-                 the source of the yytext() string */
-                java.util.Arrays.fill(zzBuffer, (char)0);
-
-                /* the textposition at the last accepting state */
-                zzMarkedPos = 0;
-
-                /* the textposition at the last state to be included in yytext */
-//                zzPushbackPos = 0;
-
-                /* the current text position in the buffer */
-                zzCurrentPos = 0;
-
-                /* startRead marks the beginning of the yytext() string in the buffer */
-                zzStartRead = 0;
-
-                /**
-                 * endRead marks the last character in the buffer, that has been read
-                 * from input
-                 */
-                zzEndRead = 0;
-
-                /* number of newlines encountered up to the start of the matched text */
-//                yyline = 0;
-
-                /* the number of characters up to the start of the matched text */
-                yychar = 0;
-
-                /**
-                 * the number of characters from the last newline up to the start
-                 * of the matched text
-                 */
-//                yycolumn = 0;
-
-                /**
-                 * yy_atBOL == true <=> the scanner is currently at the beginning
-                 * of a line
-                 */
-                zzAtBOL = true;
-
-                /* yy_atEOF == true <=> the scanner has returned a value for EOF */
-                zzAtEOF = false;
-
-                /* denotes if the user-EOF-code has already been executed */
-                zzEOFDone = false;
-
-
-                fStateStack.clear();
-
-                hasMore = true;
-  		
-  	}
-
-
-	public final HeadParserToken getNextToken() throws IOException {
-		String context = null;
-		context = primGetNextToken();
-		HeadParserToken result = null;
-		if (valueText != null) {
-			result = createToken(context, yychar, valueText);
-			valueText = null;
-		} else {
-			result = createToken(context, yychar, yytext());
-		}
-		return result;
-	}
-
-	public final boolean hasMoreTokens() {
-		return hasMore && yychar < MAX_TO_SCAN;
-	}
-	private void pushCurrentState() {
-		fStateStack.push(yystate());
-
-	}
-
-	private void popState() {
-		yybegin(fStateStack.pop());
-	}
-	
-	private HeadParserToken createToken(String context, int start, String text) {
-		return new HeadParserToken(context, start, text);
-	}	
-
-
-
-  /**
-   * 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 XMLHeadTokenizer(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 XMLHeadTokenizer(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 < 150) {
-      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;
-      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) {
-      zzEndRead+= numRead;
-      return false;
-    }
-    // unlikely but not impossible: read 0 characters, but not at end of stream    
-    if (numRead == 0) {
-      int c = zzReader.read();
-      if (c == -1) {
-        return true;
-      } else {
-        zzBuffer[zzEndRead++] = (char) c;
-        return false;
-      }     
-    }
-
-	// numRead < 0
-    return true;
-  }
-
-    
-  /**
-   * 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 = 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) {
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 7; break zzForNext;
-              }
-
-            case 1:
-              switch (zzInput) {
-                case 1: zzIsFinal = true; zzState = 8; break zzForNext;
-                case 2: zzIsFinal = true; zzState = 9; break zzForNext;
-                case 3: zzIsFinal = true; zzState = 10; break zzForNext;
-                case 6: 
-                case 7: 
-                case 8: zzIsFinal = true; zzState = 11; break zzForNext;
-                case 9: zzIsFinal = true; zzState = 12; break zzForNext;
-                case 11: zzIsFinal = true; zzState = 13; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 7; break zzForNext;
-              }
-
-            case 2:
-              switch (zzInput) {
-                case 9: zzIsFinal = true; zzState = 14; break zzForNext;
-                case 12: zzIsFinal = true; zzState = 15; break zzForNext;
-                case 16: zzIsFinal = true; zzState = 16; break zzForNext;
-                case 17: zzIsFinal = true; zzState = 17; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 7; break zzForNext;
-              }
-
-            case 3:
-              switch (zzInput) {
-                case 6: 
-                case 7: zzIsFinal = true; zzState = 19; break zzForNext;
-                case 8: zzIsFinal = true; zzState = 20; break zzForNext;
-                case 9: zzIsFinal = true; zzState = 21; break zzForNext;
-                case 27: zzIsFinal = true; zzState = 22; break zzForNext;
-                case 28: zzIsFinal = true; zzState = 23; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 18; break zzForNext;
-              }
-
-            case 4:
-              switch (zzInput) {
-                case 7: 
-                case 8: 
-                case 11: zzIsFinal = true; zzState = 25; break zzForNext;
-                case 9: zzIsFinal = true; zzState = 26; break zzForNext;
-                case 12: zzIsFinal = true; zzState = 27; break zzForNext;
-                case 27: zzIsFinal = true; zzState = 28; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 24; break zzForNext;
-              }
-
-            case 5:
-              switch (zzInput) {
-                case 7: 
-                case 8: 
-                case 11: zzIsFinal = true; zzState = 25; break zzForNext;
-                case 28: zzIsFinal = true; zzState = 28; break zzForNext;
-                case 9: zzIsFinal = true; zzState = 29; break zzForNext;
-                case 29: zzIsFinal = true; zzState = 30; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 24; break zzForNext;
-              }
-
-            case 6:
-              switch (zzInput) {
-                case 11: zzIsFinal = true; zzState = 25; break zzForNext;
-                case 12: zzIsFinal = true; zzState = 30; break zzForNext;
-                case 6: 
-                case 7: 
-                case 8: zzIsFinal = true; zzState = 31; break zzForNext;
-                case 9: zzIsFinal = true; zzState = 32; break zzForNext;
-                case 27: 
-                case 28: zzIsFinal = true; zzState = 33; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 24; break zzForNext;
-              }
-
-            case 8:
-              switch (zzInput) {
-                case 2: zzIsFinal = true; zzNoLookAhead = true; zzState = 34; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 9:
-              switch (zzInput) {
-                case 1: zzIsFinal = true; zzNoLookAhead = true; zzState = 35; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 10:
-              switch (zzInput) {
-                case 4: zzState = 36; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 11:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: zzState = 37; break zzForNext;
-                case 9: zzState = 38; break zzForNext;
-                case 11: zzState = 39; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 12:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: zzState = 37; break zzForNext;
-                case 11: zzState = 39; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 13:
-              switch (zzInput) {
-                case 9: zzState = 40; break zzForNext;
-                case 12: zzState = 41; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 14:
-              switch (zzInput) {
-                case 12: zzState = 42; break zzForNext;
-                case 16: zzState = 43; break zzForNext;
-                case 17: zzState = 44; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 15:
-              switch (zzInput) {
-                case 9: zzState = 45; break zzForNext;
-                case 26: zzIsFinal = true; zzState = 46; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 16:
-              switch (zzInput) {
-                case 9: zzState = 47; break zzForNext;
-                case 17: zzState = 48; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 17:
-              switch (zzInput) {
-                case 9: zzState = 49; break zzForNext;
-                case 22: zzState = 50; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 19:
-              switch (zzInput) {
-                case 6: 
-                case 7: zzIsFinal = true; break zzForNext;
-                case 8: zzState = 51; break zzForNext;
-                case 9: zzIsFinal = true; zzState = 52; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 18; break zzForNext;
-              }
-
-            case 20:
-              switch (zzInput) {
-                case 6: 
-                case 7: zzIsFinal = true; zzState = 19; break zzForNext;
-                case 8: zzState = 51; break zzForNext;
-                case 9: zzIsFinal = true; zzState = 52; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 18; break zzForNext;
-              }
-
-            case 21:
-              switch (zzInput) {
-                case 27: zzIsFinal = true; zzState = 22; break zzForNext;
-                case 28: zzIsFinal = true; zzState = 23; break zzForNext;
-                case 6: 
-                case 7: 
-                case 8: zzState = 51; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 22:
-              switch (zzInput) {
-                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 53; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 23:
-              switch (zzInput) {
-                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 54; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 25:
-              switch (zzInput) {
-                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 55; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 26:
-              switch (zzInput) {
-                case 7: 
-                case 8: 
-                case 11: zzIsFinal = true; zzState = 25; break zzForNext;
-                case 27: zzIsFinal = true; zzState = 28; break zzForNext;
-                case 12: zzState = 56; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 27:
-              switch (zzInput) {
-                case 9: zzState = 57; break zzForNext;
-                case 26: zzIsFinal = true; zzState = 58; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 28:
-              switch (zzInput) {
-                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 59; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 29:
-              switch (zzInput) {
-                case 7: 
-                case 8: 
-                case 11: zzIsFinal = true; zzState = 25; break zzForNext;
-                case 28: zzIsFinal = true; zzState = 28; break zzForNext;
-                case 29: zzState = 60; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 30:
-              switch (zzInput) {
-                case 26: zzIsFinal = true; zzState = 25; break zzForNext;
-                case 9: zzState = 61; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 31:
-              switch (zzInput) {
-                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 62; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 32:
-              switch (zzInput) {
-                case 11: zzIsFinal = true; zzState = 25; break zzForNext;
-                case 6: 
-                case 7: 
-                case 8: zzIsFinal = true; zzState = 31; break zzForNext;
-                case 27: 
-                case 28: zzIsFinal = true; zzState = 33; break zzForNext;
-                case 12: zzState = 60; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 33:
-              switch (zzInput) {
-                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 63; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 36:
-              switch (zzInput) {
-                case 5: zzIsFinal = true; zzNoLookAhead = true; zzState = 64; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 37:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: break zzForNext;
-                case 9: zzState = 38; break zzForNext;
-                case 11: zzState = 39; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 38:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: zzState = 37; break zzForNext;
-                case 11: zzState = 39; break zzForNext;
-                case 9: zzState = 65; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 39:
-              switch (zzInput) {
-                case 9: zzState = 40; break zzForNext;
-                case 12: zzState = 41; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 40:
-              switch (zzInput) {
-                case 12: zzState = 41; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 41:
-              switch (zzInput) {
-                case 9: zzState = 66; break zzForNext;
-                case 13: zzState = 67; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 42:
-              switch (zzInput) {
-                case 9: zzState = 45; break zzForNext;
-                case 26: zzIsFinal = true; zzState = 46; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 43:
-              switch (zzInput) {
-                case 9: zzState = 47; break zzForNext;
-                case 17: zzState = 48; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 44:
-              switch (zzInput) {
-                case 9: zzState = 49; break zzForNext;
-                case 22: zzState = 50; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 45:
-              switch (zzInput) {
-                case 26: zzIsFinal = true; zzState = 46; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 46:
-              switch (zzInput) {
-                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 68; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 47:
-              switch (zzInput) {
-                case 17: zzState = 48; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 48:
-              switch (zzInput) {
-                case 9: zzState = 69; break zzForNext;
-                case 18: zzState = 70; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 49:
-              switch (zzInput) {
-                case 22: zzState = 50; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 50:
-              switch (zzInput) {
-                case 9: zzState = 71; break zzForNext;
-                case 23: zzState = 72; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 51:
-              switch (zzInput) {
-                case 6: 
-                case 7: zzIsFinal = true; zzState = 19; break zzForNext;
-                case 8: break zzForNext;
-                case 9: zzIsFinal = true; zzState = 52; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 18; break zzForNext;
-              }
-
-            case 52:
-              switch (zzInput) {
-                case 6: 
-                case 7: zzIsFinal = true; zzState = 19; break zzForNext;
-                case 8: zzState = 51; break zzForNext;
-                case 9: zzIsFinal = true; zzState = 73; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 18; break zzForNext;
-              }
-
-            case 56:
-              switch (zzInput) {
-                case 9: zzState = 57; break zzForNext;
-                case 26: zzIsFinal = true; zzState = 58; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 57:
-              switch (zzInput) {
-                case 26: zzIsFinal = true; zzState = 58; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 58:
-              switch (zzInput) {
-                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 74; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 60:
-              switch (zzInput) {
-                case 26: zzIsFinal = true; zzState = 25; break zzForNext;
-                case 9: zzState = 61; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 61:
-              switch (zzInput) {
-                case 26: zzIsFinal = true; zzState = 25; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 65:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: zzState = 37; break zzForNext;
-                case 11: zzState = 39; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 66:
-              switch (zzInput) {
-                case 13: zzState = 67; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 67:
-              switch (zzInput) {
-                case 9: zzState = 75; break zzForNext;
-                case 14: zzState = 76; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 69:
-              switch (zzInput) {
-                case 18: zzState = 70; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 70:
-              switch (zzInput) {
-                case 9: zzState = 77; break zzForNext;
-                case 19: zzState = 78; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 71:
-              switch (zzInput) {
-                case 23: zzState = 72; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 72:
-              switch (zzInput) {
-                case 9: zzState = 79; break zzForNext;
-                case 21: zzState = 80; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 73:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: zzState = 51; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 75:
-              switch (zzInput) {
-                case 14: zzState = 76; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 76:
-              switch (zzInput) {
-                case 9: zzState = 81; break zzForNext;
-                case 15: zzState = 82; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 77:
-              switch (zzInput) {
-                case 19: zzState = 78; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 78:
-              switch (zzInput) {
-                case 9: zzState = 83; break zzForNext;
-                case 20: zzState = 84; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 79:
-              switch (zzInput) {
-                case 21: zzState = 80; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 80:
-              switch (zzInput) {
-                case 9: zzState = 85; break zzForNext;
-                case 24: zzState = 86; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 81:
-              switch (zzInput) {
-                case 15: zzState = 82; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 82:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: zzIsFinal = true; zzState = 87; break zzForNext;
-                case 9: zzState = 88; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 83:
-              switch (zzInput) {
-                case 20: zzState = 84; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 84:
-              switch (zzInput) {
-                case 9: zzState = 89; break zzForNext;
-                case 21: zzState = 90; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 85:
-              switch (zzInput) {
-                case 24: zzState = 86; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 86:
-              switch (zzInput) {
-                case 9: zzState = 91; break zzForNext;
-                case 20: zzState = 92; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 87:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: zzIsFinal = true; break zzForNext;
-                case 9: zzIsFinal = true; zzState = 93; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 88:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: zzIsFinal = true; zzState = 87; break zzForNext;
-                case 9: zzState = 94; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 89:
-              switch (zzInput) {
-                case 21: zzState = 90; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 90:
-              switch (zzInput) {
-                case 9: zzState = 95; break zzForNext;
-                case 22: zzState = 96; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 91:
-              switch (zzInput) {
-                case 20: zzState = 92; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 92:
-              switch (zzInput) {
-                case 9: zzState = 97; break zzForNext;
-                case 22: zzState = 98; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 93:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: zzIsFinal = true; zzState = 87; break zzForNext;
-                case 9: zzState = 94; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 94:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: zzIsFinal = true; zzState = 87; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 95:
-              switch (zzInput) {
-                case 22: zzState = 96; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 96:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: break zzForNext;
-                case 9: zzState = 99; break zzForNext;
-                case 10: zzIsFinal = true; zzState = 100; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 97:
-              switch (zzInput) {
-                case 22: zzState = 98; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 98:
-              switch (zzInput) {
-                case 9: zzState = 101; break zzForNext;
-                case 25: zzState = 102; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 99:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: zzState = 96; break zzForNext;
-                case 10: zzIsFinal = true; zzState = 100; break zzForNext;
-                case 9: zzState = 103; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 100:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: zzIsFinal = true; zzState = 104; break zzForNext;
-                case 9: zzState = 105; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 101:
-              switch (zzInput) {
-                case 25: zzState = 102; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 102:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: break zzForNext;
-                case 9: zzState = 106; break zzForNext;
-                case 10: zzIsFinal = true; zzState = 107; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 103:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: zzState = 96; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 104:
-              switch (zzInput) {
-                case 9: zzIsFinal = true; zzState = 100; break zzForNext;
-                case 6: 
-                case 7: 
-                case 8: zzIsFinal = true; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 105:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: zzIsFinal = true; zzState = 104; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 106:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: zzState = 102; break zzForNext;
-                case 10: zzIsFinal = true; zzState = 107; break zzForNext;
-                case 9: zzState = 108; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 107:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: zzIsFinal = true; zzState = 109; break zzForNext;
-                case 9: zzState = 110; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 108:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: zzState = 102; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 109:
-              switch (zzInput) {
-                case 9: zzIsFinal = true; zzState = 107; break zzForNext;
-                case 6: 
-                case 7: 
-                case 8: zzIsFinal = true; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 110:
-              switch (zzInput) {
-                case 6: 
-                case 7: 
-                case 8: zzIsFinal = true; zzState = 109; break zzForNext;
-                default: break zzForAction;
-              }
-
-            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 12: 
-          { yybegin(YYINITIAL); hasMore = false; return XMLHeadTokenizerConstants.XMLDeclEnd;
-          }
-        case 18: break;
-        case 14: 
-          { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF83ByteBOM;}
-          }
-        case 19: break;
-        case 9: 
-          { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;
-          }
-        case 20: break;
-        case 2: 
-          { yypushback(1); yybegin(UnDelimitedString); string.setLength(0);
-          }
-        case 21: break;
-        case 7: 
-          { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;
-          }
-        case 22: break;
-        case 10: 
-          { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16BE;}
-          }
-        case 23: break;
-        case 1: 
-          { if(yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}
-          }
-        case 24: break;
-        case 6: 
-          { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;
-          }
-        case 25: break;
-        case 5: 
-          { string.append( yytext() );
-          }
-        case 26: break;
-        case 13: 
-          { yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;
-          }
-        case 27: break;
-        case 4: 
-          { yybegin(SQ_STRING); string.setLength(0);
-          }
-        case 28: break;
-        case 3: 
-          { yybegin(DQ_STRING); string.setLength(0);
-          }
-        case 29: break;
-        case 8: 
-          { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue;
-          }
-        case 30: break;
-        case 17: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;
-          }
-        case 31: break;
-        case 15: 
-          { if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;}
-          }
-        case 32: break;
-        case 11: 
-          { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16LE;}
-          }
-        case 33: break;
-        case 16: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;
-          }
-        case 34: break;
-        default: 
-          if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
-            zzAtEOF = true;
-            zzDoEOF();
-              {
-                hasMore = false; return EncodingParserConstants.EOF;
-              }
-          } 
-          else {
-            zzScanError(ZZ_NO_MATCH);
-          }
-      }
-    }
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLHeadTokenizerConstants.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLHeadTokenizerConstants.java
deleted file mode 100644
index ccf23f8..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLHeadTokenizerConstants.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contenttype;
-
-public interface XMLHeadTokenizerConstants extends EncodingParserConstants {
-
-	final String XMLDeclEnd = "XMLDeclEnd"; //$NON-NLS-1$
-	final String XMLDeclStart = "XMLDeclStart"; //$NON-NLS-1$
-	final String XMLDelEncoding = "XMLDelEncoding"; //$NON-NLS-1$
-	final String XMLDeclVersion = "XMLDeclVersion"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLResourceEncodingDetector.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLResourceEncodingDetector.java
deleted file mode 100644
index b1690f3..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLResourceEncodingDetector.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contenttype;
-
-import java.io.IOException;
-
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.wst.sse.core.internal.encoding.EncodingMemento;
-import org.eclipse.wst.sse.core.internal.encoding.IResourceCharsetDetector;
-
-
-public class XMLResourceEncodingDetector extends AbstractResourceEncodingDetector implements IResourceCharsetDetector {
-	private XMLHeadTokenizer fTokenizer;
-	private boolean fDeclDetected = false;
-	private boolean fInitialWhiteSpace = false;
-
-	private boolean canHandleAsUnicodeStream(String tokenType) {
-		boolean canHandleAsUnicodeStream = false;
-		if (tokenType == EncodingParserConstants.UTF83ByteBOM) {
-			canHandleAsUnicodeStream = true;
-			String enc = "UTF-8"; //$NON-NLS-1$
-			createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES);
-			fEncodingMemento.setUTF83ByteBOMUsed(true);
-		}
-		else if (tokenType == EncodingParserConstants.UTF16BE || tokenType == EncodingParserConstants.UTF16LE) {
-			canHandleAsUnicodeStream = true;
-			String enc = "UTF-16"; //$NON-NLS-1$
-			byte[] bom = (tokenType == EncodingParserConstants.UTF16BE) ? IContentDescription.BOM_UTF_16BE : IContentDescription.BOM_UTF_16LE;
-			createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES);
-			fEncodingMemento.setUnicodeStream(true);
-			fEncodingMemento.setUnicodeBOM(bom);
-		}
-		return canHandleAsUnicodeStream;
-	}
-
-	public String getSpecDefaultEncoding() {
-		// by default, UTF-8 as per XML spec
-		final String enc = "UTF-8"; //$NON-NLS-1$
-		return enc;
-	}
-
-	/**
-	 * @return Returns the tokenizer.
-	 */
-	private XMLHeadTokenizer getTokenizer() {
-		// TODO: need to work on 'reset' in tokenizer, so new instance isn't
-		// always needed
-		// if (fTokenizer == null) {
-		fTokenizer = new XMLHeadTokenizer();
-		// }
-		return fTokenizer;
-	}
-
-	private boolean isLegalString(String valueTokenType) {
-		if (valueTokenType == null)
-			return false;
-		else
-			return valueTokenType.equals(EncodingParserConstants.StringValue) || valueTokenType.equals(EncodingParserConstants.UnDelimitedStringValue) || valueTokenType.equals(EncodingParserConstants.InvalidTerminatedStringValue) || valueTokenType.equals(EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue);
-	}
-
-	protected void parseInput() throws IOException {
-		XMLHeadTokenizer tokenizer = getTokenizer();
-		tokenizer.reset(fReader);
-		HeadParserToken token = null;
-		String tokenType = null;
-		do {
-			token = tokenizer.getNextToken();
-			tokenType = token.getType();
-
-			// handle xml content type detection
-			if (tokenType == XMLHeadTokenizerConstants.XMLDeclStart) {
-				fDeclDetected = true;
-				String declText = token.getText();
-				if (declText.startsWith("<?")) { //$NON-NLS-1$
-					fInitialWhiteSpace = false;
-				}
-				else {
-					fInitialWhiteSpace = true;
-				}
-			}
-
-			// handle encoding detection
-			if (canHandleAsUnicodeStream(tokenType)) {
-				// side effect of canHandle is to create appropriate memento
-			}
-			else {
-				if (tokenType == XMLHeadTokenizerConstants.XMLDelEncoding) {
-					if (tokenizer.hasMoreTokens()) {
-						token = tokenizer.getNextToken();
-						tokenType = token.getType();
-						if (isLegalString(tokenType)) {
-							String enc = token.getText();
-							if (enc != null && enc.length() > 0) {
-								createEncodingMemento(enc, EncodingMemento.FOUND_ENCODING_IN_CONTENT);
-							}
-						}
-					}
-				}
-			}
-		}
-		while (tokenizer.hasMoreTokens());
-
-	}
-
-	public boolean isDeclDetected() {
-		if (!fHeaderParsed) {
-			try {
-				parseInput();
-			}
-			catch (IOException e) {
-				fDeclDetected = false;
-			}
-			// we keep track of if header's already been
-			// parse, so can make
-			// multiple 'get' calls, without causing
-			// reparsing.
-			fHeaderParsed = true;
-		}
-		// fDeclDetected is set as part of parsing.
-		return fDeclDetected;
-	}
-
-	public boolean hasInitialWhiteSpace() {
-		return fInitialWhiteSpace;
-	}
-
-	protected void resetAll() {
-	    super.resetAll();
-		fDeclDetected = false;
-		fInitialWhiteSpace = false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/AttrImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/AttrImpl.java
deleted file mode 100644
index cf2e968..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/AttrImpl.java
+++ /dev/null
@@ -1,774 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
- *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.IXMLCharEntity;
-import org.eclipse.wst.xml.core.internal.provisional.IXMLNamespace;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.Attr;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.UserDataHandler;
-
-
-/**
- * AttrImpl class
- */
-public class AttrImpl extends NodeImpl implements IDOMAttr {
-	private ITextRegion equalRegion = null;
-
-	private String name = null;
-	private ITextRegion nameRegion = null;
-	private String namespaceURI = null;
-	private ElementImpl ownerElement = null;
-	private ITextRegion valueRegion = null;
-	private String valueSource = null;
-
-	/**
-	 * AttrImpl constructor
-	 */
-	protected AttrImpl() {
-		super();
-	}
-
-	/**
-	 * AttrImpl constructor
-	 * 
-	 * @param that
-	 *            AttrImpl
-	 */
-	protected AttrImpl(AttrImpl that) {
-		super(that);
-
-		if (that != null) {
-			this.name = that.name;
-			this.valueSource = that.getValueSource();
-		}
-	}
-
-	/**
-	 * cloneNode method
-	 * 
-	 * @return org.w3c.dom.Node
-	 */
-	public Node cloneNode(boolean deep) {
-		AttrImpl cloned = new AttrImpl(this);
-		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
-		return cloned;
-	}
-
-	/**
-	 */
-	protected CMAttributeDeclaration getDeclaration() {
-		ElementImpl element = (ElementImpl) getOwnerElement();
-		if (element == null)
-			return null;
-		CMElementDeclaration elementDecl = element.getDeclaration();
-		if (elementDecl == null)
-			return null;
-		CMNamedNodeMap attributes = elementDecl.getAttributes();
-		CMNamedNodeMapImpl allAttributes = new CMNamedNodeMapImpl(attributes);
-		List nodes = ModelQueryUtil.getModelQuery(getOwnerDocument()).getAvailableContent(getOwnerElement(), elementDecl, ModelQuery.INCLUDE_ATTRIBUTES);
-		for (int k = 0; k < nodes.size(); k++) {
-			CMNode cmnode = (CMNode) nodes.get(k);
-			if (cmnode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) {
-				allAttributes.put(cmnode);
-			}
-		}
-		attributes = allAttributes;
-		
-
-		if (attributes == null)
-			return null;
-		return (CMAttributeDeclaration) attributes.getNamedItem(getName());
-	}
-
-	/**
-	 * getEndOffset method
-	 * 
-	 * @return int
-	 */
-	public int getEndOffset() {
-		if (this.ownerElement == null)
-			return 0;
-		int offset = this.ownerElement.getStartOffset();
-		if (this.valueRegion != null) {
-			return (offset + this.valueRegion.getEnd());
-		}
-		if (this.equalRegion != null) {
-			return (offset + this.equalRegion.getEnd());
-		}
-		if (this.nameRegion != null) {
-			return (offset + this.nameRegion.getEnd());
-		}
-		return 0;
-	}
-
-
-	public ITextRegion getEqualRegion() {
-		return this.equalRegion;
-	}
-
-	/**
-	 */
-	public String getLocalName() {
-		if (this.name == null)
-			return null;
-		int index = this.name.indexOf(':');
-		if (index < 0)
-			return this.name;
-		return this.name.substring(index + 1);
-	}
-
-	/**
-	 * getName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getName() {
-		if (this.name == null)
-			return new String();
-		return this.name;
-	}
-
-
-	public ITextRegion getNameRegion() {
-		return this.nameRegion;
-	}
-
-	public int getNameRegionEndOffset() {
-		if (this.ownerElement == null)
-			return 0;
-		// assuming the firstStructuredDocumentRegion is the one that contains
-		// attributes
-		IStructuredDocumentRegion flatNode = this.ownerElement.getFirstStructuredDocumentRegion();
-		if (flatNode == null)
-			return 0;
-		return flatNode.getEndOffset(this.nameRegion);
-	}
-
-	public int getNameRegionStartOffset() {
-		if (this.ownerElement == null)
-			return 0;
-		// assuming the firstStructuredDocumentRegion is the one that contains
-		// attributes
-		IStructuredDocumentRegion flatNode = this.ownerElement.getFirstStructuredDocumentRegion();
-		if (flatNode == null)
-			return 0;
-		return flatNode.getStartOffset(this.nameRegion);
-	}
-
-	public String getNameRegionText() {
-		if (this.ownerElement == null)
-			return null;
-		// assuming the firstStructuredDocumentRegion is the one that contains
-		// attributes
-		IStructuredDocumentRegion flatNode = this.ownerElement.getFirstStructuredDocumentRegion();
-		if (flatNode == null)
-			return null;
-		return flatNode.getText(this.nameRegion);
-	}
-
-	public int getNameRegionTextEndOffset() {
-		if (this.ownerElement == null)
-			return 0;
-		// assuming the firstStructuredDocumentRegion is the one that contains
-		// attributes
-		IStructuredDocumentRegion flatNode = this.ownerElement.getFirstStructuredDocumentRegion();
-		if (flatNode == null)
-			return 0;
-		return flatNode.getTextEndOffset(this.nameRegion);
-	}
-
-	/**
-	 */
-	public String getNamespaceURI() {
-		String nsAttrName = null;
-		String prefix = getPrefix();
-		if (prefix != null && prefix.length() > 0) {
-			if (prefix.equals(IXMLNamespace.XMLNS)) {
-				// fixed URI
-				return IXMLNamespace.XMLNS_URI;
-			}
-			nsAttrName = IXMLNamespace.XMLNS_PREFIX + prefix;
-		}
-		else {
-			String name = getName();
-			if (name != null && name.equals(IXMLNamespace.XMLNS)) {
-				// fixed URI
-				return IXMLNamespace.XMLNS_URI;
-			}
-			// does not inherit namespace from owner element
-			// if (this.ownerElement != null) return
-			// this.ownerElement.getNamespaceURI();
-			return this.namespaceURI;
-		}
-
-		for (Node node = this.ownerElement; node != null; node = node.getParentNode()) {
-			if (node.getNodeType() != ELEMENT_NODE)
-				break;
-			Element element = (Element) node;
-			Attr attr = element.getAttributeNode(nsAttrName);
-			if (attr != null)
-				return attr.getValue();
-		}
-
-		return this.namespaceURI;
-	}
-
-	/**
-	 * getNodeName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return getName();
-	}
-
-	/**
-	 * getNodeType method
-	 * 
-	 * @return short
-	 */
-	public short getNodeType() {
-		return ATTRIBUTE_NODE;
-	}
-
-	/**
-	 * getNodeValue method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getNodeValue() {
-		return getValue();
-	}
-
-	/**
-	 * getOwnerElement method
-	 * 
-	 * @return org.w3c.dom.Element
-	 */
-	public Element getOwnerElement() {
-		return this.ownerElement;
-	}
-
-	/**
-	 */
-	public String getPrefix() {
-		if (this.name == null)
-			return null;
-		int index = this.name.indexOf(':');
-		if (index <= 0)
-			return null;
-		// exclude JSP tag in name
-		if (this.name.charAt(0) == '<')
-			return null;
-		return this.name.substring(0, index);
-	}
-
-	/**
-	 * getSpecified method
-	 * 
-	 * @return boolean
-	 */
-	public boolean getSpecified() {
-		// if there is no underlying document region, 
-		// then this attributes value has not really be specified
-		// yet in the document, and any returned values, such as 
-		// an empty string or a default value are being supplied
-		// as per spec, not per what's in the users document.
-		return this.valueRegion != null;
-	}
-
-	/**
-	 * getStartOffset method
-	 * 
-	 * @return int
-	 */
-	public int getStartOffset() {
-		if (this.ownerElement == null)
-			return 0;
-		int offset = this.ownerElement.getStartOffset();
-		if (this.nameRegion != null) {
-			return (offset + this.nameRegion.getStart());
-		}
-		if (this.equalRegion != null) {
-			return (offset + this.equalRegion.getStart());
-		}
-		if (this.valueRegion != null) {
-			return (offset + this.valueRegion.getStart());
-		}
-		return 0;
-	}
-
-	/**
-	 * getValue method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getValue() {
-		return getValue(getValueSource());
-	}
-
-	/**
-	 * Returns value for the source
-	 */
-	private String getValue(String source) {
-		if (source == null)
-			return new String();
-		if (source.length() == 0)
-			return source;
-		StringBuffer buffer = null;
-		int offset = 0;
-		int length = source.length();
-		int ref = source.indexOf('&');
-		while (ref >= 0) {
-			int end = source.indexOf(';', ref + 1);
-			if (end > ref + 1) {
-				String name = source.substring(ref + 1, end);
-				String value = getCharValue(name);
-				if (value != null) {
-					if (buffer == null)
-						buffer = new StringBuffer(length);
-					if (ref > offset)
-						buffer.append(source.substring(offset, ref));
-					buffer.append(value);
-					offset = end + 1;
-					ref = end;
-				}
-			}
-			ref = source.indexOf('&', ref + 1);
-		}
-		if (buffer == null)
-			return source;
-		if (length > offset)
-			buffer.append(source.substring(offset));
-		return buffer.toString();
-	}
-
-	public ITextRegion getValueRegion() {
-		return this.valueRegion;
-	}
-
-	/**
-	 * ISSUE: what should behavior be if this.value == null? It's an "error"
-	 * to be in that state, but seems to occur relatively easily ... probably
-	 * due to threading bugs ... but this just shows its needs to be spec'd.
-	 * 
-	 */
-	public int getValueRegionStartOffset() {
-		if (this.ownerElement == null)
-			return 0;
-		// assuming the firstStructuredDocumentRegion is the one that contains
-		// the valueRegion -- should make smarter?
-		IStructuredDocumentRegion structuredDocumentRegion = this.ownerElement.getFirstStructuredDocumentRegion();
-		if (structuredDocumentRegion == null)
-			return 0;
-		// ensure we never pass null to getStartOffset.
-		if (this.valueRegion == null) {
-			return 0;
-		}
-		return structuredDocumentRegion.getStartOffset(this.valueRegion);
-	}
-
-	public String getValueRegionText() {
-		if (this.ownerElement == null)
-			return null;
-		// assuming the firstStructuredDocumentRegion is the one that contains
-		// attributes
-		IStructuredDocumentRegion flatNode = this.ownerElement.getFirstStructuredDocumentRegion();
-		if (flatNode == null)
-			return null;
-		if (this.valueRegion == null)
-			return null;
-		return flatNode.getText(this.valueRegion);
-	}
-
-	/**
-	 */
-	public String getValueSource() {
-		if (this.valueSource != null)
-			return this.valueSource;
-		// DW: 4/16/2003 due to change in structuredDocument ... we need a
-		// flatnode to
-		// get at region values. For now I'll assume this is always the first
-		// flatnode .. may need to make smarter later (e.g. to search for
-		// the flatnode that this.valueRegion belongs to.
-		// DW: 4/30/2003 For some reason, this method is getting called a lot
-		// Not sure if its a threading problem, or a fundamental error
-		// elsewhere.
-		// It needs more investigation, but in the use cases I've seen,
-		// doesn't
-		// seem to hurt to simply return null in those cases. I saw this null
-		// case,
-		// when tryint go format an XML file.
-		if (this.ownerElement == null)
-			return null;
-		IStructuredDocumentRegion ownerRegion = this.ownerElement.getFirstStructuredDocumentRegion();
-		if (ownerRegion == null)
-			return null;
-		if (this.valueRegion != null)
-			return StructuredDocumentRegionUtil.getAttrValue(ownerRegion, this.valueRegion);
-		return new String();
-	}
-
-	private String getValueSource(ElementImpl ownerElement) {
-		if (this.valueSource != null)
-			return this.valueSource;
-		// DW: 4/16/2003 due to change in structuredDocument ... we need a
-		// flatnode to
-		// get at region values. For now I'll assume this is always the first
-		// flatnode .. may need to make smarter later (e.g. to search for
-		// the flatnode that this.valueRegion belongs to.
-		if (this.valueRegion != null)
-			return StructuredDocumentRegionUtil.getAttrValue(ownerElement.getStructuredDocumentRegion(), this.valueRegion);
-		return new String();
-	}
-
-	/**
-	 */
-	private String getValueSource(String value) {
-		if (value == null)
-			return null;
-		if (value.length() == 0)
-			return value;
-		StringBuffer buffer = null;
-		int offset = 0;
-		int length = value.length();
-		int amp = value.indexOf('&');
-		while (amp >= 0) {
-			if (buffer == null)
-				buffer = new StringBuffer(length + 4);
-			if (amp > offset)
-				buffer.append(value.substring(offset, amp));
-			buffer.append(IXMLCharEntity.AMP_REF);
-			offset = amp + 1;
-			amp = value.indexOf('&', offset);
-		}
-		if (buffer == null)
-			return value;
-		if (length > offset)
-			buffer.append(value.substring(offset));
-		return buffer.toString();
-	}
-
-	/**
-	 * Check if Attr has JSP in value
-	 */
-	public boolean hasNestedValue() {
-		if (this.valueRegion == null)
-			return false;
-		if (!(this.valueRegion instanceof ITextRegionContainer))
-			return false;
-		ITextRegionList regions = ((ITextRegionContainer) this.valueRegion).getRegions();
-		if (regions == null)
-			return false;
-		Iterator e = regions.iterator();
-		while (e.hasNext()) {
-			ITextRegion region = (ITextRegion) e.next();
-			if (region == null)
-				continue;
-			String regionType = region.getType();
-			if (regionType == DOMRegionContext.XML_TAG_OPEN || isNestedLanguageOpening(regionType))
-				return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Check if Attr has only name but not equal sign nor value
-	 */
-	public boolean hasNameOnly() {
-		return (this.nameRegion != null && this.equalRegion == null && this.valueRegion == null);
-	}
-
-	/**
-	 */
-	protected final boolean hasPrefix() {
-		if (this.name == null)
-			return false;
-		if (this.name.indexOf(':') <= 0)
-			return false;
-		// exclude JSP tag in name
-		if (this.name.charAt(0) == '<')
-			return false;
-		return true;
-	}
-
-	/**
-	 */
-	protected final boolean ignoreCase() {
-		if (this.ownerElement != null) {
-			if (this.ownerElement.ignoreCase()) {
-				return !hasPrefix();
-			}
-		}
-		else {
-			DocumentImpl document = (DocumentImpl) getOwnerDocument();
-			if (document != null && document.ignoreCase()) {
-				// even in case insensitive document, if having prefix, it's
-				// case sensitive
-				return !hasPrefix();
-			}
-		}
-		return false;
-	}
-
-	/**
-	 */
-	public boolean isGlobalAttr() {
-		if (hasPrefix())
-			return false;
-		if (this.ownerElement == null)
-			return false;
-		return this.ownerElement.isGlobalTag();
-	}
-
-	/**
-	 */
-	public final boolean isXMLAttr() {
-		if (this.ownerElement != null) {
-			if (!this.ownerElement.isXMLTag()) {
-				return hasPrefix();
-			}
-		}
-		else {
-			DocumentImpl document = (DocumentImpl) getOwnerDocument();
-			if (document != null && !document.isXMLType()) {
-				// even in non-XML document, if having prefix, it's XML tag
-				return hasPrefix();
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * matchName method
-	 * 
-	 * @return boolean
-	 * @param name
-	 *            java.lang.String
-	 */
-	protected boolean matchName(String name) {
-		if (name == null)
-			return (this.name == null);
-		if (this.name == null)
-			return false;
-		if (this.name.length() != name.length())
-			return false;
-		if (this.name.equals(name))
-			return true;
-		return this.name.equalsIgnoreCase(name) && ignoreCase();
-	}
-
-
-	/**
-	 * notifyValueChanged method
-	 */
-	protected void notifyNameChanged() {
-		if (this.ownerElement == null)
-			return;
-		DocumentImpl document = (DocumentImpl) this.ownerElement.getContainerDocument();
-		if (document == null)
-			return;
-		DOMModelImpl model = (DOMModelImpl) document.getModel();
-		if (model == null)
-			return;
-		model.nameChanged(this);
-	}
-
-	/**
-	 * notifyValueChanged method
-	 */
-	protected void notifyValueChanged() {
-		if (this.ownerElement == null)
-			return;
-		DocumentImpl document = (DocumentImpl) this.ownerElement.getContainerDocument();
-		if (document == null)
-			return;
-		DOMModelImpl model = (DOMModelImpl) document.getModel();
-		if (model == null)
-			return;
-		model.valueChanged(this);
-	}
-
-	/**
-	 * removeRegions method
-	 */
-	void removeRegions() {
-		this.nameRegion = null;
-		this.valueRegion = null;
-		this.equalRegion = null;
-	}
-
-	/**
-	 */
-	void resetRegions() {
-		this.valueSource = getValueSource();
-		removeRegions();
-	}
-
-	/**
-	 */
-	void resetRegions(ElementImpl ownerElement) {
-		this.valueSource = getValueSource(ownerElement);
-		removeRegions();
-	}
-
-	void setEqualRegion(ITextRegion equalRegion) {
-		this.equalRegion = equalRegion;
-	}
-
-	/**
-	 * setName method
-	 * 
-	 * @param name
-	 *            java.lang.String
-	 */
-	protected void setName(String name) {
-		String value = null;
-		int startOffset = 0;
-		if (this.ownerElement != null) {
-			value = getValue();
-			startOffset = this.ownerElement.getStartOffset();
-			this.ownerElement.notify(CHANGE, this, value, null, startOffset);
-		}
-		this.name = name;
-		if (this.ownerElement != null) {
-			this.ownerElement.notify(CHANGE, this, null, value, startOffset);
-		}
-	}
-
-	void setNameRegion(ITextRegion nameRegion) {
-		this.nameRegion = nameRegion;
-	}
-
-	protected void setNamespaceURI(String namespaceURI) {
-		this.namespaceURI = namespaceURI;
-	}
-
-	/**
-	 * setNodeValue method
-	 * 
-	 * @param nodeValue
-	 *            java.lang.String
-	 */
-	public void setNodeValue(String nodeValue) throws DOMException {
-		setValue(nodeValue);
-	}
-
-	/**
-	 * setOwnerElement method
-	 * 
-	 * @param ownerElement
-	 *            org.w3c.dom.Element
-	 */
-	protected void setOwnerElement(Element ownerElement) {
-		this.ownerElement = (ElementImpl) ownerElement;
-	}
-
-	/**
-	 */
-	public void setPrefix(String prefix) throws DOMException {
-		if (this.ownerElement != null && !this.ownerElement.isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-		int prefixLength = (prefix != null ? prefix.length() : 0);
-		String localName = getLocalName();
-		if (prefixLength == 0) {
-			setName(localName);
-			return;
-		}
-		if (localName == null)
-			localName = new String();
-		int localLength = localName.length();
-		StringBuffer buffer = new StringBuffer(prefixLength + 1 + localLength);
-		buffer.append(prefix);
-		buffer.append(':');
-		buffer.append(localName);
-		setName(buffer.toString());
-
-		notifyNameChanged();
-	}
-
-	/**
-	 * setValue method
-	 * 
-	 * @param value
-	 *            java.lang.String
-	 */
-	public void setValue(String value) {
-		// Remember: as we account for "floaters" in
-		// future, remember that some are created
-		// in the natural process of implementing
-		// DOM apis.
-		// this "self notification" of about/changed,
-		// is added for this case, because it known to
-		// be called from properties pages. Should be a
-		// added to all DOM Modifiying APIs eventually.
-		try {
-			getModel().aboutToChangeModel();
-			setValueSource(getValueSource(value));
-		}
-		finally {
-			getModel().changedModel();
-		}
-	}
-
-	void setValueRegion(ITextRegion valueRegion) {
-		this.valueRegion = valueRegion;
-		if (valueRegion != null)
-			this.valueSource = null;
-	}
-
-	public void setValueSource(String source) {
-		if (this.ownerElement != null && !this.ownerElement.isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-		this.valueSource = source;
-
-		notifyValueChanged();
-	}
-
-	/**
-	 * Subclasses must override
-	 * 
-	 * @param regionType
-	 * @return
-	 */
-	protected boolean isNestedLanguageOpening(String regionType) {
-		boolean result = false;
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CDATASectionImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CDATASectionImpl.java
deleted file mode 100644
index 563eeec..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CDATASectionImpl.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
- *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import java.util.Iterator;
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.CDATASection;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Node;
-import org.w3c.dom.UserDataHandler;
-
-
-/**
- * CDATASectionImpl class
- */
-public class CDATASectionImpl extends TextImpl implements CDATASection {
-
-	/**
-	 * CDATASectionImpl constructor
-	 */
-	protected CDATASectionImpl() {
-		super();
-	}
-
-	/**
-	 * CDATASectionImpl constructor
-	 * 
-	 * @param that
-	 *            CDATASectionImpl
-	 */
-	protected CDATASectionImpl(CDATASectionImpl that) {
-		super(that);
-	}
-
-	/**
-	 * cloneNode method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param deep
-	 *            boolean
-	 */
-	public Node cloneNode(boolean deep) {
-		CDATASectionImpl cloned = new CDATASectionImpl(this);
-		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
-		return cloned;
-	}
-
-	/**
-	 * getData method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getData() throws DOMException {
-		// instead of super(TextImpl).getData(), call getCharacterData()
-		String data = getCharacterData();
-		if (data == null) {
-			data = getData(getStructuredDocumentRegion());
-			if (data == null)
-				data = new String();
-		}
-		return data;
-	}
-
-	/**
-	 */
-	private String getData(IStructuredDocumentRegion flatNode) {
-		if (flatNode == null)
-			return null;
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null)
-			return null;
-
-		ITextRegion contentRegion = null;
-		StringBuffer buffer = null;
-		Iterator e = regions.iterator();
-		while (e.hasNext()) {
-			ITextRegion region = (ITextRegion) e.next();
-			String regionType = region.getType();
-			if (regionType == DOMRegionContext.XML_CDATA_OPEN || regionType == DOMRegionContext.XML_CDATA_CLOSE) {
-				continue;
-			}
-			if (contentRegion == null) { // first content
-				contentRegion = region;
-			} else { // multiple contents
-				if (buffer == null) {
-					buffer = new StringBuffer(flatNode.getText(contentRegion));
-				}
-				buffer.append(flatNode.getText(region));
-			}
-		}
-
-		if (buffer != null)
-			return buffer.toString();
-		if (contentRegion != null)
-			return flatNode.getText(contentRegion);
-		return null;
-	}
-
-	/**
-	 * getNodeName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return "#cdata-section";//$NON-NLS-1$
-	}
-
-	/**
-	 * getNodeType method
-	 * 
-	 * @return short
-	 */
-	public short getNodeType() {
-		return CDATA_SECTION_NODE;
-	}
-
-	/**
-	 */
-	public boolean isClosed() {
-		IStructuredDocumentRegion flatNode = getStructuredDocumentRegion();
-		if (flatNode == null)
-			return true; // will be generated
-		String regionType = StructuredDocumentRegionUtil.getLastRegionType(flatNode);
-		return (regionType == DOMRegionContext.XML_CDATA_CLOSE);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CMNodeUtil.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CMNodeUtil.java
deleted file mode 100644
index ae533ab..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CMNodeUtil.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-
-
-/**
- */
-public class CMNodeUtil {
-
-	/**
-	 */
-	public static CMAttributeDeclaration getAttributeDeclaration(Attr attr) {
-		if (attr == null)
-			return null;
-		return ((AttrImpl) attr).getDeclaration();
-	}
-
-	/**
-	 */
-	public static CMElementDeclaration getElementDeclaration(Element element) {
-		if (element == null)
-			return null;
-		return ((ElementImpl) element).getDeclaration();
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CharacterDataImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CharacterDataImpl.java
deleted file mode 100644
index 6bf9c65..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CharacterDataImpl.java
+++ /dev/null
@@ -1,352 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.w3c.dom.CharacterData;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Node;
-
-
-/**
- * CharacterDataImpl class
- */
-public abstract class CharacterDataImpl extends NodeImpl implements CharacterData {
-
-	private String data = null;
-
-	/**
-	 * CharacterDataImpl constructor
-	 */
-	protected CharacterDataImpl() {
-		super();
-	}
-
-	/**
-	 * CharacterDataImpl constructor
-	 * 
-	 * @param that
-	 *            CharacterDataImpl
-	 */
-	protected CharacterDataImpl(CharacterDataImpl that) {
-		super(that);
-
-		if (that != null) {
-			this.data = that.getData();
-		}
-	}
-
-	/**
-	 * appendData method
-	 * 
-	 * @param arg
-	 *            java.lang.String
-	 */
-	public void appendData(String arg) throws DOMException {
-		if (arg == null)
-			return;
-
-		String data = getData();
-		if (data == null)
-			data = arg;
-		else
-			data += arg;
-		setData(data);
-	}
-
-	/**
-	 * deleteData method
-	 * 
-	 * @param offset
-	 *            int
-	 * @param count
-	 *            int
-	 */
-	public void deleteData(int offset, int count) throws DOMException {
-		if (count == 0)
-			return;
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		if (count < 0 || offset < 0) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-
-		String data = getData();
-		if (data == null) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-		int length = data.length();
-		if (offset > length) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-		if (offset == 0) {
-			if (count > length) {
-				throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-			}
-			if (count == length)
-				data = new String();
-			else
-				data = data.substring(count);
-		} else {
-			int end = offset + count;
-			if (end > length) {
-				throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-			}
-			if (end == length)
-				data = data.substring(0, offset);
-			else
-				data = data.substring(0, offset) + data.substring(end);
-		}
-		setData(data);
-	}
-
-	/**
-	 */
-	protected final String getCharacterData() {
-		return this.data;
-	}
-
-	/**
-	 * getData method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getData() throws DOMException {
-		return getCharacterData();
-	}
-
-	/**
-	 * getLength method
-	 * 
-	 * @return int
-	 */
-	public int getLength() {
-		String data = getData();
-		if (data == null)
-			return 0;
-		return data.length();
-	}
-
-	/**
-	 * getNodeValue method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getNodeValue() {
-		return getData();
-	}
-
-	/**
-	 * insertData method
-	 * 
-	 * @param offset
-	 *            int
-	 * @param arg
-	 *            java.lang.String
-	 */
-	public void insertData(int offset, String arg) throws DOMException {
-		if (arg == null)
-			return;
-
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		if (offset < 0) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-
-		String data = getData();
-		if (data == null) {
-			if (offset > 0) {
-				throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-			}
-			data = arg;
-		} else if (offset == 0) {
-			data = arg + data;
-		} else {
-			int length = data.length();
-			if (offset > length) {
-				throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-			}
-			if (offset == length)
-				data += arg;
-			else
-				data = data.substring(0, offset) + arg + data.substring(offset);
-		}
-		setData(data);
-	}
-
-	/**
-	 * isJSPContent method
-	 * 
-	 * @return boolean
-	 */
-	public boolean isJSPContent() {
-		Node parent = getParentNode();
-		if (parent == null || parent.getNodeType() != Node.ELEMENT_NODE)
-			return false;
-		ElementImpl element = (ElementImpl) parent;
-		return element.isJSPContainer();
-	}
-
-	/**
-	 * replaceData method
-	 * 
-	 * @param offset
-	 *            int
-	 * @param count
-	 *            int
-	 * @param arg
-	 *            java.lang.String
-	 */
-	public void replaceData(int offset, int count, String arg) throws DOMException {
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		if (arg == null) {
-			deleteData(offset, count);
-			return;
-		}
-		if (count == 0) {
-			insertData(offset, arg);
-			return;
-		}
-		if (offset < 0 || count < 0) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-
-		String data = getData();
-		if (data == null) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		} else if (offset == 0) {
-			int length = data.length();
-			if (count > length) {
-				throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-			}
-			if (count == length)
-				data = arg;
-			else
-				data = arg + data.substring(count);
-		} else {
-			int length = data.length();
-			int end = offset + count;
-			if (end > length) {
-				throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-			}
-			if (end == length)
-				data = data.substring(0, offset) + arg;
-			else
-				data = data.substring(0, offset) + arg + data.substring(end);
-		}
-		setData(data);
-	}
-
-	/**
-	 */
-	void resetStructuredDocumentRegions() {
-		this.data = getData();
-		setStructuredDocumentRegion(null);
-	}
-
-	/**
-	 * setData method
-	 * 
-	 * @param data
-	 *            java.lang.String
-	 */
-	public void setData(String data) throws DOMException {
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		this.data = data;
-
-		notifyValueChanged();
-	}
-
-	/**
-	 * setNodeValue method
-	 * 
-	 * @param nodeValue
-	 *            java.lang.String
-	 */
-	public void setNodeValue(String nodeValue) throws DOMException {
-		setData(nodeValue);
-	}
-
-	/**
-	 */
-	void setStructuredDocumentRegion(IStructuredDocumentRegion flatNode) {
-		super.setStructuredDocumentRegion(flatNode);
-		if (flatNode != null)
-			this.data = null;
-	}
-
-	/**
-	 * substringData method
-	 * 
-	 * @return java.lang.String
-	 * @param offset
-	 *            int
-	 * @param count
-	 *            int
-	 */
-	public String substringData(int offset, int count) throws DOMException {
-		if (count == 0)
-			return new String();
-		if (offset < 0 || count < 0) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-
-		String data = getData();
-		if (data == null) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-		int length = data.length();
-		if (offset == 0 && count == length)
-			return data;
-		if (offset > length) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-		int end = offset + count;
-		if (end > length) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-		return data.substring(offset, end);
-	}
-
-	/**
-	 * toString method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append(getNodeName());
-		buffer.append('(');
-		buffer.append(getData());
-		buffer.append(')');
-		IStructuredDocumentRegion flatNode = getStructuredDocumentRegion();
-		if (flatNode != null) {
-			buffer.append('@');
-			buffer.append(flatNode.toString());
-		}
-		return buffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CommentImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CommentImpl.java
deleted file mode 100644
index f834768..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CommentImpl.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
- *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import java.util.Iterator;
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.Comment;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Node;
-import org.w3c.dom.UserDataHandler;
-
-
-/**
- * CommentImpl class
- */
-public class CommentImpl extends CharacterDataImpl implements Comment {
-
-	private boolean isJSPTag = false;
-
-	/**
-	 * CommentImpl constructor
-	 */
-	protected CommentImpl() {
-		super();
-	}
-
-	/**
-	 * CommentImpl constructor
-	 * 
-	 * @param that
-	 *            CommentImpl
-	 */
-	protected CommentImpl(CommentImpl that) {
-		super(that);
-
-		if (that != null) {
-			this.isJSPTag = that.isJSPTag;
-		}
-	}
-
-	/**
-	 * cloneNode method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param deep
-	 *            boolean
-	 */
-	public Node cloneNode(boolean deep) {
-		CommentImpl cloned = new CommentImpl(this);
-		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
-		return cloned;
-	}
-
-	/**
-	 * getData method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getData() throws DOMException {
-		String data = getCharacterData();
-		if (data == null) {
-			data = getData(getStructuredDocumentRegion());
-			if (data == null)
-				data = new String();
-		}
-		return data;
-	}
-
-	/**
-	 */
-	private String getData(IStructuredDocumentRegion flatNode) {
-		if (flatNode == null)
-			return null;
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null)
-			return null;
-
-		ITextRegion contentRegion = null;
-		StringBuffer buffer = null;
-		Iterator e = regions.iterator();
-		while (e.hasNext()) {
-			ITextRegion region = (ITextRegion) e.next();
-			String regionType = region.getType();
-			if (regionType == DOMRegionContext.XML_COMMENT_OPEN || regionType == DOMRegionContext.XML_COMMENT_CLOSE || isNestedCommentOpenClose(regionType)) {
-				continue;
-			}
-			if (contentRegion == null) { // first content
-				contentRegion = region;
-			}
-			else { // multiple contents
-				if (buffer == null) {
-					buffer = new StringBuffer(flatNode.getText(contentRegion));
-				}
-				buffer.append(flatNode.getText(region));
-			}
-		}
-
-		if (buffer != null)
-			return buffer.toString();
-		if (contentRegion != null)
-			return flatNode.getText(contentRegion);
-		return null;
-	}
-
-	/**
-	 * getNodeName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return "#comment";//$NON-NLS-1$
-	}
-
-	/**
-	 * getNodeType method
-	 * 
-	 * @return short
-	 */
-	public short getNodeType() {
-		return COMMENT_NODE;
-	}
-
-	/**
-	 */
-	public boolean isClosed() {
-		IStructuredDocumentRegion flatNode = getStructuredDocumentRegion();
-		if (flatNode == null)
-			return true; // will be generated
-		String regionType = StructuredDocumentRegionUtil.getLastRegionType(flatNode);
-		return (regionType == DOMRegionContext.XML_COMMENT_CLOSE || isNestedCommentClose(regionType));
-	}
-
-	/**
-	 * Subclasses must override
-	 * @param regionType
-	 * @return
-	 */
-	protected boolean isNestedCommentClose(String regionType) {
-		boolean result = false;
-		return result; 
-	}
-	/**
-	 * Subclasses must override
-	 * @param regionType
-	 * @return
-	 */
-	protected boolean isNestedCommentOpenClose(String regionType) {
-		boolean result = false;
-		return result; 
-	}
-																											
-	public boolean isJSPTag() {
-		return this.isJSPTag;
-	}
-
-	/**
-	 * setJSPTag method
-	 * 
-	 * @param isJSPTag
-	 *            boolean
-	 */
-	public void setJSPTag(boolean isJSPTag) {
-		if (isJSPTag == this.isJSPTag)
-			return;
-
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		DocumentImpl document = (DocumentImpl) getOwnerDocument();
-		if (isJSPTag) {
-			if (document == null || !document.isJSPType())
-				return;
-		}
-
-		this.isJSPTag = isJSPTag;
-
-		if (getContainerDocument() != null) {
-			// already in the tree, update IStructuredDocument
-			setData(getData()); // calls notifyValueChanged();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DOMModelImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DOMModelImpl.java
deleted file mode 100644
index d2149b9..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DOMModelImpl.java
+++ /dev/null
@@ -1,915 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-import org.eclipse.wst.sse.core.internal.model.AbstractStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.events.IStructuredDocumentListener;
-import org.eclipse.wst.sse.core.internal.provisional.events.NewDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.NoChangeEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionsReplacedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentRegionsReplacedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegionList;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.ISourceGenerator;
-import org.w3c.dom.Attr;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.DOMImplementation;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-/**
- * XMLModelImpl class
- */
-public class DOMModelImpl extends AbstractStructuredModel implements IStructuredDocumentListener, IDOMModel, DOMImplementation {
-	private static String TRACE_PARSER_MANAGEMENT_EXCEPTION = "parserManagement"; //$NON-NLS-1$
-	private Object active = null;
-	private DocumentImpl document = null;
-	private ISourceGenerator generator = null;
-	private XMLModelNotifier notifier = null;
-	private XMLModelParser parser = null;
-	private boolean refresh = false;
-	private XMLModelUpdater updater = null;
-
-	/**
-	 * XMLModelImpl constructor
-	 */
-	public DOMModelImpl() {
-		super();
-		this.document = (DocumentImpl) internalCreateDocument();
-	}
-
-	/**
-	 * This API allows clients to declare that they are about to make a
-	 * "large" change to the model. This change might be in terms of content
-	 * or it might be in terms of the model id or base location.
-	 * 
-	 * Note that in the case of embedded calls, notification to listners is
-	 * sent only once.
-	 * 
-	 * Note that the client who is making these changes has the responsibility
-	 * to restore the models state once finished with the changes. See
-	 * getMemento and restoreState.
-	 * 
-	 * The method isModelStateChanging can be used by a client to determine if
-	 * the model is already in a change sequence.
-	 */
-	public void aboutToChangeModel() {
-		super.aboutToChangeModel();
-		// technically, no need to call beginChanging so often,
-		// since aboutToChangeModel can be nested.
-		// but will leave as is for this release.
-		// see modelChanged, and be sure stays coordinated there.
-		getModelNotifier().beginChanging();
-	}
-
-	public void aboutToReinitializeModel() {
-		XMLModelNotifier notifier = getModelNotifier();
-		notifier.cancelPending();
-		super.aboutToReinitializeModel();
-	}
-
-	/**
-	 * attrReplaced method
-	 * 
-	 * @param element
-	 *            org.w3c.dom.Element
-	 * @param newAttr
-	 *            org.w3c.dom.Attr
-	 * @param oldAttr
-	 *            org.w3c.dom.Attr
-	 */
-	protected void attrReplaced(Element element, Attr newAttr, Attr oldAttr) {
-		if (element == null)
-			return;
-		if (getActiveParser() == null) {
-			XMLModelUpdater updater = getModelUpdater();
-			setActive(updater);
-			updater.initialize();
-			updater.replaceAttr(element, newAttr, oldAttr);
-			setActive(null);
-		}
-		getModelNotifier().attrReplaced(element, newAttr, oldAttr);
-	}
-
-	/**
-	 * This API allows a client controlled way of notifying all ModelEvent
-	 * listners that the model has been changed. This method is a matched pair
-	 * to aboutToChangeModel, and must be called after aboutToChangeModel ...
-	 * or some listeners could be left waiting indefinitely for the changed
-	 * event. So, its suggested that changedModel always be in a finally
-	 * clause. Likewise, a client should never call changedModel without
-	 * calling aboutToChangeModel first.
-	 * 
-	 * In the case of embedded calls, the notification is just sent once.
-	 * 
-	 */
-	public void changedModel() {
-		// NOTE: the order of 'changedModel' and 'endChanging' is significant.
-		// By calling changedModel first, this basically decrements the
-		// "isChanging" counter
-		// in super class and when zero all listeners to model state events
-		// will be notified
-		// that the model has been changed. 'endChanging' will notify all
-		// deferred adapters.
-		// So, the significance of order is that adapters (and methods they
-		// call)
-		// can count on the state of model "isChanging" to be accurate.
-		// But, remember, that this means the "modelChanged" event can be
-		// received before all
-		// adapters have finished their processing.
-		// NOTE NOTE: The above note is obsolete in fact (though still states
-		// issue correctly).
-		// Due to popular demand, the order of these calls were reversed and
-		// behavior
-		// changed on 07/22/2004.
-		// 
-		// see also
-		// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=4302
-		// for motivation for this 'on verge of' call.
-		// this could be improved in future if notifier also used counting
-		// flag to avoid nested calls. If/when changed be sure to check if
-		// aboutToChangeModel needs any changes too.
-		if (isModelChangeStateOnVergeOfEnding()) {
-			// end lock before noticiation loop, since directly or indirectly
-			// we may be "called from foriegn code" during notification.
-			endLock();
-			// we null out here to avoid spurious"warning" message while debug
-			// tracing is enabled
-			fLockObject = null;
-			// the notifier is what controls adaper notification, which
-			// should be sent out before the 'modelChanged' event.
-			getModelNotifier().endChanging();
-		}
-		// changedModel handles 'nesting', so only one event sent out
-		// when mulitple calls to 'aboutToChange/Changed'.
-		super.changedModel();
-		handleRefresh();
-	}
-
-	/**
-	 * childReplaced method
-	 * 
-	 * @param parentNode
-	 *            org.w3c.dom.Node
-	 * @param newChild
-	 *            org.w3c.dom.Node
-	 * @param oldChild
-	 *            org.w3c.dom.Node
-	 */
-	protected void childReplaced(Node parentNode, Node newChild, Node oldChild) {
-		if (parentNode == null)
-			return;
-		if (getActiveParser() == null) {
-			XMLModelUpdater updater = getModelUpdater();
-			setActive(updater);
-			updater.initialize();
-			updater.replaceChild(parentNode, newChild, oldChild);
-			setActive(null);
-		}
-		getModelNotifier().childReplaced(parentNode, newChild, oldChild);
-	}
-
-	/**
-	 * Creates an XML <code>Document</code> object of the specified type
-	 * with its document element. HTML-only DOM implementations do not need to
-	 * implement this method.
-	 * 
-	 * @param namespaceURIThe
-	 *            namespace URI of the document element to create.
-	 * @param qualifiedNameThe
-	 *            qualified name of the document element to be created.
-	 * @param doctypeThe
-	 *            type of document to be created or <code>null</code>. When
-	 *            <code>doctype</code> is not <code>null</code>, its
-	 *            <code>Node.ownerDocument</code> attribute is set to the
-	 *            document being created.
-	 * @return A new <code>Document</code> object.
-	 * @exception DOMException
-	 *                INVALID_CHARACTER_ERR: Raised if the specified qualified
-	 *                name contains an illegal character. <br>
-	 *                NAMESPACE_ERR: Raised if the <code>qualifiedName</code>
-	 *                is malformed, if the <code>qualifiedName</code> has a
-	 *                prefix and the <code>namespaceURI</code> is
-	 *                <code>null</code>, or if the
-	 *                <code>qualifiedName</code> has a prefix that is "xml"
-	 *                and the <code>namespaceURI</code> is different from "
-	 *                http://www.w3.org/XML/1998/namespace" .<br>
-	 *                WRONG_DOCUMENT_ERR: Raised if <code>doctype</code> has
-	 *                already been used with a different document or was
-	 *                created from a different implementation.
-	 * @see DOM Level 2
-	 */
-	public Document createDocument(String namespaceURI, String qualifiedName, DocumentType doctype) throws DOMException {
-		return null;
-	}
-
-	/**
-	 * Creates an empty <code>DocumentType</code> node. Entity declarations
-	 * and notations are not made available. Entity reference expansions and
-	 * default attribute additions do not occur. It is expected that a future
-	 * version of the DOM will provide a way for populating a
-	 * <code>DocumentType</code>.<br>
-	 * HTML-only DOM implementations do not need to implement this method.
-	 * 
-	 * @param qualifiedNameThe
-	 *            qualified name of the document type to be created.
-	 * @param publicIdThe
-	 *            external subset public identifier.
-	 * @param systemIdThe
-	 *            external subset system identifier.
-	 * @return A new <code>DocumentType</code> node with
-	 *         <code>Node.ownerDocument</code> set to <code>null</code>.
-	 * @exception DOMException
-	 *                INVALID_CHARACTER_ERR: Raised if the specified qualified
-	 *                name contains an illegal character. <br>
-	 *                NAMESPACE_ERR: Raised if the <code>qualifiedName</code>
-	 *                is malformed.
-	 * @see DOM Level 2
-	 */
-	public DocumentType createDocumentType(String qualifiedName, String publicId, String systemId) throws DOMException {
-		DocumentTypeImpl documentType = new DocumentTypeImpl();
-		documentType.setName(qualifiedName);
-		documentType.setPublicId(publicId);
-		documentType.setSystemId(systemId);
-		return documentType;
-	}
-
-	/**
-	 */
-	protected void documentTypeChanged() {
-		if (this.refresh)
-			return;
-		// unlike 'resfresh', 'reinitialize' finishes loop
-		// and flushes remaining notification que before
-		// actually reinitializing.
-		// ISSUE: should reinit be used instead of handlerefresh?
-		// this.setReinitializeNeeded(true);
-		if (this.active != null || getModelNotifier().isChanging())
-			return; // defer
-		handleRefresh();
-	}
-
-	protected void editableChanged(Node node) {
-		if (node != null) {
-			getModelNotifier().editableChanged(node);
-		}
-	}
-
-	/**
-	 */
-	protected void endTagChanged(Element element) {
-		if (element == null)
-			return;
-		if (getActiveParser() == null) {
-			XMLModelUpdater updater = getModelUpdater();
-			setActive(updater);
-			updater.initialize();
-			updater.changeEndTag(element);
-			setActive(null);
-		}
-		getModelNotifier().endTagChanged(element);
-	}
-
-	/**
-	 */
-	private XMLModelParser getActiveParser() {
-		if (this.parser == null)
-			return null;
-		if (this.parser != this.active)
-			return null;
-		return this.parser;
-	}
-
-	/**
-	 */
-	private XMLModelUpdater getActiveUpdater() {
-		if (this.updater == null)
-			return null;
-		if (this.updater != this.active)
-			return null;
-		return this.updater;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class adapter) {
-		if (Document.class.equals(adapter))
-			return getDocument();
-		return super.getAdapter(adapter);
-	}
-
-	/**
-	 * getDocument method
-	 * 
-	 * @return XMLDocument
-	 */
-	public IDOMDocument getDocument() {
-		return this.document;
-	}
-
-	public ISourceGenerator getGenerator() {
-		if (this.generator == null) {
-			this.generator = XMLGeneratorImpl.getInstance();
-		}
-		return this.generator;
-	}
-
-	/**
-	 * getNode method
-	 * 
-	 * @param offset
-	 *            int
-	 */
-	public IndexedRegion getIndexedRegion(int offset) {
-		if (this.document == null)
-			return null;
-		// search in document children
-		IDOMNode parent = null;
-		int length = this.document.getEndOffset();
-		if (offset * 2 < length) {
-			// search from the first
-			IDOMNode child = (IDOMNode) this.document.getFirstChild();
-			while (child != null) {
-				if (child.getEndOffset() <= offset) {
-					child = (IDOMNode) child.getNextSibling();
-					continue;
-				}
-				if (child.getStartOffset() > offset) {
-					break;
-				}
-				IStructuredDocumentRegion startStructuredDocumentRegion = child.getStartStructuredDocumentRegion();
-				if (startStructuredDocumentRegion != null) {
-					if (startStructuredDocumentRegion.getEnd() > offset)
-						return child;
-				}
-				IStructuredDocumentRegion endStructuredDocumentRegion = child.getEndStructuredDocumentRegion();
-				if (endStructuredDocumentRegion != null) {
-					if (endStructuredDocumentRegion.getStart() <= offset)
-						return child;
-				}
-				// dig more
-				parent = child;
-				child = (IDOMNode) parent.getFirstChild();
-			}
-		}
-		else {
-			// search from the last
-			IDOMNode child = (IDOMNode) this.document.getLastChild();
-			while (child != null) {
-				if (child.getStartOffset() > offset) {
-					child = (IDOMNode) child.getPreviousSibling();
-					continue;
-				}
-				if (child.getEndOffset() <= offset) {
-					break;
-				}
-				IStructuredDocumentRegion startStructuredDocumentRegion = child.getStartStructuredDocumentRegion();
-				if (startStructuredDocumentRegion != null) {
-					if (startStructuredDocumentRegion.getEnd() > offset)
-						return child;
-				}
-				IStructuredDocumentRegion endStructuredDocumentRegion = child.getEndStructuredDocumentRegion();
-				if (endStructuredDocumentRegion != null) {
-					if (endStructuredDocumentRegion.getStart() <= offset)
-						return child;
-				}
-				// dig more
-				parent = child;
-				child = (IDOMNode) parent.getLastChild();
-			}
-		}
-		return parent;
-	}
-
-	/**
-	 */
-	public XMLModelNotifier getModelNotifier() {
-		if (this.notifier == null) {
-			this.notifier = new XMLModelNotifierImpl();
-		}
-		return this.notifier;
-	}
-
-	/**
-	 */
-	private XMLModelParser getModelParser() {
-		if (this.parser == null) {
-			this.parser = createModelParser();
-		}
-		return this.parser;
-	}
-
-	protected XMLModelParser createModelParser() {
-		return new XMLModelParser(this);
-	}
-
-	/**
-	 */
-	private XMLModelUpdater getModelUpdater() {
-		if (this.updater == null) {
-			this.updater = createModelUpdater();
-		}
-		return this.updater;
-	}
-
-	protected XMLModelUpdater createModelUpdater() {
-		return new XMLModelUpdater(this);
-	}
-
-	/**
-	 */
-	private void handleRefresh() {
-		if (!this.refresh)
-			return;
-		XMLModelNotifier notifier = getModelNotifier();
-		boolean isChanging = notifier.isChanging();
-		if (!isChanging)
-			notifier.beginChanging(true);
-		XMLModelParser parser = getModelParser();
-		setActive(parser);
-		this.document.removeChildNodes();
-		try {
-			parser.replaceStructuredDocumentRegions(getStructuredDocument().getRegionList(), null);
-		}
-		catch (Exception ex) {
-			Logger.logException(ex);
-		}
-		finally {
-			setActive(null);
-			if (!isChanging)
-				notifier.endChanging();
-			this.refresh = false;
-		}
-	}
-
-	/**
-	 * Test if the DOM implementation implements a specific feature.
-	 * 
-	 * @param featureThe
-	 *            name of the feature to test (case-insensitive). The values
-	 *            used by DOM features are defined throughout the DOM Level 2
-	 *            specifications and listed in the section. The name must be
-	 *            an XML name. To avoid possible conflicts, as a convention,
-	 *            names referring to features defined outside the DOM
-	 *            specification should be made unique by reversing the name of
-	 *            the Internet domain name of the person (or the organization
-	 *            that the person belongs to) who defines the feature,
-	 *            component by component, and using this as a prefix. For
-	 *            instance, the W3C SVG Working Group defines the feature
-	 *            "org.w3c.dom.svg".
-	 * @param versionThis
-	 *            is the version number of the feature to test. In Level 2,
-	 *            the string can be either "2.0" or "1.0". If the version is
-	 *            not specified, supporting any version of the feature causes
-	 *            the method to return <code>true</code>.
-	 * @return <code>true</code> if the feature is implemented in the
-	 *         specified version, <code>false</code> otherwise.
-	 */
-	public boolean hasFeature(String feature, String version) {
-		if (feature == null)
-			return false;
-		if (version != null) {
-			if (!version.equals("1.0") && !version.equals("2.0")) { //$NON-NLS-2$//$NON-NLS-1$
-				return false;
-			}
-		}
-		if (feature.equalsIgnoreCase("Core")) //$NON-NLS-1$
-			return true; //$NON-NLS-1$
-		if (feature.equalsIgnoreCase("XML")) //$NON-NLS-1$
-			return true; //$NON-NLS-1$
-		return false;
-	}
-
-	/**
-	 * createDocument method
-	 * 
-	 * @return org.w3c.dom.Document
-	 */
-	protected Document internalCreateDocument() {
-		DocumentImpl document = new DocumentImpl();
-		document.setModel(this);
-		return document;
-	}
-
-	boolean isReparsing() {
-		return (active != null);
-	}
-
-	/**
-	 * nameChanged method
-	 * 
-	 * @param node
-	 *            org.w3c.dom.Node
-	 */
-	protected void nameChanged(Node node) {
-		if (node == null)
-			return;
-		if (getActiveParser() == null) {
-			XMLModelUpdater updater = getModelUpdater();
-			setActive(updater);
-			updater.initialize();
-			updater.changeName(node);
-			setActive(null);
-		}
-		// notification is already sent
-	}
-
-	/**
-	 * newModel method
-	 * 
-	 */
-	public void newModel(NewDocumentEvent structuredDocumentEvent) {
-		if (structuredDocumentEvent == null)
-			return;
-		IStructuredDocument structuredDocument = structuredDocumentEvent.getStructuredDocument();
-		if (structuredDocument == null)
-			return;
-		// this should not happen, but for the case
-		if (fStructuredDocument != null && fStructuredDocument != structuredDocument)
-			setStructuredDocument(structuredDocument);
-
-		internalSetNewDocument(structuredDocument);
-	}
-
-	private void internalSetNewDocument(IStructuredDocument structuredDocument) {
-		if (structuredDocument == null)
-			return;
-		IStructuredDocumentRegionList flatNodes = structuredDocument.getRegionList();
-		if ((flatNodes == null) || (flatNodes.getLength() == 0)) {
-			return;
-		}
-		if (this.document == null)
-			return; // being constructed
-		XMLModelUpdater updater = getActiveUpdater();
-		if (updater != null) { // being updated
-			try {
-				updater.replaceStructuredDocumentRegions(flatNodes, null);
-			}
-			catch (Exception ex) {
-				Logger.logException(ex);
-				this.refresh = true;
-				handleRefresh();
-			}
-			finally {
-				setActive(null);
-			}
-			// // for new model, we might need to
-			// // re-init, e.g. if someone calls setText
-			// // on an existing model
-			// checkForReinit();
-			return;
-		}
-		XMLModelNotifier notifier = getModelNotifier();
-		boolean isChanging = notifier.isChanging();
-		// call even if changing to notify doing new model
-		getModelNotifier().beginChanging(true);
-		XMLModelParser parser = getModelParser();
-		setActive(parser);
-		this.document.removeChildNodes();
-		try {
-			parser.replaceStructuredDocumentRegions(flatNodes, null);
-		}
-		catch (Exception ex) {
-			Logger.logException(ex);
-			// meaningless to refresh, because the result might be the same
-		}
-		finally {
-			setActive(null);
-			if (!isChanging) {
-				getModelNotifier().endChanging();
-			}
-			// ignore refresh
-			this.refresh = false;
-		}
-	}
-
-	/**
-	 */
-	public void noChange(NoChangeEvent event) {
-		XMLModelUpdater updater = getActiveUpdater();
-		if (updater != null) { // being updated
-			// cleanup updater staffs
-			try {
-				updater.replaceStructuredDocumentRegions(null, null);
-			}
-			catch (Exception ex) {
-				Logger.logException(ex);
-				this.refresh = true;
-				handleRefresh();
-			}
-			finally {
-				setActive(null);
-			}
-			// I guess no chanage means the model could not need re-init
-			// checkForReinit();
-			return;
-		}
-	}
-
-	/**
-	 * nodesReplaced method
-	 * 
-	 */
-	public void nodesReplaced(StructuredDocumentRegionsReplacedEvent event) {
-		if (event == null)
-			return;
-		IStructuredDocumentRegionList oldStructuredDocumentRegions = event.getOldStructuredDocumentRegions();
-		IStructuredDocumentRegionList newStructuredDocumentRegions = event.getNewStructuredDocumentRegions();
-		XMLModelUpdater updater = getActiveUpdater();
-		if (updater != null) { // being updated
-			try {
-				updater.replaceStructuredDocumentRegions(newStructuredDocumentRegions, oldStructuredDocumentRegions);
-			}
-			catch (Exception ex) {
-				if (ex.getClass().equals(StructuredDocumentRegionManagementException.class)) {
-					Logger.traceException(TRACE_PARSER_MANAGEMENT_EXCEPTION, ex);
-				}
-				else {
-					Logger.logException(ex);
-				}
-				this.refresh = true;
-				handleRefresh();
-			}
-			finally {
-				setActive(null);
-			}
-			// checkForReinit();
-			return;
-		}
-		XMLModelNotifier notifier = getModelNotifier();
-		boolean isChanging = notifier.isChanging();
-		if (!isChanging)
-			notifier.beginChanging();
-		XMLModelParser parser = getModelParser();
-		setActive(parser);
-		try {
-			parser.replaceStructuredDocumentRegions(newStructuredDocumentRegions, oldStructuredDocumentRegions);
-		}
-		catch (Exception ex) {
-			Logger.logException(ex);
-			this.refresh = true;
-			handleRefresh();
-		}
-		finally {
-			setActive(null);
-			if (!isChanging) {
-				notifier.endChanging();
-				handleRefresh();
-			}
-		}
-
-	}
-
-	/**
-	 * regionChanged method
-	 * 
-	 * @param structuredDocumentEvent
-	 */
-	public void regionChanged(RegionChangedEvent event) {
-		if (event == null)
-			return;
-		IStructuredDocumentRegion flatNode = event.getStructuredDocumentRegion();
-		if (flatNode == null)
-			return;
-		ITextRegion region = event.getRegion();
-		if (region == null)
-			return;
-		XMLModelUpdater updater = getActiveUpdater();
-		if (updater != null) { // being updated
-			try {
-				updater.changeRegion(flatNode, region);
-			}
-			catch (Exception ex) {
-				Logger.logException(ex);
-				this.refresh = true;
-				handleRefresh();
-			}
-			finally {
-				setActive(null);
-			}
-			// checkForReinit();
-			return;
-		}
-		XMLModelNotifier notifier = getModelNotifier();
-		boolean isChanging = notifier.isChanging();
-		if (!isChanging)
-			notifier.beginChanging();
-		XMLModelParser parser = getModelParser();
-		setActive(parser);
-		try {
-			parser.changeRegion(flatNode, region);
-		}
-		catch (Exception ex) {
-			Logger.logException(ex);
-			this.refresh = true;
-			handleRefresh();
-		}
-		finally {
-			setActive(null);
-			if (!isChanging) {
-				notifier.endChanging();
-				handleRefresh();
-			}
-		}
-		// checkForReinit();
-	}
-
-	/**
-	 * regionsReplaced method
-	 * 
-	 * @param event
-	 */
-	public void regionsReplaced(RegionsReplacedEvent event) {
-		if (event == null)
-			return;
-		IStructuredDocumentRegion flatNode = event.getStructuredDocumentRegion();
-		if (flatNode == null)
-			return;
-		ITextRegionList oldRegions = event.getOldRegions();
-		ITextRegionList newRegions = event.getNewRegions();
-		if (oldRegions == null && newRegions == null)
-			return;
-		XMLModelUpdater updater = getActiveUpdater();
-		if (updater != null) { // being updated
-			try {
-				updater.replaceRegions(flatNode, newRegions, oldRegions);
-			}
-			catch (Exception ex) {
-				Logger.logException(ex);
-				this.refresh = true;
-				handleRefresh();
-			}
-			finally {
-				setActive(null);
-			}
-			// checkForReinit();
-			return;
-		}
-		XMLModelNotifier notifier = getModelNotifier();
-		boolean isChanging = notifier.isChanging();
-		if (!isChanging)
-			notifier.beginChanging();
-		XMLModelParser parser = getModelParser();
-		setActive(parser);
-		try {
-			parser.replaceRegions(flatNode, newRegions, oldRegions);
-		}
-		catch (Exception ex) {
-			Logger.logException(ex);
-			this.refresh = true;
-			handleRefresh();
-		}
-		finally {
-			setActive(null);
-			if (!isChanging) {
-				notifier.endChanging();
-				handleRefresh();
-			}
-		}
-		// checkForReinit();
-	}
-
-	/**
-	 */
-	public void releaseFromEdit() {
-		if (!isShared()) {
-			// this.document.releaseStyleSheets();
-			// this.document.releaseDocumentType();
-		}
-		super.releaseFromEdit();
-	}
-
-	/**
-	 */
-	public void releaseFromRead() {
-		if (!isShared()) {
-			// this.document.releaseStyleSheets();
-			// this.document.releaseDocumentType();
-		}
-		super.releaseFromRead();
-	}
-
-	/**
-	 */
-	private void setActive(Object active) {
-		this.active = active;
-		// side effect
-		// when ever becomes active, besure tagNameCache is cleared
-		// (and not used)
-		if (active == null) {
-			document.activateTagNameCache(true);
-		}
-		else {
-			document.activateTagNameCache(false);
-		}
-
-	}
-
-	/**
-	 */
-	public void setGenerator(ISourceGenerator generator) {
-		this.generator = generator;
-	}
-
-	/**
-	 */
-	public void setModelNotifier(XMLModelNotifier notifier) {
-		this.notifier = notifier;
-	}
-
-	/**
-	 */
-	public void setModelParser(XMLModelParser parser) {
-		this.parser = parser;
-	}
-
-	/**
-	 */
-	public void setModelUpdater(XMLModelUpdater updater) {
-		this.updater = updater;
-	}
-
-	/**
-	 * setStructuredDocument method
-	 * 
-	 * @param structuredDocument
-	 */
-	public void setStructuredDocument(IStructuredDocument structuredDocument) {
-		IStructuredDocument oldStructuredDocument = super.getStructuredDocument();
-		if (structuredDocument == oldStructuredDocument)
-			return; // nothing to do
-		if (oldStructuredDocument != null)
-			oldStructuredDocument.removeDocumentChangingListener(this);
-		super.setStructuredDocument(structuredDocument);
-		if (structuredDocument != null) {
-			internalSetNewDocument(structuredDocument);
-			structuredDocument.addDocumentChangingListener(this);
-		}
-	}
-
-	/**
-	 */
-	protected void startTagChanged(Element element) {
-		if (element == null)
-			return;
-		if (getActiveParser() == null) {
-			XMLModelUpdater updater = getModelUpdater();
-			setActive(updater);
-			updater.initialize();
-			updater.changeStartTag(element);
-			setActive(null);
-		}
-		getModelNotifier().startTagChanged(element);
-	}
-
-	/**
-	 * valueChanged method
-	 * 
-	 * @param node
-	 *            org.w3c.dom.Node
-	 */
-	protected void valueChanged(Node node) {
-		if (node == null)
-			return;
-		if (getActiveParser() == null) {
-			XMLModelUpdater updater = getModelUpdater();
-			setActive(updater);
-			updater.initialize();
-			updater.changeValue(node);
-			setActive(null);
-		}
-		getModelNotifier().valueChanged(node);
-	}
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation of DOM 3.
-	 */
-	public Object getFeature(String feature, String version) {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version."); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentFragmentImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentFragmentImpl.java
deleted file mode 100644
index cde882c..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentFragmentImpl.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
- *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.w3c.dom.DocumentFragment;
-import org.w3c.dom.Node;
-import org.w3c.dom.UserDataHandler;
-
-
-/**
- * DocumentFragmentImpl class
- */
-public class DocumentFragmentImpl extends NodeContainer implements DocumentFragment {
-
-	/**
-	 * DocumentFragmentImpl constructor
-	 */
-	protected DocumentFragmentImpl() {
-		super();
-	}
-
-	/**
-	 * DocumentFragmentImpl constructor
-	 * 
-	 * @param that
-	 *            DocumentFragmentImpl
-	 */
-	protected DocumentFragmentImpl(DocumentFragmentImpl that) {
-		super(that);
-	}
-
-	/**
-	 * cloneNode method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param deep
-	 *            boolean
-	 */
-	public Node cloneNode(boolean deep) {
-		DocumentFragmentImpl cloned = new DocumentFragmentImpl(this);
-		if (deep)
-			cloneChildNodes(cloned, deep);
-		
-		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
-		return cloned;
-	}
-
-	/**
-	 * getNodeName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return "#document-fragment";//$NON-NLS-1$
-	}
-
-	/**
-	 * getNodeType method
-	 * 
-	 * @return short
-	 */
-	public short getNodeType() {
-		return DOCUMENT_FRAGMENT_NODE;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentImpl.java
deleted file mode 100644
index 3c862d2..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentImpl.java
+++ /dev/null
@@ -1,1179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
- *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-// for org.apache.xerces 3.2.1
-// import org.apache.xerces.utils.XMLCharacterProperties;
-// DMW modified for XML4J 4.0.1
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.xerces.dom.TreeWalkerImpl;
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.IModelHandler;
-import org.eclipse.wst.xml.core.internal.commentelement.impl.CommentElementRegistry;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMEntityDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.IXMLCharEntity;
-import org.eclipse.wst.xml.core.internal.provisional.NameValidator;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.Attr;
-import org.w3c.dom.CDATASection;
-import org.w3c.dom.Comment;
-import org.w3c.dom.DOMConfiguration;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.DOMImplementation;
-import org.w3c.dom.DocumentFragment;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.Entity;
-import org.w3c.dom.EntityReference;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.Notation;
-import org.w3c.dom.ProcessingInstruction;
-import org.w3c.dom.Text;
-import org.w3c.dom.UserDataHandler;
-import org.w3c.dom.ranges.DocumentRange;
-import org.w3c.dom.ranges.Range;
-import org.w3c.dom.traversal.DocumentTraversal;
-import org.w3c.dom.traversal.NodeFilter;
-import org.w3c.dom.traversal.NodeIterator;
-import org.w3c.dom.traversal.TreeWalker;
-
-
-/**
- * DocumentImpl class
- */
-public class DocumentImpl extends NodeContainer implements IDOMDocument, DocumentRange, DocumentTraversal {
-
-	private static int maxDocTypeSearch = 500;
-	private static int noMaxSearch = -1;
-	/**
-	 * Internal-use only class. This class was added to better able to handle
-	 * repetetive request for getElementsByTagName. The cache is cleared when
-	 * ever the document changes at all, so still not real efficient,
-	 */
-	class TagNameCache {
-
-		private boolean active = true;
-
-		private Map cache;
-
-		public TagNameCache() {
-			super();
-			cache = new HashMap();
-		}
-
-		/**
-		 * @param b
-		 */
-		public void activate(boolean b) {
-			active = b;
-			if (!b)
-				clear();
-		}
-
-		public void addItem(String tagname, NodeListImpl nodelist) {
-			if (tagname == null || nodelist == null)
-				return;
-			cache.put(tagname, nodelist);
-		}
-
-		public void clear() {
-			cache.clear();
-		}
-
-		public NodeListImpl getItem(String tagName) {
-			NodeListImpl result = null;
-			if (active) {
-				result = (NodeListImpl) cache.get(tagName);
-				// if (result != null) {
-				// System.out.println("getElementsByTagname from cache: " +
-				// tagName);
-				// }
-			}
-			return result;
-		}
-
-	}
-
-	// this is a constant just to give compile-time control over
-	// whether or not to use the cache. If, in future, its found that
-	// there are no (or few) "duplicate requests" ... then this cache
-	// is not needed.
-	private static final boolean usetagnamecache = true;
-
-	// private DocumentTypeAdapter documentTypeAdapter = null;
-
-	private DOMModelImpl model = null;
-	private TagNameCache tagNameCache;
-
-	/**
-	 * DocumentImpl constructor
-	 */
-	protected DocumentImpl() {
-		super();
-		if (usetagnamecache) {
-			tagNameCache = new TagNameCache();
-		}
-	}
-
-	/**
-	 * DocumentImpl constructor
-	 * 
-	 * @param that
-	 *            DocumentImpl
-	 */
-	protected DocumentImpl(DocumentImpl that) {
-		super(that);
-		if (usetagnamecache) {
-			tagNameCache = new TagNameCache();
-		}
-	}
-
-	/**
-	 * @param b
-	 */
-	void activateTagNameCache(boolean b) {
-		tagNameCache.activate(b);
-	}
-
-	/**
-	 * <p>
-	 * EXPERIMENTAL! Based on the <a
-	 * href='http://www.w3.org/TR/2001/WD-DOM-Level-3-Core-20010605'>Document
-	 * Object Model (DOM) Level 3 Core Working Draft of 5 June 2001. </a>.
-	 * <p>
-	 * Changes the <code>ownerDocument</code> of a node, its children, as
-	 * well as the attached attribute nodes if there are any. If the node has
-	 * a parent it is first removed from its parent child list. This
-	 * effectively allows moving a subtree from one document to another. The
-	 * following list describes the specifics for each type of node.
-	 * <dl>
-	 * <dt>ATTRIBUTE_NODE</dt>
-	 * <dd>The <code>ownerElement</code> attribute is set to
-	 * <code>null</code> and the <code>specified</code> flag is set to
-	 * <code>true</code> on the adopted <code>Attr</code>. The
-	 * descendants of the source <code>Attr</code> are recursively adopted.
-	 * </dd>
-	 * <dt>DOCUMENT_FRAGMENT_NODE</dt>
-	 * <dd>The descendants of the source node are recursively adopted.</dd>
-	 * <dt>DOCUMENT_NODE</dt>
-	 * <dd><code>Document</code> nodes cannot be adopted.</dd>
-	 * <dt>DOCUMENT_TYPE_NODE</dt>
-	 * <dd><code>DocumentType</code> nodes cannot be adopted.</dd>
-	 * <dt>ELEMENT_NODE</dt>
-	 * <dd>Specified attribute nodes of the source element are adopted, and
-	 * the generated <code>Attr</code> nodes. Default attributes are
-	 * discarded, though if the document being adopted into defines default
-	 * attributes for this element name, those are assigned. The descendants
-	 * of the source element are recursively adopted.</dd>
-	 * <dt>ENTITY_NODE</dt>
-	 * <dd><code>Entity</code> nodes cannot be adopted.</dd>
-	 * <dt>ENTITY_REFERENCE_NODE</dt>
-	 * <dd>Only the <code>EntityReference</code> node itself is adopted,
-	 * the descendants are discarded, since the source and destination
-	 * documents might have defined the entity differently. If the document
-	 * being imported into provides a definition for this entity name, its
-	 * value is assigned.</dd>
-	 * <dt>NOTATION_NODE</dt>
-	 * <dd><code>Notation</code> nodes cannot be adopted.</dd>
-	 * <dt>PROCESSING_INSTRUCTION_NODE, TEXT_NODE, CDATA_SECTION_NODE,
-	 * COMMENT_NODE</dt>
-	 * <dd>These nodes can all be adopted. No specifics.</dd>
-	 * Should this method simply return null when it fails? How "exceptional"
-	 * is failure for this method?Stick with raising exceptions only in
-	 * exceptional circumstances, return null on failure (F2F 19 Jun 2000).Can
-	 * an entity node really be adopted?No, neither can Notation nodes (Telcon
-	 * 13 Dec 2000).Does this affect keys and hashCode's of the adopted
-	 * subtree nodes?If so, what about readonly-ness of key and hashCode?if
-	 * not, would appendChild affect keys/hashCodes or would it generate
-	 * exceptions if key's are duplicate? Update: Hashcodes have been dropped.
-	 * Given that the key is only unique within a document an adopted node
-	 * needs to be given a new key, but what does it mean for the application?
-	 * 
-	 * TODO: Needs to notify UserDataHandlers for the node if any
-	 * 
-	 * @param source
-	 *            The node to move into this document.
-	 * @return The adopted node, or <code>null</code> if this operation
-	 *         fails, such as when the source node comes from a different
-	 *         implementation.
-	 * @exception DOMException
-	 *                NOT_SUPPORTED_ERR: Raised if the source node is of type
-	 *                <code>DOCUMENT</code>,<code>DOCUMENT_TYPE</code>.
-	 *                <br>
-	 *                NO_MODIFICATION_ALLOWED_ERR: Raised when the source node
-	 *                is readonly.
-	 * @see DOM Level 3
-	 */
-	public org.w3c.dom.Node adoptNode(org.w3c.dom.Node source) throws org.w3c.dom.DOMException {
-		return null;
-	}
-
-	/**
-	 * @param tagName
-	 */
-	protected void checkTagNameValidity(String tagName) {
-		if (!isValidName(tagName)) {
-			throw new DOMException(DOMException.INVALID_CHARACTER_ERR, createDOMExceptionMessage(DOMException.INVALID_CHARACTER_ERR, tagName));
-		}
-	}
-
-	/**
-	 * cloneNode method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param deep
-	 *            boolean
-	 */
-	public Node cloneNode(boolean deep) {
-		DocumentImpl cloned = new DocumentImpl(this);
-		if (deep)
-			cloned.importChildNodes(this, true);
-		return cloned;
-	}
-
-	/**
-	 * createAttribute method
-	 * 
-	 * @return org.w3c.dom.Attr
-	 * @param name
-	 *            java.lang.String
-	 */
-	public Attr createAttribute(String name) throws DOMException {
-		AttrImpl attr = new AttrImpl();
-		attr.setOwnerDocument(this);
-		attr.setName(name);
-		return attr;
-	}
-
-	/**
-	 */
-	public Attr createAttributeNS(String uri, String name) throws DOMException {
-		AttrImpl attr = new AttrImpl();
-		attr.setOwnerDocument(this);
-		attr.setName(name);
-		attr.setNamespaceURI(uri);
-		return attr;
-	}
-
-	/**
-	 * createCDATASection method
-	 * 
-	 * @return org.w3c.dom.CDATASection
-	 * @param data
-	 *            java.lang.String
-	 */
-	public CDATASection createCDATASection(String data) throws DOMException {
-		// allow CDATA section
-		// if (!isXMLType()) {
-		// throw new DOMException(DOMException.NOT_SUPPORTED_ERR, new
-		// String());
-		// }
-		CDATASectionImpl cdata = new CDATASectionImpl();
-		cdata.setOwnerDocument(this);
-		if (data != null)
-			cdata.setData(data);
-		return cdata;
-	}
-
-	/**
-	 * createComment method
-	 * 
-	 * @return org.w3c.dom.Comment
-	 * @param data
-	 *            java.lang.String
-	 */
-	public Comment createComment(String data) {
-		CommentImpl comment = new CommentImpl();
-		comment.setOwnerDocument(this);
-		if (data != null)
-			comment.setData(data);
-		return comment;
-	}
-
-	public Element createCommentElement(String tagName, boolean isJSPTag) throws DOMException {
-		Element result = null;
-		if (!isJSPType() && isJSPTag) {
-			throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, new String());
-		}
-		ElementImpl element = (ElementImpl) createElement(tagName);
-		element.setJSPTag(isJSPTag);
-		CommentElementRegistry registry = CommentElementRegistry.getInstance();
-		if (registry.setupCommentElement(element)) {
-			result = element;
-		}
-		else {
-			throw new DOMException(DOMException.INVALID_CHARACTER_ERR, new String());
-		}
-		return result;
-	}
-
-	/**
-	 * createDoctype method
-	 * 
-	 * @return org.w3c.dom.DocumentType
-	 * @param name
-	 *            java.lang.String
-	 */
-	public DocumentType createDoctype(String name) {
-		DocumentTypeImpl docType = new DocumentTypeImpl();
-		docType.setOwnerDocument(this);
-		docType.setName(name);
-		return docType;
-	}
-
-	/**
-	 * createDocumentFragment method
-	 * 
-	 * @return org.w3c.dom.DocumentFragment
-	 */
-	public DocumentFragment createDocumentFragment() {
-		DocumentFragmentImpl fragment = new DocumentFragmentImpl();
-		fragment.setOwnerDocument(this);
-		return fragment;
-	}
-
-	/**
-	 * createElement method
-	 * 
-	 * @return org.w3c.dom.Element
-	 * @param tagName
-	 *            java.lang.String
-	 */
-	public Element createElement(String tagName) throws DOMException {
-		checkTagNameValidity(tagName);
-
-		ElementImpl element = new ElementImpl();
-		element.setOwnerDocument(this);
-		element.setTagName(tagName);
-		return element;
-	}
-
-	/**
-	 */
-	public Element createElementNS(String uri, String tagName) throws DOMException {
-		if (!isValidName(tagName)) {
-			throw new DOMException(DOMException.INVALID_CHARACTER_ERR, new String());
-		}
-
-		ElementImpl element = (ElementImpl) createElement(tagName);
-		element.setNamespaceURI(uri);
-		return element;
-	}
-
-	/**
-	 * createEntity method
-	 * 
-	 * @return org.w3c.dom.Entity
-	 * @param name
-	 *            java.lang.String
-	 */
-	public Entity createEntity(String name) {
-		EntityImpl entity = new EntityImpl();
-		entity.setOwnerDocument(this);
-		entity.setName(name);
-		return entity;
-	}
-
-	/**
-	 * createEntityReference method
-	 * 
-	 * @return org.w3c.dom.EntityReference
-	 * @param name
-	 *            java.lang.String
-	 */
-	public EntityReference createEntityReference(String name) throws DOMException {
-		if (!isXMLType()) {
-			throw new DOMException(DOMException.NOT_SUPPORTED_ERR, new String());
-		}
-
-		EntityReferenceImpl ref = new EntityReferenceImpl();
-		ref.setOwnerDocument(this);
-		ref.setName(name);
-		return ref;
-	}
-
-	/**
-	 */
-	public NodeIterator createNodeIterator(Node root, int whatToShow, NodeFilter filter, boolean entityReferenceExpansion) {
-		if (root == null)
-			root = this;
-		return new NodeIteratorImpl(root, whatToShow, filter);
-	}
-
-	/**
-	 * createNotation method
-	 * 
-	 * @return org.w3c.dom.Notation
-	 * @param name
-	 *            java.lang.String
-	 */
-	public Notation createNotation(String name) {
-		NotationImpl notation = new NotationImpl();
-		notation.setOwnerDocument(this);
-		notation.setName(name);
-		return notation;
-	}
-
-	/**
-	 * createProcessingInstruction method
-	 * 
-	 * @return org.w3c.dom.ProcessingInstruction
-	 * @param target
-	 *            java.lang.String
-	 * @param data
-	 *            java.lang.String
-	 */
-	public ProcessingInstruction createProcessingInstruction(String target, String data) throws DOMException {
-		ProcessingInstructionImpl pi = new ProcessingInstructionImpl();
-		pi.setOwnerDocument(this);
-		pi.setTarget(target);
-		if (data != null)
-			pi.setData(data);
-		return pi;
-	}
-
-	/**
-	 */
-	public Range createRange() {
-		return new RangeImpl();
-	}
-
-	/**
-	 * createTextNode method
-	 * 
-	 * @return org.w3c.dom.Text
-	 * @param data
-	 *            java.lang.String
-	 */
-	public Text createTextNode(String data) {
-		TextImpl text = new TextImpl();
-		text.setOwnerDocument(this);
-		text.setData(data);
-		return text;
-	}
-
-	/**
-	 * Return an instance of tree walk
-	 */
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.w3c.dom.traversal.DocumentTraversal#createTreeWalker(org.w3c.dom.Node,
-	 *      int, org.w3c.dom.traversal.NodeFilter, boolean)
-	 */
-	public TreeWalker createTreeWalker(Node root, int whatToShow, NodeFilter filter, boolean entityReferenceExpansion) {
-		if (root == null) {
-			String msg = "Program Error: root node can not be null for TreeWalker";
-			throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg);
-		}
-		// ISSUE: we just use Xerces implementation for now, but longer term,
-		// we should make a
-		// thread/job safe version (as well as not rely on Xerces "impl"
-		// class.
-		return new TreeWalkerImpl(root, whatToShow, filter, entityReferenceExpansion);
-
-	}
-
-	private DocumentType findDoctype(Node node) {
-		
-		int countSearch = 0;
-		for (Node child = node.getFirstChild(); child != null; child = child.getNextSibling()) {
-			if (countSearch++ > maxDocTypeSearch) {
-				break;
-			}
-			if (child.getNodeType() == DOCUMENT_TYPE_NODE && child instanceof DocumentType) {
-				return (DocumentType) child;
-			}
-			else if (child.getNodeType() == ELEMENT_NODE && ((IDOMElement) child).isCommentTag()) {
-				// search DOCTYPE inside of generic comment element
-				DocumentType docType = findDoctype(child);
-				if (docType != null) {
-					return docType;
-				}
-			}
-		}
-
-		return null;
-	}
-
-	private Element findDocumentElement(String docName, Node node, Node[] firstFound, int max) {
-		int countSearch = 0;
-		for (Node child = node.getFirstChild(); child != null; child = child.getNextSibling()) {
-			
-			/* 
-			 * maxDocTypeSearch limits added via bug 151929
-			 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=151929
-			 * but, in other contexts, 
-			 * if noMaxSearch is specified, then do not "break out" of long searches 
-			 * */
-			if (max != noMaxSearch && countSearch++ > max) {
-				break;
-			}
-			if (child.getNodeType() != ELEMENT_NODE)
-				continue;
-			ElementImpl element = (ElementImpl) child;
-			if (element.isCommentTag()) {
-				Element docElement = findDocumentElement(docName, element, firstFound, max);
-				if (docElement != null) {
-					return docElement;
-				}
-				else {
-					// added 'else continue' to better handle cases where
-					// there is "more than one root" element
-					// especially complicated by CommentElements, which are
-					// sometimes treated as elements, but should
-					// be treated as comments in this context.
-					continue;
-				}
-			}
-			// note: the "name" won't match in the event of a jsp tag ... but
-			// incase
-			// the name is null, we do not want the jsp element returned as
-			// documentElement
-			if (element.isJSPTag())
-				continue;
-			if (docName == null)
-				return element;
-			// use local name for namespace
-			String localName = element.getLocalName();
-			if (localName == null)
-				continue;
-			if (isXMLType()) {
-				if (localName.equals(docName))
-					return element;
-			}
-			else {
-				if (localName.equalsIgnoreCase(docName))
-					return element;
-			}
-			if (firstFound[0] == null)
-				firstFound[0] = element;
-		}
-		return null;
-	}
-
-	/**
-	 * getCharValue method
-	 * 
-	 * @return java.lang.String
-	 * @param name
-	 *            java.lang.String
-	 */
-	protected String getCharValue(String name) {
-		if (name == null)
-			return null;
-		int length = name.length();
-		if (length == 0)
-			return null;
-
-		if (name.charAt(0) == '#') { // character reference
-			if (length == 1)
-				return null;
-			int radix = 10;
-			String s = null;
-			// now allow hexadecimal also for non XML document
-			if (name.charAt(1) == 'x') { // hexadecimal
-				radix = 16;
-				s = name.substring(2);
-			}
-			else { // decimal
-				s = name.substring(1);
-			}
-			if (s == null || s.length() == 0)
-				return null;
-			if (s.charAt(0) == '-')
-				return null; // no minus accepted
-			char c = 0;
-			try {
-				c = (char) Integer.parseInt(s, radix);
-			}
-			catch (NumberFormatException ex) {
-			}
-			if (c == 0)
-				return null;
-			return String.valueOf(c);
-		}
-
-		// implicit character entities for XML
-		if (name.equals(IXMLCharEntity.LT_NAME))
-			return IXMLCharEntity.LT_VALUE;
-		if (name.equals(IXMLCharEntity.GT_NAME))
-			return IXMLCharEntity.GT_VALUE;
-		if (name.equals(IXMLCharEntity.AMP_NAME))
-			return IXMLCharEntity.AMP_VALUE;
-		if (name.equals(IXMLCharEntity.QUOT_NAME))
-			return IXMLCharEntity.QUOT_VALUE;
-		if (isXMLType()) {
-			if (name.equals(IXMLCharEntity.APOS_NAME))
-				return IXMLCharEntity.APOS_VALUE;
-		}
-
-		CMDocument cm = getCMDocument();
-		if (cm != null) {
-			CMNamedNodeMap map = cm.getEntities();
-			if (map != null) {
-				CMEntityDeclaration decl = (CMEntityDeclaration) map.getNamedItem(name);
-				if (decl != null) {
-					String value = decl.getValue();
-					if (value == null)
-						return null;
-					int valueLength = value.length();
-					if (valueLength > 1 && value.charAt(0) == '&' && value.charAt(1) == '#' && value.charAt(valueLength - 1) == ';') {
-						// character reference
-						return getCharValue(value.substring(1, valueLength - 1));
-					}
-					return value;
-				}
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 */
-	protected CMDocument getCMDocument() {
-		ModelQuery modelQuery = ModelQueryUtil.getModelQuery(this);
-		if (modelQuery == null)
-			return null;
-		return modelQuery.getCorrespondingCMDocument(this);
-	}
-
-	/**
-	 * getDoctype method
-	 * 
-	 * @return org.w3c.dom.DocumentType
-	 */
-	public DocumentType getDoctype() {
-		return findDoctype(this);
-	}
-
-	/**
-	 * getDocumentElement
-	 * 
-	 * @return org.w3c.dom.Element From DOM 2 Spec: documentElement of type
-	 *         Element [p.62] , readonly This is a convenience [p.119]
-	 *         attribute that allows direct access to the child node that is
-	 *         the root element of the document. For HTML documents, this is
-	 *         the element with the tagName "HTML". Note: we differ from this
-	 *         definition a little in that we don't necessarily take the first
-	 *         child but also look to match the name. In a well formed
-	 *         document, of course, the result is the same, but not
-	 *         necessarily the same in an ill-formed document.
-	 */
-	public Element getDocumentElement() {
-		String name = null;
-		DocumentType docType = getDocumentType();
-		if (docType != null) {
-			name = docType.getName();
-		}
-
-		Element first[] = new Element[1];
-		Element docElement = findDocumentElement(name, this, first, noMaxSearch);
-		if (docElement == null) {
-			docElement = first[0];
-		}
-
-		return docElement;
-	}
-
-	/**
-	 */
-	protected DocumentType getDocumentType() {
-		DocumentTypeAdapter adapter = (DocumentTypeAdapter) getAdapterFor(DocumentTypeAdapter.class);
-		if (adapter == null)
-			return getDoctype();
-		return adapter.getDocumentType();
-	}
-
-
-	public String getDocumentTypeId() {
-		DocumentType docType = getDocumentType();
-		if (docType == null)
-			return null;
-		String id = docType.getPublicId();
-		if (id == null)
-			id = docType.getSystemId();
-		return id;
-	}
-
-	/**
-	 */
-	public Element getElementById(String id) {
-		if (id == null)
-			return null;
-		NodeIterator it = createNodeIterator(this, NodeFilter.SHOW_ALL, null, false);
-		if (it == null)
-			return null;
-
-		for (Node node = it.nextNode(); node != null; node = it.nextNode()) {
-			if (node.getNodeType() != ELEMENT_NODE)
-				continue;
-			ElementImpl element = (ElementImpl) node;
-			String value = element.getAttribute("id");//$NON-NLS-1$
-			if (value != null && value.equals(id))
-				return element;
-		}
-
-		return null;
-	}
-
-	/**
-	 * getElementsByTagName method
-	 * 
-	 * @return org.w3c.dom.NodeList
-	 * @param tagName
-	 *            java.lang.String
-	 */
-	public NodeList getElementsByTagName(String tagName) {
-		if (tagName == null)
-			return new NodeListImpl();
-
-		NodeListImpl elements = null;
-
-		if (usetagnamecache) {
-			elements = tagNameCache.getItem(tagName);
-		}
-
-		if (elements == null) {
-			elements = internalGetElementsByTagName(tagName);
-
-		}
-
-		return elements;
-	}
-
-	/**
-	 */
-	public NodeList getElementsByTagNameNS(String uri, String tagName) {
-		if (tagName == null)
-			return new NodeListImpl();
-
-		NodeIterator it = createNodeIterator(this, NodeFilter.SHOW_ALL, null, false);
-		if (it == null)
-			return new NodeListImpl();
-		NodeListImpl elements = new NodeListImpl();
-
-		if (uri != null && uri.length() == 1 && uri.charAt(0) == '*') {
-			uri = null; // do not care
-		}
-		if (tagName.length() == 1 && tagName.charAt(0) == '*') {
-			tagName = null; // do not care
-		}
-
-		for (Node node = it.nextNode(); node != null; node = it.nextNode()) {
-			if (node.getNodeType() != ELEMENT_NODE)
-				continue;
-			ElementImpl element = (ElementImpl) node;
-			if (tagName != null) {
-				String localName = element.getLocalName();
-				if (localName == null || !localName.equals(tagName))
-					continue;
-			}
-			if (uri != null) {
-				String nsURI = element.getNamespaceURI();
-				if (nsURI == null || !nsURI.equals(uri))
-					continue;
-			}
-			elements.appendNode(element);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * <p>
-	 * EXPERIMENTAL! Based on the <a
-	 * href='http://www.w3.org/TR/2001/WD-DOM-Level-3-Core-20010605'>Document
-	 * Object Model (DOM) Level 3 Core Working Draft of 5 June 2001. </a>.
-	 * <p>
-	 * An attribute specifying, as part of the XML declaration, the encoding
-	 * of this document. This is <code>null</code> when unspecified.
-	 * 
-	 * @see DOM Level 3
-	 */
-	public java.lang.String getEncoding() {
-		return null;
-	}
-
-	/**
-	 */
-	public DOMImplementation getImplementation() {
-		return model;
-	}
-
-	/**
-	 * other nodes will be referring to this one to get the owning model
-	 */
-	public IDOMModel getModel() {
-		return model;
-	}
-
-	/**
-	 * getNodeName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return "#document";//$NON-NLS-1$
-	}
-
-	/**
-	 * getNodeType method
-	 * 
-	 * @return short
-	 */
-	public short getNodeType() {
-		return DOCUMENT_NODE;
-	}
-
-	/**
-	 * <p>
-	 * EXPERIMENTAL! Based on the <a
-	 * href='http://www.w3.org/TR/2001/WD-DOM-Level-3-Core-20010605'>Document
-	 * Object Model (DOM) Level 3 Core Working Draft of 5 June 2001. </a>.
-	 * <p>
-	 * An attribute specifying, as part of the XML declaration, whether this
-	 * document is standalone.
-	 * 
-	 * @see DOM Level 3
-	 */
-	public boolean getStandalone() {
-		return false;
-	}
-
-	/**
-	 * <p>
-	 * EXPERIMENTAL! Based on the <a
-	 * href='http://www.w3.org/TR/2001/WD-DOM-Level-3-Core-20010605'>Document
-	 * Object Model (DOM) Level 3 Core Working Draft of 5 June 2001. </a>.
-	 * <p>
-	 * An attribute specifying whether errors checking is enforced or not.
-	 * When set to <code>false</code>, the implementation is free to not
-	 * test every possible error case normally defined on DOM operations, and
-	 * not raise any <code>DOMException</code>. In case of error, the
-	 * behavior is undefined. This attribute is <code>true</code> by
-	 * defaults.
-	 * 
-	 * @see DOM Level 3
-	 */
-	public boolean getStrictErrorChecking() {
-		return false;
-	}
-
-	/**
-	 * <p>
-	 * EXPERIMENTAL! Based on the <a
-	 * href='http://www.w3.org/TR/2001/WD-DOM-Level-3-Core-20010605'>Document
-	 * Object Model (DOM) Level 3 Core Working Draft of 5 June 2001. </a>.
-	 * <p>
-	 * An attribute specifying, as part of the XML declaration, the version
-	 * number of this document. This is <code>null</code> when unspecified.
-	 * 
-	 * @see DOM Level 3
-	 */
-	public String getVersion() {
-		return null;
-	}
-
-	/**
-	 */
-	protected boolean ignoreCase() {
-		DocumentTypeAdapter adapter = (DocumentTypeAdapter) getAdapterFor(DocumentTypeAdapter.class);
-		if (adapter == null)
-			return false;
-		return (adapter.getTagNameCase() != DocumentTypeAdapter.STRICT_CASE);
-	}
-
-	/**
-	 */
-	protected void importChildNodes(Node parent, boolean deep) {
-		if (parent == null)
-			return;
-
-		removeChildNodes();
-
-		for (Node child = parent.getFirstChild(); child != null; child = child.getNextSibling()) {
-			Node imported = importNode(child, deep);
-			if (imported == null)
-				continue;
-			appendChild(imported);
-		}
-	}
-
-	/**
-	 */
-	public Node importNode(Node node, boolean deep) throws DOMException {
-		if (node == null)
-			return null;
-		NodeImpl imported = (NodeImpl) node.cloneNode(deep);
-		if (imported == null)
-			return null;
-		//successful import, notify UserDataHandlers if any
-		NodeImpl nodeToNotify=(NodeImpl) node;
-		nodeToNotify.notifyUserDataHandlers(UserDataHandler.NODE_IMPORTED, null);
-		imported.setOwnerDocument(this, deep);
-		return imported;
-	}
-
-	private NodeListImpl internalGetElementsByTagName(String tagName) {
-		// System.out.println("getElementsByTagname: " + tagName);
-		NodeIterator it = createNodeIterator(this, NodeFilter.SHOW_ALL, null, false);
-		if (it == null)
-			return new NodeListImpl();
-		NodeListImpl elements = new NodeListImpl();
-
-		if (tagName.length() == 1 && tagName.charAt(0) == '*') {
-			tagName = null; // do not care
-		}
-
-		for (Node node = it.nextNode(); node != null; node = it.nextNode()) {
-			if (node.getNodeType() != ELEMENT_NODE)
-				continue;
-			if (tagName != null) {
-				ElementImpl element = (ElementImpl) node;
-				if (!element.matchTagName(tagName))
-					continue;
-			}
-			elements.appendNode(node);
-		}
-		if (usetagnamecache) {
-			tagNameCache.addItem(tagName, elements);
-		}
-		return elements;
-	}
-
-	/**
-	 */
-	public boolean isJSPDocument() {
-		Element element = getDocumentElement();
-		if (element == null)
-			return false;
-		String tagName = element.getTagName();
-		if (tagName == null)
-			return false;
-		return tagName.equals(JSPTag.JSP_ROOT);
-	}
-
-	/**
-	 */
-	public boolean isJSPType() {
-		if (this.model == null)
-			return false;
-		IModelHandler handler = this.model.getModelHandler();
-		if (handler == null)
-			return false;
-		String id = handler.getAssociatedContentTypeId();
-		if (id == null)
-			return false;
-		// ISSUE: -- avoid this hardcoded string
-		return id.equals("org.eclipse.jst.jsp.core.jspsource"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	protected boolean isValidName(String name) {
-		if (name == null || name.length() == 0)
-			return false;
-		// // DMW: modified for XML4J 4.0.1
-		// if (XMLChar.isValidName(name)) return true;
-		if (NameValidator.isValid(name))
-			return true;
-		// special for invalid declaration
-		if (name.length() == 1 && name.charAt(0) == '!')
-			return true;
-		// special for JSP tag in tag name
-		if (name.startsWith(JSPTag.TAG_OPEN))
-			return true;
-		return false;
-	}
-
-	/**
-	 */
-	public boolean isXMLType() {
-		DocumentTypeAdapter adapter = (DocumentTypeAdapter) getAdapterFor(DocumentTypeAdapter.class);
-		if (adapter == null)
-			return true;
-		return adapter.isXMLType();
-	}
-
-	/**
-	 */
-	// protected void releaseDocumentType() {
-	// if (this.documentTypeAdapter == null)
-	// return;
-	// this.documentTypeAdapter.release();
-	// this.documentTypeAdapter = null;
-	// }
-	/**
-	 * <p>
-	 * EXPERIMENTAL! Based on the <a
-	 * href='http://www.w3.org/TR/2001/WD-DOM-Level-3-Core-20010605'>Document
-	 * Object Model (DOM) Level 3 Core Working Draft of 5 June 2001. </a>.
-	 * <p>
-	 * An attribute specifying, as part of the XML declaration, the encoding
-	 * of this document. This is <code>null</code> when unspecified.
-	 * 
-	 * @see DOM Level 3
-	 */
-	public void setEncoding(java.lang.String encoding) {
-	}
-
-	/**
-	 * setModel method
-	 * 
-	 * @param model
-	 *            XMLModel
-	 */
-
-	protected void setModel(IDOMModel model) {
-		this.model = (DOMModelImpl) model;
-	}
-
-	/**
-	 * <p>
-	 * EXPERIMENTAL! Based on the <a
-	 * href='http://www.w3.org/TR/2001/WD-DOM-Level-3-Core-20010605'>Document
-	 * Object Model (DOM) Level 3 Core Working Draft of 5 June 2001. </a>.
-	 * <p>
-	 * An attribute specifying, as part of the XML declaration, whether this
-	 * document is standalone.
-	 * 
-	 * @see DOM Level 3
-	 */
-	public void setStandalone(boolean standalone) {
-	}
-
-	/**
-	 * <p>
-	 * EXPERIMENTAL! Based on the <a
-	 * href='http://www.w3.org/TR/2001/WD-DOM-Level-3-Core-20010605'>Document
-	 * Object Model (DOM) Level 3 Core Working Draft of 5 June 2001. </a>.
-	 * <p>
-	 * An attribute specifying whether errors checking is enforced or not.
-	 * When set to <code>false</code>, the implementation is free to not
-	 * test every possible error case normally defined on DOM operations, and
-	 * not raise any <code>DOMException</code>. In case of error, the
-	 * behavior is undefined. This attribute is <code>true</code> by
-	 * defaults.
-	 * 
-	 * @see DOM Level 3
-	 */
-	public void setStrictErrorChecking(boolean strictErrorChecking) {
-	}
-
-	/**
-	 * <p>
-	 * EXPERIMENTAL! Based on the <a
-	 * href='http://www.w3.org/TR/2001/WD-DOM-Level-3-Core-20010605'>Document
-	 * Object Model (DOM) Level 3 Core Working Draft of 5 June 2001. </a>.
-	 * <p>
-	 * An attribute specifying, as part of the XML declaration, the version
-	 * number of this document. This is <code>null</code> when unspecified.
-	 * 
-	 * @see DOM Level 3
-	 */
-	public void setVersion(java.lang.String version) {
-	}
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation for DOM 3.
-	 */
-	public String getInputEncoding() {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implmented in this version"); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation for DOM 3.
-	 */
-	public String getXmlEncoding() {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implmented in this version"); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation for DOM 3.
-	 */
-	public boolean getXmlStandalone() {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implmented in this version"); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation for DOM 3.
-	 */
-	public void setXmlStandalone(boolean xmlStandalone) throws DOMException {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implmented in this version"); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation for DOM 3.
-	 */
-	public String getXmlVersion() {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implmented in this version"); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation for DOM 3.
-	 */
-	public void setXmlVersion(String xmlVersion) throws DOMException {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implmented in this version"); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation for DOM 3.
-	 */
-	public String getDocumentURI() {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implmented in this version"); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation for DOM 3.
-	 */
-	public void setDocumentURI(String documentURI) {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implmented in this version"); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation for DOM 3.
-	 */
-	public DOMConfiguration getDomConfig() {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implmented in this version"); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation for DOM 3.
-	 */
-	public void normalizeDocument() {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implmented in this version"); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation for DOM 3.
-	 */
-	public Node renameNode(Node n, String namespaceURI, String qualifiedName) throws DOMException {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implmented in this version"); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeAdapter.java
deleted file mode 100644
index d216704..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeAdapter.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.w3c.dom.DocumentType;
-
-
-/**
- */
-public interface DocumentTypeAdapter extends INodeAdapter {
-	static final int LOWER_CASE = 2;
-	static final int STRICT_CASE = 0;
-	static final int UPPER_CASE = 1;
-
-	/**
-	 */
-	int getAttrNameCase();
-
-	/**
-	 */
-	DocumentType getDocumentType();
-
-	/**
-	 */
-	int getTagNameCase();
-
-	/**
-	 */
-	boolean hasFeature(String feature);
-
-	/**
-	 */
-	boolean isXMLType();
-
-	/**
-	 */
-	void release();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeAdapterImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeAdapterImpl.java
deleted file mode 100644
index 29c3e95..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeAdapterImpl.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.DocumentType;
-
-
-/**
- */
-public class DocumentTypeAdapterImpl implements DocumentTypeAdapter {
-
-	private IDOMDocument document = null;
-	private DocumentType documentType = null;
-
-	/**
-	 */
-	protected DocumentTypeAdapterImpl() {
-		super();
-	}
-
-	/**
-	 */
-	protected DocumentTypeAdapterImpl(IDOMDocument document) {
-		this.document = document;
-		if (document != null) {
-			this.documentType = document.getDoctype();
-		}
-	}
-
-	/**
-	 */
-	public int getAttrNameCase() {
-		return STRICT_CASE;
-	}
-
-	/**
-	 */
-	protected IDOMDocument getDocument() {
-		return this.document;
-	}
-
-	/**
-	 */
-	public DocumentType getDocumentType() {
-		return this.documentType;
-	}
-
-	/**
-	 */
-	public int getTagNameCase() {
-		return STRICT_CASE;
-	}
-
-	/**
-	 */
-	public boolean hasFeature(String feature) {
-		return false;
-	}
-
-	/**
-	 */
-	public boolean isAdapterForType(Object type) {
-		return (type == DocumentTypeAdapter.class);
-	}
-
-	/**
-	 */
-	public boolean isXMLType() {
-		return true;
-	}
-
-	/**
-	 */
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-		if (eventType != INodeNotifier.STRUCTURE_CHANGED)
-			return;
-		if (notifier == null || !(notifier instanceof IDOMDocument))
-			return;
-		this.documentType = ((IDOMDocument) notifier).getDoctype();
-	}
-
-	/**
-	 */
-	protected void notifyDocumentTypeChanged() {
-		if (this.document == null)
-			return;
-		IDOMModel model = this.document.getModel();
-		if (model == null)
-			return;
-		((DOMModelImpl) model).documentTypeChanged();
-	}
-
-	/**
-	 */
-	public void release() {
-		// nothing to do
-	}
-
-	/**
-	 */
-	protected void setDocumentType(DocumentType documentType) {
-		this.documentType = documentType;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeImpl.java
deleted file mode 100644
index 769543f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeImpl.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
- *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocumentType;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.UserDataHandler;
-
-
-/**
- * DocumentType class
- */
-public class DocumentTypeImpl extends NodeImpl implements IDOMDocumentType {
-	private String internalSubset = null;
-
-	private String name = null;
-	private String publicId = null;
-	private String systemId = null;
-
-	/**
-	 * DocumentTypeImpl constructor
-	 */
-	protected DocumentTypeImpl() {
-		super();
-	}
-
-	/**
-	 * DocumentTypeImpl constructor
-	 * 
-	 * @param that
-	 *            DocumentTypeImpl
-	 */
-	protected DocumentTypeImpl(DocumentTypeImpl that) {
-		super(that);
-
-		if (that != null) {
-			this.name = that.name;
-		}
-	}
-
-	/**
-	 * cloneNode method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param deep
-	 *            boolean
-	 */
-	public Node cloneNode(boolean deep) {
-		DocumentTypeImpl cloned = new DocumentTypeImpl(this);
-		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
-		return cloned;
-	}
-
-	/**
-	 * getEntities method
-	 * 
-	 * @return org.w3c.dom.NamedNodeMap
-	 */
-	public NamedNodeMap getEntities() {
-		return null;
-	}
-
-	/**
-	 */
-	public String getInternalSubset() {
-		return this.internalSubset;
-	}
-
-	/**
-	 * getName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getName() {
-		if (this.name == null)
-			return new String();
-		return this.name;
-	}
-
-	/**
-	 * getNodeName
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return getName();
-	}
-
-	/**
-	 * getNodeType method
-	 * 
-	 * @return short
-	 */
-	public short getNodeType() {
-		return DOCUMENT_TYPE_NODE;
-	}
-
-	/**
-	 * getNotations method
-	 * 
-	 * @return org.w3c.dom.NamedNodeMap
-	 */
-	public NamedNodeMap getNotations() {
-		return null;
-	}
-
-	/**
-	 * getPublicId method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getPublicId() {
-		return this.publicId;
-	}
-
-	/**
-	 * getSystemId method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getSystemId() {
-		return this.systemId;
-	}
-
-	/**
-	 */
-	public boolean isClosed() {
-		IStructuredDocumentRegion flatNode = getStructuredDocumentRegion();
-		if (flatNode == null)
-			return true; // will be generated
-		String regionType = StructuredDocumentRegionUtil.getLastRegionType(flatNode);
-		return (regionType == DOMRegionContext.XML_DOCTYPE_DECLARATION_CLOSE || regionType == DOMRegionContext.XML_DECLARATION_CLOSE);
-	}
-
-	/**
-	 */
-	public void setInternalSubset(String internalSubset) {
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		this.internalSubset = internalSubset;
-	}
-
-	/**
-	 * setName method
-	 * 
-	 * @param name
-	 *            java.lang.String
-	 */
-	protected void setName(String name) {
-		this.name = name;
-	}
-
-	/**
-	 * setPublicId method
-	 * 
-	 * @param publicId
-	 *            java.lang.String
-	 */
-	public void setPublicId(String publicId) {
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		this.publicId = publicId;
-
-		notifyValueChanged();
-	}
-
-	/**
-	 * setSystemId method
-	 * 
-	 * @param systemId
-	 *            java.lang.String
-	 */
-	public void setSystemId(String systemId) {
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		this.systemId = systemId;
-
-		notifyValueChanged();
-	}
-
-	/**
-	 * toString method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append(getName());
-		buffer.append('(');
-		buffer.append(getPublicId());
-		buffer.append(')');
-		buffer.append('(');
-		buffer.append(getSystemId());
-		buffer.append(')');
-		IStructuredDocumentRegion flatNode = getStructuredDocumentRegion();
-		if (flatNode != null) {
-			buffer.append('@');
-			buffer.append(flatNode.toString());
-		}
-		return buffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ElementImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ElementImpl.java
deleted file mode 100644
index 8db82f1..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ElementImpl.java
+++ /dev/null
@@ -1,1474 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *    
- *     Valentin Baciu - https://bugs.eclipse.org/bugs/show_bug.cgi?id=139552
- *     
- *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
- *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import java.util.Iterator;
-
-import org.eclipse.wst.sse.core.internal.ltk.parser.RegionParser;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.xml.core.internal.commentelement.CommentElementAdapter;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.parser.XMLSourceParser;
-import org.eclipse.wst.xml.core.internal.provisional.IXMLNamespace;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.Attr;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.UserDataHandler;
-import org.w3c.dom.traversal.NodeFilter;
-import org.w3c.dom.traversal.NodeIterator;
-
-
-/**
- * ElementImpl class
- */
-public class ElementImpl extends NodeContainer implements IDOMElement {
-
-	private class Attributes implements NamedNodeMap {
-		Attributes() {
-			super();
-		}
-
-		public int getLength() {
-			if (attrNodes == null)
-				return 0;
-			return attrNodes.getLength();
-		}
-
-		public Node getNamedItem(String name) {
-			return getAttributeNode(name);
-		}
-
-		public Node getNamedItemNS(String uri, String name) {
-			return getAttributeNodeNS(uri, name);
-		}
-
-		public Node item(int index) {
-			if (attrNodes == null)
-				return null;
-			return attrNodes.item(index);
-		}
-
-		public Node removeNamedItem(String name) throws DOMException {
-			return removeAttributeNode(name);
-		}
-
-		public Node removeNamedItemNS(String uri, String name) throws DOMException {
-			return removeAttributeNodeNS(uri, name);
-		}
-
-		public Node setNamedItem(Node arg) throws DOMException {
-			return setAttributeNode((AttrImpl) arg);
-		}
-
-		public Node setNamedItemNS(Node arg) throws DOMException {
-			return setAttributeNodeNS((AttrImpl) arg);
-		}
-	}
-
-	NodeListImpl attrNodes = null;
-	private IStructuredDocumentRegion endStructuredDocumentRegion = null;
-	private boolean isCommentTag = false;
-	private boolean isEmptyTag = false;
-	private boolean isJSPTag = false;
-	private String namespaceURI = null;
-
-	private String tagName = null;
-
-	/**
-	 * ElementImpl constructor
-	 */
-	protected ElementImpl() {
-		super();
-	}
-
-	/**
-	 * ElementImpl constructor
-	 * 
-	 * @param that
-	 *            ElementImpl
-	 */
-	protected ElementImpl(ElementImpl that) {
-		super(that);
-
-		if (that != null) {
-			this.tagName = that.tagName;
-			this.isEmptyTag = that.isEmptyTag;
-			this.isJSPTag = that.isJSPTag;
-			this.isCommentTag = that.isCommentTag;
-
-			// clone attributes
-			that.cloneAttributes(this);
-		}
-	}
-
-	/**
-	 * addEndTag method
-	 * 
-	 * @param end
-	 *            org.w3c.dom.Element
-	 */
-	protected void addEndTag(Element endTag) {
-		if (endTag == null)
-			return;
-		if (hasEndTag())
-			return;
-		ElementImpl end = (ElementImpl) endTag;
-
-		// move the end flat node from the end tag
-		IStructuredDocumentRegion flatNode = end.getEndStructuredDocumentRegion();
-		if (flatNode == null)
-			return;
-		end.setEndStructuredDocumentRegion(null);
-		setEndStructuredDocumentRegion(flatNode);
-	}
-
-	/**
-	 * appendAttibuteNode method
-	 * 
-	 * @return org.w3c.dom.Attr
-	 * @param newAttr
-	 *            org.w3c.dom.Attr
-	 */
-	public Attr appendAttributeNode(Attr newAttr) {
-		if (newAttr == null)
-			return null;
-		AttrImpl attr = (AttrImpl) newAttr;
-		if (attr.getOwnerElement() != null)
-			return null;
-
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		if (this.attrNodes == null)
-			this.attrNodes = new NodeListImpl();
-		this.attrNodes.appendNode(attr);
-		attr.setOwnerElement(this);
-
-		notifyAttrReplaced(attr, null);
-		return attr;
-	}
-
-	/**
-	 * cloneAttributes method
-	 * 
-	 * @param newOwner
-	 *            org.w3c.dom.Element
-	 */
-	protected void cloneAttributes(Element newOwner) {
-		if (newOwner == null || newOwner == this)
-			return;
-
-		ElementImpl element = (ElementImpl) newOwner;
-		element.removeAttributes();
-
-		if (this.attrNodes == null)
-			return;
-
-		int length = this.attrNodes.getLength();
-		for (int i = 0; i < length; i++) {
-			Node node = this.attrNodes.item(i);
-			if (node == null)
-				continue;
-			Attr cloned = (Attr) node.cloneNode(false);
-			if (cloned != null)
-				element.appendAttributeNode(cloned);
-		}
-	}
-
-	/**
-	 * cloneNode method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param deep
-	 *            boolean
-	 */
-	public Node cloneNode(boolean deep) {
-		ElementImpl cloned = new ElementImpl(this);
-		if (deep)
-			cloneChildNodes(cloned, deep);
-		
-		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
-		return cloned;
-	}
-
-	/**
-	 * getAttribute method
-	 * 
-	 * @return java.lang.String
-	 * @param name
-	 *            java.lang.String
-	 */
-	public String getAttribute(String name) {
-		Attr attr = getAttributeNode(name);
-		if (attr == null)
-			return null;
-		return attr.getValue();
-	}
-
-	/**
-	 * getAttributeNode method
-	 * 
-	 * @return org.w3c.dom.Attr
-	 * @param name
-	 *            java.lang.String
-	 */
-	public Attr getAttributeNode(String name) {
-		if (name == null)
-			return null; // invalid parameter
-		if (this.attrNodes == null)
-			return null; // no attribute
-
-		int length = this.attrNodes.getLength();
-		for (int i = 0; i < length; i++) {
-			AttrImpl attr = (AttrImpl) this.attrNodes.item(i);
-			if (attr == null)
-				continue;
-			if (attr.matchName(name))
-				return attr; // found
-		}
-
-		return null; // not found
-	}
-
-	/**
-	 */
-	public Attr getAttributeNodeNS(String uri, String name) {
-		if (name == null)
-			return null; // invalid parameter
-		if (this.attrNodes == null)
-			return null; // no attribute
-
-		int length = this.attrNodes.getLength();
-		for (int i = 0; i < length; i++) {
-			AttrImpl attr = (AttrImpl) this.attrNodes.item(i);
-			if (attr == null)
-				continue;
-			String localName = attr.getLocalName();
-			if (localName == null || !localName.equals(name))
-				continue;
-			String nsURI = attr.getNamespaceURI();
-			if (uri == null) {
-				if (nsURI != null)
-					continue;
-			}
-			else {
-				if (nsURI == null || !nsURI.equals(uri))
-					continue;
-			}
-
-			// found
-			return attr;
-		}
-
-		return null; // not found
-	}
-
-	/**
-	 */
-	public String getAttributeNS(String uri, String name) {
-		Attr attr = getAttributeNodeNS(uri, name);
-		if (attr == null)
-			return null;
-		return attr.getValue();
-	}
-
-	/**
-	 * getAttributes method
-	 * 
-	 * @return org.w3c.dom.NamedNodeMap
-	 */
-	public NamedNodeMap getAttributes() {
-		return new Attributes();
-	}
-
-	/**
-	 */
-	protected CMElementDeclaration getDeclaration() {
-		Document document = getOwnerDocument();
-		if (document == null)
-			return null;
-		ModelQuery modelQuery = ModelQueryUtil.getModelQuery(document);
-		if (modelQuery == null)
-			return null;
-		return modelQuery.getCMElementDeclaration(this);
-	}
-
-	/**
-	 * getElementsByTagName method
-	 * 
-	 * @return org.w3c.dom.NodeList
-	 * @param tagName
-	 *            java.lang.String
-	 */
-	public NodeList getElementsByTagName(String tagName) {
-		if (tagName == null)
-			return new NodeListImpl();
-
-		DocumentImpl document = (DocumentImpl) getOwnerDocument();
-		if (document == null)
-			return new NodeListImpl();
-		NodeIterator it = document.createNodeIterator(this, NodeFilter.SHOW_ALL, null, false);
-		if (it == null)
-			return new NodeListImpl();
-		NodeListImpl elements = new NodeListImpl();
-
-		if (tagName.length() == 1 && tagName.charAt(0) == '*') {
-			tagName = null; // do not care
-		}
-
-		for (Node node = it.nextNode(); node != null; node = it.nextNode()) {
-			if (node.getNodeType() != ELEMENT_NODE)
-				continue;
-			if (tagName != null) {
-				ElementImpl element = (ElementImpl) node;
-				if (!element.matchTagName(tagName))
-					continue;
-			}
-			elements.appendNode(node);
-		}
-
-		return elements;
-	}
-
-	/**
-	 */
-	public NodeList getElementsByTagNameNS(String uri, String tagName) {
-		if (tagName == null)
-			return new NodeListImpl();
-
-		DocumentImpl document = (DocumentImpl) getOwnerDocument();
-		if (document == null)
-			return new NodeListImpl();
-		NodeIterator it = document.createNodeIterator(this, NodeFilter.SHOW_ALL, null, false);
-		if (it == null)
-			return new NodeListImpl();
-		NodeListImpl elements = new NodeListImpl();
-
-		if (uri != null && uri.length() == 1 && uri.charAt(0) == '*') {
-			uri = null; // do not care
-		}
-		if (tagName.length() == 1 && tagName.charAt(0) == '*') {
-			tagName = null; // do not care
-		}
-
-		for (Node node = it.nextNode(); node != null; node = it.nextNode()) {
-			if (node.getNodeType() != ELEMENT_NODE)
-				continue;
-			ElementImpl element = (ElementImpl) node;
-			if (tagName != null) {
-				String localName = element.getLocalName();
-				if (localName == null || !localName.equals(tagName))
-					continue;
-			}
-			if (uri != null) {
-				String nsURI = element.getNamespaceURI();
-				if (nsURI == null || !nsURI.equals(uri))
-					continue;
-			}
-			elements.appendNode(element);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * getEndOffset method
-	 * 
-	 * @return int
-	 */
-	public int getEndOffset() {
-		if (this.endStructuredDocumentRegion != null)
-			return this.endStructuredDocumentRegion.getEnd();
-		return super.getEndOffset();
-	}
-
-	/**
-	 * getEndStartOffset method
-	 * 
-	 * @return int
-	 */
-	public int getEndStartOffset() {
-		if (this.endStructuredDocumentRegion != null)
-			return this.endStructuredDocumentRegion.getStart();
-		return super.getEndOffset();
-	}
-
-	/**
-	 * getEndStructuredDocumentRegion method
-	 * 
-	 */
-	public IStructuredDocumentRegion getEndStructuredDocumentRegion() {
-		return this.endStructuredDocumentRegion;
-	}
-
-	public String getEndTagName() {
-		if (this.endStructuredDocumentRegion == null)
-			return null;
-
-		ITextRegionList regions = this.endStructuredDocumentRegion.getRegions();
-		if (regions == null)
-			return null;
-		Iterator e = regions.iterator();
-		while (e.hasNext()) {
-			ITextRegion region = (ITextRegion) e.next();
-			String regionType = region.getType();
-			if (regionType == DOMRegionContext.XML_TAG_NAME || isNestedEndTag(regionType)) {
-				return this.endStructuredDocumentRegion.getText(region);
-			}
-		}
-
-		return null;
-	}
-
-	protected boolean isNestedEndTag(String regionType) {
-		boolean result = false;
-		return result;
-	}
-
-	/**
-	 * getFirstStructuredDocumentRegion method
-	 * 
-	 */
-	public IStructuredDocumentRegion getFirstStructuredDocumentRegion() {
-		IStructuredDocumentRegion flatNode = getStructuredDocumentRegion();
-		if (flatNode != null)
-			return StructuredDocumentRegionUtil.getStructuredDocumentRegion(flatNode);
-		return StructuredDocumentRegionUtil.getStructuredDocumentRegion(this.endStructuredDocumentRegion);
-	}
-
-	/**
-	 * getLastStructuredDocumentRegion method
-	 * 
-	 */
-	public IStructuredDocumentRegion getLastStructuredDocumentRegion() {
-		if (this.endStructuredDocumentRegion != null)
-			return StructuredDocumentRegionUtil.getStructuredDocumentRegion(this.endStructuredDocumentRegion);
-		return StructuredDocumentRegionUtil.getStructuredDocumentRegion(getStructuredDocumentRegion());
-	}
-
-	/**
-	 */
-	public String getLocalName() {
-		if (this.tagName == null)
-			return null;
-		int index = this.tagName.indexOf(':');
-		if (index < 0)
-			return this.tagName;
-		return this.tagName.substring(index + 1);
-	}
-
-	/**
-	 */
-	public String getNamespaceURI() {
-		String nsAttrName = null;
-		String prefix = getPrefix();
-		if (prefix != null && prefix.length() > 0) {
-			nsAttrName = IXMLNamespace.XMLNS_PREFIX + prefix;
-		}
-		else {
-			nsAttrName = IXMLNamespace.XMLNS;
-		}
-
-		for (Node node = this; node != null; node = node.getParentNode()) {
-			if (node.getNodeType() != ELEMENT_NODE)
-				break;
-			Element element = (Element) node;
-			Attr attr = element.getAttributeNode(nsAttrName);
-			if (attr != null)
-				return attr.getValue();
-		}
-
-		return this.namespaceURI;
-	}
-
-	/**
-	 * getNodeName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return getTagName();
-	}
-
-	/**
-	 * getNodeType method
-	 * 
-	 * @return short
-	 */
-	public short getNodeType() {
-		return ELEMENT_NODE;
-	}
-
-	/**
-	 */
-	public String getPrefix() {
-		if (this.tagName == null)
-			return null;
-		int index = this.tagName.indexOf(':');
-		if (index <= 0)
-			return null;
-		// exclude JSP tag in tag name
-		if (this.tagName.charAt(0) == '<')
-			return null;
-		return this.tagName.substring(0, index);
-	}
-
-	/**
-	 * getStartEndOffset method
-	 * 
-	 * @return int
-	 */
-	public int getStartEndOffset() {
-		IStructuredDocumentRegion flatNode = getStructuredDocumentRegion();
-		if (flatNode != null)
-			return flatNode.getEnd();
-		return super.getStartOffset();
-	}
-
-	/**
-	 * getStartOffset method
-	 * 
-	 * @return int
-	 */
-	public int getStartOffset() {
-		if (getStartStructuredDocumentRegion() == null && this.endStructuredDocumentRegion != null && !hasChildNodes()) {
-			return this.endStructuredDocumentRegion.getStart();
-		}
-		return super.getStartOffset();
-	}
-
-	/**
-	 * getStartStructuredDocumentRegion method
-	 * 
-	 */
-	public IStructuredDocumentRegion getStartStructuredDocumentRegion() {
-		return getStructuredDocumentRegion();
-	}
-
-	/**
-	 * getTagName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getTagName() {
-		if (this.tagName == null)
-			return new String();
-		return this.tagName;
-	}
-
-	/**
-	 */
-	public boolean hasAttribute(String name) {
-		return (getAttributeNode(name) != null);
-	}
-
-	/**
-	 */
-	public boolean hasAttributeNS(String uri, String name) {
-		return (getAttributeNodeNS(uri, name) != null);
-	}
-
-	/**
-	 */
-	public boolean hasAttributes() {
-		return (this.attrNodes != null && this.attrNodes.getLength() > 0);
-	}
-
-	/**
-	 * hasEndTag method
-	 * 
-	 * @return boolean
-	 */
-	public boolean hasEndTag() {
-		return (this.endStructuredDocumentRegion != null);
-	}
-
-	/**
-	 */
-	protected final boolean hasPrefix() {
-		if (this.tagName == null)
-			return false;
-		if (this.tagName.indexOf(':') <= 0)
-			return false;
-		// exclude JSP tag in tag name
-		if (this.tagName.charAt(0) == '<')
-			return false;
-		return true;
-	}
-
-	/**
-	 * hasStartTag method
-	 * 
-	 * @return boolean
-	 */
-	public boolean hasStartTag() {
-		return (getStructuredDocumentRegion() != null);
-	}
-
-	/**
-	 */
-	protected final boolean ignoreCase() {
-		DocumentImpl document = (DocumentImpl) getOwnerDocument();
-		if (document != null && document.ignoreCase()) {
-			// even in case insensitive document, if having prefix, it's case
-			// sensitive tag
-			return !hasPrefix();
-		}
-		return false;
-	}
-
-	/**
-	 */
-	protected Attr insertAttributeNode(Attr newAttr, int index) {
-		if (newAttr == null)
-			return null;
-		AttrImpl attr = (AttrImpl) newAttr;
-		if (attr.getOwnerElement() != null)
-			return null;
-
-		if (this.attrNodes == null)
-			this.attrNodes = new NodeListImpl();
-		this.attrNodes.insertNode(attr, index);
-		attr.setOwnerElement(this);
-
-		notifyAttrReplaced(attr, null);
-		return attr;
-	}
-
-	/**
-	 * insertBefore method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param newChild
-	 *            org.w3c.dom.Node
-	 * @param refChild
-	 *            org.w3c.dom.Node
-	 */
-	public Node insertBefore(Node newChild, Node refChild) throws DOMException {
-		// should throw DOMException instead of return null?
-		if (newChild == null)
-			return null;
-		if (!isContainer()) { // never be container
-			throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR, new String());
-		}
-		if (newChild.getNodeType() != TEXT_NODE) {
-			if (isJSPContainer() || isCDATAContainer()) { // accepts only
-				// Text
-				// child
-				throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR, new String());
-			}
-		}
-		return super.insertBefore(newChild, refChild);
-	}
-
-	/**
-	 */
-	protected boolean isCDATAContainer() {
-		// use BlockMaker instead of CMElementDeclaration
-		// because <style> and <script> in XHTML is not CDATA content type
-		IDOMModel model = getModel();
-		if (model == null)
-			return false; // error
-		IStructuredDocument structuredDocument = model.getStructuredDocument();
-		if (structuredDocument == null)
-			return false; // eror
-		RegionParser parser = structuredDocument.getParser();
-		if (parser == null || !(parser instanceof XMLSourceParser))
-			return false;
-		return (((XMLSourceParser) parser).getBlockMarker(this.tagName) != null);
-		/*
-		 * CMElementDeclaration decl = getDeclaration(); if (decl == null)
-		 * return false; if (decl instanceof CMNodeWrapper) { decl =
-		 * (CMElementDeclaration)((CMNodeWrapper)decl).getOriginNode(); if
-		 * (decl == null) return false; } if (decl instanceof
-		 * TLDElementDeclaration) { String content =
-		 * ((TLDElementDeclaration)decl).getBodycontent(); if (content ==
-		 * null) return false; return
-		 * content.equals(JSP11TLDNames.CONTENT_TAGDEPENDENT); } if
-		 * (!isGlobalTag()) return false; return (decl.getContentType() ==
-		 * CMElementDeclaration.CDATA);
-		 */
-	}
-
-	/**
-	 */
-	public boolean isClosed() {
-		IStructuredDocumentRegion flatNode = null;
-		if (isEmptyTag() || !isContainer()) {
-			flatNode = getStructuredDocumentRegion();
-			if (flatNode == null)
-				return true; // will be generated
-		}
-		else {
-			flatNode = getEndStructuredDocumentRegion();
-			if (flatNode == null)
-				return false; // must be generated
-		}
-		String regionType = StructuredDocumentRegionUtil.getLastRegionType(flatNode);
-		if (isCommentTag()) {
-			return (isNestedClosedComment(regionType) || regionType == DOMRegionContext.XML_COMMENT_CLOSE);
-		}
-		if (isJSPTag()) {
-			return isNestedClosed(regionType);
-		}
-		return (regionType == DOMRegionContext.XML_TAG_CLOSE || regionType == DOMRegionContext.XML_EMPTY_TAG_CLOSE || regionType == DOMRegionContext.XML_DECLARATION_CLOSE);
-	}
-
-	protected boolean isNestedClosed(String regionType) {
-		boolean result = false;
-		return result;
-	}
-
-	protected boolean isNestedClosedComment(String regionType) {
-		boolean result = false;
-		return result;
-	}
-
-	/**
-	 */
-	public final boolean isCommentTag() {
-		return this.isCommentTag;
-	}
-
-	/**
-	 * isContainer method
-	 * 
-	 * @return boolean
-	 */
-	public boolean isContainer() {
-		if (isCommentTag()) {
-			CommentElementAdapter adapter = (CommentElementAdapter) getAdapterFor(CommentElementAdapter.class);
-			if (adapter != null) {
-				return (adapter.isContainer());
-			}
-			return (getDeclaration() == null);
-		}
-		if (isJSPTag()) {
-			// exclude JSP directive
-			return (matchTagName(JSPTag.JSP_SCRIPTLET) || matchTagName(JSPTag.JSP_DECLARATION) || matchTagName(JSPTag.JSP_EXPRESSION));
-		}
-		if (!isXMLTag()) { // non-XML tag
-			CMElementDeclaration decl = getDeclaration();
-			if (decl == null)
-				return false; // undefined tag
-			return (decl.getContentType() != CMElementDeclaration.EMPTY);
-		}
-		return true;
-	}
-
-	/**
-	 * isEmptyTag method
-	 * 
-	 * @return boolean
-	 */
-	public boolean isEmptyTag() {
-		if (isJSPTag())
-			return false;
-		if (isCommentTag())
-			return false;
-		if (!isXMLTag())
-			return false;
-		return this.isEmptyTag;
-	}
-
-	/**
-	 */
-	public boolean isEndTag() {
-		return (hasEndTag() && !hasStartTag() && !hasChildNodes());
-	}
-
-	/**
-	 */
-	public boolean isGlobalTag() {
-		return !hasPrefix();
-	}
-
-	/**
-	 */
-	public boolean isImplicitTag() {
-		if (hasStartTag() || hasEndTag())
-			return false;
-		// make sure this is in the document tree
-		// because if not in the document tree, no tags are generated yet
-		return (getContainerDocument() != null);
-	}
-
-	/**
-	 */
-	public boolean isJSPContainer() {
-		return (isJSPTag() && !isCommentTag() && isContainer());
-	}
-
-	/**
-	 * isJSPTag method
-	 * 
-	 * @return boolean
-	 */
-	public final boolean isJSPTag() {
-		return this.isJSPTag;
-	}
-
-	/**
-	 */
-	public boolean isStartTagClosed() {
-		IStructuredDocumentRegion flatNode = getStructuredDocumentRegion();
-		if (flatNode == null)
-			return true; // will be generated
-		String regionType = StructuredDocumentRegionUtil.getLastRegionType(flatNode);
-		if (isCommentTag()) {
-			return (isNestedClosedComment(regionType) || regionType == DOMRegionContext.XML_COMMENT_CLOSE);
-		}
-		if (isJSPTag()) {
-			if (isContainer())
-				return true; // start tag always has a single region
-			return isClosedNestedDirective(regionType);
-		}
-		return (regionType == DOMRegionContext.XML_TAG_CLOSE || regionType == DOMRegionContext.XML_EMPTY_TAG_CLOSE || regionType == DOMRegionContext.XML_DECLARATION_CLOSE);
-	}
-
-	protected boolean isClosedNestedDirective(String regionType) {
-		boolean result = false;
-		return result;
-	}
-
-	/**
-	 */
-	public final boolean isXMLTag() {
-		if (isJSPTag())
-			return false;
-		if (isCommentTag())
-			return false;
-		DocumentImpl document = (DocumentImpl) getOwnerDocument();
-		if (document != null && !document.isXMLType()) {
-			// even in non-XML document, if having prefix, it's XML tag
-			return hasPrefix();
-		}
-		return true;
-	}
-
-	/**
-	 */
-	protected boolean matchEndTag(Element element) {
-		if (element == null)
-			return false;
-		ElementImpl impl = (ElementImpl) element;
-		if (isJSPTag() && !isCommentTag()) {
-			return (impl.isJSPTag() && !impl.isCommentTag());
-		}
-		return matchTagName(element.getTagName());
-	}
-
-	/**
-	 * matchTagName method
-	 * 
-	 * @return boolean
-	 * @param tagName
-	 *            java.lang.String
-	 */
-	public boolean matchTagName(String tagName) {
-		if (tagName == null)
-			return (this.tagName == null);
-		if (this.tagName == null)
-			return false;
-		if (!ignoreCase())
-			return this.tagName.equals(tagName);
-		return this.tagName.equalsIgnoreCase(tagName);
-	}
-
-	/**
-	 * notifyAttrReplaced method
-	 * 
-	 * @param newAttr
-	 *            org.w3c.dom.Attr
-	 * @param oldAttr
-	 *            org.w3c.dom.Attr
-	 */
-	protected void notifyAttrReplaced(Attr newAttr, Attr oldAttr) {
-		DocumentImpl document = (DocumentImpl) getContainerDocument();
-		if (document == null)
-			return;
-		DOMModelImpl model = (DOMModelImpl) document.getModel();
-		if (model == null)
-			return;
-		model.attrReplaced(this, newAttr, oldAttr);
-	}
-
-	/**
-	 * notifyValueChanged method
-	 */
-	public void notifyEndTagChanged() {
-		DocumentImpl document = (DocumentImpl) getContainerDocument();
-		if (document == null)
-			return;
-		DOMModelImpl model = (DOMModelImpl) document.getModel();
-		if (model == null)
-			return;
-		model.endTagChanged(this);
-	}
-
-	/**
-	 */
-	public void notifyStartTagChanged() {
-		DocumentImpl document = (DocumentImpl) getContainerDocument();
-		if (document == null)
-			return;
-		DOMModelImpl model = (DOMModelImpl) document.getModel();
-		if (model == null)
-			return;
-		model.startTagChanged(this);
-	}
-
-	/**
-	 */
-	public boolean preferEmptyTag() {
-		if (hasChildNodes())
-			return false;
-		if (isJSPTag())
-			return false;
-		if (isCommentTag())
-			return false;
-		if (!isXMLTag())
-			return false;
-		CMElementDeclaration decl = getDeclaration();
-		if (decl == null)
-			return false;
-		return (decl.getContentType() == CMElementDeclaration.EMPTY);
-	}
-
-	/**
-	 * removeAttribute method
-	 * 
-	 * @param name
-	 *            java.lang.String
-	 */
-	public void removeAttribute(String name) throws DOMException {
-		removeAttributeNode(name);
-	}
-
-	/**
-	 * removeAttributeNode method
-	 * 
-	 * @return org.w3c.dom.Attr
-	 * @param oldAttr
-	 *            org.w3c.dom.Attr
-	 */
-	public Attr removeAttributeNode(Attr oldAttr) throws DOMException {
-		if (oldAttr == null)
-			return null; // invalid parameter
-
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		if (this.attrNodes == null) { // no attribute
-			throw new DOMException(DOMException.NOT_FOUND_ERR, new String());
-		}
-
-		int length = this.attrNodes.getLength();
-		for (int i = 0; i < length; i++) {
-			AttrImpl attr = (AttrImpl) this.attrNodes.item(i);
-			if (attr != oldAttr)
-				continue;
-
-			// found
-			this.attrNodes.removeNode(i);
-			attr.setOwnerElement(null);
-
-			notifyAttrReplaced(null, attr);
-			return attr;
-		}
-
-		// not found
-		throw new DOMException(DOMException.NOT_FOUND_ERR, new String());
-	}
-
-	/**
-	 * removeAttributeNode method
-	 * 
-	 * @return org.w3c.dom.Attr
-	 * @param name
-	 *            java.lang.String
-	 */
-	public Attr removeAttributeNode(String name) {
-		if (name == null)
-			return null; // invalid parameter
-		if (this.attrNodes == null)
-			return null; // no attribute
-
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		int length = this.attrNodes.getLength();
-		for (int i = 0; i < length; i++) {
-			AttrImpl attr = (AttrImpl) this.attrNodes.item(i);
-			if (attr == null)
-				continue;
-			if (!attr.matchName(name))
-				continue;
-
-			// found
-			this.attrNodes.removeNode(i);
-			attr.setOwnerElement(null);
-
-			notifyAttrReplaced(null, attr);
-			return attr;
-		}
-
-		return null; // not found
-	}
-
-	/**
-	 */
-	public Attr removeAttributeNodeNS(String uri, String name) {
-		if (name == null)
-			return null; // invalid parameter
-		if (this.attrNodes == null)
-			return null; // no attribute
-
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		int length = this.attrNodes.getLength();
-		for (int i = 0; i < length; i++) {
-			AttrImpl attr = (AttrImpl) this.attrNodes.item(i);
-			if (attr == null)
-				continue;
-			String localName = attr.getLocalName();
-			if (localName == null || !localName.equals(name))
-				continue;
-			String nsURI = attr.getNamespaceURI();
-			if (uri == null) {
-				if (nsURI != null)
-					continue;
-			}
-			else {
-				if (nsURI == null || !nsURI.equals(uri))
-					continue;
-			}
-
-			// found
-			this.attrNodes.removeNode(i);
-			attr.setOwnerElement(null);
-
-			notifyAttrReplaced(null, attr);
-			return attr;
-		}
-
-		return null; // not found
-	}
-
-	/**
-	 */
-	public void removeAttributeNS(String uri, String name) throws DOMException {
-		removeAttributeNodeNS(uri, name);
-	}
-
-	/**
-	 * removeAttributes method
-	 */
-	public void removeAttributes() {
-		if (this.attrNodes == null)
-			return;
-
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		int length = this.attrNodes.getLength();
-		for (int i = 0; i < length; i++) {
-			AttrImpl attr = (AttrImpl) this.attrNodes.item(i);
-			if (attr != null) {
-				attr.setOwnerElement(null);
-				notifyAttrReplaced(null, attr);
-			}
-		}
-
-		this.attrNodes = null;
-	}
-
-	/**
-	 * removeEndTag method
-	 * 
-	 * @return org.w3c.dom.Element
-	 */
-	protected Element removeEndTag() {
-		if (!hasEndTag())
-			return null;
-		NodeListImpl attrNodes = this.attrNodes;
-		this.attrNodes = null; // not to copy attributes
-		ElementImpl end = (ElementImpl) cloneNode(false);
-		this.attrNodes = attrNodes;
-		if (end == null)
-			return null;
-
-		// move the end flat node to the end tag
-		IStructuredDocumentRegion flatNode = getEndStructuredDocumentRegion();
-		if (flatNode == null)
-			return null;
-		setEndStructuredDocumentRegion(null);
-		end.setEndStructuredDocumentRegion(flatNode);
-		return end;
-	}
-
-	/**
-	 */
-	protected void removeStartTag() {
-		removeAttributes();
-	}
-
-	/**
-	 * Resets attribute values from IStructuredDocumentRegion.
-	 */
-	void resetStructuredDocumentRegions() {
-		if (this.attrNodes != null) {
-			int length = this.attrNodes.getLength();
-			for (int i = 0; i < length; i++) {
-				AttrImpl attr = (AttrImpl) this.attrNodes.item(i);
-				if (attr == null)
-					continue;
-				attr.resetRegions();
-			}
-		}
-
-		super.resetStructuredDocumentRegions(); // for children
-
-		this.endStructuredDocumentRegion = null;
-	}
-
-	/**
-	 * setAttribute method
-	 * 
-	 * @param name
-	 *            java.lang.String
-	 * @param value
-	 *            java.lang.String
-	 */
-	public void setAttribute(String name, String value) throws DOMException {
-		if (name == null)
-			return;
-
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		Attr attr = getAttributeNode(name);
-		if (attr != null) {
-			attr.setValue(value); // change value
-			return;
-		}
-
-		// new attribute
-		Document doc = getOwnerDocument();
-		if (doc == null)
-			return;
-		attr = doc.createAttribute(name);
-		if (attr == null)
-			return;
-		attr.setValue(value);
-		appendAttributeNode(attr);
-	}
-
-	/**
-	 * setAttributeNode method
-	 * 
-	 * @return org.w3c.dom.Attr
-	 * @param newAttr
-	 *            org.w3c.dom.Attr
-	 */
-	public Attr setAttributeNode(Attr newAttr) throws DOMException {
-		if (newAttr == null)
-			return null; // nothing to do
-
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		AttrImpl attr = (AttrImpl) newAttr;
-		Element owner = attr.getOwnerElement();
-		if (owner != null) {
-			if (owner == this)
-				return null; // nothing to do
-			throw new DOMException(DOMException.INUSE_ATTRIBUTE_ERR, new String());
-		}
-
-		Attr oldAttr = removeAttributeNode(newAttr.getName());
-		appendAttributeNode(attr);
-		return oldAttr;
-	}
-
-	/**
-	 */
-	public Attr setAttributeNodeNS(Attr newAttr) throws DOMException {
-		if (newAttr == null)
-			return null; // nothing to do
-
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		AttrImpl attr = (AttrImpl) newAttr;
-		Element owner = attr.getOwnerElement();
-		if (owner != null) {
-			if (owner == this)
-				return null; // nothing to do
-			throw new DOMException(DOMException.INUSE_ATTRIBUTE_ERR, new String());
-		}
-
-		String name = newAttr.getLocalName();
-		String uri = newAttr.getNamespaceURI();
-		Attr oldAttr = removeAttributeNodeNS(uri, name);
-		appendAttributeNode(attr);
-		return oldAttr;
-	}
-
-	/**
-	 * ISSUE: we should check for and throw NAMESPACE_ERR, according to spec. 
-	 */
-	public void setAttributeNS(String uri, String qualifiedName, String value) throws DOMException {
-		if (qualifiedName == null)
-			return;
-
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=139552
-		// fix provided by Valentin Baciu
-		int index = qualifiedName.indexOf(':');
-		String localName = index != -1 ? qualifiedName.substring(index + 1) : qualifiedName;
-
-		Attr attr = getAttributeNodeNS(uri, localName);
-		if (attr != null) {
-			attr.setValue(value); // change value
-		}
-		else {
-
-			// new attribute
-			Document doc = getOwnerDocument();
-			if (doc != null) {
-				attr = doc.createAttributeNS(uri, qualifiedName);
-				if (attr != null) {
-					attr.setValue(value);
-					appendAttributeNode(attr);
-				}
-			}
-		}
-	}
-
-	/**
-	 */
-	public void setCommentTag(boolean isCommentTag) {
-		IDOMNode parent = (IDOMNode) getParentNode();
-		if (parent != null && !parent.isChildEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		this.isCommentTag = isCommentTag;
-	}
-
-	/**
-	 * setEmptyTag method
-	 * 
-	 * @param isEmptyTag
-	 *            boolean
-	 */
-	public void setEmptyTag(boolean isEmptyTag) {
-		IDOMNode parent = (IDOMNode) getParentNode();
-		if (parent != null && !parent.isChildEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		this.isEmptyTag = isEmptyTag;
-	}
-
-	/**
-	 * setEndStructuredDocumentRegion method
-	 * 
-	 * @param flatNode
-	 */
-	void setEndStructuredDocumentRegion(IStructuredDocumentRegion flatNode) {
-		this.endStructuredDocumentRegion = flatNode;
-
-		NodeContainer parent = (NodeContainer) getParentNode();
-		if (parent != null) {
-			parent.syncChildEditableState(this);
-		}
-	}
-
-	/**
-	 * setJSPTag method
-	 * 
-	 * @param isJSPTag
-	 *            boolean
-	 */
-	public void setJSPTag(boolean isJSPTag) {
-		IDOMNode parent = (IDOMNode) getParentNode();
-		if (parent != null && !parent.isChildEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		this.isJSPTag = isJSPTag;
-	}
-
-	/**
-	 */
-	protected void setNamespaceURI(String namespaceURI) {
-		this.namespaceURI = namespaceURI;
-	}
-
-	/**
-	 */
-	protected void setOwnerDocument(Document ownerDocument, boolean deep) {
-		super.setOwnerDocument(ownerDocument, deep);
-
-		if (this.attrNodes == null)
-			return;
-
-		int length = this.attrNodes.getLength();
-		for (int i = 0; i < length; i++) {
-			AttrImpl attr = (AttrImpl) this.attrNodes.item(i);
-			if (attr == null)
-				continue;
-			attr.setOwnerDocument(ownerDocument);
-		}
-	}
-
-	/**
-	 */
-	public void setPrefix(String prefix) throws DOMException {
-		IDOMNode parent = (IDOMNode) getParentNode();
-		if (parent != null && !parent.isChildEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		int prefixLength = (prefix != null ? prefix.length() : 0);
-		String localName = getLocalName();
-		if (prefixLength == 0) {
-			if (localName == null || localName.length() == 0) {
-				// invalid local name
-				return;
-			}
-			setTagName(localName);
-		}
-		else {
-			int localLength = (localName != null ? localName.length() : 0);
-			StringBuffer buffer = new StringBuffer(prefixLength + 1 + localLength);
-			buffer.append(prefix);
-			buffer.append(':');
-			if (localName != null)
-				buffer.append(localName);
-			setTagName(buffer.toString());
-		}
-
-		boolean changeEndTag = hasEndTag();
-		notifyStartTagChanged();
-		if (changeEndTag)
-			notifyEndTagChanged();
-	}
-
-	/**
-	 * setStartStructuredDocumentRegion method
-	 * 
-	 * @param flatNode
-	 */
-	void setStartStructuredDocumentRegion(IStructuredDocumentRegion flatNode) {
-		setStructuredDocumentRegion(flatNode);
-	}
-
-	/**
-	 * setTagName method
-	 * 
-	 * @param tagName
-	 *            java.lang.String
-	 */
-	protected void setTagName(String tagName) {
-		this.tagName = tagName;
-	}
-
-	/**
-	 * toString method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		String tagName = getTagName();
-		if (hasStartTag())
-			buffer.append(tagName);
-		if (isEmptyTag())
-			buffer.append('/');
-		if (hasEndTag()) {
-			buffer.append('/');
-			buffer.append(tagName);
-		}
-		if (buffer.length() == 0)
-			buffer.append(tagName);
-
-		IStructuredDocumentRegion startStructuredDocumentRegion = getStartStructuredDocumentRegion();
-		if (startStructuredDocumentRegion != null) {
-			buffer.append('@');
-			buffer.append(startStructuredDocumentRegion.toString());
-		}
-		IStructuredDocumentRegion endStructuredDocumentRegion = getEndStructuredDocumentRegion();
-		if (endStructuredDocumentRegion != null) {
-			buffer.append('@');
-			buffer.append(endStructuredDocumentRegion.toString());
-		}
-		return buffer.toString();
-	}
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation for DOM 3.
-	 */
-	public void setIdAttribute(String name, boolean isId) throws DOMException {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not supported in this version"); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation for DOM 3.
-	 */
-	public void setIdAttributeNS(String namespaceURI, String localName, boolean isId) throws DOMException {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not supported in this version"); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation for DOM 3.
-	 */
-	public void setIdAttributeNode(Attr idAttr, boolean isId) throws DOMException {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not supported in this version"); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/EntityImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/EntityImpl.java
deleted file mode 100644
index 924546d..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/EntityImpl.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
- *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Entity;
-import org.w3c.dom.Node;
-import org.w3c.dom.UserDataHandler;
-
-/**
- * EntityImpl class
- */
-public class EntityImpl extends NodeImpl implements Entity {
-
-	private String name = null;
-	private String notationName = null;
-	private String publicId = null;
-	private String systemId = null;
-
-	/**
-	 * EntityImpl constructor
-	 */
-	protected EntityImpl() {
-		super();
-	}
-
-	/**
-	 * EntityImpl constructor
-	 * 
-	 * @param that
-	 *            EntityImpl
-	 */
-	protected EntityImpl(EntityImpl that) {
-		super(that);
-
-		if (that != null) {
-			this.name = that.name;
-			this.publicId = that.publicId;
-			this.systemId = that.systemId;
-			this.notationName = that.notationName;
-		}
-	}
-
-	/**
-	 * cloneNode method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param deep
-	 *            boolean
-	 */
-	public Node cloneNode(boolean deep) {
-		EntityImpl cloned = new EntityImpl(this);
-		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
-		return cloned;
-	}
-
-	/**
-	 * <p>
-	 * EXPERIMENTAL! Based on the <a
-	 * href='http://www.w3.org/TR/2001/WD-DOM-Level-3-Core-20010605'>Document
-	 * Object Model (DOM) Level 3 Core Working Draft of 5 June 2001. </a>.
-	 * <p>
-	 * An attribute specifying, as part of the text declaration, the encoding
-	 * of this entity, when it is an external parsed entity. This is
-	 * <code>null</code> otherwise.
-	 * 
-	 * @see DOM Level 3
-	 */
-	public java.lang.String getEncoding() {
-		return null;
-	}
-
-	/**
-	 * getNodeName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		if (this.name == null)
-			return new String();
-		return this.name;
-	}
-
-	/**
-	 * getNodeType method
-	 * 
-	 * @return short
-	 */
-	public short getNodeType() {
-		return ENTITY_NODE;
-	}
-
-	/**
-	 * getNotationName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getNotationName() {
-		return this.notationName;
-	}
-
-	/**
-	 * getPublicId method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getPublicId() {
-		return this.publicId;
-	}
-
-	/**
-	 * getSystemId method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getSystemId() {
-		return this.systemId;
-	}
-
-	/**
-	 * <p>
-	 * EXPERIMENTAL! Based on the <a
-	 * href='http://www.w3.org/TR/2001/WD-DOM-Level-3-Core-20010605'>Document
-	 * Object Model (DOM) Level 3 Core Working Draft of 5 June 2001. </a>.
-	 * <p>
-	 * An attribute specifying, as part of the text declaration, the version
-	 * number of this entity, when it is an external parsed entity. This is
-	 * <code>null</code> otherwise.
-	 * 
-	 * @see DOM Level 3
-	 */
-	public java.lang.String getVersion() {
-		return null;
-	}
-
-	/**
-	 * <p>
-	 * EXPERIMENTAL! Based on the <a
-	 * href='http://www.w3.org/TR/2001/WD-DOM-Level-3-Core-20010605'>Document
-	 * Object Model (DOM) Level 3 Core Working Draft of 5 June 2001. </a>.
-	 * <p>
-	 * An attribute specifying, as part of the text declaration, the encoding
-	 * of this entity, when it is an external parsed entity. This is
-	 * <code>null</code> otherwise.
-	 * 
-	 * @see DOM Level 3
-	 */
-	public void setEncoding(java.lang.String encoding) {
-	}
-
-	/**
-	 * setName method
-	 * 
-	 * @param name
-	 *            java.lang.String
-	 */
-	protected void setName(String name) {
-		this.name = name;
-	}
-
-	/**
-	 * setNotationName method
-	 * 
-	 * @param notationName
-	 *            java.lang.String
-	 */
-	public void setNotationName(String notationName) {
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		this.notationName = notationName;
-	}
-
-	/**
-	 * setPublicId method
-	 * 
-	 * @param publicId
-	 *            java.lang.String
-	 */
-	public void setPublicId(String publicId) {
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		this.publicId = publicId;
-	}
-
-	/**
-	 * setSystemId method
-	 * 
-	 * @param systemId
-	 *            java.lang.String
-	 */
-	public void setSystemId(String systemId) {
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		this.systemId = systemId;
-	}
-
-	/**
-	 * <p>
-	 * EXPERIMENTAL! Based on the <a
-	 * href='http://www.w3.org/TR/2001/WD-DOM-Level-3-Core-20010605'>Document
-	 * Object Model (DOM) Level 3 Core Working Draft of 5 June 2001. </a>.
-	 * <p>
-	 * An attribute specifying, as part of the text declaration, the version
-	 * number of this entity, when it is an external parsed entity. This is
-	 * <code>null</code> otherwise.
-	 * 
-	 * @see DOM Level 3
-	 */
-	public void setVersion(java.lang.String version) {
-	}
-
-	public String getInputEncoding() {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version"); //$NON-NLS-1$
-	}
-
-	public String getXmlEncoding() {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version"); //$NON-NLS-1$
-	}
-
-
-	public String getXmlVersion() {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version"); //$NON-NLS-1$
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/EntityReferenceImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/EntityReferenceImpl.java
deleted file mode 100644
index f8a8071..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/EntityReferenceImpl.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
- *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.w3c.dom.EntityReference;
-import org.w3c.dom.Node;
-import org.w3c.dom.UserDataHandler;
-
-/**
- * EntityReference class
- */
-public class EntityReferenceImpl extends NodeImpl implements EntityReference {
-
-	private String name = null;
-
-	/**
-	 * EntityReferenceImpl constructor
-	 */
-	protected EntityReferenceImpl() {
-		super();
-	}
-
-	/**
-	 * EntityReferenceImpl constructor
-	 * 
-	 * @param that
-	 *            EntityReferenceImpl
-	 */
-	protected EntityReferenceImpl(EntityReferenceImpl that) {
-		super(that);
-
-		if (that != null) {
-			this.name = that.name;
-		}
-	}
-
-	/**
-	 * cloneNode method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param deep
-	 *            boolean
-	 */
-	public Node cloneNode(boolean deep) {
-		EntityReferenceImpl cloned = new EntityReferenceImpl(this);
-		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
-		return cloned;
-	}
-
-	/**
-	 * getNodeName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		if (this.name == null)
-			return new String();
-		return this.name;
-	}
-
-	/**
-	 * getNodeType method
-	 * 
-	 * @return short
-	 */
-	public short getNodeType() {
-		return ENTITY_REFERENCE_NODE;
-	}
-
-	/**
-	 * setName method
-	 * 
-	 * @param name
-	 *            java.lang.String
-	 */
-	protected void setName(String name) {
-		this.name = name;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/InvalidCharacterException.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/InvalidCharacterException.java
deleted file mode 100644
index 1a3a079..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/InvalidCharacterException.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-/**
- * Thrown an invalid character is specified in : XMLNode#setSource(String)
- */
-public class InvalidCharacterException extends Exception {
-
-	/**
-	 * Default <code>serialVersionUID</code>
-	 */
-	private static final long serialVersionUID = 1L;
-	private char invalidChar = 0;
-	private int offset = -1;
-
-	/**
-	 */
-	public InvalidCharacterException() {
-		super();
-	}
-
-	/**
-	 */
-	public InvalidCharacterException(String s) {
-		super(s);
-	}
-
-	/**
-	 */
-	public InvalidCharacterException(String s, char c) {
-		super(s);
-		this.invalidChar = c;
-	}
-
-	/**
-	 */
-	public InvalidCharacterException(String s, char c, int offset) {
-		super(s);
-		this.invalidChar = c;
-		this.offset = offset;
-	}
-
-	/**
-	 */
-	public char getInvalidChar() {
-		return this.invalidChar;
-	}
-
-	/**
-	 */
-	public int getOffset() {
-		return this.offset;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/JSPTag.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/JSPTag.java
deleted file mode 100644
index 6f2de44..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/JSPTag.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-/**
- * JSPTag interface
- */
-public interface JSPTag {
-	static final String COMMENT_CLOSE = "--%>";//$NON-NLS-1$
-	static final String COMMENT_OPEN = "<%--";//$NON-NLS-1$
-	static final String DECLARATION_TOKEN = "!";//$NON-NLS-1$
-	static final String DIRECTIVE_TOKEN = "@";//$NON-NLS-1$
-	static final String EXPRESSION_TOKEN = "=";//$NON-NLS-1$
-	static final String JSP_DECLARATION = "jsp:declaration";//$NON-NLS-1$
-	static final String JSP_DIRECTIVE = "jsp:directive";//$NON-NLS-1$
-	static final String JSP_EXPRESSION = "jsp:expression";//$NON-NLS-1$
-	static final String JSP_ROOT = "jsp:root";//$NON-NLS-1$
-
-	static final String JSP_SCRIPTLET = "jsp:scriptlet";//$NON-NLS-1$
-	static final String TAG_CLOSE = "%>";//$NON-NLS-1$
-	static final String TAG_OPEN = "<%";//$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ModelParserAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ModelParserAdapter.java
deleted file mode 100644
index 0b7e13d..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ModelParserAdapter.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-/**
- */
-public interface ModelParserAdapter extends INodeAdapter {
-
-	/**
-	 */
-	public boolean canBeImplicitTag(Element element);
-
-	/**
-	 */
-	public boolean canBeImplicitTag(Element element, Node child);
-
-	/**
-	 */
-	public boolean canContain(Element element, Node child);
-
-	/**
-	 */
-	public Element createCommentElement(Document document, String data, boolean isJSPTag);
-
-	/**
-	 */
-	public Element createImplicitElement(Document document, Node parent, Node child);
-
-	/**
-	 */
-	public String getFindRootName(String tagName);
-
-	/**
-	 */
-	public boolean isEndTag(IDOMElement element);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeContainer.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeContainer.java
deleted file mode 100644
index f653163..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeContainer.java
+++ /dev/null
@@ -1,514 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentFragment;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-/**
- * NodeContainer class
- */
-public abstract class NodeContainer extends NodeImpl implements Node, NodeList {
-
-	/**
-	 */
-	private class ChildNodesCache implements NodeList {
-		private Node curChild = null;
-		private int curIndex = -1;
-		private int length = 0;
-
-		ChildNodesCache() {
-			initializeCache();
-		}
-
-		public int getLength() {
-			// atomic
-			return this.length;
-		}
-
-		private void initializeCache() {
-			// note we use the outter objects lockobject
-			// (since we are using their "children".
-			synchronized (lockObject) {
-				for (Node child = firstChild; child != null; child = child.getNextSibling()) {
-					this.length++;
-				}
-			}
-		}
-
-		public Node item(int index) {
-			synchronized (lockObject) {
-				if (this.length == 0)
-					return null;
-				if (index < 0)
-					return null;
-				if (index >= this.length)
-					return null;
-
-				if (this.curIndex < 0) { // first time
-					if (index * 2 >= this.length) { // search from the last
-						this.curIndex = this.length - 1;
-						this.curChild = lastChild;
-					} else { // search from the first
-						this.curIndex = 0;
-						this.curChild = firstChild;
-					}
-				}
-
-				if (index == this.curIndex)
-					return this.curChild;
-
-				if (index > this.curIndex) {
-					while (index > this.curIndex) {
-						this.curIndex++;
-						this.curChild = this.curChild.getNextSibling();
-					}
-				} else { // index < this.curIndex
-					while (index < this.curIndex) {
-						this.curIndex--;
-						this.curChild = this.curChild.getPreviousSibling();
-					}
-				}
-
-				return this.curChild;
-			}
-		}
-	}
-
-	private NodeList childNodesCache = null;
-
-	private boolean fChildEditable = true;
-	NodeImpl firstChild = null;
-	NodeImpl lastChild = null;
-
-	Object lockObject = new byte[0];
-
-	/**
-	 * NodeContainer constructor
-	 */
-	protected NodeContainer() {
-		super();
-	}
-
-	/**
-	 * NodeContainer constructor
-	 * 
-	 * @param that
-	 *            NodeContainer
-	 */
-	protected NodeContainer(NodeContainer that) {
-		super(that);
-	}
-
-	/**
-	 * appendChild method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param newChild
-	 *            org.w3c.dom.Node
-	 */
-	public Node appendChild(Node newChild) throws DOMException {
-		return insertBefore(newChild, null);
-	}
-
-	/**
-	 * cloneChildNodes method
-	 * 
-	 * @param container
-	 *            org.w3c.dom.Node
-	 * @param deep
-	 *            boolean
-	 */
-	protected void cloneChildNodes(Node newParent, boolean deep) {
-		if (newParent == null || newParent == this)
-			return;
-		if (!(newParent instanceof NodeContainer))
-			return;
-
-		NodeContainer container = (NodeContainer) newParent;
-		container.removeChildNodes();
-
-		for (Node child = getFirstChild(); child != null; child = child.getNextSibling()) {
-			Node cloned = child.cloneNode(deep);
-			if (cloned != null)
-				container.appendChild(cloned);
-		}
-	}
-
-	/**
-	 * getChildNodes method
-	 * 
-	 * @return org.w3c.dom.NodeList
-	 */
-	public NodeList getChildNodes() {
-		return this;
-	}
-
-	/**
-	 * getFirstChild method
-	 * 
-	 * @return org.w3c.dom.Node
-	 */
-	public Node getFirstChild() {
-		return this.firstChild;
-	}
-
-	/**
-	 * getLastChild method
-	 * 
-	 * @return org.w3c.dom.Node
-	 */
-	public Node getLastChild() {
-		return this.lastChild;
-	}
-
-	/**
-	 * getLength method
-	 * 
-	 * @return int
-	 */
-	public int getLength() {
-		if (this.firstChild == null)
-			return 0;
-		synchronized (lockObject) {
-			if (this.childNodesCache == null)
-				this.childNodesCache = new ChildNodesCache();
-			return this.childNodesCache.getLength();
-		}
-	}
-
-	/**
-	 */
-	public String getSource() {
-		StringBuffer buffer = new StringBuffer();
-
-		IStructuredDocumentRegion startStructuredDocumentRegion = getStartStructuredDocumentRegion();
-		if (startStructuredDocumentRegion != null) {
-			String source = startStructuredDocumentRegion.getText();
-			if (source != null)
-				buffer.append(source);
-		}
-
-		for (NodeImpl child = firstChild; child != null; child = (NodeImpl) child.getNextSibling()) {
-			String source = child.getSource();
-			if (source != null)
-				buffer.append(source);
-		}
-
-		IStructuredDocumentRegion endStructuredDocumentRegion = getEndStructuredDocumentRegion();
-		if (endStructuredDocumentRegion != null) {
-			String source = endStructuredDocumentRegion.getText();
-			if (source != null)
-				buffer.append(source);
-		}
-
-		return buffer.toString();
-	}
-
-	/**
-	 * hasChildNodes method
-	 * 
-	 * @return boolean
-	 */
-	public boolean hasChildNodes() {
-		return (this.firstChild != null);
-	}
-
-	/**
-	 * insertBefore method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param newChild
-	 *            org.w3c.dom.Node
-	 * @param refChild
-	 *            org.w3c.dom.Node
-	 */
-	public Node insertBefore(Node newChild, Node refChild) throws DOMException {
-		if (newChild == null)
-			return null; // nothing to do
-		if (refChild != null && refChild.getParentNode() != this) {
-			throw new DOMException(DOMException.NOT_FOUND_ERR, new String());
-		}
-		if (!isChildEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-		if (newChild == refChild)
-			return newChild; // nothing to do
-
-		if (newChild.getNodeType() == DOCUMENT_FRAGMENT_NODE) {
-			// insert child nodes instead
-			for (Node child = newChild.getFirstChild(); child != null; child = newChild.getFirstChild()) {
-				newChild.removeChild(child);
-				insertBefore(child, refChild);
-			}
-			return newChild;
-		}
-		// synchronized in case another thread is getting item, or length
-		synchronized (lockObject) {
-			this.childNodesCache = null; // invalidate child nodes cache
-		}
-
-		NodeImpl child = (NodeImpl) newChild;
-		NodeImpl next = (NodeImpl) refChild;
-		NodeImpl prev = null;
-		Node oldParent = child.getParentNode();
-		if (oldParent != null)
-			oldParent.removeChild(child);
-		if (next == null) {
-			prev = this.lastChild;
-			this.lastChild = child;
-		} else {
-			prev = (NodeImpl) next.getPreviousSibling();
-			next.setPreviousSibling(child);
-		}
-		if (prev == null)
-			this.firstChild = child;
-		else
-			prev.setNextSibling(child);
-		child.setPreviousSibling(prev);
-		child.setNextSibling(next);
-		child.setParentNode(this);
-		// make sure having the same owner document
-		if (child.getOwnerDocument() == null) {
-			if (getNodeType() == DOCUMENT_NODE) {
-				child.setOwnerDocument((Document) this);
-			} else {
-				child.setOwnerDocument(getOwnerDocument());
-			}
-		}
-
-		notifyChildReplaced(child, null);
-
-		return child;
-	}
-
-	public boolean isChildEditable() {
-		if (!fChildEditable) {
-			DOMModelImpl model = (DOMModelImpl) getModel();
-			if (model != null && model.isReparsing()) {
-				return true;
-			}
-		}
-		return fChildEditable;
-	}
-
-	/**
-	 * isContainer method
-	 * 
-	 * @return boolean
-	 */
-	public boolean isContainer() {
-		return true;
-	}
-
-	/**
-	 * item method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param index
-	 *            int
-	 */
-	public Node item(int index) {
-		if (this.firstChild == null)
-			return null;
-		synchronized (lockObject) {
-			if (this.childNodesCache == null)
-				this.childNodesCache = new ChildNodesCache();
-			return this.childNodesCache.item(index);
-		}
-	}
-
-	/**
-	 * notifyChildReplaced method
-	 * 
-	 * @param newChild
-	 *            org.w3c.dom.Node
-	 * @param oldChild
-	 *            org.w3c.dom.Node
-	 */
-	protected void notifyChildReplaced(Node newChild, Node oldChild) {
-		DocumentImpl document = (DocumentImpl) getContainerDocument();
-		if (document == null)
-			return;
-
-		syncChildEditableState(newChild);
-
-		DOMModelImpl model = (DOMModelImpl) document.getModel();
-		if (model == null)
-			return;
-		model.childReplaced(this, newChild, oldChild);
-	}
-
-	/**
-	 * removeChild method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param oldChild
-	 *            org.w3c.dom.Node
-	 */
-	public Node removeChild(Node oldChild) throws DOMException {
-		if (oldChild == null)
-			return null;
-		if (oldChild.getParentNode() != this) {
-			throw new DOMException(DOMException.NOT_FOUND_ERR, new String());
-		}
-
-		if (!isChildEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		// synchronized in case another thread is getting item, or length
-		synchronized (lockObject) {
-			this.childNodesCache = null; // invalidate child nodes cache
-		}
-
-		NodeImpl child = (NodeImpl) oldChild;
-		NodeImpl prev = (NodeImpl) child.getPreviousSibling();
-		NodeImpl next = (NodeImpl) child.getNextSibling();
-
-		child.setEditable(true, true); // clear ReadOnly flags
-
-		if (prev == null)
-			this.firstChild = next;
-		else
-			prev.setNextSibling(next);
-		if (next == null)
-			this.lastChild = prev;
-		else
-			next.setPreviousSibling(prev);
-		child.setPreviousSibling(null);
-		child.setNextSibling(null);
-		child.setParentNode(null);
-
-		notifyChildReplaced(null, child);
-
-		return child;
-	}
-
-	/**
-	 * removeChildNodes method
-	 */
-	public void removeChildNodes() {
-		if (!isChildEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		Node nextChild = null;
-		for (Node child = getFirstChild(); child != null; child = nextChild) {
-			nextChild = child.getNextSibling();
-			removeChild(child);
-		}
-	}
-
-	/**
-	 * removeChildNodes method
-	 * 
-	 * @return org.w3c.dom.DocumentFragment
-	 * @param firstChild
-	 *            org.w3c.dom.Node
-	 * @param lastChild
-	 *            org.w3c.dom.Node
-	 */
-	public DocumentFragment removeChildNodes(Node firstChild, Node lastChild) {
-		if (!hasChildNodes())
-			return null;
-		if (!isChildEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		Document document = null;
-		if (getNodeType() == DOCUMENT_NODE)
-			document = (Document) this;
-		else
-			document = getOwnerDocument();
-		if (document == null)
-			return null;
-		DocumentFragment fragment = document.createDocumentFragment();
-		if (fragment == null)
-			return null;
-
-		if (firstChild == null)
-			firstChild = getFirstChild();
-		if (lastChild == null)
-			lastChild = getLastChild();
-		Node nextChild = null;
-		for (Node child = firstChild; child != null; child = nextChild) {
-			nextChild = child.getNextSibling();
-			removeChild(child);
-			fragment.appendChild(child);
-			if (child == lastChild)
-				break;
-		}
-
-		return fragment;
-	}
-
-	/**
-	 * replaceChild method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param newChild
-	 *            org.w3c.dom.Node
-	 * @param oldChild
-	 *            org.w3c.dom.Node
-	 */
-	public Node replaceChild(Node newChild, Node oldChild) throws DOMException {
-		if (!isChildEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		if (oldChild == null)
-			return newChild;
-		if (newChild != null)
-			insertBefore(newChild, oldChild);
-		return removeChild(oldChild);
-	}
-
-	public void setChildEditable(boolean editable) {
-		if (fChildEditable == editable) {
-			return;
-		}
-
-		ReadOnlyController roc = ReadOnlyController.getInstance();
-		Node node;
-		if (editable) {
-			for (node = getFirstChild(); node != null; node = node.getNextSibling()) {
-				roc.unlockNode((IDOMNode) node);
-			}
-		} else {
-			for (node = getFirstChild(); node != null; node = node.getNextSibling()) {
-				roc.lockNode((IDOMNode) node);
-			}
-		}
-
-		fChildEditable = editable;
-		notifyEditableChanged();
-	}
-
-	protected void syncChildEditableState(Node child) {
-		ReadOnlyController roc = ReadOnlyController.getInstance();
-		if (fChildEditable) {
-			roc.unlockNode((NodeImpl) child);
-		} else {
-			roc.lockNode((NodeImpl) child);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeImpl.java
deleted file mode 100644
index a219cff..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeImpl.java
+++ /dev/null
@@ -1,1063 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
- *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import java.io.Serializable;
-import java.util.Enumeration;
-import java.util.Hashtable;
-
-import org.eclipse.wst.sse.core.internal.model.FactoryRegistry;
-import org.eclipse.wst.sse.core.internal.provisional.AbstractNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.DOMImplementation;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentFragment;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.Text;
-import org.w3c.dom.TypeInfo;
-import org.w3c.dom.UserDataHandler;
-
-/**
- * NodeImpl class
- */
-public abstract class NodeImpl extends AbstractNotifier implements Node, IDOMNode {
-	// define one empty nodelist, for repeated use
-	private final static NodeList EMPTY_NODE_LIST = new NodeListImpl();
-
-	private boolean fDataEditable = true;
-	private IStructuredDocumentRegion flatNode = null;
-	private NodeImpl nextSibling = null;
-
-	private DocumentImpl ownerDocument = null;
-	private NodeImpl parentNode = null;
-	private NodeImpl previousSibling = null;
-	
-	private Hashtable userDataTable=null;
-
-	/**
-	 * NodeImpl constructor
-	 */
-	protected NodeImpl() {
-		super();
-	}
-
-	/**
-	 * NodeImpl constructor
-	 * 
-	 * @param that
-	 *            NodeImpl
-	 */
-	protected NodeImpl(NodeImpl that) {
-		if (that != null) {
-			this.ownerDocument = that.ownerDocument;
-		}
-	}
-
-	/**
-	 * appendChild method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param newChild
-	 *            org.w3c.dom.Node
-	 */
-	public Node appendChild(Node newChild) throws DOMException {
-		throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR, new String());
-	}
-
-	/**
-	 * contains method
-	 * 
-	 * @return boolean
-	 * @param offset
-	 *            int
-	 */
-	public boolean contains(int offset) {
-		return (offset >= getStartOffset() && offset < getEndOffset());
-	}
-
-	/**
-	 * @param s
-	 * @param tagName
-	 * @return
-	 */
-	protected String createDOMExceptionMessage(short s, String tagName) {
-		String result = null;
-		// TODO: Should localize these messages, and provide /u escaped
-		// version of tagName
-		result = lookupMessage(s) + " " + tagName; //$NON-NLS-1$
-		return result;
-	}
-
-	/**
-	 * getAttributes method
-	 * 
-	 * @return org.w3c.dom.NamedNodeMap
-	 */
-	public NamedNodeMap getAttributes() {
-		return null;
-	}
-
-	/**
-	 */
-	protected String getCharValue(String name) {
-		DocumentImpl document = (DocumentImpl) getOwnerDocument();
-		if (document == null)
-			return null;
-		return document.getCharValue(name);
-	}
-
-	/**
-	 * getChildNodes method
-	 * 
-	 * @return org.w3c.dom.NodeList
-	 */
-	public NodeList getChildNodes() {
-		// As per DOM spec, correct behavior for getChildNodes is to return a
-		// zero length NodeList, not null, when there are no children.
-		// We'll use a common instance of an empty node list, just to prevent
-		// creating a trival object many many times.
-
-		return EMPTY_NODE_LIST;
-	}
-
-	/**
-	 * getCommonAncestor method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param node
-	 *            org.w3c.dom.Node
-	 */
-	public Node getCommonAncestor(Node node) {
-		if (node == null)
-			return null;
-
-		for (Node na = node; na != null; na = na.getParentNode()) {
-			for (Node ta = this; ta != null; ta = ta.getParentNode()) {
-				if (ta == na)
-					return ta;
-			}
-		}
-
-		return null; // not found
-	}
-
-	/**
-	 * getContainerDocument method
-	 * 
-	 * @return org.w3c.dom.Document
-	 */
-	public Document getContainerDocument() {
-		for (Node node = this; node != null; node = node.getParentNode()) {
-			if (node.getNodeType() == Node.DOCUMENT_NODE) {
-				return (Document) node;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * getEndOffset method
-	 * 
-	 * @return int
-	 */
-	public int getEndOffset() {
-		Node node = this;
-		while (node != null) {
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				ElementImpl element = (ElementImpl) node;
-				IStructuredDocumentRegion endStructuredDocumentRegion = element.getEndStructuredDocumentRegion();
-				if (endStructuredDocumentRegion != null)
-					return endStructuredDocumentRegion.getEnd();
-			}
-
-			Node last = node.getLastChild();
-			if (last != null) { // dig into the last
-				node = last;
-				continue;
-			}
-
-			IStructuredDocumentRegion lastStructuredDocumentRegion = ((NodeImpl) node).getStructuredDocumentRegion();
-			if (lastStructuredDocumentRegion != null)
-				return lastStructuredDocumentRegion.getEnd();
-
-			Node prev = node.getPreviousSibling();
-			if (prev != null) { // move to the previous
-				node = prev;
-				continue;
-			}
-
-			Node parent = node.getParentNode();
-			node = null;
-			while (parent != null) {
-				if (parent.getNodeType() == Node.ELEMENT_NODE) {
-					ElementImpl element = (ElementImpl) parent;
-					IStructuredDocumentRegion startStructuredDocumentRegion = element.getStartStructuredDocumentRegion();
-					if (startStructuredDocumentRegion != null)
-						return startStructuredDocumentRegion.getEnd();
-				}
-				Node parentPrev = parent.getPreviousSibling();
-				if (parentPrev != null) { // move to the previous
-					node = parentPrev;
-					break;
-				}
-				parent = parent.getParentNode();
-			}
-		}
-		return 0;
-	}
-
-	public IStructuredDocumentRegion getEndStructuredDocumentRegion() {
-		return null;
-	}
-
-	/**
-	 */
-	public FactoryRegistry getFactoryRegistry() {
-		IDOMModel model = getModel();
-		if (model != null) {
-			FactoryRegistry reg = model.getFactoryRegistry();
-			if (reg != null)
-				return reg;
-		}
-		return null;
-	}
-
-	/**
-	 * getFirstChild method
-	 * 
-	 * @return org.w3c.dom.Node
-	 */
-	public Node getFirstChild() {
-		return null;
-	}
-
-	/**
-	 * getFirstStructuredDocumentRegion method
-	 * 
-	 */
-	public IStructuredDocumentRegion getFirstStructuredDocumentRegion() {
-		return StructuredDocumentRegionUtil.getStructuredDocumentRegion(this.flatNode);
-	}
-
-	/**
-	 */
-	public int getIndex() {
-		Node parent = getParentNode();
-		if (parent == null)
-			return -1; // error
-		int index = 0;
-		for (Node child = parent.getFirstChild(); child != null; child = child.getNextSibling()) {
-			if (child == this)
-				return index;
-			index++;
-		}
-		return -1; // error
-	}
-
-	/**
-	 * getLastChild method
-	 * 
-	 * @return org.w3c.dom.Node
-	 */
-	public Node getLastChild() {
-		return null;
-	}
-
-	/**
-	 * getLastStructuredDocumentRegion method
-	 * 
-	 */
-	public IStructuredDocumentRegion getLastStructuredDocumentRegion() {
-		return StructuredDocumentRegionUtil.getStructuredDocumentRegion(this.flatNode);
-	}
-
-	/**
-	 */
-	public String getLocalName() {
-		return null;
-	}
-
-	/**
-	 * the default implementation can just refer to the owning document
-	 */
-	public IDOMModel getModel() {
-		if (this.ownerDocument == null)
-			return null;
-		return this.ownerDocument.getModel();
-	}
-
-	/**
-	 * all but attr return null
-	 */
-	public ITextRegion getNameRegion() {
-		return null;
-	}
-
-	/**
-	 */
-	public String getNamespaceURI() {
-		return null;
-	}
-
-	/**
-	 * getNextSibling method
-	 * 
-	 * @return org.w3c.dom.Node
-	 */
-	public Node getNextSibling() {
-		return this.nextSibling;
-	}
-
-	/**
-	 * getNodeAt method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param offset
-	 *            int
-	 */
-	Node getNodeAt(int offset) {
-		IDOMNode parent = this;
-		IDOMNode child = (IDOMNode) getFirstChild();
-		while (child != null) {
-			if (child.getEndOffset() <= offset) {
-				child = (IDOMNode) child.getNextSibling();
-				continue;
-			}
-			if (child.getStartOffset() > offset) {
-				break;
-			}
-
-			IStructuredDocumentRegion startStructuredDocumentRegion = child.getStartStructuredDocumentRegion();
-			if (startStructuredDocumentRegion != null) {
-				if (startStructuredDocumentRegion.getEnd() > offset)
-					return child;
-			}
-
-			// dig more
-			parent = child;
-			child = (IDOMNode) parent.getFirstChild();
-		}
-
-		return parent;
-	}
-
-	/**
-	 * getNodeValue method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getNodeValue() throws DOMException {
-		return null;
-	}
-
-	/**
-	 * getOwnerDocument method
-	 * 
-	 * @return org.w3c.dom.Document
-	 */
-	public Document getOwnerDocument() {
-		return this.ownerDocument;
-	}
-
-	/**
-	 * getParentNode method
-	 * 
-	 * @return org.w3c.dom.Node
-	 */
-	public Node getParentNode() {
-		return this.parentNode;
-	}
-
-	/**
-	 */
-	public String getPrefix() {
-		return null;
-	}
-
-	/**
-	 * getPreviousSibling method
-	 * 
-	 * @return org.w3c.dom.Node
-	 */
-	public Node getPreviousSibling() {
-		return this.previousSibling;
-	}
-
-	/**
-	 */
-	public String getSource() {
-		if (this.flatNode == null)
-			return new String();
-		return this.flatNode.getText();
-	}
-
-	/**
-	 * getStartOffset method
-	 * 
-	 * @return int
-	 */
-	public int getStartOffset() {
-		if (this.flatNode != null)
-			return this.flatNode.getStart();
-		NodeImpl prev = (NodeImpl) getPreviousSibling();
-		if (prev != null)
-			return prev.getEndOffset();
-		Node parent = getParentNode();
-		if (parent != null && parent.getNodeType() == Node.ELEMENT_NODE) {
-			ElementImpl element = (ElementImpl) parent;
-			if (element.hasStartTag())
-				return element.getStartEndOffset();
-			return element.getStartOffset();
-		}
-		// final fallback to look into first child
-		NodeImpl child = (NodeImpl) getFirstChild();
-		while (child != null) {
-			IStructuredDocumentRegion childStructuredDocumentRegion = child.getStructuredDocumentRegion();
-			if (childStructuredDocumentRegion != null)
-				return childStructuredDocumentRegion.getStart();
-			child = (NodeImpl) child.getFirstChild();
-		}
-		return 0;
-	}
-
-	public IStructuredDocumentRegion getStartStructuredDocumentRegion() {
-		return getFirstStructuredDocumentRegion();
-	}
-
-	/**
-	 * Every node (indirectly) knows its structuredDocument
-	 */
-	public IStructuredDocument getStructuredDocument() {
-		return getModel().getStructuredDocument();
-	}
-
-	/**
-	 */
-	IStructuredDocumentRegion getStructuredDocumentRegion() {
-		return this.flatNode;
-	}
-
-	/**
-	 * all but attr return null
-	 */
-	public ITextRegion getValueRegion() {
-		return null;
-	}
-
-	/**
-	 */
-	public String getValueSource() {
-		return getNodeValue();
-	}
-
-	/**
-	 */
-	public boolean hasAttributes() {
-		return false;
-	}
-
-	/**
-	 * hasChildNodes method
-	 * 
-	 * @return boolean
-	 */
-	public boolean hasChildNodes() {
-		return false;
-	}
-
-	/**
-	 * hasProperties method
-	 * 
-	 * @return boolean
-	 */
-	public boolean hasProperties() {
-		return false;
-	}
-
-	/**
-	 * insertBefore method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param newChild
-	 *            org.w3c.dom.Node
-	 * @param refChild
-	 *            org.w3c.dom.Node
-	 */
-	public Node insertBefore(Node newChild, Node refChild) throws DOMException {
-		throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR, new String());
-	}
-
-	public boolean isChildEditable() {
-		return false;
-	}
-
-	/**
-	 */
-	public boolean isClosed() {
-		return true;
-	}
-
-	/**
-	 * isContainer method
-	 * 
-	 * @return boolean
-	 */
-	public boolean isContainer() {
-		return false;
-	}
-
-	public boolean isDataEditable() {
-		if (!fDataEditable) {
-			DOMModelImpl model = (DOMModelImpl) getModel();
-			if (model != null && model.isReparsing()) {
-				return true;
-			}
-		}
-		return fDataEditable;
-	}
-
-	/**
-	 */
-	public boolean isSupported(String feature, String version) {
-		if (this.ownerDocument == null)
-			return false;
-		DOMImplementation impl = this.ownerDocument.getImplementation();
-		if (impl == null)
-			return false;
-		return impl.hasFeature(feature, version);
-	}
-
-	/**
-	 * @param s
-	 * @return
-	 */
-	private String lookupMessage(short s) {
-		// TODO: make localized version
-		String result = null;
-		switch (s) {
-			case DOMException.INVALID_CHARACTER_ERR :
-				result = "INVALID_CHARACTER_ERR"; //$NON-NLS-1$
-				break;
-
-			default :
-				result = new String();
-				break;
-		}
-		return result;
-	}
-
-	/**
-	 * normalize method
-	 */
-	public void normalize() {
-		TextImpl prevText = null;
-		for (Node child = getFirstChild(); child != null; child = child.getNextSibling()) {
-			switch (child.getNodeType()) {
-				case TEXT_NODE : {
-					if (prevText == null) {
-						prevText = (TextImpl) child;
-						break;
-					}
-					Text text = (Text) child;
-					removeChild(text);
-					prevText.appendText(text);
-					child = prevText;
-					break;
-				}
-				case ELEMENT_NODE : {
-					Element element = (Element) child;
-					element.normalize();
-					prevText = null;
-					break;
-				}
-				default :
-					prevText = null;
-					break;
-			}
-		}
-	}
-
-	protected void notifyEditableChanged() {
-		DocumentImpl document = (DocumentImpl) getContainerDocument();
-		if (document == null)
-			return;
-		DOMModelImpl model = (DOMModelImpl) document.getModel();
-		if (model == null)
-			return;
-		model.editableChanged(this);
-	}
-
-	/**
-	 * notifyValueChanged method
-	 */
-	protected void notifyValueChanged() {
-		DocumentImpl document = (DocumentImpl) getContainerDocument();
-		if (document == null)
-			return;
-
-		syncDataEditableState();
-
-		DOMModelImpl model = (DOMModelImpl) document.getModel();
-		if (model == null)
-			return;
-		model.valueChanged(this);
-	}
-
-	/**
-	 * removeChild method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param oldChild
-	 *            org.w3c.dom.Node
-	 */
-	public Node removeChild(Node oldChild) throws DOMException {
-		throw new DOMException(DOMException.NOT_FOUND_ERR, new String());
-	}
-
-	/**
-	 * removeChildNodes method
-	 */
-	public void removeChildNodes() {
-	}
-
-	/**
-	 * removeChildNodes method
-	 * 
-	 * @return org.w3c.dom.DocumentFragment
-	 * @param firstChild
-	 *            org.w3c.dom.Node
-	 * @param lastChild
-	 *            org.w3c.dom.Node
-	 */
-	public DocumentFragment removeChildNodes(Node firstChild, Node lastChild) {
-		return null;
-	}
-
-	/**
-	 * replaceChild method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param newChild
-	 *            org.w3c.dom.Node
-	 * @param oldChild
-	 *            org.w3c.dom.Node
-	 */
-	public Node replaceChild(Node newChild, Node oldChild) throws DOMException {
-		throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR, new String());
-	}
-
-	/**
-	 * Resets children values from IStructuredDocumentRegion.
-	 */
-	void resetStructuredDocumentRegions() {
-		for (NodeImpl child = (NodeImpl) getFirstChild(); child != null; child = (NodeImpl) child.getNextSibling()) {
-			child.resetStructuredDocumentRegions();
-		}
-		this.flatNode = null;
-	}
-
-	public void setChildEditable(boolean editable) {
-		// nop
-	}
-
-	public void setDataEditable(boolean editable) {
-		if (fDataEditable == editable) {
-			return;
-		}
-
-		ReadOnlyController roc = ReadOnlyController.getInstance();
-		if (editable) {
-			roc.unlockData(this);
-		}
-		else {
-			roc.lockData(this);
-		}
-
-		fDataEditable = editable;
-
-		notifyEditableChanged();
-	}
-
-	public void setEditable(boolean editable, boolean deep) {
-		if (deep) {
-			IDOMNode node = (IDOMNode) getFirstChild();
-			while (node != null) {
-				node.setEditable(editable, deep);
-				node = (IDOMNode) node.getNextSibling();
-			}
-		}
-		setChildEditable(editable);
-		setDataEditable(editable);
-	}
-
-	/**
-	 * setNextSibling method
-	 * 
-	 * @param nextSibling
-	 *            org.w3c.dom.Node
-	 */
-	protected void setNextSibling(Node nextSibling) {
-		this.nextSibling = (NodeImpl) nextSibling;
-	}
-
-	/**
-	 * setNodeValue method
-	 * 
-	 * @param nodeValue
-	 *            java.lang.String
-	 */
-	public void setNodeValue(String nodeValue) throws DOMException {
-	}
-
-	/**
-	 * setOwnerDocument method
-	 * 
-	 * @param ownerDocument
-	 *            org.w3c.dom.Document
-	 */
-	protected void setOwnerDocument(Document ownerDocument) {
-		this.ownerDocument = (DocumentImpl) ownerDocument;
-	}
-
-	/**
-	 */
-	protected void setOwnerDocument(Document ownerDocument, boolean deep) {
-		this.ownerDocument = (DocumentImpl) ownerDocument;
-
-		if (deep) {
-			for (NodeImpl child = (NodeImpl) getFirstChild(); child != null; child = (NodeImpl) child.getNextSibling()) {
-				child.setOwnerDocument(ownerDocument, deep);
-			}
-		}
-	}
-
-	/**
-	 * setParentNode method
-	 * 
-	 * @param parentNode
-	 *            org.w3c.dom.Node
-	 */
-	protected void setParentNode(Node parentNode) {
-		this.parentNode = (NodeImpl) parentNode;
-	}
-
-	/**
-	 */
-	public void setPrefix(String prefix) throws DOMException {
-	}
-
-	/**
-	 * setPreviousSibling method
-	 * 
-	 * @param previousSibling
-	 *            org.w3c.dom.Node
-	 */
-	protected void setPreviousSibling(Node previousSibling) {
-		this.previousSibling = (NodeImpl) previousSibling;
-	}
-
-	/**
-	 */
-	public void setSource(String source) throws InvalidCharacterException {
-		// not supported
-	}
-
-	/**
-	 */
-	void setStructuredDocumentRegion(IStructuredDocumentRegion flatNode) {
-		this.flatNode = flatNode;
-	}
-
-	/**
-	 */
-	public void setValueSource(String source) {
-		setNodeValue(source);
-	}
-
-	protected void syncDataEditableState() {
-		ReadOnlyController roc = ReadOnlyController.getInstance();
-		if (fDataEditable) {
-			roc.unlockData(this);
-		}
-		else {
-			roc.lockData(this);
-		}
-	}
-
-	/**
-	 * toString method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String toString() {
-		return getNodeName();
-	}
-
-	public int getLength() {
-		int result = -1;
-		int start = getStartOffset();
-		if (start >= 0) {
-			int end = getEndOffset();
-			if (end >= 0) {
-				result = end - start;
-				if (result < -1) {
-					result = -1;
-				}
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public short compareDocumentPosition(Node other) throws DOMException {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version."); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public String getBaseURI() {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version."); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public Object getFeature(String feature, String version) {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version."); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public String getTextContent() throws DOMException {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version."); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public boolean isDefaultNamespace(String namespaceURI) {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version."); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public boolean isEqualNode(Node arg) {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version."); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public boolean isSameNode(Node other) {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version."); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public String lookupNamespaceURI(String prefix) {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version."); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public String lookupPrefix(String namespaceURI) {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version."); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public void setTextContent(String textContent) throws DOMException {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version."); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public TypeInfo getSchemaTypeInfo() {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version."); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public boolean isId() {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version."); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Retrieves the object for a node associated to a key.
-	 * 
-	 * @param key The key associated with the object.
-	 * @return object The object for this node, associated with the key passed
-	 * or null if there was none set.
-	 *
-	 * @since DOM Level 3
-	 */
-	public Object getUserData(String key) {
-		
-		if (key==null) return null;
-		
-		if (userDataTable!=null) {
-			UserDataAndHandler userDataAndHandler = (UserDataAndHandler) userDataTable.get(key);
-			if (userDataAndHandler!=null) {
-				return userDataAndHandler.getData();
-			} 
-		}
-		return null;	
-	}
-	
-	/**
-	 * Sets the user data and handler for a key
-	 * 
-	 * @param key The key associated with the object.
-	 * @param object The object for this node, associated with the key passed.
-	 * Null passed removes the existing association to the key.
-	 * @param handler UserDataHandler for the userdata associated with this key
-	 * @return Object The previous userdata object if set, null if it was none.  
-	 * 
-	 * @since DOM Level 3
-	 */
-	public Object setUserData(String key, Object data, UserDataHandler handler) {
-
-		UserDataAndHandler previousDataAndHandler=null;
-		
-		//return immediately for null keys
-		if (key ==null) return null;
-		
-		//remove association for the key if data is null
-		if (data==null) {
-			if (userDataTable==null) return null;
-			
-			//see if there is a previous value set
-			previousDataAndHandler = (UserDataAndHandler) userDataTable.get(key);
-			if (previousDataAndHandler!=null) {
-				userDataTable.remove(key);
-				return previousDataAndHandler.getData();
-			}
-			//there is no previous value found
-			return null;
-		}
-		
-		//if data passed is not null
-		//the first data in the hashtable
-		if (userDataTable==null) {
-			userDataTable=new Hashtable();
-			UserDataAndHandler userDataAndHandler=new UserDataAndHandler(data,handler);
-			userDataTable.put(key,userDataAndHandler);
-			return null;
-			//there is already data in the hashtable
-		} else {
-			UserDataAndHandler userDataAndHandler=new UserDataAndHandler(data,handler);
-			previousDataAndHandler=(UserDataAndHandler) userDataTable.put(key,userDataAndHandler);
-			
-			//if we replace a value
-			if (previousDataAndHandler!=null)
-				return previousDataAndHandler.getData();
-			else {
-				return null;
-			}
-		}
-	}
-	
-	/**
-	 * Notifies the UserDataHandlers of the node.
-	 * 
-	 * @param operation
-	 * @param destination
-	 */
-	protected void notifyUserDataHandlers(short operation, Node destination) {
-		
-		if (operation!=UserDataHandler.NODE_ADOPTED 
-				& operation!=UserDataHandler.NODE_CLONED
-				& operation!=UserDataHandler.NODE_DELETED
-				& operation!=UserDataHandler.NODE_IMPORTED
-				& operation!=UserDataHandler.NODE_RENAMED)
-			return; 
-			
-		if (userDataTable!=null) {
-			Enumeration keys=userDataTable.keys();
-			while (keys.hasMoreElements()) {
-				String key=(String) keys.nextElement(); //should always be a string
-				UserDataAndHandler dataAndHandler = (UserDataAndHandler) userDataTable.get(key);
-				if (dataAndHandler!=null) {
-					UserDataHandler dataHandler=dataAndHandler.getHandler();
-					if (dataHandler!=null) {
-						dataHandler.handle(operation, key, dataAndHandler.getData(), this, destination);
-					}
-				}
-			}
-		}
-	}
-	
-	/**
-	 * 
-	 * Class for user data and UserDataHandler
-	 */
-	protected class UserDataAndHandler implements Serializable {
-
-		/**
-		 * Generated Serial ID
-		 */
-		private static final long serialVersionUID = 4860521237315444840L;
-		/**
-		 * Generated serialization version
-		 */
-		
-		private Object data;
-		private UserDataHandler handler;
-		
-		public UserDataAndHandler(Object data, UserDataHandler handler)
-		{
-			this.data=data;
-			this.handler=handler;
-		}
-
-		public Object getData() {
-			return data;
-		}
-
-		public void setData(Object data) {
-			this.data = data;
-		}
-
-		public UserDataHandler getHandler() {
-			return handler;
-		}
-
-		public void setHandler(UserDataHandler handler) {
-			this.handler = handler;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeIteratorImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeIteratorImpl.java
deleted file mode 100644
index c4a278b..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeIteratorImpl.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Node;
-import org.w3c.dom.traversal.NodeFilter;
-import org.w3c.dom.traversal.NodeIterator;
-
-/**
- * NodeIteratorImpl class
- */
-public class NodeIteratorImpl implements NodeIterator {
-	private NodeFilter filter = null;
-	private Node nextNode = null;
-
-	private Node rootNode = null;
-	private int whatToShow = NodeFilter.SHOW_ALL;
-
-	/**
-	 * NodeIteratorImpl constructor
-	 * 
-	 * @param rootNode
-	 *            org.w3c.dom.Node
-	 */
-	NodeIteratorImpl(Node rootNode, int whatToShow, NodeFilter filter) {
-		this.rootNode = rootNode;
-		this.nextNode = rootNode;
-		this.whatToShow = whatToShow;
-		this.filter = filter;
-	}
-
-	/**
-	 */
-	private final boolean acceptNode(Node node) {
-		if (this.whatToShow != NodeFilter.SHOW_ALL) {
-			if (node == null)
-				return false;
-			short nodeType = node.getNodeType();
-			switch (this.whatToShow) {
-				case NodeFilter.SHOW_ELEMENT :
-					if (nodeType != Node.ELEMENT_NODE)
-						return false;
-					break;
-				case NodeFilter.SHOW_ATTRIBUTE :
-					if (nodeType != Node.ATTRIBUTE_NODE)
-						return false;
-					break;
-				case NodeFilter.SHOW_TEXT :
-					if (nodeType != Node.TEXT_NODE)
-						return false;
-					break;
-				case NodeFilter.SHOW_CDATA_SECTION :
-					if (nodeType != Node.CDATA_SECTION_NODE)
-						return false;
-					break;
-				case NodeFilter.SHOW_ENTITY_REFERENCE :
-					if (nodeType != Node.ENTITY_REFERENCE_NODE)
-						return false;
-					break;
-				case NodeFilter.SHOW_ENTITY :
-					if (nodeType != Node.ENTITY_NODE)
-						return false;
-					break;
-				case NodeFilter.SHOW_PROCESSING_INSTRUCTION :
-					if (nodeType != Node.PROCESSING_INSTRUCTION_NODE)
-						return false;
-					break;
-				case NodeFilter.SHOW_COMMENT :
-					if (nodeType != Node.COMMENT_NODE)
-						return false;
-					break;
-				case NodeFilter.SHOW_DOCUMENT :
-					if (nodeType != Node.DOCUMENT_NODE)
-						return false;
-					break;
-				case NodeFilter.SHOW_DOCUMENT_TYPE :
-					if (nodeType != Node.DOCUMENT_TYPE_NODE)
-						return false;
-					break;
-				case NodeFilter.SHOW_DOCUMENT_FRAGMENT :
-					if (nodeType != Node.DOCUMENT_FRAGMENT_NODE)
-						return false;
-					break;
-				case NodeFilter.SHOW_NOTATION :
-					if (nodeType != Node.NOTATION_NODE)
-						return false;
-					break;
-				default :
-					return false;
-			}
-		}
-		if (this.filter != null) {
-			return (this.filter.acceptNode(node) == NodeFilter.FILTER_ACCEPT);
-		}
-		return true;
-	}
-
-	/**
-	 * Detaches the <code>NodeIterator</code> from the set which it iterated
-	 * over, releasing any computational resources and placing the iterator in
-	 * the INVALID state. After <code>detach</code> has been invoked, calls
-	 * to <code>nextNode</code> or <code>previousNode</code> will raise
-	 * the exception INVALID_STATE_ERR.
-	 */
-	public void detach() {
-		this.rootNode = null;
-		this.nextNode = null;
-		this.filter = null;
-	}
-
-	/**
-	 * The value of this flag determines whether the children of entity
-	 * reference nodes are visible to the iterator. If false, they and their
-	 * descendants will be rejected. Note that this rejection takes precedence
-	 * over <code>whatToShow</code> and the filter. Also note that this is
-	 * currently the only situation where <code>NodeIterators</code> may
-	 * reject a complete subtree rather than skipping individual nodes. <br>
-	 * <br>
-	 * To produce a view of the document that has entity references expanded
-	 * and does not expose the entity reference node itself, use the
-	 * <code>whatToShow</code> flags to hide the entity reference node and
-	 * set <code>expandEntityReferences</code> to true when creating the
-	 * iterator. To produce a view of the document that has entity reference
-	 * nodes but no entity expansion, use the <code>whatToShow</code> flags
-	 * to show the entity reference node and set
-	 * <code>expandEntityReferences</code> to false.
-	 */
-	public boolean getExpandEntityReferences() {
-		// not supported
-		return false;
-	}
-
-	/**
-	 * The <code>NodeFilter</code> used to screen nodes.
-	 */
-	public NodeFilter getFilter() {
-		return this.filter;
-	}
-
-	/**
-	 */
-	private final Node getNextNode() {
-		if (this.nextNode == null)
-			return null;
-		Node oldNext = this.nextNode;
-		Node child = this.nextNode.getFirstChild();
-		if (child != null) {
-			this.nextNode = child;
-			return oldNext;
-		}
-		for (Node node = this.nextNode; node != null && node != this.rootNode; node = node.getParentNode()) {
-			Node next = node.getNextSibling();
-			if (next != null) {
-				this.nextNode = next;
-				return oldNext;
-			}
-		}
-		this.nextNode = null;
-		return oldNext;
-	}
-
-	/**
-	 */
-	private final Node getPreviousNode() {
-		if (this.nextNode == this.rootNode)
-			return null;
-		Node prev = null;
-		if (this.nextNode == null) {
-			prev = this.rootNode; // never null
-		} else {
-			prev = this.nextNode.getPreviousSibling();
-			if (prev == null) {
-				this.nextNode = this.nextNode.getParentNode();
-				return this.nextNode;
-			}
-		}
-		Node last = prev.getLastChild();
-		while (last != null) {
-			prev = last;
-			last = prev.getLastChild();
-		}
-		this.nextNode = prev;
-		return this.nextNode;
-	}
-
-	/**
-	 * The root node of the <code>NodeIterator</code>, as specified when it
-	 * was created.
-	 */
-	public Node getRoot() {
-		return this.rootNode;
-	}
-
-	/**
-	 * This attribute determines which node types are presented via the
-	 * iterator. The available set of constants is defined in the
-	 * <code>NodeFilter</code> interface. Nodes not accepted by
-	 * <code>whatToShow</code> will be skipped, but their children may still
-	 * be considered. Note that this skip takes precedence over the filter, if
-	 * any.
-	 */
-	public int getWhatToShow() {
-		return this.whatToShow;
-	}
-
-	/**
-	 * Returns the next node in the set and advances the position of the
-	 * iterator in the set. After a <code>NodeIterator</code> is created,
-	 * the first call to <code>nextNode()</code> returns the first node in
-	 * the set.
-	 * 
-	 * @return The next <code>Node</code> in the set being iterated over, or
-	 *         <code>null</code> if there are no more members in that set.
-	 * @exception DOMException
-	 *                INVALID_STATE_ERR: Raised if this method is called after
-	 *                the <code>detach</code> method was invoked.
-	 */
-	public Node nextNode() throws DOMException {
-		for (Node node = getNextNode(); node != null; node = getNextNode()) {
-			if (acceptNode(node))
-				return node;
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the previous node in the set and moves the position of the
-	 * <code>NodeIterator</code> backwards in the set.
-	 * 
-	 * @return The previous <code>Node</code> in the set being iterated
-	 *         over, or <code>null</code> if there are no more members in
-	 *         that set.
-	 * @exception DOMException
-	 *                INVALID_STATE_ERR: Raised if this method is called after
-	 *                the <code>detach</code> method was invoked.
-	 */
-	public Node previousNode() throws DOMException {
-		for (Node node = getPreviousNode(); node != null; node = getPreviousNode()) {
-			if (acceptNode(node))
-				return node;
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeListImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeListImpl.java
deleted file mode 100644
index 4bfed52..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeListImpl.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import java.util.Vector;
-
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * NodeListImpl class
- */
-public class NodeListImpl implements NodeList {
-
-	Object lockObject = new byte[0];
-
-	private Vector nodes = null;
-
-	/**
-	 * NodeListImpl constructor
-	 */
-	public NodeListImpl() {
-		super();
-	}
-
-	/**
-	 * appendNode method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param node
-	 *            org.w3c.dom.Node
-	 */
-	protected Node appendNode(Node node) {
-		if (node == null)
-			return null;
-		if (this.nodes == null)
-			this.nodes = new Vector();
-		this.nodes.addElement(node);
-		return node;
-	}
-
-	/**
-	 * getLength method
-	 * 
-	 * @return int
-	 */
-	public int getLength() {
-		synchronized (lockObject) {
-			if (this.nodes == null)
-				return 0;
-			return this.nodes.size();
-		}
-	}
-
-	/**
-	 */
-	protected Node insertNode(Node node, int index) {
-		if (node == null)
-			return null;
-		if (this.nodes == null || index >= this.nodes.size()) {
-			return appendNode(node);
-		}
-		this.nodes.insertElementAt(node, index);
-		return node;
-	}
-
-	/**
-	 * item method
-	 * 
-	 * @return org.w3c.dom.Node
-	 */
-	public Node item(int index) {
-		synchronized (lockObject) {
-			if (this.nodes == null)
-				return null;
-			if (index < 0 || index >= this.nodes.size())
-				return null;
-			return (Node) this.nodes.elementAt(index);
-		}
-	}
-
-	/**
-	 * removeNode method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param index
-	 *            int
-	 */
-	protected Node removeNode(int index) {
-		if (this.nodes == null)
-			return null; // no node
-		if (index < 0 || index >= this.nodes.size())
-			return null; // invalid parameter
-
-		Node removed = (Node) this.nodes.elementAt(index);
-		this.nodes.removeElementAt(index);
-		return removed;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NotationImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NotationImpl.java
deleted file mode 100644
index 0dbbfe0..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NotationImpl.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
- *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Node;
-import org.w3c.dom.Notation;
-import org.w3c.dom.UserDataHandler;
-
-/**
- * NotationImpl class
- */
-public class NotationImpl extends NodeImpl implements Notation {
-
-	private String name = null;
-	private String publicId = null;
-	private String systemId = null;
-
-	/**
-	 * NotationImpl constructor
-	 */
-	protected NotationImpl() {
-		super();
-	}
-
-	/**
-	 * NotationImpl constructor
-	 * 
-	 * @param that
-	 *            NotationImpl
-	 */
-	protected NotationImpl(NotationImpl that) {
-		super(that);
-
-		if (that != null) {
-			this.name = that.name;
-			this.publicId = that.publicId;
-			this.systemId = that.systemId;
-		}
-	}
-
-	/**
-	 * cloneNode method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param deep
-	 *            boolean
-	 */
-	public Node cloneNode(boolean deep) {
-		NotationImpl cloned = new NotationImpl(this);
-		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
-		return cloned;
-	}
-
-	/**
-	 * getNodeName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		if (this.name == null)
-			return new String();
-		return this.name;
-	}
-
-	/**
-	 * getNodeType method
-	 * 
-	 * @return short
-	 */
-	public short getNodeType() {
-		return NOTATION_NODE;
-	}
-
-	/**
-	 * getPublicId method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getPublicId() {
-		return this.publicId;
-	}
-
-	/**
-	 * getSystemId method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getSystemId() {
-		return this.systemId;
-	}
-
-	/**
-	 * setName method
-	 * 
-	 * @param name
-	 *            java.lang.String
-	 */
-	protected void setName(String name) {
-		this.name = name;
-	}
-
-	/**
-	 * setPublicId method
-	 * 
-	 * @param publicId
-	 *            java.lang.String
-	 */
-	public void setPublicId(String publicId) {
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-		this.publicId = publicId;
-	}
-
-	/**
-	 * setSystemId method
-	 * 
-	 * @param systemId
-	 *            java.lang.String
-	 */
-	public void setSystemId(String systemId) {
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-		this.systemId = systemId;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ProcessingInstructionImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ProcessingInstructionImpl.java
deleted file mode 100644
index 7a1420b..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ProcessingInstructionImpl.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
- *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import java.util.Iterator;
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Node;
-import org.w3c.dom.ProcessingInstruction;
-import org.w3c.dom.UserDataHandler;
-
-
-/**
- * ProcessingInstructionImpl class
- */
-public class ProcessingInstructionImpl extends NodeImpl implements ProcessingInstruction {
-	private String data = null;
-
-	private String target = null;
-
-	/**
-	 * ProcessingInstructionImpl constructor
-	 */
-	protected ProcessingInstructionImpl() {
-		super();
-	}
-
-	/**
-	 * ProcessingInstructionImpl constructor
-	 * 
-	 * @param that
-	 *            ProcessingInstructionImpl
-	 */
-	protected ProcessingInstructionImpl(ProcessingInstructionImpl that) {
-		super(that);
-
-		if (that != null) {
-			this.target = that.target;
-			this.data = that.getData();
-		}
-	}
-
-	/**
-	 * cloneNode method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param deep
-	 *            boolean
-	 */
-	public Node cloneNode(boolean deep) {
-		ProcessingInstructionImpl cloned = new ProcessingInstructionImpl(this);
-		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
-		return cloned;
-	}
-
-	/**
-	 * getData method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getData() {
-		if (this.data != null)
-			return this.data;
-
-		IStructuredDocumentRegion flatNode = getFirstStructuredDocumentRegion();
-		if (flatNode == null)
-			return new String();
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null)
-			return new String();
-
-		ITextRegion targetRegion = null;
-		ITextRegion dataRegion = null;
-		ITextRegion closeRegion = null;
-		Iterator e = regions.iterator();
-		while (e.hasNext()) {
-			ITextRegion region = (ITextRegion) e.next();
-			String regionType = region.getType();
-			if (regionType == DOMRegionContext.XML_PI_OPEN)
-				continue;
-			if (regionType == DOMRegionContext.XML_PI_CLOSE) {
-				closeRegion = region;
-			}
-			else {
-				if (targetRegion == null)
-					targetRegion = region;
-				else if (dataRegion == null)
-					dataRegion = region;
-			}
-		}
-		if (dataRegion == null)
-			return new String();
-		int offset = dataRegion.getStart();
-		int end = flatNode.getLength();
-		if (closeRegion != null)
-			end = closeRegion.getStart();
-		String source = flatNode.getText();
-		return source.substring(offset, end);
-	}
-
-	/**
-	 * getNodeName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return getTarget();
-	}
-
-	/**
-	 * getNodeType method
-	 * 
-	 * @return short
-	 */
-	public short getNodeType() {
-		return PROCESSING_INSTRUCTION_NODE;
-	}
-
-	/**
-	 * getNodeValue method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getNodeValue() {
-		return getData();
-	}
-
-	/**
-	 * getTarget method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getTarget() {
-		if (this.target == null)
-			return new String();
-		return this.target;
-	}
-
-	/**
-	 */
-	public boolean isClosed() {
-		IStructuredDocumentRegion flatNode = getStructuredDocumentRegion();
-		if (flatNode == null)
-			return true; // will be generated
-		String regionType = StructuredDocumentRegionUtil.getLastRegionType(flatNode);
-		return (regionType == DOMRegionContext.XML_PI_CLOSE);
-	}
-
-	/**
-	 */
-	void resetStructuredDocumentRegions() {
-		this.data = getData();
-		setStructuredDocumentRegion(null);
-	}
-
-	/**
-	 * setData method
-	 * 
-	 * @param data
-	 *            java.lang.String
-	 */
-	public void setData(String data) throws DOMException {
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		this.data = data;
-
-		notifyValueChanged();
-	}
-
-	/**
-	 * setNodeValue method
-	 * 
-	 * @param nodeValue
-	 *            java.lang.String
-	 */
-	public void setNodeValue(String nodeValue) throws DOMException {
-		setData(nodeValue);
-	}
-
-	/**
-	 */
-	void setStructuredDocumentRegion(IStructuredDocumentRegion flatNode) {
-		super.setStructuredDocumentRegion(flatNode);
-		if (flatNode != null)
-			this.data = null;
-	}
-
-	/**
-	 * setTarget method
-	 * 
-	 * @param target
-	 *            java.lang.String
-	 */
-	protected void setTarget(String target) {
-		this.target = target;
-	}
-
-	/**
-	 * toString method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append(getTarget());
-		buffer.append('(');
-		buffer.append(getData());
-		buffer.append(')');
-		return buffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/RangeImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/RangeImpl.java
deleted file mode 100644
index f60336e..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/RangeImpl.java
+++ /dev/null
@@ -1,630 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.DocumentFragment;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.Text;
-import org.w3c.dom.ranges.Range;
-import org.w3c.dom.ranges.RangeException;
-
-
-/**
- */
-public class RangeImpl implements Range {
-	private Node endContainer = null;
-	private int endOffset = 0;
-
-	private Node startContainer = null;
-	private int startOffset = 0;
-
-	/**
-	 */
-	protected RangeImpl() {
-		super();
-	}
-
-	/**
-	 */
-	protected RangeImpl(RangeImpl that) {
-		super();
-
-		if (that != null) {
-			this.startContainer = that.startContainer;
-			this.startOffset = that.startOffset;
-			this.endContainer = that.endContainer;
-			this.endOffset = that.endOffset;
-		}
-	}
-
-	/**
-	 * Duplicates the contents of a Range
-	 * 
-	 * @return A DocumentFragment that contains content equivalent to this
-	 *         Range.
-	 * @exception DOMException
-	 *                HIERARCHY_REQUEST_ERR: Raised if a DocumentType node
-	 *                would be extracted into the new DocumentFragment. <br>
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public DocumentFragment cloneContents() throws DOMException {
-		// not supported
-		return null;
-	}
-
-	/**
-	 * Produces a new Range whose boundary-points are equal to the
-	 * boundary-points of the Range.
-	 * 
-	 * @return The duplicated Range.
-	 * @exception DOMException
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public Range cloneRange() throws DOMException {
-		return new RangeImpl(this);
-	}
-
-	/**
-	 * Collapse a Range onto one of its boundary-points
-	 * 
-	 * @param toStartIf
-	 *            TRUE, collapses the Range onto its start; if FALSE,
-	 *            collapses it onto its end.
-	 * @exception DOMException
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public void collapse(boolean toStart) throws DOMException {
-		if (toStart) {
-			this.endContainer = this.startContainer;
-			this.endOffset = this.startOffset;
-		} else {
-			this.startContainer = this.endContainer;
-			this.startOffset = this.endOffset;
-		}
-	}
-
-	/**
-	 * Compare the boundary-points of two Ranges in a document.
-	 * 
-	 * @param howA
-	 *            code representing the type of comparison, as defined above.
-	 * @param sourceRangeThe
-	 *            <code>Range</code> on which this current
-	 *            <code>Range</code> is compared to.
-	 * @return -1, 0 or 1 depending on whether the corresponding
-	 *         boundary-point of the Range is respectively before, equal to,
-	 *         or after the corresponding boundary-point of
-	 *         <code>sourceRange</code>.
-	 * @exception DOMException
-	 *                WRONG_DOCUMENT_ERR: Raised if the two Ranges are not in
-	 *                the same Document or DocumentFragment. <br>
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public short compareBoundaryPoints(short how, Range sourceRange) throws DOMException {
-		if (sourceRange == null)
-			return (short) 0; // error
-
-		Node container1 = null;
-		int offset1 = 0;
-		Node container2 = null;
-		int offset2 = 0;
-
-		switch (how) {
-			case START_TO_START :
-				container1 = this.startContainer;
-				offset1 = this.startOffset;
-				container2 = sourceRange.getStartContainer();
-				offset2 = sourceRange.getStartOffset();
-				break;
-			case START_TO_END :
-				container1 = this.startContainer;
-				offset1 = this.startOffset;
-				container2 = sourceRange.getEndContainer();
-				offset2 = sourceRange.getEndOffset();
-				break;
-			case END_TO_END :
-				container1 = this.endContainer;
-				offset1 = this.endOffset;
-				container2 = sourceRange.getEndContainer();
-				offset2 = sourceRange.getEndOffset();
-				break;
-			case END_TO_START :
-				container1 = this.endContainer;
-				offset1 = this.endOffset;
-				container2 = sourceRange.getStartContainer();
-				offset2 = sourceRange.getStartOffset();
-				break;
-			default :
-				return (short) 0; // error
-		}
-
-		return comparePoints(container1, offset1, container2, offset2);
-	}
-
-	/*
-	 */
-	protected short comparePoints(Node container1, int offset1, Node container2, int offset2) {
-		if (container1 == null || container2 == null)
-			return (short) 0; // error
-
-		if (container1 == container2) {
-			if (offset1 > offset2)
-				return (short) 1;
-			if (offset1 < offset2)
-				return (short) -1;
-			return 0;
-		}
-
-		// get node offsets
-		IDOMNode node1 = null;
-		if (container1.hasChildNodes()) {
-			Node child = container1.getFirstChild();
-			for (int i = 0; i < offset1; i++) {
-				Node next = child.getNextSibling();
-				if (next == null)
-					break;
-				child = next;
-			}
-			node1 = (IDOMNode) child;
-			offset1 = 0;
-		} else {
-			node1 = (IDOMNode) container1;
-		}
-		int nodeOffset1 = node1.getStartOffset();
-		IDOMNode node2 = null;
-		if (container2.hasChildNodes()) {
-			Node child = container2.getFirstChild();
-			for (int i = 0; i < offset2; i++) {
-				Node next = child.getNextSibling();
-				if (next == null)
-					break;
-				child = next;
-			}
-			node2 = (IDOMNode) child;
-			offset2 = 0;
-		} else {
-			node2 = (IDOMNode) container1;
-		}
-		int nodeOffset2 = node2.getStartOffset();
-
-		if (nodeOffset1 > nodeOffset2)
-			return (short) 1;
-		if (nodeOffset1 < nodeOffset2)
-			return (short) -1;
-		if (offset1 > offset2)
-			return (short) 1;
-		if (offset1 < offset2)
-			return (short) -1;
-		return (short) 0;
-	}
-
-	/**
-	 * Removes the contents of a Range from the containing document or
-	 * document fragment without returning a reference to the removed content.
-	 * 
-	 * @exception DOMException
-	 *                NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of
-	 *                the content of the Range is read-only or any of the
-	 *                nodes that contain any of the content of the Range are
-	 *                read-only. <br>
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public void deleteContents() throws DOMException {
-		// not supported
-	}
-
-	/**
-	 * Called to indicate that the Range is no longer in use and that the
-	 * implementation may relinquish any resources associated with this Range.
-	 * Subsequent calls to any methods or attribute getters on this Range will
-	 * result in a <code>DOMException</code> being thrown with an error code
-	 * of <code>INVALID_STATE_ERR</code>.
-	 * 
-	 * @exception DOMException
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public void detach() throws DOMException {
-		this.startContainer = null;
-		this.startOffset = 0;
-		this.endContainer = null;
-		this.endOffset = 0;
-	}
-
-	/**
-	 * Moves the contents of a Range from the containing document or document
-	 * fragment to a new DocumentFragment.
-	 * 
-	 * @return A DocumentFragment containing the extracted contents.
-	 * @exception DOMException
-	 *                NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of
-	 *                the content of the Range is read-only or any of the
-	 *                nodes which contain any of the content of the Range are
-	 *                read-only. <br>
-	 *                HIERARCHY_REQUEST_ERR: Raised if a DocumentType node
-	 *                would be extracted into the new DocumentFragment. <br>
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public DocumentFragment extractContents() throws DOMException {
-		// not supported
-		return null;
-	}
-
-	/**
-	 * TRUE if the Range is collapsed
-	 * 
-	 * @exception DOMException
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public boolean getCollapsed() throws DOMException {
-		if (this.startContainer == this.endContainer && this.startOffset == this.endOffset)
-			return true;
-		return false;
-	}
-
-	/**
-	 * The deepest common ancestor container of the Range's two
-	 * boundary-points.
-	 * 
-	 * @exception DOMException
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public Node getCommonAncestorContainer() throws DOMException {
-		if (this.startContainer == null)
-			return null;
-		return ((NodeImpl) this.startContainer).getCommonAncestor(this.endContainer);
-	}
-
-	/**
-	 * Node within which the Range ends
-	 * 
-	 * @exception DOMException
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public Node getEndContainer() throws DOMException {
-		return this.endContainer;
-	}
-
-	/**
-	 * Offset within the ending node of the Range.
-	 * 
-	 * @exception DOMException
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public int getEndOffset() throws DOMException {
-		return this.endOffset;
-	}
-
-	/**
-	 * Node within which the Range begins
-	 * 
-	 * @exception DOMException
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public Node getStartContainer() throws DOMException {
-		return this.startContainer;
-	}
-
-	/**
-	 * Offset within the starting node of the Range.
-	 * 
-	 * @exception DOMException
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public int getStartOffset() throws DOMException {
-		return this.startOffset;
-	}
-
-	/**
-	 * Inserts a node into the Document or DocumentFragment at the start of
-	 * the Range. If the container is a Text node, this will be split at the
-	 * start of the Range (as if the Text node's splitText method was
-	 * performed at the insertion point) and the insertion will occur between
-	 * the two resulting Text nodes. Adjacent Text nodes will not be
-	 * automatically merged. If the node to be inserted is a DocumentFragment
-	 * node, the children will be inserted rather than the DocumentFragment
-	 * node itself.
-	 * 
-	 * @param newNodeThe
-	 *            node to insert at the start of the Range
-	 * @exception DOMException
-	 *                NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor
-	 *                container of the start of the Range is read-only. <br>
-	 *                WRONG_DOCUMENT_ERR: Raised if <code>newNode</code> and
-	 *                the container of the start of the Range were not created
-	 *                from the same document. <br>
-	 *                HIERARCHY_REQUEST_ERR: Raised if the container of the
-	 *                start of the Range is of a type that does not allow
-	 *                children of the type of <code>newNode</code> or if
-	 *                <code>newNode</code> is an ancestor of the container.
-	 *                <br>
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 * @exception RangeException
-	 *                INVALID_NODE_TYPE_ERR: Raised if <code>newNode</code>
-	 *                is an Attr, Entity, Notation, or Document node.
-	 */
-	public void insertNode(Node newNode) throws RangeException, DOMException {
-		// not supported
-	}
-
-	/**
-	 * Select a node and its contents
-	 * 
-	 * @param refNodeThe
-	 *            node to select.
-	 * @exception RangeException
-	 *                INVALID_NODE_TYPE_ERR: Raised if an ancestor of
-	 *                <code>refNode</code> is an Entity, Notation or
-	 *                DocumentType node or if <code>refNode</code> is a
-	 *                Document, DocumentFragment, Attr, Entity, or Notation
-	 *                node.
-	 * @exception DOMException
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public void selectNode(Node refNode) throws RangeException, DOMException {
-		if (refNode == null)
-			return;
-		Node parent = refNode.getParentNode();
-		if (parent == null)
-			return;
-		int index = ((NodeImpl) refNode).getIndex();
-		if (index < 0)
-			return;
-		setStart(parent, index);
-		setEnd(parent, index + 1);
-	}
-
-	/**
-	 * Select the contents within a node
-	 * 
-	 * @param refNodeNode
-	 *            to select from
-	 * @exception RangeException
-	 *                INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code>
-	 *                or an ancestor of <code>refNode</code> is an Entity,
-	 *                Notation or DocumentType node.
-	 * @exception DOMException
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public void selectNodeContents(Node refNode) throws RangeException, DOMException {
-		if (refNode == null)
-			return;
-		if (refNode.getNodeType() == Node.TEXT_NODE) {
-			Text text = (Text) refNode;
-			setStart(refNode, 0);
-			setEnd(refNode, text.getLength());
-		} else {
-			NodeList childNodes = refNode.getChildNodes();
-			int length = (childNodes != null ? childNodes.getLength() : 0);
-			setStart(refNode, 0);
-			setEnd(refNode, length);
-		}
-	}
-
-	/**
-	 * Sets the attributes describing the end of a Range.
-	 * 
-	 * @param refNodeThe
-	 *            <code>refNode</code> value. This parameter must be
-	 *            different from <code>null</code>.
-	 * @param offsetThe
-	 *            <code>endOffset</code> value.
-	 * @exception RangeException
-	 *                INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code>
-	 *                or an ancestor of <code>refNode</code> is an Entity,
-	 *                Notation, or DocumentType node.
-	 * @exception DOMException
-	 *                INDEX_SIZE_ERR: Raised if <code>offset</code> is
-	 *                negative or greater than the number of child units in
-	 *                <code>refNode</code>. Child units are 16-bit units if
-	 *                <code>refNode</code> is a type of CharacterData node
-	 *                (e.g., a Text or Comment node) or a
-	 *                ProcessingInstruction node. Child units are Nodes in all
-	 *                other cases. <br>
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public void setEnd(Node refNode, int offset) throws RangeException, DOMException {
-		this.endContainer = refNode;
-		this.endOffset = offset;
-	}
-
-	/**
-	 * Sets the end of a Range to be after a node
-	 * 
-	 * @param refNodeRange
-	 *            ends after <code>refNode</code>.
-	 * @exception RangeException
-	 *                INVALID_NODE_TYPE_ERR: Raised if the root container of
-	 *                <code>refNode</code> is not an Attr, Document or
-	 *                DocumentFragment node or if <code>refNode</code> is a
-	 *                Document, DocumentFragment, Attr, Entity, or Notation
-	 *                node.
-	 * @exception DOMException
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public void setEndAfter(Node refNode) throws RangeException, DOMException {
-		if (refNode == null)
-			return;
-		Node parent = refNode.getParentNode();
-		if (parent == null)
-			return;
-		int index = ((NodeImpl) refNode).getIndex();
-		if (index < 0)
-			return;
-		setEnd(parent, index + 1);
-	}
-
-	/**
-	 * Sets the end position to be before a node.
-	 * 
-	 * @param refNodeRange
-	 *            ends before <code>refNode</code>
-	 * @exception RangeException
-	 *                INVALID_NODE_TYPE_ERR: Raised if the root container of
-	 *                <code>refNode</code> is not an Attr, Document, or
-	 *                DocumentFragment node or if <code>refNode</code> is a
-	 *                Document, DocumentFragment, Attr, Entity, or Notation
-	 *                node.
-	 * @exception DOMException
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public void setEndBefore(Node refNode) throws RangeException, DOMException {
-		if (refNode == null)
-			return;
-		Node parent = refNode.getParentNode();
-		if (parent == null)
-			return;
-		int index = ((NodeImpl) refNode).getIndex();
-		if (index < 0)
-			return;
-		setEnd(parent, index);
-	}
-
-	/**
-	 * Sets the attributes describing the start of the Range.
-	 * 
-	 * @param refNodeThe
-	 *            <code>refNode</code> value. This parameter must be
-	 *            different from <code>null</code>.
-	 * @param offsetThe
-	 *            <code>startOffset</code> value.
-	 * @exception RangeException
-	 *                INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code>
-	 *                or an ancestor of <code>refNode</code> is an Entity,
-	 *                Notation, or DocumentType node.
-	 * @exception DOMException
-	 *                INDEX_SIZE_ERR: Raised if <code>offset</code> is
-	 *                negative or greater than the number of child units in
-	 *                <code>refNode</code>. Child units are 16-bit units if
-	 *                <code>refNode</code> is a type of CharacterData node
-	 *                (e.g., a Text or Comment node) or a
-	 *                ProcessingInstruction node. Child units are Nodes in all
-	 *                other cases. <br>
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public void setStart(Node refNode, int offset) throws RangeException, DOMException {
-		this.startContainer = refNode;
-		this.startOffset = offset;
-	}
-
-	/**
-	 * Sets the start position to be after a node
-	 * 
-	 * @param refNodeRange
-	 *            starts after <code>refNode</code>
-	 * @exception RangeException
-	 *                INVALID_NODE_TYPE_ERR: Raised if the root container of
-	 *                <code>refNode</code> is not an Attr, Document, or
-	 *                DocumentFragment node or if <code>refNode</code> is a
-	 *                Document, DocumentFragment, Attr, Entity, or Notation
-	 *                node.
-	 * @exception DOMException
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public void setStartAfter(Node refNode) throws RangeException, DOMException {
-		if (refNode == null)
-			return;
-		Node parent = refNode.getParentNode();
-		if (parent == null)
-			return;
-		int index = ((NodeImpl) refNode).getIndex();
-		if (index < 0)
-			return;
-		setStart(parent, index + 1);
-	}
-
-	/**
-	 * Sets the start position to be before a node
-	 * 
-	 * @param refNodeRange
-	 *            starts before <code>refNode</code>
-	 * @exception RangeException
-	 *                INVALID_NODE_TYPE_ERR: Raised if the root container of
-	 *                <code>refNode</code> is not an Attr, Document, or
-	 *                DocumentFragment node or if <code>refNode</code> is a
-	 *                Document, DocumentFragment, Attr, Entity, or Notation
-	 *                node.
-	 * @exception DOMException
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public void setStartBefore(Node refNode) throws RangeException, DOMException {
-		if (refNode == null)
-			return;
-		Node parent = refNode.getParentNode();
-		if (parent == null)
-			return;
-		int index = ((NodeImpl) refNode).getIndex();
-		if (index < 0)
-			return;
-		setStart(parent, index);
-	}
-
-	/**
-	 * Reparents the contents of the Range to the given node and inserts the
-	 * node at the position of the start of the Range.
-	 * 
-	 * @param newParentThe
-	 *            node to surround the contents with.
-	 * @exception DOMException
-	 *                NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor
-	 *                container of either boundary-point of the Range is
-	 *                read-only. <br>
-	 *                WRONG_DOCUMENT_ERR: Raised if <code> newParent</code>
-	 *                and the container of the start of the Range were not
-	 *                created from the same document. <br>
-	 *                HIERARCHY_REQUEST_ERR: Raised if the container of the
-	 *                start of the Range is of a type that does not allow
-	 *                children of the type of <code>newParent</code> or if
-	 *                <code>newParent</code> is an ancestor of the container
-	 *                or if <code>node</code> would end up with a child node
-	 *                of a type not allowed by the type of <code>node</code>.
-	 *                <br>
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 * @exception RangeException
-	 *                BAD_BOUNDARYPOINTS_ERR: Raised if the Range partially
-	 *                selects a non-text node. <br>
-	 *                INVALID_NODE_TYPE_ERR: Raised if <code> node</code> is
-	 *                an Attr, Entity, DocumentType, Notation, Document, or
-	 *                DocumentFragment node.
-	 */
-	public void surroundContents(Node newParent) throws RangeException, DOMException {
-		// not supported
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ReadOnlyController.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ReadOnlyController.java
deleted file mode 100644
index f80e718..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ReadOnlyController.java
+++ /dev/null
@@ -1,343 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-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.text.BasicStructuredDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.Node;
-
-
-class ReadOnlyController {
-
-	class Span {
-		int length;
-		int offset;
-
-		Span(int offset, int length) {
-			this.offset = offset;
-			this.length = length;
-		}
-	}
-
-	private static ReadOnlyController fInstance;
-
-	static synchronized ReadOnlyController getInstance() {
-		if (fInstance == null) {
-			fInstance = new ReadOnlyController();
-		}
-		return fInstance;
-	}
-
-	static private void lock(IStructuredDocument doc, int offset, int length, boolean canInsertBefore, boolean canInsertAfter) {
-		if (doc == null) {
-			return;
-		}
-		if (doc instanceof BasicStructuredDocument) {
-			((BasicStructuredDocument)doc).makeReadOnly(offset, length, canInsertBefore, canInsertAfter);
-		} else {
-			doc.makeReadOnly(offset, length);
-		}
-	}
-
-	static private void lock(IStructuredDocumentRegion node, boolean canInsertBefore, boolean canInsertAfter) {
-		if (node == null) {
-			return;
-		}
-		IStructuredDocument doc = node.getParentDocument();
-		if (doc == null) {
-			return;
-		}
-		if (doc instanceof BasicStructuredDocument) {
-			((BasicStructuredDocument)doc).makeReadOnly(node.getStart(), node.getLength(), canInsertBefore, canInsertAfter);
-		} else {
-			doc.makeReadOnly(node.getStart(), node.getLength());
-		}
-	}
-
-	static private void unlock(IStructuredDocumentRegion node) {
-		if (node == null) {
-			return;
-		}
-		IStructuredDocument doc = node.getParentDocument();
-		if (doc == null) {
-			return;
-		}
-		doc.clearReadOnly(node.getStart(), node.getLength());
-	}
-
-	private ReadOnlyController() {
-		super();
-	}
-
-	private Span getDataSpan(IDOMNode node) {
-		switch (node.getNodeType()) {
-			case Node.ELEMENT_NODE :
-				return getDataSpanForElement((IDOMElement) node);
-			case Node.TEXT_NODE :
-				return getDataSpanForText((IDOMText) node);
-			default :
-				return new Span(0, -1);
-		}
-	}
-
-	private Span getDataSpanForElement(IDOMElement node) {
-		IStructuredDocumentRegion docRegion = node.getStartStructuredDocumentRegion();
-		if (docRegion == null) {
-			return new Span(0, -1);
-		}
-
-		ITextRegionList regions = docRegion.getRegions();
-		if (regions == null) {
-			return new Span(0, -1);
-		}
-
-		String startType;
-		String endType;
-		if (node.isCommentTag()) {
-			startType = DOMRegionContext.XML_COMMENT_OPEN;
-			endType = DOMRegionContext.XML_COMMENT_CLOSE;
-		} else {
-			startType = DOMRegionContext.XML_TAG_NAME;
-			endType = DOMRegionContext.XML_TAG_CLOSE;
-		}
-
-		int startOffset = -1;
-		int endOffset = -1;
-		ITextRegion prevRegion = null;
-		ITextRegion region;
-		for (int i = 0; i < regions.size(); i++) {
-			region = regions.get(i);
-			String type = region.getType();
-			if (type == startType) {
-				startOffset = region.getEnd();
-			} else if (type == endType && prevRegion != null) {
-				endOffset = prevRegion.getTextEnd();
-			}
-			prevRegion = region;
-		}
-
-		if (0 <= startOffset && 0 <= endOffset) {
-			return new Span(startOffset, endOffset - startOffset);
-		} else {
-			return new Span(0, -1);
-		}
-	}
-
-	private Span getDataSpanForText(IDOMText node) {
-		IStructuredDocumentRegion docRegion = ((NodeImpl) node).getStructuredDocumentRegion();
-		if (docRegion == null) {
-			return new Span(0, -1);
-		}
-		return new Span(0, docRegion.getLength());
-	}
-
-	/**
-	 * This method is used from parent's setChildEditable()
-	 * 
-	 * case 1:<parent><node attr="value"/> <node2></parent>
-	 * x####################x case 2:<parent><node attr="value"> <child>
-	 * </child> </node> </parent> x###################? ?#######x (? :
-	 * editable if node.isEditable() == true)
-	 */
-	void lockBoth(IDOMNode node) {
-		if (node == null) {
-			return;
-		}
-
-		IStructuredDocumentRegion flatNode;
-		boolean canInsert = false;
-
-		// end node (element)
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			flatNode = node.getEndStructuredDocumentRegion();
-			if (flatNode != null) {
-				canInsert = node.isChildEditable();
-				lock(flatNode, canInsert, false);
-			}
-		}
-		// start node
-		flatNode = node.getStartStructuredDocumentRegion();
-		if (flatNode != null) {
-			lock(flatNode, false, canInsert);
-		}
-	}
-
-	void lockData(IDOMNode node) {
-		if (node == null) {
-			return;
-		}
-
-		Span span = getDataSpan(node);
-		if (0 <= span.length) {
-			lock(node.getModel().getStructuredDocument(), node.getStartOffset() + span.offset, span.length, false, false);
-		}
-	}
-
-	/**
-	 * lock itself and all descendants
-	 */
-	void lockDeep(IDOMNode node) {
-		if (node == null) {
-			return;
-		}
-
-		int offset = node.getStartOffset();
-		int length = node.getEndOffset() - offset;
-
-		boolean canInsert = true;
-		IDOMNode parent = (IDOMNode) node.getParentNode();
-		if (parent != null && !parent.isChildEditable()) {
-			canInsert = false;
-		}
-		lock(node.getStructuredDocument(), offset, length, canInsert, canInsert);
-	}
-
-	/**
-	 * This method is used from parent's setChildEditable()
-	 * 
-	 * case 1:<parent><node attr="value"/> <node2></parent> x######x x##x
-	 * case 2:<parent><node attr="value"> <child></child> </node> </parent>
-	 * x######x x#? ?#######x (? : editable if node.isEditable() == true)
-	 */
-	void lockNode(IDOMNode node) {
-		if (node == null) {
-			return;
-		}
-		if (!node.isDataEditable()) {
-			lockBoth(node);
-			return;
-		}
-
-		IStructuredDocumentRegion flatNode;
-		boolean canInsert = false;
-
-		// end node (element)
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			flatNode = node.getEndStructuredDocumentRegion();
-			if (flatNode != null) {
-				canInsert = node.isChildEditable();
-				lock(flatNode, canInsert, false);
-			}
-		}
-		// start node
-		flatNode = node.getStartStructuredDocumentRegion();
-		if (flatNode != null) {
-			Span span = getDataSpan(node);
-			if (0 <= span.length) {
-				IStructuredDocument structuredDocument = flatNode.getParentDocument();
-				int offset, length;
-				offset = flatNode.getStart();
-				length = span.offset;
-				lock(structuredDocument, offset, length, false, false);
-				offset = offset + span.offset + span.length;
-				length = flatNode.getEnd() - offset;
-				lock(structuredDocument, offset, length, canInsert, false);
-			} else {
-				lock(flatNode, false, canInsert);
-			}
-		}
-	}
-
-	private void unlock(IStructuredDocument doc, int offset, int length) {
-		if (doc == null) {
-			return;
-		}
-		doc.clearReadOnly(offset, length);
-	}
-
-	void unlockBoth(IDOMNode node) {
-		if (node == null) {
-			return;
-		}
-
-		IStructuredDocumentRegion flatNode;
-		// start node
-		flatNode = node.getStartStructuredDocumentRegion();
-		if (flatNode != null) {
-			unlock(flatNode);
-		}
-		// end node
-		flatNode = node.getEndStructuredDocumentRegion();
-		if (flatNode != null) {
-			unlock(flatNode);
-		}
-	}
-
-	void unlockData(IDOMNode node) {
-		if (node == null) {
-			return;
-		}
-
-		Span span = getDataSpan(node);
-		if (0 <= span.length) {
-			unlock(node.getModel().getStructuredDocument(), span.offset, span.length);
-		}
-	}
-
-	void unlockDeep(IDOMNode node) {
-		if (node == null) {
-			return;
-		}
-
-		int offset = node.getStartOffset();
-		int length = node.getEndOffset() - offset;
-
-		unlock(node.getStructuredDocument(), offset, length);
-	}
-
-	void unlockNode(IDOMNode node) {
-		if (node == null) {
-			return;
-		}
-
-		IStructuredDocumentRegion flatNode;
-		// end node
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			flatNode = node.getEndStructuredDocumentRegion();
-			if (flatNode != null) {
-				unlock(flatNode);
-			}
-		}
-
-		// start node
-		flatNode = node.getStartStructuredDocumentRegion();
-		if (flatNode != null) {
-			if (node.isDataEditable()) {
-				unlock(flatNode);
-			} else {
-				Span span = getDataSpan(node);
-				if (span.length <= 0) {
-					unlock(flatNode);
-				} else {
-					IStructuredDocument structuredDocument = flatNode.getParentDocument();
-					int offset, length;
-					offset = flatNode.getStart();
-					length = span.offset - offset;
-					unlock(structuredDocument, offset, length);
-					offset = span.offset + span.length;
-					length = flatNode.getEnd() - span.offset;
-					unlock(structuredDocument, offset, length);
-				}
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/SourceValidator.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/SourceValidator.java
deleted file mode 100644
index 66dd565..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/SourceValidator.java
+++ /dev/null
@@ -1,346 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-import org.eclipse.wst.xml.core.internal.XMLCoreMessages;
-import org.eclipse.wst.xml.core.internal.provisional.IXMLCharEntity;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Node;
-
-/**
- */
-public class SourceValidator {
-
-	private NodeImpl node = null;
-
-	/**
-	 */
-	public SourceValidator(Node node) {
-		super();
-
-		if (node != null) {
-			this.node = (NodeImpl) node;
-		}
-	}
-
-	/**
-	 */
-	public String convertSource(String source) {
-		if (source == null)
-			return null;
-		if (this.node == null)
-			return null; // error
-
-		// setup conversion conditions
-		boolean acceptTag = false;
-		boolean acceptClose = false;
-		boolean acceptQuote = false;
-		boolean acceptAmpersand = false;
-		boolean acceptEntityRef = true;
-		boolean acceptJSPEnd = true;
-		String endTagName = null;
-		if (this.node.getNodeType() == Node.ATTRIBUTE_NODE) {
-			IDOMDocument document = (IDOMDocument) this.node.getOwnerDocument();
-			if (document != null && document.isJSPType())
-				acceptTag = true;
-			if (acceptTag) {
-				Attr attr = (Attr) this.node;
-				ElementImpl element = (ElementImpl) attr.getOwnerElement();
-				if (element != null && element.isJSPTag())
-					acceptTag = false;
-			}
-			// if the source does not include single quote,
-			// double quote is valid
-			acceptQuote = (source.indexOf('\'') < 0);
-		} else if (this.node.getNodeType() == Node.TEXT_NODE) {
-			TextImpl text = (TextImpl) this.node;
-			if (text.isJSPContent()) {
-				int index = source.indexOf(JSPTag.TAG_CLOSE);
-				if (index < 0)
-					return source;
-				acceptTag = true;
-				acceptClose = true;
-				acceptQuote = true;
-				acceptAmpersand = true;
-				acceptJSPEnd = false;
-			} else if (text.isCDATAContent()) {
-				endTagName = text.getParentNode().getNodeName();
-				if (endTagName == null)
-					return null; // error
-				acceptTag = true;
-				acceptClose = true;
-				acceptQuote = true;
-				acceptAmpersand = true;
-			}
-		} else {
-			IDOMDocument document = null;
-			if (this.node.getNodeType() == Node.DOCUMENT_NODE) {
-				document = (IDOMDocument) this.node;
-			} else {
-				document = (IDOMDocument) this.node.getOwnerDocument();
-			}
-			if (document != null && document.isJSPType())
-				acceptTag = true;
-		}
-
-		StringBuffer buffer = null;
-		int copiedLength = 0;
-		int length = source.length();
-		for (int i = 0; i < length; i++) {
-			String ref = null;
-			char c = source.charAt(i);
-			switch (c) {
-				case '<' :
-					if (acceptTag) {
-						if (endTagName != null) {
-							if (!matchEndTag(source, i + 1, endTagName))
-								continue;
-						} else {
-							int skip = skipTag(source, i + 1);
-							if (skip >= 0) {
-								i += skip;
-								continue;
-							}
-						}
-						// invalid JSP tag
-					}
-					ref = IXMLCharEntity.LT_REF;
-					break;
-				case '>' :
-					if (acceptClose)
-						continue;
-					ref = IXMLCharEntity.GT_REF;
-					break;
-				case '&' :
-					if (acceptAmpersand)
-						continue;
-					if (acceptEntityRef) {
-						int skip = skipEntityRef(source, i + 1);
-						if (skip >= 0) {
-							i += skip;
-							continue;
-						}
-					}
-					ref = IXMLCharEntity.AMP_REF;
-					break;
-				case '"' :
-					if (acceptQuote)
-						continue;
-					ref = IXMLCharEntity.QUOT_REF;
-					break;
-				case '%' :
-					if (acceptJSPEnd)
-						continue;
-					if (source.charAt(i + 1) != '>')
-						continue;
-					i++;
-					ref = IXMLCharEntity.GT_REF;
-					break;
-				default :
-					continue;
-			}
-
-			if (ref != null) {
-				if (buffer == null) {
-					buffer = new StringBuffer(length + 8);
-				}
-				if (i > copiedLength) {
-					buffer.append(source.substring(copiedLength, i));
-				}
-				buffer.append(ref);
-				copiedLength = i + 1; // skip this character
-			}
-		}
-
-		if (buffer != null) {
-			if (copiedLength < length) {
-				buffer.append(source.substring(copiedLength, length));
-			}
-			return buffer.toString();
-		}
-		return source;
-	}
-
-	/**
-	 */
-	private final boolean matchEndTag(String source, int offset, String endTagName) {
-		if (source == null || endTagName == null)
-			return false;
-		int length = source.length();
-		if (offset < 0 || offset >= length)
-			return false;
-		if (source.charAt(offset) != '/')
-			return false;
-		offset++;
-		int end = offset + endTagName.length();
-		if (end > length)
-			return false;
-		return endTagName.equalsIgnoreCase(source.substring(offset, end));
-	}
-
-	/**
-	 */
-	private final int skipEntityRef(String source, int offset) {
-		if (source == null)
-			return -1;
-		if (offset < 0 || offset >= source.length())
-			return -1;
-		DocumentImpl document = (DocumentImpl) this.node.getOwnerDocument();
-		if (document == null)
-			return -1; // error
-
-		int end = source.indexOf(';', offset);
-		if (end < 0 || end == offset)
-			return -1;
-		String name = source.substring(offset, end);
-		if (name == null || document.getCharValue(name) == null)
-			return -1;
-		return (end + 1 - offset);
-	}
-
-	/**
-	 */
-	private final int skipTag(String source, int offset) {
-		if (source == null)
-			return -1;
-		if (offset < 0 || offset >= source.length())
-			return -1;
-
-		int end = offset;
-		if (source.charAt(offset) == '%') {
-			// JSP tag
-			int found = source.indexOf(JSPTag.TAG_CLOSE, offset + 1);
-			if (found < 0)
-				return -1; // invalid JSP tag
-			end = found + 2;
-		} else {
-			// normal tag
-			int found = source.indexOf('>', offset);
-			if (found < 0)
-				return -1; // invalid tag
-			end = found + 1;
-		}
-		return (end - offset);
-	}
-
-	/**
-	 */
-	public boolean validateSource(String source) throws InvalidCharacterException {
-		if (source == null)
-			return true;
-		if (this.node == null)
-			return false; // error
-		String message = null;
-
-		// setup validation conditions
-		boolean acceptTag = false;
-		boolean acceptClose = false;
-		boolean acceptQuote = true;
-		boolean acceptEntityRef = true;
-		String endTagName = null;
-		if (this.node.getNodeType() == Node.ATTRIBUTE_NODE) {
-			IDOMDocument document = (IDOMDocument) this.node.getOwnerDocument();
-			if (document != null && document.isJSPType())
-				acceptTag = true;
-			if (acceptTag) {
-				Attr attr = (Attr) this.node;
-				ElementImpl element = (ElementImpl) attr.getOwnerElement();
-				if (element != null && element.isJSPTag())
-					acceptTag = false;
-			}
-			// if the source does not include single quote,
-			// double quote is valid
-			acceptQuote = (source.indexOf('\'') < 0);
-		} else if (this.node.getNodeType() == Node.TEXT_NODE) {
-			TextImpl text = (TextImpl) this.node;
-			if (text.isJSPContent()) {
-				int index = source.indexOf(JSPTag.TAG_CLOSE);
-				if (index < 0)
-					return true;
-				message = XMLCoreMessages.Invalid_character_gt_fo_ERROR_;
-				throw new InvalidCharacterException(message, '>', index + 1);
-			} else if (text.isCDATAContent()) {
-				endTagName = text.getParentNode().getNodeName();
-				if (endTagName == null)
-					return false; // error
-				acceptTag = true;
-				acceptClose = true;
-			}
-		} else {
-			IDOMDocument document = null;
-			if (this.node.getNodeType() == Node.DOCUMENT_NODE) {
-				document = (IDOMDocument) this.node;
-			} else {
-				document = (IDOMDocument) this.node.getOwnerDocument();
-			}
-			if (document != null && document.isJSPType())
-				acceptTag = true;
-		}
-
-		char c = 0;
-		int length = source.length();
-		for (int i = 0; i < length; i++) {
-			c = source.charAt(i);
-			switch (c) {
-				case '<' :
-					if (acceptTag) {
-						if (endTagName != null) {
-							if (!matchEndTag(source, i + 1, endTagName))
-								continue;
-						} else {
-							int skip = skipTag(source, i + 1);
-							if (skip >= 0) {
-								i += skip;
-								continue;
-							}
-						}
-						// invalid tag
-					}
-					message = XMLCoreMessages.Invalid_character_lt_fo_ERROR_;
-					break;
-				case '>' :
-					if (acceptClose)
-						continue;
-					message = XMLCoreMessages.Invalid_character_gt_fo_ERROR_;
-					break;
-				case '&' :
-					if (acceptEntityRef) {
-						if (endTagName != null)
-							continue;
-						int skip = skipEntityRef(source, i + 1);
-						if (skip >= 0) {
-							i += skip;
-							continue;
-						}
-						// invalid entity reference
-					}
-					message = XMLCoreMessages.Invalid_character_amp_fo_ERROR_;
-					break;
-				case '"' :
-					if (acceptQuote)
-						continue;
-					message = XMLCoreMessages.Invalid_character__f_EXC_;
-					break;
-				default :
-					continue;
-			}
-
-			if (message != null) {
-				throw new InvalidCharacterException(message, c, i);
-			}
-		}
-
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionChecker.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionChecker.java
deleted file mode 100644
index 547c8f3..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionChecker.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import java.io.IOException;
-import java.io.Writer;
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.Node;
-
-
-/**
- * This class is only for debug purpose.
- */
-public class StructuredDocumentRegionChecker {
-	String EOL = System.getProperty("line.separator"); //$NON-NLS-1$
-
-	private int offset = 0;
-	Writer testWriter = null;
-
-	/**
-	 */
-	public StructuredDocumentRegionChecker() {
-		super();
-	}
-
-	public StructuredDocumentRegionChecker(Writer writer) {
-		super();
-		testWriter = writer;
-	}
-
-	/**
-	 */
-	private void checkChildNodes(Node node) {
-		for (Node child = node.getFirstChild(); child != null; child = child.getNextSibling()) {
-			checkNode(child);
-		}
-	}
-
-	/**
-	 */
-	public void checkModel(IDOMModel model) {
-		checkChildNodes(model.getDocument());
-	}
-
-	/**
-	 */
-	private void checkNode(Node node) {
-		checkStructuredDocumentRegion(((NodeImpl) node).getStructuredDocumentRegion());
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			checkChildNodes(node);
-			checkStructuredDocumentRegion(((ElementImpl) node).getEndStructuredDocumentRegion());
-		}
-	}
-
-	/**
-	 */
-	private void checkStructuredDocumentRegion(IStructuredDocumentRegion flatNode) {
-		if (flatNode == null)
-			return;
-
-		if (flatNode instanceof StructuredDocumentRegionContainer) {
-			StructuredDocumentRegionContainer container = (StructuredDocumentRegionContainer) flatNode;
-			int n = container.getStructuredDocumentRegionCount();
-			for (int i = 0; i < n; i++) {
-				IStructuredDocumentRegion c = container.getStructuredDocumentRegion(i);
-				if (c == null) {
-					reportError("null"); //$NON-NLS-1$
-					continue;
-				}
-				checkStructuredDocumentRegion(c);
-			}
-			return;
-		}
-
-		int start = flatNode.getStart();
-		if (start < this.offset)
-			reportError("overwrap"); //$NON-NLS-1$
-		if (start > this.offset)
-			reportError("gap"); //$NON-NLS-1$
-		int end = flatNode.getEnd();
-		this.offset = end;
-
-		if (flatNode instanceof StructuredDocumentRegionProxy) {
-			StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) flatNode;
-			IStructuredDocumentRegion p = proxy.getStructuredDocumentRegion();
-			if (p == null) {
-				reportError("null"); //$NON-NLS-1$
-				return;
-			}
-			int s = p.getStart();
-			int e = p.getEnd();
-			if (s > start || e < end)
-				reportError("out"); //$NON-NLS-1$
-			if (s == start && e == end)
-				reportWarning("vain"); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 */
-	private void reportError(String message) {
-		String msg = "StructuredDocumentRegionChecker : error : " + message; //$NON-NLS-1$
-		if (testWriter != null) {
-			try {
-				testWriter.write(msg + EOL);
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		} else {
-			System.out.println(msg);
-		}
-		throw new StructuredDocumentRegionManagementException();
-	}
-
-	/**
-	 */
-	private void reportWarning(String message) {
-		String msg = "StructuredDocumentRegionChecker : warning : " + message; //$NON-NLS-1$
-		if (testWriter != null) {
-			try {
-				testWriter.write(msg + EOL);
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		} else {
-			System.out.println(msg);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionContainer.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionContainer.java
deleted file mode 100644
index 1a53784..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionContainer.java
+++ /dev/null
@@ -1,435 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import java.util.Vector;
-
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-
-
-class StructuredDocumentRegionContainer implements IStructuredDocumentRegion {
-
-	private Vector flatNodes = new Vector(2);
-
-	/**
-	 */
-	StructuredDocumentRegionContainer() {
-		super();
-	}
-
-
-	public void addRegion(ITextRegion aRegion) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-
-	}
-
-	public void adjust(int i) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-
-	}
-
-	public void adjustLength(int i) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-
-	}
-
-	public void adjustStart(int i) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-
-	}
-
-	public void adjustTextLength(int i) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-
-	}
-
-	/**
-	 */
-	void appendStructuredDocumentRegion(IStructuredDocumentRegion flatNode) {
-		if (flatNode == null)
-			return;
-		if (flatNode instanceof StructuredDocumentRegionContainer) {
-			StructuredDocumentRegionContainer container = (StructuredDocumentRegionContainer) flatNode;
-			if (container.getStructuredDocumentRegionCount() > 0) {
-				this.flatNodes.addAll(container.flatNodes);
-			}
-		}
-		else {
-			this.flatNodes.addElement(flatNode);
-		}
-	}
-
-	public boolean containsOffset(int i) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public boolean containsOffset(ITextRegion region, int i) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public void equatePositions(ITextRegion region) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-
-	}
-
-	public ITextRegion getDeepestRegionAtCharacterOffset(int offset) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	public int getEnd() {
-		IStructuredDocumentRegion last = getLastStructuredDocumentRegion();
-		if (last == null)
-			return 0;
-		return last.getEnd();
-	}
-
-	/**
-	 */
-	public int getEndOffset() {
-		return getEnd();
-	}
-
-	public int getEndOffset(ITextRegion containedRegion) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public ITextRegion getFirstRegion() {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	IStructuredDocumentRegion getFirstStructuredDocumentRegion() {
-		if (this.flatNodes.isEmpty())
-			return null;
-		return (IStructuredDocumentRegion) this.flatNodes.elementAt(0);
-	}
-
-	/**
-	 */
-	public String getFullText() {
-		return getText();
-	}
-
-	/**
-	 */
-	public String getFullText(ITextRegion aRegion) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	public String getFullText(String context) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public ITextRegion getLastRegion() {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	IStructuredDocumentRegion getLastStructuredDocumentRegion() {
-		int size = this.flatNodes.size();
-		if (size == 0)
-			return null;
-		return (IStructuredDocumentRegion) this.flatNodes.elementAt(size - 1);
-	}
-
-	/** 
-	 */
-	public int getLength() {
-		return (getEnd() - getStart());
-	}
-
-	public IStructuredDocumentRegion getNext() {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public int getNumberOfRegions() {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public ITextRegionContainer getParent() {
-		return null;
-	}
-
-	public IStructuredDocument getParentDocument() {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public IStructuredDocumentRegion getPrevious() {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	public ITextRegion getRegionAtCharacterOffset(int offset) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	public ITextRegionList getRegions() {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	public int getStart() {
-		IStructuredDocumentRegion first = getFirstStructuredDocumentRegion();
-		if (first == null)
-			return 0;
-		return first.getStart();
-	}
-
-	/**
-	 */
-	public int getStartOffset() {
-		return getStart();
-	}
-
-	public int getStartOffset(ITextRegion containedRegion) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	public IStructuredDocument getStructuredDocument() {
-		IStructuredDocumentRegion first = getFirstStructuredDocumentRegion();
-		if (first == null)
-			return null;
-		return first.getParentDocument();
-	}
-
-	/**
-	 */
-	IStructuredDocumentRegion getStructuredDocumentRegion(int index) {
-		if (index < 0 || index >= this.flatNodes.size())
-			return null;
-		return (IStructuredDocumentRegion) this.flatNodes.elementAt(index);
-	}
-
-	/**
-	 */
-	int getStructuredDocumentRegionCount() {
-		return this.flatNodes.size();
-	}
-
-	/**
-	 */
-	public String getText() {
-		int size = this.flatNodes.size();
-		if (size == 0)
-			return new String();
-		StringBuffer buffer = new StringBuffer();
-		for (int i = 0; i < size; i++) {
-			IStructuredDocumentRegion flatNode = (IStructuredDocumentRegion) this.flatNodes.elementAt(i);
-			if (flatNode == null)
-				continue;
-			buffer.append(flatNode.getText());
-		}
-		return buffer.toString();
-	}
-
-	/**
-	 */
-	public String getText(ITextRegion aRegion) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	public String getText(String context) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	public int getTextEnd() {
-		return getEnd();
-	}
-
-	/**
-	 */
-	public int getTextEndOffset() {
-		return getTextEnd();
-	}
-
-	public int getTextEndOffset(ITextRegion containedRegion) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 * The text length is equal to length if there is no white space at the
-	 * end of a region. Otherwise it is smaller than length.
-	 */
-	public int getTextLength() {
-		return (getTextEnd() - getStart());
-	}
-
-	/**
-	 */
-	public String getType() {
-		return "StructuredDocumentRegionContainer";//$NON-NLS-1$
-	}
-
-	/**
-	 */
-	void insertStructuredDocumentRegion(IStructuredDocumentRegion flatNode, int index) {
-		if (flatNode == null)
-			return;
-		if (index < 0)
-			return;
-		int size = this.flatNodes.size();
-		if (index > size)
-			return;
-		if (index == size) {
-			appendStructuredDocumentRegion(flatNode);
-			return;
-		}
-		this.flatNodes.insertElementAt(flatNode, index);
-	}
-
-	public boolean isEnded() {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	IStructuredDocumentRegion removeStructuredDocumentRegion(int index) {
-		if (index < 0 || index >= this.flatNodes.size())
-			return null;
-		IStructuredDocumentRegion flatNode = (IStructuredDocumentRegion) this.flatNodes.elementAt(index);
-		this.flatNodes.removeElementAt(index);
-		return flatNode;
-	}
-
-	/**
-	 */
-	IStructuredDocumentRegion removeStructuredDocumentRegion(IStructuredDocumentRegion oldStructuredDocumentRegion) {
-		if (oldStructuredDocumentRegion == null)
-			return null;
-		int size = this.flatNodes.size();
-		for (int i = 0; i < size; i++) {
-			IStructuredDocumentRegion flatNode = (IStructuredDocumentRegion) this.flatNodes.elementAt(i);
-			if (flatNode == oldStructuredDocumentRegion) {
-				this.flatNodes.removeElementAt(i);
-				return flatNode;
-			}
-		}
-		return null; // not found
-	}
-
-	/**
-	 */
-	IStructuredDocumentRegion replaceStructuredDocumentRegion(IStructuredDocumentRegion flatNode, int index) {
-		if (flatNode == null)
-			return removeStructuredDocumentRegion(index);
-		if (index < 0 || index >= this.flatNodes.size())
-			return null;
-		IStructuredDocumentRegion oldStructuredDocumentRegion = (IStructuredDocumentRegion) this.flatNodes.elementAt(index);
-		this.flatNodes.setElementAt(flatNode, index);
-		return oldStructuredDocumentRegion;
-	}
-
-	public boolean sameAs(IStructuredDocumentRegion region, int shift) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	public boolean sameAs(ITextRegion region, int shift) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public boolean sameAs(ITextRegion oldRegion, IStructuredDocumentRegion documentRegion, ITextRegion newRegion, int shift) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public void setEnded(boolean hasEnd) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public void setLength(int newLength) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public void setNext(IStructuredDocumentRegion newNext) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public void setParentDocument(IStructuredDocument document) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public void setPrevious(IStructuredDocumentRegion newPrevious) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	public void setRegions(ITextRegionList embeddedRegions) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public void setStart(int newStart) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 * toString method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append('{');
-		int count = getStructuredDocumentRegionCount();
-		for (int i = 0; i < count; i++) {
-			if (i != 0)
-				buffer.append(',');
-			IStructuredDocumentRegion flatNode = getStructuredDocumentRegion(i);
-			if (flatNode == null)
-				buffer.append("null");//$NON-NLS-1$
-			else
-				buffer.append(flatNode.toString());
-		}
-		buffer.append('}');
-		return buffer.toString();
-	}
-
-	public StructuredDocumentEvent updateRegion(Object requester, IStructuredDocumentRegion flatnode, String changes, int start, int end) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-
-	public boolean isDeleted() {
-		// if someone "gets" these temp regions by
-		// accident, we'll always return "deleted".
-		return true;
-	}
-
-
-	public void setDeleted(boolean deleted) {
-		// do nothing
-
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionManagementException.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionManagementException.java
deleted file mode 100644
index 90fecbe..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionManagementException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-
-/**
- */
-public class StructuredDocumentRegionManagementException extends RuntimeException {
-
-	/**
-	 * Default <code>serialVersionUID</code>
-	 */
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * StructuredDocumentRegionManagementException constructor
-	 */
-	public StructuredDocumentRegionManagementException() {
-		super("IStructuredDocumentRegion management failed.");//$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionProxy.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionProxy.java
deleted file mode 100644
index cd11447..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionProxy.java
+++ /dev/null
@@ -1,369 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-
-
-class StructuredDocumentRegionProxy implements IStructuredDocumentRegion {
-	private IStructuredDocumentRegion flatNode = null;
-	private int length = 0;
-
-	private int offset = 0;
-
-	/**
-	 */
-	StructuredDocumentRegionProxy() {
-		super();
-	}
-
-	/**
-	 */
-	StructuredDocumentRegionProxy(int offset, int length) {
-		super();
-
-		this.offset = offset;
-		this.length = length;
-	}
-
-	/**
-	 */
-	StructuredDocumentRegionProxy(int offset, int length, IStructuredDocumentRegion flatNode) {
-		super();
-
-		this.offset = offset;
-		this.length = length;
-		this.flatNode = flatNode;
-		if (this.flatNode != null)
-			this.offset -= this.flatNode.getStart();
-	}
-
-	public void addRegion(ITextRegion aRegion) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-
-	}
-
-	public void adjust(int i) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-
-	}
-
-	public void adjustLength(int i) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-
-	}
-
-	public void adjustStart(int i) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-
-	}
-
-	public void adjustTextLength(int i) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-
-	}
-
-	public boolean containsOffset(int i) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public boolean containsOffset(ITextRegion region, int i) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public void equatePositions(ITextRegion region) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-
-	}
-
-	public ITextRegion getDeepestRegionAtCharacterOffset(int offset) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public int getEnd() {
-		int flatNodeOffset = 0;
-		if (this.flatNode != null)
-			flatNodeOffset = this.flatNode.getStart();
-		return flatNodeOffset + this.offset + this.length;
-	}
-
-	public int getEndOffset() {
-		return getEnd();
-	}
-
-	public int getEndOffset(ITextRegion containedRegion) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public ITextRegion getFirstRegion() {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public String getFullText() {
-		return getText();
-	}
-
-	public String getFullText(ITextRegion aRegion) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	public String getFullText(String context) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public ITextRegion getLastRegion() {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public int getLength() {
-		return this.length;
-	}
-
-	public IStructuredDocumentRegion getNext() {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public int getNumberOfRegions() {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	int getOffset() {
-		int flatNodeOffset = 0;
-		if (this.flatNode != null)
-			flatNodeOffset = this.flatNode.getStart();
-		return flatNodeOffset + this.offset;
-	}
-
-	/**
-	 */
-	public ITextRegionContainer getParent() {
-		return null;
-	}
-
-	public IStructuredDocument getParentDocument() {
-		return null;
-		// throw new Error("intentionally not implemented since should never
-		// be called");
-	}
-
-	public IStructuredDocumentRegion getPrevious() {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	public ITextRegion getRegionAtCharacterOffset(int offset) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	public ITextRegionList getRegions() {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	public int getStart() {
-		int flatNodeOffset = 0;
-		if (this.flatNode != null)
-			flatNodeOffset = this.flatNode.getStart();
-		return flatNodeOffset + this.offset;
-	}
-
-	/**
-	 */
-	public int getStartOffset() {
-		return getStart();
-	}
-
-	public int getStartOffset(ITextRegion containedRegion) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	public IStructuredDocument getStructuredDocument() {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/** 
-	 */
-	IStructuredDocumentRegion getStructuredDocumentRegion() {
-		return this.flatNode;
-	}
-
-	/**
-	 */
-	public String getText() {
-		if (this.flatNode == null)
-			return new String();
-		String text = this.flatNode.getText();
-		if (text == null)
-			return new String();
-		int end = this.offset + this.length;
-		return text.substring(this.offset, end);
-	}
-
-	/**
-	 */
-	public String getText(ITextRegion aRegion) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	public String getText(String context) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	public int getTextEnd() {
-		return getEnd();
-	}
-
-	/**
-	 */
-	public int getTextEndOffset() {
-		return getTextEnd();
-	}
-
-	public int getTextEndOffset(ITextRegion containedRegion) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 * The text length is equal to length if there is no white space at the
-	 * end of a region. Otherwise it is smaller than length.
-	 */
-	public int getTextLength() {
-		return getLength();
-	}
-
-	/**
-	 */
-	public String getType() {
-		return "StructuredDocumentRegionProxy";//$NON-NLS-1$
-	}
-
-	public boolean isDeleted() {
-		// I'll assume never really needed here
-		return true;
-	}
-
-	public boolean isEnded() {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public boolean sameAs(IStructuredDocumentRegion region, int shift) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	public boolean sameAs(ITextRegion region, int shift) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public boolean sameAs(ITextRegion oldRegion, IStructuredDocumentRegion documentRegion, ITextRegion newRegion, int shift) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public void setDeleted(boolean deleted) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public void setEnded(boolean hasEnd) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 * had to make public, due to API transition.
-	 */
-	public void setLength(int length) {
-		this.length = length;
-	}
-
-	public void setNext(IStructuredDocumentRegion newNext) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	void setOffset(int offset) {
-		this.offset = offset;
-		if (this.flatNode != null)
-			this.offset -= this.flatNode.getStart();
-	}
-
-	public void setParentDocument(IStructuredDocument document) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public void setPrevious(IStructuredDocumentRegion newPrevious) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public void setRegions(ITextRegionList embeddedRegions) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	public void setStart(int newStart) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-
-	/**
-	 */
-	void setStructuredDocumentRegion(IStructuredDocumentRegion flatNode) {
-		if (this.flatNode != null)
-			this.offset += this.flatNode.getStart();
-		this.flatNode = flatNode;
-		if (this.flatNode != null)
-			this.offset -= flatNode.getStart();
-	}
-
-	/**
-	 * toString method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append('[');
-		buffer.append(getStart());
-		buffer.append(',');
-		buffer.append(getEnd());
-		buffer.append(']');
-		buffer.append('(');
-		if (this.flatNode != null)
-			buffer.append(this.flatNode.toString());
-		else
-			buffer.append("null");//$NON-NLS-1$
-		buffer.append(')');
-		return buffer.toString();
-	}
-
-	public StructuredDocumentEvent updateRegion(Object requester, IStructuredDocumentRegion flatnode, String changes, int start, int end) {
-		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionUtil.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionUtil.java
deleted file mode 100644
index 4bd9b81..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionUtil.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-/**
- * Provides convenient functions to handle IStructuredDocumentRegion and
- * ITextRegion.
- */
-class StructuredDocumentRegionUtil {
-
-	/**
-	 * Extracts contents enclosed with quotes. Quotes may be double or single.
-	 */
-	static String getAttrValue(IStructuredDocumentRegion flatNode, ITextRegion region) {
-		if (region == null)
-			return null;
-		if (flatNode == null)
-			return null;
-		String value = flatNode.getText(region);
-		if (value == null)
-			return null;
-		int length = value.length();
-		if (length == 0)
-			return value;
-		char firstChar = value.charAt(0);
-		if (firstChar == '"' || firstChar == '\'') {
-			if (length == 1)
-				return null;
-			if (value.charAt(length - 1) == firstChar)
-				length--;
-			return value.substring(1, length);
-		}
-		return value;
-	}
-
-	/**
-	 * Extracts the name without heading '&' and tailing ';'.
-	 */
-	static String getEntityRefName(IStructuredDocumentRegion flatNode, ITextRegion region) {
-		if (region == null)
-			return null;
-		String ref = flatNode.getText(region);
-		int length = ref.length();
-		if (length == 0)
-			return ref;
-		int offset = 0;
-		if (ref.charAt(0) == '&')
-			offset = 1;
-		if (ref.charAt(length - 1) == ';')
-			length--;
-		if (offset >= length)
-			return null;
-		return ref.substring(offset, length);
-	}
-
-	/**
-	 * Returns the first region.
-	 */
-	static ITextRegion getFirstRegion(IStructuredDocumentRegion flatNode) {
-		if (flatNode == null)
-			return null;
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null || regions.size() == 0)
-			return null;
-		return regions.get(0);
-	}
-
-	/**
-	 * Returns the type of the first region.
-	 */
-	static String getFirstRegionType(IStructuredDocumentRegion flatNode) {
-		if (flatNode == null)
-			return DOMRegionContext.UNDEFINED;
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null || regions.size() == 0)
-			return DOMRegionContext.UNDEFINED;
-		ITextRegion region = regions.get(0);
-		return region.getType();
-	}
-
-	/**
-	 */
-	static IStructuredDocumentRegion getFirstStructuredDocumentRegion(IStructuredDocumentRegion flatNode) {
-		if (flatNode == null)
-			return null;
-		if (flatNode instanceof StructuredDocumentRegionContainer) {
-			flatNode = ((StructuredDocumentRegionContainer) flatNode).getFirstStructuredDocumentRegion();
-		}
-		if (flatNode instanceof StructuredDocumentRegionProxy) {
-			flatNode = ((StructuredDocumentRegionProxy) flatNode).getStructuredDocumentRegion();
-		}
-		return flatNode;
-	}
-
-	/**
-	 * Returns the last region.
-	 */
-	static ITextRegion getLastRegion(IStructuredDocumentRegion flatNode) {
-		if (flatNode == null)
-			return null;
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null || regions.size() == 0)
-			return null;
-		return regions.get(regions.size() - 1);
-	}
-
-	/**
-	 * Returns the type of the first region.
-	 */
-	static String getLastRegionType(IStructuredDocumentRegion flatNode) {
-		if (flatNode == null)
-			return DOMRegionContext.UNDEFINED;
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null || regions.size() == 0)
-			return DOMRegionContext.UNDEFINED;
-		ITextRegion region = regions.get(regions.size() - 1);
-		return region.getType();
-	}
-
-	/**
-	 */
-	static IStructuredDocumentRegion getLastStructuredDocumentRegion(IStructuredDocumentRegion flatNode) {
-		if (flatNode == null)
-			return null;
-		if (flatNode instanceof StructuredDocumentRegionContainer) {
-			flatNode = ((StructuredDocumentRegionContainer) flatNode).getLastStructuredDocumentRegion();
-		}
-		if (flatNode instanceof StructuredDocumentRegionProxy) {
-			flatNode = ((StructuredDocumentRegionProxy) flatNode).getStructuredDocumentRegion();
-		}
-		return flatNode;
-	}
-
-	/**
-	 */
-	static IStructuredDocumentRegion getStructuredDocumentRegion(IStructuredDocumentRegion flatNode) {
-		if (flatNode == null)
-			return null;
-		if (flatNode instanceof StructuredDocumentRegionProxy) {
-			flatNode = ((StructuredDocumentRegionProxy) flatNode).getStructuredDocumentRegion();
-		}
-		return flatNode;
-	}
-
-	StructuredDocumentRegionUtil() {
-		super();
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/TagAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/TagAdapter.java
deleted file mode 100644
index f49ff7b..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/TagAdapter.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-
-/**
- */
-public interface TagAdapter extends INodeAdapter {
-
-	/**
-	 */
-	String getEndTag(IDOMElement element);
-
-	/**
-	 */
-	String getStartTag(IDOMElement element);
-
-	/**
-	 */
-	boolean isEndTag();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/TextImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/TextImpl.java
deleted file mode 100644
index d386910..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/TextImpl.java
+++ /dev/null
@@ -1,1182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
- *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
-import org.eclipse.wst.xml.core.internal.provisional.document.ISourceGenerator;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-import org.w3c.dom.UserDataHandler;
-
-
-/**
- * TextImpl class
- */
-public class TextImpl extends CharacterDataImpl implements IDOMText {
-
-	/**
-	 */
-	private class StringPair {
-		private String fFirst = null;
-		private String fSecond = null;
-
-		StringPair(String first, String second) {
-			this.fFirst = first;
-			this.fSecond = second;
-		}
-
-		String getFirst() {
-			return this.fFirst;
-		}
-
-		String getSecond() {
-			return this.fSecond;
-		}
-	}
-
-	private String fSource = null;
-
-	/**
-	 * TextImpl constructor
-	 */
-	protected TextImpl() {
-		super();
-	}
-
-	/**
-	 * TextImpl constructor
-	 * 
-	 * @param that
-	 *            TextImpl
-	 */
-	protected TextImpl(TextImpl that) {
-		super(that);
-
-		if (that != null) {
-			this.fSource = that.getSource();
-		}
-	}
-
-	/**
-	 * appendData method
-	 * 
-	 * @param arg
-	 *            java.lang.String
-	 */
-	public void appendData(String arg) throws DOMException {
-		if (arg == null || arg.length() == 0)
-			return;
-
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		String newSource = getSource(arg);
-		if (newSource == null)
-			return;
-		String source = getSource();
-		if (source != null)
-			setTextSource(source + newSource);
-		else
-			setTextSource(newSource);
-	}
-
-	/**
-	 */
-	IStructuredDocumentRegion appendStructuredDocumentRegion(IStructuredDocumentRegion newStructuredDocumentRegion) {
-		if (newStructuredDocumentRegion == null)
-			return null;
-
-		IStructuredDocumentRegion flatNode = getStructuredDocumentRegion();
-		if (flatNode == null) {
-			setStructuredDocumentRegion(newStructuredDocumentRegion);
-			return newStructuredDocumentRegion;
-		}
-
-		if (flatNode instanceof StructuredDocumentRegionContainer) {
-			StructuredDocumentRegionContainer container = (StructuredDocumentRegionContainer) flatNode;
-			container.appendStructuredDocumentRegion(newStructuredDocumentRegion);
-		}
-		else {
-			StructuredDocumentRegionContainer container = new StructuredDocumentRegionContainer();
-			container.appendStructuredDocumentRegion(flatNode);
-			container.appendStructuredDocumentRegion(newStructuredDocumentRegion);
-			setStructuredDocumentRegion(container);
-		}
-
-		return newStructuredDocumentRegion;
-	}
-
-	/**
-	 * appendText method
-	 * 
-	 * @param text
-	 *            org.w3c.dom.Text
-	 */
-	public void appendText(Text newText) {
-		if (newText == null)
-			return;
-
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		TextImpl text = (TextImpl) newText;
-		String newSource = text.getSource();
-		if (newSource == null || newSource.length() == 0)
-			return;
-		String source = getSource();
-		if (source != null)
-			setTextSource(source + newSource);
-		else
-			setTextSource(newSource);
-	}
-
-	/**
-	 * cloneNode method
-	 * 
-	 * @return org.w3c.dom.Node
-	 * @param deep
-	 *            boolean
-	 */
-	public Node cloneNode(boolean deep) {
-		TextImpl cloned = new TextImpl(this);
-		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
-		return cloned;
-	}
-
-	/**
-	 * deleteData method
-	 * 
-	 * @param offset
-	 *            int
-	 * @param count
-	 *            int
-	 */
-	public void deleteData(int offset, int count) throws DOMException {
-		if (count == 0)
-			return;
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-		if (count < 0 || offset < 0) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-
-		String source = getSource();
-		if (source == null || source.length() == 0) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-		StringPair pair = substringSourceExcluded(source, offset, count);
-		if (pair == null)
-			return;
-		source = null;
-		String first = pair.getFirst();
-		if (first != null)
-			source = first;
-		String second = pair.getSecond();
-		if (second != null) {
-			if (source != null)
-				source += second;
-			else
-				source = second;
-		}
-		if (source == null)
-			source = new String(); // delete all
-		setTextSource(source);
-	}
-
-	/**
-	 * getData method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getData() throws DOMException {
-		if (this.fSource != null)
-			return getData(this.fSource);
-		String data = super.getData();
-		if (data != null)
-			return data;
-		return getData(getStructuredDocumentRegion());
-	}
-
-	/**
-	 */
-	private String getData(IStructuredDocumentRegion flatNode) {
-		if (flatNode == null)
-			return new String();
-
-		if (flatNode instanceof StructuredDocumentRegionContainer) {
-			StructuredDocumentRegionContainer container = (StructuredDocumentRegionContainer) flatNode;
-			int length = container.getLength();
-			if (length < 16)
-				length = 16; // default
-			StringBuffer buffer = new StringBuffer(length);
-			int count = container.getStructuredDocumentRegionCount();
-			for (int i = 0; i < count; i++) {
-				IStructuredDocumentRegion content = container.getStructuredDocumentRegion(i);
-				String data = getData(content);
-				if (data == null)
-					continue;
-				buffer.append(data);
-			}
-			return buffer.toString();
-		}
-
-		if (flatNode instanceof StructuredDocumentRegionProxy) {
-			return flatNode.getText();
-		}
-
-		ITextRegion region = StructuredDocumentRegionUtil.getFirstRegion(flatNode);
-		if (region != null) {
-			String regionType = region.getType();
-			if (regionType == DOMRegionContext.XML_ENTITY_REFERENCE || regionType == DOMRegionContext.XML_CHAR_REFERENCE) {
-				String name = StructuredDocumentRegionUtil.getEntityRefName(flatNode, region);
-				if (name != null) {
-					DocumentImpl document = (DocumentImpl) getOwnerDocument();
-					if (document != null) {
-						String value = document.getCharValue(name);
-						if (value != null)
-							return value;
-					}
-				}
-			}
-		}
-
-		return flatNode.getText();
-	}
-
-	/**
-	 * Returns data for the source
-	 */
-	private String getData(String source) {
-		if (source == null)
-			return null;
-		StringBuffer buffer = null;
-		int offset = 0;
-		int length = source.length();
-		int ref = source.indexOf('&');
-		while (ref >= 0) {
-			int end = source.indexOf(';', ref + 1);
-			if (end > ref + 1) {
-				String name = source.substring(ref + 1, end);
-				String value = getCharValue(name);
-				if (value != null) {
-					if (buffer == null)
-						buffer = new StringBuffer(length);
-					if (ref > offset)
-						buffer.append(source.substring(offset, ref));
-					buffer.append(value);
-					offset = end + 1;
-					ref = end;
-				}
-			}
-			ref = source.indexOf('&', ref + 1);
-		}
-		if (buffer == null)
-			return source;
-		if (length > offset)
-			buffer.append(source.substring(offset));
-		return buffer.toString();
-	}
-
-	/**
-	 * getFirstStructuredDocumentRegion method
-	 * 
-	 */
-	public IStructuredDocumentRegion getFirstStructuredDocumentRegion() {
-		return StructuredDocumentRegionUtil.getFirstStructuredDocumentRegion(getStructuredDocumentRegion());
-	}
-
-	/**
-	 * getLastStructuredDocumentRegion method
-	 * 
-	 */
-	public IStructuredDocumentRegion getLastStructuredDocumentRegion() {
-		return StructuredDocumentRegionUtil.getLastStructuredDocumentRegion(getStructuredDocumentRegion());
-	}
-
-	/**
-	 * getNodeName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return "#text";//$NON-NLS-1$
-	}
-
-	/**
-	 * getNodeType method
-	 * 
-	 * @return short
-	 */
-	public short getNodeType() {
-		return TEXT_NODE;
-	}
-
-	/**
-	 */
-	public String getSource() {
-		if (this.fSource != null)
-			return this.fSource;
-		String data = super.getData();
-		if (data != null && data.length() > 0) {
-			String source = getSource(data);
-			if (source != null)
-				return source;
-		}
-		return super.getSource();
-	}
-
-	/**
-	 * Returns source for the data
-	 */
-	private String getSource(String data) {
-		if (data == null)
-			return null;
-		IDOMModel model = getModel();
-		if (model == null)
-			return null; // error
-		ISourceGenerator generator = model.getGenerator();
-		if (generator == null)
-			return null; // error
-		return generator.generateTextData(this, data);
-	}
-
-	/**
-	 */
-	String getTextSource() {
-		return this.fSource;
-	}
-
-	/**
-	 */
-	public String getValueSource() {
-		return getSource();
-	}
-
-	/**
-	 */
-	boolean hasStructuredDocumentRegion(IStructuredDocumentRegion askedStructuredDocumentRegion) {
-		if (askedStructuredDocumentRegion == null)
-			return false;
-
-		IStructuredDocumentRegion flatNode = getStructuredDocumentRegion();
-		if (flatNode == null)
-			return false;
-
-		if (flatNode == askedStructuredDocumentRegion)
-			return true;
-
-		if (flatNode instanceof StructuredDocumentRegionProxy) {
-			StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) flatNode;
-			if (proxy.getStructuredDocumentRegion() == askedStructuredDocumentRegion)
-				return true;
-			return false;
-		}
-
-		if (flatNode instanceof StructuredDocumentRegionContainer) {
-			StructuredDocumentRegionContainer container = (StructuredDocumentRegionContainer) flatNode;
-			int count = container.getStructuredDocumentRegionCount();
-			for (int i = 0; i < count; i++) {
-				IStructuredDocumentRegion content = container.getStructuredDocumentRegion(i);
-				if (content == null)
-					continue;
-				if (content == askedStructuredDocumentRegion)
-					return true;
-				if (content instanceof StructuredDocumentRegionProxy) {
-					StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) content;
-					if (proxy.getStructuredDocumentRegion() == askedStructuredDocumentRegion)
-						return true;
-				}
-			}
-			return false;
-		}
-
-		return false;
-	}
-
-	/**
-	 * insertData method
-	 * 
-	 * @param offset
-	 *            int
-	 * @param arg
-	 *            java.lang.String
-	 */
-	public void insertData(int offset, String arg) throws DOMException {
-		if (arg == null || arg.length() == 0)
-			return;
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-		if (offset < 0) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-
-		String source = getSource();
-		if (source == null || source.length() == 0) {
-			if (offset > 0) {
-				throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-			}
-			source = getSource(arg);
-			if (source != null)
-				setTextSource(source);
-			return;
-		}
-
-		StringPair pair = substringSourceExcluded(source, offset, 0);
-		if (pair == null)
-			return; // error
-		StringBuffer buffer = new StringBuffer(source.length() + arg.length());
-		String first = pair.getFirst();
-		if (first != null)
-			buffer.append(first);
-		source = getSource(arg);
-		if (source != null)
-			buffer.append(source);
-		String second = pair.getSecond();
-		if (second != null)
-			buffer.append(second);
-		setTextSource(buffer.toString());
-	}
-
-	/**
-	 */
-	IStructuredDocumentRegion insertStructuredDocumentRegion(IStructuredDocumentRegion newStructuredDocumentRegion, IStructuredDocumentRegion nextStructuredDocumentRegion) {
-		if (newStructuredDocumentRegion == null)
-			return null;
-		if (nextStructuredDocumentRegion == null)
-			return appendStructuredDocumentRegion(newStructuredDocumentRegion);
-
-		IStructuredDocumentRegion flatNode = getStructuredDocumentRegion();
-		if (flatNode == null)
-			return null; // error
-
-		if (flatNode == nextStructuredDocumentRegion) {
-			StructuredDocumentRegionContainer container = new StructuredDocumentRegionContainer();
-			container.appendStructuredDocumentRegion(newStructuredDocumentRegion);
-			container.appendStructuredDocumentRegion(flatNode);
-			setStructuredDocumentRegion(container);
-			return newStructuredDocumentRegion;
-		}
-
-		if (flatNode instanceof StructuredDocumentRegionContainer) {
-			StructuredDocumentRegionContainer container = (StructuredDocumentRegionContainer) flatNode;
-			int count = container.getStructuredDocumentRegionCount();
-			for (int i = 0; i < count; i++) {
-				IStructuredDocumentRegion content = container.getStructuredDocumentRegion(i);
-				if (content == nextStructuredDocumentRegion) {
-					container.insertStructuredDocumentRegion(newStructuredDocumentRegion, i);
-					return newStructuredDocumentRegion;
-				}
-			}
-			return null; // error
-		}
-
-		return null; // error
-	}
-
-	/**
-	 * insertText method
-	 * 
-	 * @param text
-	 *            org.w3c.dom.Text
-	 * @param offset
-	 *            int
-	 */
-	public void insertText(Text newText, int offset) throws DOMException {
-		if (newText == null)
-			return;
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-		TextImpl text = (TextImpl) newText;
-		String newSource = text.getSource();
-		if (newSource == null && newSource.length() == 0)
-			return;
-		if (offset < 0) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-
-		String source = getSource();
-		if (source == null || source.length() == 0) {
-			if (offset > 0) {
-				throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-			}
-			setTextSource(newSource);
-			return;
-		}
-
-		StringPair pair = substringSourceExcluded(source, offset, 0);
-		if (pair == null)
-			return; // error
-		StringBuffer buffer = new StringBuffer(source.length() + newSource.length());
-		String first = pair.getFirst();
-		if (first != null)
-			buffer.append(first);
-		buffer.append(newSource);
-		String second = pair.getSecond();
-		if (second != null)
-			buffer.append(second);
-		setTextSource(buffer.toString());
-	}
-
-	/**
-	 * isCDATAContent method
-	 * 
-	 * @return boolean
-	 */
-	public boolean isCDATAContent() {
-		Node parent = getParentNode();
-		if (parent == null || parent.getNodeType() != Node.ELEMENT_NODE)
-			return false;
-		ElementImpl element = (ElementImpl) parent;
-		return element.isCDATAContainer();
-	}
-
-	/**
-	 */
-	public boolean isInvalid() {
-		return isInvalid(getStructuredDocumentRegion());
-	}
-
-	/**
-	 */
-	private boolean isInvalid(IStructuredDocumentRegion flatNode) {
-		if (flatNode == null)
-			return false;
-
-		if (flatNode instanceof StructuredDocumentRegionContainer) {
-			StructuredDocumentRegionContainer container = (StructuredDocumentRegionContainer) flatNode;
-			int count = container.getStructuredDocumentRegionCount();
-			for (int i = 0; i < count; i++) {
-				IStructuredDocumentRegion content = container.getStructuredDocumentRegion(i);
-				if (isInvalid(content))
-					return true;
-			}
-			return false;
-		}
-
-		if (flatNode instanceof StructuredDocumentRegionProxy) {
-			StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) flatNode;
-			return isInvalid(proxy.getStructuredDocumentRegion());
-		}
-
-		String regionType = StructuredDocumentRegionUtil.getFirstRegionType(flatNode);
-		if (regionType != DOMRegionContext.XML_CONTENT && isNotNestedContent(regionType) && regionType != DOMRegionContext.XML_ENTITY_REFERENCE && regionType != DOMRegionContext.XML_CHAR_REFERENCE && regionType != DOMRegionContext.BLOCK_TEXT && regionType != DOMRegionContext.WHITE_SPACE) {
-			return true;
-		}
-
-		return false;
-	}
-
-	protected boolean isNotNestedContent(String regionType) {
-		boolean result = true;
-		return result;
-	}
-
-	/**
-	 */
-	boolean isSharingStructuredDocumentRegion(IStructuredDocumentRegion sharedStructuredDocumentRegion) {
-		if (sharedStructuredDocumentRegion == null)
-			return false;
-
-		IStructuredDocumentRegion flatNode = getStructuredDocumentRegion();
-		if (flatNode == null)
-			return false;
-
-		if (flatNode == sharedStructuredDocumentRegion)
-			return false;
-
-		if (flatNode instanceof StructuredDocumentRegionProxy) {
-			StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) flatNode;
-			if (proxy.getStructuredDocumentRegion() == sharedStructuredDocumentRegion)
-				return true;
-			return false;
-		}
-
-		if (flatNode instanceof StructuredDocumentRegionContainer) {
-			StructuredDocumentRegionContainer container = (StructuredDocumentRegionContainer) flatNode;
-			int count = container.getStructuredDocumentRegionCount();
-			for (int i = 0; i < count; i++) {
-				IStructuredDocumentRegion content = container.getStructuredDocumentRegion(i);
-				if (content == null)
-					continue;
-				if (content == sharedStructuredDocumentRegion)
-					return false;
-				if (content instanceof StructuredDocumentRegionProxy) {
-					StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) content;
-					if (proxy.getStructuredDocumentRegion() == sharedStructuredDocumentRegion)
-						return true;
-				}
-			}
-			return false;
-		}
-
-		return false;
-	}
-
-	/**
-	 * Returns whether this text node contains <a
-	 * href='http://www.w3.org/TR/2004/REC-xml-infoset-20040204#infoitem.character'>
-	 * element content whitespace</a>, often abusively called "ignorable
-	 * whitespace". The text node is determined to contain whitespace in
-	 * element content during the load of the document or if validation occurs
-	 * while using <code>Document.normalizeDocument()</code>.
-	 * 
-	 * @see DOM Level 3
-	 */
-	public boolean isElementContentWhitespace() {
-		return isWhitespace();
-	}
-
-	/**
-	 */
-	public boolean isWhitespace() {
-		String data = getData();
-		if (data == null)
-			return true;
-		int length = data.length();
-		for (int i = 0; i < length; i++) {
-			if (!Character.isWhitespace(data.charAt(i)))
-				return false;
-		}
-		return true;
-	}
-
-	/**
-	 */
-	IStructuredDocumentRegion removeStructuredDocumentRegion(IStructuredDocumentRegion oldStructuredDocumentRegion) {
-		if (oldStructuredDocumentRegion == null)
-			return null;
-
-		IStructuredDocumentRegion flatNode = getStructuredDocumentRegion();
-		if (flatNode == null)
-			return null; // error
-
-		if (flatNode == oldStructuredDocumentRegion) {
-			setStructuredDocumentRegion(null);
-			return oldStructuredDocumentRegion;
-		}
-
-		if (flatNode instanceof StructuredDocumentRegionProxy) {
-			StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) flatNode;
-			if (proxy.getStructuredDocumentRegion() == oldStructuredDocumentRegion) {
-				// removed with proxy
-				setStructuredDocumentRegion(null);
-				return oldStructuredDocumentRegion;
-			}
-			return null; // error
-		}
-
-		if (flatNode instanceof StructuredDocumentRegionContainer) {
-			StructuredDocumentRegionContainer container = (StructuredDocumentRegionContainer) flatNode;
-			int count = container.getStructuredDocumentRegionCount();
-			for (int i = 0; i < count; i++) {
-				IStructuredDocumentRegion content = container.getStructuredDocumentRegion(i);
-				if (content == oldStructuredDocumentRegion) {
-					container.removeStructuredDocumentRegion(i);
-					if (container.getStructuredDocumentRegionCount() == 1) {
-						// get back to single IStructuredDocumentRegion
-						setStructuredDocumentRegion(container.getStructuredDocumentRegion(0));
-					}
-					return oldStructuredDocumentRegion;
-				}
-
-				if (content instanceof StructuredDocumentRegionProxy) {
-					StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) content;
-					if (proxy.getStructuredDocumentRegion() == oldStructuredDocumentRegion) {
-						// removed with proxy
-						container.removeStructuredDocumentRegion(i);
-						if (container.getStructuredDocumentRegionCount() == 1) {
-							// get back to single IStructuredDocumentRegion
-							setStructuredDocumentRegion(container.getStructuredDocumentRegion(0));
-						}
-						return oldStructuredDocumentRegion;
-					}
-				}
-			}
-			return null; // error
-		}
-
-		return null; // error
-	}
-
-	/**
-	 * replaceData method
-	 * 
-	 * @param offset
-	 *            int
-	 * @param count
-	 *            int
-	 * @param arg
-	 *            java.lang.String
-	 */
-	public void replaceData(int offset, int count, String arg) throws DOMException {
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-		if (arg == null || arg.length() == 0) {
-			deleteData(offset, count);
-			return;
-		}
-		if (count == 0) {
-			insertData(offset, arg);
-			return;
-		}
-		if (offset < 0 || count < 0) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-
-		String source = getSource();
-		if (source == null || source.length() == 0) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-
-		StringPair pair = substringSourceExcluded(source, offset, count);
-		if (pair == null)
-			return; // error
-		StringBuffer buffer = new StringBuffer(source.length() + arg.length());
-		String first = pair.getFirst();
-		if (first != null)
-			buffer.append(first);
-		source = getSource(arg);
-		if (source != null)
-			buffer.append(source);
-		String second = pair.getSecond();
-		if (second != null)
-			buffer.append(second);
-		setTextSource(buffer.toString());
-	}
-
-	/**
-	 */
-	IStructuredDocumentRegion replaceStructuredDocumentRegion(IStructuredDocumentRegion newStructuredDocumentRegion, IStructuredDocumentRegion oldStructuredDocumentRegion) {
-		if (oldStructuredDocumentRegion == null)
-			return null;
-		if (newStructuredDocumentRegion == null)
-			return removeStructuredDocumentRegion(oldStructuredDocumentRegion);
-
-		IStructuredDocumentRegion flatNode = getStructuredDocumentRegion();
-		if (flatNode == null)
-			return null; // error
-
-		if (flatNode == oldStructuredDocumentRegion) {
-			setStructuredDocumentRegion(newStructuredDocumentRegion);
-			return oldStructuredDocumentRegion;
-		}
-
-		if (flatNode instanceof StructuredDocumentRegionProxy) {
-			StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) flatNode;
-			if (proxy.getStructuredDocumentRegion() == oldStructuredDocumentRegion) {
-				if (newStructuredDocumentRegion instanceof StructuredDocumentRegionProxy) {
-					// proxy must not be nested
-					setStructuredDocumentRegion(newStructuredDocumentRegion);
-				}
-				else {
-					proxy.setStructuredDocumentRegion(newStructuredDocumentRegion);
-				}
-				return oldStructuredDocumentRegion;
-			}
-			return null; // error
-		}
-
-		if (flatNode instanceof StructuredDocumentRegionContainer) {
-			StructuredDocumentRegionContainer container = (StructuredDocumentRegionContainer) flatNode;
-			int count = container.getStructuredDocumentRegionCount();
-			for (int i = 0; i < count; i++) {
-				IStructuredDocumentRegion content = container.getStructuredDocumentRegion(i);
-				if (content == null)
-					continue; // error
-				if (content == oldStructuredDocumentRegion) {
-					container.replaceStructuredDocumentRegion(newStructuredDocumentRegion, i);
-					return oldStructuredDocumentRegion;
-				}
-
-				if (content instanceof StructuredDocumentRegionProxy) {
-					StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) content;
-					if (proxy.getStructuredDocumentRegion() == oldStructuredDocumentRegion) {
-						if (newStructuredDocumentRegion instanceof StructuredDocumentRegionProxy) {
-							// proxy must not be nested
-							container.replaceStructuredDocumentRegion(newStructuredDocumentRegion, i);
-						}
-						else {
-							proxy.setStructuredDocumentRegion(newStructuredDocumentRegion);
-						}
-						return oldStructuredDocumentRegion;
-					}
-				}
-			}
-			return null; // error
-		}
-
-		return null; // error
-	}
-
-	/**
-	 */
-	void resetStructuredDocumentRegions() {
-		String source = getSource();
-		if (source != null && source.length() > 0)
-			this.fSource = source;
-		super.resetStructuredDocumentRegions();
-	}
-
-	/**
-	 * getData method
-	 * 
-	 * @return java.lang.String
-	 */
-	public void setData(String data) throws DOMException {
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		this.fSource = null;
-		super.setData(data);
-	}
-
-	/**
-	 */
-	public void setSource(String source) throws InvalidCharacterException {
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		SourceValidator validator = new SourceValidator(this);
-		if (validator.validateSource(source))
-			setTextSource(source);
-	}
-
-	/**
-	 */
-	void setStructuredDocumentRegion(IStructuredDocumentRegion flatNode) {
-		super.setStructuredDocumentRegion(flatNode);
-		if (flatNode != null)
-			this.fSource = null;
-	}
-
-	/**
-	 */
-	public void setTextSource(String source) {
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		this.fSource = source;
-
-		notifyValueChanged();
-	}
-
-	/**
-	 */
-	public void setValueSource(String source) {
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		SourceValidator validator = new SourceValidator(this);
-		setTextSource(validator.convertSource(source));
-	}
-
-	/**
-	 * splitText method
-	 * 
-	 * @return org.w3c.dom.Text
-	 * @param offset
-	 *            int
-	 */
-	public Text splitText(int offset) throws DOMException {
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-		if (offset < 0) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-		int length = getLength();
-		if (offset > length) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-		Document document = getOwnerDocument();
-		if (document == null)
-			return null;
-
-		String source = null;
-		if (offset < length) {
-			int count = length - offset;
-			source = substringSource(offset, count);
-			deleteData(offset, count);
-		}
-		TextImpl text = (TextImpl) document.createTextNode(null);
-		if (source != null)
-			text.setTextSource(source);
-
-		Node parent = getParentNode();
-		if (parent != null)
-			parent.insertBefore(text, getNextSibling());
-
-		return text;
-	}
-
-	/**
-	 */
-	Text splitText(IStructuredDocumentRegion nextStructuredDocumentRegion) {
-		if (nextStructuredDocumentRegion == null)
-			return null;
-
-		IStructuredDocumentRegion flatNode = getStructuredDocumentRegion();
-		if (flatNode == null || !(flatNode instanceof StructuredDocumentRegionContainer))
-			return null; // error
-
-		StructuredDocumentRegionContainer container = (StructuredDocumentRegionContainer) flatNode;
-		int count = container.getStructuredDocumentRegionCount();
-		int index = 0;
-		for (; index < count; index++) {
-			if (container.getStructuredDocumentRegion(index) == nextStructuredDocumentRegion)
-				break;
-		}
-		if (index >= count) {
-			// this is the case nextStructuredDocumentRegion is a new
-			// IStructuredDocumentRegion
-			// search gap by offset
-			int offset = nextStructuredDocumentRegion.getStart();
-			for (index = 0; index < count; index++) {
-				IStructuredDocumentRegion content = container.getStructuredDocumentRegion(index);
-				if (content == null)
-					continue; // error
-				if (content.getStart() >= offset)
-					break;
-			}
-			if (index >= count)
-				return null; // error
-		}
-		if (index == 0)
-			return this; // nothing to do
-
-		Document document = getOwnerDocument();
-		if (document == null)
-			return null; // error
-		Node parent = getParentNode();
-		if (parent == null)
-			return null; // error
-		TextImpl nextText = (TextImpl) document.createTextNode(null);
-		if (nextText == null)
-			return null; // error
-
-		for (; index < count; count--) {
-			nextText.appendStructuredDocumentRegion(container.removeStructuredDocumentRegion(index));
-		}
-
-		// normalize IStructuredDocumentRegion
-		if (index == 1) {
-			setStructuredDocumentRegion(container.getStructuredDocumentRegion(0));
-		}
-
-		parent.insertBefore(nextText, getNextSibling());
-		return nextText;
-	}
-
-	/**
-	 * Retruns data for the range
-	 */
-	private String substringData(String data, int offset, int count) throws DOMException {
-		// sure offset and count are non-negative
-		if (count == 0)
-			return new String();
-		if (data == null) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-		int length = data.length();
-		if (offset > length) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-		int end = offset + count;
-		if (end > length) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-		return data.substring(offset, end);
-	}
-
-	/**
-	 * Returns source for the range specified by: offset: data offset count:
-	 * data count
-	 */
-	private String substringSource(int offset, int count) throws DOMException {
-		// sure offset and count are non-negative
-		if (this.fSource != null)
-			return substringSource(this.fSource, offset, count);
-
-		String data = super.getData();
-		if (data != null && data.length() > 0) {
-			data = substringData(data, offset, count);
-			if (data == null)
-				return new String();
-			String source = getSource(data);
-			if (source != null)
-				return source;
-		}
-
-		return substringSource(getSource(), offset, count);
-	}
-
-	/**
-	 * Returns source for the range specified by: offset: data offset count:
-	 * data count
-	 */
-	private String substringSource(String source, int offset, int count) throws DOMException {
-		// sure offset and count are non-negative
-		if (count == 0)
-			return new String();
-		if (source == null) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-
-		int length = source.length();
-		int end = offset + count;
-
-		// find character reference
-		int ref = source.indexOf('&');
-		while (ref >= 0) {
-			if (ref >= end)
-				break;
-			int refEnd = source.indexOf(';', ref + 1);
-			if (refEnd > ref + 1) {
-				String name = source.substring(ref + 1, refEnd);
-				if (getCharValue(name) != null) {
-					// found, shift for source offsets
-					int refCount = refEnd - ref;
-					if (ref < offset)
-						offset += refCount;
-					if (ref < end)
-						end += refCount;
-					ref = refEnd;
-				}
-			}
-			ref = source.indexOf('&', ref + 1);
-		}
-
-		if (offset > length || end > length) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-
-		return source.substring(offset, end);
-	}
-
-	/**
-	 * Returns sources before and after the range specified by: offset: data
-	 * offset count: data count
-	 */
-	private StringPair substringSourceExcluded(String source, int offset, int count) throws DOMException {
-		// sure offset and count are non-negative
-		if (source == null) {
-			if (offset == 0 && count == 0)
-				return new StringPair(null, null);
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-
-		int length = source.length();
-		int end = offset + count;
-
-		// find character reference
-		int ref = source.indexOf('&');
-		while (ref >= 0) {
-			if (ref >= end)
-				break;
-			int refEnd = source.indexOf(';', ref + 1);
-			if (refEnd > ref + 1) {
-				String name = source.substring(ref + 1, refEnd);
-				if (getCharValue(name) != null) {
-					// found, shift for source offsets
-					int refCount = refEnd - ref;
-					if (ref < offset)
-						offset += refCount;
-					if (ref < end)
-						end += refCount;
-					ref = refEnd;
-				}
-			}
-			ref = source.indexOf('&', ref + 1);
-		}
-
-		if (offset > length || end > length) {
-			throw new DOMException(DOMException.INDEX_SIZE_ERR, new String());
-		}
-
-		String first = (offset > 0 ? source.substring(0, offset) : null);
-		String second = (end < length ? source.substring(end, length) : null);
-		return new StringPair(first, second);
-	}
-
-	public String getWholeText() {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not Implemented in this version."); //$NON-NLS-1$
-	}
-    /**
-	 * Replaces the text of the current node and all logically-adjacent text
-	 * nodes with the specified text. All logically-adjacent text nodes are
-	 * removed including the current node unless it was the recipient of the
-	 * replacement text. <br>
-	 * This method returns the node which received the replacement text. The
-	 * returned node is:
-	 * <ul>
-	 * <li><code>null</code>, when the replacement text is the empty
-	 * string; </li>
-	 * <li>the current node, except when the current node is read-only; </li>
-	 * <li> a new <code>Text</code> node of the same type (
-	 * <code>Text</code> or <code>CDATASection</code>) as the current
-	 * node inserted at the location of the replacement. </li>
-	 * </ul>
-	 * <br>
-	 * For instance, in the above example calling
-	 * <code>replaceWholeText</code> on the <code>Text</code> node that
-	 * contains "bar" with "yo" in argument results in the following: <br>
-	 * Where the nodes to be removed are read-only descendants of an
-	 * <code>EntityReference</code>, the <code>EntityReference</code>
-	 * must be removed instead of the read-only nodes. If any
-	 * <code>EntityReference</code> to be removed has descendants that are
-	 * not <code>EntityReference</code>, <code>Text</code>, or
-	 * <code>CDATASection</code> nodes, the <code>replaceWholeText</code>
-	 * method must fail before performing any modification of the document,
-	 * raising a <code>DOMException</code> with the code
-	 * <code>NO_MODIFICATION_ALLOWED_ERR</code>. <br>
-	 * For instance, in the example below calling
-	 * <code>replaceWholeText</code> on the <code>Text</code> node that
-	 * contains "bar" fails, because the <code>EntityReference</code> node
-	 * "ent" contains an <code>Element</code> node which cannot be removed.
-	 * 
-	 * @param content
-	 *            The content of the replacing <code>Text</code> node.
-	 * @return The <code>Text</code> node created with the specified
-	 *         content.
-	 * @exception DOMException
-	 *                NO_MODIFICATION_ALLOWED_ERR: Raised if one of the
-	 *                <code>Text</code> nodes being replaced is readonly.
-	 * @see DOM Level 3
-	 */
-    public Text replaceWholeText(String content)
-                                 throws DOMException {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented"); //$NON-NLS-1$
-    }
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLGeneratorImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLGeneratorImpl.java
deleted file mode 100644
index 17c7eb9..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLGeneratorImpl.java
+++ /dev/null
@@ -1,735 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.eclipse.wst.xml.core.internal.commentelement.impl.CommentElementRegistry;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.provisional.IXMLCharEntity;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.ISourceGenerator;
-import org.w3c.dom.Attr;
-import org.w3c.dom.CDATASection;
-import org.w3c.dom.Comment;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.EntityReference;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.ProcessingInstruction;
-import org.w3c.dom.Text;
-
-
-/** 
- */
-public class XMLGeneratorImpl implements ISourceGenerator {
-	private static final String CDATA_CLOSE = "]]>";//$NON-NLS-1$
-	private static final String CDATA_OPEN = "<![CDATA[";//$NON-NLS-1$
-	private static final String COMMENT_CLOSE = "-->";//$NON-NLS-1$
-	private static final String COMMENT_OPEN = "<!--";//$NON-NLS-1$
-	private static final String DOCTYPE_OPEN = "<!DOCTYPE";//$NON-NLS-1$
-	private static final String EMPTY_CLOSE = " />";//$NON-NLS-1$
-	private static final String END_OPEN = "</";//$NON-NLS-1$
-
-	private static XMLGeneratorImpl instance = null;
-	private static final String PI_CLOSE = "?>";//$NON-NLS-1$
-	private static final String PI_OPEN = "<?";//$NON-NLS-1$
-	private static final String PUBLIC_ID = "PUBLIC";//$NON-NLS-1$
-	private static final String SSI_PREFIX = "ssi";//$NON-NLS-1$
-	//private static final String SSI_FEATURE = "SSI";//$NON-NLS-1$
-	private static final String SSI_TOKEN = "#";//$NON-NLS-1$
-	private static final String SYSTEM_ID = "SYSTEM";//$NON-NLS-1$
-	private static final String TAG_CLOSE = ">";//$NON-NLS-1$
-
-	/**
-	 */
-	public synchronized static ISourceGenerator getInstance() {
-		if (instance == null)
-			instance = new XMLGeneratorImpl();
-		return instance;
-	}
-
-	/**
-	 */
-	//private boolean isCommentTag(XMLElement element) {
-	//	if (element == null) return false;
-	//	DocumentImpl document = (DocumentImpl)element.getOwnerDocument();
-	//	if (document == null) return false;
-	//	DocumentTypeAdapter adapter = document.getDocumentTypeAdapter();
-	//	if (adapter == null) return false;
-	//	if (!adapter.hasFeature(SSI_FEATURE)) return false;
-	//	String prefix = element.getPrefix();
-	//	return (prefix != null && prefix.equals(SSI_PREFIX));
-	//}
-	/**
-	 * Helper to modify the tag name in sub-classes
-	 */
-	private static void setTagName(Element element, String tagName) {
-		if (element == null || tagName == null)
-			return;
-		((ElementImpl) element).setTagName(tagName);
-	}
-
-	/**
-	 * XMLModelGenerator constructor
-	 */
-	private XMLGeneratorImpl() {
-		super();
-	}
-
-	/**
-	 */
-	public String generateAttrName(Attr attr) {
-		if (attr == null)
-			return null;
-		String attrName = attr.getName();
-		if (attrName == null)
-			return null;
-		if (attrName.startsWith(JSPTag.TAG_OPEN)) {
-			if (!attrName.endsWith(JSPTag.TAG_CLOSE)) {
-				// close JSP
-				return (attrName + JSPTag.TAG_CLOSE);
-			}
-		}
-		if (((IDOMAttr) attr).isGlobalAttr() && CMNodeUtil.getAttributeDeclaration(attr) != null) {
-			switch (getAttrNameCase(attr)) {
-				case DocumentTypeAdapter.UPPER_CASE :
-					attrName = attrName.toUpperCase();
-					break;
-				case DocumentTypeAdapter.LOWER_CASE :
-					attrName = attrName.toLowerCase();
-					break;
-				default :
-					// ASIS_CASE
-					break;
-			}
-		}
-		return attrName;
-	}
-
-	/**
-	 */
-	public String generateAttrValue(Attr attr) {
-		return generateAttrValue(attr, (char) 0); // no quote preference
-	}
-
-	/**
-	 */
-	public String generateAttrValue(Attr attr, char quote) {
-		if (attr == null)
-			return null;
-		String name = attr.getName();
-		SourceValidator validator = new SourceValidator(attr);
-		String value = validator.convertSource(((IDOMNode) attr).getValueSource());
-		if (value == null || value.length() == 0) {
-			if (name != null && name.startsWith(JSPTag.TAG_OPEN))
-				return null;
-			if (isBooleanAttr(attr)) {
-				if (((AttrImpl) attr).isXMLAttr()) {
-					// generate the name as value
-					value = attr.getName();
-				} else {
-					// not to generate '=' and value for HTML boolean
-					return null;
-				}
-			}
-		}
-		return generateAttrValue(value, quote);
-	}
-
-	/**
-	 */
-	public String generateAttrValue(String value, char quote) {
-		// assume the valid is already validated not to include both quotes
-		if (quote == '"') {
-			if ((value != null) && (value.indexOf('"') >= 0))
-				quote = '\''; // force
-		} else if (quote == '\'') {
-			if ((value != null) && (value.indexOf('\'') >= 0))
-				quote = '"'; // force
-		} else { // no preference
-			if ((value != null) && (value.indexOf('"') < 0))
-				quote = '"';
-			else
-				quote = '\'';
-		}
-
-		int length = (value == null ? 0 : value.length());
-		StringBuffer buffer = new StringBuffer(length + 2);
-		buffer.append(quote);
-		if (value != null)
-			buffer.append(value);
-		buffer.append(quote);
-		return buffer.toString();
-	}
-
-	/**
-	 * generateCDATASection method
-	 * 
-	 * @return java.lang.String
-	 * @param comment
-	 *            org.w3c.dom.CDATASection
-	 */
-	public String generateCDATASection(CDATASection cdata) {
-		if (cdata == null)
-			return null;
-
-		String data = cdata.getData();
-		int length = (data != null ? data.length() : 0);
-		StringBuffer buffer = new StringBuffer(length + 16);
-		buffer.append(CDATA_OPEN);
-		if (data != null)
-			buffer.append(data);
-		buffer.append(CDATA_CLOSE);
-		return buffer.toString();
-	}
-
-	/**
-	 * generateChild method
-	 * 
-	 * @return java.lang.String
-	 * @param org.w3c.dom.Node
-	 */
-	public String generateChild(Node parentNode) {
-		if (parentNode == null)
-			return null;
-		if (!parentNode.hasChildNodes())
-			return null;
-
-		StringBuffer buffer = new StringBuffer();
-		for (Node child = parentNode.getFirstChild(); child != null; child = child.getNextSibling()) {
-			String childSource = generateSource(child);
-			if (childSource != null)
-				buffer.append(childSource);
-		}
-		return buffer.toString();
-	}
-
-	/**
-	 */
-	public String generateCloseTag(Node node) {
-		if (node == null)
-			return null;
-
-		switch (node.getNodeType()) {
-			case Node.ELEMENT_NODE : {
-				ElementImpl element = (ElementImpl) node;
-				if (element.isCommentTag()) {
-					if (element.isJSPTag())
-						return JSPTag.COMMENT_CLOSE;
-					return COMMENT_CLOSE;
-				}
-				if (element.isJSPTag())
-					return JSPTag.TAG_CLOSE;
-				if (element.isEmptyTag())
-					return EMPTY_CLOSE;
-				return TAG_CLOSE;
-			}
-			case Node.COMMENT_NODE : {
-				CommentImpl comment = (CommentImpl) node;
-				if (comment.isJSPTag())
-					return JSPTag.COMMENT_CLOSE;
-				return COMMENT_CLOSE;
-			}
-			case Node.DOCUMENT_TYPE_NODE :
-				return TAG_CLOSE;
-			case Node.PROCESSING_INSTRUCTION_NODE :
-				return PI_CLOSE;
-			case Node.CDATA_SECTION_NODE :
-				return CDATA_CLOSE;
-			default :
-				break;
-		}
-
-		return null;
-	}
-
-	/**
-	 * generateComment method
-	 * 
-	 * @return java.lang.String
-	 * @param comment
-	 *            org.w3c.dom.Comment
-	 */
-	public String generateComment(Comment comment) {
-		if (comment == null)
-			return null;
-
-		String data = comment.getData();
-		int length = (data != null ? data.length() : 0);
-		StringBuffer buffer = new StringBuffer(length + 8);
-		CommentImpl impl = (CommentImpl) comment;
-		if (!impl.isJSPTag())
-			buffer.append(COMMENT_OPEN);
-		else
-			buffer.append(JSPTag.COMMENT_OPEN);
-		if (data != null)
-			buffer.append(data);
-		if (!impl.isJSPTag())
-			buffer.append(COMMENT_CLOSE);
-		else
-			buffer.append(JSPTag.COMMENT_CLOSE);
-		return buffer.toString();
-	}
-
-	/**
-	 * generateDoctype method
-	 * 
-	 * @return java.lang.String
-	 * @param docType
-	 *            org.w3c.dom.DocumentType
-	 */
-	public String generateDoctype(DocumentType docType) {
-		if (docType == null)
-			return null;
-
-		String name = docType.getName();
-		int length = (name != null ? name.length() : 0);
-		StringBuffer buffer = new StringBuffer(length + 16);
-		buffer.append(DOCTYPE_OPEN);
-		buffer.append(' ');
-		if (name != null)
-			buffer.append(name);
-		DocumentTypeImpl dt = (DocumentTypeImpl) docType;
-		String publicID = dt.getPublicId();
-		String systemID = dt.getSystemId();
-		if (publicID != null) {
-			buffer.append(' ');
-			buffer.append(PUBLIC_ID);
-			buffer.append(' ');
-			buffer.append('"');
-			buffer.append(publicID);
-			buffer.append('"');
-			if (systemID != null) {
-				buffer.append(' ');
-				buffer.append('"');
-				buffer.append(systemID);
-				buffer.append('"');
-			}
-		} else {
-			if (systemID != null) {
-				buffer.append(' ');
-				buffer.append(SYSTEM_ID);
-				buffer.append(' ');
-				buffer.append('"');
-				buffer.append(systemID);
-				buffer.append('"');
-			}
-		}
-		buffer.append('>');
-		return buffer.toString();
-	}
-
-	/**
-	 * generateElement method
-	 * 
-	 * @return java.lang.String
-	 * @param element
-	 *            Element
-	 */
-	public String generateElement(Element element) {
-		if (element == null)
-			return null;
-
-		// if empty tag is preferrable, generate as empty tag
-		ElementImpl impl = (ElementImpl) element;
-		if (impl.preferEmptyTag())
-			impl.setEmptyTag(true);
-
-		StringBuffer buffer = new StringBuffer();
-		String startTag = generateStartTag(element);
-		if (startTag != null)
-			buffer.append(startTag);
-		String child = generateChild(element);
-		if (child != null)
-			buffer.append(child);
-		String endTag = generateEndTag(element);
-		if (endTag != null)
-			buffer.append(endTag);
-		return buffer.toString();
-	}
-
-	/**
-	 * generateEndTag method
-	 * 
-	 * @return java.lang.String
-	 * @param element
-	 *            org.w3c.dom.Element
-	 */
-	public String generateEndTag(Element element) {
-		if (element == null)
-			return null;
-
-		ElementImpl impl = (ElementImpl) element;
-
-		// first check if tag adapter exists
-		TagAdapter adapter = (TagAdapter) impl.getExistingAdapter(TagAdapter.class);
-		if (adapter != null) {
-			String endTag = adapter.getEndTag(impl);
-			if (endTag != null)
-				return endTag;
-		}
-
-		if (impl.isEmptyTag())
-			return null;
-		if (!impl.isContainer())
-			return null;
-		if (impl.isJSPTag())
-			return JSPTag.TAG_CLOSE;
-
-		String tagName = generateTagName(element);
-		int length = (tagName != null ? tagName.length() : 0);
-		StringBuffer buffer = new StringBuffer(length + 4);
-		buffer.append(END_OPEN);
-		if (tagName != null)
-			buffer.append(tagName);
-		buffer.append('>');
-		return buffer.toString();
-	}
-
-	/**
-	 * generateEntityRef method
-	 * 
-	 * @return java.lang.String
-	 * @param entityRef
-	 *            org.w3c.dom.EntityReference
-	 */
-	public String generateEntityRef(EntityReference entityRef) {
-		if (entityRef == null)
-			return null;
-
-		String name = entityRef.getNodeName();
-		int length = (name != null ? name.length() : 0);
-		StringBuffer buffer = new StringBuffer(length + 4);
-		buffer.append('&');
-		if (name != null)
-			buffer.append(name);
-		buffer.append(';');
-		return buffer.toString();
-	}
-
-	/**
-	 * generatePI method
-	 * 
-	 * @return java.lang.String
-	 * @param pi
-	 *            org.w3c.dom.ProcessingInstruction
-	 */
-	public String generatePI(ProcessingInstruction pi) {
-		if (pi == null)
-			return null;
-
-		String target = pi.getTarget();
-		String data = pi.getData();
-		int length = (target != null ? target.length() : 0);
-		if (data != null)
-			length += data.length();
-		StringBuffer buffer = new StringBuffer(length + 8);
-		buffer.append(PI_OPEN);
-		if (target != null)
-			buffer.append(target);
-		buffer.append(' ');
-		if (data != null)
-			buffer.append(data);
-		buffer.append(PI_CLOSE);
-		return buffer.toString();
-	}
-
-	/**
-	 * generateSource method
-	 * 
-	 * @return java.lang.String
-	 * @param node
-	 *            org.w3c.dom.Node
-	 */
-	public String generateSource(Node node) {
-		switch (node.getNodeType()) {
-			case Node.ELEMENT_NODE :
-				return generateElement((Element) node);
-			case Node.TEXT_NODE :
-				return generateText((Text) node);
-			case Node.COMMENT_NODE :
-				return generateComment((Comment) node);
-			case Node.DOCUMENT_TYPE_NODE :
-				return generateDoctype((DocumentType) node);
-			case Node.PROCESSING_INSTRUCTION_NODE :
-				return generatePI((ProcessingInstruction) node);
-			case Node.CDATA_SECTION_NODE :
-				return generateCDATASection((CDATASection) node);
-			case Node.ENTITY_REFERENCE_NODE :
-				return generateEntityRef((EntityReference) node);
-			default :
-				// DOCUMENT
-				break;
-		}
-		return generateChild(node);
-	}
-
-	/**
-	 * generateStartTag method
-	 * 
-	 * @return java.lang.String
-	 * @param element
-	 *            Element
-	 */
-	public String generateStartTag(Element element) {
-		if (element == null)
-			return null;
-
-		ElementImpl impl = (ElementImpl) element;
-
-		if (impl.isJSPTag()) {
-			// check if JSP content type and JSP Document
-			IDOMDocument document = (IDOMDocument) element.getOwnerDocument();
-			if (document != null && document.isJSPType()) {
-				if (document.isJSPDocument() && !impl.hasChildNodes()) {
-					impl.setJSPTag(false);
-				}
-			} else {
-				impl.setJSPTag(false);
-			}
-		}
-		if (impl.isCommentTag() && impl.getExistingAdapter(TagAdapter.class) == null) {
-			CommentElementRegistry registry = CommentElementRegistry.getInstance();
-			registry.setupCommentElement(impl);
-		}
-
-		// first check if tag adapter exists
-		TagAdapter adapter = (TagAdapter) impl.getExistingAdapter(TagAdapter.class);
-		if (adapter != null) {
-			String startTag = adapter.getStartTag(impl);
-			if (startTag != null)
-				return startTag;
-		}
-
-		StringBuffer buffer = new StringBuffer();
-
-		if (impl.isCommentTag()) {
-			if (impl.isJSPTag())
-				buffer.append(JSPTag.COMMENT_OPEN);
-			else
-				buffer.append(COMMENT_OPEN);
-			String tagName = generateTagName(element);
-			if (tagName != null)
-				buffer.append(tagName);
-		} else if (impl.isJSPTag()) {
-			buffer.append(JSPTag.TAG_OPEN);
-			String tagName = generateTagName(element);
-			if (tagName != null)
-				buffer.append(tagName);
-			if (impl.isContainer())
-				return buffer.toString(); // JSP container
-		} else {
-			buffer.append('<');
-			String tagName = generateTagName(element);
-			if (tagName != null)
-				buffer.append(tagName);
-		}
-
-		NamedNodeMap attributes = element.getAttributes();
-		int length = attributes.getLength();
-		for (int i = 0; i < length; i++) {
-			AttrImpl attr = (AttrImpl) attributes.item(i);
-			if (attr == null)
-				continue;
-			buffer.append(' ');
-			String attrName = generateAttrName(attr);
-			if (attrName != null)
-				buffer.append(attrName);
-			String attrValue = generateAttrValue(attr);
-			if (attrValue != null) {
-				// attr name only for HTML boolean and JSP
-				buffer.append('=');
-				buffer.append(attrValue);
-			}
-		}
-
-		String closeTag = generateCloseTag(element);
-		if (closeTag != null)
-			buffer.append(closeTag);
-
-		return buffer.toString();
-	}
-
-	/**
-	 */
-	public String generateTagName(Element element) {
-		if (element == null)
-			return null;
-		IDOMElement xe = (IDOMElement) element;
-		String tagName = element.getTagName();
-		if (tagName == null)
-			return null;
-		if (xe.isJSPTag()) {
-			if (tagName.equals(JSPTag.JSP_EXPRESSION))
-				return JSPTag.EXPRESSION_TOKEN;
-			if (tagName.equals(JSPTag.JSP_DECLARATION))
-				return JSPTag.DECLARATION_TOKEN;
-			if (tagName.equals(JSPTag.JSP_DIRECTIVE))
-				return JSPTag.DIRECTIVE_TOKEN;
-			if (tagName.startsWith(JSPTag.JSP_DIRECTIVE)) {
-				int offset = JSPTag.JSP_DIRECTIVE.length() + 1; // after '.'
-				return (JSPTag.DIRECTIVE_TOKEN + tagName.substring(offset));
-			}
-			return (xe.isCommentTag()) ? tagName : null;
-		} else if (tagName.startsWith(JSPTag.TAG_OPEN)) {
-			if (!tagName.endsWith(JSPTag.TAG_CLOSE)) {
-				// close JSP
-				return (tagName + JSPTag.TAG_CLOSE);
-			}
-		} else if (xe.isCommentTag()) {
-			String prefix = element.getPrefix();
-			if (prefix.equals(SSI_PREFIX)) {
-				return (SSI_TOKEN + element.getLocalName());
-			}
-		} else {
-			if (!xe.isJSPTag() && xe.isGlobalTag() && // global tag
-						CMNodeUtil.getElementDeclaration(xe) != null) {
-				String newName = tagName;
-				switch (getTagNameCase(xe)) {
-					case DocumentTypeAdapter.UPPER_CASE :
-						newName = tagName.toUpperCase();
-						break;
-					case DocumentTypeAdapter.LOWER_CASE :
-						newName = tagName.toLowerCase();
-						break;
-				}
-				if (newName != tagName) {
-					tagName = newName;
-					setTagName(element, tagName);
-				}
-			}
-		}
-		return tagName;
-	}
-
-	/**
-	 * generateText method
-	 * 
-	 * @return java.lang.String
-	 * @param text
-	 *            org.w3c.dom.Text
-	 */
-	public String generateText(Text text) {
-		if (text == null)
-			return null;
-		TextImpl impl = (TextImpl) text;
-		String source = impl.getTextSource();
-		if (source != null)
-			return source;
-		return generateTextData(text, impl.getData());
-	}
-
-	/**
-	 */
-	public String generateTextData(Text text, String data) {
-		if (data == null)
-			return null;
-		if (text == null)
-			return null;
-		TextImpl impl = (TextImpl) text;
-		if (impl.isJSPContent() || impl.isCDATAContent()) {
-			return new SourceValidator(impl).convertSource(data);
-		}
-		String source = data;
-
-		// convert special characters to character entities
-		StringBuffer buffer = null;
-		int offset = 0;
-		int length = data.length();
-		for (int i = 0; i < length; i++) {
-			String name = getCharName(data.charAt(i));
-			if (name == null)
-				continue;
-			if (buffer == null)
-				buffer = new StringBuffer(length + 8);
-			if (i > offset)
-				buffer.append(data.substring(offset, i));
-			buffer.append('&');
-			buffer.append(name);
-			buffer.append(';');
-			offset = i + 1;
-		}
-		if (buffer != null) {
-			if (length > offset)
-				buffer.append(data.substring(offset));
-			source = buffer.toString();
-		}
-
-		if (source == null || source.length() == 0)
-			return null;
-		return source;
-	}
-
-	/**
-	 */
-	private int getAttrNameCase(Attr attr) {
-		DocumentImpl document = (DocumentImpl) attr.getOwnerDocument();
-		if (document == null)
-			return DocumentTypeAdapter.STRICT_CASE;
-		DocumentTypeAdapter adapter = (DocumentTypeAdapter) document.getAdapterFor(DocumentTypeAdapter.class);
-		if (adapter == null)
-			return DocumentTypeAdapter.STRICT_CASE;
-		return adapter.getAttrNameCase();
-	}
-
-	/**
-	 */
-	private String getCharName(char c) {
-		switch (c) {
-			case '<' :
-				return IXMLCharEntity.LT_NAME;
-			case '>' :
-				return IXMLCharEntity.GT_NAME;
-			case '&' :
-				return IXMLCharEntity.AMP_NAME;
-			case '"' :
-				return IXMLCharEntity.QUOT_NAME;
-		}
-		return null;
-	}
-
-	/**
-	 */
-	private int getTagNameCase(Element element) {
-		DocumentImpl document = (DocumentImpl) element.getOwnerDocument();
-		if (document == null)
-			return DocumentTypeAdapter.STRICT_CASE;
-		DocumentTypeAdapter adapter = (DocumentTypeAdapter) document.getAdapterFor(DocumentTypeAdapter.class);
-		if (adapter == null)
-			return DocumentTypeAdapter.STRICT_CASE;
-		return adapter.getTagNameCase();
-	}
-
-	/**
-	 */
-	private boolean isBooleanAttr(Attr attr) {
-		if (attr == null)
-			return false;
-		CMAttributeDeclaration decl = CMNodeUtil.getAttributeDeclaration(attr);
-		if (decl == null)
-			return false;
-		CMDataType type = decl.getAttrType();
-		if (type == null)
-			return false;
-		String values[] = type.getEnumeratedValues();
-		if (values == null)
-			return false;
-		return (values.length == 1 && values[0].equals(decl.getAttrName()));
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelContext.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelContext.java
deleted file mode 100644
index 6a799f7..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelContext.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-/**
- * XMLModelContext class
- */
-class XMLModelContext {
-	private Node nextNode = null;
-	private Node parentNode = null;
-
-	//	private XMLModelImpl model = null;
-	private Node rootNode = null;
-
-	/**
-	 * XMLModelContext constructor
-	 * 
-	 * @param rootNode
-	 *            org.w3c.dom.Node
-	 */
-	XMLModelContext(Node rootNode) {
-		super();
-
-		this.rootNode = rootNode;
-	}
-
-	/**
-	 * findEndTag method
-	 * 
-	 * @return org.w3c.dom.Element
-	 * @param tagName
-	 *            java.lang.String
-	 */
-	Element findEndTag(String tagName) {
-		if (tagName == null)
-			return null;
-		if (this.parentNode == null)
-			return null;
-
-		for (Node parent = this.parentNode.getParentNode(); parent != null; parent = parent.getParentNode()) {
-			if (parent.getNodeType() != Node.ELEMENT_NODE)
-				break;
-			ElementImpl element = (ElementImpl) parent;
-			if (element.hasEndTag()) {
-				if (element.matchTagName(tagName))
-					return element;
-				// if ancestor element has end tag stop search
-				break;
-			}
-			if (element.getNextSibling() != null)
-				break;
-		}
-
-		return null;
-	}
-
-	/**
-	 */
-	Text findNextText() {
-		Node node = this.nextNode;
-		while (node != null) {
-			if (node != this.nextNode && node.getNodeType() == Node.TEXT_NODE) {
-				TextImpl text = (TextImpl) node;
-				// skip empty text
-				if (text.getStructuredDocumentRegion() != null)
-					return text;
-			}
-			Node child = node.getFirstChild();
-			if (child != null) {
-				node = child;
-				continue;
-			}
-			while (node != null) {
-				Node next = node.getNextSibling();
-				if (next != null) {
-					node = next;
-					break;
-				}
-				node = node.getParentNode();
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * findPreviousText method
-	 * 
-	 * @return org.w3c.dom.Text
-	 */
-	Text findPreviousText() {
-		if (this.parentNode == null)
-			return null;
-		Node node = null;
-		if (this.nextNode != null)
-			node = this.nextNode.getPreviousSibling();
-		else
-			node = this.parentNode.getLastChild();
-		if (node == null || node.getNodeType() != Node.TEXT_NODE)
-			return null;
-		return (Text) node;
-	}
-
-	/**
-	 * findStartTag method
-	 * 
-	 * @return org.w3c.dom.Element
-	 * @param tagName
-	 *            java.lang.String
-	 */
-	Element findStartTag(String tagName, String rootName) {
-		if (tagName == null)
-			return null;
-
-		// check previous for empty content element
-		Node prev = null;
-		if (this.nextNode != null)
-			prev = this.nextNode.getPreviousSibling();
-		else if (this.parentNode != null)
-			prev = this.parentNode.getLastChild();
-		if (prev != null && prev.getNodeType() == Node.ELEMENT_NODE) {
-			ElementImpl element = (ElementImpl) prev;
-			if (!element.hasEndTag() && !element.isEmptyTag() && element.matchTagName(tagName))
-				return element;
-		}
-
-		for (Node parent = this.parentNode; parent != null; parent = parent.getParentNode()) {
-			if (parent.getNodeType() != Node.ELEMENT_NODE)
-				break;
-			ElementImpl element = (ElementImpl) parent;
-			if (element.matchTagName(tagName))
-				return element;
-			if (rootName != null && element.matchTagName(rootName))
-				break;
-		}
-
-		return null;
-	}
-
-	/**
-	 * getNextNode method
-	 * 
-	 * @return org.w3c.dom.Node
-	 */
-	Node getNextNode() {
-		return this.nextNode;
-	}
-
-	/**
-	 * getParentNode method
-	 * 
-	 * @return org.w3c.dom.Node
-	 */
-	Node getParentNode() {
-		return this.parentNode;
-	}
-
-	/**
-	 * getRootNode method
-	 * 
-	 * @return org.w3c.dom.Node
-	 */
-	Node getRootNode() {
-		return this.rootNode;
-	}
-
-	/**
-	 * setLast method
-	 */
-	void setLast() {
-		if (this.parentNode == null)
-			return;
-		if (this.nextNode != null) {
-			Node prev = this.nextNode.getPreviousSibling();
-			if (prev == null || prev.getNodeType() != Node.ELEMENT_NODE)
-				return;
-			ElementImpl element = (ElementImpl) prev;
-			if (element.hasEndTag() || !element.isContainer() || element.isEmptyTag())
-				return;
-			setParentNode(prev);
-		}
-
-		// find last open parent
-		Node parent = this.parentNode;
-		Node last = parent.getLastChild();
-		while (last != null) {
-			if (last.getNodeType() != Node.ELEMENT_NODE)
-				break;
-			ElementImpl element = (ElementImpl) last;
-			if (element.hasEndTag() || !element.isContainer() || element.isEmptyTag())
-				break;
-			parent = element;
-			last = parent.getLastChild();
-		}
-		if (parent != this.parentNode)
-			setParentNode(parent);
-	}
-
-	/**
-	 * setNextNode method
-	 * 
-	 * @param nextNode
-	 *            org.w3c.dom.Node
-	 */
-	void setNextNode(Node nextNode) {
-		this.nextNode = nextNode;
-		if (nextNode == null)
-			return;
-		this.parentNode = nextNode.getParentNode();
-	}
-
-	/**
-	 * setParentNode method
-	 * 
-	 * @param parentNode
-	 *            org.w3c.dom.Node
-	 */
-	void setParentNode(Node parentNode) {
-		this.parentNode = parentNode;
-		this.nextNode = null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelNotifier.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelNotifier.java
deleted file mode 100644
index 9a3e255..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelNotifier.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * 
- * XMLModelNotifier manages the notification process. Clients should not use
- * extend or reference.
- * 
- * ISSUE: should be internalized.
- */
-
-public interface XMLModelNotifier {
-
-	/**
-	 * attrReplaced method
-	 * 
-	 * @param element
-	 *            org.w3c.dom.Element
-	 * @param newAttr
-	 *            org.w3c.dom.Attr
-	 * @param oldAttr
-	 *            org.w3c.dom.Attr
-	 */
-	void attrReplaced(Element element, Attr newAttr, Attr oldAttr);
-
-	/**
-	 * Signal that changing is starting.
-	 * 
-	 */
-	void beginChanging();
-
-	/**
-	 * Signal that changing is starting with a brand new model.
-	 * 
-	 */
-	void beginChanging(boolean newModel);
-
-	/**
-	 * Cancel pending notifications. This is called in the context of
-	 * "reinitialization" so is assumed ALL notifications can be safely
-	 * canceled, assuming that once factories and adapters are re-initialized
-	 * they will be re-notified as text is set in model, if still appropriate.
-	 */
-	void cancelPending();
-
-	/**
-	 * childReplaced method
-	 * 
-	 * @param parentNode
-	 *            org.w3c.dom.Node
-	 * @param newChild
-	 *            org.w3c.dom.Node
-	 * @param oldChild
-	 *            org.w3c.dom.Node
-	 */
-	void childReplaced(Node parentNode, Node newChild, Node oldChild);
-
-	/**
-	 * Editable state changed for node.
-	 * 
-	 */
-	void editableChanged(Node node);
-
-	/**
-	 * Signal changing is finished.
-	 * 
-	 */
-	void endChanging();
-
-	/**
-	 * Signal end tag changed.
-	 * 
-	 * @param element
-	 * 
-	 */
-	void endTagChanged(Element element);
-
-	/**
-	 * Used to reflect state of model.
-	 * 
-	 * @return true if model had changed.
-	 * 
-	 */
-	boolean hasChanged();
-
-	/**
-	 * Used to reflect state of parsing process.
-	 * 
-	 * @return true if model is currently changing.
-	 */
-	boolean isChanging();
-
-	/**
-	 * signal property changed
-	 * 
-	 * @param node
-	 */
-	void propertyChanged(Node node);
-
-	/**
-	 * signal start tag changed
-	 * 
-	 * @param element
-	 */
-	void startTagChanged(Element element);
-
-	/**
-	 * signal structured changed.
-	 * 
-	 * @param node
-	 */
-	void structureChanged(Node node);
-
-	/**
-	 * valueChanged method
-	 * 
-	 * @param node
-	 *            org.w3c.dom.Node
-	 */
-	void valueChanged(Node node);
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelNotifierImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelNotifierImpl.java
deleted file mode 100644
index a518f84..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelNotifierImpl.java
+++ /dev/null
@@ -1,496 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Vector;
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class XMLModelNotifierImpl implements XMLModelNotifier {
-
-	/* end: for debugging only */
-	private class NotifyEvent {
-		Object changedFeature;
-		boolean discarded;
-		Object newValue;
-		// note: don't initialize instance variables, since
-		// that causes double assignments, and lots of these are created.
-		INodeNotifier notifier;
-		Object oldValue;
-		int pos;
-		String reason;
-		int type;
-		int index;
-
-		NotifyEvent(INodeNotifier notifier, int type, Object changedFeature, Object oldValue, Object newValue, int pos) {
-			this.notifier = notifier;
-			this.type = type;
-			this.changedFeature = changedFeature;
-			this.oldValue = oldValue;
-			this.newValue = newValue;
-			this.pos = pos;
-			this.reason = ""; //$NON-NLS-1$
-		}
-	}
-
-	private final static String ADDED_THEN_REMOVED = "Discard: Added then removed rule"; //$NON-NLS-1$
-	private final static boolean fOptimizeDeferred = true;
-	private final static boolean fOptimizeDeferredAccordingToParentAdded = true;
-	private final static boolean fOptimizeDeferredAccordingToParentRemoved = true;
-	private final static String PARENT_IS_ADDED = "Disarded: Parent has just been added"; //$NON-NLS-1$
-	/* start: for debugging only */
-	private final static String PARENT_IS_REMOVED_TOO = "Discard: Parent was removed too"; //$NON-NLS-1$
-	private final static String PARENT_IS_REPARENTED = "Not Discard: Parent was removed so this implies reparenting"; //$NON-NLS-1$
-	private Node changedRoot = null;
-
-	private boolean changing = false;
-	private boolean doingNewModel = false;
-	private Vector events = null;
-	private boolean flushing = false;
-
-	/**
-	 */
-	public XMLModelNotifierImpl() {
-		super();
-	}
-
-	/**
-	 * attrReplaced method
-	 * 
-	 * @param element
-	 *            org.w3c.dom.Element
-	 * @param newAttr
-	 *            org.w3c.dom.Attr
-	 * @param oldAttr
-	 *            org.w3c.dom.Attr
-	 */
-	public void attrReplaced(Element element, Attr newAttr, Attr oldAttr) {
-		if (element == null)
-			return;
-		Attr attr = null;
-		String oldValue = null;
-		String newValue = null;
-		if (oldAttr != null) {
-			attr = oldAttr;
-			oldValue = oldAttr.getValue();
-		}
-		if (newAttr != null) {
-			attr = newAttr;
-			newValue = newAttr.getValue();
-		}
-		IDOMNode notifier = (IDOMNode) element;
-		int offset = notifier.getStartOffset();
-		notify(notifier, INodeNotifier.CHANGE, attr, oldValue, newValue, offset);
-		propertyChanged(notifier);
-	}
-
-	/**
-	 */
-	public void beginChanging() {
-		this.changing = true;
-	}
-
-	/**
-	 */
-	public void beginChanging(boolean newModel) {
-		beginChanging();
-		this.doingNewModel = newModel;
-	}
-
-	public void cancelPending() {
-		// we don't want to change the size of this array, since
-		// the array may be being processed, in the defferred notification
-		// loop, but we can signal that all
-		// should be discarded, so any remaining ones will be ignored.
-		if (this.events != null) {
-			Iterator iterator = this.events.iterator();
-			while (iterator.hasNext()) {
-				NotifyEvent event = (NotifyEvent) iterator.next();
-				event.discarded = true;
-			}
-		}
-		// this cancel is presumably being called as a function of
-		// "reinitiailization" so we can ignore changes to the
-		// old root, and changes to the new one will be triggered during
-		// reinitialization.
-		changedRoot = null;
-	}
-
-	/**
-	 * childReplaced method
-	 * 
-	 * @param parentNode
-	 *            org.w3c.dom.Node
-	 * @param newChild
-	 *            org.w3c.dom.Node
-	 * @param oldChild
-	 *            org.w3c.dom.Node
-	 */
-	public void childReplaced(Node parentNode, Node newChild, Node oldChild) {
-		if (parentNode == null)
-			return;
-		IDOMNode notifier = (IDOMNode) parentNode;
-		int type = INodeNotifier.CHANGE;
-		if (newChild == null)
-			type = INodeNotifier.REMOVE;
-		else if (oldChild == null)
-			type = INodeNotifier.ADD;
-		int offset = notifier.getStartOffset();
-		notify(notifier, type, oldChild, oldChild, newChild, offset);
-		structureChanged(notifier);
-	}
-
-	public void editableChanged(Node node) {
-		if (node == null)
-			return;
-		IDOMNode notifier = (IDOMNode) node;
-		int offset = notifier.getStartOffset();
-		notify(notifier, INodeNotifier.CHANGE, null, null, null, offset);
-		propertyChanged(notifier);
-	}
-
-	/**
-	 */
-	public void endChanging() {
-		this.doingNewModel = false;
-		if (!this.changing)
-			return; // avoid nesting calls
-		notifyDeferred();
-		if (this.changedRoot != null) {
-			notifyStructureChanged(this.changedRoot);
-			if (Debug.debugNotifyDeferred) {
-				String p = this.changedRoot.getNodeName();
-				System.out.println("Deferred STRUCUTRE_CHANGED: " + p); //$NON-NLS-1$
-			}
-			this.changedRoot = null;
-		}
-		this.changing = false;
-	}
-
-	/**
-	 */
-	public void endTagChanged(Element element) {
-		if (element == null)
-			return;
-		IDOMNode notifier = (IDOMNode) element;
-		int offset = notifier.getStartOffset();
-		notify(notifier, INodeNotifier.CHANGE, null, null, null, offset);
-		propertyChanged(element);
-	}
-
-	/**
-	 */
-	public boolean hasChanged() {
-		return (this.events != null);
-	}
-
-	/**
-	 */
-	public boolean isChanging() {
-		return this.changing;
-	}
-
-	/**
-	 */
-	private void notify(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-		if (notifier == null)
-			return;
-		if (this.changing && !this.flushing) {
-			// defer notification
-			if (this.events == null)
-				this.events = new Vector();
-			// we do not defer anything if we are doing a new Model,
-			// except for the document event, since all others are
-			// trivial and not needed at that initial point.
-			// But even for that one document event, in the new model case,
-			// it is still important to defer it.
-			if ((!doingNewModel) || (((Node) notifier).getNodeType() == Node.DOCUMENT_NODE)) {
-				this.events.addElement(new NotifyEvent(notifier, eventType, changedFeature, oldValue, newValue, pos));
-			}
-			return;
-		}
-		try {
-			// Its important to "keep going" if exception occurs, since this
-			// notification
-			// comes in between "about to change" and "changed" events. We do
-			// log, however,
-			// since would indicate a program error.
-			notifier.notify(eventType, changedFeature, oldValue, newValue, pos);
-		} catch (Exception e) {
-			Logger.logException("A structured model client threw following exception during adapter notification (" + INodeNotifier.EVENT_TYPE_STRINGS[eventType] + " )", e); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-	/**
-	 */
-	private void notifyDeferred() {
-		if (this.events == null)
-			return;
-		if (this.flushing)
-			return;
-		this.flushing = true; // force notification
-		int count = this.events.size();
-		if (!doingNewModel && fOptimizeDeferred) {
-			Map values = new HashMap();
-			for (int i = 0; i < count; i++) {
-				NotifyEvent event = (NotifyEvent) this.events.elementAt(i);
-				if (event == null)
-					continue; // error
-				event.index = i;
-				if(event.type == INodeNotifier.REMOVE) {
-					addToMap(event.oldValue, event, values);
-				}
-				if(event.type == INodeNotifier.ADD) {
-					addToMap(event.newValue, event, values);
-				}
-			}
-			Iterator it = values.keySet().iterator();
-			while(it.hasNext()) {
-				Object value = it.next();
-				NotifyEvent[] es = (NotifyEvent[])values.get(value);
-				for (int i = 0; i < es.length - 1; i++) {
-					NotifyEvent event = es[i];
-					if(es[i].discarded) continue;
-					NotifyEvent next = es[i + 1];
-					if(es[i].type == INodeNotifier.ADD && next.type == INodeNotifier.REMOVE) {
-						// Added then removed later, discard both
-						event.discarded = true;
-						next.discarded = true;
-						if (Debug.debugNotifyDeferred) {
-							event.reason = event.reason + ADDED_THEN_REMOVED + "(see " + next.index + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-							next.reason = next.reason + ADDED_THEN_REMOVED + "(see " + event.index + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-						}
-					}
-				}
-			}
-			for (int i = 0; i < count; i++) {
-				NotifyEvent event = (NotifyEvent) this.events.elementAt(i);
-				if (event == null)
-					continue; // error
-				if(event.discarded) continue;
-				if (event.notifier != null && fOptimizeDeferredAccordingToParentAdded) {
-					if (event.type == INodeNotifier.ADD) {
-						NotifyEvent[] es = (NotifyEvent[])values.get(event.notifier);
-						if(es != null) for (int p = 0; p < es.length && es[p].index < event.index; p++) {
-							NotifyEvent prev = es[p];
-							if (prev.type == INodeNotifier.REMOVE && prev.oldValue == event.notifier) {
-								// parent is reparented, do not discard
-								if (Debug.debugNotifyDeferred) {
-									event.reason = event.reason + PARENT_IS_REPARENTED + "(see " + prev.index + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-								}
-								break;
-							} else if (prev.type == INodeNotifier.ADD && prev.newValue == event.notifier) {
-								// parent has been added, discard this
-								event.discarded = true;
-								if (Debug.debugNotifyDeferred) {
-									event.reason = event.reason + PARENT_IS_ADDED + "(see " + prev.index + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-								}
-								break;
-							}
-						}							
-					}						
-				}
-				if(event.discarded) continue;
-				if (event.notifier != null && fOptimizeDeferredAccordingToParentRemoved) {
-					if (event.type == INodeNotifier.REMOVE) {
-						NotifyEvent[] es = (NotifyEvent[])values.get(event.notifier);
-						if(es != null) for (int n = 0; n < es.length; n++) {
-							NotifyEvent next = es[n];
-							if(next.index > event.index && next.type == INodeNotifier.REMOVE) {
-								if (next.oldValue == event.notifier) {
-									// parent will be removed, discard this
-									event.discarded = true;
-									if (Debug.debugNotifyDeferred) {
-										event.reason = event.reason + PARENT_IS_REMOVED_TOO + "(see " + next.index + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-									}
-									break;
-								}
-							}
-						}
-					}						
-				}
-				if(event.discarded) continue;
-			}
-		}
-		for (int i = 0; i < count; i++) {
-			NotifyEvent event = (NotifyEvent) this.events.elementAt(i);
-			if (event == null)
-				continue; // error
-			if(event.discarded) continue;
-			notify(event.notifier, event.type, event.changedFeature, event.oldValue, event.newValue, event.pos);
-		}
-		if (Debug.debugNotifyDeferred) {
-			for (int l = 0; l < count; l++) {
-				NotifyEvent event = (NotifyEvent) this.events.elementAt(l);
-				Object o = null;
-				String t = null;
-				if (event.type == INodeNotifier.ADD) {
-					o = event.newValue;
-					t = " + "; //$NON-NLS-1$
-				} else if (event.type == INodeNotifier.REMOVE) {
-					o = event.oldValue;
-					t = " - "; //$NON-NLS-1$
-				}
-				if (o instanceof Element) {
-					String p = ((Node) event.notifier).getNodeName();
-					String c = ((Node) o).getNodeName();
-					String d = (event.discarded ? "! " : "  "); //$NON-NLS-1$ //$NON-NLS-2$
-					System.out.println(d + p + t + c);
-				}
-			}
-		}
-		this.flushing = false;
-		this.events = null;
-	}
-
-	void addToMap(Object o, NotifyEvent event, Map map) {
-		if(o == null) return;
-		Object x = map.get(o);
-		if(x == null) {
-			map.put(o, new NotifyEvent[]{event});
-		} else {
-			NotifyEvent[] es = (NotifyEvent[])x;
-			NotifyEvent[] es2 = new NotifyEvent[es.length + 1];
-			System.arraycopy(es, 0, es2, 0, es.length);
-			es2[es.length] = event;
-			map.put(o, es2);
-		}
-	}
-
-	/**
-	 */
-	private void notifyStructureChanged(Node root) {
-		if (root == null)
-			return;
-		INodeNotifier notifier = (INodeNotifier) root;
-		try {
-			// Its important to "keep going" if exception occurs, since this
-			// notification
-			// comes in between "about to change" and "changed" events. We do
-			// log, however,
-			// since would indicate a program error.
-			notifier.notify(INodeNotifier.STRUCTURE_CHANGED, null, null, null, -1);
-		} catch (Exception e) {
-			Logger.logException("A structured model client threw following exception during adapter notification (" + INodeNotifier.EVENT_TYPE_STRINGS[INodeNotifier.STRUCTURE_CHANGED] + " )", e); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-	}
-
-	/**
-	 */
-	public void propertyChanged(Node node) {
-	}
-
-	/**
-	 * @param node
-	 */
-	private void setCommonRootIfNeeded(Node node) {
-		// defer notification
-		if (this.changedRoot == null) {
-			this.changedRoot = node;
-		} else {
-			// tiny optimization: if previous commonAncestor (changedRoot) is
-			// already 'document',
-			// or if already equal to this 'node',
-			// then no need to re-calculate
-			if (changedRoot.getNodeType() != Node.DOCUMENT_NODE && changedRoot != node) {
-				Node common = ((NodeImpl) this.changedRoot).getCommonAncestor(node);
-				if (common != null)
-					this.changedRoot = common;
-				else
-					this.changedRoot = node;
-			}
-		}
-	}
-
-	/**
-	 */
-	public void startTagChanged(Element element) {
-		if (element == null)
-			return;
-		IDOMNode notifier = (IDOMNode) element;
-		int offset = notifier.getStartOffset();
-		notify(notifier, INodeNotifier.CHANGE, null, null, null, offset);
-		propertyChanged(element);
-	}
-
-	/**
-	 */
-	public void structureChanged(Node node) {
-		if (node == null)
-			return;
-		if (isChanging()) {
-			setCommonRootIfNeeded(node);
-			if (Debug.debugNotifyDeferred) {
-				String p = this.changedRoot.getNodeName();
-				System.out.println("requested STRUCUTRE_CHANGED: " + p); //$NON-NLS-1$
-			}
-			return;
-		}
-		if (Debug.debugNotifyDeferred) {
-			String p = node.getNodeName();
-			System.out.println("STRUCUTRE_CHANGED: " + p); //$NON-NLS-1$
-		}
-		notifyStructureChanged(node);
-	}
-
-	/**
-	 * valueChanged method
-	 * 
-	 * @param node
-	 *            org.w3c.dom.Node
-	 */
-	public void valueChanged(Node node) {
-		if (node == null)
-			return;
-		IDOMNode notifier = null;
-		if (node.getNodeType() == Node.ATTRIBUTE_NODE) {
-			Attr attr = (Attr) node;
-			notifier = (IDOMNode) attr.getOwnerElement();
-			// TODO_dmw: experimental: changed 06/29/2004 to send "strucuture
-			// changed" even for attribute value changes
-			// there are pros and cons to considering attribute value
-			// "structure changed". Will (re)consider
-			// setCommonRootIfNeeded(notifier);
-			if (notifier == null)
-				return;
-			String value = attr.getValue();
-			int offset = notifier.getStartOffset();
-			notify(notifier, INodeNotifier.CHANGE, attr, null, value, offset);
-		} else {
-			// note: we do not send structured changed event for content
-			// changed
-			notifier = (IDOMNode) node;
-			String value = node.getNodeValue();
-			int offset = notifier.getStartOffset();
-			notify(notifier, INodeNotifier.CHANGE, null, null, value, offset);
-			if (node.getNodeType() != Node.ELEMENT_NODE) {
-				IDOMNode parent = (IDOMNode) node.getParentNode();
-				if (parent != null) {
-					notify(parent, INodeNotifier.CONTENT_CHANGED, node, null, value, offset);
-				}
-			}
-		}
-		propertyChanged(notifier);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelParser.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelParser.java
deleted file mode 100644
index 06d25f8..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelParser.java
+++ /dev/null
@@ -1,2424 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.Vector;
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegionList;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.xml.core.internal.commentelement.impl.CommentElementConfiguration;
-import org.eclipse.wst.xml.core.internal.commentelement.impl.CommentElementRegistry;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.Attr;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-
-/**
- * XMLModelParser
- */
-public class XMLModelParser {
-	private XMLModelContext context = null;
-	private DOMModelImpl model = null;
-
-	/**
-	 */
-	protected XMLModelParser(DOMModelImpl model) {
-		super();
-
-		if (model != null) {
-			this.model = model;
-		}
-	}
-
-	/**
-	 */
-	protected boolean canBeImplicitTag(Element element) {
-		ModelParserAdapter adapter = getParserAdapter();
-		if (adapter != null) {
-			return adapter.canBeImplicitTag(element);
-		}
-		return false;
-	}
-
-	/**
-	 */
-	protected boolean canBeImplicitTag(Element element, Node child) {
-		ModelParserAdapter adapter = getParserAdapter();
-		if (adapter != null) {
-			return adapter.canBeImplicitTag(element, child);
-		}
-		return false;
-	}
-
-	/**
-	 */
-	protected boolean canContain(Element element, Node child) {
-		if (element == null || child == null)
-			return false;
-		ElementImpl impl = (ElementImpl) element;
-		if (impl.isEndTag())
-			return false; // invalid (floating) end tag
-		if (!impl.isContainer())
-			return false;
-		if (child.getNodeType() != Node.TEXT_NODE) {
-			if (impl.isJSPContainer() || impl.isCDATAContainer()) {
-				// accepts only Text child
-				return false;
-			}
-		}
-		ModelParserAdapter adapter = getParserAdapter();
-		if (adapter != null) {
-			return adapter.canContain(element, child);
-		}
-		return true;
-	}
-
-	/**
-	 */
-	private void changeAttrEqual(IStructuredDocumentRegion flatNode, ITextRegion region) {
-		int offset = flatNode.getStart();
-		if (offset < 0)
-			return;
-		NodeImpl root = (NodeImpl) this.context.getRootNode();
-		if (root == null)
-			return;
-		Node node = root.getNodeAt(offset);
-		if (node == null)
-			return;
-		if (node.getNodeType() != Node.ELEMENT_NODE) {
-			if (node.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE) {
-				// just notify the change instead of setting data
-				ProcessingInstructionImpl pi = (ProcessingInstructionImpl) node;
-				pi.notifyValueChanged();
-			}
-			return;
-		}
-		// actually, do nothing
-	}
-
-	/**
-	 * changeAttrName method
-	 * 
-	 */
-	private void changeAttrName(IStructuredDocumentRegion flatNode, ITextRegion region) {
-		int offset = flatNode.getStart();
-		if (offset < 0)
-			return;
-		NodeImpl root = (NodeImpl) this.context.getRootNode();
-		if (root == null)
-			return;
-		Node node = root.getNodeAt(offset);
-		if (node == null)
-			return;
-		if (node.getNodeType() != Node.ELEMENT_NODE) {
-			if (node.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE) {
-				// just notify the change instead of setting data
-				ProcessingInstructionImpl pi = (ProcessingInstructionImpl) node;
-				pi.notifyValueChanged();
-			}
-			return;
-		}
-
-		ElementImpl element = (ElementImpl) node;
-		NamedNodeMap attributes = element.getAttributes();
-		if (attributes == null)
-			return;
-		int length = attributes.getLength();
-		for (int i = 0; i < length; i++) {
-			AttrImpl attr = (AttrImpl) attributes.item(i);
-			if (attr == null)
-				continue;
-			if (attr.getNameRegion() != region)
-				continue;
-
-			String name = flatNode.getText(region);
-			attr.setName(name);
-			break;
-		}
-	}
-
-	/**
-	 * changeAttrValue method
-	 * 
-	 */
-	private void changeAttrValue(IStructuredDocumentRegion flatNode, ITextRegion region) {
-		int offset = flatNode.getStart();
-		if (offset < 0)
-			return;
-		NodeImpl root = (NodeImpl) this.context.getRootNode();
-		if (root == null)
-			return;
-		Node node = root.getNodeAt(offset);
-		if (node == null)
-			return;
-		if (node.getNodeType() != Node.ELEMENT_NODE) {
-			if (node.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE) {
-				// just notify the change instead of setting data
-				ProcessingInstructionImpl pi = (ProcessingInstructionImpl) node;
-				pi.notifyValueChanged();
-			}
-			return;
-		}
-
-		ElementImpl element = (ElementImpl) node;
-		NamedNodeMap attributes = element.getAttributes();
-		if (attributes == null)
-			return;
-		int length = attributes.getLength();
-		for (int i = 0; i < length; i++) {
-			AttrImpl attr = (AttrImpl) attributes.item(i);
-			if (attr == null)
-				continue;
-			if (attr.getValueRegion() != region)
-				continue;
-			// just notify the change instead of setting value
-			attr.notifyValueChanged();
-			break;
-		}
-	}
-
-	/**
-	 * changeData method
-	 * 
-	 */
-	private void changeData(IStructuredDocumentRegion flatNode, ITextRegion region) {
-		int offset = flatNode.getStart();
-		if (offset < 0)
-			return;
-		NodeImpl root = (NodeImpl) this.context.getRootNode();
-		if (root == null)
-			return;
-		Node node = root.getNodeAt(offset);
-		if (node == null)
-			return;
-		switch (node.getNodeType()) {
-			case Node.TEXT_NODE : {
-				TextImpl text = (TextImpl) node;
-				if (text.isSharingStructuredDocumentRegion(flatNode)) {
-					// has consecutive text sharing IStructuredDocumentRegion
-					changeStructuredDocumentRegion(flatNode);
-					return;
-				}
-				this.context.setNextNode(node);
-				cleanupText();
-				break;
-			}
-			case Node.CDATA_SECTION_NODE :
-			case Node.PROCESSING_INSTRUCTION_NODE :
-				break;
-			case Node.COMMENT_NODE :
-			case Node.ELEMENT_NODE :
-				// comment tag
-				changeStructuredDocumentRegion(flatNode);
-				return;
-			default :
-				return;
-		}
-
-		// just notify the change instead of setting data
-		NodeImpl impl = (NodeImpl) node;
-		impl.notifyValueChanged();
-	}
-
-	/**
-	 */
-	private void changeEndTag(IStructuredDocumentRegion flatNode, ITextRegionList newRegions, ITextRegionList oldRegions) {
-		int offset = flatNode.getStart();
-		if (offset < 0)
-			return; // error
-		NodeImpl root = (NodeImpl) this.context.getRootNode();
-		if (root == null)
-			return; // error
-		Node node = root.getNodeAt(offset);
-		if (node == null)
-			return; // error
-
-		if (node.getNodeType() != Node.ELEMENT_NODE) {
-			changeStructuredDocumentRegion(flatNode);
-			return;
-		}
-
-		// check if change is only for close tag
-		if (newRegions != null) {
-			Iterator e = newRegions.iterator();
-			while (e.hasNext()) {
-				ITextRegion region = (ITextRegion) e.next();
-				String regionType = region.getType();
-				if (regionType == DOMRegionContext.XML_TAG_CLOSE)
-					continue;
-
-				// other region has changed
-				changeStructuredDocumentRegion(flatNode);
-				return;
-			}
-		}
-		if (oldRegions != null) {
-			Iterator e = oldRegions.iterator();
-			while (e.hasNext()) {
-				ITextRegion region = (ITextRegion) e.next();
-				String regionType = region.getType();
-				if (regionType == DOMRegionContext.XML_TAG_CLOSE)
-					continue;
-
-				// other region has changed
-				changeStructuredDocumentRegion(flatNode);
-				return;
-			}
-		}
-
-		// change for close tag has no impact
-		// do nothing
-	}
-
-	/**
-	 * changeRegion method
-	 * 
-	 */
-	void changeRegion(IStructuredDocumentRegion flatNode, ITextRegion region) {
-		if (flatNode == null || region == null)
-			return;
-		if (this.model.getDocument() == null)
-			return;
-		this.context = new XMLModelContext(this.model.getDocument());
-
-		// optimize typical cases
-		String regionType = region.getType();
-		if (regionType == DOMRegionContext.XML_CONTENT || regionType == DOMRegionContext.XML_COMMENT_TEXT || regionType == DOMRegionContext.XML_CDATA_TEXT || regionType == DOMRegionContext.BLOCK_TEXT || isNestedContent(regionType)) {
-			changeData(flatNode, region);
-		}
-		else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-			changeAttrName(flatNode, region);
-		}
-		else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-			changeAttrValue(flatNode, region);
-		}
-		else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-			changeAttrEqual(flatNode, region);
-		}
-		else if (regionType == DOMRegionContext.XML_TAG_NAME || isNestedTagName(regionType)) {
-			changeTagName(flatNode, region);
-		}
-		else {
-			changeStructuredDocumentRegion(flatNode);
-		}
-	}
-
-
-
-	/**
-	 */
-	private void changeStartTag(IStructuredDocumentRegion flatNode, ITextRegionList newRegions, ITextRegionList oldRegions) {
-		int offset = flatNode.getStart();
-		if (offset < 0)
-			return; // error
-		NodeImpl root = (NodeImpl) this.context.getRootNode();
-		if (root == null)
-			return; // error
-		Node node = root.getNodeAt(offset);
-		if (node == null)
-			return; // error
-
-		if (node.getNodeType() != Node.ELEMENT_NODE) {
-			changeStructuredDocumentRegion(flatNode);
-			return;
-		}
-		ElementImpl element = (ElementImpl) node;
-
-		// check if changes are only for attributes and close tag
-		boolean tagNameUnchanged = false;
-		if (newRegions != null) {
-			Iterator e = newRegions.iterator();
-			while (e.hasNext()) {
-				ITextRegion region = (ITextRegion) e.next();
-				String regionType = region.getType();
-				if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME || regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS || regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE)
-					continue;
-				if (regionType == DOMRegionContext.XML_TAG_CLOSE) {
-					// change from empty tag may have impact on structure
-					if (!element.isEmptyTag())
-						continue;
-				}
-				else if (regionType == DOMRegionContext.XML_TAG_NAME || isNestedTagName(regionType)) {
-					String oldTagName = element.getTagName();
-					String newTagName = flatNode.getText(region);
-					if (oldTagName != null && newTagName != null && oldTagName.equals(newTagName)) {
-						// the tag name is unchanged
-						tagNameUnchanged = true;
-						continue;
-					}
-				}
-
-				// other region has changed
-				changeStructuredDocumentRegion(flatNode);
-				return;
-			}
-		}
-		if (oldRegions != null) {
-			Iterator e = oldRegions.iterator();
-			while (e.hasNext()) {
-				ITextRegion region = (ITextRegion) e.next();
-				String regionType = region.getType();
-				if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME || regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS || regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE)
-					continue;
-				if (regionType == DOMRegionContext.XML_TAG_CLOSE) {
-					// change from empty tag may have impact on structure
-					if (!element.isEmptyTag())
-						continue;
-				}
-				else if (regionType == DOMRegionContext.XML_TAG_NAME || isNestedTagName(regionType)) {
-					// if new tag name is unchanged, it's OK
-					if (tagNameUnchanged)
-						continue;
-				}
-
-				// other region has changed
-				changeStructuredDocumentRegion(flatNode);
-				return;
-			}
-		}
-
-		// update attributes
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null)
-			return; // error
-		NamedNodeMap attributes = element.getAttributes();
-		if (attributes == null)
-			return; // error
-
-		// first remove attributes
-		int regionIndex = 0;
-		int attrIndex = 0;
-		AttrImpl attr = null;
-		while (attrIndex < attributes.getLength()) {
-			attr = (AttrImpl) attributes.item(attrIndex);
-			if (attr == null) { // error
-				attrIndex++;
-				continue;
-			}
-			ITextRegion nameRegion = attr.getNameRegion();
-			if (nameRegion == null) { // error
-				element.removeAttributeNode(attr);
-				continue;
-			}
-			boolean found = false;
-			for (int i = regionIndex; i < regions.size(); i++) {
-				ITextRegion region = regions.get(i);
-				if (region == nameRegion) {
-					regionIndex = i + 1; // next region
-					found = true;
-					break;
-				}
-			}
-			if (found) {
-				attrIndex++;
-			}
-			else {
-				element.removeAttributeNode(attr);
-			}
-		}
-
-		// insert or update attributes
-		attrIndex = 0; // reset to first
-		AttrImpl newAttr = null;
-		ITextRegion oldValueRegion = null;
-		Iterator e = regions.iterator();
-		while (e.hasNext()) {
-			ITextRegion region = (ITextRegion) e.next();
-			String regionType = region.getType();
-			if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-				if (newAttr != null) {
-					// insert deferred new attribute
-					element.insertAttributeNode(newAttr, attrIndex++);
-					newAttr = null;
-				}
-				else if (attr != null && oldValueRegion != null) {
-					// notify existing attribute value removal
-					attr.notifyValueChanged();
-				}
-
-				oldValueRegion = null;
-				attr = (AttrImpl) attributes.item(attrIndex);
-				if (attr != null && attr.getNameRegion() == region) {
-					// existing attribute
-					attrIndex++;
-					// clear other regions
-					oldValueRegion = attr.getValueRegion();
-					attr.setEqualRegion(null);
-					attr.setValueRegion(null);
-				}
-				else {
-					String name = flatNode.getText(region);
-					attr = (AttrImpl) this.model.getDocument().createAttribute(name);
-					if (attr != null)
-						attr.setNameRegion(region);
-					// defer insertion of new attribute
-					newAttr = attr;
-				}
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-				if (attr != null) {
-					attr.setEqualRegion(region);
-				}
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-				if (attr != null) {
-					attr.setValueRegion(region);
-					if (attr != newAttr && oldValueRegion != region) {
-						// notify existing attribute value changed
-						attr.notifyValueChanged();
-					}
-					oldValueRegion = null;
-					attr = null;
-				}
-			}
-		}
-
-		if (newAttr != null) {
-			// insert deferred new attribute
-			element.appendAttributeNode(newAttr);
-		}
-		else if (attr != null && oldValueRegion != null) {
-			// notify existing attribute value removal
-			attr.notifyValueChanged();
-		}
-	}
-
-	/**
-	 * changeStructuredDocumentRegion method
-	 * 
-	 */
-	private void changeStructuredDocumentRegion(IStructuredDocumentRegion flatNode) {
-		if (flatNode == null)
-			return;
-		if (this.model.getDocument() == null)
-			return;
-
-		setupContext(flatNode);
-
-		removeStructuredDocumentRegion(flatNode);
-		// make sure the parent is set to deepest level
-		// when end tag has been removed
-		this.context.setLast();
-		insertStructuredDocumentRegion(flatNode);
-
-		cleanupText();
-		cleanupEndTag();
-	}
-
-	/**
-	 */
-	private void changeTagName(IStructuredDocumentRegion flatNode, ITextRegion region) {
-		int offset = flatNode.getStart();
-		if (offset < 0)
-			return; // error
-		NodeImpl root = (NodeImpl) this.context.getRootNode();
-		if (root == null)
-			return; // error
-		Node node = root.getNodeAt(offset);
-		if (node == null)
-			return; // error
-
-		if (node.getNodeType() != Node.ELEMENT_NODE) {
-			changeStructuredDocumentRegion(flatNode);
-			return;
-		}
-
-		ElementImpl element = (ElementImpl) node;
-		String newTagName = flatNode.getText(region);
-		if (newTagName == null || !element.matchTagName(newTagName)) {
-			// the tag name is changed
-			changeStructuredDocumentRegion(flatNode);
-			return;
-		}
-
-		// the tag name is unchanged
-		// this happens when typing spaces after the tag name
-		// do nothing, but...
-		// if it's not a change in the end tag of an element with the start
-		// tag,
-		// and case has been changed, set to element and notify
-		if (!element.hasStartTag() || StructuredDocumentRegionUtil.getFirstRegionType(flatNode) != DOMRegionContext.XML_END_TAG_OPEN) {
-			String tagName = element.getTagName();
-			if (tagName == null || !tagName.equals(newTagName)) {
-				element.setTagName(newTagName);
-				element.notifyValueChanged();
-			}
-		}
-	}
-
-	/**
-	 * cleanupContext method
-	 */
-	private void cleanupEndTag() {
-		Node parent = this.context.getParentNode();
-		Node next = this.context.getNextNode();
-		while (parent != null) {
-			while (next != null) {
-				if (next.getNodeType() == Node.ELEMENT_NODE) {
-					ElementImpl element = (ElementImpl) next;
-					if (element.isEndTag()) {
-						// floating end tag
-						String tagName = element.getTagName();
-						String rootName = getFindRootName(tagName);
-						ElementImpl start = (ElementImpl) this.context.findStartTag(tagName, rootName);
-						if (start != null) {
-							insertEndTag(start);
-							// move the end tag from 'element' to 'start'
-							start.addEndTag(element);
-							removeNode(element);
-							parent = this.context.getParentNode();
-							next = this.context.getNextNode();
-							continue;
-						}
-					}
-				}
-
-				Node first = next.getFirstChild();
-				if (first != null) {
-					parent = next;
-					next = first;
-					this.context.setNextNode(next);
-				}
-				else {
-					next = next.getNextSibling();
-					this.context.setNextNode(next);
-				}
-			}
-
-			if (parent.getNodeType() == Node.ELEMENT_NODE) {
-				ElementImpl element = (ElementImpl) parent;
-				if (!element.hasEndTag() && element.hasStartTag() && element.getNextSibling() == null) {
-					String tagName = element.getTagName();
-					ElementImpl end = (ElementImpl) this.context.findEndTag(tagName);
-					if (end != null) {
-						// move the end tag from 'end' to 'element'
-						element.addEndTag(end);
-						removeEndTag(end);
-						this.context.setParentNode(parent); // reset context
-						continue;
-					}
-				}
-			}
-
-			next = parent.getNextSibling();
-			parent = parent.getParentNode();
-			if (next != null) {
-				this.context.setNextNode(next);
-			}
-			else {
-				this.context.setParentNode(parent);
-			}
-		}
-	}
-
-	/**
-	 */
-	private void cleanupText() {
-		Node parent = this.context.getParentNode();
-		if (parent == null)
-			return; // error
-		Node next = this.context.getNextNode();
-		Node prev = (next == null ? parent.getLastChild() : next.getPreviousSibling());
-
-		TextImpl nextText = null;
-		TextImpl prevText = null;
-		if (next != null && next.getNodeType() == Node.TEXT_NODE) {
-			nextText = (TextImpl) next;
-		}
-		if (prev != null && prev.getNodeType() == Node.TEXT_NODE) {
-			prevText = (TextImpl) prev;
-		}
-		if (nextText == null && prevText == null)
-			return;
-		if (nextText != null && prevText != null) {
-			// consecutive Text nodes created by setupContext(),
-			// concat them
-			IStructuredDocumentRegion flatNode = nextText.getStructuredDocumentRegion();
-			if (flatNode != null)
-				prevText.appendStructuredDocumentRegion(flatNode);
-			Node newNext = next.getNextSibling();
-			parent.removeChild(next);
-			next = null;
-			this.context.setNextNode(newNext);
-		}
-
-		TextImpl childText = (prevText != null ? prevText : nextText);
-		if (childText.getNextSibling() == null && childText.getPreviousSibling() == null) {
-			if (parent.getNodeType() == Node.ELEMENT_NODE) {
-				ElementImpl parentElement = (ElementImpl) parent;
-				if (!parentElement.hasStartTag() && !parentElement.hasEndTag()) {
-					if (childText.isWhitespace() || childText.isInvalid()) {
-						// implicit parent is not required
-						Node newParent = parent.getParentNode();
-						if (newParent != null) {
-							Node newNext = parent.getNextSibling();
-							newParent.removeChild(parent);
-							parent.removeChild(childText);
-							newParent.insertBefore(childText, newNext);
-							if (childText == next) {
-								this.context.setNextNode(childText);
-							}
-							else if (newNext != null) {
-								this.context.setNextNode(newNext);
-							}
-							else {
-								this.context.setParentNode(newParent);
-							}
-							// try again
-							cleanupText();
-						}
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * This routine create an Element from comment data for comment style
-	 * elements, such as SSI and METADATA
-	 */
-	protected Element createCommentElement(String data, boolean isJSPTag) {
-		String trimmedData = data.trim();
-		CommentElementConfiguration[] configs = CommentElementRegistry.getInstance().getConfigurations();
-		for (int iConfig = 0; iConfig < configs.length; iConfig++) {
-			CommentElementConfiguration config = configs[iConfig];
-			if ((isJSPTag && !config.acceptJSPComment()) || (!isJSPTag && !config.acceptXMLComment())) {
-				continue;
-			}
-			String[] prefixes = config.getPrefix();
-			for (int iPrefix = 0; iPrefix < prefixes.length; iPrefix++) {
-				if (trimmedData.startsWith(prefixes[iPrefix])) {
-					return config.createElement(this.model.getDocument(), data, isJSPTag);
-				}
-			}
-		}
-		ModelParserAdapter adapter = getParserAdapter();
-		if (adapter != null) {
-			return adapter.createCommentElement(this.model.getDocument(), data, isJSPTag);
-		}
-		return null;
-	}
-
-	/**
-	 * This routine create an implicit Element for given parent and child,
-	 * such as HTML, BODY, HEAD, and TBODY for HTML document.
-	 */
-	protected Element createImplicitElement(Node parent, Node child) {
-		ModelParserAdapter adapter = getParserAdapter();
-		if (adapter != null) {
-			return adapter.createImplicitElement(this.model.getDocument(), parent, child);
-		}
-		return null;
-	}
-
-	/**
-	 */
-	private void demoteNodes(Node root, Node newParent, Node oldParent, Node next) {
-		if (newParent.getNodeType() != Node.ELEMENT_NODE)
-			return;
-		ElementImpl newElement = (ElementImpl) newParent;
-
-		// find next
-		while (next == null) {
-			if (oldParent.getNodeType() != Node.ELEMENT_NODE)
-				return;
-			ElementImpl oldElement = (ElementImpl) oldParent;
-			if (oldElement.hasEndTag())
-				return;
-			oldParent = oldElement.getParentNode();
-			if (oldParent == null)
-				return; // error
-			next = oldElement.getNextSibling();
-		}
-
-		while (next != null) {
-			boolean done = false;
-			if (next.getNodeType() == Node.ELEMENT_NODE) {
-				ElementImpl nextElement = (ElementImpl) next;
-				if (!nextElement.hasStartTag()) {
-					Node nextChild = nextElement.getFirstChild();
-					if (nextChild != null) {
-						// demote children
-						next = nextChild;
-						oldParent = nextElement;
-						continue;
-					}
-
-					if (nextElement.hasEndTag()) {
-						if (nextElement.matchEndTag(newElement)) {
-							// stop at the matched invalid end tag
-							next = nextElement.getNextSibling();
-							oldParent.removeChild(nextElement);
-							newElement.addEndTag(nextElement);
-
-							if (newElement == root)
-								return;
-							Node p = newElement.getParentNode();
-							// check if reached to top
-							if (p == null || p == oldParent || p.getNodeType() != Node.ELEMENT_NODE)
-								return;
-							newElement = (ElementImpl) p;
-							done = true;
-						}
-					}
-					else {
-						// remove implicit element
-						next = nextElement.getNextSibling();
-						oldParent.removeChild(nextElement);
-						done = true;
-					}
-				}
-			}
-
-			if (!done) {
-				if (!canContain(newElement, next)) {
-					if (newElement == root)
-						return;
-					Node p = newElement.getParentNode();
-					// check if reached to top
-					if (p == null || p == oldParent || p.getNodeType() != Node.ELEMENT_NODE)
-						return;
-					newElement = (ElementImpl) p;
-					continue;
-				}
-
-				Node child = next;
-				next = next.getNextSibling();
-				oldParent.removeChild(child);
-				insertNode(newElement, child, null);
-				Node childParent = child.getParentNode();
-				if (childParent != newElement) {
-					newElement = (ElementImpl) childParent;
-				}
-			}
-
-			// find next parent and sibling
-			while (next == null) {
-				if (oldParent.getNodeType() != Node.ELEMENT_NODE)
-					return;
-				ElementImpl oldElement = (ElementImpl) oldParent;
-
-				// dug parent must not have children at this point
-				if (!oldElement.hasChildNodes() && !oldElement.hasStartTag()) {
-					oldParent = oldElement.getParentNode();
-					if (oldParent == null)
-						return; // error
-					next = oldElement;
-					break;
-				}
-
-				if (oldElement.hasEndTag())
-					return;
-				oldParent = oldElement.getParentNode();
-				if (oldParent == null)
-					return; // error
-				next = oldElement.getNextSibling();
-			}
-		}
-	}
-
-	private ModelParserAdapter getParserAdapter() {
-		return (ModelParserAdapter) this.model.getDocument().getAdapterFor(ModelParserAdapter.class);
-	}
-	
-	/**
-	 */
-	protected String getFindRootName(String tagName) {
-		ModelParserAdapter adapter = getParserAdapter();
-		if (adapter != null) {
-			return adapter.getFindRootName(tagName);
-		}
-		return null;
-	}
-
-	/**
-	 */
-	protected final IDOMModel getModel() {
-		return this.model;
-	}
-
-	/**
-	 * insertCDATASection method
-	 * 
-	 */
-	private void insertCDATASection(IStructuredDocumentRegion flatNode) {
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null)
-			return;
-
-		CDATASectionImpl cdata = null;
-		try {
-			cdata = (CDATASectionImpl) this.model.getDocument().createCDATASection(null);
-		}
-		catch (DOMException ex) {
-		}
-		if (cdata == null) { // CDATA section might not be supported
-			insertInvalidDecl(flatNode); // regard as invalid decl
-			return;
-		}
-
-		cdata.setStructuredDocumentRegion(flatNode);
-		insertNode(cdata);
-	}
-
-	/**
-	 * insertComment method
-	 * 
-	 */
-	private void insertComment(IStructuredDocumentRegion flatNode) {
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null)
-			return;
-
-		String data = null;
-		boolean isJSPTag = false;
-		Iterator e = regions.iterator();
-		while (e.hasNext()) {
-			ITextRegion region = (ITextRegion) e.next();
-			String regionType = region.getType();
-			if (isNestedCommentOpen(regionType)) {
-				isJSPTag = true;
-			}
-			else if (regionType == DOMRegionContext.XML_COMMENT_TEXT || isNestedCommentText(regionType)) {
-				if (data == null) {
-					data = flatNode.getText(region);
-				}
-			}
-		}
-
-		if (data != null) {
-			ElementImpl element = (ElementImpl) createCommentElement(data, isJSPTag);
-			if (element != null) {
-				if (!isEndTag(element)) {
-					element.setStartStructuredDocumentRegion(flatNode);
-					insertStartTag(element);
-					return;
-				}
-
-				// end tag
-				element.setEndStructuredDocumentRegion(flatNode);
-
-				String tagName = element.getTagName();
-				String rootName = getFindRootName(tagName);
-				ElementImpl start = (ElementImpl) this.context.findStartTag(tagName, rootName);
-				if (start != null) { // start tag found
-					insertEndTag(start);
-					start.addEndTag(element);
-					return;
-				}
-
-				// invalid end tag
-				insertNode(element);
-				return;
-			}
-		}
-
-		CommentImpl comment = (CommentImpl) this.model.getDocument().createComment(null);
-		if (comment == null)
-			return;
-		if (isJSPTag)
-			comment.setJSPTag(true);
-		comment.setStructuredDocumentRegion(flatNode);
-		insertNode(comment);
-	}
-
-	/**
-	 * insertDecl method
-	 * 
-	 */
-	private void insertDecl(IStructuredDocumentRegion flatNode) {
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null)
-			return;
-
-		boolean isDocType = false;
-		String name = null;
-		String publicId = null;
-		String systemId = null;
-		Iterator e = regions.iterator();
-		while (e.hasNext()) {
-			ITextRegion region = (ITextRegion) e.next();
-			String regionType = region.getType();
-			if (regionType == DOMRegionContext.XML_DOCTYPE_DECLARATION) {
-				isDocType = true;
-			}
-			else if (regionType == DOMRegionContext.XML_DOCTYPE_NAME) {
-				if (name == null)
-					name = flatNode.getText(region);
-			}
-			else if (regionType == DOMRegionContext.XML_DOCTYPE_EXTERNAL_ID_PUBREF) {
-				if (publicId == null)
-					publicId = StructuredDocumentRegionUtil.getAttrValue(flatNode, region);
-			}
-			else if (regionType == DOMRegionContext.XML_DOCTYPE_EXTERNAL_ID_SYSREF) {
-				if (systemId == null)
-					systemId = StructuredDocumentRegionUtil.getAttrValue(flatNode, region);
-			}
-		}
-
-		// invalid declaration
-		if (!isDocType) {
-			insertInvalidDecl(flatNode);
-			return;
-		}
-
-		DocumentTypeImpl docType = (DocumentTypeImpl) this.model.getDocument().createDoctype(name);
-		if (docType == null)
-			return;
-		if (publicId != null)
-			docType.setPublicId(publicId);
-		if (systemId != null)
-			docType.setSystemId(systemId);
-		docType.setStructuredDocumentRegion(flatNode);
-		insertNode(docType);
-	}
-
-	/**
-	 * insertEndTag method can be used by subclasses, but not overrided.
-	 * 
-	 * @param element
-	 *            org.w3c.dom.Element
-	 */
-	protected void insertEndTag(Element element) {
-		if (element == null)
-			return;
-
-		Node newParent = element.getParentNode();
-		if (newParent == null)
-			return; // error
-
-		if (!((ElementImpl) element).isContainer()) {
-			// just update context
-			Node elementNext = element.getNextSibling();
-			if (elementNext != null)
-				this.context.setNextNode(elementNext);
-			else
-				this.context.setParentNode(newParent);
-			return;
-		}
-
-		// promote children
-		Node newNext = element.getNextSibling();
-		Node oldParent = this.context.getParentNode();
-		if (oldParent == null)
-			return; // error
-		Node oldNext = this.context.getNextNode();
-		promoteNodes(element, newParent, newNext, oldParent, oldNext);
-
-		// update context
-		// re-check the next sibling
-		newNext = element.getNextSibling();
-		if (newNext != null)
-			this.context.setNextNode(newNext);
-		else
-			this.context.setParentNode(newParent);
-	}
-
-	/**
-	 * insertEndTag method
-	 * 
-	 */
-	private void insertEndTag(IStructuredDocumentRegion flatNode) {
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null)
-			return;
-
-		String tagName = null;
-		Iterator e = regions.iterator();
-		while (e.hasNext()) {
-			ITextRegion region = (ITextRegion) e.next();
-			String regionType = region.getType();
-			if (regionType == DOMRegionContext.XML_TAG_NAME || isNestedTagName(regionType)) {
-				if (tagName == null)
-					tagName = flatNode.getText(region);
-			}
-		}
-
-		if (tagName == null) { // invalid end tag
-			insertText(flatNode); // regard as invalid text
-			return;
-		}
-
-		String rootName = getFindRootName(tagName);
-		ElementImpl start = (ElementImpl) this.context.findStartTag(tagName, rootName);
-		if (start != null) { // start tag found
-			insertEndTag(start);
-			start.setEndStructuredDocumentRegion(flatNode);
-			return;
-		}
-
-		// invalid end tag
-		ElementImpl end = null;
-		try {
-			end = (ElementImpl) this.model.getDocument().createElement(tagName);
-		}
-		catch (DOMException ex) {
-		}
-		if (end == null) { // invalid end tag
-			insertText(flatNode); // regard as invalid text
-			return;
-		}
-		end.setEndStructuredDocumentRegion(flatNode);
-		insertNode(end);
-	}
-
-	/**
-	 * insertEntityRef method
-	 * 
-	 */
-	private void insertEntityRef(IStructuredDocumentRegion flatNode) {
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null)
-			return;
-
-		String name = null;
-		Iterator e = regions.iterator();
-		while (e.hasNext()) {
-			ITextRegion region = (ITextRegion) e.next();
-			String regionType = region.getType();
-			if (regionType == DOMRegionContext.XML_ENTITY_REFERENCE || regionType == DOMRegionContext.XML_CHAR_REFERENCE) {
-				if (name == null)
-					name = StructuredDocumentRegionUtil.getEntityRefName(flatNode, region);
-			}
-		}
-
-		if (name == null) { // invalid entity
-			insertText(flatNode);
-			return;
-		}
-
-		// ISSUE: avoid this cast
-		String value = ((DocumentImpl)this.model.getDocument()).getCharValue(name);
-		if (value != null) { // character entity
-			TextImpl text = (TextImpl) this.context.findPreviousText();
-			if (text != null) { // existing text found
-				// do not append data
-				text.appendStructuredDocumentRegion(flatNode);
-				// notify the change
-				text.notifyValueChanged();
-				return;
-			}
-
-			// new text
-			text = (TextImpl) this.model.getDocument().createTextNode(null);
-			if (text == null)
-				return;
-			text.setStructuredDocumentRegion(flatNode);
-			insertNode(text);
-			return;
-		}
-
-		// general entity reference
-		EntityReferenceImpl ref = null;
-		try {
-			ref = (EntityReferenceImpl) this.model.getDocument().createEntityReference(name);
-		}
-		catch (DOMException ex) {
-		}
-		if (ref == null) { // entity reference might not be supported
-			insertText(flatNode); // regard as invalid text
-			return;
-		}
-
-		ref.setStructuredDocumentRegion(flatNode);
-		insertNode(ref);
-	}
-
-	/**
-	 * insertInvalidDecl method
-	 * 
-	 */
-	private void insertInvalidDecl(IStructuredDocumentRegion flatNode) {
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null)
-			return;
-
-		ElementImpl element = null;
-		try {
-			element = (ElementImpl) this.model.getDocument().createElement("!");//$NON-NLS-1$
-		}
-		catch (DOMException ex) {
-		}
-		if (element == null) { // invalid tag
-			insertText(flatNode); // regard as invalid text
-			return;
-		}
-		element.setEmptyTag(true);
-		element.setStartStructuredDocumentRegion(flatNode);
-		insertNode(element);
-	}
-
-	/**
-	 * insertJSPTag method
-	 * 
-	 */
-	private void insertNestedTag(IStructuredDocumentRegion flatNode) {
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null)
-			return;
-
-		String tagName = null;
-		AttrImpl attr = null;
-		Vector attrNodes = null;
-		boolean isCloseTag = false;
-		Iterator e = regions.iterator();
-		while (e.hasNext()) {
-			ITextRegion region = (ITextRegion) e.next();
-			String regionType = region.getType();
-			if (isNestedTagOpen(regionType) || isNestedTagName(regionType)) {
-				tagName = computeNestedTag(regionType, tagName, flatNode, region);
-			}
-			else if (isNestedTagClose(regionType)) {
-				isCloseTag = true;
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-				String name = flatNode.getText(region);
-				attr = (AttrImpl) this.model.getDocument().createAttribute(name);
-				if (attr != null) {
-					attr.setNameRegion(region);
-					if (attrNodes == null)
-						attrNodes = new Vector();
-					attrNodes.addElement(attr);
-				}
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-				if (attr != null) {
-					attr.setEqualRegion(region);
-				}
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-				if (attr != null) {
-					attr.setValueRegion(region);
-					attr = null;
-				}
-			}
-		}
-
-		if (tagName == null) {
-			if (isCloseTag) {
-				// close JSP tag
-				Node parent = this.context.getParentNode();
-				if (parent != null && parent.getNodeType() == Node.ELEMENT_NODE) {
-					ElementImpl start = (ElementImpl) parent;
-					if (start.isJSPContainer()) {
-						insertEndTag(start);
-						start.setEndStructuredDocumentRegion(flatNode);
-						return;
-					}
-				}
-			}
-			// invalid JSP tag
-			insertText(flatNode); // regard as invalid text
-			return;
-		}
-
-		ElementImpl element = null;
-		try {
-			element = (ElementImpl) this.model.getDocument().createElement(tagName);
-		}
-		catch (DOMException ex) {
-		}
-		if (element == null) { // invalid tag
-			insertText(flatNode); // regard as invalid text
-			return;
-		}
-		if (attrNodes != null) {
-			Enumeration ae = attrNodes.elements();
-			while (ae.hasMoreElements()) {
-				Attr a = (Attr) ae.nextElement();
-				if (a == null)
-					continue;
-				element.appendAttributeNode(a);
-			}
-		}
-		element.setJSPTag(true);
-		element.setStartStructuredDocumentRegion(flatNode);
-		insertStartTag(element);
-	}
-
-	protected boolean isNestedTagClose(String regionType) {
-		boolean result = false;
-		return result;
-	}
-
-	protected boolean isNestedTagOpen(String regionType) {
-		boolean result = false;
-		return result;
-	}
-
-	protected String computeNestedTag(String regionType, String tagName, IStructuredDocumentRegion structuredDocumentRegion, ITextRegion region) {
-		return tagName;
-	}
-
-	/**
-	 * insertNode method
-	 * 
-	 * @param child
-	 *            org.w3c.dom.Node
-	 */
-	private void insertNode(Node node) {
-		if (node == null)
-			return;
-		if (this.context == null)
-			return;
-
-		Node parent = this.context.getParentNode();
-		if (parent == null)
-			return;
-		Node next = this.context.getNextNode();
-		while (parent.getNodeType() == Node.ELEMENT_NODE) {
-			ElementImpl element = (ElementImpl) parent;
-			if (canContain(element, node)) {
-				if (!element.hasStartTag() && next == element.getFirstChild()) {
-					// first child of implicit tag
-					// deletege to the parent
-					parent = element.getParentNode();
-					if (parent == null)
-						return;
-					next = element;
-					this.context.setNextNode(next);
-					continue;
-				}
-				break;
-			}
-			parent = element.getParentNode();
-			if (parent == null)
-				return;
-
-			// promote siblings
-			Node newNext = element.getNextSibling();
-			Node child = next;
-			while (child != null) {
-				Node nextChild = child.getNextSibling();
-				element.removeChild(child);
-				parent.insertBefore(child, newNext);
-				child = nextChild;
-			}
-
-			// leave the old end tag where it is
-			if (element.hasEndTag()) {
-				Element end = element.removeEndTag();
-				if (end != null) {
-					parent.insertBefore(end, newNext);
-					if (next == null)
-						next = end;
-				}
-			}
-			if (!element.hasStartTag()) {
-				// implicit element
-				if (!element.hasChildNodes()) {
-					parent.removeChild(element);
-				}
-			}
-
-			// update context
-			if (next == null)
-				next = newNext;
-			if (next != null)
-				this.context.setNextNode(next);
-			else
-				this.context.setParentNode(parent);
-		}
-
-		insertNode(parent, node, next);
-		next = node.getNextSibling();
-		if (next != null)
-			this.context.setNextNode(next);
-		else
-			this.context.setParentNode(node.getParentNode());
-	}
-
-	/**
-	 */
-	private void insertNode(Node parent, Node node, Node next) {
-		while (next != null && next.getNodeType() == Node.ELEMENT_NODE) {
-			ElementImpl nextElement = (ElementImpl) next;
-			if (nextElement.hasStartTag())
-				break;
-			if (!canBeImplicitTag(nextElement, node))
-				break;
-			parent = nextElement;
-			next = nextElement.getFirstChild();
-		}
-		Element implicitElement = createImplicitElement(parent, node);
-		if (implicitElement != null)
-			node = implicitElement;
-		parent.insertBefore(node, next);
-	}
-
-	/**
-	 * insertPI method
-	 * 
-	 */
-	private void insertPI(IStructuredDocumentRegion flatNode) {
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null)
-			return;
-
-		String target = null;
-		Iterator e = regions.iterator();
-		while (e.hasNext()) {
-			ITextRegion region = (ITextRegion) e.next();
-			String regionType = region.getType();
-			if (regionType == DOMRegionContext.XML_PI_OPEN || regionType == DOMRegionContext.XML_PI_CLOSE)
-				continue;
-			if (target == null)
-				target = flatNode.getText(region);
-		}
-
-		ProcessingInstructionImpl pi = (ProcessingInstructionImpl) this.model.getDocument().createProcessingInstruction(target, null);
-		if (pi == null)
-			return;
-		pi.setStructuredDocumentRegion(flatNode);
-		insertNode(pi);
-	}
-
-	/**
-	 * insertStartTag method can be used by subclasses, but not overridden.
-	 * 
-	 * @param element
-	 *            org.w3c.dom.Element
-	 */
-	protected void insertStartTag(Element element) {
-		if (element == null)
-			return;
-		if (this.context == null)
-			return;
-
-		insertNode(element);
-
-		ElementImpl newElement = (ElementImpl) element;
-		if (newElement.isEmptyTag() || !newElement.isContainer())
-			return;
-
-		// demote siblings
-		Node parent = this.context.getParentNode();
-		if (parent == null)
-			return; // error
-		Node next = this.context.getNextNode();
-		demoteNodes(element, element, parent, next);
-
-		// update context
-		Node firstChild = element.getFirstChild();
-		if (firstChild != null)
-			this.context.setNextNode(firstChild);
-		else
-			this.context.setParentNode(element);
-	}
-
-	/**
-	 * insertStartTag method
-	 * 
-	 */
-	private void insertStartTag(IStructuredDocumentRegion flatNode) {
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null)
-			return;
-
-		String tagName = null;
-		boolean isEmptyTag = false;
-		AttrImpl attr = null;
-		Vector attrNodes = null;
-		Iterator e = regions.iterator();
-		while (e.hasNext()) {
-			ITextRegion region = (ITextRegion) e.next();
-			String regionType = region.getType();
-			if (regionType == DOMRegionContext.XML_TAG_NAME || isNestedTagName(regionType)) {
-				if (tagName == null)
-					tagName = flatNode.getText(region);
-			}
-			else if (regionType == DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
-				isEmptyTag = true;
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-				String name = flatNode.getText(region);
-				attr = (AttrImpl) this.model.getDocument().createAttribute(name);
-				if (attr != null) {
-					attr.setNameRegion(region);
-					if (attrNodes == null)
-						attrNodes = new Vector();
-					attrNodes.addElement(attr);
-				}
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-				if (attr != null) {
-					attr.setEqualRegion(region);
-				}
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-				if (attr != null) {
-					attr.setValueRegion(region);
-					attr = null;
-				}
-			}
-		}
-
-		if (tagName == null) { // invalid start tag
-			insertText(flatNode); // regard as invalid text
-			return;
-		}
-
-		ElementImpl element = null;
-		try {
-			element = (ElementImpl) this.model.getDocument().createElement(tagName);
-		}
-		catch (DOMException ex) {
-			// typically invalid name
-		}
-		if (element == null) { // invalid tag
-			insertText(flatNode); // regard as invalid text
-			return;
-		}
-		if (attrNodes != null) {
-			Enumeration ae = attrNodes.elements();
-			while (ae.hasMoreElements()) {
-				Attr a = (Attr) ae.nextElement();
-				if (a == null)
-					continue;
-				element.appendAttributeNode(a);
-			}
-		}
-		if (isEmptyTag)
-			element.setEmptyTag(true);
-		element.setStartStructuredDocumentRegion(flatNode);
-		insertStartTag(element);
-	}
-
-	/**
-	 * insertStructuredDocumentRegion method
-	 * 
-	 */
-	protected void insertStructuredDocumentRegion(IStructuredDocumentRegion flatNode) {
-		String regionType = StructuredDocumentRegionUtil.getFirstRegionType(flatNode);
-		if (regionType == DOMRegionContext.XML_TAG_OPEN) {
-			insertStartTag(flatNode);
-		}
-		else if (regionType == DOMRegionContext.XML_END_TAG_OPEN) {
-			insertEndTag(flatNode);
-		}
-		else if (regionType == DOMRegionContext.XML_COMMENT_OPEN || isNestedCommentOpen(regionType)) {
-			insertComment(flatNode);
-		}
-		else if (regionType == DOMRegionContext.XML_ENTITY_REFERENCE || regionType == DOMRegionContext.XML_CHAR_REFERENCE) {
-			insertEntityRef(flatNode);
-		}
-		else if (regionType == DOMRegionContext.XML_DECLARATION_OPEN) {
-			insertDecl(flatNode);
-		}
-		else if (regionType == DOMRegionContext.XML_PI_OPEN) {
-			insertPI(flatNode);
-		}
-		else if (regionType == DOMRegionContext.XML_CDATA_OPEN) {
-			insertCDATASection(flatNode);
-		}
-		else if (isNestedTag(regionType)) {
-			insertNestedTag(flatNode);
-		}
-		else {
-			insertText(flatNode);
-		}
-	}
-
-	protected boolean isNestedTag(String regionType) {
-		boolean result = false;
-		return result;
-	}
-
-	protected boolean isNestedCommentText(String regionType) {
-		boolean result = false;
-		return result;
-	}
-
-
-	protected boolean isNestedCommentOpen(String regionType) {
-		boolean result = false;
-		return result;
-	}
-
-	protected boolean isNestedTagName(String regionType) {
-		boolean result = false;
-		return result;
-	}
-
-	protected boolean isNestedContent(String regionType) {
-		boolean result = false;
-		return result;
-	}
-
-	/**
-	 * insertText method Can be called from subclasses, not to be overrided or
-	 * re-implemented.
-	 * 
-	 */
-	protected void insertText(IStructuredDocumentRegion flatNode) {
-		TextImpl text = (TextImpl) this.context.findPreviousText();
-		if (text != null) { // existing text found
-			text.appendStructuredDocumentRegion(flatNode);
-			// notify the change
-			text.notifyValueChanged();
-			return;
-		}
-
-		// new text
-		text = (TextImpl) this.model.getDocument().createTextNode(null);
-		if (text == null)
-			return;
-		text.setStructuredDocumentRegion(flatNode);
-		insertNode(text);
-	}
-
-	/**
-	 */
-	protected boolean isEndTag(IDOMElement element) {
-		ModelParserAdapter adapter = getParserAdapter();
-		if (adapter != null) {
-			return adapter.isEndTag(element);
-		}
-		return element.isEndTag();
-	}
-
-	/**
-	 */
-	private void promoteNodes(Node root, Node newParent, Node newNext, Node oldParent, Node next) {
-		ElementImpl newElement = null;
-		if (newParent.getNodeType() == Node.ELEMENT_NODE) {
-			newElement = (ElementImpl) newParent;
-		}
-
-		Node rootParent = root.getParentNode();
-		while (oldParent != rootParent) {
-			while (next != null) {
-				boolean done = false;
-				boolean endTag = false;
-				if (next.getNodeType() == Node.ELEMENT_NODE) {
-					ElementImpl nextElement = (ElementImpl) next;
-					if (!nextElement.hasStartTag()) {
-						Node nextChild = nextElement.getFirstChild();
-						if (nextChild != null) {
-							// promote children
-							next = nextChild;
-							oldParent = nextElement;
-							continue;
-						}
-
-						if (nextElement.hasEndTag()) {
-							if (nextElement.matchEndTag(newElement)) {
-								endTag = true;
-							}
-						}
-						else {
-							// remove implicit element
-							next = nextElement.getNextSibling();
-							oldParent.removeChild(nextElement);
-							done = true;
-						}
-					}
-				}
-
-				if (!done) {
-					if (!endTag && newElement != null && !canContain(newElement, next)) {
-						newParent = newElement.getParentNode();
-						if (newParent == null)
-							return; // error
-						Node elementNext = newElement.getNextSibling();
-						// promote siblings
-						promoteNodes(newElement, newParent, elementNext, newElement, newNext);
-						newNext = newElement.getNextSibling();
-						if (newParent.getNodeType() == Node.ELEMENT_NODE) {
-							newElement = (ElementImpl) newParent;
-						}
-						else {
-							newElement = null;
-						}
-						continue;
-					}
-
-					Node child = next;
-					next = next.getNextSibling();
-					oldParent.removeChild(child);
-					insertNode(newParent, child, newNext);
-					Node childParent = child.getParentNode();
-					if (childParent != newParent) {
-						newParent = childParent;
-						newElement = (ElementImpl) newParent;
-						newNext = child.getNextSibling();
-					}
-				}
-			}
-
-			if (oldParent.getNodeType() != Node.ELEMENT_NODE)
-				return;
-			ElementImpl oldElement = (ElementImpl) oldParent;
-			oldParent = oldElement.getParentNode();
-			if (oldParent == null)
-				return; // error
-			next = oldElement.getNextSibling();
-
-			if (oldElement.hasEndTag()) {
-				Element end = null;
-				if (!oldElement.hasChildNodes() && !oldElement.hasStartTag()) {
-					oldParent.removeChild(oldElement);
-					end = oldElement;
-				}
-				else {
-					end = oldElement.removeEndTag();
-				}
-				if (end != null) {
-					insertNode(newParent, end, newNext);
-					Node endParent = end.getParentNode();
-					if (endParent != newParent) {
-						newParent = endParent;
-						newElement = (ElementImpl) newParent;
-						newNext = end.getNextSibling();
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * removeEndTag method
-	 * 
-	 * @param element
-	 *            org.w3c.dom.Element
-	 */
-	private void removeEndTag(Element element) {
-		if (element == null)
-			return;
-		if (this.context == null)
-			return;
-
-		Node parent = element.getParentNode();
-		if (parent == null)
-			return; // error
-
-		if (!((ElementImpl) element).isContainer()) {
-			// just update context
-			Node elementNext = element.getNextSibling();
-			if (elementNext != null)
-				this.context.setNextNode(elementNext);
-			else
-				this.context.setParentNode(parent);
-			return;
-		}
-
-		// demote siblings
-		Node next = element.getNextSibling();
-		ElementImpl newElement = (ElementImpl) element;
-		// find new parent
-		for (Node last = newElement.getLastChild(); last != null; last = last.getLastChild()) {
-			if (last.getNodeType() != Node.ELEMENT_NODE)
-				break;
-			ElementImpl lastElement = (ElementImpl) last;
-			if (lastElement.hasEndTag() || lastElement.isEmptyTag() || !lastElement.isContainer())
-				break;
-			newElement = lastElement;
-		}
-		Node lastChild = newElement.getLastChild();
-		demoteNodes(element, newElement, parent, next);
-
-		// update context
-		Node newNext = null;
-		if (lastChild != null)
-			newNext = lastChild.getNextSibling();
-		else
-			newNext = newElement.getFirstChild();
-		if (newNext != null)
-			this.context.setNextNode(newNext);
-		else
-			this.context.setParentNode(newElement);
-	}
-
-	/**
-	 * Remove the specified node if it is no longer required implicit tag with
-	 * remaining child nodes promoted.
-	 */
-	private Element removeImplicitElement(Node parent) {
-		if (parent == null)
-			return null;
-		if (parent.getNodeType() != Node.ELEMENT_NODE)
-			return null;
-		ElementImpl element = (ElementImpl) parent;
-		if (!element.isImplicitTag())
-			return null;
-		if (canBeImplicitTag(element))
-			return null;
-
-		Node elementParent = element.getParentNode();
-		if (elementParent == null)
-			return null; // error
-		Node firstChild = element.getFirstChild();
-		Node child = firstChild;
-		Node elementNext = element.getNextSibling();
-		while (child != null) {
-			Node nextChild = child.getNextSibling();
-			element.removeChild(child);
-			elementParent.insertBefore(child, elementNext);
-			child = nextChild;
-		}
-
-		// reset context
-		if (this.context.getParentNode() == element) {
-			Node oldNext = this.context.getNextNode();
-			if (oldNext != null) {
-				this.context.setNextNode(oldNext);
-			}
-			else {
-				if (elementNext != null) {
-					this.context.setNextNode(elementNext);
-				}
-				else {
-					this.context.setParentNode(elementParent);
-				}
-			}
-		}
-		else if (this.context.getNextNode() == element) {
-			if (firstChild != null) {
-				this.context.setNextNode(firstChild);
-			}
-			else {
-				if (elementNext != null) {
-					this.context.setNextNode(elementNext);
-				}
-				else {
-					this.context.setParentNode(elementParent);
-				}
-			}
-		}
-
-		removeNode(element);
-		return element;
-	}
-
-	/**
-	 * removeNode method
-	 * 
-	 * @param node
-	 *            org.w3c.dom.Node
-	 */
-	private void removeNode(Node node) {
-		if (node == null)
-			return;
-		if (this.context == null)
-			return;
-
-		Node parent = node.getParentNode();
-		if (parent == null)
-			return;
-		Node next = node.getNextSibling();
-		Node prev = node.getPreviousSibling();
-
-		// update context
-		Node oldParent = this.context.getParentNode();
-		if (node == oldParent) {
-			if (next != null)
-				this.context.setNextNode(next);
-			else
-				this.context.setParentNode(parent);
-		}
-		else {
-			Node oldNext = this.context.getNextNode();
-			if (node == oldNext) {
-				this.context.setNextNode(next);
-			}
-		}
-
-		parent.removeChild(node);
-
-		if (removeImplicitElement(parent) != null)
-			return;
-
-		// demote sibling
-		if (prev != null && prev.getNodeType() == Node.ELEMENT_NODE) {
-			ElementImpl newElement = (ElementImpl) prev;
-			if (!newElement.hasEndTag() && !newElement.isEmptyTag() && newElement.isContainer()) {
-				// find new parent
-				for (Node last = newElement.getLastChild(); last != null; last = last.getLastChild()) {
-					if (last.getNodeType() != Node.ELEMENT_NODE)
-						break;
-					ElementImpl lastElement = (ElementImpl) last;
-					if (lastElement.hasEndTag() || lastElement.isEmptyTag() || !lastElement.isContainer())
-						break;
-					newElement = lastElement;
-				}
-				Node lastChild = newElement.getLastChild();
-				demoteNodes(prev, newElement, parent, next);
-
-				// update context
-				Node newNext = null;
-				if (lastChild != null)
-					newNext = lastChild.getNextSibling();
-				else
-					newNext = newElement.getFirstChild();
-				if (newNext != null)
-					this.context.setNextNode(newNext);
-				else
-					this.context.setParentNode(newElement);
-			}
-		}
-	}
-
-	/**
-	 * removeStartTag method
-	 * 
-	 * @param element
-	 *            org.w3c.dom.Element
-	 */
-	private void removeStartTag(Element element) {
-		if (element == null)
-			return;
-		if (this.context == null)
-			return;
-
-		// for implicit tag
-		ElementImpl oldElement = (ElementImpl) element;
-		if (canBeImplicitTag(oldElement)) {
-			Node newParent = null;
-			Node prev = oldElement.getPreviousSibling();
-			if (prev != null && prev.getNodeType() == Node.ELEMENT_NODE) {
-				ElementImpl prevElement = (ElementImpl) prev;
-				if (!prevElement.hasEndTag()) {
-					if (prevElement.hasStartTag() || prevElement.matchTagName(oldElement.getTagName())) {
-						newParent = prevElement;
-					}
-				}
-			}
-			if (newParent == null) {
-				// this element should stay as implicit tag
-				// just remove all attributes
-				oldElement.removeStartTag();
-
-				// update context
-				Node child = oldElement.getFirstChild();
-				if (child != null) {
-					this.context.setNextNode(child);
-				}
-				else if (oldElement.hasEndTag()) {
-					this.context.setParentNode(oldElement);
-				}
-				return;
-			}
-		}
-		// for comment tag
-		if (oldElement.isCommentTag())
-			oldElement.removeStartTag();
-
-		// promote children
-		Node elementParent = element.getParentNode();
-		Node parent = elementParent;
-		if (parent == null)
-			return;
-		Node first = element.getFirstChild();
-		Node firstElement = null; // for the case first is removed as end
-		// tag
-		if (first != null) {
-			// find new parent for children
-			ElementImpl newElement = null;
-			for (Node last = element.getPreviousSibling(); last != null; last = last.getLastChild()) {
-				if (last.getNodeType() != Node.ELEMENT_NODE)
-					break;
-				ElementImpl lastElement = (ElementImpl) last;
-				if (lastElement.hasEndTag() || lastElement.isEmptyTag() || !lastElement.isContainer())
-					break;
-				newElement = lastElement;
-			}
-			Node next = first;
-			if (newElement != null) {
-				while (next != null) {
-					if (!newElement.hasEndTag() && newElement.hasStartTag() && next.getNodeType() == Node.ELEMENT_NODE) {
-						ElementImpl nextElement = (ElementImpl) next;
-						if (!nextElement.hasStartTag() && nextElement.hasEndTag() && nextElement.matchEndTag(newElement)) {
-							// stop at the matched invalid end tag
-							Node elementChild = nextElement.getFirstChild();
-							while (elementChild != null) {
-								Node nextChild = elementChild.getNextSibling();
-								nextElement.removeChild(elementChild);
-								newElement.appendChild(elementChild);
-								elementChild = nextChild;
-							}
-
-							next = nextElement.getNextSibling();
-							element.removeChild(nextElement);
-							newElement.addEndTag(nextElement);
-							if (nextElement == first)
-								firstElement = newElement;
-
-							Node newParent = newElement.getParentNode();
-							if (newParent == parent)
-								break;
-							if (newParent == null || newParent.getNodeType() != Node.ELEMENT_NODE)
-								break; // error
-							newElement = (ElementImpl) newParent;
-							continue;
-						}
-					}
-					if (!canContain(newElement, next)) {
-						Node newParent = newElement.getParentNode();
-						if (newParent == parent)
-							break;
-						if (newParent == null || newParent.getNodeType() != Node.ELEMENT_NODE)
-							break; // error
-						newElement = (ElementImpl) newParent;
-						continue;
-					}
-					Node child = next;
-					next = next.getNextSibling();
-					element.removeChild(child);
-					newElement.appendChild(child);
-				}
-				newElement = null;
-			}
-			if (parent.getNodeType() == Node.ELEMENT_NODE) {
-				newElement = (ElementImpl) parent;
-			}
-			while (next != null) {
-				if (newElement == null || canContain(newElement, next)) {
-					Node child = next;
-					next = next.getNextSibling();
-					element.removeChild(child);
-					parent.insertBefore(child, element);
-					continue;
-				}
-
-				parent = newElement.getParentNode();
-				if (parent == null)
-					return;
-
-				// promote siblings
-				Node newNext = newElement.getNextSibling();
-				Node child = element;
-				while (child != null) {
-					Node nextChild = child.getNextSibling();
-					newElement.removeChild(child);
-					parent.insertBefore(child, newNext);
-					child = nextChild;
-				}
-
-				// leave the old end tag where it is
-				if (newElement.hasEndTag()) {
-					Element end = newElement.removeEndTag();
-					if (end != null) {
-						parent.insertBefore(end, newNext);
-					}
-				}
-				if (!newElement.hasStartTag()) {
-					// implicit element
-					if (!newElement.hasChildNodes()) {
-						parent.removeChild(newElement);
-					}
-				}
-
-				if (parent.getNodeType() == Node.ELEMENT_NODE) {
-					newElement = (ElementImpl) parent;
-				}
-				else {
-					newElement = null;
-				}
-			}
-		}
-
-		Node newNext = element;
-		Node startElement = null; // for the case element is removed as end
-		// tag
-		if (oldElement.hasEndTag()) {
-			// find new parent for invalid end tag and siblings
-			ElementImpl newElement = null;
-			for (Node last = element.getPreviousSibling(); last != null; last = last.getLastChild()) {
-				if (last.getNodeType() != Node.ELEMENT_NODE)
-					break;
-				ElementImpl lastElement = (ElementImpl) last;
-				if (lastElement.hasEndTag() || lastElement.isEmptyTag() || !lastElement.isContainer())
-					break;
-				newElement = lastElement;
-			}
-			if (newElement != null) {
-				// demote invalid end tag and sibling
-				Node next = element;
-				while (next != null) {
-					if (!newElement.hasEndTag() && newElement.hasStartTag() && next.getNodeType() == Node.ELEMENT_NODE) {
-						ElementImpl nextElement = (ElementImpl) next;
-						if (!nextElement.hasStartTag() && nextElement.hasEndTag() && nextElement.matchEndTag(newElement)) {
-							// stop at the matched invalid end tag
-							Node elementChild = nextElement.getFirstChild();
-							while (elementChild != null) {
-								Node nextChild = elementChild.getNextSibling();
-								nextElement.removeChild(elementChild);
-								newElement.appendChild(elementChild);
-								elementChild = nextChild;
-							}
-
-							next = nextElement.getNextSibling();
-							parent.removeChild(nextElement);
-							newElement.addEndTag(nextElement);
-							if (nextElement == newNext)
-								startElement = newElement;
-
-							Node newParent = newElement.getParentNode();
-							if (newParent == parent)
-								break;
-							if (newParent == null || newParent.getNodeType() != Node.ELEMENT_NODE)
-								break; // error
-							newElement = (ElementImpl) newParent;
-							continue;
-						}
-					}
-					if (!canContain(newElement, next)) {
-						Node newParent = newElement.getParentNode();
-						if (newParent == parent)
-							break;
-						if (newParent == null || newParent.getNodeType() != Node.ELEMENT_NODE)
-							break; // error
-						newElement = (ElementImpl) newParent;
-						continue;
-					}
-					Node child = next;
-					next = next.getNextSibling();
-					parent.removeChild(child);
-					if (child == oldElement) {
-						if (!oldElement.isCommentTag()) {
-							// clone (re-create) end tag
-							Element end = oldElement.removeEndTag();
-							if (end != null) {
-								child = end;
-								newNext = end;
-							}
-						}
-					}
-					newElement.appendChild(child);
-				}
-			}
-			else {
-				if (!oldElement.isCommentTag()) {
-					// clone (re-create) end tag
-					Element end = oldElement.removeEndTag();
-					if (end != null) {
-						parent.insertBefore(end, oldElement);
-						parent.removeChild(oldElement);
-						newNext = end;
-					}
-				}
-			}
-		}
-		else {
-			newNext = oldElement.getNextSibling();
-			parent.removeChild(oldElement);
-		}
-
-		// update context
-		Node oldParent = this.context.getParentNode();
-		Node oldNext = this.context.getNextNode();
-		if (element == oldParent) {
-			if (oldNext != null) {
-				this.context.setNextNode(oldNext); // reset for new parent
-			}
-			else if (newNext != null) {
-				this.context.setNextNode(newNext);
-			}
-			else {
-				this.context.setParentNode(parent);
-			}
-		}
-		else if (element == oldNext) {
-			if (firstElement != null) {
-				this.context.setParentNode(firstElement);
-			}
-			else if (first != null) {
-				this.context.setNextNode(first);
-			}
-			else if (startElement != null) {
-				this.context.setParentNode(startElement);
-			}
-			else {
-				this.context.setNextNode(newNext);
-			}
-		}
-
-		removeImplicitElement(elementParent);
-	}
-
-	/**
-	 * removeStructuredDocumentRegion method
-	 * 
-	 */
-	private void removeStructuredDocumentRegion(IStructuredDocumentRegion oldStructuredDocumentRegion) {
-		NodeImpl next = (NodeImpl) this.context.getNextNode();
-		if (next != null) {
-			short nodeType = next.getNodeType();
-			if (nodeType != Node.ELEMENT_NODE) {
-				IStructuredDocumentRegion flatNode = next.getStructuredDocumentRegion();
-				if (flatNode == oldStructuredDocumentRegion) {
-					removeNode(next);
-					return;
-				}
-				if (nodeType != Node.TEXT_NODE) {
-					throw new StructuredDocumentRegionManagementException();
-				}
-				if (flatNode == null) {
-					// this is the case for empty Text
-					// remove and continue
-					removeNode(next);
-					removeStructuredDocumentRegion(oldStructuredDocumentRegion);
-					return;
-				}
-				TextImpl text = (TextImpl) next;
-				boolean isShared = text.isSharingStructuredDocumentRegion(oldStructuredDocumentRegion);
-				if (isShared) {
-					// make sure there is next Text node sharing this
-					TextImpl nextText = (TextImpl) this.context.findNextText();
-					if (nextText == null || !nextText.hasStructuredDocumentRegion(oldStructuredDocumentRegion)) {
-						isShared = false;
-					}
-				}
-				oldStructuredDocumentRegion = text.removeStructuredDocumentRegion(oldStructuredDocumentRegion);
-				if (oldStructuredDocumentRegion == null) {
-					throw new StructuredDocumentRegionManagementException();
-				}
-				if (text.getStructuredDocumentRegion() == null) {
-					// this is the case partial IStructuredDocumentRegion is
-					// removed
-					removeNode(text);
-				}
-				else {
-					// notify the change
-					text.notifyValueChanged();
-				}
-				// if shared, continue to remove IStructuredDocumentRegion
-				// from them
-				if (isShared)
-					removeStructuredDocumentRegion(oldStructuredDocumentRegion);
-				return;
-			}
-
-			ElementImpl element = (ElementImpl) next;
-			if (element.hasStartTag()) {
-				IStructuredDocumentRegion flatNode = element.getStartStructuredDocumentRegion();
-				if (flatNode != oldStructuredDocumentRegion) {
-					throw new StructuredDocumentRegionManagementException();
-				}
-				if (element.hasEndTag() || element.hasChildNodes()) {
-					element.setStartStructuredDocumentRegion(null);
-					removeStartTag(element);
-				}
-				else {
-					removeNode(element);
-				}
-			}
-			else {
-				Node child = element.getFirstChild();
-				if (child != null) {
-					this.context.setNextNode(child);
-					removeStructuredDocumentRegion(oldStructuredDocumentRegion);
-					return;
-				}
-
-				if (!element.hasEndTag()) {
-					// implicit element
-					removeNode(element);
-					removeStructuredDocumentRegion(oldStructuredDocumentRegion);
-					return;
-				}
-
-				IStructuredDocumentRegion flatNode = element.getEndStructuredDocumentRegion();
-				if (flatNode != oldStructuredDocumentRegion) {
-					throw new StructuredDocumentRegionManagementException();
-				}
-				removeNode(element);
-			}
-			return;
-		}
-
-		Node parent = this.context.getParentNode();
-		if (parent == null || parent.getNodeType() != Node.ELEMENT_NODE) {
-			throw new StructuredDocumentRegionManagementException();
-		}
-
-		ElementImpl end = (ElementImpl) parent;
-		if (end.hasEndTag()) {
-			IStructuredDocumentRegion flatNode = end.getEndStructuredDocumentRegion();
-			if (flatNode != oldStructuredDocumentRegion) {
-				throw new StructuredDocumentRegionManagementException();
-			}
-			if (!end.hasStartTag() && !end.hasChildNodes()) {
-				this.context.setNextNode(end);
-				removeNode(end);
-			}
-			else {
-				end.setEndStructuredDocumentRegion(null);
-				removeEndTag(end);
-			}
-			return;
-		}
-
-		next = (NodeImpl) end.getNextSibling();
-		if (next != null) {
-			this.context.setNextNode(next);
-			removeStructuredDocumentRegion(oldStructuredDocumentRegion);
-			return;
-		}
-
-		parent = end.getParentNode();
-		if (parent != null) {
-			this.context.setParentNode(parent);
-			removeStructuredDocumentRegion(oldStructuredDocumentRegion);
-			return;
-		}
-	}
-
-	/**
-	 * replaceRegions method
-	 * 
-	 * @param newRegions
-	 *            java.util.Vector
-	 * @param oldRegions
-	 *            java.util.Vector
-	 */
-	void replaceRegions(IStructuredDocumentRegion flatNode, ITextRegionList newRegions, ITextRegionList oldRegions) {
-		if (flatNode == null)
-			return;
-		if (this.model.getDocument() == null)
-			return;
-		this.context = new XMLModelContext(this.model.getDocument());
-
-		// optimize typical cases
-		String regionType = StructuredDocumentRegionUtil.getFirstRegionType(flatNode);
-		if (regionType == DOMRegionContext.XML_TAG_OPEN) {
-			changeStartTag(flatNode, newRegions, oldRegions);
-		}
-		else if (regionType == DOMRegionContext.XML_END_TAG_OPEN) {
-			changeEndTag(flatNode, newRegions, oldRegions);
-		}
-		else {
-			changeStructuredDocumentRegion(flatNode);
-		}
-	}
-
-	/**
-	 * replaceStructuredDocumentRegions method
-	 * 
-	 */
-	void replaceStructuredDocumentRegions(IStructuredDocumentRegionList newStructuredDocumentRegions, IStructuredDocumentRegionList oldStructuredDocumentRegions) {
-		if (this.model.getDocument() == null)
-			return;
-		this.context = new XMLModelContext(this.model.getDocument());
-
-		int newCount = (newStructuredDocumentRegions != null ? newStructuredDocumentRegions.getLength() : 0);
-		int oldCount = (oldStructuredDocumentRegions != null ? oldStructuredDocumentRegions.getLength() : 0);
-
-		if (oldCount > 0) {
-			setupContext(oldStructuredDocumentRegions.item(0));
-			// Node startParent = this.context.getParentNode();
-
-			Enumeration e = oldStructuredDocumentRegions.elements();
-			while (e.hasMoreElements()) {
-				IStructuredDocumentRegion flatNode = (IStructuredDocumentRegion) e.nextElement();
-				if (flatNode == null)
-					continue;
-				removeStructuredDocumentRegion(flatNode);
-			}
-		}
-		else {
-			if (newCount == 0)
-				return;
-			setupContext(newStructuredDocumentRegions.item(0));
-		}
-		// make sure the parent is set to deepest level
-		// when end tag has been removed
-		this.context.setLast();
-
-		if (newCount > 0) {
-			Enumeration e = newStructuredDocumentRegions.elements();
-			while (e.hasMoreElements()) {
-				IStructuredDocumentRegion flatNode = (IStructuredDocumentRegion) e.nextElement();
-				if (flatNode == null)
-					continue;
-				insertStructuredDocumentRegion(flatNode);
-			}
-		}
-
-		cleanupText();
-		cleanupEndTag();
-	}
-
-	/**
-	 * setupContext method
-	 * 
-	 */
-	private void setupContext(IStructuredDocumentRegion startStructuredDocumentRegion) {
-		int offset = startStructuredDocumentRegion.getStart();
-		if (offset < 0)
-			return;
-		NodeImpl root = (NodeImpl) this.context.getRootNode();
-		if (root == null)
-			return;
-
-		if (offset == 0) {
-			// at the beggining of document
-			Node child = root.getFirstChild();
-			if (child != null)
-				this.context.setNextNode(child);
-			else
-				this.context.setParentNode(root);
-			return;
-		}
-
-		NodeImpl node = (NodeImpl) root.getNodeAt(offset);
-		if (node == null) {
-			// might be at the end of document
-			this.context.setParentNode(root);
-			this.context.setLast();
-			return;
-		}
-
-		if (offset == node.getStartOffset()) {
-			this.context.setNextNode(node);
-			return;
-		}
-
-		if (node.getNodeType() == Node.TEXT_NODE) {
-			TextImpl text = (TextImpl) node;
-			Text nextText = text.splitText(startStructuredDocumentRegion);
-			// notify the change
-			text.notifyValueChanged();
-			if (nextText == null)
-				return; // error
-			this.context.setNextNode(nextText);
-			return;
-		}
-
-		for (Node child = node.getFirstChild(); child != null; child = child.getNextSibling()) {
-			if (offset >= ((NodeImpl) child).getEndOffset())
-				continue;
-			this.context.setNextNode(child);
-			return;
-		}
-		this.context.setParentNode(node);
-		this.context.setLast();
-	}
-
-	protected XMLModelContext getContext() {
-		return context;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelUpdater.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelUpdater.java
deleted file mode 100644
index a4efc2d..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelUpdater.java
+++ /dev/null
@@ -1,1700 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import java.util.Enumeration;
-import java.util.Iterator;
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegionList;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.ISourceGenerator;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-
-/**
- * XMLModelUpdater class
- */
-public class XMLModelUpdater {
-	private int diff = 0;
-	private int gapLength = 0;
-	private int gapOffset = 0;
-	private IStructuredDocumentRegion gapStructuredDocumentRegion = null;
-	private ISourceGenerator generator = null;
-	private DOMModelImpl model = null;
-	private NodeImpl nextNode = null;
-	private NodeImpl parentNode = null;
-
-	protected XMLModelUpdater(DOMModelImpl model) {
-		super();
-
-		if (model != null) {
-			this.model = model;
-			this.generator = model.getGenerator();
-		}
-	}
-
-	/**
-	 * changeAttrValue method
-	 * 
-	 * @param attrNode
-	 *            org.w3c.dom.Attr
-	 */
-	private void changeAttrName(Attr attrNode) {
-		if (attrNode == null)
-			return;
-
-		AttrImpl attr = (AttrImpl) attrNode;
-		ElementImpl element = (ElementImpl) attr.getOwnerElement();
-		if (element == null)
-			return;
-
-		if (element.isCommentTag()) {
-			changeStartTag(element);
-			return;
-		}
-
-		int offset = element.getStartOffset();
-		int start = offset;
-		int end = offset;
-
-		String name = attr.getName();
-		if (name == null)
-			name = new String();
-		ITextRegion nameRegion = attr.getNameRegion();
-		if (nameRegion == null)
-			return; // error
-		start += nameRegion.getStart();
-		// use getTextEnd() because getEnd() may include the tailing spaces
-		end += nameRegion.getTextEnd();
-
-		replaceSource(name, start, end);
-	}
-
-	/**
-	 * changeAttrValue method
-	 * 
-	 * @param attrNode
-	 *            org.w3c.dom.Attr
-	 */
-	private void changeAttrValue(Attr attrNode) {
-		if (attrNode == null)
-			return;
-
-		AttrImpl attr = (AttrImpl) attrNode;
-		ElementImpl element = (ElementImpl) attr.getOwnerElement();
-		if (element == null)
-			return;
-
-		if (element.isCommentTag()) {
-			changeStartTag(element);
-			return;
-		}
-
-		int offset = element.getStartOffset();
-		int start = offset;
-		int end = offset;
-
-		String value = null;
-		ITextRegion valueRegion = attr.getValueRegion();
-		if (valueRegion != null) {
-			char quote = 0; // no quote preference
-			// DW: 4/16/2003 due to change in structuredDocument ... we need a
-			// flatnode to
-			// get at region values. For now I'll assume this is always the
-			// first
-			// flatnode .. may need to make smarter later (e.g. to search for
-			// the flatnode that this.valueRegion belongs to.
-			IStructuredDocumentRegion documentRegion = element.getFirstStructuredDocumentRegion();
-			String oldValue = documentRegion.getText(valueRegion);
-			if (oldValue != null && oldValue.length() > 0) {
-				char firstChar = oldValue.charAt(0);
-				if (firstChar == '"' || firstChar == '\'') {
-					quote = firstChar;
-				}
-			}
-
-			ITextRegion startRegion = valueRegion;
-
-			value = this.generator.generateAttrValue(attr, quote);
-			if (value == null) {
-				value = new String();
-				// remove equal too
-				ITextRegion equalRegion = attr.getEqualRegion();
-				if (equalRegion != null)
-					startRegion = equalRegion;
-			}
-			attr.setValueRegion(valueRegion); // reset value
-
-			start += startRegion.getStart();
-			// use getTextEnd() because getEnd() may include the tailing
-			// spaces
-			end += valueRegion.getTextEnd();
-		}
-		else {
-			ITextRegion equalRegion = attr.getEqualRegion();
-
-			value = this.generator.generateAttrValue(attr);
-			if (value == null) {
-				if (equalRegion == null)
-					return; // nothng to do
-				value = new String();
-				// remove equal
-				start += equalRegion.getStart();
-				end += equalRegion.getTextEnd();
-			}
-			else {
-				if (equalRegion != null) {
-					// use getTextEnd() because getEnd() may include the
-					// tailing spaces
-					start += equalRegion.getTextEnd();
-				}
-				else {
-					ITextRegion nameRegion = attr.getNameRegion();
-					if (nameRegion == null)
-						return; // must never happen
-					// use getTextEnd() because getEnd() may include the
-					// tailing spaces
-					start += nameRegion.getTextEnd();
-					value = '=' + value;
-				}
-				end = start;
-			}
-		}
-
-		replaceSource(value, start, end);
-	}
-
-	/**
-	 */
-	void changeEndTag(Element element) {
-		String source = this.generator.generateEndTag(element);
-		if (source == null)
-			return;
-		int length = source.length();
-		if (length == 0)
-			return;
-
-		ElementImpl impl = (ElementImpl) element;
-		int offset = impl.getEndStartOffset();
-		int start = offset;
-		int end = offset;
-		if (impl.hasEndTag()) {
-			end = impl.getEndOffset();
-			this.gapStructuredDocumentRegion = impl.getEndStructuredDocumentRegion();
-			impl.setEndStructuredDocumentRegion(new StructuredDocumentRegionProxy(offset, length));
-		}
-
-		replaceSource(source, start, end);
-	}
-
-	/**
-	 * changeName method
-	 * 
-	 * @param node
-	 *            org.w3c.dom.Node
-	 */
-	void changeName(Node node) {
-		if (node == null)
-			return;
-		if (getStructuredDocument() == null)
-			return;
-
-		// support changing name of attribute for setPrefix()
-		short nodeType = node.getNodeType();
-		if (nodeType == Node.ATTRIBUTE_NODE) {
-			changeAttrName((Attr) node);
-			return;
-		}
-
-		// not supported
-		return;
-	}
-
-	void changeRegion(IStructuredDocumentRegion flatNode, ITextRegion region) {
-		// future_TODO: optimize
-
-		NodeImpl root = (NodeImpl) this.model.getDocument();
-		this.parentNode = root;
-		this.nextNode = (NodeImpl) root.getFirstChild();
-
-		removeGapStructuredDocumentRegion(flatNode);
-		insertGapStructuredDocumentRegionBefore(flatNode.getStart());
-		changeStructuredDocumentRegion(flatNode);
-		insertGapStructuredDocumentRegionAfter(flatNode.getEnd());
-	}
-
-	/**
-	 * This is a fallback method to regenerate the start tag.
-	 */
-	void changeStartTag(Element element) {
-		if (element == null)
-			return;
-		ElementImpl impl = (ElementImpl) element;
-
-		if (!impl.hasStartTag() && !impl.hasEndTag()) {
-			// need to generate the start and the end tags
-			Node parent = element.getParentNode();
-			if (parent != null) {
-				replaceChild(parent, element, element);
-				return;
-			}
-			// else error
-		}
-
-		String source = this.generator.generateStartTag(element);
-		if (source == null)
-			return;
-		int length = source.length();
-		if (length == 0)
-			return;
-
-		int offset = impl.getStartOffset();
-		int start = offset;
-		int end = offset;
-		if (impl.hasStartTag()) {
-			end = impl.getStartEndOffset();
-			this.gapStructuredDocumentRegion = impl.getStartStructuredDocumentRegion();
-		}
-		impl.setStartStructuredDocumentRegion(new StructuredDocumentRegionProxy(offset, length));
-
-		replaceSource(source, start, end);
-	}
-
-	private void changeStructuredDocumentRegion(IStructuredDocumentRegion oldStructuredDocumentRegion) {
-		if (oldStructuredDocumentRegion == null)
-			return; // error
-		if (this.parentNode == null)
-			return; // error
-
-		int oldOffset = oldStructuredDocumentRegion.getStart();
-		int oldEnd = oldStructuredDocumentRegion.getEnd();
-		boolean isEndTag = false;
-
-		// find owner node
-		NodeImpl ownerNode = null;
-		while (this.parentNode != null) {
-			if (this.nextNode != null) {
-				IStructuredDocumentRegion nextStructuredDocumentRegion = this.nextNode.getStructuredDocumentRegion();
-				if (nextStructuredDocumentRegion != null) {
-					if (nextStructuredDocumentRegion == oldStructuredDocumentRegion) {
-						ownerNode = this.nextNode;
-						break;
-					}
-					int nextOffset = nextStructuredDocumentRegion.getStart();
-					if (nextOffset == oldOffset) { // found
-						ownerNode = this.nextNode;
-						break;
-					}
-					if (this.nextNode.getNodeType() == Node.TEXT_NODE) {
-						TextImpl text = (TextImpl) this.nextNode;
-						if (text.hasStructuredDocumentRegion(oldStructuredDocumentRegion)) {
-							ownerNode = this.nextNode;
-							break;
-						}
-						int nextEnd = nextStructuredDocumentRegion.getEnd();
-						if (nextOffset < oldEnd && nextEnd > oldOffset) {
-							ownerNode = this.nextNode;
-							break;
-						}
-					}
-				}
-
-				Node child = this.nextNode.getFirstChild();
-				if (child != null) {
-					this.parentNode = this.nextNode;
-					this.nextNode = (NodeImpl) child;
-					continue;
-				}
-
-				if (this.nextNode.getNodeType() == Node.ELEMENT_NODE) {
-					this.parentNode = this.nextNode;
-					this.nextNode = null;
-					continue;
-				}
-
-				this.nextNode = (NodeImpl) this.nextNode.getNextSibling();
-				if (this.nextNode != null)
-					continue;
-			}
-
-			if (this.parentNode.getNodeType() == Node.ELEMENT_NODE) {
-				ElementImpl element = (ElementImpl) this.parentNode;
-				IStructuredDocumentRegion endStructuredDocumentRegion = element.getEndStructuredDocumentRegion();
-				if (endStructuredDocumentRegion != null) {
-					if (endStructuredDocumentRegion == oldStructuredDocumentRegion) {
-						ownerNode = this.parentNode;
-						isEndTag = true;
-						break;
-					}
-					int endOffset = endStructuredDocumentRegion.getStart();
-					if (endOffset == oldOffset) { // found
-						ownerNode = this.parentNode;
-						isEndTag = true;
-						break;
-					}
-				}
-			}
-
-			this.nextNode = (NodeImpl) this.parentNode.getNextSibling();
-			this.parentNode = (NodeImpl) this.parentNode.getParentNode();
-		}
-		if (ownerNode == null)
-			throw new StructuredDocumentRegionManagementException();
-
-		short nodeType = ownerNode.getNodeType();
-		if (nodeType == Node.ELEMENT_NODE) {
-			ElementImpl element = (ElementImpl) ownerNode;
-			if (isEndTag) {
-				element.setEndStructuredDocumentRegion(oldStructuredDocumentRegion);
-			}
-			else {
-				element.setStartStructuredDocumentRegion(oldStructuredDocumentRegion);
-				updateAttrRegions(element, oldStructuredDocumentRegion);
-			}
-		}
-		else if (nodeType == Node.TEXT_NODE) {
-			TextImpl text = (TextImpl) ownerNode;
-
-			IStructuredDocumentRegion flatNode = text.getStructuredDocumentRegion();
-			if (flatNode == oldStructuredDocumentRegion) {
-				int newOffset = oldOffset;
-				int newEnd = oldEnd;
-				if (oldOffset == this.gapOffset) {
-					newOffset += this.diff;
-				}
-				else {
-					newEnd = this.gapOffset;
-				}
-				int newLength = newEnd - newOffset;
-				IStructuredDocumentRegion newStructuredDocumentRegion = new StructuredDocumentRegionProxy(newOffset, newLength, oldStructuredDocumentRegion);
-				text.setStructuredDocumentRegion(newStructuredDocumentRegion);
-
-				if (oldEnd > newEnd) {
-					this.nextNode = (NodeImpl) text.getNextSibling();
-					changeStructuredDocumentRegion(oldStructuredDocumentRegion);
-				}
-				return;
-			}
-
-			if (flatNode instanceof StructuredDocumentRegionProxy) {
-				StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) flatNode;
-				int offset = proxy.getOffset();
-				int end = offset + proxy.getLength();
-				if (proxy.getStructuredDocumentRegion() == null) {
-					if (offset == oldOffset && end == oldEnd) {
-						text.setStructuredDocumentRegion(oldStructuredDocumentRegion);
-					}
-					else {
-						if (end > oldEnd) {
-							StructuredDocumentRegionContainer container = new StructuredDocumentRegionContainer();
-							container.appendStructuredDocumentRegion(oldStructuredDocumentRegion);
-							proxy.setOffset(oldEnd);
-							proxy.setLength(end - oldEnd);
-							container.appendStructuredDocumentRegion(proxy);
-							text.setStructuredDocumentRegion(container);
-						}
-						else {
-							proxy.setStructuredDocumentRegion(oldStructuredDocumentRegion);
-
-							if (end < oldEnd) { // to be shared
-								this.nextNode = (NodeImpl) text.getNextSibling();
-								changeStructuredDocumentRegion(oldStructuredDocumentRegion);
-							}
-						}
-					}
-					return;
-				}
-
-				if (offset >= this.gapOffset) {
-					proxy.setOffset(offset + this.diff);
-					end += this.diff;
-				}
-				if (end < oldEnd) { // to be shared
-					this.nextNode = (NodeImpl) text.getNextSibling();
-					changeStructuredDocumentRegion(oldStructuredDocumentRegion);
-					return;
-				}
-			}
-			else if (flatNode instanceof StructuredDocumentRegionContainer) {
-				StructuredDocumentRegionContainer container = (StructuredDocumentRegionContainer) flatNode;
-				int count = container.getStructuredDocumentRegionCount();
-				for (int i = 0; i < count; i++) {
-					IStructuredDocumentRegion content = container.getStructuredDocumentRegion(i);
-					if (content == null)
-						continue; // error
-					if (content == oldStructuredDocumentRegion) {
-						int newOffset = oldOffset;
-						int newEnd = oldEnd;
-						if (oldOffset == this.gapOffset) {
-							newOffset += this.diff;
-						}
-						else {
-							newEnd = this.gapOffset;
-						}
-						int newLength = newEnd - newOffset;
-						IStructuredDocumentRegion newStructuredDocumentRegion = new StructuredDocumentRegionProxy(newOffset, newLength, oldStructuredDocumentRegion);
-						container.replaceStructuredDocumentRegion(newStructuredDocumentRegion, i);
-
-						if (oldEnd > newEnd) { // to be shared
-							this.nextNode = (NodeImpl) text.getNextSibling();
-							changeStructuredDocumentRegion(oldStructuredDocumentRegion);
-						}
-						return;
-					}
-
-					if (content instanceof StructuredDocumentRegionProxy) {
-						StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) content;
-						int offset = proxy.getOffset();
-						int end = offset + proxy.getLength();
-						if (end <= oldOffset)
-							continue;
-						if (proxy.getStructuredDocumentRegion() == null) {
-							if (offset == oldOffset && end == oldEnd) {
-								container.replaceStructuredDocumentRegion(oldStructuredDocumentRegion, i);
-							}
-							else {
-								if (end > oldEnd) {
-									container.insertStructuredDocumentRegion(oldStructuredDocumentRegion, i);
-									proxy.setOffset(oldEnd);
-									proxy.setLength(end - oldEnd);
-								}
-								else {
-									proxy.setStructuredDocumentRegion(oldStructuredDocumentRegion);
-
-									if (end < oldEnd) { // to be shared
-										this.nextNode = (NodeImpl) text.getNextSibling();
-										changeStructuredDocumentRegion(oldStructuredDocumentRegion);
-									}
-								}
-							}
-							return;
-						}
-
-						if (offset >= this.gapOffset) {
-							proxy.setOffset(offset + this.diff);
-							end += this.diff;
-						}
-						if (end < oldEnd) { // to be shared
-							this.nextNode = (NodeImpl) text.getNextSibling();
-							changeStructuredDocumentRegion(oldStructuredDocumentRegion);
-							return;
-						}
-					}
-				}
-			}
-			else {
-				throw new StructuredDocumentRegionManagementException();
-			}
-		}
-		else {
-			ownerNode.setStructuredDocumentRegion(oldStructuredDocumentRegion);
-		}
-	}
-
-	/**
-	 */
-	private void changeTextData(Text text) {
-		if (text == null)
-			return;
-
-		String source = this.generator.generateSource(text);
-		if (source == null)
-			source = new String();
-		int length = source.length();
-
-		TextImpl impl = (TextImpl) text;
-		int start = impl.getStartOffset();
-		int end = impl.getEndOffset();
-		int offset = start;
-
-		// make sure previous tag is closed
-		Node prev = text.getPreviousSibling();
-		if (prev != null) {
-			String preTag = getCloseTag((IDOMNode) prev);
-			if (preTag != null && preTag.length() > 0) {
-				offset += preTag.length();
-				source = preTag + source;
-			}
-		}
-		else {
-			Node parent = text.getParentNode();
-			if (parent != null && parent.getNodeType() == Node.ELEMENT_NODE) {
-				ElementImpl element = (ElementImpl) parent;
-				String preTag = getStartCloseTag(element);
-				if (preTag != null && preTag.length() > 0) {
-					offset += preTag.length();
-					StringBuffer buffer = new StringBuffer();
-					buffer.append(preTag);
-					buffer.append(source);
-					if (text.getNextSibling() == null && !element.hasEndTag() && (element.isJSPContainer() || element.isCDATAContainer())) {
-						// need to generate the end tag
-						String postTag = this.generator.generateEndTag(element);
-						if (postTag != null) {
-							int postLength = postTag.length();
-							if (postLength > 0) {
-								buffer.append(postTag);
-								int postOffset = offset + length;
-								IStructuredDocumentRegion flatNode = new StructuredDocumentRegionProxy(postOffset, postLength);
-								element.setEndStructuredDocumentRegion(flatNode);
-							}
-						}
-					}
-					source = buffer.toString();
-				}
-			}
-		}
-
-		this.gapStructuredDocumentRegion = impl.getStructuredDocumentRegion();
-		IStructuredDocumentRegion newStructuredDocumentRegion = null;
-		if (length > 0)
-			newStructuredDocumentRegion = new StructuredDocumentRegionProxy(offset, length);
-		impl.setStructuredDocumentRegion(newStructuredDocumentRegion);
-
-		replaceSource(source, start, end);
-	}
-
-	/**
-	 * changeValue method
-	 * 
-	 * @param node
-	 *            org.w3c.dom.Node
-	 */
-	void changeValue(Node node) {
-		if (node == null)
-			return;
-		if (getStructuredDocument() == null)
-			return;
-
-		short nodeType = node.getNodeType();
-		if (nodeType == Node.TEXT_NODE) {
-			changeTextData((Text) node);
-			return;
-		}
-		if (nodeType == Node.ATTRIBUTE_NODE) {
-			changeAttrValue((Attr) node);
-			return;
-		}
-		if (nodeType == Node.ELEMENT_NODE) {
-			changeStartTag((Element) node);
-			return;
-		}
-
-		String source = this.generator.generateSource(node);
-		if (source == null)
-			source = new String();
-		int length = source.length();
-
-		NodeImpl impl = (NodeImpl) node;
-		int start = impl.getStartOffset();
-		int end = impl.getEndOffset();
-
-		this.gapStructuredDocumentRegion = impl.getStructuredDocumentRegion();
-		IStructuredDocumentRegion flatNode = null;
-		if (length > 0)
-			flatNode = new StructuredDocumentRegionProxy(start, length);
-		impl.setStructuredDocumentRegion(flatNode);
-
-		replaceSource(source, start, end);
-	}
-
-	/**
-	 */
-	private String getAttrValueClose(IDOMElement element) {
-		if (element == null)
-			return null;
-
-		IStructuredDocumentRegion flatNode = element.getStartStructuredDocumentRegion();
-		if (flatNode == null)
-			return null;
-		ITextRegion region = StructuredDocumentRegionUtil.getLastRegion(flatNode);
-		if (region == null || region.getType() != DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE)
-			return null;
-		String value = flatNode.getText(region);
-		if (value == null)
-			return null;
-		int length = value.length();
-		if (length == 0)
-			return null;
-
-		// check open JSP tag
-		boolean closeJSPTag = false;
-		int offset = value.indexOf(JSPTag.TAG_OPEN);
-		while (offset >= 0) {
-			offset = value.indexOf(JSPTag.TAG_CLOSE, offset + 2);
-			if (offset < 0) {
-				closeJSPTag = true;
-				break;
-			}
-			offset = value.indexOf(JSPTag.TAG_OPEN, offset + 2);
-		}
-
-		// check quote
-		boolean closeQuote = false;
-		char firstChar = value.charAt(0);
-		if (firstChar == '"' || firstChar == '\'') {
-			if (closeJSPTag || length == 1 || value.charAt(length - 1) != firstChar) {
-				closeQuote = true;
-			}
-		}
-
-		if (!closeJSPTag && !closeQuote)
-			return null;
-
-		StringBuffer buffer = new StringBuffer();
-		if (closeJSPTag)
-			buffer.append(JSPTag.TAG_CLOSE);
-		if (closeQuote)
-			buffer.append(firstChar);
-		return buffer.toString();
-	}
-
-	/**
-	 * Gather close tags recursively.
-	 */
-	private String getCloseTag(IDOMNode node) {
-		if (node == null || node.isClosed())
-			return null;
-
-		if (node.getNodeType() != Node.ELEMENT_NODE) {
-			return this.generator.generateCloseTag(node);
-		}
-
-		ElementImpl element = (ElementImpl) node;
-		if (element.hasEndTag()) {
-			// end tag is not closed
-			return this.generator.generateCloseTag(element);
-		}
-
-		// no end tag
-		int offset = element.getEndOffset();
-		StringBuffer buffer = new StringBuffer();
-
-		IDOMNode lastChild = (IDOMNode) element.getLastChild();
-		if (lastChild == null) {
-			if (!element.isStartTagClosed()) {
-				if (element.preferEmptyTag())
-					element.setEmptyTag(true);
-				String closeTag = getStartCloseTag(element);
-				if (closeTag != null) {
-					int length = closeTag.length();
-					if (length > 0) {
-						buffer.append(closeTag);
-						offset += length;
-					}
-				}
-			}
-		}
-		else {
-			String closeTag = getCloseTag(lastChild);
-			if (closeTag != null) {
-				int length = closeTag.length();
-				if (length > 0) {
-					buffer.append(closeTag);
-					offset += length;
-				}
-			}
-		}
-
-		String endTag = this.generator.generateEndTag(element);
-		if (endTag != null) {
-			int length = endTag.length();
-			if (length > 0) {
-				buffer.append(endTag);
-				IStructuredDocumentRegion flatNode = new StructuredDocumentRegionProxy(offset, length);
-				element.setEndStructuredDocumentRegion(flatNode);
-			}
-		}
-
-		return buffer.toString();
-	}
-
-	/**
-	 */
-	private String getStartCloseTag(IDOMElement element) {
-		if (element == null || element.isStartTagClosed())
-			return null;
-
-		StringBuffer buffer = new StringBuffer();
-		String attrValueClose = getAttrValueClose(element);
-		if (attrValueClose != null)
-			buffer.append(attrValueClose);
-		String closeTag = this.generator.generateCloseTag(element);
-		if (closeTag != null)
-			buffer.append(closeTag);
-		return buffer.toString();
-	}
-
-	private IStructuredDocument getStructuredDocument() {
-		if (model == null)
-			return null;
-		return model.getStructuredDocument();
-	}
-
-	/**
-	 */
-	void initialize() {
-		this.gapStructuredDocumentRegion = null;
-		this.gapOffset = 0;
-		this.gapLength = 0;
-		this.diff = 0;
-		this.parentNode = null;
-		this.nextNode = null;
-	}
-
-	private void insertGapStructuredDocumentRegionAfter(int endOffset) {
-		if (this.gapStructuredDocumentRegion == null)
-			return;
-
-		if (this.gapStructuredDocumentRegion instanceof StructuredDocumentRegionProxy) {
-			StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) this.gapStructuredDocumentRegion;
-			IStructuredDocumentRegion flatNode = proxy.getStructuredDocumentRegion();
-			if (flatNode != null)
-				insertStructuredDocumentRegion(flatNode);
-		}
-		else if (this.gapStructuredDocumentRegion instanceof StructuredDocumentRegionContainer) {
-			StructuredDocumentRegionContainer container = (StructuredDocumentRegionContainer) this.gapStructuredDocumentRegion;
-			int count = container.getStructuredDocumentRegionCount();
-			for (int i = 0; i < count; i++) {
-				IStructuredDocumentRegion content = container.getStructuredDocumentRegion(i);
-				if (content == null)
-					continue;
-				if (content.getStart() < endOffset)
-					continue;
-				if (content instanceof StructuredDocumentRegionProxy) {
-					StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) content;
-					IStructuredDocumentRegion flatNode = proxy.getStructuredDocumentRegion();
-					if (flatNode != null)
-						insertStructuredDocumentRegion(flatNode);
-				}
-				else {
-					insertStructuredDocumentRegion(content);
-				}
-			}
-		}
-		else {
-			insertStructuredDocumentRegion(this.gapStructuredDocumentRegion);
-		}
-	}
-
-	private void insertGapStructuredDocumentRegionBefore(int startOffset) {
-		if (this.gapStructuredDocumentRegion == null)
-			return;
-
-		if (this.gapStructuredDocumentRegion instanceof StructuredDocumentRegionProxy) {
-			StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) this.gapStructuredDocumentRegion;
-			IStructuredDocumentRegion flatNode = proxy.getStructuredDocumentRegion();
-			if (flatNode != null)
-				insertStructuredDocumentRegion(flatNode);
-		}
-		else if (this.gapStructuredDocumentRegion instanceof StructuredDocumentRegionContainer) {
-			StructuredDocumentRegionContainer container = (StructuredDocumentRegionContainer) this.gapStructuredDocumentRegion;
-			int count = container.getStructuredDocumentRegionCount();
-			for (int i = 0; i < count; i++) {
-				IStructuredDocumentRegion content = container.getStructuredDocumentRegion(i);
-				if (content == null)
-					continue;
-				if (content.getStart() >= startOffset)
-					return;
-				if (content instanceof StructuredDocumentRegionProxy) {
-					StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) content;
-					IStructuredDocumentRegion flatNode = proxy.getStructuredDocumentRegion();
-					if (flatNode != null)
-						insertStructuredDocumentRegion(flatNode);
-				}
-				else {
-					insertStructuredDocumentRegion(content);
-				}
-			}
-		}
-		else {
-			insertStructuredDocumentRegion(this.gapStructuredDocumentRegion);
-		}
-	}
-
-	/**
-	 */
-	private void insertStructuredDocumentRegion(IStructuredDocumentRegion newStructuredDocumentRegion) {
-		if (newStructuredDocumentRegion == null)
-			return; // error
-		if (this.parentNode == null)
-			return; // error
-
-		int newOffset = newStructuredDocumentRegion.getStart();
-		int newEnd = newStructuredDocumentRegion.getEnd();
-		boolean isEndTag = false;
-
-		// find owner node
-		NodeImpl ownerNode = null;
-		while (this.parentNode != null) {
-			if (this.nextNode != null) {
-				IStructuredDocumentRegion nextStructuredDocumentRegion = this.nextNode.getStructuredDocumentRegion();
-				if (nextStructuredDocumentRegion != null) {
-					int nextOffset = nextStructuredDocumentRegion.getStart();
-					if (nextOffset == newOffset) { // found
-						ownerNode = this.nextNode;
-						break;
-					}
-					if (this.nextNode.getNodeType() == Node.TEXT_NODE) {
-						int nextEnd = nextStructuredDocumentRegion.getEnd();
-						if (nextOffset < newEnd && nextEnd > newOffset) {
-							ownerNode = this.nextNode;
-							break;
-						}
-					}
-				}
-
-				Node child = this.nextNode.getFirstChild();
-				if (child != null) {
-					this.parentNode = this.nextNode;
-					this.nextNode = (NodeImpl) child;
-					continue;
-				}
-
-				if (this.nextNode.getNodeType() == Node.ELEMENT_NODE) {
-					this.parentNode = this.nextNode;
-					this.nextNode = null;
-					continue;
-				}
-
-				this.nextNode = (NodeImpl) this.nextNode.getNextSibling();
-				if (this.nextNode != null)
-					continue;
-			}
-
-			if (this.parentNode.getNodeType() == Node.ELEMENT_NODE) {
-				ElementImpl element = (ElementImpl) this.parentNode;
-				IStructuredDocumentRegion endStructuredDocumentRegion = element.getEndStructuredDocumentRegion();
-				if (endStructuredDocumentRegion != null) {
-					int endOffset = endStructuredDocumentRegion.getStart();
-					if (endOffset == newOffset) { // found
-						ownerNode = this.parentNode;
-						isEndTag = true;
-						break;
-					}
-				}
-			}
-
-			this.nextNode = (NodeImpl) this.parentNode.getNextSibling();
-			this.parentNode = (NodeImpl) this.parentNode.getParentNode();
-		}
-		if (ownerNode == null)
-			throw new StructuredDocumentRegionManagementException();
-
-		short nodeType = ownerNode.getNodeType();
-		if (nodeType == Node.ELEMENT_NODE) {
-			ElementImpl element = (ElementImpl) ownerNode;
-			if (isEndTag) {
-				element.setEndStructuredDocumentRegion(newStructuredDocumentRegion);
-			}
-			else {
-				element.setStartStructuredDocumentRegion(newStructuredDocumentRegion);
-				updateAttrRegions(element, newStructuredDocumentRegion);
-			}
-		}
-		else if (nodeType == Node.TEXT_NODE) {
-			TextImpl text = (TextImpl) ownerNode;
-			IStructuredDocumentRegion oldStructuredDocumentRegion = text.getStructuredDocumentRegion();
-			if (oldStructuredDocumentRegion == null) {
-				throw new StructuredDocumentRegionManagementException();
-			}
-			int oldOffset = oldStructuredDocumentRegion.getStart();
-			int oldEnd = oldStructuredDocumentRegion.getEnd();
-			if (oldOffset == newOffset && oldEnd == newEnd) {
-				text.setStructuredDocumentRegion(newStructuredDocumentRegion);
-				return;
-			}
-
-			if (oldStructuredDocumentRegion instanceof StructuredDocumentRegionProxy) {
-				StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) oldStructuredDocumentRegion;
-				if (oldEnd > newEnd) {
-					StructuredDocumentRegionContainer container = new StructuredDocumentRegionContainer();
-					if (oldOffset == newOffset) {
-						container.appendStructuredDocumentRegion(newStructuredDocumentRegion);
-					}
-					else {
-						StructuredDocumentRegionProxy newProxy = new StructuredDocumentRegionProxy();
-						newProxy.setOffset(oldOffset);
-						newProxy.setLength(newEnd - oldOffset);
-						newProxy.setStructuredDocumentRegion(newStructuredDocumentRegion);
-						container.appendStructuredDocumentRegion(newProxy);
-					}
-					proxy.setOffset(newEnd);
-					proxy.setLength(oldEnd - newEnd);
-					container.appendStructuredDocumentRegion(proxy);
-					text.setStructuredDocumentRegion(container);
-				}
-				else {
-					proxy.setStructuredDocumentRegion(newStructuredDocumentRegion);
-
-					if (oldEnd < newEnd) { // to be shared
-						this.nextNode = (NodeImpl) text.getNextSibling();
-						insertStructuredDocumentRegion(newStructuredDocumentRegion);
-					}
-				}
-				return;
-			}
-
-			if (oldStructuredDocumentRegion instanceof StructuredDocumentRegionContainer) {
-				StructuredDocumentRegionContainer container = (StructuredDocumentRegionContainer) oldStructuredDocumentRegion;
-				int count = container.getStructuredDocumentRegionCount();
-				for (int i = 0; i < count; i++) {
-					IStructuredDocumentRegion content = container.getStructuredDocumentRegion(i);
-					if (content == null)
-						continue; // error
-					int offset = content.getStart();
-					int end = content.getEnd();
-					if (end <= newOffset)
-						continue;
-					if (offset == newOffset && end == newEnd) {
-						container.replaceStructuredDocumentRegion(newStructuredDocumentRegion, i);
-						return;
-					}
-
-					if (content instanceof StructuredDocumentRegionProxy) {
-						StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) content;
-						if (end > newEnd) {
-							if (offset == newOffset) {
-								container.insertStructuredDocumentRegion(newStructuredDocumentRegion, i);
-							}
-							else {
-								StructuredDocumentRegionProxy newProxy = new StructuredDocumentRegionProxy();
-								newProxy.setOffset(offset);
-								newProxy.setLength(newEnd - offset);
-								newProxy.setStructuredDocumentRegion(newStructuredDocumentRegion);
-								container.insertStructuredDocumentRegion(newProxy, i);
-							}
-							proxy.setOffset(newEnd);
-							proxy.setLength(end - newEnd);
-							return;
-						}
-						else {
-							proxy.setStructuredDocumentRegion(newStructuredDocumentRegion);
-							if (end == newEnd)
-								return;
-						}
-					}
-				}
-
-				if (oldEnd < newEnd) { // to be shared
-					this.nextNode = (NodeImpl) text.getNextSibling();
-					insertStructuredDocumentRegion(newStructuredDocumentRegion);
-				}
-				return;
-			}
-			else {
-				throw new StructuredDocumentRegionManagementException();
-			}
-		}
-		else {
-			ownerNode.setStructuredDocumentRegion(newStructuredDocumentRegion);
-		}
-	}
-
-	private void removeGapStructuredDocumentRegion(IStructuredDocumentRegion oldStructuredDocumentRegion) {
-		if (this.gapStructuredDocumentRegion == null)
-			return;
-
-		if (this.gapStructuredDocumentRegion == oldStructuredDocumentRegion) {
-			this.gapStructuredDocumentRegion = null;
-			return;
-		}
-
-		if (this.gapStructuredDocumentRegion instanceof StructuredDocumentRegionProxy) {
-			StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) this.gapStructuredDocumentRegion;
-			IStructuredDocumentRegion flatNode = proxy.getStructuredDocumentRegion();
-			if (flatNode == oldStructuredDocumentRegion)
-				this.gapStructuredDocumentRegion = null;
-		}
-		else if (this.gapStructuredDocumentRegion instanceof StructuredDocumentRegionContainer) {
-			StructuredDocumentRegionContainer container = (StructuredDocumentRegionContainer) this.gapStructuredDocumentRegion;
-			int count = container.getStructuredDocumentRegionCount();
-			for (int i = 0; i < count; i++) {
-				IStructuredDocumentRegion content = container.getStructuredDocumentRegion(i);
-				if (content == null)
-					continue;
-				if (content == oldStructuredDocumentRegion) {
-					if (count > 1)
-						container.removeStructuredDocumentRegion(i);
-					else
-						this.gapStructuredDocumentRegion = null;
-					return;
-				}
-				if (content instanceof StructuredDocumentRegionProxy) {
-					StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) content;
-					if (proxy.getStructuredDocumentRegion() == oldStructuredDocumentRegion) {
-						if (count > 1)
-							container.removeStructuredDocumentRegion(i);
-						else
-							this.gapStructuredDocumentRegion = null;
-						return;
-					}
-				}
-			}
-		}
-	}
-
-	private void removeStructuredDocumentRegion(IStructuredDocumentRegion oldStructuredDocumentRegion) {
-		if (oldStructuredDocumentRegion == null)
-			return; // error
-		if (this.parentNode == null)
-			return; // error
-
-		int gapEnd = this.gapOffset + this.gapLength;
-		int oldOffset = oldStructuredDocumentRegion.getStart();
-		int oldEnd = oldStructuredDocumentRegion.getEnd();
-		if (oldOffset >= this.gapOffset && oldEnd <= gapEnd)
-			return; // do nothing
-		int oldLength = oldEnd - oldOffset;
-		if (oldOffset >= gapEnd)
-			oldOffset += this.diff;
-
-		// find owner node
-		NodeImpl ownerNode = null;
-		ElementImpl ownerEndTag = null;
-		TextImpl ownerText = null;
-		while (this.parentNode != null) {
-			if (this.nextNode != null) {
-				if (this.nextNode.getStructuredDocumentRegion() == oldStructuredDocumentRegion) {
-					ownerNode = this.nextNode;
-					break;
-				}
-				if (this.nextNode.getNodeType() == Node.TEXT_NODE) {
-					TextImpl text = (TextImpl) this.nextNode;
-					if (text.hasStructuredDocumentRegion(oldStructuredDocumentRegion)) {
-						ownerNode = this.nextNode;
-						ownerText = text;
-						break;
-					}
-				}
-
-				Node child = this.nextNode.getFirstChild();
-				if (child != null) {
-					this.parentNode = this.nextNode;
-					this.nextNode = (NodeImpl) child;
-					continue;
-				}
-
-				if (this.nextNode.getNodeType() == Node.ELEMENT_NODE) {
-					this.parentNode = this.nextNode;
-					this.nextNode = null;
-					continue;
-				}
-
-				this.nextNode = (NodeImpl) this.nextNode.getNextSibling();
-				if (this.nextNode != null)
-					continue;
-			}
-
-			if (this.parentNode.getNodeType() == Node.ELEMENT_NODE) {
-				ElementImpl element = (ElementImpl) this.parentNode;
-				if (element.getEndStructuredDocumentRegion() == oldStructuredDocumentRegion) {
-					ownerNode = this.parentNode;
-					ownerEndTag = element;
-					break;
-				}
-			}
-
-			this.nextNode = (NodeImpl) this.parentNode.getNextSibling();
-			this.parentNode = (NodeImpl) this.parentNode.getParentNode();
-		}
-		if (ownerNode == null)
-			throw new StructuredDocumentRegionManagementException();
-
-		if (ownerText != null) {
-			IStructuredDocumentRegion flatNode = ownerText.getStructuredDocumentRegion();
-			if (flatNode == oldStructuredDocumentRegion) {
-				IStructuredDocumentRegion newStructuredDocumentRegion = new StructuredDocumentRegionProxy(oldOffset, oldLength);
-				ownerText.setStructuredDocumentRegion(newStructuredDocumentRegion);
-				return;
-			}
-
-			if (flatNode instanceof StructuredDocumentRegionProxy) {
-				StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) flatNode;
-				if (proxy.getStructuredDocumentRegion() != oldStructuredDocumentRegion) {
-					throw new StructuredDocumentRegionManagementException();
-				}
-				int offset = proxy.getOffset();
-				int end = offset + proxy.getLength();
-				if (offset >= this.gapOffset) {
-					proxy.setOffset(offset + this.diff);
-				}
-				proxy.setStructuredDocumentRegion(null);
-				if (end < oldEnd && (end < this.gapOffset || oldEnd > gapEnd)) { // has
-					// shared
-					removeStructuredDocumentRegion(oldStructuredDocumentRegion);
-					return;
-				}
-			}
-			else if (flatNode instanceof StructuredDocumentRegionContainer) {
-				StructuredDocumentRegionContainer container = (StructuredDocumentRegionContainer) flatNode;
-				int count = container.getStructuredDocumentRegionCount();
-				for (int i = 0; i < count; i++) {
-					IStructuredDocumentRegion content = container.getStructuredDocumentRegion(i);
-					if (content == null)
-						continue; // error
-					if (content == oldStructuredDocumentRegion) {
-						IStructuredDocumentRegion newStructuredDocumentRegion = new StructuredDocumentRegionProxy(oldOffset, oldLength);
-						container.replaceStructuredDocumentRegion(newStructuredDocumentRegion, i);
-						return;
-					}
-
-					if (content instanceof StructuredDocumentRegionProxy) {
-						StructuredDocumentRegionProxy proxy = (StructuredDocumentRegionProxy) content;
-						if (proxy.getStructuredDocumentRegion() == oldStructuredDocumentRegion) {
-							int offset = proxy.getOffset();
-							int end = offset + proxy.getLength();
-							if (offset >= this.gapOffset) {
-								proxy.setOffset(offset + this.diff);
-							}
-							proxy.setStructuredDocumentRegion(null);
-							if (end < oldEnd && (end < this.gapOffset || oldEnd > gapEnd)) { // has
-								// shared
-								removeStructuredDocumentRegion(oldStructuredDocumentRegion);
-								return;
-							}
-						}
-					}
-				}
-			}
-			else {
-				throw new StructuredDocumentRegionManagementException();
-			}
-		}
-		else {
-			IStructuredDocumentRegion newStructuredDocumentRegion = new StructuredDocumentRegionProxy(oldOffset, oldLength);
-			if (ownerEndTag != null) {
-				ownerEndTag.setEndStructuredDocumentRegion(newStructuredDocumentRegion);
-			}
-			else {
-				ownerNode.setStructuredDocumentRegion(newStructuredDocumentRegion);
-			}
-		}
-	}
-
-	/**
-	 * replaceAttr method
-	 * 
-	 * @param ownerElement
-	 *            org.w3c.dom.Element
-	 * @param newAttr
-	 *            org.w3c.dom.Attr
-	 * @param oldAttr
-	 *            org.w3c.dom.Attr
-	 */
-	void replaceAttr(Element ownerElement, Attr newAttr, Attr oldAttr) {
-		if (ownerElement == null)
-			return;
-		if (getStructuredDocument() == null)
-			return;
-
-		ElementImpl element = (ElementImpl) ownerElement;
-		if (!element.hasStartTag()) {
-			changeStartTag(element);
-			return;
-		}
-		if (element.isCommentTag()) {
-			changeStartTag(element);
-			return;
-		}
-
-		int offset = element.getStartOffset();
-		int start = offset;
-		int end = offset;
-
-		boolean insertSpace = false;
-		String attrValueClose = null;
-		if (oldAttr != null) {
-			AttrImpl impl = (AttrImpl) oldAttr;
-			ITextRegion nameRegion = impl.getNameRegion();
-			if (nameRegion == null)
-				return; // must never happen
-			ITextRegion lastRegion = impl.getValueRegion();
-			if (lastRegion != null) {
-				end += lastRegion.getEnd();
-			}
-			else {
-				lastRegion = impl.getEqualRegion();
-				if (lastRegion != null) {
-					end += lastRegion.getEnd();
-				}
-				else {
-					end += nameRegion.getEnd();
-					lastRegion = nameRegion;
-				}
-			}
-			// check there are extra space before the last attribute
-			IStructuredDocumentRegion flatNode = element.getStartStructuredDocumentRegion();
-			if (flatNode == null)
-				return; // must never happen
-			ITextRegionList regions = flatNode.getRegions();
-			if (regions == null)
-				return; // must never happen
-			ITextRegion prevRegion = null;
-			ITextRegion nextRegion = null;
-			for (int i = 0; i < regions.size(); i++) {
-				ITextRegion region = regions.get(i);
-				if (region == nameRegion) {
-					if (i > 0) {
-						prevRegion = regions.get(i - 1);
-					}
-				}
-				if (region == lastRegion) {
-					if (i + 1 < regions.size()) {
-						nextRegion = regions.get(i + 1);
-					}
-					break;
-				}
-			}
-			boolean isLastAttr = false;
-			if (nextRegion != null) {
-				String regionType = nextRegion.getType();
-				if (regionType == DOMRegionContext.XML_TAG_CLOSE || regionType == DOMRegionContext.XML_EMPTY_TAG_CLOSE || isNestedTagClose(regionType)) {
-					isLastAttr = true;
-				}
-			}
-			if (isLastAttr && prevRegion != null) {
-				start += prevRegion.getTextEnd();
-			}
-			else {
-				start += nameRegion.getStart();
-			}
-
-			// impl.resetRegions(ownerElement);
-			impl.resetRegions(element);
-		}
-		else { // append attribute
-			IStructuredDocumentRegion flatNode = element.getStartStructuredDocumentRegion();
-			if (flatNode == null)
-				return; // must never happen
-
-			attrValueClose = getAttrValueClose(element);
-			if (attrValueClose != null && attrValueClose.length() > 0) {
-				insertSpace = true;
-				start = flatNode.getEndOffset();
-				end = start;
-			}
-			else {
-				ITextRegionList regions = flatNode.getRegions();
-				if (regions == null)
-					return; // must never happen
-				int attrStart = 0;
-				for (int i = regions.size() - 1; i >= 0; i--) {
-					ITextRegion region = regions.get(i);
-					String regionType = region.getType();
-					if (regionType == DOMRegionContext.XML_TAG_CLOSE || regionType == DOMRegionContext.XML_EMPTY_TAG_CLOSE || isNestedTagClose(regionType))
-						continue;
-					int regionEnd = region.getEnd();
-					if (regionEnd == region.getTextEnd())
-						insertSpace = true;
-					attrStart = regionEnd;
-					break;
-				}
-				if (attrStart == 0)
-					return; // not found, must never happen
-				start += attrStart;
-				end = start;
-			}
-		}
-
-		String source = null;
-		if (newAttr != null) {
-			int size = 2;
-			if (attrValueClose != null)
-				size += attrValueClose.length();
-			String name = this.generator.generateAttrName(newAttr);
-			if (name != null)
-				size += name.length();
-			String value = this.generator.generateAttrValue(newAttr);
-			if (value != null)
-				size += value.length();
-			StringBuffer buffer = new StringBuffer(size);
-			if (attrValueClose != null)
-				buffer.append(attrValueClose);
-			if (insertSpace)
-				buffer.append(' ');
-			buffer.append(name);
-			if (value != null) {
-				buffer.append('=');
-				buffer.append(value);
-			}
-			source = buffer.toString();
-		}
-
-		replaceSource(source, start, end);
-	}
-
-	protected boolean isNestedTagClose(String regionType) {
-		boolean result = false;
-		return result;
-	}
-
-	/**
-	 * replaceChild method
-	 * 
-	 * @param parentNode
-	 *            org.w3c.dom.Node
-	 * @param newChild
-	 *            org.w3c.dom.Node
-	 * @param oldChild
-	 *            org.w3c.dom.Node
-	 */
-	void replaceChild(Node parentNode, Node newChild, Node oldChild) {
-		if (parentNode == null)
-			return;
-		if (newChild == null && oldChild == null)
-			return;
-		if (getStructuredDocument() == null)
-			return;
-
-		int start = 0;
-		int end = 0;
-		String preTag = null;
-		String postTag = null;
-		ElementImpl postElement = null;
-		if (oldChild != null) {
-			NodeImpl node = (NodeImpl) oldChild;
-			start = node.getStartOffset();
-			end = node.getEndOffset();
-			if (oldChild.getNodeType() == Node.TEXT_NODE) {
-				this.gapStructuredDocumentRegion = node.getStructuredDocumentRegion();
-			}
-			node.resetStructuredDocumentRegions(); // reset values from
-			// IStructuredDocumentRegion
-		}
-		else {
-			NodeImpl prev = (NodeImpl) newChild.getPreviousSibling();
-			if (prev != null) {
-				start = prev.getEndOffset();
-				end = start;
-				preTag = getCloseTag(prev);
-			}
-			else {
-				// first child
-				NodeImpl next = (NodeImpl) newChild.getNextSibling();
-				if (next != null) {
-					start = next.getStartOffset();
-					end = start;
-					if (parentNode.getNodeType() == Node.ELEMENT_NODE) {
-						preTag = getStartCloseTag((IDOMElement) parentNode);
-					}
-				}
-				else {
-					// newly having a child
-					if (parentNode.getNodeType() == Node.ELEMENT_NODE) {
-						ElementImpl element = (ElementImpl) parentNode;
-						if (element.isEmptyTag()) { // empty tag format
-							// need to generate the start and the end tags
-							end = element.getEndOffset();
-							start = end - 2; // for "/>"
-							element.setEmptyTag(false);
-							preTag = this.generator.generateCloseTag(element);
-							postTag = this.generator.generateEndTag(element);
-							postElement = element;
-						}
-						else if (!element.hasStartTag()) {
-							start = element.getStartOffset();
-							end = start;
-							// invalid end tag or implicit tag
-							// need to generate the start tag
-							preTag = this.generator.generateStartTag(element);
-							if (preTag != null) {
-								int length = preTag.length();
-								if (length > 0) {
-									IStructuredDocumentRegion flatNode = new StructuredDocumentRegionProxy(start, length);
-									element.setStartStructuredDocumentRegion(flatNode);
-								}
-							}
-							if (!element.hasEndTag()) {
-								// implicit tag
-								// need to generate the end tags
-								postTag = this.generator.generateEndTag(element);
-								postElement = element;
-							}
-						}
-						else {
-							start = element.getStartEndOffset();
-							end = start;
-							preTag = getStartCloseTag(element);
-							if (preTag != null && preTag.length() > 0) {
-								if (!element.hasEndTag() && (element.isJSPContainer() || element.isCDATAContainer())) {
-									// need to generate the end tag
-									postTag = this.generator.generateEndTag(element);
-									postElement = element;
-								}
-							}
-						}
-					}
-					// else might DOCUMENT_NODE, start and end are 0
-				}
-			}
-		}
-
-		String source = null;
-		if (newChild != null) {
-			StringBuffer buffer = new StringBuffer();
-			int offset = start;
-			if (preTag != null) {
-				int length = preTag.length();
-				if (length > 0) {
-					offset += length;
-					buffer.append(preTag);
-				}
-			}
-
-			NodeImpl node = (NodeImpl) newChild;
-			while (node != null) {
-				if (node.getNodeType() == Node.ELEMENT_NODE) {
-					ElementImpl element = (ElementImpl) node;
-					if (element.preferEmptyTag())
-						element.setEmptyTag(true);
-					IStructuredDocumentRegion flatNode = null;
-					String startTag = this.generator.generateStartTag(element);
-					if (startTag != null) {
-						int length = startTag.length();
-						if (length > 0) {
-							buffer.append(startTag);
-							flatNode = new StructuredDocumentRegionProxy(offset, length);
-							offset += length;
-						}
-					}
-					element.setStartStructuredDocumentRegion(flatNode);
-				}
-				else {
-					String content = this.generator.generateSource(node);
-					if (content == null)
-						content = new String();
-					int length = content.length();
-					IStructuredDocumentRegion flatNode = null;
-					if (length > 0) {
-						buffer.append(content);
-						flatNode = new StructuredDocumentRegionProxy(offset, length);
-						offset += length;
-					}
-					node.setStructuredDocumentRegion(flatNode);
-				}
-
-				NodeImpl child = (NodeImpl) node.getFirstChild();
-				if (child != null) {
-					node = child;
-					continue;
-				}
-
-				if (node.getNodeType() == Node.ELEMENT_NODE) {
-					ElementImpl element = (ElementImpl) node;
-					IStructuredDocumentRegion flatNode = null;
-					String endTag = this.generator.generateEndTag(element);
-					if (endTag != null) {
-						int length = endTag.length();
-						if (length > 0) {
-							buffer.append(endTag);
-							flatNode = new StructuredDocumentRegionProxy(offset, length);
-							offset += length;
-						}
-					}
-					element.setEndStructuredDocumentRegion(flatNode);
-				}
-
-				while (node != null) {
-					if (node == newChild) {
-						node = null;
-						break;
-					}
-					NodeImpl next = (NodeImpl) node.getNextSibling();
-					if (next != null) {
-						node = next;
-						break;
-					}
-
-					node = (NodeImpl) node.getParentNode();
-					if (node.getNodeType() != Node.ELEMENT_NODE)
-						continue;
-					ElementImpl element = (ElementImpl) node;
-					IStructuredDocumentRegion flatNode = null;
-					String endTag = this.generator.generateEndTag(element);
-					if (endTag != null) {
-						int length = endTag.length();
-						if (length > 0) {
-							buffer.append(endTag);
-							flatNode = new StructuredDocumentRegionProxy(offset, length);
-							offset += length;
-						}
-					}
-					element.setEndStructuredDocumentRegion(flatNode);
-				}
-			}
-
-			if (postTag != null) {
-				int length = postTag.length();
-				if (length > 0) {
-					buffer.append(postTag);
-					if (postElement != null) {
-						IStructuredDocumentRegion flatNode = new StructuredDocumentRegionProxy(offset, length);
-						postElement.setEndStructuredDocumentRegion(flatNode);
-					}
-				}
-			}
-			source = buffer.toString();
-		}
-
-		if (start == end && (source == null || source.length() == 0)) {
-			// no thing changed
-			return;
-		}
-
-		replaceSource(source, start, end);
-	}
-
-	void replaceRegions(IStructuredDocumentRegion flatNode, ITextRegionList newRegions, ITextRegionList oldRegions) {
-		// future_TODO: optimize
-
-		NodeImpl root = (NodeImpl) this.model.getDocument();
-		this.parentNode = root;
-		this.nextNode = (NodeImpl) root.getFirstChild();
-
-		removeGapStructuredDocumentRegion(flatNode);
-		insertGapStructuredDocumentRegionBefore(flatNode.getStart());
-		changeStructuredDocumentRegion(flatNode);
-		insertGapStructuredDocumentRegionAfter(flatNode.getEnd());
-	}
-
-	/**
-	 * Wraps IStructuredDocumentRegion.replaceText() and sets contextual
-	 * information.
-	 */
-	private void replaceSource(String source, int start, int end) {
-		int inserted = 0;
-		if (source == null)
-			source = new String();
-		else
-			inserted = source.length();
-		int removed = end - start;
-		if (inserted == 0 && removed == 0)
-			return;
-
-		this.gapOffset = start;
-		this.gapLength = removed;
-		this.diff = inserted - removed;
-		// Note: due to bug
-		// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=3619
-		// for now assume "ignore readonly" region is ok -- assume DOM itself
-		// checks if
-		// ok to insert or not. In reality, we may have to make or "contains"
-		// method more
-		// better. Or, we may have to "perculate up" the parameter for clients
-		// to tell us programatically
-		// that its ok to insert/format in a read-only region.
-		getStructuredDocument().replaceText(this.model, this.gapOffset, this.gapLength, source, true);
-	}
-
-	void replaceStructuredDocumentRegions(IStructuredDocumentRegionList newStructuredDocumentRegions, IStructuredDocumentRegionList oldStructuredDocumentRegions) {
-		NodeImpl root = (NodeImpl) this.model.getDocument();
-
-		if (oldStructuredDocumentRegions != null) {
-			this.parentNode = root;
-			this.nextNode = (NodeImpl) root.getFirstChild();
-
-			Enumeration e = oldStructuredDocumentRegions.elements();
-			while (e.hasMoreElements()) {
-				IStructuredDocumentRegion flatNode = (IStructuredDocumentRegion) e.nextElement();
-				if (flatNode == null)
-					continue;
-				removeStructuredDocumentRegion(flatNode);
-				removeGapStructuredDocumentRegion(flatNode);
-			}
-		}
-
-		if (newStructuredDocumentRegions != null) {
-			this.parentNode = root;
-			this.nextNode = (NodeImpl) root.getFirstChild();
-
-			IStructuredDocumentRegion lastStructuredDocumentRegion = null;
-			Enumeration e = newStructuredDocumentRegions.elements();
-			while (e.hasMoreElements()) {
-				IStructuredDocumentRegion flatNode = (IStructuredDocumentRegion) e.nextElement();
-				if (flatNode == null)
-					continue;
-				if (lastStructuredDocumentRegion == null)
-					insertGapStructuredDocumentRegionBefore(flatNode.getStart());
-				insertStructuredDocumentRegion(flatNode);
-				lastStructuredDocumentRegion = flatNode;
-			}
-			if (lastStructuredDocumentRegion != null) {
-				insertGapStructuredDocumentRegionAfter(lastStructuredDocumentRegion.getEnd());
-			}
-			else {
-				insertGapStructuredDocumentRegionBefore(this.gapOffset);
-				// make sure to restore all backuped StructuredDocumentRegions
-				insertGapStructuredDocumentRegionAfter(this.gapOffset);
-			}
-		}
-		else {
-			this.parentNode = root;
-			this.nextNode = (NodeImpl) root.getFirstChild();
-
-			insertGapStructuredDocumentRegionBefore(this.gapOffset);
-			// make sure to restore all backuped StructuredDocumentRegions
-			insertGapStructuredDocumentRegionAfter(this.gapOffset);
-		}
-	}
-
-	/**
-	 */
-	private void updateAttrRegions(Element element, IStructuredDocumentRegion flatNode) {
-
-		// update attributes
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null)
-			return;
-		NamedNodeMap attributes = element.getAttributes();
-		if (attributes == null)
-			return;
-		int index = -1;
-		AttrImpl attr = null;
-		Iterator e = regions.iterator();
-		while (e.hasNext()) {
-			ITextRegion region = (ITextRegion) e.next();
-			String regionType = region.getType();
-			if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-				attr = (AttrImpl) attributes.item(++index);
-				if (attr != null) {
-					attr.setNameRegion(region);
-					// reset other regions
-					attr.setEqualRegion(null);
-					attr.setValueRegion(null);
-				}
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-				if (attr != null)
-					attr.setEqualRegion(region);
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-				if (attr != null) {
-					attr.setValueRegion(region);
-					attr = null;
-				}
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/encoding/XMLDocumentCharsetDetector.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/encoding/XMLDocumentCharsetDetector.java
deleted file mode 100644
index 697f649..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/encoding/XMLDocumentCharsetDetector.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.encoding;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.sse.core.internal.document.DocumentReader;
-import org.eclipse.wst.sse.core.internal.document.IDocumentCharsetDetector;
-import org.eclipse.wst.xml.core.internal.contenttype.XMLResourceEncodingDetector;
-
-
-/**
- * This class reads and parses first of XML file to get encoding.
- *  
- */
-public class XMLDocumentCharsetDetector extends XMLResourceEncodingDetector implements IDocumentCharsetDetector {
-
-	/**
-	 * XMLLoader constructor comment.
-	 */
-	public XMLDocumentCharsetDetector() {
-		super();
-	}
-
-	public void set(IDocument document) {
-		set(new DocumentReader(document, 0));
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/encoding/XMLDocumentLoader.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/encoding/XMLDocumentLoader.java
deleted file mode 100644
index 2316b34..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/encoding/XMLDocumentLoader.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.encoding;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.text.IDocumentPartitioner;
-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.ContentTypeEncodingPreferences;
-import org.eclipse.wst.sse.core.internal.ltk.parser.RegionParser;
-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.parser.XMLSourceParser;
-import org.eclipse.wst.xml.core.internal.parser.XMLStructuredDocumentReParser;
-import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
-import org.eclipse.wst.xml.core.internal.text.rules.StructuredTextPartitionerForXML;
-
-
-/**
- * This class reads an XML file and creates an XML Structured Model.
- * 
- */
-public class XMLDocumentLoader extends AbstractDocumentLoader {
-
-	public XMLDocumentLoader() {
-		super();
-	}
-
-	public IDocumentPartitioner getDefaultDocumentPartitioner() {
-		return new StructuredTextPartitionerForXML();
-	}
-
-	public IDocumentCharsetDetector getDocumentEncodingDetector() {
-		if (fDocumentEncodingDetector == null) {
-			fDocumentEncodingDetector = new XMLDocumentCharsetDetector();
-		}
-		return fDocumentEncodingDetector;
-	}
-
-	public RegionParser getParser() {
-		return new XMLSourceParser();
-	}
-
-	protected String getPreferredNewLineDelimiter(IFile file) {
-		String delimiter = ContentTypeEncodingPreferences.getPreferredNewLineDelimiter(ContentTypeIdForXML.ContentTypeID_XML);
-		if (delimiter == null)
-			delimiter = super.getPreferredNewLineDelimiter(file);
-		return delimiter;
-	}
-
-	protected String getSpecDefaultEncoding() {
-		// by default, UTF-8 as per XML spec
-		final String enc = "UTF-8"; //$NON-NLS-1$
-		return enc;
-	}
-
-	protected IEncodedDocument newEncodedDocument() {
-		IStructuredDocument structuredDocument = StructuredDocumentFactory.getNewStructuredDocumentInstance(getParser());
-		if (structuredDocument instanceof BasicStructuredDocument) {
-			((BasicStructuredDocument) structuredDocument).setReParser(new XMLStructuredDocumentReParser());
-		}
-		return structuredDocument;
-	}
-
-	public IDocumentLoader newInstance() {
-		return new XMLDocumentLoader();
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/DefaultXMLPartitionFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/DefaultXMLPartitionFormatter.java
deleted file mode 100644
index a3785cf..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/DefaultXMLPartitionFormatter.java
+++ /dev/null
@@ -1,1683 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.formatter;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Position;
-import org.eclipse.text.edits.DeleteEdit;
-import org.eclipse.text.edits.InsertEdit;
-import org.eclipse.text.edits.MultiTextEdit;
-import org.eclipse.text.edits.ReplaceEdit;
-import org.eclipse.text.edits.TextEdit;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class DefaultXMLPartitionFormatter {
-	/**
-	 * Just a small container class that holds a DOMNode & documentRegion that
-	 * should represent each other.
-	 */
-	protected class DOMRegion {
-		public IDOMNode domNode;
-		public IStructuredDocumentRegion documentRegion;
-	}
-
-	static private final String PRESERVE = "preserve";//$NON-NLS-1$
-	static private final String COLLAPSE = "collapse";//$NON-NLS-1$
-	static private final String REPLACE = "replace";//$NON-NLS-1$
-	static private final String PRESERVE_QUOTED = "\"preserve\"";//$NON-NLS-1$
-	static private final String XML_SPACE = "xml:space";//$NON-NLS-1$
-	static private final String XSL_NAMESPACE = "http://www.w3.org/1999/XSL/Transform"; //$NON-NLS-1$
-	static private final String XSL_ATTRIBUTE = "attribute"; //$NON-NLS-1$
-	static private final String XSL_TEXT = "text"; //$NON-NLS-1$
-	static private final String SPACE = " "; //$NON-NLS-1$
-	static private final String PROPERTY_WHITESPACE_FACET = "org.eclipse.wst.xsd.cm.properties/whitespace"; //$NON-NLS-1$
-
-	private XMLFormattingPreferences fPreferences = null;
-	private IProgressMonitor fProgressMonitor;
-
-	private int replaceSpaces(TextEdit textEdit, int spaceStartOffset, int availableLineWidth, String whitespaceRun) {
-		StringBuffer buff = new StringBuffer(whitespaceRun);
-		for(int i = 0; i < buff.length(); i++) {
-			buff.setCharAt(i, ' '); //$NON-NLS-1$
-		}
-		String replacementString = buff.toString();
-		if (!replacementString.equals(whitespaceRun)) {
-			ReplaceEdit replaceEdit = new ReplaceEdit(spaceStartOffset, whitespaceRun.length(), replacementString);
-			textEdit.addChild(replaceEdit);
-		}
-		return availableLineWidth;
-	}
-	
-	private int collapseSpaces(TextEdit textEdit, int spaceStartOffset, int availableLineWidth, String whitespaceRun) {
-		// prefer to use use existing whitespace
-		int existingWhitespaceOffset = whitespaceRun.indexOf(' ');
-		if (existingWhitespaceOffset > -1) {
-			// delete whitespaces before and after existing whitespace
-			if (existingWhitespaceOffset > 0) {
-				DeleteEdit deleteEdit = new DeleteEdit(spaceStartOffset, existingWhitespaceOffset);
-				textEdit.addChild(deleteEdit);
-			}
-			if (existingWhitespaceOffset < whitespaceRun.length() - 1) {
-				int nextOffset = existingWhitespaceOffset + 1;
-				DeleteEdit deleteEdit = new DeleteEdit(spaceStartOffset + nextOffset, whitespaceRun.length() - nextOffset);
-				textEdit.addChild(deleteEdit);
-			}
-		}
-		else {
-			// delete all whitespace and insert new one
-			// collapse whitespace by deleting whitespace
-			DeleteEdit deleteEdit = new DeleteEdit(spaceStartOffset, whitespaceRun.length());
-			textEdit.addChild(deleteEdit);
-			// then insert one space
-			InsertEdit insertEdit = new InsertEdit(spaceStartOffset, SPACE);
-			textEdit.addChild(insertEdit);
-		}
-		// remember to account for space added
-		--availableLineWidth;
-		return availableLineWidth;
-	}
-	
-	private int collapseAndIndent(TextEdit textEdit, int spaceStartOffset, int availableLineWidth, int indentLevel, String whitespaceRun, IStructuredDocumentRegion currentRegion) {
-		// Need to keep blank lines, but still collapse the whitespace
-		String lineDelimiters = null;
-		if (!getFormattingPreferences().getClearAllBlankLines()) {
-			lineDelimiters = extractLineDelimiters(whitespaceRun, currentRegion);
-			String formattedLine = lineDelimiters + getIndentString(indentLevel);
-			if(lineDelimiters.length() > 0 && !formattedLine.equals(whitespaceRun)) {
-				textEdit.addChild(new ReplaceEdit(spaceStartOffset, whitespaceRun.length(), formattedLine));
-				availableLineWidth = getFormattingPreferences().getMaxLineWidth() - indentLevel;
-			}
-		}
-		if (lineDelimiters == null || lineDelimiters.length() == 0) {
-			availableLineWidth = collapseSpaces(textEdit, spaceStartOffset, availableLineWidth, whitespaceRun);
-		}
-		return availableLineWidth;
-	}
-
-	private void deleteTrailingSpaces(TextEdit textEdit, ITextRegion currentTextRegion, IStructuredDocumentRegion currentDocumentRegion) {
-		int textEnd = currentTextRegion.getTextEnd();
-		int textEndOffset = currentDocumentRegion.getStartOffset() + textEnd;
-		int difference = currentTextRegion.getEnd() - textEnd;
-		DeleteEdit deleteEdit = new DeleteEdit(textEndOffset, difference);
-		textEdit.addChild(deleteEdit);
-	}
-
-	public TextEdit format(IDocument document, int start, int length) {
-		return format(document, start, length, new XMLFormattingPreferences());
-	}
-
-	public TextEdit format(IDocument document, int start, int length, XMLFormattingPreferences preferences) {
-		TextEdit edit = null;
-		if (document instanceof IStructuredDocument) {
-			IStructuredModel model = StructuredModelManager.getModelManager().getModelForEdit((IStructuredDocument) document);
-			if (model != null) {
-				try {
-					edit = format(model, start, length, preferences);
-				}
-				finally {
-					model.releaseFromEdit();
-				}
-			}
-		}
-		return edit;
-	}
-
-	public TextEdit format(IStructuredModel model, int start, int length) {
-		return format(model, start, length, new XMLFormattingPreferences());
-	}
-
-	public TextEdit format(IStructuredModel model, int start, int length, XMLFormattingPreferences preferences) {
-		setFormattingPreferences(preferences);
-
-		TextEdit edit = new MultiTextEdit();
-		IStructuredDocument document = model.getStructuredDocument();
-		// get initial document region
-		IStructuredDocumentRegion currentRegion = document.getRegionAtCharacterOffset(start);
-		if (currentRegion != null) {
-			int startOffset = currentRegion.getStartOffset();
-
-			// get initial dom node
-			IndexedRegion currentIndexedRegion = model.getIndexedRegion(startOffset);
-			if (currentIndexedRegion instanceof IDOMNode) {
-				// set up domRegion which will contain current region to be
-				// formatted
-				IDOMNode currentDOMNode = (IDOMNode) currentIndexedRegion;
-				DOMRegion domRegion = new DOMRegion();
-				domRegion.documentRegion = currentRegion;
-				domRegion.domNode = currentDOMNode;
-				
-				XMLFormattingConstraints parentConstraints = getRegionConstraints(currentDOMNode);
-				
-				/* if the whitespace strategy is declared as default, get it from the preferences */
-				if(parentConstraints.getWhitespaceStrategy() == XMLFormattingConstraints.DEFAULT)
-					parentConstraints.setWhitespaceStrategy(preferences.getElementWhitespaceStrategy());
-				
-				// TODO: initialize indentLevel
-				// initialize available line width
-				int lineWidth = getFormattingPreferences().getMaxLineWidth();
-				try {
-					IRegion lineInfo = document.getLineInformationOfOffset(startOffset);
-					lineWidth = lineWidth - (startOffset - lineInfo.getOffset());
-				}
-				catch (BadLocationException e) {
-					Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-				}
-				parentConstraints.setAvailableLineWidth(lineWidth);
-
-				// format all siblings (and their children) as long they
-				// overlap with start/length
-				Position formatRange = new Position(start, length);
-				formatSiblings(edit, domRegion, parentConstraints, formatRange);
-			}
-		}
-		return edit;
-	}
-
-	/**
-	 * Determines the formatting constraints for a specified node based on
-	 * its ancestors' formatting. In particular, if any ancestor node either
-	 * explicitly defines whitespace preservation or ignorance, that
-	 * whitespace strategy should be used for <code>currentNode</code> and 
-	 * all of its descendants.
-	 * 
-	 * @param currentNode the node to investigate the ancestry of to determine
-	 * formatting constraints
-	 * 
-	 * @return formatting constraints defined by an ancestor
-	 */
-	private XMLFormattingConstraints getRegionConstraints(IDOMNode currentNode) {
-		IDOMNode iterator = currentNode;
-		XMLFormattingConstraints result = new XMLFormattingConstraints();
-		DOMRegion region = new DOMRegion();
-		XMLFormattingConstraints parentConstraints = new XMLFormattingConstraints();
-		boolean parent = true;
-		
-		/* Iterate through the ancestry to find if any explicit whitespace strategy has
-		 * been defined
-		 */
-		while(iterator != null && iterator.getNodeType() != Node.DOCUMENT_NODE) {
-			iterator = (IDOMNode) iterator.getParentNode();
-			region.domNode = iterator;
-			region.documentRegion = iterator.getFirstStructuredDocumentRegion();
-			
-			updateFormattingConstraints(null, null, result, region);
-			
-			/* If this is the parent of the current node, keep the constraints
-			 * in case no other constraints are identified
-			 */
-			if(parent) {
-				parentConstraints.copyConstraints(result);
-				parent = false;
-			}
-			
-			/* A parent who has defined a specific whitespace strategy was found */
-			if(XMLFormattingConstraints.PRESERVE == result.getWhitespaceStrategy() || XMLFormattingConstraints.DEFAULT == result.getWhitespaceStrategy())
-				return result;
-		}
-		
-		return parentConstraints;
-	}
-//	private XMLFormattingConstraints getRegionConstraints(IDOMNode currentNode) {
-//		IDOMNode iterator = (IDOMNode) currentNode.getParentNode();
-//		XMLFormattingConstraints result = new XMLFormattingConstraints();
-//		DOMRegion region = new DOMRegion();
-//		
-//		/* Iterate through the ancestry to find if any explicit whitespace strategy has
-//		 * been defined
-//		 */
-//		while(iterator != null && iterator.getNodeType() != Node.DOCUMENT_NODE) {
-
-//			region.domNode = iterator;
-//			region.documentRegion = iterator.getFirstStructuredDocumentRegion();
-//			
-//			updateFormattingConstraints(null, null, result, region);
-//			
-//			/* A parent who has defined a specific whitespace strategy was found */
-//			if(XMLFormattingConstraints.PRESERVE == result.getWhitespaceStrategy() || XMLFormattingConstraints.DEFAULT == result.getWhitespaceStrategy())
-//				return result;
-//			
-//			iterator = (IDOMNode) iterator.getParentNode();
-//		}
-//		
-//		return null;
-//	}
-	
-	/**
-	 * Formats the given xml content region
-	 * 
-	 * @param textEdit
-	 * @param formatRange
-	 * @param parentConstraints
-	 * @param currentDOMRegion
-	 * @param previousRegion
-	 */
-	private void formatContent(TextEdit textEdit, Position formatRange, XMLFormattingConstraints parentConstraints, DOMRegion currentDOMRegion, IStructuredDocumentRegion previousRegion) {
-		IStructuredDocumentRegion currentRegion = currentDOMRegion.documentRegion;
-		String fullText = currentRegion.getFullText();
-
-		// check if in preserve space mode, if so, don't touch anything but
-		// make sure to update available line width
-		String whitespaceMode = parentConstraints.getWhitespaceStrategy();
-		if (whitespaceMode == XMLFormattingConstraints.PRESERVE) {
-			int availableLineWidth = parentConstraints.getAvailableLineWidth();
-			availableLineWidth = updateLineWidthWithLastLine(fullText, availableLineWidth);
-
-			// update available line width in constraints
-			parentConstraints.setAvailableLineWidth(availableLineWidth);
-			return;
-		}
-
-		// if content is just whitespace and there's something after it
-		// just skip over this region because region will take care of it
-		boolean isAllWhitespace = ((IDOMText) currentDOMRegion.domNode).isElementContentWhitespace();
-		IStructuredDocumentRegion nextDocumentRegion = null;
-		if (isAllWhitespace) {
-			parentConstraints.setAvailableLineWidth(fPreferences.getMaxLineWidth());
-			nextDocumentRegion = currentRegion.getNext();
-			if (nextDocumentRegion != null)
-				return;
-		}
-
-		// special handling if text follows an entity or cdata region
-		if (whitespaceMode != XMLFormattingConstraints.COLLAPSE && previousRegion != null) {
-			String previouRegionType = previousRegion.getType();
-			if (previouRegionType == DOMRegionContext.XML_ENTITY_REFERENCE || previouRegionType == DOMRegionContext.XML_CDATA_TEXT)
-				whitespaceMode = XMLFormattingConstraints.COLLAPSE;
-		}
-		// also, special handling if text is before an entity or cdata region
-		if (whitespaceMode != XMLFormattingConstraints.COLLAPSE) {
-			// get next document region if dont already have it
-			if (nextDocumentRegion == null)
-				nextDocumentRegion = currentRegion.getNext();
-			if (nextDocumentRegion != null) {
-				String nextRegionType = nextDocumentRegion.getType();
-				if (nextRegionType == DOMRegionContext.XML_ENTITY_REFERENCE || nextRegionType == DOMRegionContext.XML_CDATA_TEXT)
-					whitespaceMode = XMLFormattingConstraints.COLLAPSE;
-			}
-		}
-		formatTextInContent(textEdit, parentConstraints, currentRegion, fullText, whitespaceMode);
-	}
-
-	private void formatEmptyStartTagWithNoAttr(TextEdit textEdit, XMLFormattingConstraints constraints, IStructuredDocumentRegion currentDocumentRegion, IStructuredDocumentRegion previousDocumentRegion, int availableLineWidth, String indentStrategy, String whitespaceStrategy, ITextRegion currentTextRegion) {
-		// get preference if there should be a space or not between tag
-		// name and empty tag close
-		// <tagName />
-		boolean oneSpaceInTagName = getFormattingPreferences().getSpaceBeforeEmptyCloseTag();
-
-		// calculate available line width
-		int tagNameLineWidth = currentTextRegion.getTextLength() + 3;
-		if (oneSpaceInTagName) {
-			// add one more to account for space before empty tag close
-			++tagNameLineWidth;
-		}
-		availableLineWidth -= tagNameLineWidth;
-
-		if (indentStrategy == XMLFormattingConstraints.INLINE) {
-			// if was inlining, need to check if out of available line
-			// width
-			if (availableLineWidth < 0) {
-				// need to indent if possible
-				int lineWidth = indentIfPossible(textEdit, constraints, currentDocumentRegion, previousDocumentRegion, whitespaceStrategy, indentStrategy, true);
-				// update available line width
-				if (lineWidth > 0)
-					availableLineWidth = lineWidth - tagNameLineWidth;
-				else
-					availableLineWidth -= tagNameLineWidth;
-			}
-			else {
-				// no need to indent
-				// just make sure to delete previous whitespace if
-				// needed
-				if ((previousDocumentRegion.getType() == DOMRegionContext.XML_CONTENT) && (previousDocumentRegion.getFullText().trim().length() == 0)) {
-					availableLineWidth = collapseSpaces(textEdit, previousDocumentRegion.getStartOffset(), availableLineWidth, previousDocumentRegion.getFullText());
-				}
-			}
-		}
-
-		// delete any trail spaces after tag name
-		int textLength = currentTextRegion.getTextLength();
-		int regionLength = currentTextRegion.getLength();
-
-		boolean thereAreSpaces = textLength < regionLength;
-		if (!oneSpaceInTagName && thereAreSpaces) {
-			deleteTrailingSpaces(textEdit, currentTextRegion, currentDocumentRegion);
-		}
-		else if(oneSpaceInTagName) {
-			insertSpaceAndCollapse(textEdit, currentDocumentRegion, availableLineWidth, currentTextRegion);
-		}
-		constraints.setAvailableLineWidth(availableLineWidth);
-	}
-
-	/**
-	 * Formats an end tag
-	 * 
-	 * @param textEdit
-	 * @param currentRegion
-	 * @param textRegions
-	 */
-	private void formatEndTag(TextEdit textEdit, Position formatRange, XMLFormattingConstraints constraints, DOMRegion currentDOMRegion, IStructuredDocumentRegion previousDocumentRegion) {
-		IStructuredDocumentRegion currentDocumentRegion = currentDOMRegion.documentRegion;
-
-		String whitespaceStrategy = constraints.getWhitespaceStrategy();
-		String indentStrategy = constraints.getIndentStrategy();
-
-		// do not format space before start tag if preserving spaces
-		if (whitespaceStrategy != XMLFormattingConstraints.PRESERVE) {
-			// format like indent strategy says
-			if (indentStrategy == XMLFormattingConstraints.INDENT || indentStrategy == XMLFormattingConstraints.NEW_LINE) {
-				int availableLineWidth = indentIfPossible(textEdit, constraints, currentDocumentRegion, previousDocumentRegion, whitespaceStrategy, indentStrategy, false);
-				constraints.setAvailableLineWidth(availableLineWidth);
-			}
-		}
-		// format the end tag itself
-		formatWithinEndTag(textEdit, constraints, currentDocumentRegion, previousDocumentRegion);
-	}
-
-	/**
-	 * Formats the given region (and all its children) contained in domRegion.
-	 * 
-	 * @param edit
-	 *            edits required to format
-	 * @param formatRange
-	 *            document range to format (only format content within this
-	 *            range)
-	 * @param parentConstraints
-	 * @param domRegion
-	 *            assumes dom node & region are not null
-	 * @param previousRegion
-	 *            could be null
-	 * @return Returns the last region formatted
-	 */
-	private DOMRegion formatRegion(TextEdit edit, Position formatRange, XMLFormattingConstraints parentConstraints, DOMRegion domRegion, IStructuredDocumentRegion previousRegion) {
-		IStructuredDocumentRegion currentRegion = domRegion.documentRegion;
-		String regionType = currentRegion.getType();
-		if (regionType == DOMRegionContext.XML_TAG_NAME) {
-			ITextRegion textRegion = currentRegion.getFirstRegion();
-			String textRegionType = textRegion.getType();
-			if (textRegionType == DOMRegionContext.XML_TAG_OPEN) {
-				domRegion = formatStartTag(edit, formatRange, parentConstraints, domRegion, previousRegion);
-			}
-			else if (textRegionType == DOMRegionContext.XML_END_TAG_OPEN) {
-				formatEndTag(edit, formatRange, parentConstraints, domRegion, previousRegion);
-			}
-		}
-		else if (regionType == DOMRegionContext.XML_CONTENT) {
-			formatContent(edit, formatRange, parentConstraints, domRegion, previousRegion);
-		}
-		else if (regionType == DOMRegionContext.XML_COMMENT_TEXT) {
-			formatComment(edit, formatRange, parentConstraints, domRegion, previousRegion);
-		}
-		else {
-			// unknown, so just leave alone for now but make sure to update
-			// available line width
-			String fullText = currentRegion.getFullText();
-			int width = updateLineWidthWithLastLine(fullText, parentConstraints.getAvailableLineWidth());
-			parentConstraints.setAvailableLineWidth(width);
-		}
-		return domRegion;
-	}
-
-	/**
-	 * Formats the domRegion and all of its children and siblings
-	 * 
-	 * @param edit
-	 * @param domRegion
-	 * @param parentConstraints
-	 * @param formatRange
-	 */
-	private void formatSiblings(TextEdit edit, DOMRegion domRegion, XMLFormattingConstraints parentConstraints, Position formatRange) {
-		IStructuredDocumentRegion previousRegion = null;
-		IStructuredDocumentRegion currentRegion = domRegion.documentRegion;
-		IDOMNode currentDOMNode = domRegion.domNode;
-		while (currentDOMNode != null && currentRegion != null && formatRange.overlapsWith(currentRegion.getStartOffset(), currentRegion.getLength()) && (fProgressMonitor == null || !fProgressMonitor.isCanceled())) {
-			domRegion.documentRegion = currentRegion;
-			domRegion.domNode = currentDOMNode;
-
-			// need to make sure current document region and current
-			// dom node match up
-			if (currentRegion == currentDOMNode.getFirstStructuredDocumentRegion()) {
-				// format this document region/node, formatRegion will
-				// return the last node/region formatted
-				domRegion = formatRegion(edit, formatRange, parentConstraints, domRegion, previousRegion);
-			}
-			else {
-				// TODO: need to figure out what to do if they don't
-				// match up
-			}
-			previousRegion = domRegion.documentRegion;
-			// get the next sibling information
-			if (domRegion.domNode != null)
-				currentDOMNode = (IDOMNode) domRegion.domNode.getNextSibling();
-			else
-				currentDOMNode = null;
-			currentRegion = previousRegion.getNext();
-		}
-	}
-
-	/**
-	 * Formats a start tag
-	 * 
-	 * @param textEdit
-	 * @param currentRegion
-	 * @param textRegions
-	 */
-	private DOMRegion formatStartTag(TextEdit textEdit, Position formatRange, XMLFormattingConstraints parentConstraints, DOMRegion currentDOMRegion, IStructuredDocumentRegion previousDocumentRegion) {
-		// determine proper indent by referring to parent constraints,
-		// previous node, and current node
-		IStructuredDocumentRegion currentDocumentRegion = currentDOMRegion.documentRegion;
-		IDOMNode currentDOMNode = currentDOMRegion.domNode;
-
-		// create a constraint for this tag
-		XMLFormattingConstraints thisConstraints = new XMLFormattingConstraints();
-		XMLFormattingConstraints childrenConstraints = new XMLFormattingConstraints();
-		updateFormattingConstraints(parentConstraints, thisConstraints, childrenConstraints, currentDOMRegion);
-
-		if(childrenConstraints.getWhitespaceStrategy() == XMLFormattingConstraints.DEFAULT)
-			childrenConstraints.setWhitespaceStrategy((new XMLFormattingPreferences()).getElementWhitespaceStrategy());
-			
-		String whitespaceStrategy = thisConstraints.getWhitespaceStrategy();
-		String indentStrategy = thisConstraints.getIndentStrategy();
-		int availableLineWidth = thisConstraints.getAvailableLineWidth();
-
-		// format space before start tag
-		// do not format space before start tag if preserving spaces
-		if (whitespaceStrategy != XMLFormattingConstraints.PRESERVE) {
-			// format like indent strategy says
-			if (indentStrategy == XMLFormattingConstraints.INDENT || indentStrategy == XMLFormattingConstraints.NEW_LINE) {
-				availableLineWidth = indentIfPossible(textEdit, thisConstraints, currentDocumentRegion, previousDocumentRegion, whitespaceStrategy, indentStrategy, true);
-				if (availableLineWidth > 0)
-					thisConstraints.setAvailableLineWidth(availableLineWidth);
-			}
-		}
-		// format the start tag itself
-		boolean tagEnded = formatWithinTag(textEdit, thisConstraints, currentDocumentRegion, previousDocumentRegion);
-
-		// format children
-		if (!tagEnded) {
-			// update childConstraints with thisConstraint's indentLevel &
-			// availableLineWidth
-			childrenConstraints.setIndentLevel(thisConstraints.getIndentLevel());
-			childrenConstraints.setAvailableLineWidth(thisConstraints.getAvailableLineWidth());
-
-			previousDocumentRegion = currentDocumentRegion;
-			IDOMNode childDOMNode = (IDOMNode) currentDOMNode.getFirstChild();
-			IStructuredDocumentRegion nextRegion = currentDocumentRegion.getNext();
-			boolean passedFormatRange = false;
-			// as long as there is one child
-			if (childDOMNode != null && nextRegion != null) {
-				while (childDOMNode != null && nextRegion != null && !passedFormatRange && (fProgressMonitor == null || !fProgressMonitor.isCanceled())) {
-					DOMRegion childDOMRegion = new DOMRegion();
-					childDOMRegion.documentRegion = nextRegion;
-					childDOMRegion.domNode = childDOMNode;
-					if (nextRegion == childDOMNode.getFirstStructuredDocumentRegion()) {
-						// format children. pass in child constraints
-						childDOMRegion = formatRegion(textEdit, formatRange, childrenConstraints, childDOMRegion, previousDocumentRegion);
-					}
-					else {
-						// TODO: what happens if they dont match up?
-					}
-
-					// update childDOMRegion with next dom/region node
-					if (childDOMRegion.domNode != null) {
-						childDOMNode = (IDOMNode) childDOMRegion.domNode.getNextSibling();
-					}
-					else {
-						childDOMNode = null;
-					}
-					previousDocumentRegion = childDOMRegion.documentRegion;
-					nextRegion = previousDocumentRegion.getNext();
-					if (nextRegion != null)
-						passedFormatRange = !formatRange.overlapsWith(nextRegion.getStartOffset(), nextRegion.getLength());
-				}
-			}
-			else {
-				// there were no children, so keep end tag inlined
-				childrenConstraints.setWhitespaceStrategy(XMLFormattingConstraints.COLLAPSE);
-				childrenConstraints.setIndentStrategy(XMLFormattingConstraints.INLINE);
-			}
-
-			if (!passedFormatRange) {
-				// update the dom region with the last formatted region/dom
-				// node should be end tag and this tag's DOMNode
-				currentDOMRegion.documentRegion = nextRegion;
-				currentDOMRegion.domNode = currentDOMNode;
-
-				// end tag's indent level should be same as start tag's
-				childrenConstraints.setIndentLevel(thisConstraints.getIndentLevel());
-				// format end tag
-				boolean formatEndTag = false;
-				if (nextRegion != null && currentDOMNode != null) {
-					ITextRegionList rs = nextRegion.getRegions();
-					if (rs.size() > 1) {
-						ITextRegion r = rs.get(0);
-						if (r != null && r.getType() == DOMRegionContext.XML_END_TAG_OPEN) {
-							r = rs.get(1);
-							if (r != null && r.getType() == DOMRegionContext.XML_TAG_NAME) {
-								String tagName = nextRegion.getText(r);
-								if (tagName != null && tagName.equals(currentDOMNode.getNodeName()))
-									formatEndTag = true;
-							}
-						}
-
-					}
-				}
-				if (formatEndTag)
-					formatEndTag(textEdit, formatRange, childrenConstraints, currentDOMRegion, previousDocumentRegion);
-				else {
-					// missing end tag so return last formatted document
-					// region
-					currentDOMRegion.documentRegion = previousDocumentRegion;
-				}
-			}
-			else {
-				// passed format range before could finish, so update dom
-				// region to last known formatted region
-				currentDOMRegion.documentRegion = nextRegion;
-				currentDOMRegion.domNode = childDOMNode;
-			}
-
-			// update parent constraint since this is what is passed back
-			parentConstraints.setAvailableLineWidth(childrenConstraints.getAvailableLineWidth());
-		}
-		else {
-			// update available line width
-			parentConstraints.setAvailableLineWidth(thisConstraints.getAvailableLineWidth());
-		}
-		return currentDOMRegion;
-	}
-
-	private void formatStartTagWithNoAttr(TextEdit textEdit, XMLFormattingConstraints constraints, IStructuredDocumentRegion currentDocumentRegion, IStructuredDocumentRegion previousDocumentRegion, int availableLineWidth, String indentStrategy, String whitespaceStrategy, ITextRegion currentTextRegion) {
-		// calculate available line width
-		int tagNameLineWidth = currentTextRegion.getTextLength() + 2;
-		availableLineWidth -= tagNameLineWidth;
-
-		if (indentStrategy == XMLFormattingConstraints.INLINE) {
-			// if was inlining, need to check if out of available line
-			// width
-			if (availableLineWidth < 0) {
-				// need to indent if possible
-				int lineWidth = indentIfPossible(textEdit, constraints, currentDocumentRegion, previousDocumentRegion, whitespaceStrategy, indentStrategy, true);
-				// update available line width
-				if (lineWidth > 0)
-					availableLineWidth = lineWidth - tagNameLineWidth;
-				else
-					availableLineWidth -= tagNameLineWidth;
-			}
-			else {
-				// no need to indent
-				// just make sure to delete previous whitespace if
-				// needed
-				if (previousDocumentRegion != null) {
-					if (previousDocumentRegion.getType() == DOMRegionContext.XML_CONTENT) {
-						String previousDocumentRegionText = previousDocumentRegion.getFullText();
-						if (previousDocumentRegionText.trim().length() == 0) {
-							availableLineWidth = collapseSpaces(textEdit, previousDocumentRegion.getStartOffset(), availableLineWidth, previousDocumentRegionText);
-						}
-					}
-				}
-			}
-		}
-
-		// delete any trail spaces after tag name
-		if (currentTextRegion.getTextLength() < currentTextRegion.getLength()) {
-			deleteTrailingSpaces(textEdit, currentTextRegion, currentDocumentRegion);
-		}
-		constraints.setAvailableLineWidth(availableLineWidth);
-	}
-
-	/**
-	 * Format the text in xml content
-	 * 
-	 * @param textEdit
-	 * @param parentConstraints
-	 * @param currentRegion
-	 * @param fullText
-	 * @param whitespaceMode
-	 */
-	private void formatTextInContent(TextEdit textEdit, XMLFormattingConstraints parentConstraints, IStructuredDocumentRegion currentRegion, String fullText, String whitespaceMode) {
-		int availableLineWidth = parentConstraints.getAvailableLineWidth();
-
-		// determine indentation
-		boolean forceInitialIndent = false;
-		int indentLevel = parentConstraints.getIndentLevel() + 1;
-		String indentMode = parentConstraints.getIndentStrategy();
-		if (indentMode == XMLFormattingConstraints.INDENT) {
-			forceInitialIndent = true;
-		}
-		if (indentMode == XMLFormattingConstraints.NEW_LINE) {
-			indentLevel = parentConstraints.getIndentLevel();
-			forceInitialIndent = true;
-		}
-
-		int fullTextOffset = 0;
-		char[] fullTextArray = fullText.toCharArray();
-		while (fullTextOffset < fullTextArray.length) {
-			// gather all whitespaces
-			String whitespaceRun = getCharacterRun(fullTextArray, fullTextOffset, true);
-			if (whitespaceRun.length() > 0) {
-				// offset where whitespace starts
-				int whitespaceStart = fullTextOffset;
-				// update current offset in fullText
-				fullTextOffset += whitespaceRun.length();
-
-				// gather following word
-				String characterRun = getCharacterRun(fullTextArray, fullTextOffset, false);
-				int characterRunLength = characterRun.length();
-				if (characterRunLength > 0) {
-					// indent if word is too long or forcing initial
-					// indent
-					availableLineWidth -= characterRunLength;
-					// offset where indent/collapse will happen
-					int startOffset = currentRegion.getStartOffset() + whitespaceStart;
-					if (forceInitialIndent || (availableLineWidth <= 0)) {
-						// indent if not already indented
-						availableLineWidth = indentIfNotAlreadyIndented(textEdit, currentRegion, indentLevel, startOffset, whitespaceRun);
-						// remember to subtract word length
-						availableLineWidth -= characterRunLength;
-						forceInitialIndent = false; // initial indent done
-					}
-					else {
-						// just collapse spaces, but adjust for any indenting that may result from preserving line delimiters
-						if (whitespaceStart == 0 && whitespaceMode == XMLFormattingConstraints.IGNOREANDTRIM) {
-							// if ignore, trim
-							DeleteEdit deleteTrailing = new DeleteEdit(startOffset, whitespaceRun.length());
-							textEdit.addChild(deleteTrailing);
-						}
-						else if(whitespaceMode == XMLFormattingConstraints.REPLACE)
-							availableLineWidth = replaceSpaces(textEdit, startOffset, availableLineWidth, whitespaceRun);
-						else
-							availableLineWidth = collapseAndIndent(textEdit, startOffset, availableLineWidth, indentLevel, whitespaceRun, currentRegion);
-					}
-
-					fullTextOffset += characterRunLength;
-				}
-				else {
-					// handle trailing whitespace
-					int whitespaceOffset = currentRegion.getStartOffset() + whitespaceStart;
-					if (whitespaceMode == XMLFormattingConstraints.REPLACE)
-						availableLineWidth = replaceSpaces(textEdit, whitespaceOffset, availableLineWidth, whitespaceRun);
-					else if (whitespaceMode == XMLFormattingConstraints.IGNOREANDTRIM) {
-						// always trim
-						DeleteEdit deleteTrailing = new DeleteEdit(whitespaceOffset, whitespaceRun.length());
-						textEdit.addChild(deleteTrailing);
-					}
-					else if(getFormattingPreferences().getClearAllBlankLines()) {
-						if (whitespaceMode == XMLFormattingConstraints.IGNORE) {
-							// if ignore, trim
-							DeleteEdit deleteTrailing = new DeleteEdit(whitespaceOffset, whitespaceRun.length());
-							textEdit.addChild(deleteTrailing);
-						}
-						else {
-							// if collapse, leave a space. but what if end up
-							// wanting to add indent? then need to delete space
-							// added and add indent instead
-							availableLineWidth = collapseSpaces(textEdit, whitespaceOffset, availableLineWidth, whitespaceRun);
-						}
-					}
-				}
-			}
-			else {
-				// gather word
-				String characterRun = getCharacterRun(fullTextArray, fullTextOffset, false);
-				int characterRunLength = characterRun.length();
-				if (characterRunLength > 0) {
-					// indent if word is too long or forcing initial
-					// indent
-					availableLineWidth = availableLineWidth - characterRunLength;
-					if ((whitespaceMode == XMLFormattingConstraints.IGNORE || whitespaceMode == XMLFormattingConstraints.IGNOREANDTRIM) && (forceInitialIndent || (availableLineWidth <= 0))) {
-						// indent if not already indented
-						availableLineWidth = indentIfNotAlreadyIndented(textEdit, currentRegion, indentLevel, currentRegion.getStartOffset(), whitespaceRun);
-						// remember to subtract word length
-						availableLineWidth -= characterRunLength;
-						forceInitialIndent = false; // initial indent done
-					}
-					else {
-						// just collapse spaces
-						availableLineWidth -= characterRunLength;
-					}
-
-					fullTextOffset += characterRunLength;
-				}
-			}
-		}
-		// update available line width
-		parentConstraints.setAvailableLineWidth(availableLineWidth);
-	}
-
-	private void formatWithinEndTag(TextEdit textEdit, XMLFormattingConstraints constraints, IStructuredDocumentRegion currentDocumentRegion, IStructuredDocumentRegion previousDocumentRegion) {
-		String indentStrategy = constraints.getIndentStrategy();
-		String whitespaceStrategy = constraints.getWhitespaceStrategy();
-		int availableLineWidth = constraints.getAvailableLineWidth();
-		ITextRegionList textRegions = currentDocumentRegion.getRegions();
-		int currentTextRegionIndex = 1;
-
-		ITextRegion currentTextRegion = textRegions.get(currentTextRegionIndex);
-		String currentType = currentTextRegion.getType();
-		// tag name should always be the first text region
-		if (currentType == DOMRegionContext.XML_TAG_NAME) {
-			ITextRegion nextTextRegion = textRegions.get(currentTextRegionIndex + 1);
-			String nextType = nextTextRegion.getType();
-			if (nextType == DOMRegionContext.XML_TAG_CLOSE) {
-				// calculate available line width
-				int tagNameLineWidth = currentTextRegion.getTextLength() + 3;
-				availableLineWidth -= tagNameLineWidth;
-
-				if (indentStrategy == XMLFormattingConstraints.INLINE) {
-					// if was inlining, need to check if out of available line
-					// width - Whitespace may have been corrected in the text content
-					if (availableLineWidth < 0 && whitespaceStrategy == XMLFormattingConstraints.IGNORE) {
-						// need to deindent if possible
-						int lineWidth = indentIfPossible(textEdit, constraints, currentDocumentRegion, previousDocumentRegion, whitespaceStrategy, indentStrategy, false);
-						// update available line width
-						if (lineWidth > 0)
-							availableLineWidth = lineWidth - tagNameLineWidth;
-					}
-					else {
-						// no need to indent
-						// just make sure to delete previous whitespace if
-						// needed
-						if (previousDocumentRegion != null) {
-							if (previousDocumentRegion.getType() == DOMRegionContext.XML_CONTENT) {
-								String previousDocumentRegionText = previousDocumentRegion.getFullText();
-								if (previousDocumentRegionText.trim().length() == 0) {
-									availableLineWidth = collapseSpaces(textEdit, previousDocumentRegion.getStartOffset(), availableLineWidth, previousDocumentRegionText);
-								}
-							}
-						}
-					}
-				}
-				// delete any trail spaces after tag name
-				if (currentTextRegion.getTextLength() < currentTextRegion.getLength()) {
-					deleteTrailingSpaces(textEdit, currentTextRegion, currentDocumentRegion);
-				}
-			}
-		}
-		else {
-			// end tag has unexpected stuff, so just leave it alone
-		}
-		constraints.setAvailableLineWidth(availableLineWidth);
-	}
-
-	/**
-	 * Formats the contents within a tag like tag name and attributes
-	 * 
-	 * @param textEdit
-	 * @param currentDocumentRegion
-	 * @param textRegions
-	 *            contains at least 3 regions
-	 * @return true if tag was ended, false otherwise
-	 */
-	private boolean formatWithinTag(TextEdit textEdit, XMLFormattingConstraints constraints, IStructuredDocumentRegion currentDocumentRegion, IStructuredDocumentRegion previousDocumentRegion) {
-		int availableLineWidth = constraints.getAvailableLineWidth();
-		String indentStrategy = constraints.getIndentStrategy();
-		String whitespaceStrategy = constraints.getWhitespaceStrategy();
-		int indentLevel = constraints.getIndentLevel();
-		ITextRegionList textRegions = currentDocumentRegion.getRegions();
-		int currentTextRegionIndex = 1;
-
-		ITextRegion currentTextRegion = textRegions.get(currentTextRegionIndex);
-		String currentType = currentTextRegion.getType();
-		// tag name should always be the first text region
-		if (currentType == DOMRegionContext.XML_TAG_NAME) {
-			ITextRegion nextTextRegion = textRegions.get(currentTextRegionIndex + 1);
-			String nextType = (nextTextRegion != null) ? nextTextRegion.getType() : null;
-			if (nextType == DOMRegionContext.XML_TAG_CLOSE) {
-				// already at tag close
-				formatStartTagWithNoAttr(textEdit, constraints, currentDocumentRegion, previousDocumentRegion, availableLineWidth, indentStrategy, whitespaceStrategy, currentTextRegion);
-				return false;
-			}
-			else if (nextType == DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
-				// already at empty tag close
-				formatEmptyStartTagWithNoAttr(textEdit, constraints, currentDocumentRegion, previousDocumentRegion, availableLineWidth, indentStrategy, whitespaceStrategy, currentTextRegion);
-				return true;
-			}
-			else {
-				availableLineWidth -= (currentTextRegion.getTextLength() + 2);
-				boolean alignFinalBracket = getFormattingPreferences().getAlignFinalBracket();
-				boolean oneSpaceInTagName = getFormattingPreferences().getSpaceBeforeEmptyCloseTag();
-				boolean indentMultipleAttribute = getFormattingPreferences().getIndentMultipleAttributes();
-				// indicates if tag spanned more than one line
-				boolean spanMoreThan1Line = false;
-				// indicates if all attributes should be indented
-				boolean indentAllAttributes = false;
-				if (indentMultipleAttribute) {
-					int attributesCount = 0;
-					int i = 2;
-					while (i < textRegions.size() && attributesCount < 2) {
-						if (textRegions.get(i).getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME)
-							++attributesCount;
-					}
-					indentAllAttributes = (attributesCount > 1);
-				}
-
-				while ((currentTextRegionIndex + 1) < textRegions.size()) {
-					nextTextRegion = textRegions.get(currentTextRegionIndex + 1);
-					nextType = nextTextRegion.getType();
-					if (nextType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-						boolean indentAttribute = indentAllAttributes;
-						if (!indentAttribute)
-							indentAttribute = shouldIndentBeforeAttribute(constraints, textRegions, availableLineWidth, currentTextRegionIndex, currentTextRegion, nextTextRegion);
-						if (indentAttribute) {
-							availableLineWidth = indentIfNotAlreadyIndented(textEdit, indentLevel + 1, currentDocumentRegion, currentTextRegion);
-							spanMoreThan1Line = true;
-						}
-						else {
-							// otherwise, insertSpaceAndCollapse
-							insertSpaceAndCollapse(textEdit, currentDocumentRegion, availableLineWidth, currentTextRegion);
-							// update available line width
-							availableLineWidth -= (currentTextRegion.getTextLength() + 1);
-						}
-					}
-					else if (nextType == DOMRegionContext.XML_TAG_CLOSE) {
-						// if need to align bracket on next line, indent
-						if (alignFinalBracket && spanMoreThan1Line) {
-							availableLineWidth = indentIfNotAlreadyIndented(textEdit, indentLevel, currentDocumentRegion, currentTextRegion);
-							--availableLineWidth; // for tag close itself
-						}
-						else {
-							// otherwise, just delete space before tag close
-							if (currentTextRegion.getTextLength() < currentTextRegion.getLength()) {
-								deleteTrailingSpaces(textEdit, currentTextRegion, currentDocumentRegion);
-								availableLineWidth -= (currentTextRegion.getTextLength() + 1);
-							}
-						}
-						// update line width
-						constraints.setAvailableLineWidth(availableLineWidth);
-						return false;
-					}
-					else if (nextType == DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
-						int textLength = currentTextRegion.getTextLength();
-						int regionLength = currentTextRegion.getLength();
-
-						boolean thereAreSpaces = textLength < regionLength;
-						if (!oneSpaceInTagName && thereAreSpaces) {
-							// delete any trail spaces after tag name
-							deleteTrailingSpaces(textEdit, currentTextRegion, currentDocumentRegion);
-							availableLineWidth -= (currentTextRegion.getTextLength() + 2);
-						}
-						// insert a space and collapse ONLY IF it's specified
-						else if (oneSpaceInTagName) {
-							insertSpaceAndCollapse(textEdit, currentDocumentRegion, availableLineWidth, currentTextRegion);
-							availableLineWidth -= (currentTextRegion.getTextLength() + 3);
-						}
-						// update line width
-						constraints.setAvailableLineWidth(availableLineWidth);
-						return true;
-					}
-					else {
-						if (currentType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME && nextType == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-							if (currentTextRegion.getTextLength() < currentTextRegion.getLength()) {
-								deleteTrailingSpaces(textEdit, currentTextRegion, currentDocumentRegion);
-							}
-							// update available width
-							availableLineWidth -= currentTextRegion.getTextLength();
-						}
-						else if (currentType == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS && nextType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-							if (currentTextRegion.getTextLength() < currentTextRegion.getLength()) {
-								deleteTrailingSpaces(textEdit, currentTextRegion, currentDocumentRegion);
-							}
-							// update available width
-							availableLineWidth -= currentTextRegion.getTextLength();
-						}
-						else {
-							// otherwise, insertSpaceAndCollapse
-							insertSpaceAndCollapse(textEdit, currentDocumentRegion, availableLineWidth, currentTextRegion);
-							// update available line width
-							availableLineWidth -= (currentTextRegion.getTextLength() + 1);
-						}
-					}
-					currentTextRegion = nextTextRegion;
-					currentType = nextType;
-					++currentTextRegionIndex;
-				}
-			}
-		}
-		// update line width
-		constraints.setAvailableLineWidth(availableLineWidth);
-		return false;
-	}
-	
-	/**
-	 * Format an XML comment structured document region.
-	 */
-	private void formatComment(TextEdit textEdit, Position formatRange, XMLFormattingConstraints parentConstraints, DOMRegion currentDOMRegion, IStructuredDocumentRegion previousRegion) {
-		IStructuredDocumentRegion currentRegion = currentDOMRegion.documentRegion;
-		int lineWidth = parentConstraints.getAvailableLineWidth() - currentRegion.getFullText().length();
-		// Don't format if we're not exceeding the available line width, or if the whitespace
-		// strategy is to preserve whitespace - But update line width.
-		if(currentRegion == null ||	parentConstraints.getWhitespaceStrategy() == XMLFormattingConstraints.PRESERVE) {
-			parentConstraints.setAvailableLineWidth(lineWidth);
-			return;
-		}
-		
-		// If there is enough room, format the start of the comment tag if it
-		// is on its own line
-		if(lineWidth >= 0) {
-			parentConstraints.setAvailableLineWidth(lineWidth);
-			if(previousRegion.getType() == DOMRegionContext.XML_CONTENT) {
-				String delimiters = extractLineDelimiters(previousRegion.getFullText(), previousRegion);
-				// Format the comment if its on a newline
-				if(delimiters != null && delimiters.length() > 0)
-					textEdit.addChild(new ReplaceEdit(previousRegion.getStartOffset(), previousRegion.getLength(), delimiters + getIndentString(parentConstraints.getIndentLevel()+1)));
-			}
-			return;
-		}
-		
-		Iterator it = currentRegion.getRegions().iterator();
-		// Iterate over each text region of the comment
-		while(it.hasNext()) {
-			ITextRegion text = (ITextRegion) it.next();
-			formatCommentTag(textEdit, parentConstraints, currentRegion, text);
-		}
-	}
-	
-	/**
-	 * Handles formatting various portions of an XML comment. Because the XML
-	 * Comment is considered its own document region, there are cases where
-	 * the previous region must be referred to for proper indentation
-	 * consideration. Because of this, most of the special cases are
-	 * catering to the opening text region of the document region.
-	 * 
-	 * @param textEdit
-	 * @param parentConstraints
-	 * @param currentRegion
-	 * @param region
-	 */
-	private void formatCommentTag(TextEdit textEdit, XMLFormattingConstraints parentConstraints, IStructuredDocumentRegion currentRegion, ITextRegion region) {
-		int availableLineWidth = parentConstraints.getAvailableLineWidth();
-		int indentLevel = parentConstraints.getIndentLevel() + 1;
-		boolean initialIndent = false;
-		
-		// Indent the text of the comment an additional level
-		if(region.getType() == DOMRegionContext.XML_COMMENT_TEXT) {
-			indentLevel++;
-			initialIndent = true;
-		}
-		
-		int fullTextOffset = 0;
-		char[] fullTextArray = currentRegion.getFullText(region).toCharArray();
-		while (fullTextOffset < fullTextArray.length) {
-			// gather all whitespaces
-			String whitespaceRun = null;
-			
-			// If the region is a comment opening, the whitespace would actually come from the
-			// previous document region
-			if(region.getType() == DOMRegionContext.XML_COMMENT_OPEN && currentRegion.getPrevious() != null)
-				whitespaceRun = getCharacterRun(currentRegion.getPrevious().getFullText().toCharArray(), 0, true);
-			else
-				whitespaceRun = getCharacterRun(fullTextArray, fullTextOffset, true);
-			
-			if (whitespaceRun.length() > 0) {
-				// offset where whitespace starts
-				int whitespaceStart = fullTextOffset;
-				// update current offset in fullText for non comment-opening regions
-				if(region.getType() != DOMRegionContext.XML_COMMENT_OPEN)
-					fullTextOffset += whitespaceRun.length();
-
-				// gather following word
-				String characterRun = getCharacterRun(fullTextArray, fullTextOffset, false);
-				int characterRunLength = characterRun.length();
-				if (characterRunLength > 0) {
-					// indent if word is too long or forcing initial
-					// indent
-					availableLineWidth -= characterRunLength;
-					// offset where indent/collapse will happen - for comment-opening regions,
-					// this occurs in the previous document region
-					int startOffset = 0;
-					if(region.getType() == DOMRegionContext.XML_COMMENT_OPEN && currentRegion.getPrevious() != null)
-						startOffset = currentRegion.getPrevious().getStartOffset();
-					else
-						startOffset = currentRegion.getStartOffset(region) + whitespaceStart;
-					
-					if (region.getType() == DOMRegionContext.XML_COMMENT_OPEN || initialIndent || (availableLineWidth <= 0)) {
-						// indent if not already indented
-						availableLineWidth = indentIfNotAlreadyIndented(textEdit, currentRegion, indentLevel, startOffset, whitespaceRun);
-						// remember to subtract word length
-						availableLineWidth -= characterRunLength;
-						// Indented the first word of the comment
-						if(initialIndent)
-							initialIndent = false;
-					}
-					else {
-						// just collapse spaces
-						availableLineWidth = collapseSpaces(textEdit, startOffset, availableLineWidth, whitespaceRun);
-					}
-
-					fullTextOffset += characterRunLength;
-				}
-				else {
-					// handle trailing whitespace
-					int whitespaceOffset = currentRegion.getStartOffset(region) + whitespaceStart;
-					DeleteEdit deleteTrailing = new DeleteEdit(whitespaceOffset, whitespaceRun.length());
-					textEdit.addChild(deleteTrailing);
-				}
-			}
-			else {
-				// gather word
-				String characterRun = getCharacterRun(fullTextArray, fullTextOffset, false);
-				int characterRunLength = characterRun.length();
-				if (characterRunLength > 0) {
-					// indent if word is too long or forcing initial
-					// indent
-					availableLineWidth = availableLineWidth - characterRunLength;
-
-					if ((region.getType() == DOMRegionContext.XML_COMMENT_CLOSE || region.getType() == DOMRegionContext.XML_COMMENT_OPEN) || initialIndent || (region.getType() == DOMRegionContext.XML_COMMENT_TEXT && availableLineWidth <= 0)) {
-						// indent if not already indented
-						availableLineWidth = indentIfNotAlreadyIndented(textEdit, currentRegion, indentLevel, currentRegion.getStartOffset(region), whitespaceRun);
-						// remember to subtract word length
-						availableLineWidth -= characterRunLength;
-						if(initialIndent)
-							initialIndent = false;
-					}
-					else {
-						// just collapse spaces
-						availableLineWidth -= characterRunLength;
-					}
-					fullTextOffset += characterRunLength;
-				}
-			}
-		}
-		// update available line width
-		parentConstraints.setAvailableLineWidth(availableLineWidth);
-	}
-
-	/**
-	 * Returns either a String of whitespace or characters depending on
-	 * forWhitespace
-	 * 
-	 * @param fullTextArray
-	 *            the text array to look in
-	 * @param textOffset
-	 *            the start offset to start searching
-	 * @param forWhitespace
-	 *            true if should return whitespaces, false otherwise
-	 * @return a String of either all whitespace or all characters. Never
-	 *         returns null
-	 */
-	private String getCharacterRun(char[] fullTextArray, int textOffset, boolean forWhitespace) {
-		StringBuffer characterRun = new StringBuffer();
-		boolean nonCharacterFound = false;
-		while (textOffset < fullTextArray.length && !nonCharacterFound) {
-			char c = fullTextArray[textOffset];
-			boolean isWhitespace = Character.isWhitespace(c);
-			if ((forWhitespace && isWhitespace) || (!forWhitespace && !isWhitespace))
-				characterRun.append(c);
-			else
-				nonCharacterFound = true;
-			++textOffset;
-		}
-		return characterRun.toString();
-	}
-	
-	private String getTrailingWhitespace(String text) {
-		StringBuffer whitespaceRun = new StringBuffer();
-		int index = text.length() - 1;
-		while(index > 0) {
-			char c = text.charAt(index--);
-			if (Character.isWhitespace(c))
-				whitespaceRun.insert(0, c);
-			else
-				break;
-		}
-		return whitespaceRun.toString();
-	}
-
-	private String getIndentString(int indentLevel) {
-		StringBuffer indentString = new StringBuffer();
-		String indent = getFormattingPreferences().getOneIndent();
-		for (int i = 0; i < indentLevel; ++i) {
-			indentString.append(indent);
-		}
-		return indentString.toString();
-	}
-
-	protected XMLFormattingPreferences getFormattingPreferences() {
-		if (fPreferences == null)
-			fPreferences = new XMLFormattingPreferences();
-		return fPreferences;
-	}
-
-	protected void setFormattingPreferences(XMLFormattingPreferences preferences) {
-		fPreferences = preferences;
-	}
-
-	/**
-	 * Indent if whitespaceRun does not already contain an indent
-	 * 
-	 * @param textEdit
-	 * @param indentLevel
-	 * @param indentStartOffset
-	 * @param maxAvailableLineWidth
-	 * @param whitespaceRun
-	 * @return new available line width up to where indented
-	 */
-	private int indentIfNotAlreadyIndented(TextEdit textEdit, IStructuredDocumentRegion currentRegion, int indentLevel, int indentStartOffset, String whitespaceRun) {
-		int maxAvailableLineWidth = getFormattingPreferences().getMaxLineWidth();
-
-		int availableLineWidth;
-		String indentString = getIndentString(indentLevel);
-		String lineDelimiter = getLineDelimiter(currentRegion);
-		String newLineAndIndent = lineDelimiter + indentString;
-		
-		TextEdit indentation = null;
-		
-		// if not already correctly indented
-		if (!newLineAndIndent.equals(whitespaceRun)) {
-			if (getFormattingPreferences().getClearAllBlankLines()) {
-				if (whitespaceRun != null) {
-					// replace existing whitespace run
-					indentation = new ReplaceEdit(indentStartOffset, whitespaceRun.length(), newLineAndIndent);
-				}
-				else {
-					// just insert correct indent
-					indentation = new InsertEdit(indentStartOffset, newLineAndIndent);
-				}
-			}
-			// Keep the empty lines
-			else {
-				// just insert correct indent
-				if(whitespaceRun == null)
-					indentation = new InsertEdit(indentStartOffset, newLineAndIndent);
-				// Need to preserve the number of empty lines, but still indent on the current line properly
-				else {
-					String existingDelimiters = extractLineDelimiters(whitespaceRun, currentRegion);
-					if(existingDelimiters != null && existingDelimiters.length() > 0) {
-						String formatted = existingDelimiters + indentString;
-						// Don't perform a replace if the formatted string is the same as the existing whitespaceRun
-						if(!formatted.equals(whitespaceRun))
-							indentation = new ReplaceEdit(indentStartOffset, whitespaceRun.length(), formatted);
-					}
-					// No blank lines to preserve - correct the indent
-					else
-						indentation = new ReplaceEdit(indentStartOffset, whitespaceRun.length(), newLineAndIndent);
-				}
-			}
-		}
-		
-		if(indentation != null)
-			textEdit.addChild(indentation);
-		// update line width
-		availableLineWidth = maxAvailableLineWidth - indentString.length();
-		return availableLineWidth;
-	}
-
-	private int indentIfNotAlreadyIndented(TextEdit textEdit, int indentLevel, IStructuredDocumentRegion currentDocumentRegion, ITextRegion currentTextRegion) {
-		// indent if not already indented
-		int textLength = currentTextRegion.getTextLength();
-		int regionLength = currentTextRegion.getLength();
-		int indentStartOffset = currentDocumentRegion.getTextEndOffset(currentTextRegion);
-		String fullText = currentDocumentRegion.getFullText(currentTextRegion);
-		String whitespaceRun = fullText.substring(textLength, regionLength);
-
-		// update line width
-		int availableLineWidth = indentIfNotAlreadyIndented(textEdit, currentDocumentRegion, indentLevel, indentStartOffset, whitespaceRun);
-		return availableLineWidth;
-	}
-
-	private int indentIfPossible(TextEdit textEdit, XMLFormattingConstraints thisConstraints, IStructuredDocumentRegion currentDocumentRegion, IStructuredDocumentRegion previousDocumentRegion, String whitespaceStrategy, String indentStrategy, boolean addIndent) {
-		int availableLineWidth = -1;
-		// if there is no previous document region, there is no need to indent
-		// because we're at beginning of document
-		if (previousDocumentRegion == null)
-			return availableLineWidth;
-
-		// only indent if ignoring whitespace or if collapsing and
-		// there was a whitespace character before this region
-		boolean canIndent = false;
-		String previousRegionFullText = null;
-		String previousRegionType = null;
-
-		if ((whitespaceStrategy == XMLFormattingConstraints.IGNORE) || whitespaceStrategy == XMLFormattingConstraints.IGNOREANDTRIM) {
-			// if ignoring, need to check if previous region was cdata
-			previousRegionType = previousDocumentRegion.getType();
-			if (previousRegionType == DOMRegionContext.XML_CDATA_TEXT)
-				canIndent = false;
-			else
-				canIndent = true;
-		}
-		else if (whitespaceStrategy == XMLFormattingConstraints.COLLAPSE) {
-			// if collapsing, need to check if previous region ended in a
-			// whitespace
-			previousRegionType = previousDocumentRegion.getType();
-			if (previousRegionType == DOMRegionContext.XML_CONTENT) {
-				previousRegionFullText = previousDocumentRegion.getFullText();
-				int length = previousRegionFullText.length();
-				if (length > 1)
-					canIndent = Character.isWhitespace(previousRegionFullText.charAt(length - 1));
-			}
-		}
-		if (canIndent) {
-			int indentStartOffset = currentDocumentRegion.getStartOffset();
-			String whitespaceRun = null;
-
-			// get previous region type if it was not previously retrieved
-			if (previousRegionType == null)
-				previousRegionType = previousDocumentRegion.getType();
-
-			// get previous region's text if it was not previously retrieved
-			if (previousRegionFullText == null && previousRegionType == DOMRegionContext.XML_CONTENT)
-				previousRegionFullText = previousDocumentRegion.getFullText();
-
-			// if previous region was only whitespace, this may
-			// already be indented, so need to make sure
-			if ((previousRegionFullText != null) && (previousRegionFullText.trim().length() == 0)) {
-				indentStartOffset = previousDocumentRegion.getStartOffset();
-				whitespaceRun = previousRegionFullText;
-			}
-			if ((previousRegionFullText != null) && (whitespaceRun == null) && !getFormattingPreferences().getClearAllBlankLines()) {
-				whitespaceRun = getTrailingWhitespace(previousRegionFullText);
-				indentStartOffset = previousDocumentRegion.getEndOffset() - whitespaceRun.length();
-			}
-
-			int indentLevel = thisConstraints.getIndentLevel();
-			if (addIndent && indentStrategy == XMLFormattingConstraints.INDENT) {
-				++indentLevel;
-				thisConstraints.setIndentLevel(indentLevel);
-			}
-
-			// indent if not already indented
-			availableLineWidth = indentIfNotAlreadyIndented(textEdit, currentDocumentRegion, indentLevel, indentStartOffset, whitespaceRun);
-		}
-		return availableLineWidth;
-	}
-
-	/**
-	 * Allow exactly one whitespace in currentTextRegion. If there are more,
-	 * collapse to one. If there are none, insert one.
-	 * 
-	 * @param textEdit
-	 * @param currentDocumentRegion
-	 * @param availableLineWidth
-	 * @param currentTextRegion
-	 */
-	private void insertSpaceAndCollapse(TextEdit textEdit, IStructuredDocumentRegion currentDocumentRegion, int availableLineWidth, ITextRegion currentTextRegion) {
-		int textLength = currentTextRegion.getTextLength();
-		int regionLength = currentTextRegion.getLength();
-		boolean thereAreSpaces = textLength < regionLength;
-		int spacesStartOffset = currentDocumentRegion.getStartOffset(currentTextRegion) + textLength;
-
-		if (thereAreSpaces) {
-			String fullTagName = currentDocumentRegion.getFullText(currentTextRegion);
-			String whitespaceRun = fullTagName.substring(textLength, regionLength);
-			collapseSpaces(textEdit, spacesStartOffset, availableLineWidth, whitespaceRun);
-		}
-		else {
-			// insert a space
-			InsertEdit insertEdit = new InsertEdit(spacesStartOffset, SPACE);
-			textEdit.addChild(insertEdit);
-		}
-	}
-
-	private boolean shouldIndentBeforeAttribute(XMLFormattingConstraints constraints, ITextRegionList textRegions, int availableLineWidth, int currentTextRegionIndex, ITextRegion currentTextRegion, ITextRegion nextTextRegion) {
-		boolean indentAttribute = false;
-
-		// look ahead to see if going to hit max line width
-		// something attrName
-		int currentWidth = currentTextRegion.getTextLength() + nextTextRegion.getTextLength() + 1;
-		if (currentWidth > availableLineWidth)
-			indentAttribute = true;
-		else {
-			if ((currentTextRegionIndex + 2) < textRegions.size()) {
-				// still okay, so try next region
-				// something attrName=
-				ITextRegion textRegion = textRegions.get(currentTextRegionIndex + 2);
-				if (textRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-					++currentWidth;
-					if (currentWidth > availableLineWidth)
-						indentAttribute = true;
-					else {
-						if ((currentTextRegionIndex + 3) < textRegions.size()) {
-							// still okay, so try next region
-							// something attrName=attrValue
-							textRegion = textRegions.get(currentTextRegionIndex + 3);
-							if (textRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-								currentWidth = +textRegion.getTextLength();
-								if (currentWidth > availableLineWidth)
-									indentAttribute = true;
-							}
-						}
-					}
-				}
-			}
-		}
-		return indentAttribute;
-	}
-
-	/**
-	 * Given the provided information (parentConstraints & currentDOMRegion),
-	 * update the formatting constraints (for this & child)
-	 * 
-	 * @param parentConstraints
-	 *            can be null
-	 * @param thisConstraints
-	 *            can be null
-	 * @param childConstraints
-	 *            can be null
-	 * @param currentDOMRegion
-	 *            cannot be null
-	 */
-	protected void updateFormattingConstraints(XMLFormattingConstraints parentConstraints, XMLFormattingConstraints thisConstraints, XMLFormattingConstraints childConstraints, DOMRegion currentDOMRegion) {
-		IStructuredDocumentRegion currentRegion = currentDOMRegion.documentRegion;
-		IDOMNode currentNode = currentDOMRegion.domNode;
-
-		// default to whatever parent's constraint said to do
-		if (parentConstraints != null) {
-			if (thisConstraints != null) {
-				thisConstraints.copyConstraints(parentConstraints);
-			}
-			if (childConstraints != null) {
-				childConstraints.copyConstraints(parentConstraints);
-				// if whitespace strategy was only a hint, null it out so
-				// defaults are taken instead
-				if (parentConstraints.isWhitespaceStrategyAHint())
-					childConstraints.setWhitespaceStrategy(null);
-			}
-		}
-
-		// set up constraints for direct children of document root
-		Node parentNode = currentNode.getParentNode();
-		if (parentNode != null && parentNode.getNodeType() == Node.DOCUMENT_NODE) {
-			if (thisConstraints != null) {
-				thisConstraints.setWhitespaceStrategy(XMLFormattingConstraints.IGNORE);
-				thisConstraints.setIndentStrategy(XMLFormattingConstraints.NEW_LINE);
-				thisConstraints.setIndentLevel(0);
-			}
-			if (childConstraints != null) {
-				childConstraints.setWhitespaceStrategy(null);
-				childConstraints.setIndentStrategy(null);
-				childConstraints.setIndentLevel(0);
-			}
-		}
-
-		// other conditions to check when setting up child constraints
-		if (childConstraints != null) {
-			XMLFormattingPreferences preferences = getFormattingPreferences();
-
-			// if we're at document root, child tags should always just start
-			// on a new line and have an indent level of 0
-			if (currentNode.getNodeType() == Node.DOCUMENT_NODE) {
-				childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.IGNORE);
-				childConstraints.setIndentStrategy(XMLFormattingConstraints.NEW_LINE);
-				childConstraints.setIndentLevel(0);
-			}
-			else {
-				// BUG108074 & BUG84688 - preserve whitespace in xsl:text &
-				// xsl:attribute
-				String nodeNamespaceURI = currentNode.getNamespaceURI();
-				if (XSL_NAMESPACE.equals(nodeNamespaceURI)) {
-					String nodeName = ((Element) currentNode).getLocalName();
-					if (XSL_ATTRIBUTE.equals(nodeName) || XSL_TEXT.equals(nodeName)) {
-						childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.PRESERVE);
-					}
-				}
-				else {
-					// search within current tag for xml:space attribute
-					ITextRegionList textRegions = currentRegion.getRegions();
-					int i = 0;
-					boolean xmlSpaceFound = false;
-					boolean preserveFound = false;
-					while (i < textRegions.size() && !xmlSpaceFound) {
-						ITextRegion textRegion = textRegions.get(i);
-						if (textRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-							String regionText = currentRegion.getText(textRegion);
-							if (XML_SPACE.equals(regionText)) {
-								if ((i + 1) < textRegions.size()) {
-									++i;
-									textRegion = textRegions.get(i);
-									if (textRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS && ((i + 1) < textRegions.size())) {
-										++i;
-										textRegion = textRegions.get(i);
-										regionText = currentRegion.getText(textRegion);
-										if (PRESERVE.equals(regionText) || PRESERVE_QUOTED.equals(regionText)) {
-											preserveFound = true;
-										}
-									}
-								}
-								xmlSpaceFound = true;
-							}
-						}
-						++i;
-					}
-					if (xmlSpaceFound) {
-						if (preserveFound) {
-							// preserve was found so set the strategy
-							childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.PRESERVE);
-						}
-						else {
-							// xml:space was found but it was not collapse, so
-							// use default whitespace strategy
-							childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.DEFAULT);
-						}
-					}
-					else {
-						// how to hande nodes that have nonwhitespace text
-						// content
-						NodeList nodeList = currentNode.getChildNodes();
-						int length = nodeList.getLength();
-						int index = 0;
-						boolean textNodeFound = false;
-						// BUG214516 - If the parent constraint is to preserve whitespace, child constraints should
-						// still reflect the parent constraints
-						while (index < length && !textNodeFound && parentConstraints != null && !XMLFormattingConstraints.PRESERVE.equals(parentConstraints.getWhitespaceStrategy())) {
-							Node childNode = nodeList.item(index);
-							if (childNode.getNodeType() == Node.TEXT_NODE) {
-								textNodeFound = !((IDOMText) childNode).isElementContentWhitespace();
-							}
-							++index;
-						}
-						if (textNodeFound) {
-							if (length > 1) {
-								// more in here than just text, so consider
-								// this mixed content
-								childConstraints.setWhitespaceStrategy(preferences.getMixedWhitespaceStrategy());
-								childConstraints.setIndentStrategy(preferences.getMixedIndentStrategy());
-							}
-							else {
-								// there's only text
-								childConstraints.setWhitespaceStrategy(preferences.getTextWhitespaceStrategy());
-								childConstraints.setIndentStrategy(preferences.getTextIndentStrategy());
-							}
-							childConstraints.setIsWhitespaceStrategyAHint(true);
-							childConstraints.setIsIndentStrategyAHint(true);
-						}
-
-						// try referring to content model for information on
-						// whitespace & indent strategy
-						ModelQueryAdapter adapter = (ModelQueryAdapter) ((IDOMDocument) currentNode.getOwnerDocument()).getAdapterFor(ModelQueryAdapter.class);
-						CMElementDeclaration elementDeclaration = (CMElementDeclaration) adapter.getModelQuery().getCMNode(currentNode);
-						if (elementDeclaration != null) {
-							// follow whitespace strategy preference for
-							// pcdata content
-							int contentType = elementDeclaration.getContentType();
-							
-							String facetValue = null;
-							if(elementDeclaration.getDataType() != null)
-								facetValue = (String) elementDeclaration.getDataType().getProperty(PROPERTY_WHITESPACE_FACET);
-							if(facetValue != null) {
-								if(PRESERVE.equals(facetValue))
-									childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.PRESERVE);
-								// For XSD types, "collapse" corresponds to the IGNOREANDTRIM strategy
-								else if(COLLAPSE.equals(facetValue))
-									childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.IGNOREANDTRIM);
-								else if(REPLACE.equals(facetValue))
-									childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.REPLACE);
-							}
-							else if (contentType == CMElementDeclaration.PCDATA && parentConstraints != null && !XMLFormattingConstraints.PRESERVE.equals(parentConstraints.getWhitespaceStrategy())) {
-								childConstraints.setWhitespaceStrategy(preferences.getPCDataWhitespaceStrategy());
-							}
-							else if (contentType == CMElementDeclaration.ELEMENT && parentConstraints != null && !XMLFormattingConstraints.PRESERVE.equals(parentConstraints.getWhitespaceStrategy())) {
-								childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.IGNORE);
-								childConstraints.setIndentStrategy(XMLFormattingConstraints.INDENT);
-								childConstraints.setIsWhitespaceStrategyAHint(true);
-								childConstraints.setIsIndentStrategyAHint(true);
-							}
-							else {
-								// look for xml:space in content model
-								CMNamedNodeMap cmAttributes = elementDeclaration.getAttributes();
-
-								CMNamedNodeMapImpl allAttributes = new CMNamedNodeMapImpl(cmAttributes);
-								List nodes = ModelQueryUtil.getModelQuery(currentNode.getOwnerDocument()).getAvailableContent((Element) currentNode, elementDeclaration, ModelQuery.INCLUDE_ATTRIBUTES);
-								for (int k = 0; k < nodes.size(); k++) {
-									CMNode cmnode = (CMNode) nodes.get(k);
-									if (cmnode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) {
-										allAttributes.put(cmnode);
-									}
-								}
-								cmAttributes = allAttributes;
-
-								// Check implied values from the DTD way.
-								CMAttributeDeclaration attributeDeclaration = (CMAttributeDeclaration) cmAttributes.getNamedItem(XML_SPACE);
-								if (attributeDeclaration != null) {
-									// CMAttributeDeclaration found, check
-									// it
-									// out.
-
-									//BUG214516/196544 - Fixed NPE that was caused by an attr having
-									// a null attr type
-									String defaultValue = null;
-									CMDataType attrType = attributeDeclaration.getAttrType();
-									if (attrType != null) {
-										if ((attrType.getImpliedValueKind() != CMDataType.IMPLIED_VALUE_NONE) && attrType.getImpliedValue() != null)
-											defaultValue = attrType.getImpliedValue();
-										else if ((attrType.getEnumeratedValues() != null) && (attrType.getEnumeratedValues().length > 0)) {
-											defaultValue = attrType.getEnumeratedValues()[0];
-										}
-									}
-
-									// xml:space="preserve" means preserve
-									// space,
-									// everything else means back to
-									// default.
-									if (PRESERVE.equals(defaultValue))
-										childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.PRESERVE);
-									else
-										childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.DEFAULT);
-								}
-								// If the node has no attributes, inherit the parents whitespace strategy
-								else {
-									if (parentConstraints != null)
-										childConstraints.setWhitespaceStrategy(parentConstraints.getWhitespaceStrategy());
-									else
-										childConstraints.setWhitespaceStrategy(null);
-								}
-							}
-						}
-					}
-				}
-			}
-			// set default values according to preferences
-			if (childConstraints.getWhitespaceStrategy() == null) {
-				childConstraints.setWhitespaceStrategy(preferences.getElementWhitespaceStrategy());
-			}
-			if (childConstraints.getIndentStrategy() == null) {
-				childConstraints.setIndentStrategy(preferences.getElementIndentStrategy());
-			}
-		}
-	}
-
-	/**
-	 * Calculates the current available line width given fullText.
-	 * 
-	 * @param fullText
-	 * @param availableLineWidth
-	 * @param maxAvailableLineWidth
-	 * @return
-	 */
-	private int updateLineWidthWithLastLine(String fullText, int availableLineWidth) {
-		int maxAvailableLineWidth = getFormattingPreferences().getMaxLineWidth();
-		int lineWidth = availableLineWidth;
-		if (fullText != null) {
-			int textLength = fullText.length();
-			// update available line width
-			// find last newline
-			int lastLFOffset = fullText.lastIndexOf('\n');
-			int lastCROffset = fullText.lastIndexOf('\r');
-			// all text was on 1 line
-			if (lastLFOffset == -1 && lastCROffset == -1) {
-				// just subtract text length from current
-				// available line width
-				lineWidth -= fullText.length();
-			}
-			else {
-				// calculate available line width of last line
-				int lastNewLine = Math.max(lastLFOffset, lastCROffset);
-				lineWidth = maxAvailableLineWidth - (textLength - lastNewLine);
-			}
-		}
-		return lineWidth;
-	}
-
-	private String getLineDelimiter(IStructuredDocumentRegion currentRegion) {
-		IStructuredDocument doc = currentRegion.getParentDocument();
-		int line = doc.getLineOfOffset(currentRegion.getStartOffset());
-		String lineDelimiter = doc.getLineDelimiter();
-		try {
-			if (line > 0) {
-				lineDelimiter = doc.getLineDelimiter(line - 1);
-			}
-		}
-		catch (BadLocationException e) {
-			// log for now, unless we find reason not to
-			Logger.log(Logger.INFO, e.getMessage());
-		}
-		// BUG115716: if cannot get line delimiter from current line, just
-		// use default line delimiter
-		if (lineDelimiter == null)
-			lineDelimiter = doc.getLineDelimiter();
-		return lineDelimiter;
-	}
-	
-	private String extractLineDelimiters(String base, IStructuredDocumentRegion currentRegion) {
-		String lineDelimiter = getLineDelimiter(currentRegion);
-		StringBuffer sb = new StringBuffer();
-		for(int index = 0; index < base.length();) {
-			index = base.indexOf(lineDelimiter, index);
-			if(index++ >= 0)
-				sb.append(lineDelimiter);
-			else
-				break;
-		}
-		return sb.toString();
-	}
-
-	void setProgressMonitor(IProgressMonitor monitor) {
-		fProgressMonitor = monitor;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/XMLFormatterFormatProcessor.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/XMLFormatterFormatProcessor.java
deleted file mode 100644
index e02ee7e..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/XMLFormatterFormatProcessor.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.formatter;
-
-import java.io.IOException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.text.DocumentRewriteSession;
-import org.eclipse.jface.text.DocumentRewriteSessionType;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentExtension4;
-import org.eclipse.text.edits.TextEdit;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Node;
-
-/**
- * This is a wrapper for the new xml formatter so that it can be still
- * considered an IStruturedFormatProcessor
- */
-public class XMLFormatterFormatProcessor implements IStructuredFormatProcessor {
-	private DefaultXMLPartitionFormatter fFormatter = null;
-	private IProgressMonitor fProgressMonitor = null;
-
-	public void formatDocument(IDocument document, int start, int length) throws IOException, CoreException {
-		if (document instanceof IStructuredDocument) {
-			IStructuredModel model = StructuredModelManager.getModelManager().getModelForEdit((IStructuredDocument) document);
-			if (model != null) {
-				try {
-					formatModel(model, start, length);
-				}
-				finally {
-					model.releaseFromEdit();
-				}
-			}
-		}
-	}
-
-	public void formatFile(IFile file) throws IOException, CoreException {
-		if (file == null)
-			return;
-
-		IStructuredModel structuredModel = null;
-		// OutputStream outputStream = null;
-		try {
-			// setup structuredModel
-			// Note: We are getting model for edit. Will save model if model
-			// changed.
-			structuredModel = StructuredModelManager.getModelManager().getModelForEdit(file);
-
-			// format
-			formatModel(structuredModel);
-
-			// save model if needed
-			if (!structuredModel.isSharedForEdit() && structuredModel.isSaveNeeded())
-				structuredModel.save();
-		}
-		finally {
-			// ensureClosed(outputStream, null);
-			// release from model manager
-			if (structuredModel != null) {
-				structuredModel.releaseFromEdit();
-			}
-
-		}
-	}
-
-	public void formatModel(IStructuredModel structuredModel) {
-		int start = 0;
-		int length = structuredModel.getStructuredDocument().getLength();
-
-		formatModel(structuredModel, start, length);
-	}
-
-	public void formatModel(IStructuredModel structuredModel, int start, int length) {
-		if(fProgressMonitor != null)
-			fProgressMonitor.beginTask("", 2);
-		IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-		DocumentRewriteSession activeRewriteSession = ((IDocumentExtension4) structuredDocument).getActiveRewriteSession();
-		boolean startedRewriteSession = false;
-		if (activeRewriteSession == null) {
-			activeRewriteSession = ((IDocumentExtension4) structuredDocument).startRewriteSession(DocumentRewriteSessionType.UNRESTRICTED);
-			startedRewriteSession = true;
-		}
-		getFormatter().setProgressMonitor(new NullProgressMonitor() {
-			public boolean isCanceled() {
-				return fProgressMonitor != null && fProgressMonitor.isCanceled();
-			}
-		});
-		TextEdit edit = getFormatter().format(structuredModel, start, length);
-		if(fProgressMonitor != null)
-			fProgressMonitor.worked(1);
-		
-		try {
-			structuredModel.aboutToChangeModel();
-			edit.apply(structuredDocument);
-			if(fProgressMonitor != null)
-				fProgressMonitor.worked(1);
-		}
-		catch (Exception e) {
-			Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-		}
-		finally {
-			if (startedRewriteSession && activeRewriteSession != null) {
-				((IDocumentExtension4) structuredDocument).stopRewriteSession(activeRewriteSession);
-			}
-			structuredModel.changedModel();
-			if(fProgressMonitor != null)
-				fProgressMonitor.done();
-		}
-	}
-
-	public void formatNode(Node node) {
-		if (node instanceof IDOMNode) {
-			IDOMNode domNode = (IDOMNode) node;
-			formatModel(domNode.getModel(), domNode.getStartOffset(), domNode.getLength());
-		}
-	}
-
-	public void setProgressMonitor(IProgressMonitor monitor) {
-		fProgressMonitor = monitor;
-	}
-
-	private DefaultXMLPartitionFormatter getFormatter() {
-		if (fFormatter == null) {
-			fFormatter = new DefaultXMLPartitionFormatter();
-		}
-		return fFormatter;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/XMLFormattingConstraints.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/XMLFormattingConstraints.java
deleted file mode 100644
index fa2a53b..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/XMLFormattingConstraints.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.formatter;
-
-
-public class XMLFormattingConstraints {
-	public final static String PRESERVE = "PRESERVE"; //$NON-NLS-1$
-	public final static String COLLAPSE = "COLLAPSE"; //$NON-NLS-1$
-	public final static String IGNORE = "IGNORE"; //$NON-NLS-1$
-	public final static String IGNOREANDTRIM = "IGNOREANDTRIM"; //$NON-NLS-1$
-	public final static String DEFAULT = "DEFAULT"; //$NON-NLS-1$
-	public final static String REPLACE = "REPLACE"; //$NON-NLS-1$
-	
-	public final static String INDENT = "INDENT"; //$NON-NLS-1$
-	public final static String NEW_LINE = "NEW_LINE"; //$NON-NLS-1$
-	public final static String INLINE = "INLINE"; //$NON-NLS-1$
-
-	private int fAvailableLineWidth = 0;
-	private int fIndentLevel = 0;
-	private String fIndentStrategy;
-	private String fWhitespaceStrategy;
-	private boolean fIsIndentStrategyAHint = false;
-	private boolean fIsWhitespaceStrategyAHint = false;
-
-	/**
-	 * Initializes the values in this formatting constraint with values from
-	 * constraints
-	 * 
-	 * @param constraints
-	 *            cannot be null
-	 */
-	public void copyConstraints(XMLFormattingConstraints constraints) {
-		setAvailableLineWidth(constraints.getAvailableLineWidth());
-		setIndentLevel(constraints.getIndentLevel());
-		setIndentStrategy(constraints.getIndentStrategy());
-		setWhitespaceStrategy(constraints.getWhitespaceStrategy());
-	}
-
-	public int getAvailableLineWidth() {
-		return fAvailableLineWidth;
-	}
-
-	public void setAvailableLineWidth(int lineWidth) {
-		fAvailableLineWidth = lineWidth;
-	}
-
-	public int getIndentLevel() {
-		return fIndentLevel;
-	}
-
-	public void setIndentLevel(int indentLevel) {
-		fIndentLevel = indentLevel;
-	}
-
-	public String getIndentStrategy() {
-		return fIndentStrategy;
-	}
-
-	public void setIndentStrategy(String indentStrategy) {
-		fIndentStrategy = indentStrategy;
-	}
-
-	public String getWhitespaceStrategy() {
-		return fWhitespaceStrategy;
-	}
-
-	public void setWhitespaceStrategy(String whitespaceStrategy) {
-		fWhitespaceStrategy = whitespaceStrategy;
-	}
-
-	public boolean isIndentStrategyAHint() {
-		return fIsIndentStrategyAHint;
-	}
-
-	public void setIsIndentStrategyAHint(boolean isIndentStrategyAHint) {
-		fIsIndentStrategyAHint = isIndentStrategyAHint;
-	}
-
-	public boolean isWhitespaceStrategyAHint() {
-		return fIsWhitespaceStrategyAHint;
-	}
-
-	public void setIsWhitespaceStrategyAHint(boolean isWhitespaceStrategyAHint) {
-		fIsWhitespaceStrategyAHint = isWhitespaceStrategyAHint;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/XMLFormattingPreferences.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/XMLFormattingPreferences.java
deleted file mode 100644
index 78711d9..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/XMLFormattingPreferences.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.formatter;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
-
-public class XMLFormattingPreferences {
-	public final static String PRESERVE = XMLFormattingConstraints.PRESERVE;
-	public final static String COLLAPSE = XMLFormattingConstraints.COLLAPSE;
-	public final static String IGNORE = XMLFormattingConstraints.IGNORE;
-
-	public final static String INDENT = XMLFormattingConstraints.INDENT;
-	public final static String NEW_LINE = XMLFormattingConstraints.NEW_LINE;
-	public final static String INLINE = XMLFormattingConstraints.INLINE;
-
-	private int fMaxLineWidth = 72;
-	private boolean fAlignFinalBracket = false;
-	private boolean fSpaceBeforeEmptyCloseTag = true;
-	private boolean fIndentMultipleAttributes = false;
-	private String fPCDataWhitespaceStrategy = XMLFormattingConstraints.PRESERVE;
-	private String fTextIndentStrategy = XMLFormattingConstraints.INLINE;
-	private String fTextWhitespaceStrategy = XMLFormattingConstraints.COLLAPSE;
-	private String fElementIndentStrategy = XMLFormattingConstraints.INDENT;
-	private String fElementWhitespaceStrategy = XMLFormattingConstraints.IGNORE;
-	private String fMixedIndentStrategy = XMLFormattingConstraints.INDENT;
-	private String fMixedWhitespaceStrategy = XMLFormattingConstraints.IGNORE;
-	private String fOneIndent = "\t"; //$NON-NLS-1$
-	private boolean fClearAllBlankLines = false;
-
-	public XMLFormattingPreferences() {
-		Preferences preferences = XMLCorePlugin.getDefault().getPluginPreferences();
-		if (preferences != null) {
-			setMaxLineWidth(preferences.getInt(XMLCorePreferenceNames.LINE_WIDTH));
-			setIndentMultipleAttributes(preferences.getBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
-			setAlignFinalBracket(preferences.getBoolean(XMLCorePreferenceNames.ALIGN_END_BRACKET));
-			setSpaceBeforeEmptyCloseTag(preferences.getBoolean(XMLCorePreferenceNames.SPACE_BEFORE_EMPTY_CLOSE_TAG));
-			
-			boolean preservepcdata = preferences.getBoolean(XMLCorePreferenceNames.PRESERVE_CDATACONTENT);
-			if (preservepcdata)
-				fPCDataWhitespaceStrategy = XMLFormattingPreferences.PRESERVE;
-			else
-				fPCDataWhitespaceStrategy = XMLFormattingPreferences.COLLAPSE;
-
-			char indentChar = ' ';
-			String indentCharPref = preferences.getString(XMLCorePreferenceNames.INDENTATION_CHAR);
-			if (XMLCorePreferenceNames.TAB.equals(indentCharPref)) {
-				indentChar = '\t';
-			}
-			int indentationWidth = preferences.getInt(XMLCorePreferenceNames.INDENTATION_SIZE);
-
-			StringBuffer indent = new StringBuffer();
-			for (int i = 0; i < indentationWidth; i++) {
-				indent.append(indentChar);
-			}
-			setOneIndent(indent.toString());
-			setClearAllBlankLines(preferences.getBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
-		}
-	}
-
-	public int getMaxLineWidth() {
-		return fMaxLineWidth;
-	}
-
-	public boolean getAlignFinalBracket() {
-		return fAlignFinalBracket;
-	}
-
-	public boolean getSpaceBeforeEmptyCloseTag() {
-		return fSpaceBeforeEmptyCloseTag;
-	}
-	
-	public boolean getIndentMultipleAttributes() {
-		return fIndentMultipleAttributes;
-	}
-
-	public String getPCDataWhitespaceStrategy() {
-		return fPCDataWhitespaceStrategy;
-	}
-
-	public String getTextIndentStrategy() {
-		return fTextIndentStrategy;
-	}
-
-	public String getTextWhitespaceStrategy() {
-		return fTextWhitespaceStrategy;
-	}
-
-	public String getElementIndentStrategy() {
-		return fElementIndentStrategy;
-	}
-
-	public String getElementWhitespaceStrategy() {
-		return fElementWhitespaceStrategy;
-	}
-	
-	public void setSpaceBeforeEmptyCloseTag(boolean spaceBeforeEmptyCloseTag) {
-		fSpaceBeforeEmptyCloseTag = spaceBeforeEmptyCloseTag;
-	}
-
-	public void setIndentMultipleAttributes(boolean indentMultipleAttributes) {
-		fIndentMultipleAttributes = indentMultipleAttributes;
-	}
-
-	public void setPCDataWhitespaceStrategy(String dataWhitespaceStrategy) {
-		fPCDataWhitespaceStrategy = dataWhitespaceStrategy;
-	}
-
-	public void setAlignFinalBracket(boolean alignFinalBracket) {
-		fAlignFinalBracket = alignFinalBracket;
-	}
-
-	public String getMixedIndentStrategy() {
-		return fMixedIndentStrategy;
-	}
-
-	public void setMixedIndentStrategy(String mixedIndentStrategy) {
-		fMixedIndentStrategy = mixedIndentStrategy;
-	}
-
-	public String getMixedWhitespaceStrategy() {
-		return fMixedWhitespaceStrategy;
-	}
-
-	public void setMixedWhitespaceStrategy(String mixedWhitespaceStrategy) {
-		fMixedWhitespaceStrategy = mixedWhitespaceStrategy;
-	}
-
-	public String getOneIndent() {
-		return fOneIndent;
-	}
-
-	protected void setMaxLineWidth(int maxLineWidth) {
-		fMaxLineWidth = maxLineWidth;
-	}
-
-	protected void setOneIndent(String oneIndent) {
-		fOneIndent = oneIndent;
-	}
-
-	public boolean getClearAllBlankLines() {
-		return fClearAllBlankLines;
-	}
-
-	public void setClearAllBlankLines(boolean clearAllBlankLines) {
-		fClearAllBlankLines = clearAllBlankLines;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/EmbeddedXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/EmbeddedXML.java
deleted file mode 100644
index 566b6ef..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/EmbeddedXML.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.modelhandler;
-
-import java.util.ArrayList;
-import java.util.List;
-
-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.model.FactoryRegistry;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryAdapterFactoryForEmbeddedXML;
-
-
-public class EmbeddedXML implements EmbeddedTypeHandler {
-
-	private static List supportedMimeTypes;
-	public String ContentTypeID_EmbeddedXML = "org.eclipse.wst.xml.core.contenttype.EmbeddedXML"; //$NON-NLS-1$
-
-	/**
-	 * Constructor for EmbeddedXML.
-	 */
-	public EmbeddedXML() {
-		super();
-	}
-
-	/*
-	 * @see EmbeddedContentType#getAdapterFactories()
-	 */
-	public List getAdapterFactories() {
-		List factories = new ArrayList();
-		factories.add(new ModelQueryAdapterFactoryForEmbeddedXML());
-		// factories.addAll(PluginContributedFactoryReader.getInstance().getFactories(this));
-		return factories;
-	}
-
-	/**
-	 * @see EmbeddedContentType#getFamilyId()
-	 */
-	public String getFamilyId() {
-		return ModelHandlerForXML.AssociatedContentTypeID;
-	}
-
-	public List getSupportedMimeTypes() {
-		if (supportedMimeTypes == null) {
-			supportedMimeTypes = new ArrayList();
-			supportedMimeTypes.add("application/xml"); //$NON-NLS-1$
-			supportedMimeTypes.add("text/xml"); //$NON-NLS-1$
-		}
-		return supportedMimeTypes;
-	}
-
-	public void initializeFactoryRegistry(FactoryRegistry registry) {
-		//TODO: initialize
-	}
-
-	/*
-	 * @see EmbeddedContentType#initializeParser(RegionParser)
-	 */
-	public void initializeParser(JSPCapableParser parser) {
-		// nothing to initialize for "pure" XML
-		// compare with XHTML
-	}
-
-	public boolean isDefault() {
-		return false;
-	}
-
-	public EmbeddedTypeHandler newInstance() {
-		return new EmbeddedXML();
-	}
-
-	public void uninitializeFactoryRegistry(FactoryRegistry registry) {
-		// TODO: need to undo anything we did in initialize
-
-	}
-
-	public void uninitializeParser(JSPCapableParser parser) {
-		// need to undo anything we did in initialize
-	}
-
-	public boolean canHandleMimeType(String mimeType) {
-		boolean canHandle = getSupportedMimeTypes().contains(mimeType);
-		if(!canHandle) {
-			canHandle = mimeType.endsWith("+xml"); //$NON-NLS-1$
-		}
-		return canHandle;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/ModelHandlerForXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/ModelHandlerForXML.java
deleted file mode 100644
index f4bdf3c..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/ModelHandlerForXML.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.modelhandler;
-
-import org.eclipse.wst.sse.core.internal.document.IDocumentCharsetDetector;
-import org.eclipse.wst.sse.core.internal.document.IDocumentLoader;
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.AbstractModelHandler;
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.IModelHandler;
-import org.eclipse.wst.sse.core.internal.provisional.IModelLoader;
-import org.eclipse.wst.xml.core.internal.encoding.XMLDocumentCharsetDetector;
-import org.eclipse.wst.xml.core.internal.encoding.XMLDocumentLoader;
-
-
-/**
- * Provides generic XML model handling. It is also marked as the default
- * content type handler. There should be only one implementation of the
- * default.
- */
-public class ModelHandlerForXML extends AbstractModelHandler implements IModelHandler {
-	/**
-	 * Needs to match what's in plugin registry. In fact, can be overwritten
-	 * at run time with what's in registry! (so should never be 'final')
-	 */
-	static String AssociatedContentTypeID = "org.eclipse.core.runtime.xml"; //$NON-NLS-1$
-	/**
-	 * Needs to match what's in plugin registry. In fact, can be overwritten
-	 * at run time with what's in registry! (so should never be 'final')
-	 */
-	private static String ModelHandlerID = "org.eclipse.wst.xml.core.modelhandler"; //$NON-NLS-1$
-
-	public ModelHandlerForXML() {
-		super();	
-		setId(ModelHandlerID);
-		setAssociatedContentTypeId(AssociatedContentTypeID);
-	}
-
-	public IDocumentLoader getDocumentLoader() {
-		return new XMLDocumentLoader();
-	}
-
-	public IDocumentCharsetDetector getEncodingDetector() {
-		return new XMLDocumentCharsetDetector();
-	}
-
-	public IModelLoader getModelLoader() {
-		return new XMLModelLoader();
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/XMLModelLoader.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/XMLModelLoader.java
deleted file mode 100644
index ecf9223..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/XMLModelLoader.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.modelhandler;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.sse.core.internal.PropagatingAdapter;
-import org.eclipse.wst.sse.core.internal.document.IDocumentLoader;
-import org.eclipse.wst.sse.core.internal.model.AbstractModelLoader;
-import org.eclipse.wst.sse.core.internal.provisional.IModelLoader;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.xml.core.internal.DebugAdapterFactory;
-import org.eclipse.wst.xml.core.internal.document.DOMModelImpl;
-import org.eclipse.wst.xml.core.internal.encoding.XMLDocumentLoader;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryAdapterFactoryForXML;
-import org.eclipse.wst.xml.core.internal.propagate.PropagatingAdapterFactoryImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-
-
-/**
- * This class reads an XML file and creates an XML Structured Model.
- *  
- */
-public class XMLModelLoader extends AbstractModelLoader {
-
-	//	private static final String STR_ENCODING = "encoding"; //$NON-NLS-1$
-
-	/**
-	 * XMLLoader constructor comment.
-	 */
-	public XMLModelLoader() {
-		super();
-	}
-
-	public List getAdapterFactories() {
-		List result = new ArrayList();
-		INodeAdapterFactory factory = null;
-		factory = new ModelQueryAdapterFactoryForXML();
-		result.add(factory);
-		// Does XML need propagating adapter? Or just JSP?
-		factory = new PropagatingAdapterFactoryImpl();
-		result.add(factory);
-		return result;
-	}
-
-	public IDocumentLoader getDocumentLoader() {
-		if (documentLoaderInstance == null) {
-			documentLoaderInstance = new XMLDocumentLoader();
-		}
-		return documentLoaderInstance;
-	}
-
-	public IModelLoader newInstance() {
-		return new XMLModelLoader();
-	}
-
-	public IStructuredModel newModel() {
-		return new DOMModelImpl();
-	}
-
-	protected void preLoadAdapt(IStructuredModel structuredModel) {
-		super.preLoadAdapt(structuredModel);
-		IDOMModel domModel = (IDOMModel) structuredModel;
-		// 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.
-		((INodeNotifier) domModel.getDocument()).getAdapterFor(PropagatingAdapter.class);
-
-		if (Debug.debugNotificationAndEvents) {
-			PropagatingAdapter propagatingAdapter = (PropagatingAdapter) ((INodeNotifier) domModel.getDocument()).getAdapterFor(PropagatingAdapter.class);
-			propagatingAdapter.addAdaptOnCreateFactory(new DebugAdapterFactory());
-		}
-
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryAdapterFactoryForEmbeddedXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryAdapterFactoryForEmbeddedXML.java
deleted file mode 100644
index 805a9c1..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryAdapterFactoryForEmbeddedXML.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.modelquery;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManager;
-import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter;
-
-
-public class ModelQueryAdapterFactoryForEmbeddedXML extends ModelQueryAdapterFactoryForXML {
-
-
-	/**
-	 * Constructor for ModelQueryAdapterFactoryForEmbeddedXML.
-	 */
-	public ModelQueryAdapterFactoryForEmbeddedXML() {
-		super(ModelQueryAdapter.class, false);
-	}
-
-	protected void configureDocumentManager(CMDocumentManager mgr) {
-		super.configureDocumentManager(mgr);
-		mgr.setPropertyEnabled(CMDocumentManager.PROPERTY_ASYNC_LOAD, true);
-	}
-	
-	/**
-	 * ISSUE: this "forces" a new one to always be created/returned, 
-	 * not "cached" on the node. That seems incorrect. 
-	 * Simply using shouldRegisterFalse should work, except, 
-	 * there might have been one there that someone else already 
-	 * explicitly put there, so this is only way I know to 
-	 * override that. Especially complicated here since a number
-	 * of adapters are for ModelQueryAdapter.class.
-	 */
-	public INodeAdapter adapt(INodeNotifier object) {
-		return adaptNew(object);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryAdapterFactoryForXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryAdapterFactoryForXML.java
deleted file mode 100644
index cbb4add..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryAdapterFactoryForXML.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.modelquery;
-
-
-
-import java.io.File;
-import java.net.URI;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.sse.core.internal.provisional.AbstractAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.IModelStateListener;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter;
-import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapterImpl;
-
-
-public class ModelQueryAdapterFactoryForXML extends AbstractAdapterFactory {
-
-	protected ModelQueryAdapterImpl modelQueryAdapterImpl;
-	IStructuredModel stateNotifier = null;
-	private InternalModelStateListener internalModelStateListener;
-
-	/**
-	 * ModelQueryAdapterFactoryForXML constructor comment.
-	 */
-	public ModelQueryAdapterFactoryForXML() {
-		this(ModelQueryAdapter.class, true);
-	}
-
-	/**
-	 * ModelQueryAdapterFactoryForXML constructor comment.
-	 * 
-	 * @param adapterKey
-	 *            java.lang.Object
-	 * @param registerAdapters
-	 *            boolean
-	 */
-	protected ModelQueryAdapterFactoryForXML(Object adapterKey, boolean registerAdapters) {
-		super(adapterKey, registerAdapters);
-	}
-
-	class InternalModelStateListener implements IModelStateListener {
-
-		/**
-		 * @see IModelStateListener#modelAboutToBeChanged(IStructuredModel)
-		 */
-		public void modelAboutToBeChanged(IStructuredModel model) {
-		}
-
-		/**
-		 * @see IModelStateListener#modelChanged(IStructuredModel)
-		 */
-		public void modelChanged(IStructuredModel model) {
-		}
-
-		/**
-		 * @see IModelStateListener#modelDirtyStateChanged(IStructuredModel,
-		 *      boolean)
-		 */
-		public void modelDirtyStateChanged(IStructuredModel model, boolean isDirty) {
-		}
-
-		/**
-		 * @see IModelStateListener#modelResourceDeleted(IStructuredModel)
-		 */
-		public void modelResourceDeleted(IStructuredModel model) {
-		}
-
-		/**
-		 * @see IModelStateListener#modelResourceMoved(IStructuredModel,
-		 *      IStructuredModel)
-		 */
-		public void modelResourceMoved(IStructuredModel oldModel, IStructuredModel newModel) {
-			stateNotifier.removeModelStateListener(this);
-			stateNotifier = newModel;
-			updateResolver(stateNotifier);
-			stateNotifier.addModelStateListener(this);
-		}
-
-		public void modelAboutToBeReinitialized(IStructuredModel structuredModel) {
-			// TODO Auto-generated method stub
-
-		}
-
-		public void modelReinitialized(IStructuredModel structuredModel) {
-			updateResolver(structuredModel);
-
-		}
-
-
-	}
-
-	protected boolean autoLoadCM() {
-		// until the existence of a CMDocumentRequesterFactory to create the
-		// load requests,
-		// return true
-		return true;
-	}
-
-	protected void configureDocumentManager(CMDocumentManager mgr) {
-		// this depends on there being a CMDocumentRequesterFactory installed
-		mgr.setPropertyEnabled(CMDocumentManager.PROPERTY_AUTO_LOAD, autoLoadCM());
-	}
-
-	public INodeAdapterFactory copy() {
-
-		return new ModelQueryAdapterFactoryForXML(getAdapterKey(), isShouldRegisterAdapter());
-	}
-
-	/**
-	 * createAdapter method comment.
-	 */
-	protected INodeAdapter createAdapter(INodeNotifier target) {
-
-		if (org.eclipse.wst.sse.core.internal.util.Debug.displayInfo)
-			System.out.println("-----------------------ModelQueryAdapterFactoryForXML.createAdapter" + target); //$NON-NLS-1$
-		if (modelQueryAdapterImpl == null) {
-			if (target instanceof IDOMNode) {
-				IDOMNode xmlNode = (IDOMNode) target;
-				IStructuredModel model = xmlNode.getModel();
-				stateNotifier = xmlNode.getModel();
-				stateNotifier.addModelStateListener(getInternalModelStateListener());
-
-				org.eclipse.wst.sse.core.internal.util.URIResolver resolver = model.getResolver();
-				if (Debug.displayInfo)
-					System.out.println("----------------ModelQueryAdapterFactoryForXML... baseLocation : " + resolver.getFileBaseLocation()); //$NON-NLS-1$
-
-				/**
-				 * XMLCatalogIdResolver currently requires a filesystem
-				 * location string. Customarily this will be what is in the
-				 * deprecated SSE URIResolver and required by the Common URI
-				 * Resolver.
-				 */
-				URIResolver idResolver = null;
-				if (resolver != null) {
-					idResolver = new XMLCatalogIdResolver(resolver.getFileBaseLocation(), resolver);
-				}
-				else {
-					/*
-					 * 203649 - this block may be necessary due to ordering of
-					 * setting the resolver into the model
-					 */
-					String baseLocation = null;
-					String modelsBaseLocation = model.getBaseLocation();
-					if (modelsBaseLocation != null) {
-						File file = new Path(modelsBaseLocation).toFile();
-						if (file.exists()) {
-							baseLocation = file.getAbsolutePath();
-						}
-						else {
-							IPath basePath = new Path(model.getBaseLocation());
-							IResource derivedResource = null;
-							if (basePath.segmentCount() > 1)
-								derivedResource = ResourcesPlugin.getWorkspace().getRoot().getFile(basePath);
-							else
-								derivedResource = ResourcesPlugin.getWorkspace().getRoot().getProject(basePath.segment(0));
-							IPath derivedPath = derivedResource.getLocation();
-							if (derivedPath != null) {
-								baseLocation = derivedPath.toString();
-							}
-							else {
-								URI uri = derivedResource.getLocationURI();
-								if (uri != null) {
-									baseLocation = uri.toString();
-								}
-							}
-						}
-						if(baseLocation == null) {
-							baseLocation = modelsBaseLocation;
-						}
-					}
-					idResolver = new XMLCatalogIdResolver(baseLocation, null);
-				}
-
-				CMDocumentCache cmDocumentCache = new CMDocumentCache();
-				ModelQuery modelQuery = new XMLModelQueryImpl(cmDocumentCache, idResolver);
-
-				// cs todo...
-				// for now we create a CMDocumentCache on a 'per editor' basis
-				// in the future we need to support a CMDocumentCache that is
-				// shared between editors
-				// nsd comment: may not be appropriate depending on
-				CMDocumentManager documentManager = modelQuery.getCMDocumentManager();
-				if (documentManager != null) {
-					configureDocumentManager(documentManager);
-				}
-				modelQueryAdapterImpl = new ModelQueryAdapterImpl(cmDocumentCache, modelQuery, idResolver);
-			}
-		}
-		return modelQueryAdapterImpl;
-	}
-
-	public void release() {
-		super.release();
-		if (stateNotifier != null)
-			stateNotifier.removeModelStateListener(getInternalModelStateListener());
-		stateNotifier = null;
-		if (modelQueryAdapterImpl != null)
-			modelQueryAdapterImpl.release();
-	}
-
-	protected void updateResolver(IStructuredModel model) {
-
-		String baseLocation = model.getBaseLocation();
-		IFile baseFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(model.getBaseLocation()));
-		if (baseFile != null) {
-			if (baseFile.getLocation() != null) {
-				baseLocation = baseFile.getLocation().toString();
-			}
-			if (baseLocation == null && baseFile.getLocationURI() != null) {
-				baseLocation = baseFile.getLocationURI().toString();
-			}
-			if (baseLocation == null) {
-				baseLocation = baseFile.getFullPath().toString();
-			}
-		}
-		else {
-			baseLocation = model.getBaseLocation();
-		}
-		modelQueryAdapterImpl.setIdResolver(new XMLCatalogIdResolver(baseLocation, model.getResolver()));
-	}
-
-	private final InternalModelStateListener getInternalModelStateListener() {
-		if (internalModelStateListener == null) {
-			internalModelStateListener = new InternalModelStateListener();
-		}
-		return internalModelStateListener;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryUtil.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryUtil.java
deleted file mode 100644
index eae3e89..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryUtil.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.modelquery;
-
-
-
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter;
-import org.w3c.dom.Document;
-
-
-/**
- * This class is used to associate ModelQuery (and related data) with a
- * Document (or IStructuredModel).
- */
-public class ModelQueryUtil {
-
-	public static CMDocumentCache getCMDocumentCache(Document node) {
-		ModelQueryAdapter modelQueryAdapter = getModelQueryAdapter(node);
-		return modelQueryAdapter != null ? modelQueryAdapter.getCMDocumentCache() : null;
-	}
-
-	public static URIResolver getIdResolver(Document node) {
-		ModelQueryAdapter modelQueryAdapter = getModelQueryAdapter(node);
-		return modelQueryAdapter != null ? modelQueryAdapter.getIdResolver() : null;
-	}
-
-	public static ModelQuery getModelQuery(Document node) {
-		ModelQueryAdapter modelQueryAdapter = getModelQueryAdapter(node);
-		return modelQueryAdapter != null ? modelQueryAdapter.getModelQuery() : null;
-	}
-
-	public static ModelQuery getModelQuery(IStructuredModel model) {
-		if ((!(model instanceof IDOMModel)) || model == null)
-			return null;
-		return getModelQuery(((IDOMModel) model).getDocument());
-	}
-
-	public static ModelQueryAdapter getModelQueryAdapter(Document node) {
-		ModelQueryAdapter result = null;
-
-		if (node instanceof INodeNotifier) {
-			INodeNotifier notifier = (INodeNotifier) node;
-			result = (ModelQueryAdapter) notifier.getAdapterFor(ModelQueryAdapter.class);
-		}
-
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLCatalogIdResolver.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLCatalogIdResolver.java
deleted file mode 100644
index 61852f9..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLCatalogIdResolver.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.modelquery;
-
-
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.sse.core.internal.util.URIResolver;
-import org.eclipse.wst.xml.core.internal.Logger;
-
-
-// TODO cs : remove this class and utilize the common URIResolver directly
-// We need to update some of the ModelQuery related code to pass the
-// 'baseLocation' thru
-// and then there'll be node need for this class.
-// 
-public class XMLCatalogIdResolver implements org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver {
-	protected String resourceLocation;
-
-	protected URIResolver uriresolver;
-
-	private XMLCatalogIdResolver() {
-		super();
-	}
-
-	private XMLCatalogIdResolver(String resourceLocation) {
-		this();
-		this.resourceLocation = resourceLocation;
-	}
-
-	public XMLCatalogIdResolver(String resourceLocation, URIResolver uriresolver) {
-		this(resourceLocation);
-// this constructor should not be called with two null arguments.
-// If so, an assert will occur later when resolve is called. 
-// See 118371 XMLCatalogIdResolver#resolve throws AssertionFailedException
-//
-// but, I'm not enabling this check now due to lateness in cycle. 		
-//		if (resourceLocation == null && uriresolver == null) {
-//			throw new IllegalArgumentException("both location and resolver can not be null");
-//		}
-		this.uriresolver = uriresolver;
-	}
-
-
-	/**
-	 * Gets the resourceLocation.
-	 * 
-	 * @return Returns a String
-	 */
-	private String getResourceLocation() {
-		String location = resourceLocation;
-		if (location == null) {
-			if (uriresolver != null)
-				location = uriresolver.getFileBaseLocation();
-		}
-		return location;
-	}
-
-
-	public String resolve(String base, String publicId, String systemId) {
-
-		String result = systemId;
-		if (base == null) {
-			base = getResourceLocation();
-			// bug 117320, ensure base URI is 'protocal' qualified before
-			// passing it thru to URIResolver
-			// bug 117424, we should be able to assume that the base location
-			// is non-null
-
-			/**
-			 * We shouldn't assert a failure because the catalog does not
-			 * require a base location to operate and it will be called from
-			 * non-file-based scenarios.
-			 * 
-			 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=206176
-			 */
-			// Assert.isNotNull(base, "Base location is expected to be non null."); //$NON-NLS-1$
-			if (base != null) {
-				base = URIHelper.addImpliedFileProtocol(base);
-			}
-		}
-		result = URIResolverPlugin.createResolver().resolve(base, publicId, systemId);
-		return result;
-	}
-
-	public String resolvePhysicalLocation(String baseLocation, String publicId, String logicalLocation) {
-		// This class should never be called to perform physical resolution!
-		// If it does we should log it as an error
-		Logger.log(Logger.ERROR_DEBUG, "XMLCatalogIDResolver.resolvePhysicalLocation() called unexpectedly"); //$NON-NLS-1$
-		return logicalLocation;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLModelQueryAssociationProvider.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLModelQueryAssociationProvider.java
deleted file mode 100644
index 74d14ab..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLModelQueryAssociationProvider.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.modelquery;
-
-
-
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.XMLAssociationProvider;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
-import org.w3c.dom.Document;
-
-/**
- * XMLModelQueryAssociationProvider
- * 
- * This added and/or made public specifically for experimentation. It will
- * change as this functionality becomes API. See
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=119084
- * 
- */
-public class XMLModelQueryAssociationProvider extends XMLAssociationProvider {
-
-	protected URIResolver idResolver;
-
-	public XMLModelQueryAssociationProvider(CMDocumentCache cache, URIResolver idResolver) {
-		super(cache);
-		this.idResolver = idResolver;
-	}
-
-	protected String resolveGrammarURI(Document document, String publicId, String systemId) {
-
-		// CS : spooky code alert!
-		// this look really strange because we're passing null in as the first
-		// argument
-		// however we're assuming the use of a 'fudged' URIResolver that knows
-		// the
-		// correct baseLocation and will call to the URIResolver framework
-		// properly
-
-		// CS : note that we should never call resolvePhysical at this point.
-		// Physical resolution should only occur when we're interesting to
-		// opening the actual stream.
-		// The CMDocumentFactory implementation would be responsible for
-		// calling resolvePhysical.
-		// All we need to do here is return a 'logical' URI
-
-		if (idResolver == null)
-			return null;
-		return idResolver.resolve(null, publicId, systemId);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLModelQueryImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLModelQueryImpl.java
deleted file mode 100644
index 7bfa001..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLModelQueryImpl.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.modelquery;
-
-
-
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.ModelQueryImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
-import org.eclipse.wst.xml.core.internal.ssemodelquery.MovableModelQuery;
-
-
-public class XMLModelQueryImpl extends ModelQueryImpl implements MovableModelQuery {
-
-	protected CMDocumentCache fCache = null;
-
-	public XMLModelQueryImpl(CMDocumentCache cache, URIResolver idResolver) {
-		super(new XMLModelQueryAssociationProvider(cache, idResolver));
-		fCache = cache;
-	}
-
-	/**
-	 * @see MovableModelQuery#setIdResolver(URIResolver)
-	 */
-	public void setIdResolver(URIResolver newIdResolver) {
-		modelQueryAssociationProvider = new XMLModelQueryAssociationProvider(fCache, newIdResolver);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/BlockStructuredDocumentRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/BlockStructuredDocumentRegion.java
deleted file mode 100644
index 7754a80..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/BlockStructuredDocumentRegion.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser;
-
-
-
-import org.eclipse.wst.sse.core.internal.ltk.parser.IBlockedStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocumentRegion;
-
-
-public class BlockStructuredDocumentRegion extends BasicStructuredDocumentRegion implements IBlockedStructuredDocumentRegion {
-
-	private String partitionType;
-
-	/**
-	 * A BlockStructuredDocumentRegion is like a IStructuredDocumentRegion,
-	 * but is the result of a "block scan".
-	 */
-	public BlockStructuredDocumentRegion() {
-		super();
-	}
-
-	public String getPartitionType() {
-		if (partitionType == null) {
-			// eventually can look up surroundingTag name
-			// but this field is primarily entended for future
-			// extensibility. This may change.
-			//partitionType = "org.eclipse.wst.sse.core." + tagname;
-		}
-		return partitionType;
-	}
-
-	public void setPartitionType(String partitionType) {
-		this.partitionType = partitionType;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/ContextRegionContainer.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/ContextRegionContainer.java
deleted file mode 100644
index a13f814..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/ContextRegionContainer.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser;
-
-
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.internal.text.TextRegionListImpl;
-import org.eclipse.wst.xml.core.internal.Logger;
-
-
-public class ContextRegionContainer implements ITextRegionContainer {
-	protected int length;
-	protected ITextRegionCollection parent;
-	protected ITextRegionList regions;
-	protected int start;
-	protected int textLength;
-	protected String type;
-
-	public ContextRegionContainer() {
-		super();
-		regions = new TextRegionListImpl();
-
-	}
-
-	/**
-	 * these "deep" parenting is not normal, but just in case.
-	 */
-	private IStructuredDocument _getParentDocument() {
-		// go up enough parents to get to document
-		ITextRegionCollection parent = getParent();
-		while (!(parent instanceof IStructuredDocumentRegion)) {
-			// would be an error not to be container, but
-			// won't check for it now
-			parent = ((ITextRegionContainer) parent).getParent();
-		}
-		return ((IStructuredDocumentRegion) parent).getParentDocument();
-	}
-
-
-	public void adjust(int i) {
-
-		start += i;
-		// I erroneously added length and textLength
-		// TODO: may want to rename this method to adjustStart
-		//length += i;
-		//textLength += i;
-
-	}
-
-	public void adjustLength(int i) {
-		length += i;
-	}
-
-	public void adjustStart(int i) {
-		start += i;
-	}
-
-
-	public void adjustTextLength(int i) {
-		textLength += i;
-
-	}
-
-	public boolean containsOffset(int i) {
-
-		return getStartOffset() <= i && i < getEndOffset();
-	}
-
-	public boolean containsOffset(ITextRegion containedRegion, int offset) {
-		return getStartOffset(containedRegion) <= offset && offset < getEndOffset(containedRegion);
-	}
-
-	/**
-	 * This method is just to equate positions. clients may (will probably)
-	 * still need to make calls to equate regions, parent, etc.
-	 */
-	public void equatePositions(ITextRegion region) {
-		start = region.getStart();
-		length = region.getLength();
-		textLength = region.getTextLength();
-	}
-
-	public int getEnd() {
-		return start + length;
-	}
-
-	public int getEndOffset() {
-		// our startOffset take into account our parent, and our start
-		return getStartOffset() + getLength();
-	}
-
-	public int getEndOffset(ITextRegion containedRegion) {
-		return getStartOffset(containedRegion) + containedRegion.getLength();
-	}
-
-	public ITextRegion getFirstRegion() {
-		return getRegions().get(0);
-	}
-
-	public String getFullText() {
-		return getParent().getFullText(this);
-	}
-
-	public String getFullText(org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion aRegion) {
-		// Must be proxied here since aRegion should always be a child of
-		// *this* container and indexed from
-		// this container's offset
-		return parent.getFullText().substring(start + aRegion.getStart(), start + aRegion.getEnd());
-	}
-
-	public ITextRegion getLastRegion() {
-		return getRegions().get(getRegions().size() - 1);
-	}
-
-	public int getLength() {
-		return length;
-	}
-
-
-	public int getNumberOfRegions() {
-		return getRegions().size();
-	}
-
-	public ITextRegionCollection getParent() {
-		return parent;
-	}
-
-	/**
-	 * The parameter offset refers to the overall offset in the document.
-	 */
-	public ITextRegion getRegionAtCharacterOffset(int offset) {
-		ITextRegion result = null;
-		if (regions != null) {
-			// transform the requested offset to the "scale" that
-			// regions are stored in, which are all relative to the
-			// start point.
-			//int transformedOffset = offset - getStartOffset();
-			//
-			int length = getRegions().size();
-			for (int i = 0; i < length; i++) {
-				ITextRegion region = getRegions().get(i);
-				if (org.eclipse.wst.sse.core.internal.util.Debug.debugStructuredDocument) {
-					System.out.println("region(s) in IStructuredDocumentRegion::getRegionAtCharacterOffset: " + region); //$NON-NLS-1$
-					System.out.println("       requested offset: " + offset); //$NON-NLS-1$
-					//System.out.println(" transformedOffset: " +
-					// transformedOffset); //$NON-NLS-1$
-					System.out.println("       region start: " + region.getStart()); //$NON-NLS-1$
-					System.out.println("       region end: " + region.getEnd()); //$NON-NLS-1$
-					System.out.println("       region type: " + region.getType()); //$NON-NLS-1$
-					System.out.println("       region class: " + region.getClass()); //$NON-NLS-1$
-
-				}
-				if ((getStartOffset(region) <= offset) && (offset < getEndOffset(region))) {
-					result = region;
-					break;
-				}
-			}
-		}
-		return result;
-	}
-
-	public ITextRegionList getRegions() {
-		return regions;
-	}
-
-	public int getStart() {
-		return start;
-	}
-
-	public int getStartOffset() {
-		return getParent().getStartOffset() + getStart();
-	}
-
-	public int getStartOffset(ITextRegion containedRegion) {
-		// it is an error to pass null to this method
-		// ISSUE: need better "spec" on error behavior: 
-		// for now will return zero as this will roughly 
-		// work for some cases (and avoid NPE).
-		if (containedRegion == null) {
-			return getStartOffset();
-		}
-		return getStartOffset() + containedRegion.getStart();
-	}
-
-	/**
-	 * same as getFullText for this region type ... do we need to take white
-	 * space off?
-	 */
-
-	public String getText() {
-		String result = null;
-		try {
-			IStructuredDocument parentDocument = _getParentDocument();
-			result = parentDocument.get(start, length);
-		} catch (BadLocationException e) {
-			Logger.logException("program error: unreachable exception", e); //$NON-NLS-1$
-		}
-		return result;
-	}
-
-	public String getText(org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion aRegion) {
-		// Must be proxied here since aRegion should always be a child of
-		// *this* container and indexed from
-		// this container's offset
-		return parent.getText().substring(start + aRegion.getStart(), start + aRegion.getTextEnd());
-	}
-
-	public int getTextEnd() {
-		return start + textLength;
-	}
-
-	public int getTextEndOffset() {
-		ITextRegion region = regions.get(regions.size() - 1);
-		// our startOffset take into account our parent, and our start
-		// (pa) 10/4 changed to be based on text end
-		//           it used to return incorrect value for embedded region containers
-		//
-
-		// TODO CRITICAL -- need to re-work this work around, so doesn't
-		// depend on XMLRegionContext
-		//		// this is a workaround for 226823///////////
-		//		for (int i = regions.size() - 1; i >= 0 && region.getType() ==
-		// XMLRegionContext.WHITE_SPACE; i--)
-		//			region = (ITextRegion) regions.get(i);
-		//		/////////////////////////////////////////////
-
-		return getStartOffset() + region.getTextEnd();
-	}
-
-	public int getTextEndOffset(ITextRegion containedRegion) {
-		int result = 0;
-		if (regions != null) {
-			int length = getRegions().size();
-			for (int i = 0; i < length; i++) {
-				ITextRegion region = getRegions().get(i);
-				if (region == containedRegion) {
-					result = getStartOffset(region) + region.getTextEnd();
-					break;
-				}
-			}
-		}
-		return result;
-	}
-
-	public int getTextLength() {
-		return textLength;
-	}
-
-	public String getType() {
-		return type;
-	}
-
-	public void setLength(int i) {
-		length = i;
-	}
-
-	public void setParent(ITextRegionCollection parentRegion) {
-		parent = parentRegion;
-	}
-
-	public void setRegions(ITextRegionList containedRegions) {
-		regions = containedRegions;
-	}
-
-	public void setStart(int i) {
-		start = i;
-	}
-
-	public void setTextLength(int i) {
-		textLength = i;
-	}
-
-	public void setType(String string) {
-		type = string;
-	}
-
-	public String toString() {
-		String className = getClass().getName();
-		String shortClassName = className.substring(className.lastIndexOf(".") + 1); //$NON-NLS-1$
-		String result = "Container!!! " + shortClassName + "--> " + getType() + ": " + getStart() + "-" + getTextEnd() + (getTextEnd() != getEnd() ? ("/" + getEnd()) : ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-		return result;
-	}
-
-	public StructuredDocumentEvent updateRegion(Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
-		org.eclipse.wst.sse.core.internal.provisional.events.RegionChangedEvent result = null;
-		// FUTURE_TO_DO: need to implement region level parsing in
-		// ITextRegionContainer::updateModel
-		// never being called?
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/IntStack.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/IntStack.java
deleted file mode 100644
index b871545..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/IntStack.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser;
-
-
-
-/*
- * 
- * 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 boolean empty() {
-		return size == 0;
-	}
-
-	public int get(int slot) {
-		return list[slot];
-	}
-
-	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.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/RegionFactory.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/RegionFactory.java
deleted file mode 100644
index 1315a77..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/RegionFactory.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser;
-
-
-
-import org.eclipse.wst.sse.core.internal.parser.ContextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-
-
-public class RegionFactory {
-
-	public RegionFactory() {
-		super();
-	}
-
-	public ITextRegion createToken(ITextRegionContainer parent, String context, int start, int textLength, int length) {
-		return this.createToken(parent, context, start, textLength, length, null, null);
-	}
-
-	public ITextRegion createToken(ITextRegionContainer parent, String context, int start, int textLength, int length, String lang, String surroundingTag) {
-		ITextRegion newRegion = createToken(context, start, textLength, length);
-		// DW, 4/16/2003 token regions no longer have parents
-		//newRegion.setParent(parent);
-		return newRegion;
-	}
-
-	public ITextRegion createToken(String context, int start, int textLength, int length) {
-		return this.createToken(context, start, textLength, length, null, null);
-	}
-
-	public ITextRegion createToken(String context, int start, int textLength, int length, String lang, String surroundingTag) {
-		ITextRegion newRegion = new ContextRegion(context, start, textLength, length);
-		return newRegion;
-
-
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XML10Names.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XML10Names.java
deleted file mode 100644
index af91c63..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XML10Names.java
+++ /dev/null
@@ -1,595 +0,0 @@
-/* The following code was generated by JFlex 1.4 on 2/25/08 10:25 AM */
-
-/*******************************************************************************
- * Copyright (c) 2004,2008 IBM Corporation, and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     kb.huang  - Bug 214416  Dot char is not escaped in XML10Names.jFlex
- *******************************************************************************/
-/*nlsXXX*/
-package org.eclipse.wst.xml.core.internal.parser;
-
-
-
-
-/**
- * This class is a scanner generated by 
- * <a href="http://www.jflex.de/">JFlex</a> 1.4
- * on 2/25/08 10:25 AM from the specification file
- * <tt>XML10Names.jflex</tt>
- */
-public final class XML10Names {
-
-  /** This character denotes the end of file */
-  private static final int YYEOF = -1;
-
-  /** initial size of the lookahead buffer */
-  private static final int ZZ_BUFFERSIZE = 2048;
-
-  /** lexical states */
-  private static final int YYINITIAL = 0;
-
-  /** 
-   * Translates characters to character classes
-   */
-  private static final String ZZ_CMAP_PACKED = 
-    "\12\0\1\3\42\0\1\2\1\2\1\0\12\2\1\1\6\0\32\1"+
-    "\4\0\1\1\1\0\32\1\74\0\1\2\10\0\27\1\1\0\37\1"+
-    "\1\0\72\1\2\0\13\1\2\0\10\1\1\0\65\1\1\0\104\1"+
-    "\11\0\44\1\3\0\2\1\4\0\36\1\70\0\131\1\22\0\7\1"+
-    "\16\0\2\2\56\0\106\2\32\0\2\2\44\0\1\1\1\2\3\1"+
-    "\1\0\1\1\1\0\24\1\1\0\54\1\1\0\7\1\3\0\1\1"+
-    "\1\0\1\1\1\0\1\1\1\0\1\1\1\0\22\1\15\0\14\1"+
-    "\1\0\102\1\1\0\14\1\1\0\44\1\1\0\4\2\11\0\65\1"+
-    "\2\0\2\1\2\0\2\1\3\0\34\1\2\0\10\1\2\0\2\1"+
-    "\67\0\46\1\2\0\1\1\7\0\46\1\12\0\21\2\1\0\27\2"+
-    "\1\0\3\2\1\0\1\2\1\0\2\2\1\0\1\2\13\0\33\1"+
-    "\5\0\3\1\56\0\32\1\5\0\1\2\12\1\10\2\15\0\12\2"+
-    "\6\0\1\2\107\1\2\0\5\1\1\0\17\1\1\0\4\1\1\0"+
-    "\1\1\17\2\2\1\2\2\1\0\4\2\2\0\12\2\u0207\0\3\2"+
-    "\1\0\65\1\2\0\1\2\1\1\20\2\3\0\4\2\3\0\12\1"+
-    "\2\2\2\0\12\2\21\0\3\2\1\0\10\1\2\0\2\1\2\0"+
-    "\26\1\1\0\7\1\1\0\1\1\3\0\4\1\2\0\1\2\1\0"+
-    "\7\2\2\0\2\2\2\0\3\2\11\0\1\2\4\0\2\1\1\0"+
-    "\3\1\2\2\2\0\12\2\2\1\20\0\1\2\2\0\6\1\4\0"+
-    "\2\1\2\0\26\1\1\0\7\1\1\0\2\1\1\0\2\1\1\0"+
-    "\2\1\2\0\1\2\1\0\5\2\4\0\2\2\2\0\3\2\13\0"+
-    "\4\1\1\0\1\1\7\0\12\2\2\2\3\1\14\0\3\2\1\0"+
-    "\7\1\1\0\1\1\1\0\3\1\1\0\26\1\1\0\7\1\1\0"+
-    "\2\1\1\0\5\1\2\0\1\2\1\1\10\2\1\0\3\2\1\0"+
-    "\3\2\22\0\1\1\5\0\12\2\21\0\3\2\1\0\10\1\2\0"+
-    "\2\1\2\0\26\1\1\0\7\1\1\0\2\1\2\0\4\1\2\0"+
-    "\1\2\1\1\6\2\3\0\2\2\2\0\3\2\10\0\2\2\4\0"+
-    "\2\1\1\0\3\1\4\0\12\2\22\0\2\2\1\0\6\1\3\0"+
-    "\3\1\1\0\4\1\3\0\2\1\1\0\1\1\1\0\2\1\3\0"+
-    "\2\1\3\0\3\1\3\0\10\1\1\0\3\1\4\0\5\2\3\0"+
-    "\3\2\1\0\4\2\11\0\1\2\17\0\11\2\21\0\3\2\1\0"+
-    "\10\1\1\0\3\1\1\0\27\1\1\0\12\1\1\0\5\1\4\0"+
-    "\7\2\1\0\3\2\1\0\4\2\7\0\2\2\11\0\2\1\4\0"+
-    "\12\2\22\0\2\2\1\0\10\1\1\0\3\1\1\0\27\1\1\0"+
-    "\12\1\1\0\5\1\4\0\7\2\1\0\3\2\1\0\4\2\7\0"+
-    "\2\2\7\0\1\1\1\0\2\1\4\0\12\2\22\0\2\2\1\0"+
-    "\10\1\1\0\3\1\1\0\27\1\1\0\20\1\4\0\6\2\2\0"+
-    "\3\2\1\0\4\2\11\0\1\2\10\0\2\1\4\0\12\2\221\0"+
-    "\56\1\1\0\1\1\1\2\2\1\7\2\5\0\6\1\1\2\10\2"+
-    "\1\0\12\2\47\0\2\1\1\0\1\1\2\0\2\1\1\0\1\1"+
-    "\2\0\1\1\6\0\4\1\1\0\7\1\1\0\3\1\1\0\1\1"+
-    "\1\0\1\1\2\0\2\1\1\0\2\1\1\0\1\1\1\2\2\1"+
-    "\6\2\1\0\2\2\1\1\2\0\5\1\1\0\1\2\1\0\6\2"+
-    "\2\0\12\2\76\0\2\2\6\0\12\2\13\0\1\2\1\0\1\2"+
-    "\1\0\1\2\4\0\2\2\10\1\1\0\41\1\7\0\24\2\1\0"+
-    "\6\2\4\0\6\2\1\0\1\2\1\0\25\2\3\0\7\2\1\0"+
-    "\1\2\346\0\46\1\12\0\47\1\11\0\1\1\1\0\2\1\1\0"+
-    "\3\1\1\0\1\1\1\0\2\1\1\0\5\1\51\0\1\1\1\0"+
-    "\1\1\1\0\1\1\13\0\1\1\1\0\1\1\1\0\1\1\3\0"+
-    "\2\1\3\0\1\1\5\0\3\1\1\0\1\1\1\0\1\1\1\0"+
-    "\1\1\1\0\1\1\3\0\2\1\3\0\2\1\1\0\1\1\50\0"+
-    "\1\1\11\0\1\1\2\0\1\1\2\0\2\1\7\0\2\1\1\0"+
-    "\1\1\1\0\7\1\50\0\1\1\4\0\1\1\10\0\1\1\u0c06\0"+
-    "\234\1\4\0\132\1\6\0\26\1\2\0\6\1\2\0\46\1\2\0"+
-    "\6\1\2\0\10\1\1\0\1\1\1\0\1\1\1\0\1\1\1\0"+
-    "\37\1\2\0\65\1\1\0\7\1\1\0\1\1\3\0\3\1\1\0"+
-    "\7\1\3\0\4\1\2\0\6\1\4\0\15\1\5\0\3\1\1\0"+
-    "\7\1\323\0\15\2\4\0\1\2\104\0\1\1\3\0\2\1\2\0"+
-    "\1\1\121\0\3\1\u0e82\0\1\2\1\0\1\1\31\0\11\1\6\2"+
-    "\1\0\5\2\13\0\124\1\4\0\2\2\2\0\2\2\2\0\132\1"+
-    "\1\0\3\2\6\0\50\1\u1cd3\0\u51a6\1\u0c5a\0\u2ba4\1\u285c\0";
-
-  /** 
-   * Translates characters to character classes
-   */
-  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 =
-    "\1\0\1\1\1\2\1\3";
-
-  private static int [] zzUnpackAction() {
-    int [] result = new int[4];
-    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;
-  }
-
-
-  /** 
-   * Translates a state to a row index in the transition table
-   */
-  private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
-
-  private static final String ZZ_ROWMAP_PACKED_0 =
-    "\0\0\0\4\0\10\0\14";
-
-  private static int [] zzUnpackRowMap() {
-    int [] result = new int[4];
-    int offset = 0;
-    offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
-    return result;
-  }
-
-  private static int zzUnpackRowMap(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 high = packed.charAt(i++) << 16;
-      result[j++] = high | packed.charAt(i++);
-    }
-    return j;
-  }
-
-  /** 
-   * The transition table of the DFA
-   */
-  private static final int ZZ_TRANS [] = {
-    1, 2, 1, -1, -1, -1, -1, -1, 3, 2, 
-    2, -1, 3, 3, 3, -1
-  };
-
-  /* error codes */
-  private static final int ZZ_UNKNOWN_ERROR = 0;
-  private static final int ZZ_NO_MATCH = 1;
-//  private static final int ZZ_PUSHBACK_2BIG = 2;
-
-  /* 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"
-  };
-
-  /**
-   * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
-   */
-  private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
-
-  private static final String ZZ_ATTRIBUTE_PACKED_0 =
-    "\1\0\1\11\2\1";
-
-  private static int [] zzUnpackAttribute() {
-    int [] result = new int[4];
-    int offset = 0;
-    offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
-    return result;
-  }
-
-  private static int zzUnpackAttribute(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;
-  }
-
-  /** 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;
-
-  /** number of newlines encountered up to the start of the matched text */
-//  private int yyline;
-
-  /** the number of characters up to the start of the matched text */
-//  private int yychar;
-
-  /**
-   * the number of characters from the last newline up to the start of the 
-   * matched text
-   */
-//  private int yycolumn;
-
-  /** 
-   * 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;
-
-  /* user code: */
-        boolean result;
-        /**
-         * Creates a new scanner
-         */
-        public XML10Names() {
-                this.zzReader = null;
-        }
-
-        public boolean isValidXML10Name(String stringToCheck) {
-                boolean result = false;
-                yyreset(new java.io.StringReader(stringToCheck));
-                try {
-                        result = isValidXML10Name();
-                }
-                catch (java.io.IOException e) {
-                        // should be impossible with strings, but if occurs, just means
-                        // "not"
-                        result = false;
-                }
-                return result;
-        }
-
-
-
-  /**
-   * 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 XML10Names(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 XML10Names(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 < 1218) {
-      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.
-   */
-//  private 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 
-   */
-  private final void yyreset(java.io.Reader reader) {
-    zzReader = reader;
-//    zzAtBOL  = true;
-    zzAtEOF  = false;
-    zzEndRead = zzStartRead = 0;
-    zzCurrentPos = zzMarkedPos = zzPushbackPos = 0;
-//    yyline = yychar = yycolumn = 0;
-    zzLexicalState = YYINITIAL;
-  }
-
-
-  /**
-   * Returns the current lexical state.
-   */
-//  private final int yystate() {
-//    return zzLexicalState;
-//  }
-
-
-  /**
-   * Enters a new lexical state
-   *
-   * @param newState the new lexical state
-   */
-//  private final void yybegin(int newState) {
-//    zzLexicalState = newState;
-//  }
-
-
-  /**
-   * Returns the text matched by the current regular expression.
-   */
-//  private 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
-   */
-//  private final char yycharat(int pos) {
-//    return zzBuffer[zzStartRead+pos];
-//  }
-
-
-  /**
-   * Returns the length of the matched text region.
-   */
-//  private 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()!
-   */
-//  private void yypushback(int number)  {
-//    if ( number > yylength() )
-//      zzScanError(ZZ_PUSHBACK_2BIG);
-//
-//    zzMarkedPos -= number;
-//  }
-
-
-  /**
-   * Resumes scanning until the next regular expression is matched,
-   * the end of input is encountered or an I/O-Error occurs.
-   *
-   * @return      the next token
-   * @exception   java.io.IOException  if any I/O-Error occurs
-   */
-  private boolean isValidXML10Name() throws java.io.IOException {
-    int zzInput;
-    int zzAction;
-
-    // cached fields:
-    int zzCurrentPosL;
-    int zzMarkedPosL;
-    int zzEndReadL = zzEndRead;
-    char [] zzBufferL = zzBuffer;
-    char [] zzCMapL = ZZ_CMAP;
-
-    int [] zzTransL = ZZ_TRANS;
-    int [] zzRowMapL = ZZ_ROWMAP;
-    int [] zzAttrL = ZZ_ATTRIBUTE;
-
-    while (true) {
-      zzMarkedPosL = zzMarkedPos;
-
-      zzAction = -1;
-
-      zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
-  
-      zzState = 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++];
-            }
-          }
-          int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
-          if (zzNext == -1) break zzForAction;
-          zzState = zzNext;
-
-          int zzAttributes = zzAttrL[zzState];
-          if ( (zzAttributes & 1) == 1 ) {
-            zzAction = zzState;
-            zzMarkedPosL = zzCurrentPosL;
-            if ( (zzAttributes & 8) == 8 ) break zzForAction;
-          }
-
-        }
-      }
-
-      // store back cached position
-      zzMarkedPos = zzMarkedPosL;
-
-      switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
-        case 1: 
-          { return false; /* matched wild */
-          }
-        case 4: break;
-        case 2: 
-          { return true; /* exact name */
-          }
-        case 5: break;
-        case 3: 
-          { return false; /* more than name */
-          }
-        case 6: break;
-        default: 
-          if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
-            zzAtEOF = true;
-              { {return false; /* hit end with no match */} }
-          } 
-          else {
-            zzScanError(ZZ_NO_MATCH);
-          }
-      }
-    }
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLSourceParser.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLSourceParser.java
deleted file mode 100644
index 0ada81c..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLSourceParser.java
+++ /dev/null
@@ -1,623 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser;
-
-
-
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.sse.core.internal.document.DocumentReader;
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker;
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockTagParser;
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockTokenizer;
-import org.eclipse.wst.sse.core.internal.ltk.parser.RegionParser;
-import org.eclipse.wst.sse.core.internal.ltk.parser.StructuredDocumentRegionHandler;
-import org.eclipse.wst.sse.core.internal.ltk.parser.StructuredDocumentRegionParser;
-import org.eclipse.wst.sse.core.internal.ltk.parser.StructuredDocumentRegionParserExtension;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.internal.text.CharSequenceReader;
-import org.eclipse.wst.sse.core.internal.text.IRegionComparible;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-/**
- * Takes input from the HTMLTokenizer and creates a tag list
- */
-
-public class XMLSourceParser implements RegionParser, BlockTagParser, StructuredDocumentRegionParser, IRegionComparible, StructuredDocumentRegionParserExtension {
-	// made public to aid access from inner classes in hierarchy.
-	// TODO: in future, figure out how to solve without exposing data.
-	public CharSequence fCharSequenceSource = null;
-	private IDocument fDocumentInput;
-	protected int fOffset = 0;
-	// DMW: 2/12/03. Removed some state data, since not really needed,
-	// and since it added a lot to overhead (since so many regions are
-	// created.
-	// protected IStructuredDocumentRegion fCurrentNode = null;
-	// protected IStructuredDocumentRegion fNodes = null;
-	// protected List fRegions = null;
-	// protected Object fInput = null;
-	protected String fStringInput = null;
-	protected List fStructuredDocumentRegionHandlers;
-
-	protected BlockTokenizer fTokenizer = null;
-	protected long startTime;
-	protected long stopTime;
-
-	/**
-	 * HTMLSourceParser constructor comment.
-	 */
-	public XMLSourceParser() {
-		super();
-		fStructuredDocumentRegionHandlers = new ArrayList();
-	}
-
-	/**
-	 * This is a simple utility to count nodes. Used only for debug
-	 * statements.
-	 */
-	protected int _countNodes(IStructuredDocumentRegion nodes) {
-		int result = 0;
-		IStructuredDocumentRegion countNode = nodes;
-		while (countNode != null) {
-			result++;
-			countNode = countNode.getNext();
-		}
-		return result;
-	}
-
-	public void addBlockMarker(BlockMarker marker) {
-		getTokenizer().addBlockMarker(marker);
-	}
-
-	public void addStructuredDocumentRegionHandler(StructuredDocumentRegionHandler handler) {
-		if (fStructuredDocumentRegionHandlers == null)
-			fStructuredDocumentRegionHandlers = new ArrayList();
-		fStructuredDocumentRegionHandlers.add(handler);
-	}
-
-	public void beginBlockScan(String newTagName) {
-		getTokenizer().beginBlockTagScan(newTagName);
-	}
-
-	/**
-	 * @return IStructuredDocumentRegion
-	 */
-	protected IStructuredDocumentRegion createStructuredDocumentRegion(String type) {
-		IStructuredDocumentRegion newNode = null;
-		if (type == DOMRegionContext.BLOCK_TEXT)
-			newNode = XMLStructuredRegionFactory.createRegion(XMLStructuredRegionFactory.XML_BLOCK);
-		else
-			newNode = XMLStructuredRegionFactory.createRegion(XMLStructuredRegionFactory.XML);
-		return newNode;
-	}
-
-	protected void fireNodeParsed(IStructuredDocumentRegion fCurrentNode) {
-		/*
-		 * Never let an Exceptions from foreign code interfere with completion
-		 * of parsing. To get an exception here is definitely a program error
-		 * somewhere, but we can't afford to interrupt the flow of control. or
-		 * backwards typing can result!
-		 * 
-		 * Protect the user's data above everything.
-		 */
-		try {
-			if (fCurrentNode != null && fStructuredDocumentRegionHandlers != null) {
-				for (int i = 0; i < fStructuredDocumentRegionHandlers.size(); i++) {
-					((StructuredDocumentRegionHandler) fStructuredDocumentRegionHandlers.get(i)).nodeParsed(fCurrentNode);
-				}
-			}
-		}
-		catch (Exception e) {
-		    Logger.log(Logger.ERROR, "Error occurred while firing Node Parsed event", e); //$NON-NLS-1$
-		}
-	}
-
-	public BlockMarker getBlockMarker(String tagName) {
-		List markers = getTokenizer().getBlockMarkers();
-		for (int i = 0; i < markers.size(); i++) {
-			BlockMarker marker = (BlockMarker) markers.get(i);
-			if (marker.isCaseSensitive()) {
-				if (marker.getTagName().equals(tagName))
-					return marker;
-			}
-			else {
-				if (marker.getTagName().equalsIgnoreCase(tagName))
-					return marker;
-			}
-		}
-		return null;
-	}
-
-	public List getBlockMarkers() {
-		return getTokenizer().getBlockMarkers();
-	}
-
-	/**
-	 * @return IStructuredDocumentRegion
-	 */
-	public IStructuredDocumentRegion getDocumentRegions() {
-		IStructuredDocumentRegion headnode = null;
-		if (headnode == null) {
-			if (Debug.perfTest) {
-				startTime = System.currentTimeMillis();
-			}
-			headnode = parseNodes();
-			if (Debug.perfTest) {
-				stopTime = System.currentTimeMillis();
-				System.out.println(" -- creating nodes of IStructuredDocument -- "); //$NON-NLS-1$
-				System.out.println(" Time parse and init all regions: " + (stopTime - startTime) + " (msecs)"); //$NON-NLS-2$//$NON-NLS-1$
-				// System.out.println(" for " + fRegions.size() + "
-				// Regions");//$NON-NLS-2$//$NON-NLS-1$
-				System.out.println("      and " + _countNodes(headnode) + " Nodes"); //$NON-NLS-2$//$NON-NLS-1$
-			}
-		}
-		return headnode;
-	}
-
-	protected ITextRegion getNextRegion() {
-		ITextRegion region = null;
-		try {
-			region = getTokenizer().getNextToken();
-			// DMW: 2/12/03 Removed state
-			// if (region != null) {
-			// fRegions.add(region);
-			// }
-			return region;
-		}
-		catch (StackOverflowError e) {
-			Logger.logException(getClass().getName() + ": input could not be parsed correctly at position " + getTokenizer().getOffset(), e); //$NON-NLS-1$
-			throw e;
-		}
-		catch (Exception e) {
-			Logger.logException(getClass().getName() + ": input could not be parsed correctly at position " + getTokenizer().getOffset() + " (" + e.getLocalizedMessage() + ")", e); //$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-		}
-		return null;
-	}
-
-	/**
-	 * Return the full list of known regions. Typically getNodes should be
-	 * used instead of this method.
-	 */
-	public List getRegions() {
-		IStructuredDocumentRegion headNode = null;
-		if (!getTokenizer().isEOF()) {
-			headNode = getDocumentRegions();
-			// throw new IllegalStateException("parsing has not finished");
-		}
-		// for memory recovery, we assume if someone
-		// requests all regions, we can reset our big
-		// memory consuming objects
-		// but the new "getRegions" method is then more expensive.
-		// I don't think its used much, though.
-		List localRegionsList = getRegions(headNode);
-		primReset();
-		return localRegionsList;
-	}
-
-	/**
-	 * Method getRegions.
-	 * 
-	 * @param headNode
-	 * @return List
-	 */
-	protected List getRegions(IStructuredDocumentRegion headNode) {
-		List allRegions = new ArrayList();
-		IStructuredDocumentRegion currentNode = headNode;
-		while (currentNode != null) {
-			ITextRegionList nodeRegions = currentNode.getRegions();
-			for (int i = 0; i < nodeRegions.size(); i++) {
-				allRegions.add(nodeRegions.get(i));
-			}
-			currentNode = currentNode.getNext();
-		}
-		return allRegions;
-	}
-
-	/**
-	 * @deprecated - use the add/remove methods instead
-	 * @return java.util.List
-	 */
-	public List getStructuredDocumentRegionHandlers() {
-		if (fStructuredDocumentRegionHandlers == null) {
-			fStructuredDocumentRegionHandlers = new ArrayList(0);
-		}
-		return fStructuredDocumentRegionHandlers;
-	}
-
-	/**
-	 * Returns text from the current input. Text is only valid before
-	 * getNodes() has been called and only when a raw String or DocumentReader
-	 * is given as the input.
-	 */
-	public String getText(int offset, int length) {
-		String text = null;
-		if (fCharSequenceSource != null) {
-			int start = fOffset + offset;
-			int end = start + length;
-			text = fCharSequenceSource.subSequence(start, end).toString();
-		}
-		else if (fDocumentInput != null) {
-			try {
-				text = fDocumentInput.get(offset, length);
-			}
-			catch (BadLocationException e) {
-				text = ""; //$NON-NLS-1$
-			}
-		}
-		else {
-			if (fStringInput == null || fStringInput.length() == 0 || offset + length > fStringInput.length() || offset < 0) {
-				text = ""; //$NON-NLS-1$
-			}
-			else {
-				// offset is entirely valid during parsing as the parse
-				// numbers haven't been adjusted.
-				text = fStringInput.substring(offset, offset + length);
-			}
-		}
-		return text;
-	}
-
-	protected BlockTokenizer getTokenizer() {
-		if (fTokenizer == null) {
-			fTokenizer = new XMLTokenizer();
-		}
-		return fTokenizer;
-	}
-
-
-	public RegionParser newInstance() {
-		XMLSourceParser newInstance = new XMLSourceParser();
-		newInstance.setTokenizer(getTokenizer().newInstance());
-		return newInstance;
-	}
-
-	protected IStructuredDocumentRegion parseNodes() {
-		// regions are initially reported as complete offsets within the
-		// scanned input
-		// they are adjusted here to be indexes from the currentNode's start
-		// offset
-		IStructuredDocumentRegion headNode = null;
-		IStructuredDocumentRegion lastNode = null;
-		ITextRegion region = null;
-		IStructuredDocumentRegion currentNode = null;
-		String type = null;
-
-		while ((region = getNextRegion()) != null) {
-			type = region.getType();
-			// these types (might) demand a IStructuredDocumentRegion for each
-			// of them
-			if (type == DOMRegionContext.BLOCK_TEXT) {
-				if (currentNode != null && currentNode.getLastRegion().getType() == DOMRegionContext.BLOCK_TEXT) {
-					// multiple block texts indicated embedded containers; no
-					// new IStructuredDocumentRegion
-					currentNode.addRegion(region);
-					currentNode.setLength(region.getStart() + region.getLength() - currentNode.getStart());
-					region.adjustStart(-currentNode.getStart());
-					// DW 4/16/2003 regions no longer have parents
-					// region.setParent(currentNode);
-				}
-				else {
-					// not continuing a IStructuredDocumentRegion
-					if (currentNode != null) {
-						// ensure that any existing node is at least
-						// terminated
-						if (!currentNode.isEnded()) {
-							currentNode.setLength(region.getStart() - currentNode.getStart());
-							// fCurrentNode.setTextLength(region.getStart() -
-							// fCurrentNode.getStart());
-						}
-						lastNode = currentNode;
-					}
-					fireNodeParsed(currentNode);
-					currentNode = createStructuredDocumentRegion(type);
-					if (lastNode != null) {
-						lastNode.setNext(currentNode);
-					}
-					currentNode.setPrevious(lastNode);
-					currentNode.setStart(region.getStart());
-					currentNode.setLength(region.getStart() + region.getLength() - currentNode.getStart());
-					currentNode.setEnded(true);
-					region.adjustStart(-currentNode.getStart());
-					currentNode.addRegion(region);
-					// DW 4/16/2003 regions no longer have parents
-					// region.setParent(currentNode);
-				}
-			}
-			// the following contexts OPEN new StructuredDocumentRegions
-			else if ((currentNode != null && currentNode.isEnded()) || (type == DOMRegionContext.XML_CONTENT) || (type == DOMRegionContext.XML_CHAR_REFERENCE) || (type == DOMRegionContext.XML_ENTITY_REFERENCE) || (type == DOMRegionContext.XML_PI_OPEN) || (type == DOMRegionContext.XML_TAG_OPEN) || (type == DOMRegionContext.XML_END_TAG_OPEN) || (type == DOMRegionContext.XML_COMMENT_OPEN) || (type == DOMRegionContext.XML_CDATA_OPEN) || (type == DOMRegionContext.XML_DECLARATION_OPEN)) {
-				if (currentNode != null) {
-					// ensure that any existing node is at least terminated
-					if (!currentNode.isEnded()) {
-						currentNode.setLength(region.getStart() - currentNode.getStart());
-						// fCurrentNode.setTextLength(region.getStart() -
-						// fCurrentNode.getStart());
-					}
-					lastNode = currentNode;
-				}
-				fireNodeParsed(currentNode);
-				currentNode = createStructuredDocumentRegion(type);
-				if (lastNode != null) {
-					lastNode.setNext(currentNode);
-				}
-				currentNode.setPrevious(lastNode);
-				currentNode.setStart(region.getStart());
-				currentNode.addRegion(region);
-				currentNode.setLength(region.getStart() + region.getLength() - currentNode.getStart());
-				region.adjustStart(-currentNode.getStart());
-				// DW 4/16/2003 regions no longer have parents
-				// region.setParent(currentNode);
-			}
-			// the following contexts neither open nor close
-			// StructuredDocumentRegions; just add to them
-			else if ((type == DOMRegionContext.XML_TAG_NAME) || (type == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) || (type == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) || (type == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) || (type == DOMRegionContext.XML_COMMENT_TEXT) || (type == DOMRegionContext.XML_PI_CONTENT) || (type == DOMRegionContext.XML_DOCTYPE_INTERNAL_SUBSET)) {
-				currentNode.addRegion(region);
-				currentNode.setLength(region.getStart() + region.getLength() - currentNode.getStart());
-				region.adjustStart(-currentNode.getStart());
-				// DW 4/16/2003 regions no longer have parents
-				// region.setParent(currentNode);
-			}
-			// the following contexts close off StructuredDocumentRegions
-			// cleanly
-			else if ((type == DOMRegionContext.XML_PI_CLOSE) || (type == DOMRegionContext.XML_TAG_CLOSE) || (type == DOMRegionContext.XML_EMPTY_TAG_CLOSE) || (type == DOMRegionContext.XML_COMMENT_CLOSE) || (type == DOMRegionContext.XML_DECLARATION_CLOSE) || (type == DOMRegionContext.XML_CDATA_CLOSE)) {
-				currentNode.setEnded(true);
-				currentNode.setLength(region.getStart() + region.getLength() - currentNode.getStart());
-				currentNode.addRegion(region);
-				region.adjustStart(-currentNode.getStart());
-				// DW 4/16/2003 regions no longer have parents
-				// region.setParent(currentNode);
-			}
-			// this is extremely rare, but valid
-			else if (type == DOMRegionContext.WHITE_SPACE) {
-				ITextRegion lastRegion = currentNode.getLastRegion();
-				// pack the embedded container with this region
-				if (lastRegion instanceof ITextRegionContainer) {
-					ITextRegionContainer container = (ITextRegionContainer) lastRegion;
-					container.getRegions().add(region);
-					// containers must have parent set ...
-					// setting for EACH subregion is redundent, but not sure
-					// where else to do, so will do here for now.
-					container.setParent(currentNode);
-					// DW 4/16/2003 regions no longer have parents
-					// region.setParent(container);
-					region.adjustStart(container.getLength() - region.getStart());
-				}
-				currentNode.getLastRegion().adjustLength(region.getLength());
-				currentNode.adjustLength(region.getLength());
-			}
-			else if (type == DOMRegionContext.UNDEFINED && currentNode != null) {
-				// skip on a very-first region situation as the default
-				// behavior is good enough
-				// combine with previous if also undefined
-				if (currentNode.getLastRegion() != null && currentNode.getLastRegion().getType() == DOMRegionContext.UNDEFINED) {
-					currentNode.getLastRegion().adjustLength(region.getLength());
-					currentNode.adjustLength(region.getLength());
-				}
-				// previous wasn't undefined
-				else {
-					currentNode.addRegion(region);
-					currentNode.setLength(region.getStart() + region.getLength() - currentNode.getStart());
-					region.adjustStart(-currentNode.getStart());
-				}
-			}
-			else {
-				// if an unknown type is the first region in the document,
-				// ensure that a node exists
-				if (currentNode == null) {
-					currentNode = createStructuredDocumentRegion(type);
-					currentNode.setStart(region.getStart());
-				}
-				currentNode.addRegion(region);
-				currentNode.setLength(region.getStart() + region.getLength() - currentNode.getStart());
-				region.adjustStart(-currentNode.getStart());
-				// DW 4/16/2003 regions no longer have parents
-				// region.setParent(currentNode);
-				if (Debug.debugTokenizer)
-					System.out.println(getClass().getName() + " found region of not specifically handled type " + region.getType() + " @ " + region.getStart() + "[" + region.getLength() + "]"); //$NON-NLS-4$//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-				//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-			}
-
-			// these regions also get their own node, so close them cleanly
-			// NOTE: these regions have new StructuredDocumentRegions created
-			// for them above; it may
-			// be more readable if that is handled here as well, but the
-			// current layout
-			// ensures that they open StructuredDocumentRegions the same way
-			if ((type == DOMRegionContext.XML_CONTENT) || (type == DOMRegionContext.XML_CHAR_REFERENCE) || (type == DOMRegionContext.XML_ENTITY_REFERENCE)) {
-				currentNode.setEnded(true);
-			}
-			if (headNode == null && currentNode != null) {
-				headNode = currentNode;
-			}
-		}
-		if (currentNode != null) {
-			fireNodeParsed(currentNode);
-			currentNode.setPrevious(lastNode);
-		}
-		// fStringInput = null;
-		primReset();
-		return headNode;
-	}
-
-	protected void primReset() {
-		// fNodes = null;
-		// fRegions = null;
-		// fInput = null;
-		fStringInput = null;
-		fCharSequenceSource = null;
-		fDocumentInput = null;
-		fOffset = 0;
-		// fCurrentNode = null;
-		// DMW: also reset tokenizer so it doesn't hold on
-		// to large arrays
-		getTokenizer().reset(new char[0]);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.internal.text.IRegionComparible#regionMatches(int,
-	 *      int, java.lang.String)
-	 */
-	public boolean regionMatches(int offset, int length, String stringToCompare) {
-		// by definition
-		if (stringToCompare == null)
-			return false;
-
-		boolean result = false;
-		if (fCharSequenceSource != null && fCharSequenceSource instanceof IRegionComparible) {
-			result = ((IRegionComparible) fCharSequenceSource).regionMatches(offset, length, stringToCompare);
-		}
-		else {
-			// old fashioned ways
-			String test = null;
-			if (fCharSequenceSource != null) {
-				test = fCharSequenceSource.subSequence(offset, offset + length).toString();
-			}
-			else if (fStringInput != null) {
-				test = fStringInput.substring(offset, offset + length);
-			}
-			result = stringToCompare.equals(test);
-		}
-		return result;
-	}
-
-	public boolean regionMatchesIgnoreCase(int offset, int length, String stringToCompare) {
-		// by definition
-		if (stringToCompare == null)
-			return false;
-
-		boolean result = false;
-		if (fCharSequenceSource != null && fCharSequenceSource instanceof IRegionComparible) {
-			result = ((IRegionComparible) fCharSequenceSource).regionMatchesIgnoreCase(offset, length, stringToCompare);
-		}
-		else {
-			// old fashioned ways
-			String test = null;
-			if (fCharSequenceSource != null) {
-				test = fCharSequenceSource.subSequence(offset, offset + length).toString();
-			}
-			else if (fStringInput != null) {
-				test = fStringInput.substring(offset, offset + length);
-			}
-			result = stringToCompare.equalsIgnoreCase(test);
-		}
-		return result;
-	}
-
-	public void removeBlockMarker(BlockMarker marker) {
-		getTokenizer().removeBlockMarker(marker);
-	}
-
-	public void removeBlockMarker(String tagName) {
-		getTokenizer().removeBlockMarker(tagName);
-	}
-
-	public void removeStructuredDocumentRegionHandler(StructuredDocumentRegionHandler handler) {
-		if (fStructuredDocumentRegionHandlers == null)
-			return;
-		if (fStructuredDocumentRegionHandlers.contains(handler))
-			fStructuredDocumentRegionHandlers.remove(handler);
-	}
-
-	/**
-	 * Resets the input.
-	 */
-	public void reset(java.io.FileInputStream instream) {
-		primReset();
-		// fInput = instream;
-		getTokenizer().reset(instream);
-	}
-
-	/**
-	 * Resets the input.
-	 */
-	public void reset(java.io.Reader reader) {
-		reset(reader, 0);
-	}
-
-	/**
-	 * Resets the input.
-	 */
-	public void reset(java.io.Reader reader, int position) {
-		primReset();
-		fOffset = position;
-		getTokenizer().reset(reader, position);
-		if (reader instanceof DocumentReader) {
-			IDocument doc = ((DocumentReader) reader).getDocument();
-			if (doc instanceof CharSequence) {
-				fCharSequenceSource = (CharSequence) doc;
-			}
-			else {
-				// old fashioned IDocument
-				fDocumentInput = ((DocumentReader) reader).getDocument();
-			}
-
-		}
-		else if (reader instanceof CharSequenceReader) {
-			fCharSequenceSource = ((CharSequenceReader) reader).getOriginalSource();
-		}
-	}
-
-	/**
-	 * Resets the input. Use this version to allow text to be retrieved
-	 * <em>during</em> parsing, such as by the
-	 * StructuredDocumentRegionHandler.
-	 */
-	public void reset(String sourceString) {
-		reset(new StringReader(sourceString));
-		fStringInput = sourceString;
-	}
-
-	/**
-	 * Resets the input. Use this version to allow text to be retrieved
-	 * <em>during</em> parsing, such as by the
-	 * StructuredDocumentRegionHandler.
-	 */
-	public void reset(String sourceString, int position) {
-		StringReader reader = new StringReader(sourceString);
-		reset(reader, position);
-		fStringInput = sourceString;
-	}
-
-	public void resetHandlers() {
-		if (fStructuredDocumentRegionHandlers != null) {
-			int size = fStructuredDocumentRegionHandlers.size();
-			for (int i = 0; i < size; i++)
-				((StructuredDocumentRegionHandler) fStructuredDocumentRegionHandlers.get(i)).resetNodes();
-		}
-	}
-
-	/**
-	 * 
-	 * @param List
-	 */
-	public void setStructuredDocumentRegionHandlers(List newStructuredDocumentRegionHandlers) {
-		fStructuredDocumentRegionHandlers = newStructuredDocumentRegionHandlers;
-	}
-
-	protected void setTokenizer(BlockTokenizer newTokenizer) {
-		// DMW: changed from private to protected, so subclass could use in
-		// creation of 'newInstance'.
-		fTokenizer = newTokenizer;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLStructuredDocumentReParser.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLStructuredDocumentReParser.java
deleted file mode 100644
index c185520..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLStructuredDocumentReParser.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser;
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredTextReParser;
-import org.eclipse.wst.sse.core.internal.text.StructuredDocumentReParser;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-public class XMLStructuredDocumentReParser extends StructuredDocumentReParser {
-
-	public XMLStructuredDocumentReParser() {
-		super();
-	}
-
-	protected IStructuredDocumentRegion findDirtyEnd(int end) {
-		// Caution: here's one place we have to cast
-		IStructuredDocumentRegion result = fStructuredDocument.getRegionAtCharacterOffset(end);
-		// if not well formed, get one past, if there is something there
-		if ((result != null) && (!result.isEnded())) {
-			if (result.getNext() != null) {
-				result = result.getNext();
-			}
-		}
-		// also, get one past if exactly equal to the end (this was needed
-		// as a simple fix to when a whole exact region is deleted.
-		// there's probably a better way.
-		if ((result != null) && (end == result.getEnd())) {
-			if (result.getNext() != null) {
-				result = result.getNext();
-			}
-		}
-
-		// 12/6/2001 - Since we've changed the parser/scanner to allow a lone
-		// '<' without
-		// always interpretting it as start of a tag name, we need to be a
-		// little fancier, in order
-		// to "skip" over any plain 'ol content between the lone '<' and any
-		// potential meating
-		// regions past plain 'ol content.
-		if (isLoneOpenFollowedByContent(result) && (result.getNext() != null)) {
-			result = result.getNext();
-		}
-
-		if (result != null)
-			fStructuredDocument.setCachedDocumentRegion(result);
-		dirtyEnd = result;
-
-		return dirtyEnd;
-	}
-
-	protected void findDirtyStart(int start) {
-		IStructuredDocumentRegion result = fStructuredDocument.getRegionAtCharacterOffset(start);
-		// heuristic: if the postion is exactly equal to the start, then
-		// go back one more, if it exists. This prevents problems with
-		// insertions
-		// of text that should be merged with the previous node instead of
-		// simply hung
-		// off of it as a separate node (ex.: XML content inserted right
-		// before an open
-		// bracket should become part of the previous content node)
-		if (result != null) {
-			IStructuredDocumentRegion previous = result.getPrevious();
-			if ((previous != null) && ((!(previous.isEnded())) || (start == result.getStart()))) {
-				result = previous;
-			}
-			// If we are now at the end of a "tag dependent" content area (or
-			// JSP area)
-			// then we need to back up all the way to the beginning of that.
-			IStructuredDocumentRegion potential = result;
-			while (isPartOfBlockRegion(potential)) {
-				potential = potential.getPrevious();
-			}
-			if (potential != null) {
-				result = potential;
-				fStructuredDocument.setCachedDocumentRegion(result);
-			}
-		}
-		dirtyStart = result;
-	}
-
-	/**
-	 * The rule is, that is we are content, preceded by lone <, then we need
-	 * to advance one more for dirty end.
-	 */
-	protected boolean isLoneOpenFollowedByContent(IStructuredDocumentRegion flatNode) {
-		boolean result = false;
-		String type = flatNode.getType();
-		if (type == DOMRegionContext.XML_CONTENT) {
-			IStructuredDocumentRegion previous = flatNode.getPrevious();
-			String previousType = null;
-			if (previous != null) {
-				previousType = previous.getType();
-			}
-			if (previousType != null) {
-				result = (previousType == DOMRegionContext.XML_TAG_OPEN);
-			}
-		}
-		return result;
-	}
-
-	protected boolean isPartOfBlockRegion(IStructuredDocumentRegion flatNode) {
-		boolean result = false;
-		String type = flatNode.getType();
-		result = (type == DOMRegionContext.BLOCK_TEXT);
-		return result;
-	}
-
-	public IStructuredTextReParser newInstance() {
-		return new XMLStructuredDocumentReParser();
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLStructuredRegionFactory.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLStructuredRegionFactory.java
deleted file mode 100644
index 8a98dc2..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLStructuredRegionFactory.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser;
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.text.XMLStructuredDocumentRegion;
-
-
-/**
- * A simple class to generate instances of StructuredRegions.
- */
-public class XMLStructuredRegionFactory {
-	public final static int JSP_DIRECTIVE = 1003;
-	public final static int XML = 1001;
-	public final static int XML_BLOCK = 1002;
-
-	public static IStructuredDocumentRegion createRegion(int type) {
-		IStructuredDocumentRegion instance = null;
-		switch (type) {
-			case XML :
-				instance = new XMLStructuredDocumentRegion();
-				break;
-			case XML_BLOCK :
-				instance = new BlockStructuredDocumentRegion();
-				break;
-			default :
-				throw new IllegalArgumentException("AbstractRegion::createRegion. Invalid type."); //$NON-NLS-1$
-		}
-		return instance;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLTokenizer.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLTokenizer.java
deleted file mode 100644
index b4607a2..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLTokenizer.java
+++ /dev/null
@@ -1,1937 +0,0 @@
-/* The following code was generated by JFlex 1.2.2 on 10/17/07 4:27 AM */
-
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.parser;
-
-import java.io.CharArrayReader;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker;
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockTokenizer;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.parser.regions.XMLParserRegionFactory;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-/**
- * This class is a scanner generated by 
- * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
- * on 10/17/07 4:27 AM from the specification file
- * <tt>file:/D:/eclipse.wtp/workspace/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex</tt>
- */
-public class XMLTokenizer implements BlockTokenizer, DOMRegionContext {
-
-  /** this character denotes the end of file */
-  final public static int YYEOF = -1;
-
-  /** lexical states */
-  final public static int ST_XML_DOCTYPE_EXTERNAL_ID = 23;
-  final public static int ST_XML_ELEMENT_DECLARATION_CONTENT = 27;
-  final public static int ST_DHTML_ATTRIBUTE_NAME = 12;
-  final public static int ST_XML_PI_TAG_CLOSE = 11;
-  final public static int ST_XML_DECLARATION_CLOSE = 21;
-  final public static int ST_XML_PI_ATTRIBUTE_VALUE = 10;
-  final public static int ST_DHTML_EQUALS = 13;
-  final public static int ST_XML_TAG_NAME = 16;
-  final public static int ST_XML_ATTRIBUTE_VALUE = 19;
-  final public static int ST_DHTML_ATTRIBUTE_VALUE = 14;
-  final public static int ST_XML_DOCTYPE_ID_SYSTEM = 25;
-  final public static int ST_XML_ATTRIBUTE_NAME = 17;
-  final public static int ST_XML_ELEMENT_DECLARATION = 26;
-  final public static int ST_XML_DOCTYPE_DECLARATION = 22;
-  final public static int ST_XML_ATTLIST_DECLARATION = 28;
-  final public static int ST_XML_COMMENT_END = 4;
-  final public static int ST_CDATA_TEXT = 1;
-  final public static int ST_DHTML_TAG_CLOSE = 15;
-  final public static int ST_XML_COMMENT = 3;
-  final public static int ST_PI_CONTENT = 7;
-  final public static int ST_PI_WS = 6;
-  final public static int ST_CDATA_END = 2;
-  final public static int ST_XML_ATTLIST_DECLARATION_CONTENT = 29;
-  final public static int ST_BLOCK_TAG_SCAN = 30;
-  final public static int ST_XML_PI_EQUALS = 9;
-  final public static int ST_XML_DECLARATION = 20;
-  final public static int YYINITIAL = 0;
-  final public static int ST_XML_DOCTYPE_ID_PUBLIC = 24;
-  final public static int ST_XML_EQUALS = 18;
-  final public static int ST_PI = 5;
-  final public static int ST_XML_PI_ATTRIBUTE_NAME = 8;
-
-  /** 
-   * Translates characters to character classes
-   */
-  final private static String yycmap_packed = 
-    "\11\0\1\5\1\22\2\0\1\14\22\0\1\14\1\21\1\11\1\55"+
-    "\1\16\1\17\1\12\1\13\1\16\1\16\1\16\1\16\1\16\1\7"+
-    "\1\6\1\3\12\15\1\10\1\61\1\1\1\45\1\2\1\4\1\16"+
-    "\1\34\1\62\1\32\1\33\1\50\1\57\1\36\1\36\1\42\1\36"+
-    "\1\36\1\27\1\25\1\44\1\43\1\47\1\36\1\40\1\56\1\35"+
-    "\1\60\2\36\1\23\1\46\1\36\1\31\1\0\1\20\1\0\1\10"+
-    "\1\0\1\52\1\62\1\63\1\53\1\37\1\57\1\36\1\66\1\42"+
-    "\2\36\1\30\1\26\1\44\1\43\1\47\1\36\1\40\1\41\1\51"+
-    "\1\60\1\36\1\36\1\24\1\54\1\36\1\0\1\0\72\0\1\65"+
-    "\10\0\27\64\1\0\37\64\1\0\72\64\2\0\13\64\2\0\10\64"+
-    "\1\0\65\64\1\0\104\64\11\0\44\64\3\0\2\64\4\0\36\64"+
-    "\70\0\131\64\22\0\7\64\16\0\2\65\56\0\106\65\32\0\2\65"+
-    "\44\0\1\64\1\65\3\64\1\0\1\64\1\0\24\64\1\0\54\64"+
-    "\1\0\7\64\3\0\1\64\1\0\1\64\1\0\1\64\1\0\1\64"+
-    "\1\0\22\64\15\0\14\64\1\0\102\64\1\0\14\64\1\0\44\64"+
-    "\1\0\4\65\11\0\65\64\2\0\2\64\2\0\2\64\3\0\34\64"+
-    "\2\0\10\64\2\0\2\64\67\0\46\64\2\0\1\64\7\0\46\64"+
-    "\12\0\21\65\1\0\27\65\1\0\3\65\1\0\1\65\1\0\2\65"+
-    "\1\0\1\65\13\0\33\64\5\0\3\64\56\0\32\64\5\0\1\65"+
-    "\12\64\10\65\15\0\12\65\6\0\1\65\107\64\2\0\5\64\1\0"+
-    "\17\64\1\0\4\64\1\0\1\64\17\65\2\64\2\65\1\0\4\65"+
-    "\2\0\12\65\u0207\0\3\65\1\0\65\64\2\0\1\65\1\64\20\65"+
-    "\3\0\4\65\3\0\12\64\2\65\2\0\12\65\21\0\3\65\1\0"+
-    "\10\64\2\0\2\64\2\0\26\64\1\0\7\64\1\0\1\64\3\0"+
-    "\4\64\2\0\1\65\1\0\7\65\2\0\2\65\2\0\3\65\11\0"+
-    "\1\65\4\0\2\64\1\0\3\64\2\65\2\0\12\65\2\64\20\0"+
-    "\1\65\2\0\6\64\4\0\2\64\2\0\26\64\1\0\7\64\1\0"+
-    "\2\64\1\0\2\64\1\0\2\64\2\0\1\65\1\0\5\65\4\0"+
-    "\2\65\2\0\3\65\13\0\4\64\1\0\1\64\7\0\12\65\2\65"+
-    "\3\64\14\0\3\65\1\0\7\64\1\0\1\64\1\0\3\64\1\0"+
-    "\26\64\1\0\7\64\1\0\2\64\1\0\5\64\2\0\1\65\1\64"+
-    "\10\65\1\0\3\65\1\0\3\65\22\0\1\64\5\0\12\65\21\0"+
-    "\3\65\1\0\10\64\2\0\2\64\2\0\26\64\1\0\7\64\1\0"+
-    "\2\64\2\0\4\64\2\0\1\65\1\64\6\65\3\0\2\65\2\0"+
-    "\3\65\10\0\2\65\4\0\2\64\1\0\3\64\4\0\12\65\22\0"+
-    "\2\65\1\0\6\64\3\0\3\64\1\0\4\64\3\0\2\64\1\0"+
-    "\1\64\1\0\2\64\3\0\2\64\3\0\3\64\3\0\10\64\1\0"+
-    "\3\64\4\0\5\65\3\0\3\65\1\0\4\65\11\0\1\65\17\0"+
-    "\11\65\21\0\3\65\1\0\10\64\1\0\3\64\1\0\27\64\1\0"+
-    "\12\64\1\0\5\64\4\0\7\65\1\0\3\65\1\0\4\65\7\0"+
-    "\2\65\11\0\2\64\4\0\12\65\22\0\2\65\1\0\10\64\1\0"+
-    "\3\64\1\0\27\64\1\0\12\64\1\0\5\64\4\0\7\65\1\0"+
-    "\3\65\1\0\4\65\7\0\2\65\7\0\1\64\1\0\2\64\4\0"+
-    "\12\65\22\0\2\65\1\0\10\64\1\0\3\64\1\0\27\64\1\0"+
-    "\20\64\4\0\6\65\2\0\3\65\1\0\4\65\11\0\1\65\10\0"+
-    "\2\64\4\0\12\65\221\0\56\64\1\0\1\64\1\65\2\64\7\65"+
-    "\5\0\6\64\1\65\10\65\1\0\12\65\47\0\2\64\1\0\1\64"+
-    "\2\0\2\64\1\0\1\64\2\0\1\64\6\0\4\64\1\0\7\64"+
-    "\1\0\3\64\1\0\1\64\1\0\1\64\2\0\2\64\1\0\2\64"+
-    "\1\0\1\64\1\65\2\64\6\65\1\0\2\65\1\64\2\0\5\64"+
-    "\1\0\1\65\1\0\6\65\2\0\12\65\76\0\2\65\6\0\12\65"+
-    "\13\0\1\65\1\0\1\65\1\0\1\65\4\0\2\65\10\64\1\0"+
-    "\41\64\7\0\24\65\1\0\6\65\4\0\6\65\1\0\1\65\1\0"+
-    "\25\65\3\0\7\65\1\0\1\65\346\0\46\64\12\0\47\64\11\0"+
-    "\1\64\1\0\2\64\1\0\3\64\1\0\1\64\1\0\2\64\1\0"+
-    "\5\64\51\0\1\64\1\0\1\64\1\0\1\64\13\0\1\64\1\0"+
-    "\1\64\1\0\1\64\3\0\2\64\3\0\1\64\5\0\3\64\1\0"+
-    "\1\64\1\0\1\64\1\0\1\64\1\0\1\64\3\0\2\64\3\0"+
-    "\2\64\1\0\1\64\50\0\1\64\11\0\1\64\2\0\1\64\2\0"+
-    "\2\64\7\0\2\64\1\0\1\64\1\0\7\64\50\0\1\64\4\0"+
-    "\1\64\10\0\1\64\u0c06\0\234\64\4\0\132\64\6\0\26\64\2\0"+
-    "\6\64\2\0\46\64\2\0\6\64\2\0\10\64\1\0\1\64\1\0"+
-    "\1\64\1\0\1\64\1\0\37\64\2\0\65\64\1\0\7\64\1\0"+
-    "\1\64\3\0\3\64\1\0\7\64\3\0\4\64\2\0\6\64\4\0"+
-    "\15\64\5\0\3\64\1\0\7\64\323\0\15\65\4\0\1\65\104\0"+
-    "\1\64\3\0\2\64\2\0\1\64\121\0\3\64\u0e82\0\1\65\1\0"+
-    "\1\64\31\0\11\64\6\65\1\0\5\65\13\0\124\64\4\0\2\65"+
-    "\2\0\2\65\2\0\132\64\1\0\3\65\6\0\50\64\u1cd3\0\u51a6\64"+
-    "\u0c5a\0\u2ba4\64\134\0\u0800\0\u1ffe\0\2\0";
-
-  /** 
-   * Translates characters to character classes
-   */
-  final private static char [] yycmap = yy_unpack_cmap(yycmap_packed);
-
-  /** 
-   * Translates a state to a row index in the transition table
-   */
-  final private static int yy_rowMap [] = { 
-        0,    55,   110,   165,   220,   275,   330,   385,   440,   495, 
-      550,   605,   660,   715,   770,   825,   880,   935,   990,  1045, 
-     1100,  1155,  1210,  1265,  1320,  1375,  1430,  1485,  1540,  1595, 
-     1650,  1705,  1760,  1815,  1870,  1925,  1980,  1925,  1980,  2035, 
-     1925,  1925,  1980,  2090,  2145,  2200,  2255,  2310,  2365,  2420, 
-     2475,  1925,  1980,  2530,  2585,  2640,  1925,  2695,  2695,  2750, 
-     2805,  2860,  2530,  1925,  2915,  2970,  1925,  3025,  3080,  3135, 
-     3190,  3245,  3300,  1925,  3355,  3410,  3465,  3520,  1925,  3575, 
-     3630,  3685,  3740,  3795,  1925,  3850,  3905,  3960,  4015,  4070, 
-     4125,  4180,  4235,  4235,  4290,  4345,  4400,  4455,  4455,  4510, 
-     4565,  4620,  4675,  4675,  4730,  4785,  4840,  4895,  1925,  4950, 
-     4950,  5005,  5060,  5115,  5170,  1925,  1925,  1980,  1925,  1925, 
-     5225,  5280,  5335,  5390,  5445,  5500,  5555,  5610,  1925,  5665, 
-     5720,  5775,  1925,  1925,  2695,  5830,  2805,  1925,  5885,  2860, 
-     2915,  3025,  3080,  5940,  3135,  1925,  5995,  3190,  1925,  3575, 
-     6050,  3685,  1925,  6105,  3740,  5225,  6160,  6215,  6270,  4015, 
-     1925,  6325,  6380,  4235,  6435,  4290,  1925,  6490,  6545,  6600, 
-     6600,  6655,  6710,  4400,  4235,  4455,  6765,  4510,  1925,  6820, 
-     4565,  4620,  4455,  4675,  6875,  4730,  1925,  6930,  6985,  7040, 
-     7040,  7095,  7150,  7205,  4950,  7260,  5005,  1925,  7315,  7370, 
-     7425,  7425,  7480,  7535,  7590,  7645,  7700,  7755,  7810,  1925, 
-     7865,  7920,  1925,  1925,  1925,  2255,  7975,  8030,  8085,  8140, 
-     8195,  8250,  8305,  6490,  8360,  8360,  6930,  8415,  8415,  8470, 
-     7315,  8525,  8525,  8580,  1925,  8635,  8690,  1925,  8745,  8800, 
-     8855,  8910,  8965,  9020,  9075,  9130,  6655,  7095,  9185,  7480, 
-     9240,  9295,  9350,  9405,  9460,  9515,  9570,  9625,  9680,  9735, 
-     9790,  9845,  9900,  9955, 10010, 10065, 10120,  1925,  1925, 10175, 
-    10230, 10285, 10340, 10395,  1925,  1925,  1925, 10450, 10505, 10560, 
-    10615, 10670, 10725,  1925, 10780,  4840,  5115, 10835, 10890, 10945, 
-    11000,  2255
-  };
-
-  /** 
-   * The packed transition table of the DFA
-   */
-  final private static String yy_packed = 
-    "\1\40\1\41\10\40\1\42\4\40\1\43\47\40\1\44"+
-    "\1\45\65\44\1\46\1\47\16\46\1\50\1\46\1\51"+
-    "\44\46\1\52\1\53\65\52\1\46\1\47\5\46\1\54"+
-    "\12\46\1\51\45\46\1\47\2\46\1\55\1\56\2\46"+
-    "\1\57\3\46\1\56\5\46\1\56\1\60\1\61\4\57"+
-    "\1\46\10\57\1\62\2\57\1\46\7\57\1\46\3\57"+
-    "\1\46\3\57\1\46\1\57\1\46\1\47\2\46\1\55"+
-    "\1\63\6\46\1\63\5\46\1\63\44\46\1\64\1\65"+
-    "\2\64\1\66\15\64\1\51\44\64\1\46\1\47\2\46"+
-    "\1\67\1\56\2\46\1\70\3\46\1\56\5\46\1\56"+
-    "\6\70\1\46\13\70\1\46\7\70\1\46\3\70\1\46"+
-    "\3\70\1\46\1\70\1\46\1\47\2\46\1\67\1\56"+
-    "\2\46\1\70\3\46\1\56\5\46\1\56\6\70\1\46"+
-    "\13\70\1\71\7\70\1\46\3\70\1\46\3\70\1\46"+
-    "\1\70\1\72\1\47\1\46\1\73\1\74\1\56\3\72"+
-    "\1\75\1\72\1\76\1\56\5\72\1\56\44\72\1\46"+
-    "\1\47\2\46\1\77\15\46\1\51\45\46\1\47\1\100"+
-    "\1\101\1\46\1\56\2\46\1\102\3\46\1\56\5\46"+
-    "\1\56\6\102\1\46\13\102\1\46\7\102\1\46\3\102"+
-    "\1\46\3\102\1\46\1\102\1\46\1\47\1\100\1\101"+
-    "\1\46\1\56\2\46\1\102\3\46\1\56\5\46\1\56"+
-    "\6\102\1\46\13\102\1\103\7\102\1\46\3\102\1\46"+
-    "\3\102\1\46\1\102\1\104\1\47\1\100\1\105\1\104"+
-    "\1\56\3\104\1\106\1\104\1\107\1\56\5\104\1\56"+
-    "\44\104\1\46\1\47\3\46\1\56\6\46\1\56\5\46"+
-    "\1\56\44\46\1\110\1\111\1\112\1\113\4\110\1\114"+
-    "\12\110\6\115\1\110\13\115\1\110\7\115\1\110\3\115"+
-    "\1\110\3\115\1\110\1\115\1\46\1\111\1\112\1\113"+
-    "\1\46\1\56\2\46\1\116\3\46\1\56\5\46\1\56"+
-    "\6\116\1\46\13\116\1\46\7\116\1\46\3\116\1\46"+
-    "\3\116\1\46\1\116\1\46\1\111\1\112\1\113\1\46"+
-    "\1\56\2\46\1\116\3\46\1\56\5\46\1\56\6\116"+
-    "\1\46\13\116\1\117\7\116\1\46\3\116\1\46\3\116"+
-    "\1\46\1\116\1\120\1\111\1\112\1\121\1\120\1\56"+
-    "\3\120\1\122\1\120\1\123\1\56\5\120\1\56\44\120"+
-    "\1\46\1\124\1\125\2\46\1\56\6\46\1\56\5\46"+
-    "\1\56\10\46\1\126\1\127\2\46\1\130\10\46\1\130"+
-    "\1\46\1\127\1\126\14\46\1\47\1\125\2\46\1\56"+
-    "\6\46\1\56\5\46\1\56\6\46\1\131\36\46\1\47"+
-    "\1\125\2\46\1\56\2\46\1\132\3\46\1\56\5\46"+
-    "\1\56\6\132\1\131\13\132\1\46\7\132\1\46\3\132"+
-    "\1\46\3\132\1\46\1\132\1\46\1\47\1\125\2\46"+
-    "\1\56\6\46\1\56\5\46\1\56\6\46\1\131\7\46"+
-    "\1\133\5\46\1\134\6\46\1\133\10\46\1\135\1\47"+
-    "\1\125\1\136\1\135\1\56\3\135\1\137\1\135\1\140"+
-    "\1\56\5\135\1\56\6\135\1\141\35\135\1\142\1\47"+
-    "\1\125\1\143\1\142\1\56\3\142\1\144\1\142\1\145"+
-    "\1\56\5\142\1\56\6\142\1\146\35\142\1\147\1\47"+
-    "\1\125\1\150\1\147\1\56\3\147\1\151\1\147\1\152"+
-    "\1\56\5\147\1\56\44\147\1\153\1\154\1\155\64\153"+
-    "\1\156\1\47\1\125\1\157\1\156\1\56\3\156\1\160"+
-    "\1\156\1\161\1\56\5\156\1\56\44\156\1\162\1\163"+
-    "\1\164\64\162\1\165\1\166\65\165\1\40\1\0\10\40"+
-    "\1\0\4\40\1\0\47\40\3\0\1\167\1\170\14\0"+
-    "\1\171\52\0\1\172\2\0\1\173\3\0\1\172\5\0"+
-    "\1\172\6\173\1\0\13\173\1\0\7\173\1\174\3\173"+
-    "\1\0\3\173\1\0\1\173\5\0\1\172\2\0\1\175"+
-    "\3\0\1\172\5\0\1\172\6\175\1\0\13\175\1\0"+
-    "\7\175\1\0\3\175\1\0\3\175\1\0\1\175\110\0"+
-    "\1\176\65\0\1\177\55\0\1\200\61\0\1\201\71\0"+
-    "\1\56\6\0\1\56\5\0\1\56\52\0\3\57\4\0"+
-    "\1\57\5\0\6\57\1\0\13\57\1\0\7\57\1\0"+
-    "\3\57\1\0\5\57\6\0\3\57\4\0\1\57\5\0"+
-    "\2\57\2\202\2\57\1\0\13\57\1\0\7\57\1\0"+
-    "\3\57\1\0\5\57\6\0\3\57\4\0\1\57\5\0"+
-    "\2\57\1\202\1\203\2\57\1\0\13\57\1\0\7\57"+
-    "\1\0\3\57\1\0\5\57\6\0\3\57\4\0\1\57"+
-    "\5\0\2\57\2\204\2\57\1\0\13\57\1\0\7\57"+
-    "\1\0\3\57\1\0\5\57\5\0\1\63\6\0\1\63"+
-    "\5\0\1\63\46\0\1\205\66\0\1\206\72\0\3\70"+
-    "\4\0\1\70\5\0\6\70\1\0\13\70\1\0\7\70"+
-    "\1\0\3\70\1\0\5\70\1\72\2\0\1\207\1\72"+
-    "\1\0\3\72\1\0\1\72\2\0\5\72\1\0\45\72"+
-    "\1\0\1\206\1\207\1\72\1\0\3\72\1\0\1\72"+
-    "\2\0\5\72\1\0\44\72\1\75\1\0\1\210\1\211"+
-    "\1\75\1\210\3\75\1\212\1\75\2\210\5\75\1\210"+
-    "\44\75\1\76\1\0\1\213\1\214\1\76\1\213\3\76"+
-    "\1\213\1\76\1\212\1\213\5\76\1\213\44\76\2\0"+
-    "\1\100\1\215\71\0\3\102\4\0\1\102\5\0\6\102"+
-    "\1\0\13\102\1\0\7\102\1\0\3\102\1\0\5\102"+
-    "\1\104\2\0\1\216\1\104\1\0\3\104\1\0\1\104"+
-    "\2\0\5\104\1\0\45\104\1\0\1\100\1\217\1\104"+
-    "\1\0\3\104\1\0\1\104\2\0\5\104\1\0\44\104"+
-    "\1\106\1\0\1\220\1\221\1\106\1\220\3\106\1\222"+
-    "\1\106\2\220\5\106\1\220\44\106\1\107\1\0\1\223"+
-    "\1\224\1\107\1\223\3\107\1\223\1\107\1\222\1\223"+
-    "\5\107\1\223\44\107\1\110\3\0\17\110\6\0\1\110"+
-    "\13\0\1\110\7\0\1\110\3\0\1\110\3\0\1\110"+
-    "\4\0\1\167\15\0\1\171\47\0\1\225\64\0\1\110"+
-    "\3\0\2\110\3\114\4\110\1\114\5\110\6\115\1\110"+
-    "\13\115\1\110\7\115\1\110\3\115\1\110\3\115\1\114"+
-    "\1\115\6\0\3\115\4\0\1\115\5\0\6\115\1\0"+
-    "\13\115\1\0\7\115\1\0\3\115\1\0\5\115\6\0"+
-    "\3\116\4\0\1\116\5\0\6\116\1\0\13\116\1\0"+
-    "\7\116\1\0\3\116\1\0\5\116\1\120\2\0\1\226"+
-    "\1\120\1\0\3\120\1\0\1\120\2\0\5\120\1\0"+
-    "\45\120\1\0\1\225\1\226\1\120\1\0\3\120\1\0"+
-    "\1\120\2\0\5\120\1\0\44\120\1\122\1\0\1\227"+
-    "\1\230\1\122\1\227\3\122\1\231\1\122\2\227\5\122"+
-    "\1\227\44\122\1\123\1\0\1\232\1\233\1\123\1\232"+
-    "\3\123\1\232\1\123\1\231\1\232\5\123\1\232\44\123"+
-    "\3\0\1\167\15\0\1\234\110\0\1\235\60\0\1\236"+
-    "\13\0\1\236\44\0\2\237\36\0\20\240\1\241\46\240"+
-    "\6\0\3\132\4\0\1\132\5\0\6\132\1\0\13\132"+
-    "\1\0\7\132\1\0\3\132\1\0\5\132\46\0\1\242"+
-    "\5\0\1\242\72\0\1\243\6\0\1\135\2\0\1\244"+
-    "\1\135\1\0\3\135\1\0\1\135\2\0\5\135\1\0"+
-    "\44\135\1\137\1\0\1\245\1\246\1\137\1\245\3\137"+
-    "\1\247\1\137\2\245\5\137\1\245\44\137\1\250\1\0"+
-    "\1\251\1\252\1\253\1\251\3\253\1\251\1\250\1\254"+
-    "\1\255\3\253\1\250\1\253\1\255\6\253\1\250\32\253"+
-    "\2\250\1\253\1\141\2\240\1\256\1\141\1\240\3\141"+
-    "\1\240\1\141\2\240\3\141\1\257\1\141\1\240\44\141"+
-    "\1\142\2\0\1\260\1\142\1\0\3\142\1\0\1\142"+
-    "\2\0\5\142\1\0\44\142\1\144\2\261\1\262\1\144"+
-    "\1\261\3\144\1\263\1\144\2\261\5\144\1\261\44\144"+
-    "\1\145\2\264\1\265\1\145\1\264\3\145\1\264\1\145"+
-    "\1\263\1\264\5\145\1\264\44\145\1\146\2\240\1\266"+
-    "\1\146\1\240\3\146\1\240\1\146\2\240\3\146\1\267"+
-    "\1\146\1\240\44\146\1\147\2\0\1\270\1\147\1\0"+
-    "\3\147\1\0\1\147\2\0\5\147\1\0\44\147\1\151"+
-    "\1\0\1\271\1\272\1\151\1\271\3\151\1\273\1\151"+
-    "\2\271\5\151\1\271\44\151\1\274\1\0\1\275\1\276"+
-    "\1\277\1\275\3\277\1\275\1\274\1\300\1\301\3\277"+
-    "\1\274\1\277\1\301\6\277\1\274\32\277\2\274\1\277"+
-    "\2\153\1\0\66\153\1\0\16\153\1\302\45\153\1\156"+
-    "\2\0\1\303\1\156\1\0\3\156\1\0\1\156\2\0"+
-    "\5\156\1\0\44\156\1\160\1\0\1\304\1\305\1\160"+
-    "\1\304\3\160\1\306\1\160\2\304\5\160\1\304\44\160"+
-    "\1\307\1\0\1\310\1\311\1\312\1\310\3\312\1\310"+
-    "\1\307\1\313\1\314\3\312\1\307\1\312\1\314\6\312"+
-    "\1\307\32\312\2\307\1\312\2\162\1\0\66\162\1\0"+
-    "\16\162\1\315\45\162\7\0\1\316\21\0\1\317\42\0"+
-    "\1\172\2\0\1\40\3\0\1\172\5\0\1\172\6\40"+
-    "\1\0\13\40\1\0\7\40\1\0\3\40\1\0\3\40"+
-    "\1\0\1\40\1\320\1\0\3\320\1\321\3\173\1\320"+
-    "\1\0\1\320\1\321\1\173\1\320\1\0\2\320\1\321"+
-    "\6\173\1\320\13\173\1\320\7\173\1\320\3\173\1\322"+
-    "\5\173\15\0\1\323\6\0\1\324\42\0\1\320\1\0"+
-    "\3\320\1\321\3\175\1\320\1\0\1\320\1\321\1\175"+
-    "\1\320\1\0\2\320\1\321\6\175\1\320\13\175\1\320"+
-    "\7\175\1\320\3\175\1\325\5\175\31\0\1\317\37\0"+
-    "\1\326\66\0\1\327\72\0\3\57\4\0\1\57\5\0"+
-    "\4\57\2\330\1\0\13\57\1\0\7\57\1\0\3\57"+
-    "\1\0\5\57\6\0\3\57\4\0\1\57\5\0\4\57"+
-    "\1\330\1\331\1\0\13\57\1\0\7\57\1\0\3\57"+
-    "\1\0\5\57\6\0\3\57\4\0\1\57\5\0\6\57"+
-    "\1\0\13\57\1\0\1\57\1\332\5\57\1\0\3\57"+
-    "\1\0\5\57\1\210\1\0\7\210\1\212\55\210\1\213"+
-    "\1\0\11\213\1\212\53\213\1\220\1\0\7\220\1\222"+
-    "\55\220\1\223\1\0\11\223\1\222\53\223\1\227\1\0"+
-    "\7\227\1\231\55\227\1\232\1\0\11\232\1\231\53\232"+
-    "\32\0\1\333\30\0\1\333\40\0\1\334\13\0\1\334"+
-    "\54\0\1\335\10\0\1\335\57\0\1\336\14\0\1\336"+
-    "\72\0\1\337\4\0\1\245\1\0\7\245\1\247\55\245"+
-    "\1\250\1\0\1\251\1\340\1\250\1\251\3\250\1\251"+
-    "\1\250\1\247\1\251\5\250\1\251\44\250\1\251\1\0"+
-    "\11\251\1\247\53\251\1\250\1\0\1\251\1\340\1\250"+
-    "\1\251\3\250\1\251\1\250\1\341\1\251\5\250\1\251"+
-    "\44\250\13\0\1\342\53\0\1\251\1\0\11\251\1\341"+
-    "\53\251\11\261\1\263\55\261\13\264\1\263\53\264\1\271"+
-    "\1\0\7\271\1\273\55\271\1\274\1\0\1\275\1\343"+
-    "\1\274\1\275\3\274\1\275\1\274\1\273\1\275\5\274"+
-    "\1\275\44\274\1\275\1\0\11\275\1\273\53\275\1\274"+
-    "\1\0\1\275\1\343\1\274\1\275\3\274\1\275\1\274"+
-    "\1\344\1\275\5\274\1\275\44\274\13\0\1\345\53\0"+
-    "\1\275\1\0\11\275\1\344\53\275\2\153\1\0\26\153"+
-    "\1\346\35\153\1\304\1\0\7\304\1\306\55\304\1\307"+
-    "\1\0\1\310\1\347\1\307\1\310\3\307\1\310\1\307"+
-    "\1\306\1\310\5\307\1\310\44\307\1\310\1\0\11\310"+
-    "\1\306\53\310\1\307\1\0\1\310\1\347\1\307\1\310"+
-    "\3\307\1\310\1\307\1\350\1\310\5\307\1\310\44\307"+
-    "\13\0\1\351\53\0\1\310\1\0\11\310\1\350\53\310"+
-    "\2\162\1\0\26\162\1\352\35\162\7\0\1\353\111\0"+
-    "\1\354\34\0\1\320\1\0\10\320\1\0\4\320\1\0"+
-    "\41\320\1\0\6\320\1\0\3\320\1\321\4\320\1\0"+
-    "\1\320\1\321\2\320\1\0\2\320\1\321\36\320\1\355"+
-    "\5\320\15\0\1\323\43\0\1\356\22\0\1\357\14\0"+
-    "\3\357\2\0\1\357\10\0\1\357\1\0\2\357\3\0"+
-    "\1\357\2\0\2\357\11\0\1\57\1\360\1\57\4\0"+
-    "\1\57\5\0\6\57\1\0\13\57\1\0\7\57\1\0"+
-    "\3\57\1\0\5\57\6\0\3\57\4\0\1\57\5\0"+
-    "\6\57\1\0\11\57\1\361\1\57\1\0\7\57\1\0"+
-    "\3\57\1\0\5\57\35\0\1\362\13\0\1\362\44\0"+
-    "\2\363\63\0\2\364\75\0\1\365\13\0\1\365\44\0"+
-    "\2\366\41\0\2\367\1\0\3\367\2\0\1\254\4\367"+
-    "\1\0\10\367\1\0\32\367\2\0\1\367\3\0\2\370"+
-    "\1\0\3\370\2\0\1\300\4\370\1\0\10\370\1\0"+
-    "\32\370\2\0\1\370\2\153\1\0\27\153\1\371\34\153"+
-    "\3\0\2\372\1\0\3\372\2\0\1\313\4\372\1\0"+
-    "\10\372\1\0\32\372\2\0\1\372\2\162\1\0\27\162"+
-    "\1\373\34\162\33\0\1\374\114\0\1\355\22\0\1\357"+
-    "\14\0\3\357\2\0\1\357\10\0\1\357\1\0\2\357"+
-    "\3\0\1\357\1\0\1\356\2\357\11\0\3\57\4\0"+
-    "\1\57\5\0\6\57\1\0\7\57\1\375\3\57\1\0"+
-    "\7\57\1\0\3\57\1\0\5\57\6\0\3\57\4\0"+
-    "\1\57\5\0\6\57\1\0\6\57\1\376\4\57\1\0"+
-    "\7\57\1\0\3\57\1\0\5\57\46\0\1\377\5\0"+
-    "\1\377\54\0\1\u0100\63\0\1\u0101\10\0\1\u0101\55\0"+
-    "\1\u0102\10\0\1\u0102\60\0\1\u0103\24\0\2\153\1\0"+
-    "\30\153\1\u0104\33\153\2\162\1\0\30\162\1\u0105\33\162"+
-    "\34\0\1\u0106\40\0\3\57\4\0\1\57\5\0\6\57"+
-    "\1\0\13\57\1\0\3\57\1\u0107\3\57\1\0\3\57"+
-    "\1\0\5\57\6\0\3\57\4\0\1\57\5\0\6\57"+
-    "\1\0\3\57\1\u0108\7\57\1\0\3\57\1\u0108\3\57"+
-    "\1\0\3\57\1\0\5\57\47\0\1\u0109\60\0\1\u010a"+
-    "\14\0\1\u010a\54\0\1\u010b\47\0\2\u010c\72\0\1\u010d"+
-    "\30\0\1\u010d\3\0\2\153\1\0\31\153\1\u010e\32\153"+
-    "\2\162\1\0\31\162\1\u010f\32\162\35\0\1\u0110\37\0"+
-    "\3\57\4\0\1\57\5\0\6\57\1\0\13\57\1\0"+
-    "\6\57\1\u0111\1\0\3\57\1\0\5\57\5\0\1\u0112"+
-    "\3\57\3\0\1\u0112\1\57\4\0\1\u0112\6\57\1\0"+
-    "\13\57\1\0\7\57\1\0\3\57\1\0\5\57\37\0"+
-    "\1\u0113\10\0\1\u0113\53\0\1\u0114\13\0\1\u0114\52\0"+
-    "\1\u0115\13\0\1\u0115\15\0\2\153\1\0\32\153\1\u0116"+
-    "\31\153\2\162\1\0\32\162\1\u0117\31\162\34\0\1\u0118"+
-    "\40\0\3\57\4\0\1\57\5\0\5\57\1\u0119\1\0"+
-    "\13\57\1\0\7\57\1\0\3\57\1\0\5\57\5\0"+
-    "\1\u0112\6\0\1\u0112\5\0\1\u0112\44\0\2\153\1\0"+
-    "\31\153\1\u011a\32\153\2\162\1\0\31\162\1\u011b\32\162"+
-    "\31\0\1\u011c\43\0\3\57\4\0\1\57\5\0\6\57"+
-    "\1\0\5\57\1\u011d\5\57\1\0\7\57\1\0\3\57"+
-    "\1\0\5\57\2\153\1\0\26\153\1\u011e\35\153\2\162"+
-    "\1\0\26\162\1\u011f\35\162\6\0\3\57\4\0\1\57"+
-    "\5\0\6\57\1\0\7\57\1\u0120\3\57\1\0\7\57"+
-    "\1\0\3\57\1\0\5\57\6\0\3\57\4\0\1\57"+
-    "\5\0\6\57\1\0\13\57\1\0\7\57\1\0\3\57"+
-    "\1\0\4\57\1\u0121\6\0\3\57\4\0\1\57\5\0"+
-    "\6\57\1\0\5\57\1\u0122\5\57\1\0\7\57\1\0"+
-    "\3\57\1\0\5\57\6\0\3\57\4\0\1\57\5\0"+
-    "\6\57\1\0\5\57\1\u0123\5\57\1\0\7\57\1\0"+
-    "\3\57\1\0\5\57\6\0\3\57\4\0\1\57\5\0"+
-    "\6\57\1\0\13\57\1\0\3\57\1\u0124\3\57\1\0"+
-    "\3\57\1\0\5\57";
-
-  /** 
-   * The transition table of the DFA
-   */
-  final private static int yytrans [] = yy_unpack(yy_packed);
-
-
-  /* error codes */
-  final private static int YY_UNKNOWN_ERROR = 0;
-  // final private static int YY_ILLEGAL_STATE = 1;
-  final private static int YY_NO_MATCH = 2;
-  final private static int YY_PUSHBACK_2BIG = 3;
-
-  /* error messages for the codes above */
-  final private static String YY_ERROR_MSG[] = {
-    "Unkown internal scanner error",		//$NON-NLS-1$
-    "Internal error: unknown state",		//$NON-NLS-1$
-    "Error: could not match input",		//$NON-NLS-1$
-    "Error: pushback value was too large"	//$NON-NLS-1$
-  };
-
-  /**
-   * YY_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
-   */
-  private final static byte YY_ATTRIBUTE[] = {
-     1,  0,  0,  0,  0,  1,  0,  0,  1,  1,  1,  0,  1,  1,  1,  1, 
-     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  1, 
-     1,  1,  1,  9,  1,  9,  1,  1,  9,  9,  1,  1,  1,  1,  1,  1, 
-     1,  1,  1,  9,  1,  1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  9, 
-     1,  1,  9,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1,  9,  1, 
-     1,  1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
-     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1, 
-     1,  1,  1,  9,  9,  1,  9,  9,  1,  0,  1,  0,  1,  0,  0,  0, 
-     9,  1,  1,  1,  9,  9,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0, 
-     0,  9,  0,  0,  9,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0, 
-     9,  0,  0,  0,  0,  0,  9,  1,  0,  0,  1,  1,  0,  0,  1,  0, 
-     0,  0,  9,  0,  0,  0,  1,  0,  0,  0,  9,  1,  0,  0,  1,  1, 
-     0,  1,  0,  0,  0,  9,  1,  0,  0,  1,  1,  0,  1,  0,  0,  1, 
-     1,  9,  0,  0,  9,  9,  9,  1,  1,  1,  0,  0,  0,  0,  0,  0, 
-     1,  0,  0,  1,  0,  1,  0,  1,  0,  1,  9,  0,  1,  9,  0,  1, 
-     1,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  0,  1,  1,  0,  0, 
-     0,  0,  0,  1,  1,  0,  1,  1,  0,  0,  0,  9,  9,  1,  1,  0, 
-     1,  1,  9,  9,  9,  1,  1,  0,  1,  1,  1,  9,  1,  1,  1,  1, 
-     1,  1,  1,  1
-  };
-
-  /** the input device */
-  private java.io.Reader yy_reader;
-
-  /** the current state of the DFA */
-  private int yy_state;
-
-  /** the current lexical state */
-  private int yy_lexical_state = YYINITIAL;
-
-  /** this buffer contains the current text to be matched and is
-      the source of the yytext() string */
-  private char yy_buffer[] = new char[16384];
-
-  /** the textposition at the last accepting state */
-  private int yy_markedPos;
-
-  /** the textposition at the last state to be included in yytext */
-  private int yy_pushbackPos;
-
-  /** the current text position in the buffer */
-  private int yy_currentPos;
-
-  /** startRead marks the beginning of the yytext() string in the buffer */
-  private int yy_startRead;
-
-  /** endRead marks the last character in the buffer, that has been read
-      from input */
-  private int yy_endRead;
-
-  /** number of newlines encountered up to the start of the matched text */
-  private int yyline;
-
-  /** the number of characters up to the start of the matched text */
-  private int yychar;
-
-  /**
-   * the number of characters from the last newline up to the start of the 
-   * matched text
-   */
-  // private int yycolumn; 
-
-  /** 
-   * yy_atBOL == true <=> the scanner is currently at the beginning of a line
-   */
-  // private boolean yy_atBOL;
-
-  /** yy_atEOF == true <=> the scanner has returned a value for EOF */
-  private boolean yy_atEOF;
-
-  /** denotes if the user-EOF-code has already been executed */
-  private boolean yy_eof_done;
-
-  /* user code: */
-	private int fTokenCount = 0;
- 
-	// required holders for white-space compacting
-	private boolean fShouldLoadBuffered = false;
-	private String fBufferedContext = null;
-	private int fBufferedStart = 1;
-	private int fBufferedLength = 0;
-	private String f_context = null;
-
-	// state stack for handling embedded regions
-	private IntStack fStateStack = new IntStack();
-
-	private String context = null;
-	private int start = 0;
-	private int textLength = 0;
-	private int length = 0;
-
-	// offset for tracking position specific block tags
-	private int fOffset = 0;
-	
-	// the name of the current tag being opened
-	private String fCurrentTagName = null;
-
-	// the list of tag name BlockMarkers
-	private List fBlockMarkers = new ArrayList();
-
-	// required to not seek text blocks on an end tag
-	private boolean fIsBlockingEnabled = false;
-	private boolean fIsCaseSensitiveBlocking = true;
-
-	private XMLParserRegionFactory fRegionFactory = new XMLParserRegionFactory();
-/**
- * user method 
- */
-public final void addBlockMarker(BlockMarker marker) {
-	if(containsTagName(marker.getTagName()))
-		return;
-	fBlockMarkers.add(marker);
-}
-/**
- * user method 
- */
-public final void removeBlockMarker(BlockMarker marker) {
-	fBlockMarkers.remove(marker);
-}
-/**
- * user method 
- */
-public final void removeBlockMarker(String tagname) {
-	if (fBlockMarkers != null) {
-		Iterator blocks = fBlockMarkers.iterator();
-		while (blocks.hasNext()) {
-			if (((BlockMarker) blocks.next()).getTagName().equals(tagname))
-				blocks.remove();
-		}
-	}
-}
-/* user method */
-public final boolean isCaseSensitiveBlocking() {
-	return fIsCaseSensitiveBlocking;
-}
-/* user method */
-public final void setCaseSensitiveBlocking(boolean newValue) {
-	fIsCaseSensitiveBlocking = newValue;
-}
-/* user method */
-public boolean getBlockMarkerCaseSensitivity() {
-        return getBlockMarkerCaseSensitivity(fCurrentTagName);
-}
-/* user method */
-public boolean getBlockMarkerCaseSensitivity(String name) {
-	Iterator iterator = fBlockMarkers.iterator();
-	while(iterator.hasNext()) {
-		BlockMarker marker = (BlockMarker)iterator.next();
-		boolean casesensitive = marker.isCaseSensitive();
-		if(casesensitive && marker.getTagName().equals(name))
-			return casesensitive;
-		else if(!casesensitive && marker.getTagName().equalsIgnoreCase(name))
-			return casesensitive;
-	}
-	return true;
-}
-/* user method */
-public String getBlockMarkerContext() {
-	return getBlockMarkerContext(fCurrentTagName);
-}
-/* user method */
-public String getBlockMarkerContext(String name) {
-	Iterator iterator = fBlockMarkers.iterator();
-	while(iterator.hasNext()) {
-		BlockMarker marker = (BlockMarker)iterator.next();
-		if(marker.getTagName().equals(name))
-			return marker.getContext();
-	}
-	return BLOCK_TEXT;
-}
-/* user method */
-public List getBlockMarkers() {
-	return fBlockMarkers;
-}
-/* user method */
-public final int getOffset() {
-	return fOffset + yychar;
-}
-private final boolean isBlockMarker() {
-	return isBlockMarker(fCurrentTagName);
-}
-private final boolean isBlockMarker(String tagName) {
-	if (!fIsBlockingEnabled)
-		return false;
-	return containsTagName(tagName);
-}
-/**
- * user method
- */
-public final void beginBlockTagScan(String newTagName) {
-	beginBlockMarkerScan(newTagName, BLOCK_TEXT);
-}
-/**
- * user method
- *
- * Special tokenizer setup.  Allows tokenization to be initiated at the
- * start of a text block within a "newTagName" tag.
- *
- * Example: 
- *	Tokenizer toker = new Tokenizer();
- *	toker.setCaseSensitiveBlocking(false);
- *	toker.reset(new java.io.StringReader("afiuhqwkejhtasihgalkwhtq</scripter></scr></script>asgdasga"));
- *	toker.beginBlockMarkerScan("script", BLOCK_TEXT);
- *	toker.getRegions(); 
- *
- * Returns:
- *	BLOCK_TEXT: 0-40
- *	XML_END_TAG_OPEN: 41-42
- *	XML_TAG_NAME: 43-48
- *	XML_TAG_CLOSE: 49-49
- *	XML_CONTENT: 50-57
- *
- */
-public final void beginBlockMarkerScan(String newTagName, String blockcontext) {
-	yybegin(ST_BLOCK_TAG_SCAN);
-	fCurrentTagName = newTagName;
-}
-/**
- * Method doScan.
- * 
- * Returns a context region for all of the text from the current position upto the end of input or
- * to right *before* the first occurence of searchString
- * 
- * @param searchString - target string to search for ex.: "-->", "</tagname"
- * @param requireTailSeparator - whether the target must be immediately followed by whitespace or '>'
- * @param context - the context of the scanned region if non-zero length
- * @param exitState - the state to go to if the region was of non-zero length
- * @param abortState - the state to go to if the searchString was found immediately
- * @return String - the context found: the desired context on a non-zero length match, the abortContext on immediate success
- * @throws IOException
- */
-private final String doScan(String searchString, boolean requireTailSeparator, String searchContext, int exitState, int immediateFallbackState) throws IOException {
-	boolean stillSearching = true;
-	// Disable further block (probably)
-	fIsBlockingEnabled = false;
-	int searchStringLength = searchString.length();
-	int n = 0;
-	char lastCheckChar;
-	int i;
-	boolean same = false;
-	while (stillSearching) {
-		n = 0;
-		// Ensure that enough data from the input exists to compare against the search String.
-		n = yy_advance();
-		while(n != YYEOF && yy_currentPos < searchStringLength)
-			n = yy_advance();
-		// If the input was too short or we've exhausted the input, stop immediately.
-		if (n == YYEOF) {
-			stillSearching = false;
-		}
-		else {
-			same = true;
-			// Ensure that we've not encountered a complete block (<%%>) that was *shorter* than the closeTagString and
-			// thus found twice at current-targetLength [since the first scan would have come out this far anyway].
-			// Check the characters in the target versus the last targetLength characters read from the buffer
-			// and see if it matches
-			
-			// safety check for array accesses (yy_currentPos is the *last* character we can check against)
-			if(yy_currentPos >= searchStringLength && yy_currentPos <= yy_buffer.length) {
-				for(i = 0; i < searchStringLength; i++) {
-					if(same && fIsCaseSensitiveBlocking)
-						same = yy_buffer[i + yy_currentPos - searchStringLength] == searchString.charAt(i);
-					else if(same && !fIsCaseSensitiveBlocking)
-						same = Character.toLowerCase(yy_buffer[i + yy_currentPos - searchStringLength]) == Character.toLowerCase(searchString.charAt(i));
-				}
-			}
-			// safety check failed; no match is possible right now
-			else {
-				same = false;
-			}
-			if (same && requireTailSeparator && yy_currentPos < yy_buffer.length) {
-				// Additional check for close tags to ensure that targetString="</script" doesn't match
-				// "</scriptS"
-				lastCheckChar = yy_buffer[yy_currentPos];
-				// Succeed on "</script>" and "</script "
-				if(lastCheckChar == '>' || Character.isWhitespace(lastCheckChar))
-					stillSearching = false;
-			}
-			else {
-				stillSearching = !same || (yy_currentPos < yy_startRead + searchStringLength);
-			}
-		}
-	}
-	if (n != YYEOF || same) {
-		// We've stopped short of the end or definitely found a match
-		yy_markedPos = yy_currentPos - searchStringLength;
-		yy_currentPos = yy_markedPos + 1;
-		// If the searchString occurs at the very beginning of what would have
-		// been a Block, resume scanning normally immediately
-		if (yy_markedPos == yy_startRead) {
-			yybegin(immediateFallbackState);
-			return primGetNextToken();
-		}
-	}
-	else {
-		// We ran through the rest of the input
-		yy_markedPos = yy_currentPos;
-		yy_currentPos++;
-	}
-	yybegin(exitState);
-	// If the ending occurs at the very beginning of what would have
-	// been a Block, resume scanning normally immediately
-	if(yy_markedPos == yy_startRead)
-		return primGetNextToken();
-	return searchContext;
-}
-/**
- * user method
- *
- * A generic lookahead-like operation
- */
-private final String doBlockScan(String target, String targetContext, int immediateFallbackState) throws IOException {
-	return doScan(target, false, targetContext, immediateFallbackState, immediateFallbackState);
-}
-/**
- * user method 
- * does a lookahead for the current tag name
- */
-private final String doBlockTagScan() throws IOException {
-        fIsCaseSensitiveBlocking = getBlockMarkerCaseSensitivity();
-	return doScan("</" + fCurrentTagName, true, getBlockMarkerContext(fCurrentTagName), YYINITIAL, YYINITIAL);
-}
-/**
- * user method
- *
- * Converts the raw context String returned by the primGetNextToken()
- * method into a full ITextRegion by pulling in values for the
- * current offset within the scanning text.
- *
- * Returns null when EOF is encountered and attaches intermittently
- * discovered whitespace onto the end of useful regions.
- *
- * Note that this algorithm caches the token following the one being returned
- * so that whitespace can be collapsed.
- */
-public final ITextRegion getNextToken() throws IOException {
-	// load the starting non-whitespace token (assume that it is so)
-	if (fShouldLoadBuffered) {
-		context = fBufferedContext;
-		start = fBufferedStart;
-		textLength = length = fBufferedLength;
-		fShouldLoadBuffered = false;
-	}
-	else {
-		context = primGetNextToken();
-		if (context == XML_TAG_NAME) {
-			if(containsTagName(yy_buffer, yy_startRead, yy_markedPos-yy_startRead))
-				fCurrentTagName = yytext();
-			else
-				fCurrentTagName = null;
-		}
-		else if (context == XML_TAG_OPEN) {
-			fIsBlockingEnabled = true;
-		}
-		else if (context == XML_END_TAG_OPEN) {
-			fIsBlockingEnabled = false;
-		}
-		start = yychar;
-		textLength = length = yylength();
-		if (yy_atEOF) {
-			fTokenCount++;
-			return null;
-		}
-	}
-	// store the next token
-	f_context = primGetNextToken();
-	if (f_context == XML_TAG_NAME) {
-		if(containsTagName(yy_buffer, yy_startRead, yy_markedPos-yy_startRead))
-			fCurrentTagName = yytext();
-		else
-			fCurrentTagName = null;
-	}
-	else if (f_context == XML_TAG_OPEN) {
-		fIsBlockingEnabled = true;
-	}
-	else if (f_context == XML_END_TAG_OPEN) {
-		fIsBlockingEnabled = false;
-	}
-	fBufferedContext = f_context;
-	fBufferedStart = yychar;
-	fBufferedLength = yylength();
-	fShouldLoadBuffered = true;
-	if (fBufferedContext == WHITE_SPACE) {
-		fShouldLoadBuffered = false;
-		length += fBufferedLength;
-	}
-	if (context == null) {
-		// EOF
-		if (Debug.debugTokenizer) {
-			System.out.println(getClass().getName() + " discovered " + fTokenCount + " tokens."); //$NON-NLS-2$//$NON-NLS-1$
-		}
-		return null;
-	}
-	fTokenCount++;
-	return fRegionFactory.createToken(context, start, textLength, length, null, fCurrentTagName);
-}
-/* user method */
-public XMLTokenizer(){
-	super();
-}
-/* user method */
-public XMLTokenizer(char[] charArray){
-		this(new CharArrayReader(charArray));
-}
-/* user method */
-public void reset(char[] charArray) {
-	reset(new CharArrayReader(charArray), 0);
-}
-/* user method */
-public void reset(char[] charArray, int newOffset) {
-	reset(new CharArrayReader(charArray), newOffset);
-}
-/* user method */
-public void reset(java.io.InputStream in) {
-	reset(new java.io.InputStreamReader(in), 0);
-}
-/* user method */
-public void reset(java.io.InputStream in, int newOffset) {
-	reset(new java.io.InputStreamReader(in), newOffset);
-}
-/* user method */
-public void reset(java.io.Reader in) {
-	reset(in, 0);
-}
-/**
- * user method *
- *
- * Reset internal counters and vars to "newly created" values, in the hopes
- * that resetting a pre-existing tokenizer is faster than creating a new one.
- *
- * This method contains code blocks that were essentially duplicated from the
- * <em>generated</em> output of this specification before this method was
- * added.  Those code blocks were under the above copyright.
- */
-public void reset(java.io.Reader in, int newOffset) {
-	if (Debug.debugTokenizer) {
-		System.out.println("resetting tokenizer");//$NON-NLS-1$
-	}
-	fOffset = newOffset;
-
-	/* the input device */
-	yy_reader = in;
-
-	/* the current state of the DFA */
-	yy_state = 0;
-
-	/* the current lexical state */
-	yy_lexical_state = YYINITIAL;
-
-	/* this buffer contains the current text to be matched and is
-	the source of the yytext() string */
-	java.util.Arrays.fill(yy_buffer, (char)0);
-
-	/* the textposition at the last accepting state */
-	yy_markedPos = 0;
-
-	/* the textposition at the last state to be included in yytext */
-	yy_pushbackPos = 0;
-
-	/* the current text position in the buffer */
-	yy_currentPos = 0;
-
-	/* startRead marks the beginning of the yytext() string in the buffer */
-	yy_startRead = 0;
-
-	/** 
-	 * endRead marks the last character in the buffer, that has been read
-	 * from input 
-	 */
-	yy_endRead = 0;
-
-	/* number of newlines encountered up to the start of the matched text */
-	yyline = 0;
-
-	/* the number of characters up to the start of the matched text */
-	yychar = 0;
-
-	/* yy_atEOF == true <=> the scanner has returned a value for EOF */
-	yy_atEOF = false;
-
-	/* denotes if the user-EOF-code has already been executed */
-	yy_eof_done = false;
-
-
-	/* user vars: */
-	fTokenCount = 0;
- 
-	fShouldLoadBuffered = false;
-	fBufferedContext = null;
-	fBufferedStart = 1;
-	fBufferedLength = 0;
-	fStateStack = new IntStack();
-
-	context = null;
-	start = 0;
-	textLength = 0;
-	length = 0;
-}
-
-	/**
-	 * user method
-	 *
-	 */
-	public BlockTokenizer newInstance() {
-		XMLTokenizer newInstance = new XMLTokenizer();
-		// global tagmarkers can be shared; they have no state and 
-		// are never destroyed (e.g. 'release')
-		for(int i = 0; i < fBlockMarkers.size(); i++) {
-			BlockMarker blockMarker = (BlockMarker) fBlockMarkers.get(i);
-			if(blockMarker.isGlobal())
-				newInstance.addBlockMarker(blockMarker);
-		}
-		return newInstance;
-	}
-/* user method */
-private final String scanXMLCommentText() throws IOException {
-	// Scan for '-->' and return the text up to that point as
-	//   XML_COMMENT_TEXT unless the string occurs IMMEDIATELY, in which
-	//  case change to the ST_XML_COMMENT_END state and return the next
-	//  context as usual.
-	return doScan("-->", false, XML_COMMENT_TEXT, ST_XML_COMMENT_END, ST_XML_COMMENT_END);
-}
-
-
-  /**
-   * 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 XMLTokenizer(java.io.Reader in) {
-    this.yy_reader = in;
-  }
-
-  /**
-   * Creates a new scanner.
-   * There is also java.io.Reader version of this constructor.
-   *
-   * @param   in  the java.io.Inputstream to read input from.
-   */
-  public XMLTokenizer(java.io.InputStream in) {
-    this(new java.io.InputStreamReader(in));
-  }
-
-  /** 
-   * Unpacks the compressed DFA transition table.
-   *
-   * @param packed   the packed transition table
-   * @return         the unpacked transition table
-   */
-  private static int [] yy_unpack(String packed) {
-    int [] trans = new int[11055];
-    int i = 0;  /* index in packed string  */
-    int j = 0;  /* index in unpacked array */
-    while (i < 3734) {
-      int count = packed.charAt(i++);
-      int value = packed.charAt(i++);
-      value--;
-      do trans[j++] = value; while (--count > 0);
-    }
-    return trans;
-  }
-
-  /** 
-   * Unpacks the compressed character translation table.
-   *
-   * @param packed   the packed character translation table
-   * @return         the unpacked character translation table
-   */
-  private static char [] yy_unpack_cmap(String packed) {
-    char [] map = new char[0x10000];
-    int i = 0;  /* index in packed string  */
-    int j = 0;  /* index in unpacked array */
-    while (i < 1372) {
-      int  count = packed.charAt(i++);
-      char value = packed.charAt(i++);
-      do map[j++] = value; while (--count > 0);
-    }
-    return map;
-  }
-
-
-  /**
-   * Gets the next input character.
-   *
-   * @return      the next character of the input stream, EOF if the
-   *              end of the stream is reached.
-   * @exception   IOException  if any I/O-Error occurs
-   */
-  private int yy_advance() throws java.io.IOException {
-
-    /* standard case */
-    if (yy_currentPos < yy_endRead) return yy_buffer[yy_currentPos++];
-
-    /* if the eof is reached, we don't need to work hard */ 
-    if (yy_atEOF) return YYEOF;
-
-    /* otherwise: need to refill the buffer */
-
-    /* first: make room (if you can) */
-    if (yy_startRead > 0) {
-      System.arraycopy(yy_buffer, yy_startRead, 
-                       yy_buffer, 0, 
-                       yy_endRead-yy_startRead);
-
-      /* translate stored positions */
-      yy_endRead-= yy_startRead;
-      yy_currentPos-= yy_startRead;
-      yy_markedPos-= yy_startRead;
-      yy_pushbackPos-= yy_startRead;
-      yy_startRead = 0;
-    }
-
-    /* is the buffer big enough? */
-    if (yy_currentPos >= yy_buffer.length) {
-      /* if not: blow it up */
-      char newBuffer[] = new char[yy_currentPos*2];
-      System.arraycopy(yy_buffer, 0, newBuffer, 0, yy_buffer.length);
-      yy_buffer = newBuffer;
-    }
-
-    /* finally: fill the buffer with new input */
-    int numRead = yy_reader.read(yy_buffer, yy_endRead, 
-                                            yy_buffer.length-yy_endRead);
-
-    if ( numRead == -1 ) return YYEOF;
-
-    yy_endRead+= numRead;
-
-    return yy_buffer[yy_currentPos++];
-  }
-
-    
-  /**
-   * Closes the input stream.
-   */
-  final public void yyclose() throws java.io.IOException {
-    yy_atEOF = true;            /* indicate end of file */
-    yy_endRead = yy_startRead;  /* invalidate buffer    */
-    yy_reader.close();
-  }
-
-
-  /**
-   * Returns the current lexical state.
-   */
-  final public int yystate() {
-    return yy_lexical_state;
-  }
-
-  /**
-   * Enters a new lexical state
-   *
-   * @param newState the new lexical state
-   */
-  final public void yybegin(int newState) {
-    yy_lexical_state = newState;
-  }
-
-
-  /**
-   * Returns the text matched by the current regular expression.
-   */
-  final public String yytext() {
-    return new String( yy_buffer, yy_startRead, yy_markedPos-yy_startRead );
-  }
-
-  /**
-   * Returns the length of the matched text region.
-   */
-  final public int yylength() {
-    return yy_markedPos-yy_startRead;
-  }
-
-
-  /**
-   * Reports an error that occured while scanning - from the SED JFlex skeleton
-   *
-   * @param   errorCode  the code of the errormessage to display
-   */
-  private void yy_ScanError(int errorCode) {
-    try {
-      Logger.log(Logger.ERROR, YY_ERROR_MSG[errorCode]);
-    }
-    catch (ArrayIndexOutOfBoundsException e) {
-      Logger.log(Logger.ERROR, YY_ERROR_MSG[YY_UNKNOWN_ERROR]);
-    }
-    // DO NOT EXIT the VM on an error
-    // System.exit(1);
-  } 
-
-
-  /**
-   * Pushes the specified amount of characters back into the input stream.
-   *
-   * They will be read again by then next call of the scanning method
-   *
-   * @param number  the number of characters to be read again.
-   *                This number must not be greater than yylength()!
-   */
-  void yypushback(int number) {
-    if ( number > yylength() )
-      yy_ScanError(YY_PUSHBACK_2BIG);
-
-    yy_markedPos -= number;
-  }
-
-	/**
-	 * user method - skeleton.sed
-	 */
-	protected final boolean containsTagName(char[] markerTagName, int offset, int tagnameLength) {
-		for(int j = 0; j < fBlockMarkers.size(); j++) {
-			BlockMarker marker = (BlockMarker)fBlockMarkers.get(j);
-			if(marker.getTagName().length() == tagnameLength) {
-				boolean matchesSoFar = true;
-				for(int i = 0; i < tagnameLength && matchesSoFar; i++) {
-					if(marker.isCaseSensitive()) {
-						if(marker.getTagName().charAt(i) != markerTagName[i + offset])
-							matchesSoFar = false;
-					}
-					else {
-						if(Character.toLowerCase(marker.getTagName().charAt(i)) != Character.toLowerCase(markerTagName[i + offset]))
-							matchesSoFar = false;
-					}
-				}
-				if(matchesSoFar)
-					return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * user method - skeleton.sed
-	 *
-	 * Return ALL of the regions scannable within the remaining text
-	 * Note: for verification use
-	 */
-	public final List getRegions() {
-		List tokens = new ArrayList();
-		ITextRegion region = null;
-		try {
-			region = getNextToken();
-			while(region != null) {
-				if (region != null) {
-					tokens.add(region);
-				}
-				region = getNextToken();
-			}
-		}
-		catch (StackOverflowError e) {
-			Logger.logException(getClass().getName()+": input could not be tokenized correctly at position " + getOffset(), e);//$NON-NLS-1$
-			throw e;
-		}
-		catch (Exception e) {
-			// Since this is convenience method and NOT the recommended 
-			// way of getting tokens, many errors are simply hidden
-			Logger.logException("Exception not handled retrieving regions: " + e.getLocalizedMessage(), e);//$NON-NLS-1$
-		}
-		return tokens;
-	}
-	/**
-	 * user method - skeleton.sed
-	 */
-	private final void dump(String s) {
-		if (Debug.debugTokenizer) {
-			System.out.println(s + " (" + yychar + "-" + //$NON-NLS-2$//$NON-NLS-1$
-				(yylength() + yychar) + "):\'" +//$NON-NLS-1$
-					StringUtils.escape(yytext()) + "\'");//$NON-NLS-1$
-		}
-	}
-	/* user method  - skeleton.sed */
-	public final boolean isEOF() {
-		return yy_atEOF;
-	}
-/* user method - skeleton.sed */
-protected final boolean containsTagName(String markerTagName) {
-	Iterator blocks = fBlockMarkers.iterator();
-	while(blocks.hasNext()) {
-		BlockMarker marker = (BlockMarker)blocks.next();
-		if(marker.isCaseSensitive()) {
-			if(marker.getTagName().equals(markerTagName))
-				return true;
-		}
-		else {
-			if(marker.getTagName().equalsIgnoreCase(markerTagName))
-				return true;
-		}
-	}
-	return false;
-}
-
-  /**
-   * Contains user EOF-code, which will be executed exactly once,
-   * when the end of file is reached
-   */
-  private void yy_do_eof() {
-    if (!yy_eof_done) {
-      yy_eof_done = true;
-    // do nothing, this is the downstream parser's job
-
-    }
-  }
-
-
-  /**
-   * Resumes scanning until the next regular expression is matched,
-   * the end of input is encountered or an I/O-Error occurs.
-   *
-   * @return      the next token
-   * @exception   IOException  if any I/O-Error occurs
-   */
-  public String primGetNextToken() throws java.io.IOException {
-    int yy_input;
-    int yy_action;
-
-
-    while (true) {
-
-      yychar+= yylength();
-
-      boolean yy_counted = false;
-      for (yy_currentPos = yy_startRead; yy_currentPos < yy_markedPos;
-                                                      yy_currentPos++) {
-        switch (yy_buffer[yy_currentPos]) {
-        case '\r':
-          yyline++;
-          yy_counted = true;
-          break;
-        case '\n':
-          if (yy_counted)
-            yy_counted = false;
-          else {
-            yyline++;
-          }
-          break;
-        default:
-          yy_counted = false;
-        }
-      }
-
-      if (yy_counted) {
-        if ( yy_advance() == '\n' ) yyline--;
-        if ( !yy_atEOF ) yy_currentPos--;
-      }
-
-      yy_action = -1;
-
-      yy_currentPos = yy_startRead = yy_markedPos;
-
-      yy_state = yy_lexical_state;
-
-
-      yy_forAction: {
-        while (true) {
-    
-          yy_input = yy_advance();
-
-          if ( yy_input == YYEOF ) break yy_forAction;
-
-          int yy_next = yytrans[ yy_rowMap[yy_state] + yycmap[yy_input] ];
-          if (yy_next == -1) break yy_forAction;
-          yy_state = yy_next;
-
-          int yy_attributes = YY_ATTRIBUTE[yy_state];
-          if ( (yy_attributes & 1) > 0 ) {
-            yy_action = yy_state; 
-            yy_markedPos = yy_currentPos; 
-            if ( (yy_attributes & 8) > 0 ) break yy_forAction;
-          }
-
-        }
-      }
-
-
-      switch (yy_action) {    
-
-        case 291: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("XSL processing instruction target");//$NON-NLS-1$
-        yybegin(ST_XML_PI_ATTRIBUTE_NAME);
-        return XML_TAG_NAME;
- }
-        case 293: break;
-        case 283: 
-        case 285: 
-        case 286: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nCDATA start");//$NON-NLS-1$
-	fStateStack.push(yystate());
-	yybegin(ST_CDATA_TEXT);
-	return XML_CDATA_OPEN;
- }
-        case 294: break;
-        case 276: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("element");//$NON-NLS-1$
-	yybegin(ST_XML_ELEMENT_DECLARATION);
-	return XML_ELEMENT_DECLARATION;
- }
-        case 295: break;
-        case 275: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("attlist");//$NON-NLS-1$
-	yybegin(ST_XML_ATTLIST_DECLARATION);
-	return XML_ATTLIST_DECLARATION;
- }
-        case 296: break;
-        case 274: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("doctype");//$NON-NLS-1$
-	yybegin(ST_XML_DOCTYPE_DECLARATION);
-	return XML_DOCTYPE_DECLARATION;
- }
-        case 297: break;
-        case 268: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("doctype external id");//$NON-NLS-1$
-	yybegin(ST_XML_DOCTYPE_ID_PUBLIC);
-	return XML_DOCTYPE_EXTERNAL_ID_PUBLIC;
- }
-        case 298: break;
-        case 267: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("doctype external id");//$NON-NLS-1$
-	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
-	return XML_DOCTYPE_EXTERNAL_ID_SYSTEM;
- }
-        case 299: break;
-        case 263: 
-        case 273: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction target");//$NON-NLS-1$
-        yybegin(ST_DHTML_ATTRIBUTE_NAME);
-        return XML_TAG_NAME;
- }
-        case 300: break;
-        case 237: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nCharRef");//$NON-NLS-1$
-	return XML_CHAR_REFERENCE;
- }
-        case 301: break;
-        case 234: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\ncomment start");//$NON-NLS-1$
-	yybegin(ST_XML_COMMENT);
-	return XML_COMMENT_OPEN;
- }
-        case 302: break;
-        case 215: 
-        case 216: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("XML processing instruction target");//$NON-NLS-1$
-        yybegin(ST_XML_PI_ATTRIBUTE_NAME);
-        return XML_TAG_NAME;
- }
-        case 303: break;
-        case 214: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("comment end");//$NON-NLS-1$
-	yybegin(YYINITIAL);
-	return XML_COMMENT_CLOSE;
- }
-        case 304: break;
-        case 213: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("CDATA end");//$NON-NLS-1$
-	yybegin(fStateStack.pop());
-	return XML_CDATA_CLOSE;
- }
-        case 305: break;
-        case 212: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nPEReference");//$NON-NLS-1$
-	return XML_PE_REFERENCE;
- }
-        case 306: break;
-        case 209: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nEntityRef");//$NON-NLS-1$
-	return XML_ENTITY_REFERENCE;
- }
-        case 307: break;
-        case 160: 
-        case 174: 
-        case 182: 
-          { 
-	return XML_DOCTYPE_INTERNAL_SUBSET;
- }
-        case 308: break;
-        case 148: 
-          { 
-        yybegin(YYINITIAL);
-	if(Debug.debugTokenizer)
-		dump("empty tag close");//$NON-NLS-1$
-        return XML_EMPTY_TAG_CLOSE;
- }
-        case 309: break;
-        case 133: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("XML processing instruction end");//$NON-NLS-1$
-        yybegin(YYINITIAL);
-        return XML_PI_CLOSE;
- }
-        case 310: break;
-        case 132: 
-          { 
-		// ended with nothing inside
-        yybegin(YYINITIAL);
-        return XML_PI_CLOSE;
- }
-        case 311: break;
-        case 128: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("processing instruction end");//$NON-NLS-1$
-        yybegin(YYINITIAL);
-        return XML_PI_CLOSE;
- }
-        case 312: break;
-        case 120: 
-          { 
-	fStateStack.push(yystate());
-	if(Debug.debugTokenizer)
-		dump("\ndeclaration start");//$NON-NLS-1$
-        yybegin(ST_XML_DECLARATION);
-	return XML_DECLARATION_OPEN;
- }
-        case 313: break;
-        case 119: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nprocessing instruction start");//$NON-NLS-1$
-	yybegin(ST_PI);
-        return XML_PI_OPEN;
- }
-        case 314: break;
-        case 63: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction end");//$NON-NLS-1$
-        yybegin(YYINITIAL);
-        return XML_PI_CLOSE;
- }
-        case 315: break;
-        case 57: 
-        case 59: 
-        case 60: 
-        case 61: 
-        case 137: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("XML processing instruction attribute value");//$NON-NLS-1$
-        yybegin(ST_XML_PI_ATTRIBUTE_NAME);
-        return XML_TAG_ATTRIBUTE_VALUE;
- }
-        case 316: break;
-        case 56: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("XML processing instruction '='");//$NON-NLS-1$
-        yybegin(ST_XML_PI_ATTRIBUTE_VALUE);
-        return XML_TAG_ATTRIBUTE_EQUALS;
- }
-        case 317: break;
-        case 55: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("XML processing instruction attribute name");//$NON-NLS-1$
-        yybegin(ST_XML_PI_EQUALS);
-        return XML_TAG_ATTRIBUTE_NAME;
- }
-        case 318: break;
-        case 51: 
-        case 52: 
-        case 53: 
-          { 
-	// block scan until close is found
-	return doScan("?>", false, XML_PI_CONTENT, ST_XML_PI_TAG_CLOSE, ST_XML_PI_TAG_CLOSE);
- }
-        case 319: break;
-        case 50: 
-          { 
-        yybegin(ST_PI_CONTENT);
-        return WHITE_SPACE;
- }
-        case 320: break;
-        case 46: 
-        case 47: 
-        case 48: 
-        case 49: 
-        case 129: 
-        case 130: 
-        case 131: 
-        case 217: 
-        case 239: 
-        case 240: 
-        case 252: 
-        case 253: 
-        case 262: 
-        case 272: 
-        case 280: 
-        case 284: 
-        case 287: 
-        case 288: 
-        case 289: 
-        case 290: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("processing instruction target");//$NON-NLS-1$
-        yybegin(ST_PI_WS);
-        return XML_TAG_NAME;
- }
-        case 321: break;
-        case 41: 
-        case 42: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("comment content");//$NON-NLS-1$
-	return scanXMLCommentText();
- }
-        case 322: break;
-        case 40: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("LINE FEED");//$NON-NLS-1$
-	return WHITE_SPACE;
- }
-        case 323: break;
-        case 0: 
-        case 31: 
-        case 122: 
-        case 124: 
-        case 207: 
-        case 208: 
-        case 236: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nXML content");//$NON-NLS-1$
-	return XML_CONTENT;
- }
-        case 324: break;
-        case 5: 
-        case 8: 
-        case 9: 
-        case 10: 
-        case 12: 
-        case 13: 
-        case 14: 
-        case 15: 
-        case 17: 
-        case 18: 
-        case 19: 
-        case 20: 
-        case 21: 
-        case 22: 
-        case 23: 
-        case 24: 
-        case 25: 
-        case 26: 
-        case 28: 
-        case 45: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("white space");//$NON-NLS-1$
-        return WHITE_SPACE;
- }
-        case 325: break;
-        case 16: 
-        case 71: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("inappropriate tag name");//$NON-NLS-1$
-	yybegin(YYINITIAL);
-        return XML_CONTENT;
- }
-        case 326: break;
-        case 27: 
-        case 106: 
-        case 107: 
-        case 193: 
-        case 229: 
-        case 248: 
-        case 259: 
-        case 269: 
-        case 277: 
-        case 281: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("elementdecl contentspec");//$NON-NLS-1$
-	return XML_ELEMENT_DECL_CONTENT;
- }
-        case 327: break;
-        case 29: 
-        case 113: 
-        case 114: 
-        case 204: 
-        case 233: 
-        case 250: 
-        case 260: 
-        case 270: 
-        case 278: 
-        case 282: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("attlist contentspec");//$NON-NLS-1$
-	return XML_ATTLIST_DECL_CONTENT;
- }
-        case 328: break;
-        case 32: 
-        case 72: 
-        case 83: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nstart tag open");//$NON-NLS-1$
-        yybegin(ST_XML_TAG_NAME);
-        return XML_TAG_OPEN;
- }
-        case 329: break;
-        case 33: 
-        case 34: 
-        case 37: 
-        case 38: 
-        case 39: 
-        case 43: 
-        case 44: 
-        case 54: 
-        case 58: 
-        case 62: 
-        case 64: 
-        case 68: 
-        case 74: 
-        case 80: 
-        case 85: 
-        case 86: 
-        case 87: 
-        case 88: 
-        case 90: 
-        case 91: 
-        case 93: 
-        case 98: 
-        case 103: 
-        case 110: 
-          { 
-	if (Debug.debugTokenizer)
-		System.out.println("!!!unexpected!!!: \"" + yytext() + "\":" + //$NON-NLS-2$//$NON-NLS-1$
-			yychar + "-" + (yychar + yylength()));//$NON-NLS-1$
-	return UNDEFINED;
- }
-        case 330: break;
-        case 35: 
-        case 36: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("CDATA text");//$NON-NLS-1$
-	String blockContext = doBlockScan("]]>", XML_CDATA_TEXT, ST_CDATA_END);//$NON-NLS-1$
-	if(blockContext == XML_CDATA_TEXT)
-		yybegin(ST_CDATA_END);
-	return blockContext;
- }
-        case 331: break;
-        case 65: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction attribute name");//$NON-NLS-1$
-        yybegin(ST_DHTML_EQUALS);
-        return XML_TAG_ATTRIBUTE_NAME;
- }
-        case 332: break;
-        case 66: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction '='");//$NON-NLS-1$
-        yybegin(ST_DHTML_ATTRIBUTE_VALUE);
-        return XML_TAG_ATTRIBUTE_EQUALS;
- }
-        case 333: break;
-        case 67: 
-        case 69: 
-        case 70: 
-        case 145: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction attribute value");//$NON-NLS-1$
-        yybegin(ST_DHTML_ATTRIBUTE_NAME);
-        return XML_TAG_ATTRIBUTE_VALUE;
- }
-        case 334: break;
-        case 73: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("tag close");//$NON-NLS-1$
-	if(isBlockMarker()) {
-        	yybegin(ST_BLOCK_TAG_SCAN);
-	}
-	else
-        	yybegin(YYINITIAL);
-        return XML_TAG_CLOSE;
- }
-        case 335: break;
-        case 75: 
-        case 76: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("tag name");//$NON-NLS-1$
-        yybegin(ST_XML_ATTRIBUTE_NAME);
-        return XML_TAG_NAME;
- }
-        case 336: break;
-        case 77: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("attr name");//$NON-NLS-1$
-        yybegin(ST_XML_EQUALS);
-        return XML_TAG_ATTRIBUTE_NAME;
- }
-        case 337: break;
-        case 78: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("equals");//$NON-NLS-1$
-        yybegin(ST_XML_ATTRIBUTE_VALUE);
-        return XML_TAG_ATTRIBUTE_EQUALS;
- }
-        case 338: break;
-        case 79: 
-        case 81: 
-        case 82: 
-        case 152: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("attr value");//$NON-NLS-1$
-        yybegin(ST_XML_ATTRIBUTE_NAME);
-        return XML_TAG_ATTRIBUTE_VALUE;
- }
-        case 339: break;
-        case 84: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("declaration end");//$NON-NLS-1$
-	if (Debug.debugTokenizer) {
-		if(fStateStack.peek()!=YYINITIAL)
-			System.out.println("end embedded region");//$NON-NLS-1$
-	}
-	yybegin(fStateStack.pop());
-	return XML_DECLARATION_CLOSE;
- }
-        case 340: break;
-        case 89: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("doctype type");//$NON-NLS-1$
-	yybegin(ST_XML_DOCTYPE_EXTERNAL_ID);
-	return XML_DOCTYPE_NAME;
- }
-        case 341: break;
-        case 92: 
-        case 94: 
-        case 95: 
-        case 96: 
-        case 166: 
-        case 167: 
-        case 170: 
-        case 171: 
-        case 224: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("doctype public reference");//$NON-NLS-1$
-	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
-	return XML_DOCTYPE_EXTERNAL_ID_PUBREF;
- }
-        case 342: break;
-        case 97: 
-        case 99: 
-        case 100: 
-        case 101: 
-        case 178: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("doctype system reference");//$NON-NLS-1$
-	yybegin(ST_XML_DECLARATION_CLOSE);
-	return XML_DOCTYPE_EXTERNAL_ID_SYSREF;
- }
-        case 343: break;
-        case 102: 
-        case 104: 
-        case 105: 
-        case 186: 
-        case 187: 
-        case 190: 
-        case 191: 
-        case 227: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("elementdecl name");//$NON-NLS-1$
-	yybegin(ST_XML_ELEMENT_DECLARATION_CONTENT);
-	return XML_ELEMENT_DECL_NAME;
- }
-        case 344: break;
-        case 108: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("elementdecl close");//$NON-NLS-1$
-	if (Debug.debugTokenizer) {
-		if(fStateStack.peek()!=YYINITIAL)
-			System.out.println("end embedded region");//$NON-NLS-1$
-	}
-	yybegin(fStateStack.pop());
-	return XML_DECLARATION_CLOSE;
- }
-        case 345: break;
-        case 109: 
-        case 111: 
-        case 112: 
-        case 197: 
-        case 198: 
-        case 201: 
-        case 202: 
-        case 231: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("attlist name");//$NON-NLS-1$
-	yybegin(ST_XML_ATTLIST_DECLARATION_CONTENT);
-	return XML_ATTLIST_DECL_NAME;
- }
-        case 346: break;
-        case 115: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("attlist close");//$NON-NLS-1$
-	if (Debug.debugTokenizer) {
-		if(fStateStack.peek()!=YYINITIAL)
-			System.out.println("end embedded region");//$NON-NLS-1$
-	}
-	yybegin(fStateStack.pop());
-	return XML_DECLARATION_CLOSE;
- }
-        case 347: break;
-        case 118: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nend tag open");//$NON-NLS-1$
-        yybegin(ST_XML_TAG_NAME);
-        return XML_END_TAG_OPEN;
- }
-        case 348: break;
-        case 116: 
-        case 117: 
-          { 
-		return doBlockTagScan();
-	 }
-        case 349: break;
-        default: 
-          if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
-            yy_atEOF = true;
-            yy_do_eof();
-              return null;
-          } 
-          else {
-            yy_ScanError(YY_NO_MATCH);
-          }
-      }
-    }
-  }    
-
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeEqualsRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeEqualsRegion.java
deleted file mode 100644
index 836dd41..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeEqualsRegion.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-
-public class AttributeEqualsRegion implements ITextRegion {
-	static private final byte fTextLength = 1;
-	static private final String fType = DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS;
-	private short fLength;
-	private int fStart;
-
-
-	public AttributeEqualsRegion() {
-		super();
-	}
-
-	public AttributeEqualsRegion(int start, int textLength, int length) {
-		this();
-		fStart = start;
-		fLength = (short) length;
-	}
-
-
-	public void adjustLength(int i) {
-		fLength += i;
-
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-
-	}
-
-	public void adjustTextLength(int i) {
-		// not supported
-
-	}
-
-	public void equatePositions(ITextRegion region) {
-		fStart = region.getStart();
-		fLength = (short) region.getLength();
-	}
-
-	public int getEnd() {
-		return fStart + fLength;
-	}
-
-	public int getLength() {
-		return fLength;
-	}
-
-	public int getStart() {
-		return fStart;
-	}
-
-	public int getTextEnd() {
-		return fStart + fTextLength;
-	}
-
-	public int getTextLength() {
-		return fTextLength;
-	}
-
-	public String getType() {
-		return fType;
-	}
-
-	public String toString() {
-		return RegionToStringUtil.toString(this);
-	}
-
-	public StructuredDocumentEvent updateRegion(Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
-		// can never be updated
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeNameRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeNameRegion.java
deleted file mode 100644
index a2c4158..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeNameRegion.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.core.internal.util.Utilities;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-public class AttributeNameRegion implements ITextRegion {
-	// specify correct type
-	static private final String fType = DOMRegionContext.XML_TAG_ATTRIBUTE_NAME;
-	private int fLength;
-	private int fStart;
-	private int fTextLength;
-
-	public AttributeNameRegion() {
-		super();
-	}
-
-	public AttributeNameRegion(int start, int textLength, int length) {
-		this();
-		fStart = start;
-		fTextLength = textLength;
-		fLength = length;
-	}
-
-	public void adjustLength(int i) {
-		fLength += i;
-
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-
-	}
-
-	public void adjustTextLength(int i) {
-		fTextLength += 1;
-
-	}
-
-	public void equatePositions(ITextRegion region) {
-		fStart = region.getStart();
-		fLength = region.getLength();
-		fTextLength = region.getTextLength();
-	}
-
-	public int getEnd() {
-		return fStart + fLength;
-	}
-
-	public int getLength() {
-		return fLength;
-	}
-
-	public int getStart() {
-		return fStart;
-	}
-
-	public int getTextEnd() {
-		return fStart + fTextLength;
-	}
-
-	public int getTextLength() {
-		return fTextLength;
-	}
-
-	public String getType() {
-		return fType;
-	}
-
-	public String toString() {
-		return RegionToStringUtil.toString(this);
-	}
-
-	public StructuredDocumentEvent updateRegion(Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
-		RegionChangedEvent result = null;
-		// if the region is an easy type (e.g. attribute value),
-		// and the requested changes are all
-		// alphanumeric, then make the change here locally.
-		// (This can obviously be made more sophisticated as the need arises,
-		// but should
-		// always follow this pattern.)
-		if (Debug.debugStructuredDocument) {
-			System.out.println("\t\tContextRegion::updateModel"); //$NON-NLS-1$
-			System.out.println("\t\t\tregion type is " + fType); //$NON-NLS-1$
-		}
-		boolean canHandle = false;
-		// note: we'll always handle deletes from these
-		// regions ... if its already that region,
-		// deleting something from it won't change its
-		// type. (remember, the calling program needs
-		// to insure we are not called, if not all contained
-		// on one region.
-		if ((changes == null) || (changes.length() == 0)) {
-			// delete case
-			// We can not do the quick delete, if
-			// if all the text in a region is to be deleted.
-			// Or, if the delete starts in the white space region.
-			// In these cases, a reparse is needed.
-			// Minor note, we use textEnd-start since it always
-			// less than or equal to end-start. This might
-			// cause us to miss a few cases we could have handled,
-			// but will prevent us from trying to handle funning cases
-			// involving whitespace.
-			if ((fStart >= getTextEnd()) || (Math.abs(lengthToReplace) >= getTextEnd() - getStart())) {
-				canHandle = false;
-			} else {
-				canHandle = true;
-			}
-		} else {
-			if ((RegionUpdateRule.canHandleAsWhiteSpace(this, parent, changes, requestStart, lengthToReplace)) || RegionUpdateRule.canHandleAsLetterOrDigit(this, parent, changes, requestStart, lengthToReplace)) {
-				canHandle = true;
-			} else {
-				canHandle = false;
-			}
-
-		}
-		if (canHandle) {
-			// at this point, we still have the old region. We won't create a
-			// new instance, we'll just update the one we have, by changing
-			// its end postion,
-			// The parent flatnode, upon return, has responsibility
-			// for updating sibling regions.
-			// and in turn, the structuredDocument itself has responsibility
-			// for
-			// updating the text store and down stream flatnodes.
-			if (Debug.debugStructuredDocument) {
-				System.out.println("change handled by region"); //$NON-NLS-1$
-			}
-			int lengthDifference = Utilities.calculateLengthDifference(changes, lengthToReplace);
-			// Note: we adjust both end and text end, because for any change
-			// that is in only the trailing whitespace region, we should not
-			// do a quick change,
-			// so 'canHandle' should have been false for those case.
-			// TO_DO_FUTURE: cache value of canHandleAsWhiteSpace from above
-			// If we are handling as whitespace, there is no need to increase
-			// the text length, only
-			// the total length is changing.
-			if (!RegionUpdateRule.canHandleAsWhiteSpace(this, parent, changes, requestStart, lengthToReplace)) {
-				fTextLength += lengthDifference;
-			}
-			fLength += lengthDifference;
-			result = new RegionChangedEvent(parent.getParentDocument(), requester, parent, this, changes, requestStart, lengthToReplace);
-		}
-
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeValueRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeValueRegion.java
deleted file mode 100644
index 7fbbbbf..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeValueRegion.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.core.internal.util.Utilities;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-public class AttributeValueRegion implements ITextRegion {
-	// specify correct type
-	static private final String fType = DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE;
-	private int fLength;
-	private int fStart;
-	private int fTextLength;
-
-	public AttributeValueRegion() {
-		super();
-	}
-
-	public AttributeValueRegion(int start, int textLength, int length) {
-		this();
-		fStart = start;
-		fTextLength = textLength;
-		fLength = length;
-	}
-
-	public void adjustLength(int i) {
-		fLength += i;
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-	}
-
-	public void adjustTextLength(int i) {
-		fTextLength += 1;
-	}
-
-	public void equatePositions(ITextRegion region) {
-		fStart = region.getStart();
-		fLength = region.getLength();
-		fTextLength = region.getTextLength();
-	}
-
-	public int getEnd() {
-		return fStart + fLength;
-	}
-
-	public int getLength() {
-		return fLength;
-	}
-
-	public int getStart() {
-		return fStart;
-	}
-
-	public int getTextEnd() {
-		return fStart + fTextLength;
-	}
-
-	public int getTextLength() {
-		return fTextLength;
-	}
-
-	public String getType() {
-		return fType;
-	}
-
-	public String toString() {
-		return RegionToStringUtil.toString(this);
-	}
-
-	public StructuredDocumentEvent updateRegion(Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
-		RegionChangedEvent result = null;
-		// if the region is an easy type (e.g. attribute value),
-		// and the requested changes are all
-		// alphanumeric, then make the change here locally.
-		// (This can obviously be made more sophisticated as the need arises,
-		// but should
-		// always follow this pattern.)
-		if (Debug.debugStructuredDocument) {
-			System.out.println("\t\tContextRegion::updateModel"); //$NON-NLS-1$
-			System.out.println("\t\t\tregion type is " + fType); //$NON-NLS-1$
-		}
-		boolean canHandle = false;
-		// note: we'll always handle deletes from these
-		// regions ... if its already that region,
-		// deleting something from it won't change its
-		// type. (remember, the calling program needs
-		// to insure we are not called, if not all contained
-		// on one region.
-		if ((changes == null) || (changes.length() == 0)) {
-			// delete case
-			// We can not do the quick delete, if
-			// if all the text in a region is to be deleted.
-			// Or, if the delete starts in the white space region.
-			// In these cases, a reparse is needed.
-			// Minor note, we use textEnd-start since it always
-			// less than or equal to end-start. This might
-			// cause us to miss a few cases we could have handled,
-			// but will prevent us from trying to handle funning cases
-			// involving whitespace.
-			if ((fStart >= getTextEnd()) || (Math.abs(lengthToReplace) >= getTextEnd() - getStart())) {
-				canHandle = false;
-			} else {
-				canHandle = true;
-			}
-		} else {
-			if ((RegionUpdateRule.canHandleAsWhiteSpace(this, parent, changes, requestStart, lengthToReplace)) || RegionUpdateRule.canHandleAsLetterOrDigit(this, parent, changes, requestStart, lengthToReplace)) {
-				canHandle = true;
-			} else {
-				canHandle = false;
-			}
-		}
-		if (canHandle) {
-			// at this point, we still have the old region. We won't create a
-			// new instance, we'll just update the one we have, by changing
-			// its end postion,
-			// The parent flatnode, upon return, has responsibility
-			// for updating sibling regions.
-			// and in turn, the structuredDocument itself has responsibility
-			// for
-			// updating the text store and down stream flatnodes.
-			if (Debug.debugStructuredDocument) {
-				System.out.println("change handled by region"); //$NON-NLS-1$
-			}
-			int lengthDifference = Utilities.calculateLengthDifference(changes, lengthToReplace);
-			// Note: we adjust both end and text end, because for any change
-			// that is in only the trailing whitespace region, we should not
-			// do a quick change,
-			// so 'canHandle' should have been false for those case.
-			// TO_DO_FUTURE: cache value of canHandleAsWhiteSpace from above
-			// If we are handling as whitespace, there is no need to increase
-			// the text length, only
-			// the total length is changing.
-			if (!RegionUpdateRule.canHandleAsWhiteSpace(this, parent, changes, requestStart, lengthToReplace)) {
-				fTextLength += lengthDifference;
-			}
-			// update length (and end) after above check for white space,
-			// since
-			// it looks to determine if at end of region.
-			fLength += lengthDifference;
-			result = new RegionChangedEvent(parent.getParentDocument(), requester, parent, this, changes, requestStart, lengthToReplace);
-		}
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/EmptyTagCloseRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/EmptyTagCloseRegion.java
deleted file mode 100644
index 339d692..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/EmptyTagCloseRegion.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-public class EmptyTagCloseRegion implements ITextRegion {
-	private int fLength = 2;
-	static private final byte fTextLength = 2;
-	static private final String fType = DOMRegionContext.XML_EMPTY_TAG_CLOSE;
-	private int fStart;
-
-
-	public EmptyTagCloseRegion() {
-		super();
-	}
-
-	public EmptyTagCloseRegion(int start, int textLength, int length) {
-		super();
-		fStart = start;
-		fLength = length;
-		if (fTextLength != textLength)
-			throw new RuntimeException("invalid for this region type"); //$NON-NLS-1$
-	}
-
-	public void adjustLength(int i) {
-		fLength += i;
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-
-	}
-
-	public void adjustTextLength(int i) {
-		throw new RuntimeException("invalid for this region type"); //$NON-NLS-1$
-	}
-
-	public void equatePositions(ITextRegion region) {
-		fStart = region.getStart();
-	}
-
-	public int getEnd() {
-		return fStart + fLength;
-	}
-
-	public int getLength() {
-		return fLength;
-	}
-
-	public int getStart() {
-		return fStart;
-	}
-
-	public int getTextEnd() {
-		return fStart + fTextLength;
-	}
-
-	public int getTextLength() {
-		return fTextLength;
-	}
-
-	public String getType() {
-		return fType;
-	}
-
-	public String toString() {
-		return RegionToStringUtil.toString(this);
-	}
-
-	public StructuredDocumentEvent updateRegion(Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
-		// can never be updated
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/EndTagOpenRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/EndTagOpenRegion.java
deleted file mode 100644
index 1ad5549..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/EndTagOpenRegion.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-public class EndTagOpenRegion implements ITextRegion {
-	static private final String fType = DOMRegionContext.XML_END_TAG_OPEN;
-	private int fLength;
-	private int fStart;
-	static private final byte fTextLength = 2;
-
-
-	public EndTagOpenRegion() {
-		super();
-	}
-
-	public EndTagOpenRegion(int start, int textLength, int length) {
-		this();
-		fStart = start;
-		if (fTextLength != textLength)
-			throw new RuntimeException("invalid for this region type"); //$NON-NLS-1$
-		fLength = length;
-	}
-
-	public EndTagOpenRegion(int start, int length) {
-		this();
-		fStart = start;
-		fLength = length;
-	}
-
-	public void adjustLength(int i) {
-		fLength += i;
-
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-
-	}
-
-
-	public void adjustTextLength(int i) {
-//		fTextLength += 1;
-		throw new RuntimeException("invalid for this region type"); //$NON-NLS-1$
-	}
-
-	public void equatePositions(ITextRegion region) {
-		fStart = region.getStart();
-		fLength = region.getLength();
-//		fTextLength = region.getTextLength();
-	}
-
-	public int getEnd() {
-		return fStart + fLength;
-	}
-
-	public int getLength() {
-		return fLength;
-	}
-
-	public int getStart() {
-		return fStart;
-	}
-
-	public int getTextEnd() {
-		return fStart + fTextLength;
-	}
-
-	public int getTextLength() {
-		return fTextLength;
-	}
-
-	public String getType() {
-		return fType;
-	}
-
-	public String toString() {
-		return RegionToStringUtil.toString(this);
-	}
-
-	public StructuredDocumentEvent updateRegion(Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
-		// can never be updated
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/GenericTemplateRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/GenericTemplateRegion.java
deleted file mode 100644
index e6064be..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/GenericTemplateRegion.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-/**
- * 
- * This class is not intended to be used, its just present to server as a
- * generic starting point for adding new specific region types.
- * 
- */
-
-public class GenericTemplateRegion implements ITextRegion {
-	// specify correct type
-	static private final String fType = DOMRegionContext.UNDEFINED;
-	private int fLength;
-	private int fStart;
-	private int fTextLength;
-
-
-	public GenericTemplateRegion() {
-		super();
-	}
-
-	public GenericTemplateRegion(int start, int textLength, int length) {
-		this();
-		fStart = start;
-		fTextLength = textLength;
-		fLength = length;
-	}
-
-	public void adjustLength(int i) {
-		fLength += i;
-
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-
-	}
-
-
-	public void adjustTextLength(int i) {
-		fTextLength += i;
-
-	}
-
-	public void equatePositions(ITextRegion region) {
-		fStart = region.getStart();
-		fLength = region.getLength();
-		fTextLength = region.getTextLength();
-	}
-
-	public int getEnd() {
-		return fStart + fLength;
-	}
-
-	public int getLength() {
-		return fLength;
-	}
-
-	public int getStart() {
-		return fStart;
-	}
-
-	public int getTextEnd() {
-		return fStart + fTextLength;
-	}
-
-	public int getTextLength() {
-		return fTextLength;
-	}
-
-	public String getType() {
-		return fType;
-	}
-
-	public String toString() {
-		return RegionToStringUtil.toString(this);
-	}
-
-	public StructuredDocumentEvent updateRegion(Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
-		// can never be updated
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/RegionToStringUtil.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/RegionToStringUtil.java
deleted file mode 100644
index af783f6..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/RegionToStringUtil.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-
-
-public class RegionToStringUtil {
-	static public String toString(ITextRegion region) {
-		String className = region.getClass().getName();
-		String shortClassName = className.substring(className.lastIndexOf(".") + 1); //$NON-NLS-1$
-		String result = shortClassName + "--> " + region.getType() + ": " + region.getStart() + "-" + region.getTextEnd() + (region.getTextEnd() != region.getEnd() ? ("/" + region.getEnd()) : ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-		// NOTE: if the document held by any region has been updated and the
-		// region offsets have not
-		// yet been updated, the output from this method invalid.
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/RegionUpdateRule.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/RegionUpdateRule.java
deleted file mode 100644
index 567d093..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/RegionUpdateRule.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.core.internal.util.Utilities;
-
-
-/**
- * 
- * This is a utility class to centralize 'region' update. Note: care must be
- * taken that is is not used for StructuredDocumentRegions, or container
- * regions, its only for "token regions"
- *  
- */
-public class RegionUpdateRule {
-
-	static public boolean allLetterOrDigit(String changes) {
-		boolean result = true;
-		for (int i = 0; i < changes.length(); i++) {
-			// TO_DO_FUTURE: check that a Java Letter or Digit is
-			// the same thing as an XML letter or digit
-			if (!(Character.isLetterOrDigit(changes.charAt(i)))) {
-				result = false;
-				break;
-			}
-		}
-		return result;
-	}
-
-	static public boolean allWhiteSpace(String changes) {
-		boolean result = true;
-		for (int i = 0; i < changes.length(); i++) {
-			if (!Character.isWhitespace(changes.charAt(i))) {
-				result = false;
-				break;
-			}
-		}
-		return result;
-	}
-
-	static public boolean canHandleAsLetterOrDigit(ITextRegion region, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
-		if (parent == null)
-			return canHandleAsLetterOrDigit(region, changes, requestStart, lengthToReplace);
-		boolean result = false;
-		// Make sure we are in a non-white space area
-		if ((requestStart <= (parent.getTextEndOffset(region))) && (allLetterOrDigit(changes))) {
-			result = true;
-		}
-		return result;
-	}
-
-	static public boolean canHandleAsLetterOrDigit(ITextRegion region, String changes, int requestStart, int lengthToReplace) {
-		boolean result = false;
-		// Make sure we are in a non-white space area
-		if ((requestStart <= (region.getTextEnd())) && (allLetterOrDigit(changes))) {
-			result = true;
-		}
-		return result;
-	}
-
-	static public boolean canHandleAsWhiteSpace(ITextRegion region, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
-		// we don't explect a null parent, but just in case!
-		// (in which case, we must be dealing with regions that are
-		// structuredDocumentRegions).
-		if (parent == null)
-			return canHandleAsWhiteSpace(region, changes, requestStart, lengthToReplace);
-		boolean result = false;
-		// if we are in the "white space" area of a region, then
-		// we don't want to handle, a reparse is needed.
-		// the white space region is consider anywhere that would
-		// leave whitespace between this character and the text part.
-		// and of course, we can insert whitespace in whitespace region
-		//
-		// if there is no whitespace in this region, no need to look further
-		if (region.getEnd() > region.getTextEnd()) {
-			// no need to add one to end of text, as we used to, since we
-			// change definition of length to equate to offset plus one.
-			// https://bugs.eclipse.org/bugs/show_bug.cgi?id=105866
-			// watch out for whitespace at end of text
-			if (requestStart >= parent.getTextEndOffset(region)) {
-				// ok, we are in the whitespace region, so we can't handle,
-				// unless
-				// we are just inserting whitespace.
-				if (allWhiteSpace(changes)) {
-					result = true;
-				} else {
-					result = false;
-				}
-			}
-		}
-		return result;
-	}
-
-	static public boolean canHandleAsWhiteSpace(ITextRegion region, String changes, int requestStart, int lengthToReplace) {
-		boolean result = false;
-		// if we are in the "white space" area of a region, then
-		// we don't want to handle, a reparse is needed.
-		// the white space region is consider anywhere that would
-		// leave whitespace between this character and the text part.
-		// and of course, we can insert whitespace in whitespace region
-		//
-		// if there is no whitespace in this region, no need to look further
-		if (region.getEnd() > region.getTextEnd()) {
-			// no need to add one to end of text, as we used to, since we
-			// change definition of length to equate to offset plus one.
-			// https://bugs.eclipse.org/bugs/show_bug.cgi?id=105866
-			// watch out for whitespace at end of text
-			if (requestStart >= region.getTextEnd()) {
-				// ok, we are in the whitespace region, so we can't handle,
-				// unless
-				// we are just inserting whitespace.
-				if (allWhiteSpace(changes)) {
-					result = true;
-				} else {
-					result = false;
-				}
-			}
-		}
-		return result;
-	}
-
-	// need an adjust text length API before this can be used
-	static public StructuredDocumentEvent updateModel(ITextRegion region, Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
-		RegionChangedEvent result = null;
-		// if the region is an easy type (e.g. attribute value),
-		// and the requested changes are all
-		// alphanumeric, then make the change here locally.
-		// (This can obviously be made more sophisticated as the need arises,
-		// but should
-		// always follow this pattern.)
-		if (Debug.debugStructuredDocument) {
-			System.out.println("\t\tContextRegion::updateModel"); //$NON-NLS-1$
-			System.out.println("\t\t\tregion type is " + region.getType()); //$NON-NLS-1$
-		}
-		boolean canHandle = false;
-		// note: we'll always handle deletes from these
-		// regions ... if its already that region,
-		// deleting something from it won't change its
-		// type. (remember, the calling program needs
-		// to insure we are not called, if not all contained
-		// on one region.
-		if ((changes == null) || (changes.length() == 0)) {
-			// delete case
-			// We can not do the quick delete, if
-			// if all the text in a region is to be deleted.
-			// Or, if the delete starts in the white space region.
-			// In these cases, a reparse is needed.
-			// Minor note, we use textEnd-start since it always
-			// less than or equal to end-start. This might
-			// cause us to miss a few cases we could have handled,
-			// but will prevent us from trying to handle funning cases
-			// involving whitespace.
-			if ((region.getStart() >= region.getTextEnd()) || (Math.abs(lengthToReplace) >= region.getTextEnd() - region.getStart())) {
-				canHandle = false;
-			} else {
-				canHandle = true;
-			}
-		} else {
-			if ((RegionUpdateRule.canHandleAsWhiteSpace(region, parent, changes, requestStart, lengthToReplace)) || RegionUpdateRule.canHandleAsLetterOrDigit(region, parent, changes, requestStart, lengthToReplace)) {
-				canHandle = true;
-			} else {
-				canHandle = false;
-			}
-		}
-		if (canHandle) {
-			// at this point, we still have the old region. We won't create a
-			// new instance, we'll just update the one we have, by changing
-			// its end postion,
-			// The parent flatnode, upon return, has responsibility
-			// for updating sibling regions.
-			// and in turn, the structuredDocument itself has responsibility
-			// for
-			// updating the text store and down stream flatnodes.
-			if (Debug.debugStructuredDocument) {
-				System.out.println("change handled by region"); //$NON-NLS-1$
-			}
-			int lengthDifference = Utilities.calculateLengthDifference(changes, lengthToReplace);
-			// Note: we adjust both end and text end, because for any change
-			// that is in only the trailing whitespace region, we should not
-			// do a quick change,
-			// so 'canHandle' should have been false for those case.
-			region.adjustLength(lengthDifference);
-			// TO_DO_FUTURE: cache value of canHandleAsWhiteSpace from above
-			// If we are handling as whitespace, there is no need to increase
-			// the text length, only
-			// the total length is changing.
-			if (!RegionUpdateRule.canHandleAsWhiteSpace(region, parent, changes, region.getStart(), lengthToReplace)) {
-				//				region.adjustTextLength(lengthDifference);
-			}
-			result = new RegionChangedEvent(parent.getParentDocument(), requester, parent, region, changes, requestStart, lengthToReplace);
-		}
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagCloseRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagCloseRegion.java
deleted file mode 100644
index 027ae4d..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagCloseRegion.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-public class TagCloseRegion implements ITextRegion {
-	static private final byte fLength = 1;
-	static private final byte fTextLength = 1;
-	static private final String fType = DOMRegionContext.XML_TAG_CLOSE;
-	private int fStart;
-
-
-	public TagCloseRegion() {
-		super();
-	}
-
-	public TagCloseRegion(int start) {
-		this();
-		fStart = start;
-	}
-
-	public void adjustLength(int i) {
-		throw new RuntimeException("invalid for this region type"); //$NON-NLS-1$
-
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-
-	}
-
-	public void adjustTextLength(int i) {
-		// not supported
-
-	}
-
-	public void equatePositions(ITextRegion region) {
-		fStart = region.getStart();
-	}
-
-	public int getEnd() {
-		return fStart + fLength;
-	}
-
-	public int getLength() {
-		return fLength;
-	}
-
-	public int getStart() {
-		return fStart;
-	}
-
-	public int getTextEnd() {
-		return fStart + fTextLength;
-	}
-
-	public int getTextLength() {
-		return fTextLength;
-	}
-
-	public String getType() {
-		return fType;
-	}
-
-	public String toString() {
-		return RegionToStringUtil.toString(this);
-	}
-
-	public StructuredDocumentEvent updateRegion(Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
-		// can never be updated
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagNameRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagNameRegion.java
deleted file mode 100644
index 38b59c4..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagNameRegion.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-public class TagNameRegion implements ITextRegion {
-	static private final String fType = DOMRegionContext.XML_TAG_NAME;
-	private short fLength;
-	private int fStart;
-	private short fTextLength;
-
-
-	public TagNameRegion() {
-		super();
-	}
-
-	public TagNameRegion(int start, int textLength, int length) {
-		this();
-		fStart = start;
-		fTextLength = (short) textLength;
-		fLength = (short) length;
-	}
-
-	public void adjustLength(int i) {
-		fLength += i;
-
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-
-	}
-
-
-	public void adjustTextLength(int i) {
-		fTextLength += i;
-	}
-
-	public void equatePositions(ITextRegion region) {
-		fStart = region.getStart();
-		fLength = (short) region.getLength();
-		fTextLength = (short) region.getTextLength();
-	}
-
-	public int getEnd() {
-		return fStart + fLength;
-	}
-
-	public int getLength() {
-		return fLength;
-	}
-
-	public int getStart() {
-		return fStart;
-	}
-
-	public int getTextEnd() {
-		return fStart + fTextLength;
-	}
-
-	public int getTextLength() {
-		return fTextLength;
-	}
-
-	public String getType() {
-		return fType;
-	}
-
-	public String toString() {
-		return RegionToStringUtil.toString(this);
-	}
-
-	public StructuredDocumentEvent updateRegion(Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
-		// can never be updated
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagOpenRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagOpenRegion.java
deleted file mode 100644
index e8cb85e..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagOpenRegion.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-public class TagOpenRegion implements ITextRegion {
-	static private final String fType = DOMRegionContext.XML_TAG_OPEN;
-	private int fLength;
-	private int fStart;
-	static private final byte fTextLength = 1;
-
-
-	public TagOpenRegion() {
-		super();
-	}
-
-	public TagOpenRegion(int start, int textLength, int length) {
-		this(start, length);
-		if (fTextLength != textLength)
-			throw new RuntimeException("invalid for this region type"); //$NON-NLS-1$
-	}
-
-	public TagOpenRegion(int start, int length) {
-		this();
-		fStart = start;
-		fLength = length;
-	}
-
-	public void adjustLength(int i) {
-		fLength += i;
-
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-
-	}
-
-
-	public void adjustTextLength(int i) {
-//		fTextLength += 1;
-		throw new RuntimeException("invalid for this region type"); //$NON-NLS-1$
-	}
-
-	public void equatePositions(ITextRegion region) {
-		fStart = region.getStart();
-		fLength = region.getLength();
-	}
-
-	public int getEnd() {
-		return fStart + fLength;
-	}
-
-	public int getLength() {
-		return fLength;
-	}
-
-	public int getStart() {
-		return fStart;
-	}
-
-	public int getTextEnd() {
-		return fStart + fTextLength;
-	}
-
-	public int getTextLength() {
-		return fTextLength;
-	}
-
-	public String getType() {
-		return fType;
-	}
-
-	public String toString() {
-		return RegionToStringUtil.toString(this);
-	}
-
-	public StructuredDocumentEvent updateRegion(Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
-		// can never be updated
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/WhiteSpaceOnlyRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/WhiteSpaceOnlyRegion.java
deleted file mode 100644
index bc0bcc1..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/WhiteSpaceOnlyRegion.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.core.internal.util.Utilities;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-public class WhiteSpaceOnlyRegion implements ITextRegion {
-	static private final byte fTextLength = 0;
-
-	static private final String fType = DOMRegionContext.WHITE_SPACE;
-	protected int fLength;
-	protected int fStart;
-
-	public WhiteSpaceOnlyRegion(int start, int length) {
-		super();
-		fStart = start;
-		fLength = length;
-	}
-
-	public void adjust(int i) {
-		fStart += i;
-	}
-
-	public void adjustLength(int i) {
-		fLength += i;
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-	}
-
-
-	public void adjustTextLength(int i) {
-		// not supported
-
-	}
-
-	public boolean contains(int position) {
-
-		return fStart <= position && position < fStart + fLength;
-	}
-
-	public void equatePositions(ITextRegion region) {
-		fStart = region.getStart();
-		fLength = region.getLength();
-	}
-
-	public int getEnd() {
-		return fStart + fLength;
-	}
-
-	public int getLength() {
-		return fLength;
-	}
-
-	public int getStart() {
-		return fStart;
-	}
-
-	public int getTextEnd() {
-		return fStart + fTextLength;
-	}
-
-	public int getTextLength() {
-		return fTextLength;
-	}
-
-	public String getType() {
-		return fType;
-	}
-
-	public void setLength(int i) {
-		fLength = i;
-	}
-
-	public void setStart(int i) {
-		fStart = i;
-	}
-
-	public void setTextLength(short i) {
-		throw new RuntimeException("invalid call"); //$NON-NLS-1$
-	}
-
-	public void setType(String string) {
-		throw new RuntimeException("invalid call"); //$NON-NLS-1$
-	}
-
-	public String toString() {
-		return RegionToStringUtil.toString(this);
-	}
-
-	/**
-	 * For this ITextRegion type, the start must in terms of what the region
-	 * expects ... that is, its not document offset, but start relative to
-	 * what ever contains it.
-	 */
-	public StructuredDocumentEvent updateRegion(Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
-		// if the region is an easy type (e.g. attribute value),
-		// and the requested changes are all
-		// alphanumeric, then make the change here locally.
-		// (This can obviously be made more sophisticated as the need arises,
-		// but should
-		// always follow this pattern.)
-		if (Debug.debugStructuredDocument) {
-			System.out.println("\t\tContextRegion::updateModel"); //$NON-NLS-1$
-			System.out.println("\t\t\tregion type is " + fType); //$NON-NLS-1$
-		}
-		boolean canHandle = false;
-		// note: we'll always handle deletes from these
-		// regions ... if its already that region,
-		// deleting something from it won't change its
-		// type. (remember, the calling program needs
-		// to insure we are not called, if not all contained
-		// on one region.
-		if ((changes == null) || (changes.length() == 0)) {
-			// delete case
-			// We can not do the quick delete, if
-			// if all the text in a region is to be deleted.
-			// Or, if the delete starts in the white space region.
-			// In these cases, a reparse is needed.
-			// Minor note, we use textEnd-start since it always
-			// less than or equal to end-start. This might
-			// cause us to miss a few cases we could have handled,
-			// but will prevent us from trying to handle funning cases
-			// involving whitespace.
-			if ((fStart >= getTextEnd()) || (Math.abs(lengthToReplace) >= getTextEnd() - getStart())) {
-				canHandle = false;
-			}
-			else {
-				canHandle = true;
-			}
-		}
-		else {
-			if (RegionUpdateRule.canHandleAsWhiteSpace(this, parent, changes, requestStart, lengthToReplace)) {
-				canHandle = true;
-			}
-			else {
-				canHandle = false;
-			}
-
-		}
-		RegionChangedEvent result = null;
-
-		if (canHandle) {
-			// at this point, we still have the old region. We won't create a
-			// new instance, we'll just update the one we have, by changing
-			// its end postion,
-			// The parent flatnode, upon return, has responsibility
-			// for updating sibling regions.
-			// and in turn, the structuredDocument itself has responsibility
-			// for
-			// updating the text store and down stream flatnodes.
-			if (Debug.debugStructuredDocument) {
-				System.out.println("change handled by region"); //$NON-NLS-1$
-			}
-			int lengthDifference = Utilities.calculateLengthDifference(changes, lengthToReplace);
-			// Note: we adjust both end and text end, because for any change
-			// that is in only the trailing whitespace region, we should not
-			// do a quick change,
-			// so 'canHandle' should have been false for those case.
-			fLength += lengthDifference;
-
-			result = new RegionChangedEvent(parent.getParentDocument(), requester, parent, this, changes, requestStart, lengthToReplace);
-		}
-
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLCDataTextRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLCDataTextRegion.java
deleted file mode 100644
index 23da980..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLCDataTextRegion.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.core.internal.util.Utilities;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-public class XMLCDataTextRegion implements ITextRegion {
-	static private final String fType = DOMRegionContext.XML_CDATA_TEXT;
-	private int fLength;
-	private int fStart;
-	private int fTextLength;
-
-
-	public XMLCDataTextRegion() {
-		super();
-	}
-
-	public XMLCDataTextRegion(int start, int textLength, int length) {
-		this();
-		fStart = start;
-		fTextLength = textLength;
-		fLength = length;
-	}
-
-	public void adjustLength(int i) {
-		fLength += i;
-
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-
-	}
-
-
-	public void adjustTextLength(int i) {
-		fTextLength += i;
-
-	}
-
-	public void equatePositions(ITextRegion region) {
-		fStart = region.getStart();
-		fLength = region.getLength();
-		fTextLength = region.getTextLength();
-	}
-
-	public int getEnd() {
-		return fStart + fLength;
-	}
-
-	public int getLength() {
-		// TODO: shouldn't cdata be like XML Content ... length and text
-		// length
-		// always be the same, regardless of whitespace?
-		return fLength;
-	}
-
-	public int getStart() {
-		return fStart;
-	}
-
-	public int getTextEnd() {
-		return fStart + fTextLength;
-	}
-
-	public int getTextLength() {
-		return fTextLength;
-	}
-
-	public String getType() {
-		return fType;
-	}
-
-	public String toString() {
-		return RegionToStringUtil.toString(this);
-	}
-
-
-	public StructuredDocumentEvent updateRegion(Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
-		// TODO: this is a pretty lame method, since XML CData region can have
-		// a much
-		// better rule for region update, but this is what previous
-		// (unfactored)
-		// version had, so I'll carry it over, of now.
-		RegionChangedEvent result = null;
-		// if the region is an easy type (e.g. attribute value),
-		// and the requested changes are all
-		// alphanumeric, then make the change here locally.
-		// (This can obviously be made more sophisticated as the need arises,
-		// but should
-		// always follow this pattern.)
-		if (Debug.debugStructuredDocument) {
-			System.out.println("\t\tContextRegion::updateModel"); //$NON-NLS-1$
-			System.out.println("\t\t\tregion type is " + fType); //$NON-NLS-1$
-		}
-		boolean canHandle = false;
-		// note: we'll always handle deletes from these
-		// regions ... if its already that region,
-		// deleting something from it won't change its
-		// type. (remember, the calling program needs
-		// to insure we are not called, if not all contained
-		// on one region.
-		if ((changes == null) || (changes.length() == 0)) {
-			// delete case
-			// We can not do the quick delete, if
-			// if all the text in a region is to be deleted.
-			// Or, if the delete starts in the white space region.
-			// In these cases, a reparse is needed.
-			// Minor note, we use textEnd-start since it always
-			// less than or equal to end-start. This might
-			// cause us to miss a few cases we could have handled,
-			// but will prevent us from trying to handle funning cases
-			// involving whitespace.
-			if ((fStart >= getTextEnd()) || (Math.abs(lengthToReplace) >= getTextEnd() - getStart())) {
-				canHandle = false;
-			} else {
-				canHandle = true;
-			}
-		} else {
-			if ((RegionUpdateRule.canHandleAsWhiteSpace(this, parent, changes, requestStart, lengthToReplace)) || RegionUpdateRule.canHandleAsLetterOrDigit(this, parent, changes, requestStart, lengthToReplace)) {
-				canHandle = true;
-			} else {
-				canHandle = false;
-			}
-
-		}
-		if (canHandle) {
-			// at this point, we still have the old region. We won't create a
-			// new instance, we'll just update the one we have, by changing
-			// its end postion,
-			// The parent flatnode, upon return, has responsibility
-			// for updating sibling regions.
-			// and in turn, the structuredDocument itself has responsibility
-			// for
-			// updating the text store and down stream flatnodes.
-			if (Debug.debugStructuredDocument) {
-				System.out.println("change handled by region"); //$NON-NLS-1$
-			}
-			int lengthDifference = Utilities.calculateLengthDifference(changes, lengthToReplace);
-			// Note: we adjust both end and text end, because for any change
-			// that is in only the trailing whitespace region, we should not
-			// do a quick change,
-			// so 'canHandle' should have been false for those case.
-			// TO_DO_FUTURE: cache value of canHandleAsWhiteSpace from above
-			// If we are handling as whitespace, there is no need to increase
-			// the text length, only
-			// the total length is changing.
-			if (!RegionUpdateRule.canHandleAsWhiteSpace(this, parent, changes, requestStart, lengthToReplace)) {
-				fTextLength += lengthDifference;
-			}
-			fLength += lengthDifference;
-			result = new RegionChangedEvent(parent.getParentDocument(), requester, parent, this, changes, requestStart, lengthToReplace);
-		}
-
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLContentRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLContentRegion.java
deleted file mode 100644
index e9088db..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLContentRegion.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.core.internal.util.Utilities;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-
-public class XMLContentRegion implements ITextRegion {
-	static private final String fType = DOMRegionContext.XML_CONTENT;
-	// length and textLength are always the same for content region
-	//private int fTextLength;
-	private int fLength;
-	private int fStart;
-
-
-	public XMLContentRegion() {
-		super();
-	}
-
-	public XMLContentRegion(int start, int length) {
-		this();
-		fStart = start;
-		fLength = length;
-	}
-
-
-	public void adjustLength(int i) {
-		fLength += i;
-
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-
-	}
-
-
-	public void adjustTextLength(int i) {
-		// not supported
-
-	}
-
-	public void equatePositions(ITextRegion region) {
-		fStart = region.getStart();
-		fLength = region.getLength();
-	}
-
-	public int getEnd() {
-		return fStart + fLength;
-	}
-
-	public int getLength() {
-		return fLength;
-	}
-
-	public int getStart() {
-		return fStart;
-	}
-
-	public int getTextEnd() {
-		return fStart + fLength;
-	}
-
-	public int getTextLength() {
-		return fLength;
-	}
-
-	public String getType() {
-		return fType;
-	}
-
-	public String toString() {
-		return RegionToStringUtil.toString(this);
-	}
-
-
-	public StructuredDocumentEvent updateRegion(Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
-		// TODO: this is a pretty lame method, since XML Content can have a
-		// much
-		// better rule for region update, but this is what previous
-		// (unfactored)
-		// version had, so I'll carry it over, of now.
-		RegionChangedEvent result = null;
-		// if the region is an easy type (e.g. attribute value),
-		// and the requested changes are all
-		// alphanumeric, then make the change here locally.
-		// (This can obviously be made more sophisticated as the need arises,
-		// but should
-		// always follow this pattern.)
-		if (Debug.debugStructuredDocument) {
-			System.out.println("\t\tContextRegion::updateModel"); //$NON-NLS-1$
-			System.out.println("\t\t\tregion type is " + fType); //$NON-NLS-1$
-		}
-		boolean canHandle = false;
-		// note: we'll always handle deletes from these
-		// regions ... if its already that region,
-		// deleting something from it won't change its
-		// type. (remember, the calling program needs
-		// to insure we are not called, if not all contained
-		// on one region.
-		if ((changes == null) || (changes.length() == 0)) {
-			// delete case
-			// We can not do the quick delete, if
-			// if all the text in a region is to be deleted.
-			// Or, if the delete starts in the white space region.
-			// In these cases, a reparse is needed.
-			// Minor note, we use textEnd-start since it always
-			// less than or equal to end-start. This might
-			// cause us to miss a few cases we could have handled,
-			// but will prevent us from trying to handle funning cases
-			// involving whitespace.
-			if ((fStart >= getTextEnd()) || (Math.abs(lengthToReplace) >= getTextEnd() - getStart())) {
-				canHandle = false;
-			} else {
-				canHandle = true;
-			}
-		} else {
-			if ((RegionUpdateRule.canHandleAsWhiteSpace(this, parent, changes, requestStart, lengthToReplace)) || RegionUpdateRule.canHandleAsLetterOrDigit(this, parent, changes, requestStart, lengthToReplace)) {
-				canHandle = true;
-			} else {
-				canHandle = false;
-			}
-
-		}
-		if (canHandle) {
-			// at this point, we still have the old region. We won't create a
-			// new instance, we'll just update the one we have, by changing
-			// its end postion,
-			// The parent flatnode, upon return, has responsibility
-			// for updating sibling regions.
-			// and in turn, the structuredDocument itself has responsibility
-			// for
-			// updating the text store and down stream flatnodes.
-			if (Debug.debugStructuredDocument) {
-				System.out.println("change handled by region"); //$NON-NLS-1$
-			}
-			int lengthDifference = Utilities.calculateLengthDifference(changes, lengthToReplace);
-			// Note: we adjust both end and text end, because for any change
-			// that is in only the trailing whitespace region, we should not
-			// do a quick change,
-			// so 'canHandle' should have been false for those case.
-			fLength += lengthDifference;
-			// TO_DO_FUTURE: cache value of canHandleAsWhiteSpace from above
-			// If we are handling as whitespace, there is no need to increase
-			// the text length, only
-			// the total length is changing.
-			// don't need for content region
-			//			if (!RegionUpdateRule.canHandleAsWhiteSpace(this, changes,
-			// fStart, lengthToReplace)) {
-			//				fTextLength += lengthDifference;
-			//			}
-			result = new RegionChangedEvent(parent.getParentDocument(), requester, parent, this, changes, requestStart, lengthToReplace);
-		}
-
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLHeadParserFactory.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLHeadParserFactory.java
deleted file mode 100644
index 38df3ea..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLHeadParserFactory.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-
-public class XMLHeadParserFactory {
-	public ITextRegion createToken(String context, int start, int textLength, int length, String text) {
-		ITextRegion newRegion = null;
-		//		if (context == XMLRegionContext.XML_CDATA_TEXT) {
-		newRegion = new XMLHeadParserRegion(context, start, textLength, length, text);
-		//		}
-		return newRegion;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLHeadParserRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLHeadParserRegion.java
deleted file mode 100644
index f3917b6..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLHeadParserRegion.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-/**
- * 
- * This class is not intended to be used, its just present to server as a
- * generic starting point for adding new specific region types.
- */
-
-public class XMLHeadParserRegion implements ITextRegion {
-	private int fLength;
-	private int fStart;
-	private String fText;
-	private int fTextLength;
-	// specify correct type
-	private String fType = DOMRegionContext.UNDEFINED;
-
-	public XMLHeadParserRegion() {
-		super();
-	}
-
-	public XMLHeadParserRegion(String context, int start, int textLength, int length, String text) {
-		this();
-		fType = context;
-		fStart = start;
-		fTextLength = textLength;
-		fLength = length;
-		fText = text;
-	}
-
-	public void adjustLength(int i) {
-		fLength += i;
-
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-
-	}
-
-
-	public void adjustTextLength(int i) {
-		fTextLength += 1;
-
-	}
-
-	public void equatePositions(ITextRegion region) {
-		fStart = region.getStart();
-		fLength = region.getLength();
-		fTextLength = region.getTextLength();
-	}
-
-	public int getEnd() {
-		return fStart + fLength;
-	}
-
-	public int getLength() {
-		return fLength;
-	}
-
-	public int getStart() {
-		return fStart;
-	}
-
-	public String getText() {
-		return fText;
-	}
-
-	public int getTextEnd() {
-		return fStart + fTextLength;
-	}
-
-	public int getTextLength() {
-		return fTextLength;
-	}
-
-	public String getType() {
-		return fType;
-	}
-
-	public String toString() {
-		return RegionToStringUtil.toString(this);
-	}
-
-	public StructuredDocumentEvent updateRegion(Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
-		// can never be updated
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLParserRegionFactory.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLParserRegionFactory.java
deleted file mode 100644
index 581f447..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLParserRegionFactory.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-
-
-import org.eclipse.wst.sse.core.internal.parser.ContextRegion;
-import org.eclipse.wst.sse.core.internal.parser.ForeignRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-/**
- * 
- * This region factory is very specific to the parser output, and the specific
- * implementation classes for various regions.
- */
-
-public class XMLParserRegionFactory {
-
-	public XMLParserRegionFactory() {
-		super();
-	}
-
-	public ITextRegion createToken(ITextRegionContainer parent, String context, int start, int textLength, int length) {
-		return this.createToken(parent, context, start, textLength, length, null, null);
-	}
-
-	public ITextRegion createToken(ITextRegionContainer parent, String context, int start, int textLength, int length, String lang, String surroundingTag) {
-		ITextRegion newRegion = createToken(context, start, textLength, length);
-		// DW, 4/16/2003 token regions no longer have parents
-		// newRegion.setParent(parent);
-		return newRegion;
-	}
-
-	public ITextRegion createToken(String context, int start, int textLength, int length) {
-		return this.createToken(context, start, textLength, length, null, null);
-	}
-
-	public ITextRegion createToken(String context, int start, int textLength, int length, String lang, String surroundingTag) {
-		ITextRegion newRegion = null;
-		if (context == DOMRegionContext.XML_CDATA_TEXT) {
-			newRegion = new XMLCDataTextRegion(start, textLength, length);
-		}
-		else if (context == DOMRegionContext.XML_CONTENT) {
-			newRegion = new XMLContentRegion(start, length);
-		}
-		else if (context == DOMRegionContext.XML_TAG_NAME) {
-			newRegion = new TagNameRegion(start, textLength, length);
-		}
-		else if (context == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-			newRegion = new AttributeNameRegion(start, textLength, length);
-		}
-		else if (context == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-			newRegion = new AttributeEqualsRegion(start, textLength, length);
-		}
-		else if (context == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-			newRegion = new AttributeValueRegion(start, textLength, length);
-		}
-		else if (context == DOMRegionContext.XML_TAG_OPEN) {
-			newRegion = new TagOpenRegion(start, textLength, length);
-		}
-		else if (context == DOMRegionContext.XML_END_TAG_OPEN) {
-			newRegion = new EndTagOpenRegion(start, textLength, length);
-		}
-		else if (context == DOMRegionContext.XML_TAG_CLOSE) {
-			newRegion = new TagCloseRegion(start);
-		}
-		else if (context == DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
-			newRegion = new EmptyTagCloseRegion(start, textLength, length);
-		}
-		else if (context == DOMRegionContext.WHITE_SPACE) {
-			newRegion = new WhiteSpaceOnlyRegion(start, length);
-		}
-		else
-		// removed this condition during transition, and implemented in
-		// subclass
-		// if (context == XMLJSPRegionContexts.JSP_CONTENT) {
-		// newRegion = new JSPCodeRegion(context, start, textLength, length);
-		// } else
-		if (context == DOMRegionContext.BLOCK_TEXT) {
-			newRegion = new ForeignRegion(context, start, textLength, length);
-			((ForeignRegion) newRegion).setSurroundingTag(surroundingTag);
-		}
-		else {
-			newRegion = new ContextRegion(context, start, textLength, length);
-		}
-		return newRegion;
-	}
-
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceInitializer.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceInitializer.java
deleted file mode 100644
index 6c6c59b..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceInitializer.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     David Carver - STAR - [205989] - [validation] validate XML after XInclude resolution
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.preferences;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-
-/**
- * Sets default values for XML Core preferences
- */
-public class XMLCorePreferenceInitializer extends AbstractPreferenceInitializer {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-	 */
-	public void initializeDefaultPreferences() {
-		IEclipsePreferences node = new DefaultScope().getNode(XMLCorePlugin.getDefault().getBundle().getSymbolicName());
-
-		// formatting preferences
-		node.putInt(XMLCorePreferenceNames.LINE_WIDTH, 72);
-		node.putBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES, false);
-		node.put(XMLCorePreferenceNames.INDENTATION_CHAR, XMLCorePreferenceNames.TAB);
-		node.putInt(XMLCorePreferenceNames.INDENTATION_SIZE, 1);
-		node.putBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS, false);
-		node.putBoolean(XMLCorePreferenceNames.ALIGN_END_BRACKET, false);
-		node.putBoolean(XMLCorePreferenceNames.PRESERVE_CDATACONTENT, false);
-		node.putBoolean(XMLCorePreferenceNames.SPACE_BEFORE_EMPTY_CLOSE_TAG, true);
-		
-		// cleanup preferences
-		node.putBoolean(XMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS, true);
-		node.putBoolean(XMLCorePreferenceNames.INSERT_REQUIRED_ATTRS, true);
-		node.putBoolean(XMLCorePreferenceNames.INSERT_MISSING_TAGS, true);
-		node.putBoolean(XMLCorePreferenceNames.QUOTE_ATTR_VALUES, true);
-		node.putBoolean(XMLCorePreferenceNames.FORMAT_SOURCE, true);
-		node.putBoolean(XMLCorePreferenceNames.CONVERT_EOL_CODES, false);
-
-		node.put(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$
-		node.put(CommonEncodingPreferenceNames.OUTPUT_CODESET, "UTF-8");//$NON-NLS-1$
-		node.put(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$
-
-		// this could be made smarter by actually looking up the content
-		// type's valid extensions
-		node.put(XMLCorePreferenceNames.DEFAULT_EXTENSION, "xml"); //$NON-NLS-1$
-
-		node.putBoolean(XMLCorePreferenceNames.WARN_NO_GRAMMAR, true);
-		node.putInt(XMLCorePreferenceNames.INDICATE_NO_GRAMMAR, 1);
-		node.putBoolean(XMLCorePreferenceNames.USE_XINCLUDE, false);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceNames.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceNames.java
deleted file mode 100644
index f572af5..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceNames.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     David Carver - STAR - [205989] - [validation] validate XML after XInclude resolution
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.preferences;
-
-/**
- * Common preference keys used by XML core
- * 
- * @plannedfor 1.0
- */
-public class XMLCorePreferenceNames {
-	private XMLCorePreferenceNames() {
-		// empty private constructor so users cannot instantiate class
-	}
-
-	/**
-	 * The default extension to use when none is specified in the New File
-	 * Wizard.
-	 * <p>
-	 * Value is of type <code>String</code>.
-	 * </p>
-	 */
-	public static final String DEFAULT_EXTENSION = "defaultExtension"; //$NON-NLS-1$
-
-
-	/**
-	 * The maximum width of a line before a line split is needed.
-	 * <p>
-	 * Value is of type <code>Integer</code>.
-	 * </p>
-	 */
-	public static final String LINE_WIDTH = "lineWidth";//$NON-NLS-1$
-
-	/**
-	 * Indicates if all blanks lines should be cleared during formatting.
-	 * Blank lines will be kept when false.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String CLEAR_ALL_BLANK_LINES = "clearAllBlankLines";//$NON-NLS-1$
-
-	/**
-	 * The number of #INDENTATION_CHAR for 1 indentation.
-	 * <p>
-	 * Value is of type <code>Integer</code>.
-	 * </p>
-	 */
-	public static final String INDENTATION_SIZE = "indentationSize";//$NON-NLS-1$
-
-	/**
-	 * The character used for indentation.
-	 * <p>
-	 * Value is of type <code>String</code>.<br />
-	 * Possible values: {TAB, SPACE}
-	 * </p>
-	 */
-	public static final String INDENTATION_CHAR = "indentationChar";//$NON-NLS-1$
-
-	/**
-	 * Possible value for the preference #INDENTATION_CHAR. Indicates to use
-	 * tab character when formatting.
-	 * 
-	 * @see #SPACE
-	 * @see #INDENTATION_CHAR
-	 */
-	public static final String TAB = "tab"; //$NON-NLS-1$
-
-	/**
-	 * Possible value for the preference #INDENTATION_CHAR. Indicates to use
-	 * space character when formatting.
-	 * 
-	 * @see #TAB
-	 * @see #INDENTATION_CHAR
-	 */
-	public static final String SPACE = "space"; //$NON-NLS-1$
-
-	/**
-	 * Indicates if tags with multiple attributes should be formatted
-	 * (splitting each attr on a new line).
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String SPLIT_MULTI_ATTRS = "splitMultiAttrs";//$NON-NLS-1$
-
-	/**
-	 * Indicates whether or not cleanup processor should format source.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String FORMAT_SOURCE = "formatSource";//$NON-NLS-1$
-
-	/**
-	 * Indicates whether or not empty elements should be compressed during
-	 * cleanup.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String COMPRESS_EMPTY_ELEMENT_TAGS = "compressEmptyElementTags";//$NON-NLS-1$
-
-	/**
-	 * Indicates whether or not to insert required attributes during cleanup.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String INSERT_REQUIRED_ATTRS = "insertRequiredAttrs";//$NON-NLS-1$
-
-	/**
-	 * Indicates whether or not to insert missing tags during cleanup.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String INSERT_MISSING_TAGS = "insertMissingTags";//$NON-NLS-1$
-
-	/**
-	 * Indicates whether or not to quote all attribute values during cleanup.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String QUOTE_ATTR_VALUES = "quoteAttrValues";//$NON-NLS-1$
-
-	/**
-	 * Indicates whether or not to convert all line delimiters during cleanup.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 * @deprecated - no longer used
-	 */
-	public static final String CONVERT_EOL_CODES = "convertEOLCodes";//$NON-NLS-1$
-
-	/**
-	 * Indicates the line delimiter to use during cleanup if converting line
-	 * delimiters.
-	 * <p>
-	 * Value is of type <code>String</code>.<br />
-	 * Possible values: {CR, CRLF, LF, NO_TRANSLATION}
-	 * </p>
-	 * 
-	 */
-	public static final String CLEANUP_EOL_CODE = "cleanupEOLCode";//$NON-NLS-1$
-
-	/**
-	 * Indicates whether or not a warning should be produced when validating a
-	 * file that specifies not grammar.
-	 * <p>
-	 * Value is of type <code>boolean</code>.<br />
-	 * Possible values: {TRUE, FALSE}
-	 * </p>
-	 * @deprecated
-	 */
-	public static final String WARN_NO_GRAMMAR = "warnNoGrammar";//$NON-NLS-1$
-	
-	/**
-	 * Indicates whether or not a message should be produced when validating a
-	 * file that specifies not grammar.
-	 * <p>
-	 * Value is of type <code>integer</code>.<br />
-	 * Possible values: {0, 1, 2} (none, warning, error)
-	 * </p>
-	 */
-	public static final String INDICATE_NO_GRAMMAR = "indicateNoGrammar";//$NON-NLS-1$
-
- 	/**
-	 * Indicates whether or not xincludes should be processed before
-	 * validation.
-	 * <p>
-	 * Value is of type <code>boolean</code>.<br />
-	 * Possible values: {TRUE, FALSE}
-	 * </p>
-	 * 
-	 */
-	public static final String USE_XINCLUDE = "xinclude";//$NON-NLS-1$
-
-	/**
-	 * Indicates if all whitespace in tags with CDATA content should be
-	 * preserved.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String PRESERVE_CDATACONTENT = "preserveCDATAContent";//$NON-NLS-1$
-
-	/**
-	 * Indicates if end brackets of start tags should be placed on a new line
-	 * if the start tag spans more than one line.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String ALIGN_END_BRACKET = "alignEndBracket";//$NON-NLS-1$
-	
-	/**
-	 * Indicates if an empty close tag should have a space inserted before
-	 * closing.
-	 * <p>
-	 * Value is of type <code>Boolean</code>
-	 * </p>
-	 */
-	public static final String SPACE_BEFORE_EMPTY_CLOSE_TAG = "spaceBeforeEmptyCloseTag";//$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/propagate/PropagatingAdapterFactoryImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/propagate/PropagatingAdapterFactoryImpl.java
deleted file mode 100644
index 7376d4e..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/propagate/PropagatingAdapterFactoryImpl.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.propagate;
-
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.sse.core.internal.PropagatingAdapter;
-import org.eclipse.wst.sse.core.internal.PropagatingAdapterFactory;
-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;
-
-
-/**
- * The PropagatingAdapterFactory is part of the "adapt on create" mechanism. A
- * PropagatingAdapter, once added to a node, will cause proagating adapters to
- * be created for all child nodes. A side effect of creating a
- * PropagatingAdapter for a node is that is is also creates adapters for and
- * adapts the Node for all other registered 'create on adapt' Adapters. This
- * other adapters are registered by registering their factories via plugin
- * extension point.
- */
-public class PropagatingAdapterFactoryImpl extends AbstractAdapterFactory implements PropagatingAdapterFactory {
-
-	private PropagatingAdapter fAdapterInstance;
-	private List fContributedFactories = null;
-
-	/**
-	 * PropagatingAdapterFactory constructor comment.
-	 */
-	public PropagatingAdapterFactoryImpl() {
-		this(PropagatingAdapter.class, true);
-	}
-
-	protected PropagatingAdapterFactoryImpl(Object adapterKey, boolean registerAdapters) { // ,
-		super(adapterKey, registerAdapters);
-	}
-
-	public void addContributedFactories(INodeAdapterFactory factory) {
-		if (fContributedFactories != null) {
-			fContributedFactories.add(factory);
-		}
-
-	}
-
-	/**
-	 * createAdapter method comment.
-	 */
-	protected INodeAdapter createAdapter(INodeNotifier target) {
-		// every notifier get's one of these
-		// (and the same instance of it)
-		return getAdapterInstance();
-	}
-
-	/**
-	 * Gets the adapterInstance.
-	 * 
-	 * @return Returns a PropagatingAdapter
-	 */
-	private PropagatingAdapter getAdapterInstance() {
-		if (fAdapterInstance == null) {
-			fAdapterInstance = new PropagatingAdapterImpl();
-			if (fContributedFactories != null) {
-				for (int i = 0; i < fContributedFactories.size(); i++)
-					fAdapterInstance.addAdaptOnCreateFactory((PropagatingAdapterFactory) fContributedFactories.get(i));
-			}
-		}
-		return fAdapterInstance;
-	}
-
-	public void release() {
-		// give the adapter instance a chance to release its factories
-		getAdapterInstance().release();
-
-	}
-
-	public void setContributedFactories(ArrayList list) {
-		fContributedFactories = list;
-
-	}
-
-	public INodeAdapterFactory copy() {
-		PropagatingAdapterFactory clonedInstance = new PropagatingAdapterFactoryImpl(getAdapterKey(), isShouldRegisterAdapter());
-		// clone this adapters specific list of adapter factories too
-		if (fContributedFactories != null) {
-			
-			Iterator iterator = fContributedFactories.iterator();
-			clonedInstance.setContributedFactories(new ArrayList());
-			while (iterator.hasNext()) {
-				INodeAdapterFactory existingFactory = (INodeAdapterFactory) iterator.next();
-				clonedInstance.addContributedFactories(existingFactory.copy());
-			}
-		}
-		return clonedInstance;
-	}
-
-	
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/propagate/PropagatingAdapterImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/propagate/PropagatingAdapterImpl.java
deleted file mode 100644
index f581590..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/propagate/PropagatingAdapterImpl.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.propagate;
-
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.sse.core.internal.PropagatingAdapter;
-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.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class PropagatingAdapterImpl implements PropagatingAdapter {
-
-	private List adaptOnCreateFactories = null;
-
-	/**
-	 * AbstractPropagatingAdapterImpl constructor comment.
-	 */
-	public PropagatingAdapterImpl() {
-		super();
-	}
-
-	private void adaptOnCreate(IDOMNode node) {
-		// give each of the factories a chance to adapt the node, if it
-		// chooses to
-		if (adaptOnCreateFactories != null) {
-
-
-			synchronized (adaptOnCreateFactories) {
-				int length = adaptOnCreateFactories.size();
-				for (int i = 0; i < length; i++) {
-					INodeAdapterFactory factory = (INodeAdapterFactory) adaptOnCreateFactories.get(i);
-					factory.adapt(node);
-				}
-			}
-
-		}
-
-	}
-
-	/**
-	 * This mechanism can be made "easier to use" later.
-	 */
-	public void addAdaptOnCreateFactory(INodeAdapterFactory factory) {
-		getAdaptOnCreateFactories().add(factory);
-	}
-
-	/**
-	 * Gets the adaptOnCreateFactories.
-	 * 
-	 * @return Returns a List
-	 */
-	public List getAdaptOnCreateFactories() {
-		if (adaptOnCreateFactories == null)
-			adaptOnCreateFactories = new ArrayList();
-		return adaptOnCreateFactories;
-	}
-
-
-	/**
-	 * @see PropagatingAdapter#initializeForFactory(INodeAdapterFactory,
-	 *      INodeNotifier)
-	 */
-	public void initializeForFactory(INodeAdapterFactory factory, INodeNotifier node) {
-		// ISSUE: we are a DOM specific implimentation, 
-		// we should not be.
-		if (node instanceof IDOMNode) {
-			IDOMNode xmlNode = (IDOMNode) node;
-			propagateTo(xmlNode);
-		}
-	}
-
-	/**
-	 * Allowing the INodeAdapter to compare itself against the type allows it
-	 * to return true in more than one case.
-	 */
-	public boolean isAdapterForType(Object type) {
-		return type.equals(PropagatingAdapter.class);
-	}
-
-	private boolean isInteresting(Object newValue) {
-		return (newValue != null && (newValue instanceof Element || newValue instanceof Document || newValue instanceof DocumentType));
-	}
-
-	/**
-	 */
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-		// Issue: We only propagate to Elements ...
-		// not attributes too! We should careful consider doning all when
-		// when we improve "adapt on create" design.
-		if (eventType == INodeNotifier.ADD && isInteresting(newValue)) {
-			propagateTo((IDOMNode) newValue);
-		}
-	}
-
-	private void propagateTo(IDOMNode node) {
-		// get adapter to ensure its created
-		node.getAdapterFor(PropagatingAdapter.class);
-		adaptOnCreate(node);
-		propagateToChildren(node);
-	}
-
-	private void propagateToChildren(IDOMNode parent) {
-		for (Node child = parent.getFirstChild(); child != null; child = child.getNextSibling()) {
-			propagateTo((IDOMNode) child);
-		}
-	}
-
-	/**
-	 * @see PropagatingAdapter#release()
-	 */
-	public void release() {
-		if (adaptOnCreateFactories != null) {
-
-			synchronized (adaptOnCreateFactories) {
-				int length = adaptOnCreateFactories.size();
-				for (int i = 0; i < length; i++) {
-					INodeAdapterFactory factory = (INodeAdapterFactory) adaptOnCreateFactories.get(i);
-					factory.release();
-				}
-			}
-
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLCharEntity.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLCharEntity.java
deleted file mode 100644
index b1fb483..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLCharEntity.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional;
-
-
-
-/**
- * XML Namespace constants
- * 
- * @plannedfor 1.0
- */
-public interface IXMLCharEntity {
-	static final String AMP_NAME = "amp";//$NON-NLS-1$
-	static final String AMP_REF = "&amp;";//$NON-NLS-1$
-	static final String AMP_VALUE = "&";//$NON-NLS-1$
-	static final String APOS_NAME = "apos";//$NON-NLS-1$
-	static final String APOS_REF = "&apos;";//$NON-NLS-1$
-	static final String APOS_VALUE = "'";//$NON-NLS-1$
-	static final String GT_NAME = "gt";//$NON-NLS-1$
-	static final String GT_REF = "&gt;";//$NON-NLS-1$
-	static final String GT_VALUE = ">";//$NON-NLS-1$
-
-	static final String LT_NAME = "lt";//$NON-NLS-1$
-	static final String LT_REF = "&lt;";//$NON-NLS-1$
-	static final String LT_VALUE = "<";//$NON-NLS-1$
-	static final String QUOT_NAME = "quot";//$NON-NLS-1$
-	static final String QUOT_REF = "&quot;";//$NON-NLS-1$
-	static final String QUOT_VALUE = "\"";//$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLNamespace.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLNamespace.java
deleted file mode 100644
index 8cb2260..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLNamespace.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional;
-
-
-
-/**
- * XML Namespace constants
- * 
- * @plannedfor 1.0
- */
-public interface IXMLNamespace {
-
-	static final String XMLNS = "xmlns";//$NON-NLS-1$
-	static final String XMLNS_PREFIX = "xmlns:";//$NON-NLS-1$
-	static final String XMLNS_URI = "http://www.w3.org/2000/xmlns/";//$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLPreferenceNames.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLPreferenceNames.java
deleted file mode 100644
index df49d48..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLPreferenceNames.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional;
-
-/**
- * Keys to use for preference settings.
- * 
- * @plannedfor 1.0
- */
-
-public interface IXMLPreferenceNames {
-	String CLEANUP_ATTR_NAME_CASE = "cleanupAttrNameCase";//$NON-NLS-1$
-	String CLEANUP_EOL_CODE = "cleanupEOLCode";//$NON-NLS-1$
-	// cleanup preference names
-	String CLEANUP_TAG_NAME_CASE = "cleanupTagNameCase";//$NON-NLS-1$
-	String CONVERT_EOL_CODES = "convertEOLCodes";//$NON-NLS-1$
-	String FORMAT_SOURCE = "formatSource";//$NON-NLS-1$
-	String INSERT_MISSING_TAGS = "insertMissingTags";//$NON-NLS-1$
-
-	// others
-	String LAST_ACTIVE_PAGE = "lastActivePage";//$NON-NLS-1$
-	String QUOTE_ATTR_VALUES = "quoteAttrValues";//$NON-NLS-1$
-
-	/*
-	 * not used for now // highlighting types String COMMENT_BORDER =
-	 * "commentBorder";//$NON-NLS-1$ String COMMENT_TEXT =
-	 * "commentText";//$NON-NLS-1$ String CDATA_BORDER =
-	 * "cdataBorder";//$NON-NLS-1$ String CDATA_TEXT =
-	 * "cdataText";//$NON-NLS-1$ String PI_BORDER = "piBorder";//$NON-NLS-1$
-	 * String PI_CONTENT = "piContent";//$NON-NLS-1$ String TAG_BORDER =
-	 * "tagBorder";//$NON-NLS-1$ String TAG_NAME = "tagName";//$NON-NLS-1$
-	 * String TAG_ATTRIBUTE_NAME = "tagAttributeName";//$NON-NLS-1$ String
-	 * TAG_ATTRIBUTE_VALUE = "tagAttributeValue";//$NON-NLS-1$ String
-	 * DECL_BORDER = "declBoder";//$NON-NLS-1$ String DOCTYPE_NAME =
-	 * "doctypeName";//$NON-NLS-1$ String DOCTYPE_EXTERNAL_ID =
-	 * "doctypeExternalId";//$NON-NLS-1$ String DOCTYPE_EXTERNAL_ID_PUBREF =
-	 * "doctypeExternalPubref";//$NON-NLS-1$ String DOCTYPE_EXTERNAL_ID_SYSREF =
-	 * "doctypeExtrenalSysref";//$NON-NLS-1$ String XML_CONTENT =
-	 * "xmlContent";//$NON-NLS-1$ // highlighting preferences String COMMA =
-	 * ",";//$NON-NLS-1$ String COLOR = "color";//$NON-NLS-1$ String NAME =
-	 * "name";//$NON-NLS-1$ String FOREGROUND = "foreground";//$NON-NLS-1$
-	 * String BACKGROUND = "background";//$NON-NLS-1$ String BOLD =
-	 * "bold";//$NON-NLS-1$ String ITALIC = "italic";//$NON-NLS-1$
-	 */
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/NameValidator.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/NameValidator.java
deleted file mode 100644
index 496beb7..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/NameValidator.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional;
-
-import java.io.Reader;
-
-import org.eclipse.wst.xml.core.internal.parser.XML10Names;
-
-/**
- * This class provides consistent way to pre-check if a string is a valid XML
- * name, before, for example, trying to actually create an Element with it.
- * Attempting to create an Element with an invalid name will throw the appropriate
- * DOM Exception, but often clients want to check the validiting of a name
- * such as based on some user input, long in advance of actually making 
- * the DOM call. And, natually, want to give the user feedback in a more 
- * timely fashion.
- * 
- * ISSUE: is "endns:" really valid xml name? I think not, but this method
- * (currently) says it is.
- * 
- * @plannedfor 1.0
- */
-public final class NameValidator {
-
-	private static XML10Names xml10charChecker = null;
-
-	/**
-	 * Returns true if <code>name</code> is valid XML name according to XML
-	 * 1.0 rules, false otherwise.
-	 * 
-	 * @param name
-	 *            name is the string to test
-	 * @return true if valid name according to XML 1.0 rules, false otherwise.
-	 */
-	public synchronized static final boolean isValid(String name) {
-
-		if (xml10charChecker == null) {
-			xml10charChecker = inititailizeXML10Names();
-		}
-		return xml10charChecker.isValidXML10Name(name);
-	}
-
-	private static XML10Names inititailizeXML10Names() {
-		return new XML10Names((Reader) null);
-	}
-
-	/**
-	 * Not intenteded to be instantiated.
-	 */
-	private NameValidator() {
-		super();
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMDocType.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMDocType.java
deleted file mode 100644
index 7a3d95f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMDocType.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.contentmodel;
-
-
-public interface CMDocType {
-	/**
-	 * CHTML files
-	 */
-	public final static String CHTML_DOC_TYPE = "CHTML";//$NON-NLS-1$
-	/**
-	 * HTML files
-	 */
-	public final static String HTML_DOC_TYPE = "HTML";//$NON-NLS-1$
-	/**
-	 * JSP 1.1 files (currently includes 1.2 elements for backward behavioral compatibility)
-	 */
-	public final static String JSP11_DOC_TYPE = "JSP11";//$NON-NLS-1$
-	/**
-	 * JSP 1.2 files
-	 */
-	public final static String JSP12_DOC_TYPE = "JSP12";//$NON-NLS-1$
-	/**
-	 * JSP 2.0 JSP files
-	 */
-	public final static String JSP20_DOC_TYPE = "JSP20";//$NON-NLS-1$
-	/**
-	 * JSP 2.0 Tag files
-	 */
-	public final static String TAG20_DOC_TYPE = "JSP20.TAG";//$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMDocumentTracker.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMDocumentTracker.java
deleted file mode 100644
index 19baa55..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMDocumentTracker.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.contentmodel;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-
-
-/**
- * Position dependent CMDocument tracker. A tracker matches a
- * IStructuredDocumentRegion with a CMDocument that it enables allowing for
- * position-dependent content models
- */
-public interface CMDocumentTracker {
-
-	CMDocument getDocument();
-
-	IStructuredDocumentRegion getStructuredDocumentRegion();
-}
-
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMNodeWrapper.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMNodeWrapper.java
deleted file mode 100644
index dbe75d6..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMNodeWrapper.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.contentmodel;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-public interface CMNodeWrapper extends CMNode {
-	CMNode getOriginNode();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/ContentModelAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/ContentModelAdapter.java
deleted file mode 100644
index a66811e..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/ContentModelAdapter.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.contentmodel;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * ContentModelAdapter interface
- */
-public interface ContentModelAdapter extends org.eclipse.wst.sse.core.internal.provisional.INodeAdapter {
-
-	/**
-	 * getCMDocument method
-	 * 
-	 * @return CMDocument
-	 * @param notifer
-	 * 
-	 * Returns CMDocument associated to the adapting node. For exampl : HTML
-	 * CMDocument is associated to HTML Document node, DTD CMDocument is
-	 * associated to DocumentType node, DTD/Schema CMDocument is associated to
-	 * Element node (sometime with namespace), and taglib CMDocument is
-	 * associated to taglib directive Element node.
-	 * 
-	 * INodeNotifier is passed for stateless (singleton) INodeAdapter
-	 * implementation.
-	 */
-	CMDocument getCMDocument(org.eclipse.wst.sse.core.internal.provisional.INodeNotifier notifier);
-
-	/**
-	 * getDeclaration method
-	 * 
-	 * @return CMNode
-	 * @param notifer
-	 * 
-	 * Returns ElementDefinition or AttributeDefinition for the adapting node.
-	 * 
-	 * INodeNotifier is passed for stateless (singleton) INodeAdapter
-	 * implementation.
-	 */
-	CMNode getDeclaration(org.eclipse.wst.sse.core.internal.provisional.INodeNotifier notifier);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/NullContentModel.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/NullContentModel.java
deleted file mode 100644
index 0b2ee6b..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/NullContentModel.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.contentmodel;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-
-/**
- * This class can be used to intialize specific variables that need a content
- * model, until the true content model is available. This prevents having to
- * do lots of null checks.
- */
-public class NullContentModel implements CMDocument {
-
-	private static class NullCMNamedNodeMap implements CMNamedNodeMap {
-		public int getLength() {
-			return 0;
-		}
-
-		public CMNode getNamedItem(String name) {
-			return null;
-		}
-
-		public CMNode item(int index) {
-			return null;
-		}
-
-		public Iterator iterator() {
-			return new NullIterator();
-		}
-
-	}
-
-	private static class NullIterator implements Iterator {
-		public NullIterator() {
-		}
-
-		public boolean hasNext() {
-			return false;
-		}
-
-		public Object next() {
-			throw new NoSuchElementException();
-		}
-
-		public void remove() {
-			throw new UnsupportedOperationException("can not remove regions via iterator"); //$NON-NLS-1$
-
-		}
-
-	}
-
-	public NullContentModel() {
-		super();
-	}
-
-	public CMNamedNodeMap getElements() {
-		return new NullCMNamedNodeMap();
-	}
-
-	public CMNamedNodeMap getEntities() {
-		return new NullCMNamedNodeMap();
-	}
-
-	public CMNamespace getNamespace() {
-		return null;
-	}
-
-	public String getNodeName() {
-		return null;
-	}
-
-	public int getNodeType() {
-		return 0;
-	}
-
-	public Object getProperty(String propertyName) {
-		return null;
-	}
-
-	public boolean supports(String propertyName) {
-		return false;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contenttype/ContentTypeIdForXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contenttype/ContentTypeIdForXML.java
deleted file mode 100644
index 67c3a90..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contenttype/ContentTypeIdForXML.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.provisional.contenttype;
-
-/**
- * This class, with its few field, is a convience to provide compile-time
- * safety when refering to a contentType ID. The value of the contenttype id
- * field must match what is specified in plugin.xml file.
- * 
- * @plannedfor 1.0
- */
-final public class ContentTypeIdForXML {
-	/**
-	 * This content type is actually supplied by base Eclipse. Its given here
-	 * just as documentation for WTP based clients. Typically, clients should
-	 * use the values/constants supplied by base Eclipse.
-	 */
-	public final static String ContentTypeID_XML = getConstantString2();
-	/**
-	 * This value is public only for testing and special infrastructure. The
-	 * constant nor is value should not be referenced by clients.
-	 * 
-	 * The value of the contenttype id field must match what is specified in
-	 * plugin.xml file. Note: this value is intentially set with default
-	 * protected method so it will not be inlined.
-	 */
-	public final static String ContentTypeID_SSEXML = getConstantString();
-
-	/**
-	 * Don't allow instantiation.
-	 */
-	private ContentTypeIdForXML() {
-		super();
-	}
-
-	static String getConstantString() {
-		return "org.eclipse.wst.xml.core.xmlsource"; //$NON-NLS-1$
-	}
-
-	static String getConstantString2() {
-		return "org.eclipse.core.runtime.xml"; //$NON-NLS-1$
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMAttr.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMAttr.java
deleted file mode 100644
index ee16e15..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMAttr.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.document;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.w3c.dom.Attr;
-
-
-/**
- * This interface provides extensions to corresponding DOM interface to enable
- * functions for source editing and incremental parsing.
- * 
- * @plannedfor 1.0
- * 
- */
-public interface IDOMAttr extends IDOMNode, Attr {
-
-	/**
-	 * Get's the region in attribute representing the '=' sign. May or may not
-	 * have whitespace surrounding it.
-	 * 
-	 * @deprecated - 
-	 * ISSUE: need to change/remove to avoid exposing 'ITextRegion'
-	 * change to offset pattern, as others.
-	 * 
-	 * @return ITextRegion - the region representing the equals sign, or null
-	 *         if their is no equals sign.
-	 */
-	ITextRegion getEqualRegion();
-
-	/**
-	 * Gets the source location of the end of the attribute name, including
-	 * whitespace.
-	 * 
-	 * @return int - the source location of the end of the attribute name,
-	 *         including whitespace.
-	 */
-	int getNameRegionEndOffset();
-
-	/**
-	 * Gets the source location of the start of the attribute name.
-	 * 
-	 * @return int - the source location of the start of the attribute name.
-	 */
-	int getNameRegionStartOffset();
-
-
-	/**
-	 * Gets the text associated with the attribute name.
-	 * 
-	 * @return String - the text associated with the attribute name.
-	 */
-	String getNameRegionText();
-
-	/**
-	 * Gets the source location of the end of the attribute name, excluding
-	 * whitespace.
-	 * 
-	 * @return int - returns the source location of the end of the attribute
-	 *         name, excluding whitespace.
-	 */
-	int getNameRegionTextEndOffset();
-
-	/**
-	 * Gets the source location of the start of the attribute value.
-	 * 
-	 * @return int - returns the source location of the start of the attribute
-	 *         value.
-	 * 
-	 * ISSUE: need to better spec interaction with quote marks
-	 */
-	int getValueRegionStartOffset();
-
-	/**
-	 * Gets the text associated with the attribute value.
-	 * 
-	 * @return String - returns the text associated with the attribute value.
-	 */
-	String getValueRegionText();
-
-	/**
-	 * Check if Attr has a nested value (such as a JSP expression).
-	 * 
-	 * @return true if contains a nested value, false otherwise.
-	 */
-	boolean hasNestedValue();
-
-	/**
-	 * Check if Attr has only name but not equal sign nor value.
-	 * 
-	 * @return true if has only name but not equal sign nor value.
-	 */
-	boolean hasNameOnly();
-
-	/**
-	 * Returns true if attribute is defined globally for document. Returns
-	 * false if attribute is preceeded by a prefix (whether valid name space
-	 * or not). Returns true if its owning element is a global element.
-	 * 
-	 * @return true if attribute is defined globally for document. Returns
-	 *         false if attribute is preceeded by a prefix (whether valid name
-	 *         space or not). Returns true if its owning element is a global
-	 *         element.
-	 */
-	boolean isGlobalAttr();
-
-	/**
-	 * Returns true if is xml attr
-	 * 
-	 * ISSUE: need to figure out how to specify this one in a meaningful way.
-	 * 
-	 * @return boolean - returns true if is xml attr
-	 */
-	boolean isXMLAttr();
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMDocument.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMDocument.java
deleted file mode 100644
index 4d69e58..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMDocument.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.document;
-
-
-
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * This interface enables creation of DOCTYPE declaration and some DOM Level 2
- * interfaces. May be referenced but not implemented by clients.
- * 
- * @plannedfor 1.0
- */
-public interface IDOMDocument extends Node, Document, IDOMNode {
-
-	/**
-	 * create comment element. tagName must be registered as comment element
-	 * name in plugin.xml
-	 * 
-	 * @param tagName
-	 *            the element name
-	 * @param isJSPTag
-	 *            true if the element is JSP style comment (&lt;%-- ...
-	 *            --%&gt;)
-	 * @return Element element instance
-	 * @throws DOMException
-	 *             thrown if the element name is registered as comment element
-	 */
-	Element createCommentElement(String tagName, boolean isJSPTag) throws DOMException;
-
-	/**
-	 * Creates a DocumentType node
-	 * 
-	 * ISSUE: I believe this 'name' is the one specific in doctype extension,
-	 * need to verify.
-	 * 
-	 * @param name -
-	 *            name of the doctype
-	 * @return DocumentType - returns a document type node.
-	 */
-	DocumentType createDoctype(String name);
-
-	/**
-	 * Returns the DocumentType ID. Unlike the standard DOM approach of
-	 * "getDocumentType().getPublicId()", this method returns the id even if
-	 * implicit.
-	 * 
-	 * @return the DocumentType ID
-	 */
-	String getDocumentTypeId();
-
-	/**
-	 * NOT API ... needs to be removed/changed
-	 * 
-	 * ISSUE: need to specify
-	 * 
-	 * @deprecated
-	 * 
-	 * @return true if is JSPDocument
-	 * 
-	 */
-	boolean isJSPDocument();
-
-	/**
-	 * NOT API ... needs to be removed/changed
-	 * 
-	 * ISSUE: need to specify
-	 * 
-	 * @deprecated
-	 * 
-	 */
-	boolean isJSPType();
-
-	/**
-	 * NOT API ... may removed/changed
-	 * 
-	 * ISSUE: need to specify -- currently used to denote an HTML DOM document
-	 * is XHTML
-	 * 
-	 * @deprecated
-	 * 
-	 */
-	boolean isXMLType();
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMDocumentType.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMDocumentType.java
deleted file mode 100644
index 602c65e..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMDocumentType.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.document;
-
-
-
-import org.w3c.dom.DocumentType;
-
-/**
- * This interface enables setting of Public and System ID for DOCTYPE
- * declaration.
- * 
- * @plannedfor 1.0
- */
-public interface IDOMDocumentType extends IDOMNode, DocumentType {
-
-
-	/**
-	 * Sets document type's public id, as source.
-	 * 
-	 * @param String -
-	 *            the publicId
-	 */
-	void setPublicId(String publicId);
-
-	/**
-	 * Sets docment type's system id, as source.
-	 * 
-	 * @param String -
-	 *            the systemId
-	 */
-	void setSystemId(String systemId);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMElement.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMElement.java
deleted file mode 100644
index fcd7763..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMElement.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.document;
-
-
-
-import org.w3c.dom.Attr;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Element;
-
-/**
- * This interface provides extensions to corresponding DOM interface to enable
- * functions for source editing and incremental parsing.
- * 
- * @plannedfor 1.0
- * 
- */
-public interface IDOMElement extends IDOMNode, Element {
-
-	/**
-	 * Retuns the start offset of the end tag.
-	 * 
-	 * ISSUE: need to sort out need for this
-	 * 
-	 * @return int - the start offset of the end tag.
-	 */
-	int getEndStartOffset();
-
-	/**
-	 * Returns the end offset of the
-	 * 
-	 * ISSUE: need to sort out need for this
-	 * 
-	 * @return int - the end offset of the start tag.
-	 */
-	int getStartEndOffset();
-
-	/**
-	 * Returns true if has an end tag.
-	 * 
-	 * In our source-oriented DOM, sometimes Elements are "ended", even
-	 * without an explicit end tag in the source.
-	 * 
-	 * @return true if has an end tag.
-	 */
-	boolean hasEndTag();
-
-	/**
-	 * returns true if has a start tag.
-	 * 
-	 * In our source-oriented DOM, a lone end tag will cause a node to be
-	 * created in the tree, unlike well-formed-only DOMs.
-	 * 
-	 * @return true if has a start tag.
-	 */
-	boolean hasStartTag();
-
-	/**
-	 * returns true if this element is a comment element
-	 * 
-	 * @return true if this element is a comment element
-	 */
-	boolean isCommentTag();
-
-	/**
-	 * isEmptyTag method
-	 * 
-	 * @return boolean - true if is empty tag, false otherwise
-	 */
-	boolean isEmptyTag();
-
-	/**
-	 * Returns true if floating end tag.
-	 * 
-	 * @return true if floating end tag.
-	 */
-	boolean isEndTag();
-
-	/**
-	 * Returns true for "global tag" (basically, without prefix)
-	 * 
-	 * @return true for "global tag" (basically, without prefix)
-	 */
-	boolean isGlobalTag();
-
-	/**
-	 * Returns true for no start and the end tags in source.
-	 * 
-	 * Provided for some very special cases when, for example, and HTML tag is
-	 * assumed in an HTML document that does not have a literal HTML tag.
-	 * 
-	 * ISSUE: check with clients to see if still needed
-	 * 
-	 * @return true or no start and the end tags in source.
-	 */
-	boolean isImplicitTag();
-
-	/**
-	 * isJSPTag method
-	 * 
-	 * @return boolean
-	 * 
-	 * ISSUE: change to isContainerLanguageTag(String type);
-	 */
-	boolean isJSPTag();
-
-	/**
-	 * Returns true if start tag is closed.
-	 * 
-	 * @return true if start tag is closed.
-	 */
-	boolean isStartTagClosed();
-
-	/**
-	 * returns true if is xml tag
-	 * 
-	 * ISSUE: need to spec this better.
-	 * 
-	 * @return true if is xml tag
-	 */
-	boolean isXMLTag();
-
-	/**
-	 * NOT CLIENT API
-	 * 
-	 * notifyEndTagChanged
-	 * 
-	 */
-	void notifyEndTagChanged();
-
-	/**
-	 * NOT CLIENT API
-	 * 
-	 * notifyStartTagChanged
-	 * 
-	 */
-	void notifyStartTagChanged();
-
-	/**
-	 * NOT CLIENT API
-	 * 
-	 * Signify that this tag is a comment
-	 * 
-	 * For use only by parsers.
-	 * 
-	 */
-	void setCommentTag(boolean isCommentTag);
-
-	/**
-	 * NOT CLIENT API
-	 * 
-	 * Signify that this tag is an empty tag
-	 * 
-	 * For use only by parsers
-	 */
-	void setEmptyTag(boolean isEmptyTag);
-
-	/**
-	 * NOT CLIENT API
-	 * 
-	 * Signify that this tag is a JSP tag
-	 * 
-	 * For use only by parsers
-	 * 
-	 * ISSUE: I have had one non-parsing client who has had to use this ...
-	 * need to check
-	 * 
-	 */
-	void setJSPTag(boolean isJSPTag);
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation for DOM 3.
-	 */
-	public void setIdAttribute(String name, boolean isId);
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation for DOM 3.
-	 */
-	public void setIdAttributeNS(String namespaceURI, String localName, boolean isId);
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation for DOM 3.
-	 */
-	public void setIdAttributeNode(Attr idAttr, boolean isId) throws DOMException;
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMEntity.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMEntity.java
deleted file mode 100644
index 3e22ec0..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMEntity.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.wst.xml.core.internal.provisional.document;
-
-import org.w3c.dom.Entity;
-
-public interface IDOMEntity extends Entity {
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation of DOM 3.
-	 */
-	public String getInputEncoding();
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation of DOM 3.
-	 */
-	public String getXmlEncoding();
-
-	/**
-	 * NOT IMPLEMENTED. Is defined here in preparation of DOM 3.
-	 */
-	public String getXmlVersion();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMImplementation.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMImplementation.java
deleted file mode 100644
index da73e24..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMImplementation.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.xml.core.internal.provisional.document;
-
-public interface IDOMImplementation {
-
-	/**
-	 * NOT IMPLEMENTED. This is defined here in preparation of DOM 3.
-	 * 
-	 * This method returns a specialized object which implements the
-	 * specialized APIs of the specified feature and version, as specified in .
-	 * The specialized object may also be obtained by using binding-specific
-	 * casting methods but is not necessarily expected to, as discussed in .
-	 * This method also allow the implementation to provide specialized
-	 * objects which do not support the <code>DOMImplementation</code>
-	 * interface.
-	 * 
-	 * @param feature
-	 *            The name of the feature requested. Note that any plus sign
-	 *            "+" prepended to the name of the feature will be ignored
-	 *            since it is not significant in the context of this method.
-	 * @param version
-	 *            This is the version number of the feature to test.
-	 * @return Returns an object which implements the specialized APIs of the
-	 *         specified feature and version, if any, or <code>null</code>
-	 *         if there is no object which implements interfaces associated
-	 *         with that feature. If the <code>DOMObject</code> returned by
-	 *         this method implements the <code>DOMImplementation</code>
-	 *         interface, it must delegate to the primary core
-	 *         <code>DOMImplementation</code> and not return results
-	 *         inconsistent with the primary core
-	 *         <code>DOMImplementation</code> such as
-	 *         <code>hasFeature</code>, <code>getFeature</code>, etc.
-	 * @see DOM Level 3
-	 */
-	public Object getFeature(String feature, String version);
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMModel.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMModel.java
deleted file mode 100644
index 3effc7e..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMModel.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.document;
-
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.document.XMLModelNotifier;
-
-/**
- * Provides means to get the XMLModel form of IStrucutredModel. Not to be
- * implemented or extended by clients.
- * 
- * @plannedfor 1.0
- */
-public interface IDOMModel extends IStructuredModel {
-
-	/**
-	 * Returns the DOM Document.
-	 * 
-	 * @return the DOM Document.
-	 */
-	IDOMDocument getDocument();
-
-	/**
-	 * 
-	 * Returns an source generator appropriate for this model.
-	 * 
-	 * @return the source generator
-	 */
-	ISourceGenerator getGenerator();
-
-	/**
-	 * NOT CLIENT API
-	 * 
-	 * Returns an XMLModelNotifier. Clients should not use.
-	 * 
-	 * ISSUE: should be "internalized".
-	 * 
-	 */
-	XMLModelNotifier getModelNotifier();
-
-	/**
-	 * NOT CLIENT API
-	 *
-	 * Sets the model notifier Clients should not use.
-	 * 
-	 * ISSUE: need to review with legacy clients.
-	 */
-	void setModelNotifier(XMLModelNotifier notifier);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMNode.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMNode.java
deleted file mode 100644
index ed8875f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMNode.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.document;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.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.xml.core.internal.document.InvalidCharacterException;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Node;
-
-/**
- * This interface describes the extended functionality of our source-oriented
- * DOM. First, our nodes extend the w3c Node interface, IndexedRegion, and
- * INodeNotifier. Plus, has the extra methods called out here.
- * 
- * ISSUE: the 'read-only' API should be broken out in their own interface
- * 
- * @plannedfor 1.0
- * 
- */
-public interface IDOMNode extends IndexedRegion, INodeNotifier, Node {
-
-	/**
-	 * Gets the last structured document region of this node.
-	 * 
-	 * ISSUE: need to resolve getEnd/getLast confusion.
-	 * 
-	 * @return IStructuredDocumentRegion - returns the last structured
-	 *         document region associated with
-	 */
-	IStructuredDocumentRegion getEndStructuredDocumentRegion();
-
-	/**
-	 * Gets the first structured document region of this node.
-	 * 
-	 * ISSUE: need to resolve getFirst/getStart confusion
-	 * 
-	 * @return the first structured document region of this node.
-	 */
-	IStructuredDocumentRegion getFirstStructuredDocumentRegion();
-
-	/**
-	 * Gets the last structured document region of this node.
-	 * 
-	 * ISSUE: need to resolve getEnd/getLast confusion.
-	 * 
-	 * @return IStructuredDocumentRegion - returns the last structured
-	 *         document region associated with
-	 */
-	IStructuredDocumentRegion getLastStructuredDocumentRegion();
-
-	/**
-	 * Returns the model associated with this node. Returns null if not part
-	 * of an active model.
-	 * 
-	 * @return IDOMModel - returns the IDOMModel this node is part of.
-	 */
-	IDOMModel getModel();
-
-	/**
-	 * Get's the region representing the name of this node
-	 * 
-	 * ISSUE: only implemented/used at attribute and DTDNodes -- should move.
-	 * 
-	 * @return ITextRegion - returns the ITextRegion associated with this
-	 *         Node.
-	 * 
-	 * @deprecated
-	 */
-	ITextRegion getNameRegion();
-
-	/**
-	 * Returns the literal source representing this node in source document.
-	 * 
-	 * ISSUE: need to fix implementation to match.
-	 * 
-	 * @return the literal source representing this node in source document.
-	 */
-	String getSource();
-
-	/**
-	 * Gets the first structured document region of this node.
-	 * 
-	 * ISSUE: need to resolve getFirst/getStart confusion
-	 * 
-	 * @return the first structured document region of this node.
-	 */
-	IStructuredDocumentRegion getStartStructuredDocumentRegion();
-
-	/**
-	 * Returns the structured document that underlies this node's model.
-	 * 
-	 * Returns null if this node is not actively part of a source document. In
-	 * contrast, in the pure DOM world, "owning document" is not null even
-	 * after a node is deleted from the DOM.
-	 * 
-	 * ISSUE: we need to fix our implementation to match this spec.
-	 * 
-	 * @return the structured document.
-	 */
-	IStructuredDocument getStructuredDocument();
-
-	/**
-	 * Get's the region representing the value of this node if only one
-	 * ITextRegion, null otherwise.
-	 * 
-	 * ISSUE: only implemented/used at attribute level, move "down".
-	 * 
-	 * @return ITextRegion - returns the ITextRegion associated with this
-	 *         Node.
-	 * 
-	 * @deprecated
-	 */
-	ITextRegion getValueRegion();
-
-	/**
-	 * Returns a string representing the source of this node, but with
-	 * character enties converted (e.g. &lt; is converted to '<').
-	 * 
-	 * ISSUE: need to better spec extent of this conversion, we may not know
-	 * all character entities.
-	 * 
-	 * ISSUE: need to fix implementation to match spec.
-	 * 
-	 * @return String - get's the source of this Node.
-	 */
-	String getValueSource();
-
-	/**
-	 * Used to know read-only state of children.
-	 * 
-	 * @return boolean Whether children of the element can be appended or
-	 *         removed.
-	 */
-	boolean isChildEditable();
-
-	/**
-	 * Returns true if tag is closed in source.
-	 * 
-	 * In our source orient DOM we sometimes end a Node without it being
-	 * explicitly closed in source.
-	 * 
-	 * @return boolean - true if node is closed
-	 */
-	boolean isClosed();
-
-	/**
-	 * Returns true if this node can contain children.
-	 * 
-	 * @return boolean - true if this node can contain children.
-	 */
-	boolean isContainer();
-
-	/**
-	 * Used to know read-only state of data.
-	 * 
-	 */
-	boolean isDataEditable();
-
-	/**
-	 * Set's readonly state of children
-	 * 
-	 */
-	void setChildEditable(boolean editable);
-
-	/**
-	 * Set's readonly state of data
-	 * 
-	 */
-	void setDataEditable(boolean editable);
-
-	/**
-	 * Sets readonly state of data
-	 * 
-	 * faster approach to set read-only state.
-	 */
-	void setEditable(boolean editable, boolean deep);
-
-	/**
-	 * Sets the specified raw source to the Text node. Throws
-	 * InvalidCharacterException when the specified raw source includes
-	 * invalid characters, such as, ' <', '>' and '&'. Valid character
-	 * entities, such as, "&amp;lt;", are accepted.
-	 */
-	void setSource(String source) throws InvalidCharacterException;
-
-	/**
-	 * Sets the specified raw source to the Text or Attr node's value. When
-	 * the specified raw source includes invalid characters, such as, ' <',
-	 * '>' and '&', converts them. Valid character entities, such as,
-	 * "&amp;lt;", are accepted.
-	 */
-	void setValueSource(String source);
-	
-	
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public short compareDocumentPosition(Node other) throws DOMException;
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public String getBaseURI();
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public Object getFeature(String feature, String version);
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public String getTextContent() throws DOMException;
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public Object getUserData(String key);
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public boolean isDefaultNamespace(String namespaceURI);
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public boolean isEqualNode(Node arg);
-	
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public boolean isSameNode(Node other);
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public String lookupNamespaceURI(String prefix);
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public String lookupPrefix(String namespaceURI);
-	
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public void setTextContent(String textContent) throws DOMException;
-	
-	
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
-	public boolean isId();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMText.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMText.java
deleted file mode 100644
index efb3a5f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMText.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.document;
-
-
-
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Text;
-
-/**
- * This interface provides extensions to corresponding DOM interface to enable
- * functions for source editing and incremental parsing.
- * 
- * @plannedfor 1.0
- * 
- */
-public interface IDOMText extends IDOMNode, Text {
-
-	/**
-	 * NOT API - can be eliminated or moved to ltk level
-	 * 
-	 * Appends the content of the text node
-	 * 
-	 * @param text -
-	 *            the Text to append.
-	 */
-	void appendText(Text text);
-
-	/**
-	 * NOT API - can be eliminated or moved to ltk level
-	 * 
-	 * Returns true if is not valid.
-	 */
-	boolean isInvalid();
-
-	/**
-	 * Returns true if is entirely white space.
-	 * 
-	 * This is intened to be better performing that all clients getting the
-	 * source, and checking themselves.
-	 * 
-	 * ISSUE: need to clarify if implementation is pure to "white space" as
-	 * per DOM spec? Here is the DOM spec:
-	 * 
-	 * Returns whether this text node contains <a
-	 * href='http://www.w3.org/TR/2004/REC-xml-infoset-20040204#infoitem.character'>
-	 * element content whitespace</a>, often abusively called "ignorable
-	 * whitespace". The text node is determined to contain whitespace in
-	 * element content during the load of the document or if validation occurs
-	 * while using <code>Document.normalizeDocument()</code>.
-	 * 
-	 * @see DOM Level 3
-	 * 
-	 * @return true if is entirely white space.
-	 */
-
-	public boolean isElementContentWhitespace();
-
-	/**
-	 * NOT YET IMPLEMTENTED but exists here interface in preparation for DOM3
-	 * 
-	 * Returns all text of <code>Text</code> nodes logically-adjacent text
-	 * nodes to this node, concatenated in document order. <br>
-	 * For instance, in the example below <code>wholeText</code> on the
-	 * <code>Text</code> node that contains "bar" returns "barfoo", while on
-	 * the <code>Text</code> node that contains "foo" it returns "barfoo".
-	 * 
-	 * @see DOM Level 3
-	 * 
-	 */
-	public String getWholeText();
-
-	/**
-	 * NOT YET IMPLEMTENTED but exists here interface in preparation for DOM3
-	 * 
-	 * Replaces the text of the current node and all logically-adjacent text
-	 * nodes with the specified text. All logically-adjacent text nodes are
-	 * removed including the current node unless it was the recipient of the
-	 * replacement text. <br>
-	 * This method returns the node which received the replacement text. The
-	 * returned node is:
-	 * <ul>
-	 * <li><code>null</code>, when the replacement text is the empty
-	 * string; </li>
-	 * <li>the current node, except when the current node is read-only; </li>
-	 * <li> a new <code>Text</code> node of the same type (
-	 * <code>Text</code> or <code>CDATASection</code>) as the current
-	 * node inserted at the location of the replacement. </li>
-	 * </ul>
-	 * <br>
-	 * For instance, in the above example calling
-	 * <code>replaceWholeText</code> on the <code>Text</code> node that
-	 * contains "bar" with "yo" in argument results in the following: <br>
-	 * Where the nodes to be removed are read-only descendants of an
-	 * <code>EntityReference</code>, the <code>EntityReference</code>
-	 * must be removed instead of the read-only nodes. If any
-	 * <code>EntityReference</code> to be removed has descendants that are
-	 * not <code>EntityReference</code>, <code>Text</code>, or
-	 * <code>CDATASection</code> nodes, the <code>replaceWholeText</code>
-	 * method must fail before performing any modification of the document,
-	 * raising a <code>DOMException</code> with the code
-	 * <code>NO_MODIFICATION_ALLOWED_ERR</code>. <br>
-	 * For instance, in the example below calling
-	 * <code>replaceWholeText</code> on the <code>Text</code> node that
-	 * contains "bar" fails, because the <code>EntityReference</code> node
-	 * "ent" contains an <code>Element</code> node which cannot be removed.
-	 * 
-	 * @param content
-	 *            The content of the replacing <code>Text</code> node.
-	 * @return The <code>Text</code> node created with the specified
-	 *         content.
-	 * @exception DOMException
-	 *                NO_MODIFICATION_ALLOWED_ERR: Raised if one of the
-	 *                <code>Text</code> nodes being replaced is readonly.
-	 * @see DOM Level 3
-	 */
-	public Text replaceWholeText(String content) throws DOMException;
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/ISourceGenerator.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/ISourceGenerator.java
deleted file mode 100644
index 473048c..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/ISourceGenerator.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.document;
-
-import org.w3c.dom.Attr;
-import org.w3c.dom.CDATASection;
-import org.w3c.dom.Comment;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.EntityReference;
-import org.w3c.dom.Node;
-import org.w3c.dom.ProcessingInstruction;
-import org.w3c.dom.Text;
-
-/**
- * 
- * ISourceGenerator allows DOM models to generate source appropriate for their
- * parameter, relative to the model that provides the source generator.
- * 
- */
-
-public interface ISourceGenerator {
-
-	/**
-	 * Generate attribute name.
-	 * 
-	 * @param attr -
-	 *            the Attr
-	 * @return String - the string generated
-	 */
-	String generateAttrName(Attr attr);
-
-	/**
-	 * generateAttrValue
-	 * 
-	 * @param attr -
-	 *            the Attr
-	 * @return String - the string generated
-	 */
-	String generateAttrValue(Attr attr);
-
-	/**
-	 * generateAttrValue
-	 * 
-	 * @param attr -
-	 *            the Attr
-	 * @param char -
-	 *            the type of quote desired (' or ").
-	 * @return String - the string generated
-	 */
-	String generateAttrValue(Attr attr, char quote);
-
-	/**
-	 * generateAttrValue
-	 * 
-	 * @param value
-	 *            the String value
-	 * @param char -
-	 *            the type of quote desired (' or ").
-	 * @return String - the string generated
-	 */
-	String generateAttrValue(String value, char quote);
-
-	/**
-	 * generateCDATASection method
-	 * 
-	 * @param comment
-	 *            CDATASection
-	 * @return String - the string generated
-	 */
-	String generateCDATASection(CDATASection cdata);
-
-	/**
-	 * generateChild method
-	 * 
-	 * @return String
-	 * @param Node
-	 * @return String - the string generated
-	 */
-	String generateChild(Node parentNode);
-
-	/**
-	 * generateCloseTag
-	 * 
-	 * @param node -
-	 *            the Node
-	 * @return String - the string generated
-	 */
-	String generateCloseTag(Node node);
-
-	/**
-	 * generateComment method
-	 * 
-	 * @param comment
-	 *            org.w3c.dom.Comment
-	 * @return String - the string generated
-	 */
-	String generateComment(Comment comment);
-
-	/**
-	 * generateDoctype method
-	 * 
-	 * @param docType
-	 *            DocumentType
-	 * @return String - the string generated
-	 */
-	String generateDoctype(DocumentType docType);
-
-	/**
-	 * generateElement method
-	 * 
-	 * @param element -
-	 *            Element
-	 * @return String - the string generated
-	 */
-	String generateElement(Element element);
-
-	/**
-	 * generateEndTag method
-	 * 
-	 * @param element -
-	 *            Element
-	 * @return String - the string generated
-	 */
-	String generateEndTag(Element element);
-
-	/**
-	 * generateEntityRef method
-	 * 
-	 * @param entityRef
-	 *            EntityReference
-	 * @return String - the string generated
-	 */
-	String generateEntityRef(EntityReference entityRef);
-
-	/**
-	 * generatePI method
-	 * 
-	 * @param pi -
-	 *            ProcessingInstruction
-	 * @return String - the string generated
-	 */
-	String generatePI(ProcessingInstruction pi);
-
-	/**
-	 * generateSource method
-	 * 
-	 * @param node -
-	 *            the Node
-	 * @return String - the string generated
-	 */
-	String generateSource(Node node);
-
-	/**
-	 * generateStartTag method
-	 * 
-	 * @param element
-	 *            Element
-	 * @return String - the string generated
-	 */
-	String generateStartTag(Element element);
-
-	/**
-	 * Generate tag name.
-	 * 
-	 * @param element -
-	 *            element
-	 * @return String - the string generated
-	 */
-	String generateTagName(Element element);
-
-	/**
-	 * generateText method
-	 * 
-	 * @param text -
-	 *            the Text
-	 * @return String - the string generated
-	 */
-	String generateText(Text text);
-
-	/**
-	 * generate text data
-	 * 
-	 * @param text -
-	 *            the Text
-	 * @param data -
-	 *            the data
-	 * @return String - the string generated
-	 */
-	String generateTextData(Text text, String data);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/CommentNodeFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/CommentNodeFormatter.java
deleted file mode 100644
index f30ed3a..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/CommentNodeFormatter.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.format;
-
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatContraints;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Node;
-
-
-public class CommentNodeFormatter extends NodeFormatter {
-	static private final String CR = "\r"; //$NON-NLS-1$
-	static private final String LF = "\n"; //$NON-NLS-1$
-
-	protected String adjustIndentations(String aString, String lineIndent, String singleIndent) {
-		String result = new String();
-
-		int indexOfLineDelimiter = StringUtils.indexOfLineDelimiter(aString);
-		result = aString.substring(0, indexOfLineDelimiter);
-		while (indexOfLineDelimiter != -1) {
-			// Before find the next LineDelimiter, we have to figure out the
-			// size of the current LineDelimiter
-			// so we can figure out how many bytes to skip before finding the
-			// next LineDelimiter.
-			// Otherwise, we may treat the LF in CRLF as the next
-			// LineDelimiter.
-			int lineDelimiterSize = 1;
-			if (aString.length() >= indexOfLineDelimiter + 2 && aString.substring(indexOfLineDelimiter, indexOfLineDelimiter + 1).compareTo(CR) == 0 && aString.substring(indexOfLineDelimiter + 1, indexOfLineDelimiter + 2).compareTo(LF) == 0)
-				lineDelimiterSize = 2;
-
-			int indexOfNextLineDelimiter = StringUtils.indexOfLineDelimiter(aString, indexOfLineDelimiter + lineDelimiterSize);
-			int indexOfNonblank = StringUtils.indexOfNonblank(aString, indexOfLineDelimiter);
-
-			if (indexOfNonblank != -1) {
-				if (indexOfNextLineDelimiter == -1) {
-					// last line; copy till the end
-					result += lineIndent + singleIndent + aString.substring(indexOfNonblank);
-				} else if (indexOfNextLineDelimiter != -1 && indexOfNextLineDelimiter < indexOfNonblank) {
-					// blank line; just add a indent
-					result += lineIndent + singleIndent;
-				} else {
-					// copy all text between indexOfNonblank and
-					// indexOfNextLineDelimiter
-					result += lineIndent + singleIndent + aString.substring(indexOfNonblank, indexOfNextLineDelimiter);
-				}
-
-				indexOfLineDelimiter = indexOfNextLineDelimiter;
-			} else {
-				if (indexOfNextLineDelimiter == -1) {
-					result += lineIndent;
-				} else {
-					// blank line; just add a indent
-					result += lineIndent + singleIndent;
-				}
-
-				indexOfLineDelimiter = indexOfNextLineDelimiter;
-			}
-		}
-
-		return result;
-	}
-
-	protected void formatNode(IDOMNode node, IStructuredFormatContraints formatContraints) {
-		if (node != null) {
-			// lineDelimiterFound means multi line comment
-			String nodeValue = node.getNodeValue();
-			boolean lineDelimiterFoundInComment = StringUtils.containsLineDelimiter(nodeValue);
-
-			if (lineDelimiterFoundInComment) {
-				// format indentation before node
-				formatIndentationBeforeNode(node, formatContraints);
-
-				// adjust indentations in multi line comment
-				String lineDelimiter = node.getModel().getStructuredDocument().getLineDelimiter();
-				String lineIndent = formatContraints.getCurrentIndent();
-				String singleIndent = getFormatPreferences().getIndent();
-				String newNodevalue = adjustIndentations(nodeValue, lineDelimiter + lineIndent, singleIndent);
-				if (nodeValue.compareTo(newNodevalue) != 0)
-					node.setNodeValue(newNodevalue);
-			}
-
-			if (!nodeHasSiblings(node) || (node.getPreviousSibling() != null && node.getPreviousSibling().getNodeType() == Node.TEXT_NODE && !StringUtils.containsLineDelimiter(node.getPreviousSibling().getNodeValue()) && node.getNextSibling() == null)) {
-				// single child
-				// or inline comment after text
-				// do nothing
-			} else
-				// format indentation after node
-				formatIndentationAfterNode(node, formatContraints);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/DocumentNodeFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/DocumentNodeFormatter.java
deleted file mode 100644
index 297df28..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/DocumentNodeFormatter.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     Jesper Steen Møller - xml:space='preserve' support
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.format;
-
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatContraints;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-
-
-public class DocumentNodeFormatter extends NodeFormatter {
-	protected void formatChildren(IDOMNode node, IStructuredFormatContraints formatContraints) {
-		String singleIndent = getFormatPreferences().getIndent();
-		String lineIndent = formatContraints.getCurrentIndent();
-
-		if (node != null && (fProgressMonitor == null || !fProgressMonitor.isCanceled())) {
-			// normalize node first to combine adjacent text nodes
-			node.normalize();
-
-			IDOMNode nextChild = (IDOMNode) node.getFirstChild();
-			while (nextChild != null) {
-				IDOMNode eachChildNode = nextChild;
-				nextChild = (IDOMNode) eachChildNode.getNextSibling();
-				IStructuredFormatter formatter = getFormatter(eachChildNode);
-				IStructuredFormatContraints childFormatContraints = formatter.getFormatContraints();
-				String childIndent = lineIndent + singleIndent;
-				childFormatContraints.setCurrentIndent(childIndent);
-				childFormatContraints.setClearAllBlankLines(formatContraints.getClearAllBlankLines());
-				childFormatContraints.setInPreserveSpaceElement(formatContraints.getInPreserveSpaceElement());
-
-				// format each child
-				formatter.format(eachChildNode, childFormatContraints);
-
-				if (nextChild != null && nextChild.getParentNode() == null)
-					// nextNode is deleted during format
-					nextChild = (IDOMNode) eachChildNode.getNextSibling();
-			}
-		}
-	}
-
-	protected void formatNode(IDOMNode node, IStructuredFormatContraints formatContraints) {
-		if (node != null)
-			formatChildren(node, formatContraints);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/ElementNodeFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/ElementNodeFormatter.java
deleted file mode 100644
index beed8f4..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/ElementNodeFormatter.java
+++ /dev/null
@@ -1,425 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     Jesper Steen Møller - xml:space='preserve' support
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.format;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatContraints;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.document.AttrImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.ISourceGenerator;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-
-public class ElementNodeFormatter extends DocumentNodeFormatter {
-	static private final char DOUBLE_QUOTE = '"';//$NON-NLS-1$
-	static private final String DOUBLE_QUOTES = "\"\"";//$NON-NLS-1$
-	static private final char EQUAL_CHAR = '='; // equal sign$NON-NLS-1$
-	static private final String PRESERVE = "preserve";//$NON-NLS-1$
-	static private final String PRESERVE_QUOTED = "\"preserve\"";//$NON-NLS-1$
-	static private final char SINGLE_QUOTE = '\'';//$NON-NLS-1$
-	static private final String XML_SPACE = "xml:space";//$NON-NLS-1$
-	static private final char SPACE_CHAR = ' '; //$NON-NLS-1$
-	static private final String XSL_NAMESPACE = "http://www.w3.org/1999/XSL/Transform"; //$NON-NLS-1$
-	static private final String XSL_ATTRIBUTE = "attribute"; //$NON-NLS-1$
-	static private final String XSL_TEXT = "text"; //$NON-NLS-1$
-
-	protected void formatEndTag(IDOMNode node, IStructuredFormatContraints formatContraints) {
-		if (!isEndTagMissing(node)) {
-			// end tag exists
-
-			IStructuredDocument structuredDocument = node.getModel().getStructuredDocument();
-			String lineDelimiter = structuredDocument.getLineDelimiter();
-			String nodeIndentation = getNodeIndent(node);
-			IDOMNode lastChild = (IDOMNode) node.getLastChild();
-			if (lastChild != null && lastChild.getNodeType() != Node.TEXT_NODE) {
-				if (isEndTagMissing(lastChild)) {
-					// find deepest child
-					IDOMNode deepestChild = (IDOMNode) lastChild.getLastChild();
-					while (deepestChild != null && deepestChild.getLastChild() != null && isEndTagMissing(deepestChild)) {
-						lastChild = deepestChild;
-						deepestChild = (IDOMNode) deepestChild.getLastChild();
-					}
-
-					if (deepestChild != null) {
-						if (deepestChild.getNodeType() == Node.TEXT_NODE) {
-							// Special indentation handling if lastChild's end
-							// tag is missing and deepestChild is a text node.
-							String nodeText = deepestChild.getNodeValue();
-
-							if (!nodeText.endsWith(lineDelimiter + nodeIndentation)) {
-								nodeText = StringUtils.appendIfNotEndWith(nodeText, lineDelimiter);
-								nodeText = StringUtils.appendIfNotEndWith(nodeText, nodeIndentation);
-							}
-
-							replaceNodeValue(deepestChild, nodeText);
-						}
-						else
-							insertAfterNode(lastChild, lineDelimiter + nodeIndentation);
-					}
-				}
-				else
-					// indent end tag
-					insertAfterNode(lastChild, lineDelimiter + nodeIndentation);
-			}
-			else if (lastChild == null && firstStructuredDocumentRegionContainsLineDelimiters(node)) {
-				// BUG174243 do not indent end tag if node has empty content
-				// (otherwise new text node would be introduced)
-				ModelQueryAdapter adapter = (ModelQueryAdapter) ((IDOMDocument) node.getOwnerDocument()).getAdapterFor(ModelQueryAdapter.class);
-				CMElementDeclaration elementDeclaration = (CMElementDeclaration) adapter.getModelQuery().getCMNode(node);
-				if ((elementDeclaration == null) || (elementDeclaration.getContentType() != CMElementDeclaration.EMPTY)) {
-					// indent end tag
-					replace(structuredDocument, node.getFirstStructuredDocumentRegion().getEndOffset(), 0, lineDelimiter + nodeIndentation);
-				}
-			}
-
-			// format end tag name
-			IStructuredDocumentRegion endTagStructuredDocumentRegion = node.getLastStructuredDocumentRegion();
-			if (endTagStructuredDocumentRegion.getRegions().size() >= 3) {
-				ITextRegion endTagNameRegion = endTagStructuredDocumentRegion.getRegions().get(1);
-				removeRegionSpaces(node, endTagStructuredDocumentRegion, endTagNameRegion);
-			}
-		}
-	}
-
-	protected void formatNode(IDOMNode node, IStructuredFormatContraints formatContraints) {
-		if (node != null) {
-			// format indentation before node
-			formatIndentationBeforeNode(node, formatContraints);
-
-			// format start tag
-			IDOMNode newNode = node;
-			int startTagStartOffset = node.getStartOffset();
-			IDOMModel structuredModel = node.getModel();
-
-			boolean currentlyInXmlSpacePreserve = formatContraints.getInPreserveSpaceElement();
-			formatStartTag(node, formatContraints);
-			// save new node
-			newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset);
-
-			IStructuredDocumentRegion flatNode = newNode.getFirstStructuredDocumentRegion();
-			if (flatNode != null) {
-				ITextRegionList regions = flatNode.getRegions();
-				ITextRegion lastRegion = regions.get(regions.size() - 1);
-				// format children and end tag if not empty start tag
-				if (lastRegion.getType() != DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
-					// format children
-					formatChildren(newNode, formatContraints);
-
-					// save new node
-					newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset);
-
-					// format end tag
-					formatEndTag(newNode, formatContraints);
-				}
-			}
-
-			formatContraints.setInPreserveSpaceElement(currentlyInXmlSpacePreserve);
-			// only indent if not at last node
-			if (newNode != null && newNode.getNextSibling() != null)
-				// format indentation after node
-				formatIndentationAfterNode(newNode, formatContraints);
-		}
-	}
-
-	/**
-	 * This method formats the start tag name, and formats the attributes if
-	 * available.
-	 */
-	protected void formatStartTag(IDOMNode node, IStructuredFormatContraints formatContraints) {
-		StructuredFormatPreferencesXML preferences = (StructuredFormatPreferencesXML) getFormatPreferences();
-		String singleIndent = preferences.getIndent();
-		String lineIndent = formatContraints.getCurrentIndent();
-		String attrIndent = lineIndent + singleIndent;
-		boolean splitMultiAttrs = preferences.getSplitMultiAttrs();
-		boolean alignEndBracket = preferences.isAlignEndBracket();
-		boolean sawXmlSpace = false;
-
-		IStructuredDocumentRegion flatNode = node.getFirstStructuredDocumentRegion();
-		NamedNodeMap attributes = node.getAttributes();
-
-		// Note: attributes should not be null even if the node has no
-		// attributes. However, attributes.getLength() will be 0. But, check
-		// for null just in case.
-		if (attributes != null) {
-			// compute current available line width
-			int currentAvailableLineWidth = 0;
-			try {
-				// 1 is for "<"
-				int nodeNameOffset = node.getStartOffset() + 1 + node.getNodeName().length();
-				int lineOffset = node.getStructuredDocument().getLineInformationOfOffset(nodeNameOffset).getOffset();
-				String text = node.getStructuredDocument().get(lineOffset, nodeNameOffset - lineOffset);
-				int usedWidth = getIndentationLength(text);
-				currentAvailableLineWidth = preferences.getLineWidth() - usedWidth;
-			}
-			catch (BadLocationException e) {
-				// log for now, unless we find reason not to
-				Logger.log(Logger.INFO, e.getMessage());
-			}
-
-			StringBuffer stringBuffer = new StringBuffer();
-			String lineDelimiter = node.getModel().getStructuredDocument().getLineDelimiter();
-			int attrLength = attributes.getLength();
-			int lastUndefinedRegionOffset = 0;
-			boolean startTagSpansOver1Line = false;
-
-			for (int i = 0; i < attrLength; i++) {
-				AttrImpl attr = (AttrImpl) attributes.item(i);
-				ITextRegion nameRegion = attr.getNameRegion();
-				ITextRegion equalRegion = attr.getEqualRegion();
-				ITextRegion valueRegion = attr.getValueRegion();
-
-				// append undefined regions
-				String undefinedRegion = getUndefinedRegions(node, lastUndefinedRegionOffset, attr.getStartOffset() - lastUndefinedRegionOffset);
-				stringBuffer.append(undefinedRegion);
-				lastUndefinedRegionOffset = attr.getStartOffset();
-
-				// check for xml:space attribute
-				if (flatNode.getText(nameRegion).compareTo(XML_SPACE) == 0) {
-					if (valueRegion == null) {
-						// [111674] If nothing has been written yet, treat as
-						// preserve, but only as hint
-						formatContraints.setInPreserveSpaceElement(true);
-						// Note we don't set 'sawXmlSpace', so that default or
-						// fixed DTD/XSD values may override.
-					}
-					else {
-						ISourceGenerator generator = node.getModel().getGenerator();
-						String newAttrValue = generator.generateAttrValue(attr);
-
-						// There is a problem in
-						// StructuredDocumentRegionUtil.getAttrValue(ITextRegion)
-						// when the region is instanceof ContextRegion.
-						// Workaround for now.
-						if (flatNode.getText(valueRegion).length() == 1) {
-							char firstChar = flatNode.getText(valueRegion).charAt(0);
-							if ((firstChar == DOUBLE_QUOTE) || (firstChar == SINGLE_QUOTE))
-								newAttrValue = DOUBLE_QUOTES;
-						}
-
-						if (newAttrValue.compareTo(PRESERVE_QUOTED) == 0)
-							formatContraints.setInPreserveSpaceElement(true);
-						else
-							formatContraints.setInPreserveSpaceElement(false);
-						sawXmlSpace = true;
-					}
-				}
-
-				if (splitMultiAttrs && attrLength > 1) {
-					stringBuffer.append(lineDelimiter + attrIndent);
-					stringBuffer.append(flatNode.getText(nameRegion));
-					startTagSpansOver1Line = true;
-					if (valueRegion != null) {
-						// append undefined regions
-						undefinedRegion = getUndefinedRegions(node, lastUndefinedRegionOffset, flatNode.getStartOffset(equalRegion) - lastUndefinedRegionOffset);
-						stringBuffer.append(undefinedRegion);
-						lastUndefinedRegionOffset = flatNode.getStartOffset(equalRegion);
-
-						stringBuffer.append(EQUAL_CHAR);
-
-						// append undefined regions
-						undefinedRegion = getUndefinedRegions(node, lastUndefinedRegionOffset, flatNode.getStartOffset(valueRegion) - lastUndefinedRegionOffset);
-						stringBuffer.append(undefinedRegion);
-						lastUndefinedRegionOffset = flatNode.getStartOffset(valueRegion);
-
-						// Note: trim() should not be needed for
-						// valueRegion.getText(). Just a workaround for a
-						// problem found in valueRegion for now.
-						stringBuffer.append(flatNode.getText(valueRegion).trim());
-					}
-				}
-				else {
-					if (valueRegion != null) {
-						int textLength = 1 + flatNode.getText(nameRegion).length() + 1 + flatNode.getText(valueRegion).length();
-						if (i == attrLength - 1) {
-							if (flatNode != null) {
-								ITextRegionList regions = flatNode.getRegions();
-								ITextRegion lastRegion = regions.get(regions.size() - 1);
-								if (lastRegion.getType() != DOMRegionContext.XML_EMPTY_TAG_CLOSE)
-									// 3 is for " />"
-									textLength += 3;
-								else
-									// 1 is for ">"
-									textLength++;
-							}
-						}
-
-						if (currentAvailableLineWidth >= textLength) {
-							stringBuffer.append(SPACE_CHAR);
-							currentAvailableLineWidth--;
-						}
-						else {
-							stringBuffer.append(lineDelimiter + attrIndent);
-							startTagSpansOver1Line = true;
-							currentAvailableLineWidth = preferences.getLineWidth() - attrIndent.length();
-						}
-
-						stringBuffer.append(flatNode.getText(nameRegion));
-
-						// append undefined regions
-						undefinedRegion = getUndefinedRegions(node, lastUndefinedRegionOffset, flatNode.getStartOffset(equalRegion) - lastUndefinedRegionOffset);
-						stringBuffer.append(undefinedRegion);
-						lastUndefinedRegionOffset = flatNode.getStartOffset(equalRegion);
-
-						stringBuffer.append(EQUAL_CHAR);
-
-						// append undefined regions
-						undefinedRegion = getUndefinedRegions(node, lastUndefinedRegionOffset, flatNode.getStartOffset(valueRegion) - lastUndefinedRegionOffset);
-						stringBuffer.append(undefinedRegion);
-						lastUndefinedRegionOffset = flatNode.getStartOffset(valueRegion);
-
-						// Note: trim() should not be needed for
-						// valueRegion.getText(). Just a workaround for a
-						// problem found in valueRegion for now.
-						stringBuffer.append(flatNode.getText(valueRegion).trim());
-
-						currentAvailableLineWidth -= flatNode.getText(nameRegion).length();
-						currentAvailableLineWidth--;
-						currentAvailableLineWidth -= flatNode.getText(valueRegion).trim().length();
-					}
-					else {
-						if (currentAvailableLineWidth >= 1 + flatNode.getText(nameRegion).length()) {
-							stringBuffer.append(SPACE_CHAR);
-							currentAvailableLineWidth--;
-						}
-						else {
-							stringBuffer.append(lineDelimiter + attrIndent);
-							startTagSpansOver1Line = true;
-							currentAvailableLineWidth = preferences.getLineWidth() - attrIndent.length();
-						}
-
-						stringBuffer.append(flatNode.getText(nameRegion));
-
-						currentAvailableLineWidth -= flatNode.getText(nameRegion).length();
-					}
-				}
-			}
-
-			// append undefined regions
-			String undefinedRegion = getUndefinedRegions(node, lastUndefinedRegionOffset, node.getEndOffset() - lastUndefinedRegionOffset);
-			stringBuffer.append(undefinedRegion);
-
-			IDOMModel structuredModel = node.getModel();
-			IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-			// 1 is for "<"
-			int offset = node.getStartOffset() + 1 + node.getNodeName().length();
-			// 1 is for "<"
-			int length = node.getFirstStructuredDocumentRegion().getTextLength() - 1 - node.getNodeName().length();
-
-			if (flatNode != null) {
-				ITextRegionList regions = flatNode.getRegions();
-				ITextRegion firstRegion = regions.get(0);
-				ITextRegion lastRegion = regions.get(regions.size() - 1);
-
-				if (firstRegion.getType() == DOMRegionContext.XML_END_TAG_OPEN)
-					// skip formatting for end tags in this format: </tagName>
-					return;
-				else {
-					if (lastRegion.getType() == DOMRegionContext.XML_TAG_CLOSE || lastRegion.getType() == DOMRegionContext.XML_EMPTY_TAG_CLOSE)
-						length = length - lastRegion.getLength();
-
-					if (lastRegion.getType() == DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
-						// leave space before XML_EMPTY_TAG_CLOSE: <tagName />
-						// unless already going to move end bracket
-						if (!startTagSpansOver1Line || !alignEndBracket)
-							stringBuffer.append(SPACE_CHAR);
-					}
-				}
-			}
-
-			if (startTagSpansOver1Line && alignEndBracket) {
-				stringBuffer.append(lineDelimiter).append(lineIndent);
-			}
-
-			replace(structuredDocument, offset, length, stringBuffer.toString());
-
-			// BUG108074 & BUG84688 - preserve whitespace in xsl:text &
-			// xsl:attribute
-			String nodeNamespaceURI = node.getNamespaceURI();
-			if (XSL_NAMESPACE.equals(nodeNamespaceURI)) {
-				String nodeName = ((Element) node).getLocalName();
-				if (XSL_ATTRIBUTE.equals(nodeName) || XSL_TEXT.equals(nodeName)) {
-					sawXmlSpace = true;
-					formatContraints.setInPreserveSpaceElement(true);
-				}
-			}
-
-			// If we didn't see a xml:space attribute above, we'll look for
-			// one in the DTD.
-			// We do not check for a conflict between a DTD's 'fixed' value
-			// and the attribute value found in the instance document, we
-			// leave that to the validator.
-			if (!sawXmlSpace) {
-				ModelQueryAdapter adapter = (ModelQueryAdapter) ((IDOMDocument) node.getOwnerDocument()).getAdapterFor(ModelQueryAdapter.class);
-				CMElementDeclaration elementDeclaration = (CMElementDeclaration) adapter.getModelQuery().getCMNode(node);
-				if (elementDeclaration != null) {
-					int contentType = elementDeclaration.getContentType();
-					if (preferences.isPreservePCDATAContent() && contentType == CMElementDeclaration.PCDATA) {
-						formatContraints.setInPreserveSpaceElement(true);
-					}
-					else {
-						CMNamedNodeMap cmAttributes = elementDeclaration.getAttributes();
-						// Check implied values from the DTD way.
-						CMAttributeDeclaration attributeDeclaration = (CMAttributeDeclaration) cmAttributes.getNamedItem(XML_SPACE);
-						if (attributeDeclaration != null) {
-							// CMAttributeDeclaration found, check it out.
-							String defaultValue = attributeDeclaration.getAttrType().getImpliedValue();
-
-							// xml:space="preserve" means preserve space,
-							// everything else means back to default.
-							if (PRESERVE.compareTo(defaultValue) == 0)
-								formatContraints.setInPreserveSpaceElement(true);
-							else
-								formatContraints.setInPreserveSpaceElement(false);
-						}
-					}
-				}
-			}
-		}
-	}
-
-	protected String getUndefinedRegions(IDOMNode node, int startOffset, int length) {
-		String result = new String();
-
-		IStructuredDocumentRegion flatNode = node.getFirstStructuredDocumentRegion();
-		ITextRegionList regions = flatNode.getRegions();
-		for (int i = 0; i < regions.size(); i++) {
-			ITextRegion region = regions.get(i);
-			String regionType = region.getType();
-			int regionStartOffset = flatNode.getStartOffset(region);
-
-			if (regionType.compareTo(DOMRegionContext.UNDEFINED) == 0 && regionStartOffset >= startOffset && regionStartOffset < startOffset + length)
-				result = result + flatNode.getFullText(region);
-		}
-
-		if (result.length() > 0)
-			return SPACE_CHAR + result.trim();
-		else
-			return result;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/FormatProcessorXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/FormatProcessorXML.java
deleted file mode 100644
index a798dbd..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/FormatProcessorXML.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.format;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.sse.core.internal.format.AbstractStructuredFormatProcessor;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
-import org.w3c.dom.Node;
-
-public class FormatProcessorXML extends AbstractStructuredFormatProcessor {
-	protected IStructuredFormatPreferences fFormatPreferences = null;
-
-	protected String getFileExtension() {
-		return "xml"; //$NON-NLS-1$
-	}
-
-	public IStructuredFormatPreferences getFormatPreferences() {
-		if (fFormatPreferences == null) {
-			fFormatPreferences = new StructuredFormatPreferencesXML();
-
-			Preferences preferences = getModelPreferences();
-			if (preferences != null) {
-				fFormatPreferences.setLineWidth(preferences.getInt(XMLCorePreferenceNames.LINE_WIDTH));
-				((StructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
-				((StructuredFormatPreferencesXML) fFormatPreferences).setAlignEndBracket(preferences.getBoolean(XMLCorePreferenceNames.ALIGN_END_BRACKET));
-				((StructuredFormatPreferencesXML) fFormatPreferences).setPreservePCDATAContent(preferences.getBoolean(XMLCorePreferenceNames.PRESERVE_CDATACONTENT));
-				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
-
-				char indentChar = ' ';
-				String indentCharPref = preferences.getString(XMLCorePreferenceNames.INDENTATION_CHAR);
-				if (XMLCorePreferenceNames.TAB.equals(indentCharPref)) {
-					indentChar = '\t';
-				}
-				int indentationWidth = preferences.getInt(XMLCorePreferenceNames.INDENTATION_SIZE);
-
-				StringBuffer indent = new StringBuffer();
-				for (int i = 0; i < indentationWidth; i++) {
-					indent.append(indentChar);
-				}
-				fFormatPreferences.setIndent(indent.toString());
-			}
-		}
-
-		return fFormatPreferences;
-	}
-
-	protected IStructuredFormatter getFormatter(Node node) {
-		// 262135 - NPE during format of empty document
-		if (node == null)
-			return null;
-
-		short nodeType = node.getNodeType();
-		IStructuredFormatter formatter = null;
-		switch (nodeType) {
-			case Node.ELEMENT_NODE : {
-				formatter = new ElementNodeFormatter();
-				break;
-			}
-			case Node.TEXT_NODE : {
-				formatter = new TextNodeFormatter();
-				break;
-			}
-			case Node.CDATA_SECTION_NODE : {
-				formatter = new NoMoveFormatter();
-				break;
-			}
-			case Node.COMMENT_NODE : {
-				formatter = new CommentNodeFormatter();
-				break;
-			}
-			case Node.PROCESSING_INSTRUCTION_NODE : {
-				formatter = new NodeFormatter();
-				break;
-			}
-			case Node.DOCUMENT_NODE : {
-				formatter = new DocumentNodeFormatter();
-				break;
-			}
-			case Node.ENTITY_REFERENCE_NODE : {
-				formatter = new NoMoveFormatter();
-				break;
-			}
-			default : {
-				formatter = new NodeFormatter();
-			}
-		}
-
-		// init fomatter
-		formatter.setFormatPreferences(getFormatPreferences());
-		formatter.setProgressMonitor(fProgressMonitor);
-
-		return formatter;
-	}
-
-	protected Preferences getModelPreferences() {
-		return XMLCorePlugin.getDefault().getPluginPreferences();
-	}
-
-	protected void refreshFormatPreferences() {
-		fFormatPreferences = null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NoMoveFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NoMoveFormatter.java
deleted file mode 100644
index 7b68ece..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NoMoveFormatter.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.format;
-
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatContraints;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-
-/**
- * Formats entities which really need no formatting. They are just like text
- * nodes.
- */
-class NoMoveFormatter extends NodeFormatter {
-	protected void formatIndentationBeforeNode(IDOMNode node, IStructuredFormatContraints formatContraints) {
-		// node nothing
-	}
-
-	protected void formatIndentationAfterNode(IDOMNode node, IStructuredFormatContraints formatContraints) {
-		// still do nothing
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NodeFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NodeFormatter.java
deleted file mode 100644
index f48ed18..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NodeFormatter.java
+++ /dev/null
@@ -1,753 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     Jesper Steen Møller - xml:space='preserve' support
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.format;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatContraints;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter;
-import org.eclipse.wst.sse.core.internal.format.StructuredFormatContraints;
-import org.eclipse.wst.sse.core.internal.parser.ContextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.document.CDATASectionImpl;
-import org.eclipse.wst.xml.core.internal.document.CharacterDataImpl;
-import org.eclipse.wst.xml.core.internal.document.CommentImpl;
-import org.eclipse.wst.xml.core.internal.parser.regions.TagNameRegion;
-import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.Node;
-
-public class NodeFormatter implements IStructuredFormatter {
-	static protected final String EMPTY_STRING = ""; //$NON-NLS-1$
-	static private final char SPACE_CHAR = ' '; //$NON-NLS-1$
-	static private final char TAB_CHAR = '\t'; //$NON-NLS-1$
-	static private final String TAB = "\t"; //$NON-NLS-1$
-	protected IStructuredFormatContraints fFormatContraints = null;
-	protected IStructuredFormatPreferences fFormatPreferences = null;
-	protected IProgressMonitor fProgressMonitor = null;
-
-	protected boolean firstStructuredDocumentRegionContainsLineDelimiters(IDOMNode node) {
-		boolean result = false;
-
-		if (node != null) {
-			IStructuredDocumentRegion firstStructuredDocumentRegion = node.getFirstStructuredDocumentRegion();
-			if (firstStructuredDocumentRegion != null) {
-				String firstStructuredDocumentRegionText = firstStructuredDocumentRegion.getText();
-				result = StringUtils.containsLineDelimiter(firstStructuredDocumentRegionText);
-			}
-		}
-
-		return result;
-	}
-
-	public void format(Node node) {
-		IStructuredFormatContraints formatContraints = getFormatContraints();
-
-		format(node, formatContraints);
-	}
-
-	public void format(Node node, IStructuredFormatContraints formatContraints) {
-		if (formatContraints.getFormatWithSiblingIndent())
-			formatContraints.setCurrentIndent(getSiblingIndent(node));
-
-		if (node instanceof IDOMNode)
-			formatNode((IDOMNode) node, formatContraints);
-	}
-
-	protected void formatIndentationAfterNode(IDOMNode node, IStructuredFormatContraints formatContraints) {
-		// [111674] If inside xml:space="preserve" element, we bail
-		if (formatContraints.getInPreserveSpaceElement())
-			return;
-		if (node != null) {
-			IDOMNode nextSibling = (IDOMNode) node.getNextSibling();
-			IStructuredDocument doc = node.getModel().getStructuredDocument();
-			String lineDelimiter = getLineDelimiter(node, doc);
-
-			if (node.getParentNode() != null) {
-				if (node.getParentNode().getNodeType() == Node.DOCUMENT_NODE)
-					if (nextSibling != null)
-						if (nextSibling.getNodeType() == Node.TEXT_NODE)
-							getFormatter(nextSibling).format(nextSibling, formatContraints);
-						else if (nextSibling.getNodeType() == Node.COMMENT_NODE) {
-							// do nothing
-						}
-						else {
-							String lineIndent = formatContraints.getCurrentIndent();
-							insertAfterNode(node, lineDelimiter + lineIndent);
-						}
-					else {
-					}
-
-				else if (nextSibling != null)
-					if (nextSibling.getNodeType() == Node.TEXT_NODE)
-						getFormatter(nextSibling).format(nextSibling, formatContraints);
-					else if (nextSibling.getNodeType() == Node.COMMENT_NODE) {
-						// do nothing
-					}
-					else {
-						String lineIndent = formatContraints.getCurrentIndent();
-						insertAfterNode(node, lineDelimiter + lineIndent);
-					}
-				else {
-					IDOMNode indentNode = getParentIndentNode(node);
-					String lineIndent = getNodeIndent(indentNode);
-					IDOMNode lastChild = getDeepestChildNode(node);
-					boolean clearAllBlankLines = formatContraints.getClearAllBlankLines();
-
-					if (lastChild != null) {
-						if ((lastChild.getNodeType() == Node.TEXT_NODE) && (lastChild.getNodeValue().endsWith(lineDelimiter + lineIndent))) {
-							// this text node already ends with the requested
-							// indentation
-						}
-
-						else if ((lastChild.getNodeType() == Node.TEXT_NODE) && (lastChild.getNodeValue() != null && lastChild.getNodeValue().endsWith(lineDelimiter)))
-							if (clearAllBlankLines) {
-								replaceNodeValue(lastChild, lineDelimiter + lineIndent);
-							}
-							else {
-								// append indentation
-								insertAfterNode(lastChild, lineIndent);
-							}
-						else if (lastChild.getNodeType() == Node.TEXT_NODE)
-							if (lastChild.getNodeValue().length() == 0) {
-								// replace
-								replaceNodeValue(lastChild, lineDelimiter + lineIndent);
-							}
-							else {
-								// append indentation
-								insertAfterNode(lastChild, lineDelimiter + lineIndent);
-							}
-						else {
-							// as long as not at the end of the document
-							IStructuredDocumentRegion endRegion = node.getLastStructuredDocumentRegion();
-							if (endRegion != null && endRegion.getNext() != null)
-								// append indentation
-								insertAfterNode(lastChild, lineDelimiter + lineIndent);
-						}
-					}
-				}
-			}
-		}
-	}
-
-	protected void formatIndentationBeforeNode(IDOMNode node, IStructuredFormatContraints formatContraints) {
-		// [111674] If inside xml:space="preserve" element, we bail
-		if (formatContraints.getInPreserveSpaceElement())
-			return;
-		if (node != null) {
-			IDOMNode previousSibling = (IDOMNode) node.getPreviousSibling();
-			IStructuredDocument doc = node.getModel().getStructuredDocument();
-			String lineDelimiter = getLineDelimiter(node, doc);
-
-			String lineIndent = formatContraints.getCurrentIndent();
-
-			if (node.getParentNode() != null) {
-				if (node.getParentNode().getNodeType() == Node.DOCUMENT_NODE) {
-					if (previousSibling != null)
-						if (previousSibling.getNodeType() == Node.TEXT_NODE)
-							getFormatter(previousSibling).format(previousSibling, formatContraints);
-						else {
-							insertBeforeNode(node, lineDelimiter + lineIndent);
-						}
-				}
-				else {
-					if (previousSibling == null || previousSibling.getNodeType() != Node.TEXT_NODE) {
-						// 261968 - formatting tag without closing bracket:
-						// <t1><t1
-						// 265673 - Null ptr in formatIndentationBeforeNode
-						int prevEndNodeOffset = -1;
-						int prevEndRegionOffset = -1;
-						if (previousSibling != null) {
-							prevEndNodeOffset = previousSibling.getEndOffset();
-							IStructuredDocumentRegion endRegion = previousSibling.getEndStructuredDocumentRegion();
-							if (endRegion != null) {
-								prevEndRegionOffset = endRegion.getTextEndOffset();
-							}
-						}
-						if ((previousSibling == null) || (prevEndNodeOffset != -1 && prevEndNodeOffset == prevEndRegionOffset)) {
-							insertBeforeNode(node, lineDelimiter + lineIndent);
-						}
-
-					}
-					else {
-						if (previousSibling.getNodeValue().length() == 0) {
-							// replace
-							replaceNodeValue(previousSibling, lineDelimiter + lineIndent);
-						}
-						else {
-							// append indentation
-							if (!previousSibling.getNodeValue().endsWith(lineDelimiter + lineIndent)) {
-								if (previousSibling.getNodeValue().endsWith(lineDelimiter)) {
-									insertAfterNode(previousSibling, lineIndent);
-								}
-								else
-									getFormatter(previousSibling).format(previousSibling, formatContraints);
-							}
-						}
-					}
-				}
-			}
-		}
-	}
-
-	private String getLineDelimiter(IDOMNode node, IStructuredDocument doc) {
-		int line = doc.getLineOfOffset(node.getStartOffset());
-		String lineDelimiter = doc.getLineDelimiter();
-		try {
-			if (line > 0) {
-				lineDelimiter = doc.getLineDelimiter(line - 1);
-			}
-		}
-		catch (BadLocationException e) {
-			// log for now, unless we find reason not to
-			Logger.log(Logger.INFO, e.getMessage());
-		}
-		// BUG115716: if cannot get line delimiter from current line, just
-		// use default line delimiter
-		if (lineDelimiter == null)
-			lineDelimiter = doc.getLineDelimiter();
-		return lineDelimiter;
-	}
-
-	protected void formatNode(IDOMNode node, IStructuredFormatContraints formatContraints) {
-		if (node != null && (fProgressMonitor == null || !fProgressMonitor.isCanceled())) {
-			// format indentation before node
-			formatIndentationBeforeNode(node, formatContraints);
-
-			// format indentation after node
-			formatIndentationAfterNode(node, formatContraints);
-		}
-	}
-
-	/**
-	 * This method will compute the correct indentation after this node
-	 * depending on the indentations of its sibling nodes and parent node. Not
-	 * needed anymore?
-	 */
-	protected void formatTrailingText(IDOMNode node, IStructuredFormatContraints formatContraints) {
-		// [111674] If inside xml:space="preserve" element, we bail
-		if (formatContraints.getInPreserveSpaceElement())
-			return;
-
-		String lineDelimiter = node.getModel().getStructuredDocument().getLineDelimiter();
-		String lineIndent = formatContraints.getCurrentIndent();
-		String parentLineIndent = getNodeIndent(node.getParentNode());
-		boolean clearAllBlankLines = formatContraints.getClearAllBlankLines();
-
-		if ((node != null) && (node.getNodeType() != Node.DOCUMENT_NODE)) {
-			IDOMNode nextSibling = (IDOMNode) node.getNextSibling();
-			if ((nextSibling != null) && (nextSibling.getNodeType() == Node.TEXT_NODE)) {
-				String nextSiblingText = nextSibling.getNodeValue();
-				if (nextSibling.getNextSibling() == null)
-					if ((nextSibling.getParentNode().getNodeType() == Node.DOCUMENT_NODE) && (nextSiblingText.trim().length() == 0))
-						// delete spaces at the end of the document
-						replaceNodeValue(nextSibling, EMPTY_STRING);
-					else
-						// replace the text node with parent indentation
-						replaceNodeValue(nextSibling, lineDelimiter + parentLineIndent);
-				else
-					// replace the text node with indentation
-					replaceNodeValue(nextSibling, lineDelimiter + lineIndent);
-			}
-			else {
-				if (nextSibling == null) {
-					lineIndent = parentLineIndent;
-
-					if (node.getParentNode().getNodeType() != Node.DOCUMENT_NODE)
-						if ((node.getNodeType() == Node.TEXT_NODE) && (node.getNodeValue().endsWith(lineDelimiter + lineIndent))) {
-							// this text node already ends with the requested
-							// indentation
-						}
-
-						else if ((node.getNodeType() == Node.TEXT_NODE) && (node.getNodeValue().endsWith(lineDelimiter)))
-							if (clearAllBlankLines)
-								replaceNodeValue(node, lineDelimiter + lineIndent);
-							else
-								// append indentation
-								insertAfterNode(node, lineIndent);
-						else if (node.getNodeType() == Node.TEXT_NODE)
-							if (node.getNodeValue().length() == 0)
-								// replace
-								replaceNodeValue(node, lineDelimiter + lineIndent);
-							else
-							// append indentation
-							if (!node.getNodeValue().endsWith(lineDelimiter + lineIndent))
-								if (node.getNodeValue().endsWith(lineDelimiter))
-									insertAfterNode(node, lineIndent);
-								else
-									insertAfterNode(node, lineDelimiter + lineIndent);
-							else
-								replaceNodeValue(node, lineDelimiter + lineIndent);
-				}
-				else {
-					if ((node.getNodeType() == Node.TEXT_NODE) && (node.getNodeValue().endsWith(lineDelimiter + lineIndent))) {
-						// this text node already ends with the requested
-						// indentation
-					}
-
-					else if ((node.getNodeType() == Node.TEXT_NODE) && (node.getNodeValue().endsWith(lineDelimiter)))
-						if (clearAllBlankLines)
-							replaceNodeValue(node, lineDelimiter + lineIndent);
-						else
-							// append indentation
-							insertAfterNode(node, lineIndent);
-					else if (node.getNodeType() == Node.TEXT_NODE)
-						if (node.getNodeValue().length() == 0)
-							// replace
-							replaceNodeValue(node, lineDelimiter + lineIndent);
-						else
-							// append indentation
-							insertAfterNode(node, lineDelimiter + lineIndent);
-					else
-						// append indentation
-						insertAfterNode(node, lineDelimiter + lineIndent);
-				}
-			}
-		}
-	}
-
-	protected IDOMNode getDeepestChildNode(IDOMNode node) {
-		IDOMNode result = null;
-		IDOMNode lastChild = (IDOMNode) node.getLastChild();
-
-		if (lastChild == null)
-			result = node;
-		else {
-			result = getDeepestChildNode(lastChild);
-
-			if ((result.getNodeType() == Node.TEXT_NODE || result.getNodeType() == Node.COMMENT_NODE) && !isEndTagMissing(node))
-				result = node;
-		}
-
-		return result;
-	}
-
-	public IStructuredFormatContraints getFormatContraints() {
-		if (fFormatContraints == null) {
-			fFormatContraints = new StructuredFormatContraints();
-
-			fFormatContraints.setClearAllBlankLines(getFormatPreferences().getClearAllBlankLines());
-		}
-
-		return fFormatContraints;
-	}
-
-	public IStructuredFormatPreferences getFormatPreferences() {
-		if (fFormatPreferences == null) {
-			fFormatPreferences = new StructuredFormatPreferencesXML();
-
-			Preferences preferences = getModelPreferences();
-			if (preferences != null) {
-				fFormatPreferences.setLineWidth(preferences.getInt(XMLCorePreferenceNames.LINE_WIDTH));
-				((StructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
-				((StructuredFormatPreferencesXML) fFormatPreferences).setAlignEndBracket(preferences.getBoolean(XMLCorePreferenceNames.ALIGN_END_BRACKET));
-				((StructuredFormatPreferencesXML) fFormatPreferences).setPreservePCDATAContent(preferences.getBoolean(XMLCorePreferenceNames.PRESERVE_CDATACONTENT));
-				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
-
-				char indentChar = ' ';
-				String indentCharPref = preferences.getString(XMLCorePreferenceNames.INDENTATION_CHAR);
-				if (XMLCorePreferenceNames.TAB.equals(indentCharPref)) {
-					indentChar = '\t';
-				}
-				int indentationWidth = preferences.getInt(XMLCorePreferenceNames.INDENTATION_SIZE);
-
-				StringBuffer indent = new StringBuffer();
-				for (int i = 0; i < indentationWidth; i++) {
-					indent.append(indentChar);
-				}
-				fFormatPreferences.setIndent(indent.toString());
-			}
-		}
-
-		return fFormatPreferences;
-	}
-
-	protected IStructuredFormatter getFormatter(IDOMNode node) {
-		// 262135 - NPE during format of empty document
-		if (node == null)
-			return null;
-
-		short nodeType = ((Node) node).getNodeType();
-		IStructuredFormatter formatter = null;
-		switch (nodeType) {
-			case Node.ELEMENT_NODE : {
-				formatter = new ElementNodeFormatter();
-				break;
-			}
-			case Node.TEXT_NODE : {
-				formatter = new TextNodeFormatter();
-				break;
-			}
-			case Node.CDATA_SECTION_NODE : {
-				formatter = new NoMoveFormatter();
-				break;
-			}
-			case Node.COMMENT_NODE : {
-				formatter = new CommentNodeFormatter();
-				break;
-			}
-			case Node.PROCESSING_INSTRUCTION_NODE : {
-				formatter = new NodeFormatter();
-				break;
-			}
-			case Node.DOCUMENT_NODE : {
-				formatter = new DocumentNodeFormatter();
-				break;
-			}
-			case Node.ENTITY_REFERENCE_NODE : {
-				formatter = new NoMoveFormatter();
-				break;
-			}
-			default : {
-				formatter = new NodeFormatter();
-			}
-		}
-
-		// init fomatter
-		formatter.setFormatPreferences(getFormatPreferences());
-		formatter.setProgressMonitor(fProgressMonitor);
-
-		return formatter;
-	}
-
-	protected int getIndentationLength(String indent) {
-		// TODO Kit : The calculation of IndentationLength is not correct
-		// here.
-		// nodeIndentation may contain tabs. Multiply by 4 temporarily to get
-		// approx. width.
-		// Need to re-work.
-
-		int indentationLength = 0;
-
-		for (int i = 0; i < indent.length(); i++) {
-			if (indent.substring(i, i + 1).compareTo(TAB) == 0)
-				indentationLength += 4;
-			else
-				indentationLength++;
-		}
-
-		return indentationLength;
-	}
-
-	protected Preferences getModelPreferences() {
-		return XMLCorePlugin.getDefault().getPluginPreferences();
-	}
-
-	/**
-	 * This method will find the indentation for this node. It will search
-	 * backwards starting from the beginning of the node until a character
-	 * other than a space or a tab is found. If this node is null or it's a
-	 * document node or it's a first level node (node's parent is a document
-	 * node) the default empty string will be returned as the indentation.
-	 */
-	protected String getNodeIndent(Node node) {
-		String result = EMPTY_STRING;
-
-		if ((node != null) && (node.getNodeType() != Node.DOCUMENT_NODE) && (node.getParentNode() != null) && (node.getParentNode().getNodeType() != Node.DOCUMENT_NODE)) {
-			IDOMNode siblingTextNode = (IDOMNode) node.getPreviousSibling();
-			if ((siblingTextNode != null) && (siblingTextNode.getNodeType() == Node.TEXT_NODE)) {
-				// find the indentation
-				String siblingText = siblingTextNode.getNodeValue();
-				int siblingTextLength = siblingText.length();
-				if ((siblingText != null) && (siblingTextLength > 0) && ((siblingText.charAt(siblingTextLength - 1) == SPACE_CHAR) || (siblingText.charAt(siblingTextLength - 1) == TAB_CHAR))) {
-					int searchIndex = siblingTextLength - 1;
-					while ((searchIndex >= 0) && ((siblingText.charAt(searchIndex) == SPACE_CHAR) || (siblingText.charAt(searchIndex) == TAB_CHAR)))
-						searchIndex--;
-
-					if (searchIndex < siblingTextLength)
-						result = siblingText.substring(searchIndex + 1, siblingTextLength);
-				}
-			}
-		}
-
-		return result;
-	}
-
-	protected String getNodeName(IDOMNode node) {
-		return node.getNodeName();
-	}
-
-	protected String getNodeText(IDOMNode node) {
-		String text = null;
-
-		if ((node instanceof CharacterDataImpl) && !(node instanceof CommentImpl) && !(node instanceof CDATASectionImpl) && !isJSPTag(node))
-			text = ((CharacterDataImpl) node).getSource();
-		else
-			text = node.getFirstStructuredDocumentRegion().getText();
-
-		return text;
-	}
-
-	protected IDOMNode getParentIndentNode(IDOMNode node) {
-		IDOMNode result = null;
-		IDOMNode parentNode = (IDOMNode) node.getParentNode();
-
-		if (parentNode.getNodeType() == Node.DOCUMENT_NODE)
-			result = parentNode;
-		else {
-			ITextRegion region = parentNode.getLastStructuredDocumentRegion().getFirstRegion();
-			if (region.getType() == DOMRegionContext.XML_END_TAG_OPEN)
-				result = parentNode;
-			else
-				result = getParentIndentNode(parentNode);
-		}
-
-		return result;
-	}
-
-	/**
-	 * This method will find the indentation for a node sibling to this node.
-	 * It will try to find a sibling node before this node first. If there is
-	 * no sibling node before this node, it will try to find a sibling node
-	 * after this node. If still not found, we will check if this node is
-	 * already indented from its parent. If yes, this node's indentation will
-	 * be used. Otherwise, the parent node's indentation plus one indentation
-	 * will be used. If this node is null or it's a document node or it's a
-	 * first level node (node's parent is a document node) the default empty
-	 * string will be returned as the indentation.
-	 */
-	protected String getSiblingIndent(Node node) {
-		String result = EMPTY_STRING;
-
-		if ((node != null) && (node.getNodeType() != Node.DOCUMENT_NODE) && (node.getParentNode() != null) && (node.getParentNode().getNodeType() != Node.DOCUMENT_NODE)) {
-			// find the text node before the previous non-text sibling
-			// if that's not found, we will try the text node before the next
-			// non-text sibling
-			IDOMNode sibling = (IDOMNode) node.getPreviousSibling();
-			while ((sibling != null) && (sibling.getNodeType() == Node.TEXT_NODE || sibling.getNodeType() == Node.COMMENT_NODE)) {
-				if (sibling.getNodeType() == Node.COMMENT_NODE && sibling.getPreviousSibling() != null && sibling.getPreviousSibling().getNodeType() == Node.TEXT_NODE && StringUtils.containsLineDelimiter(sibling.getPreviousSibling().getNodeValue()))
-					break;
-				sibling = (IDOMNode) sibling.getPreviousSibling();
-			}
-			if (sibling == null) {
-				sibling = (IDOMNode) node.getNextSibling();
-				while ((sibling != null) && (sibling.getNodeType() == Node.TEXT_NODE))
-					sibling = (IDOMNode) sibling.getNextSibling();
-			}
-			String singleIndent = getFormatPreferences().getIndent();
-			String parentLineIndent = getNodeIndent(node.getParentNode());
-
-			if (sibling != null) {
-				String siblingIndent = getNodeIndent(sibling);
-				if (siblingIndent.length() > 0)
-					result = siblingIndent;
-				else {
-					String nodeIndent = getNodeIndent(node);
-					if (nodeIndent.length() > parentLineIndent.length())
-						// this node is indented from its parent, its
-						// indentation will be used
-						result = nodeIndent;
-					else
-						result = parentLineIndent + singleIndent;
-				}
-			}
-			else {
-				String nodeIndent = getNodeIndent(node);
-				if (nodeIndent.length() > parentLineIndent.length())
-					// this node is indented from its parent, its indentation
-					// will be used
-					result = nodeIndent;
-				else
-					result = parentLineIndent + singleIndent;
-			}
-		}
-
-		return result;
-	}
-
-	protected void insertAfterNode(IDOMNode node, String string) {
-		IDOMModel structuredModel = node.getModel();
-		IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-
-		int offset = node.getEndOffset();
-		int length = 0;
-
-		// 261968 - formatting tag without closing bracket: <t1><t1
-		if (node.getEndStructuredDocumentRegion() != null) {
-			offset = node.getEndStructuredDocumentRegion().getTextEndOffset();
-			length = node.getEndOffset() - offset;
-		}
-		replace(structuredDocument, offset, length, string);
-	}
-
-	protected void insertBeforeNode(IDOMNode node, String string) {
-		IDOMModel structuredModel = node.getModel();
-		IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-
-		replace(structuredDocument, node.getStartOffset(), 0, string);
-	}
-
-	/**
-	 * Allowing the INodeAdapter to compare itself against the type allows it
-	 * to return true in more than one case.
-	 */
-	public boolean isAdapterForType(Object type) {
-		return type.equals(IStructuredFormatter.class);
-	}
-
-	protected boolean isEndTagMissing(IDOMNode node) {
-		boolean result = false;
-
-		if ((node != null) && (node.getNodeType() != Node.DOCUMENT_NODE) && !isJSPTag(node)) {
-			IStructuredDocumentRegion startTagStructuredDocumentRegion = node.getFirstStructuredDocumentRegion();
-			IStructuredDocumentRegion endTagStructuredDocumentRegion = node.getLastStructuredDocumentRegion();
-
-			ITextRegion startTagNameRegion = null;
-			if (startTagStructuredDocumentRegion.getRegions().size() > 1)
-				startTagNameRegion = startTagStructuredDocumentRegion.getRegions().get(1);
-			ITextRegion endTagNameRegion = null;
-			if (endTagStructuredDocumentRegion.getRegions().size() > 1)
-				endTagNameRegion = endTagStructuredDocumentRegion.getRegions().get(1);
-
-			ITextRegionList startTagRegions = startTagStructuredDocumentRegion.getRegions();
-			if (startTagNameRegion == endTagNameRegion && startTagNameRegion != null && (startTagRegions.get(0)).getType() != DOMRegionContext.XML_END_TAG_OPEN && (startTagRegions.get(startTagRegions.size() - 1).getType()) != DOMRegionContext.XML_EMPTY_TAG_CLOSE)
-				// end tag missing
-				result = true;
-		}
-
-		return result;
-	}
-
-	protected boolean nodeHasSiblings(IDOMNode node) {
-		return (node.getPreviousSibling() != null) || (node.getNextSibling() != null);
-	}
-
-	/**
-	 * Node changed. No format should be performed automatically.
-	 */
-	public void notifyChanged(org.eclipse.wst.sse.core.internal.provisional.INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-	}
-
-	protected void removeRegionSpaces(IDOMNode node, IStructuredDocumentRegion flatNode, ITextRegion region) {
-		if ((region != null) && (region instanceof ContextRegion || region instanceof TagNameRegion) && (flatNode.getEndOffset(region) > flatNode.getTextEndOffset(region))) {
-			IDOMModel structuredModel = node.getModel();
-			IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-
-			replace(structuredDocument, flatNode.getTextEndOffset(region), flatNode.getEndOffset(region) - flatNode.getTextEndOffset(region), EMPTY_STRING);
-		}
-	}
-
-	/**
-	 * This method will replace the string at offset and length with a new
-	 * string. If the string to be replaced is the same as the new string, the
-	 * string will not be replaced.
-	 */
-	protected void replace(IStructuredDocument structuredDocument, int offset, int length, String string) {
-		try {
-			String structuredDocumentString = structuredDocument.get(offset, length);
-			if (structuredDocumentString.compareTo(string) != 0)
-				structuredDocument.replaceText(structuredDocument, offset, length, string);
-		}
-		catch (BadLocationException e) {
-			// log for now, unless we find reason not to
-			Logger.log(Logger.INFO, e.getMessage());
-		}
-	}
-
-	/**
-	 * This method will replace the node value with a new string. If the node
-	 * value to be replaced is the same as the new string, the node value will
-	 * not be replaced.
-	 */
-	protected void replaceNodeValue(IDOMNode node, String string) {
-		IDOMModel structuredModel = node.getModel();
-		IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-		int offset = node.getStartOffset();
-		int length = node.getEndOffset() - node.getStartOffset();
-
-		try {
-			String structuredDocumentString = structuredDocument.get(offset, length);
-			if (structuredDocumentString.compareTo(string) != 0)
-				replace(structuredDocument, offset, length, string);
-		}
-		catch (BadLocationException e) {
-			// log for now, unless we find reason not to
-			Logger.log(Logger.INFO, e.getMessage());
-		}
-	}
-
-	public void setFormatPreferences(IStructuredFormatPreferences formatPreferences) {
-		fFormatPreferences = formatPreferences;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.format.IStructuredFormatter#setProgressMonitor(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void setProgressMonitor(IProgressMonitor monitor) {
-		fProgressMonitor = monitor;
-	}
-
-	/**
-	 * ISSUE: this is a bit of hidden JSP knowledge that was implemented this
-	 * way for expedency. Should be evolved in future to depend on
-	 * "nestedContext".
-	 */
-	private boolean isJSPTag(Node node) {
-
-		final String JSP_CLOSE = "JSP_CLOSE"; //$NON-NLS-1$
-		// final String JSP_COMMENT_CLOSE = "JSP_COMMENT_CLOSE"; //$NON-NLS-1$
-
-		// final String JSP_COMMENT_OPEN = "JSP_COMMENT_OPEN"; //$NON-NLS-1$
-		// final String JSP_COMMENT_TEXT = "JSP_COMMENT_TEXT"; //$NON-NLS-1$
-
-		final String JSP_CONTENT = "JSP_CONTENT"; //$NON-NLS-1$
-		final String JSP_DECLARATION_OPEN = "JSP_DECLARATION_OPEN"; //$NON-NLS-1$
-		final String JSP_DIRECTIVE_CLOSE = "JSP_DIRECTIVE_CLOSE"; //$NON-NLS-1$
-		final String JSP_DIRECTIVE_NAME = "JSP_DIRECTIVE_NAME"; //$NON-NLS-1$
-
-		final String JSP_DIRECTIVE_OPEN = "JSP_DIRECTIVE_OPEN"; //$NON-NLS-1$
-		final String JSP_EXPRESSION_OPEN = "JSP_EXPRESSION_OPEN"; //$NON-NLS-1$
-
-		// final String JSP_ROOT_TAG_NAME = "JSP_ROOT_TAG_NAME"; //$NON-NLS-1$
-
-		final String JSP_SCRIPTLET_OPEN = "JSP_SCRIPTLET_OPEN"; //$NON-NLS-1$
-
-		boolean result = false;
-
-		if (node instanceof IDOMNode) {
-			IStructuredDocumentRegion flatNode = ((IDOMNode) node).getFirstStructuredDocumentRegion();
-			// in some cases, the nodes exists, but hasn't been associated
-			// with
-			// a flatnode yet (the screen updates can be initiated on a
-			// different thread,
-			// so the request for a flatnode can come in before the node is
-			// fully formed.
-			// if the flatnode is null, we'll just allow the defaults to
-			// apply.
-			if (flatNode != null) {
-				String flatNodeType = flatNode.getType();
-				// should not be null, but just to be sure
-				if (flatNodeType != null) {
-					if ((flatNodeType.equals(JSP_CONTENT)) || (flatNodeType.equals(JSP_EXPRESSION_OPEN)) || (flatNodeType.equals(JSP_SCRIPTLET_OPEN)) || (flatNodeType.equals(JSP_DECLARATION_OPEN)) || (flatNodeType.equals(JSP_DIRECTIVE_CLOSE)) || (flatNodeType.equals(JSP_DIRECTIVE_NAME)) || (flatNodeType.equals(JSP_DIRECTIVE_OPEN)) || (flatNodeType.equals(JSP_CLOSE))) {
-						result = true;
-					}
-				}
-			}
-		}
-
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/StructuredFormatPreferencesXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/StructuredFormatPreferencesXML.java
deleted file mode 100644
index 07024eb..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/StructuredFormatPreferencesXML.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.format;
-
-import org.eclipse.wst.sse.core.internal.format.StructuredFormatPreferences;
-
-public class StructuredFormatPreferencesXML extends StructuredFormatPreferences {
-	private boolean fSplitMultiAttrs = false;
-	private boolean fPreservePCDATAContent = false;
-	private boolean fAlignEndBracket = false;
-
-	/**
-	 * True if formatter should split elements with multiple attributes onto
-	 * new lines.
-	 * 
-	 * @return boolean
-	 */
-	public boolean getSplitMultiAttrs() {
-		return fSplitMultiAttrs;
-	}
-
-	/**
-	 * Sets whether or not formatter should split elements with multiple
-	 * attributes onto new lines.
-	 * 
-	 * @param splitMultiAttrs
-	 */
-	public void setSplitMultiAttrs(boolean splitMultiAttrs) {
-		fSplitMultiAttrs = splitMultiAttrs;
-	}
-
-	/**
-	 * True if tags with PCDATA content should not have their whitespace
-	 * messed with when formatting.
-	 * 
-	 * @return boolean
-	 */
-	public boolean isPreservePCDATAContent() {
-		return fPreservePCDATAContent;
-	}
-
-	/**
-	 * Sets whether or not formatter should preserve whitespace in tags with
-	 * PCDATA content.
-	 * 
-	 * @param preservePCDATAContent
-	 */
-	public void setPreservePCDATAContent(boolean preservePCDATAContent) {
-		fPreservePCDATAContent = preservePCDATAContent;
-	}
-
-	/**
-	 * True if end brackets of start tags should be placed on a new line if
-	 * the start tag spans more than one line.
-	 * 
-	 * @return
-	 */
-	public boolean isAlignEndBracket() {
-		return fAlignEndBracket;
-	}
-
-	/**
-	 * Sets whether or not formatter should align the end bracket of a start
-	 * tag on a new line if the start tag spans more than one line.
-	 * 
-	 * @param alignEndBracket
-	 */
-	public void setAlignEndBracket(boolean alignEndBracket) {
-		fAlignEndBracket = alignEndBracket;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/TextNodeFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/TextNodeFormatter.java
deleted file mode 100644
index 873ab76..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/TextNodeFormatter.java
+++ /dev/null
@@ -1,385 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     Jesper Steen Møller - xml:space='preserve' support
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.format;
-
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatContraints;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Node;
-
-
-public class TextNodeFormatter extends NodeFormatter {
-	static private final String CR = "\r"; //$NON-NLS-1$
-	static private final String DELIMITERS = " \t\n\r\f"; //$NON-NLS-1$
-	static private final String EMPTY_STRING = ""; //$NON-NLS-1$
-	static private final String FF = "\f"; //$NON-NLS-1$
-	static private final String LF = "\n"; //$NON-NLS-1$
-	static private final String SPACE = " "; //$NON-NLS-1$
-	static private final String TAB = "\t"; //$NON-NLS-1$
-
-	private String compressSpaces(String string, IStructuredFormatContraints formatContraints) {
-		/*
-		 * Note that the StructuredTextEditor supports mixed new line
-		 * characters (CR, LF, CRLF) in one file. We have to handle that when
-		 * we try to preserve blank lines.
-		 */
-		String[] stringArray = null;
-		boolean clearAllBlankLines = formatContraints.getClearAllBlankLines();
-
-		if (clearAllBlankLines)
-			stringArray = StringUtils.asArray(string);
-		else
-			stringArray = StringUtils.asArray(string, DELIMITERS, true);
-
-		StringBuffer compressedString = new StringBuffer();
-		if (stringArray.length > 0) {
-			boolean cr = false, lf = false, cr2 = false, nonSpace = true;
-
-			if (stringArray[0].compareTo(CR) == 0)
-				cr = true;
-			else if (stringArray[0].compareTo(LF) == 0)
-				lf = true;
-			else if ((stringArray[0].compareTo(SPACE) != 0) && (stringArray[0].compareTo(TAB) != 0) && (stringArray[0].compareTo(FF) != 0)) {
-				compressedString.append(stringArray[0]);
-				nonSpace = true;
-			}
-
-			for (int i = 1; i < stringArray.length; i++) {
-				if (stringArray[i].compareTo(CR) == 0) {
-					if (cr && lf) {
-						if (nonSpace) {
-							compressedString.append(CR + LF);
-							nonSpace = false;
-						}
-						compressedString.append(stringArray[i]);
-						cr2 = true;
-					}
-					else if (cr) {
-						if (nonSpace) {
-							compressedString.append(CR);
-							nonSpace = false;
-						}
-						compressedString.append(stringArray[i]);
-						cr2 = true;
-					}
-					else
-						cr = true;
-				}
-				else if (stringArray[i].compareTo(LF) == 0) {
-					if (cr && lf && cr2) {
-						compressedString.append(stringArray[i]);
-					}
-					else if (lf) {
-						if (nonSpace) {
-							compressedString.append(LF);
-							nonSpace = false;
-						}
-						compressedString.append(stringArray[i]);
-					}
-					else
-						lf = true;
-				}
-				else if ((stringArray[i].compareTo(SPACE) != 0) && (stringArray[i].compareTo(TAB) != 0) && (stringArray[i].compareTo(FF) != 0)) {
-					if (compressedString.length() > 0)
-						compressedString.append(SPACE);
-					compressedString.append(stringArray[i]);
-
-					cr = false;
-					lf = false;
-					cr2 = false;
-					nonSpace = true;
-				}
-			}
-		}
-
-		return compressedString.toString();
-	}
-
-	protected void formatNode(IDOMNode node, IStructuredFormatContraints formatContraints) {
-		// [111674] If inside xml:space="preserve" element, we bail
-		if (formatContraints.getInPreserveSpaceElement())
-			return;
-		if (node != null) {
-			IStructuredDocument doc = node.getStructuredDocument();
-
-			int lineWidth = getFormatPreferences().getLineWidth();
-			int currentAvailableLineWidth = computeAvailableLineWidth(doc, node.getStartOffset(), lineWidth);
-
-			String nodeText = getNodeText(node);
-			String compressedText = compressSpaces(nodeText, formatContraints);
-
-			IDOMNode parentNode = (IDOMNode) node.getParentNode();
-
-			if (((enoughSpace(parentNode, currentAvailableLineWidth, compressedText)) && (noSiblingsAndNoFollowingComment(node)) && !firstStructuredDocumentRegionContainsLineDelimiters(parentNode)) || node.getStartOffset() == 0) {
-				handleNoReflow(node, doc, compressedText, parentNode);
-			}
-			else {
-				// not enough space, need to reflow text
-				String nodeIndentation = formatContraints.getCurrentIndent();
-				currentAvailableLineWidth = lineWidth - getIndentationLength(nodeIndentation);
-				List vector = reflowText(compressedText, currentAvailableLineWidth);
-				int vectorSize = vector.size();
-				StringBuffer reflowedTextBuffer = new StringBuffer();
-				String lineDelimiter = getLineDelimiter(doc, node.getStartOffset());
-				// handle first line specially to check for allowWhitespace
-				if (vectorSize > 0) {
-					// determines whether or not to allow whitespace if there
-					// is an entity or cdata before it
-					boolean allowWhitespace = true;
-					// [206072] StringIndexOutOfBoundsException
-					if (nodeText.length() == 0 || !Character.isWhitespace(nodeText.charAt(0))) {
-						Node previousSibling = node.getPreviousSibling();
-						if (previousSibling != null && (previousSibling.getNodeType() == Node.ENTITY_REFERENCE_NODE || previousSibling.getNodeType() == Node.CDATA_SECTION_NODE))
-							allowWhitespace = false;
-					}
-					String theString = (String) vector.get(0);
-					if (allowWhitespace) {
-						reflowedTextBuffer.append(lineDelimiter);
-						if (theString.trim().length() > 0)
-							reflowedTextBuffer.append(nodeIndentation).append(theString);
-					}
-					else {
-						reflowedTextBuffer.append(theString);
-					}
-				}
-				// do the rest of the lines
-				for (int i = 1; i < vectorSize; i++) {
-					String theString = (String) vector.get(i);
-					if (theString.trim().length() > 0)
-						reflowedTextBuffer.append(lineDelimiter).append(nodeIndentation).append(theString);
-					else
-						reflowedTextBuffer.append(lineDelimiter);
-				}
-				String reflowedText = reflowedTextBuffer.toString();
-				if (node.getNextSibling() == null) {
-					if (isEndTagMissing(parentNode)) {
-						// don't add indentation to end if parent end tag is
-						// missing
-					}
-
-					else {
-						// add parent's indentation to end
-						nodeIndentation = getNodeIndent(parentNode);
-						if (!reflowedText.endsWith(lineDelimiter + nodeIndentation)) {
-							reflowedText = StringUtils.appendIfNotEndWith(reflowedText, lineDelimiter);
-							reflowedText = StringUtils.appendIfNotEndWith(reflowedText, nodeIndentation);
-						}
-					}
-				}
-				else {
-					if (!reflowedText.endsWith(lineDelimiter + nodeIndentation)) {
-						// not already ended with the expected indentation
-						Node nextSibling = node.getNextSibling();
-						if (nextSibling.getNodeType() == Node.COMMENT_NODE) {
-							// add indentation to end if
-							// currentTextEndsWithLineDelimiter
-							// or followed by multiLineComment
-
-							int indexOfLastLineDelimiter = StringUtils.indexOfLastLineDelimiter(nodeText);
-							boolean currentTextEndsWithLineDelimiter = indexOfLastLineDelimiter != -1;
-							if (currentTextEndsWithLineDelimiter) {
-								// no more non blank character after the last
-								// line delimiter
-								currentTextEndsWithLineDelimiter = StringUtils.indexOfNonblank(nodeText, indexOfLastLineDelimiter) == -1;
-							}
-
-							String nodeValue = nextSibling.getNodeValue();
-							boolean multiLineComment = StringUtils.containsLineDelimiter(nodeValue);
-
-							if (currentTextEndsWithLineDelimiter || multiLineComment) {
-								reflowedText = StringUtils.appendIfNotEndWith(reflowedText, lineDelimiter);
-								reflowedText = StringUtils.appendIfNotEndWith(reflowedText, nodeIndentation);
-							}
-						}
-						else if (nextSibling.getNodeType() == Node.ENTITY_REFERENCE_NODE || nextSibling.getNodeType() == Node.CDATA_SECTION_NODE) {
-							int textLength = nodeText.length();
-							if (textLength > 0 && Character.isWhitespace(nodeText.charAt(textLength - 1))) {
-								reflowedText = StringUtils.appendIfNotEndWith(reflowedText, lineDelimiter);
-								reflowedText = StringUtils.appendIfNotEndWith(reflowedText, nodeIndentation);
-							}
-						}
-						else {
-							// not a comment, just add add indentation to end
-							reflowedText = StringUtils.appendIfNotEndWith(reflowedText, lineDelimiter);
-							reflowedText = StringUtils.appendIfNotEndWith(reflowedText, nodeIndentation);
-						}
-					}
-				}
-
-				replaceNodeValue(node, reflowedText);
-			}
-		}
-	}
-
-	/**
-	 * Keeps text inline with its parent (no reflow necessary)
-	 * 
-	 * @param node
-	 * @param doc
-	 * @param compressedText
-	 * @param parentNode
-	 */
-	private void handleNoReflow(IDOMNode node, IStructuredDocument doc, String compressedText, IDOMNode parentNode) {
-		String nodeIndentation;
-		// enough space and text has no line delimiters and (node has no
-		// siblings or followed by inline comment) and
-		// parentFirstStructuredDocumentRegionContainsLineDelimiters
-
-		if (isEndTagMissing(parentNode)) {
-			parentNode = (IDOMNode) parentNode.getParentNode();
-			while (isEndTagMissing(parentNode))
-				parentNode = (IDOMNode) parentNode.getParentNode();
-
-			// add parent's indentation to end
-			nodeIndentation = getNodeIndent(parentNode);
-			String lineDelimiter = getLineDelimiter(doc, node.getStartOffset());
-			if (!compressedText.endsWith(lineDelimiter + nodeIndentation)) {
-				compressedText = StringUtils.appendIfNotEndWith(compressedText, lineDelimiter);
-				compressedText = StringUtils.appendIfNotEndWith(compressedText, nodeIndentation);
-			}
-		}
-
-		if ((parentNode != null) && (parentNode.getNodeType() == Node.DOCUMENT_NODE) && (node.getNodeValue().length() > 0) && (node.getNodeValue().trim().length() == 0) && ((node.getPreviousSibling() == null) || (node.getNextSibling() == null)))
-			// delete spaces at the beginning or end of the document
-			compressedText = EMPTY_STRING;
-
-		replaceNodeValue(node, compressedText);
-	}
-
-	private boolean noSiblingsAndNoFollowingComment(IDOMNode node) {
-		IDOMNode nextSibling = (IDOMNode) node.getNextSibling();
-		return !nodeHasSiblings(node) || (noLineDelimiter(node) && isComment(nextSibling) && noLineDelimiter(nextSibling));
-	}
-
-	private boolean isComment(IDOMNode node) {
-		boolean result = false;
-		if (node != null) {
-			result = node.getNodeType() == Node.COMMENT_NODE;
-		}
-		return result;
-	}
-
-	private boolean noLineDelimiter(IDOMNode node) {
-		boolean result = false;
-		if (node != null) {
-			result = !StringUtils.containsLineDelimiter(node.getNodeValue());
-		}
-		return result;
-	}
-
-	/**
-	 * Calculates if there is enough space on the current line for
-	 * compressedText (and for its parent end tag)
-	 * 
-	 * @param parentNode
-	 * @param currentAvailableLineWidth
-	 * @param compressedText
-	 * @return
-	 */
-	private boolean enoughSpace(IDOMNode parentNode, int currentAvailableLineWidth, String compressedText) {
-		int parentEndTagLength = parentNode.getNodeName().length() + 3;
-		return compressedText.length() <= (currentAvailableLineWidth - parentEndTagLength) && !StringUtils.containsLineDelimiter(compressedText);
-	}
-
-	protected Vector reflowText(String text, int availableWidth) {
-		String[] stringArray = null;
-		boolean clearAllBlankLines = getFormatPreferences().getClearAllBlankLines();
-
-		if (clearAllBlankLines)
-			stringArray = StringUtils.asArray(text);
-		else
-			stringArray = StringUtils.asArray(text, DELIMITERS, true);
-
-		Vector output = new Vector();
-		if ((stringArray != null) && (stringArray.length > 0)) {
-			StringBuffer buffer = new StringBuffer();
-			if (stringArray[0].compareTo(CR) != 0)
-				buffer.append(stringArray[0]);
-			int bufferLength = stringArray[0].toString().length();
-			boolean cr = stringArray[0].compareTo(CR) == 0;
-
-			for (int i = 1; i < stringArray.length; i++) {
-				String eachString = stringArray[i];
-				if ((eachString.compareTo(SPACE) != 0) && (eachString.compareTo(TAB) != 0) && (eachString.compareTo(FF) != 0)) {
-					if ((bufferLength + 1 + eachString.length() > availableWidth) || (eachString.compareTo(CR) == 0) || (eachString.compareTo(LF) == 0)) {
-						if ((eachString.compareTo(LF) == 0) && cr) {
-							// do nothing
-						}
-						else {
-							output.add(buffer.toString());
-							buffer = new StringBuffer();
-							bufferLength = 0;
-						}
-						cr = eachString.compareTo(CR) == 0;
-					}
-					else if (buffer.toString().trim().length() > 0) {
-						buffer.append(SPACE);
-						bufferLength++;
-					}
-					if ((eachString.compareTo(CR) != 0) && (eachString.compareTo(LF) != 0)) {
-						buffer.append(eachString);
-						bufferLength = bufferLength + eachString.length();
-					}
-				}
-			}
-			output.add(buffer.toString());
-		}
-		else
-			output.add(text);
-
-		return output;
-	}
-
-	private String getLineDelimiter(IStructuredDocument doc, int nodeOffset) {
-		int line = doc.getLineOfOffset(nodeOffset);
-		String lineDelimiter = doc.getLineDelimiter();
-		try {
-			if (line > 0) {
-				lineDelimiter = doc.getLineDelimiter(line - 1);
-			}
-		}
-		catch (BadLocationException e) {
-			// log for now, unless we find reason not to
-			Logger.log(Logger.INFO, e.getMessage());
-		}
-		// BUG115716: if cannot get line delimiter from current line, just
-		// use default line delimiter
-		if (lineDelimiter == null)
-			lineDelimiter = doc.getLineDelimiter();
-		return lineDelimiter;
-	}
-
-	private int computeAvailableLineWidth(IStructuredDocument doc, int nodeOffset, int lineWidth) {
-		// compute current available line width
-		int currentAvailableLineWidth = 0;
-		try {
-			int lineOffset = doc.getLineInformationOfOffset(nodeOffset).getOffset();
-			String text = doc.get(lineOffset, nodeOffset - lineOffset);
-			int usedWidth = getIndentationLength(text);
-			currentAvailableLineWidth = lineWidth - usedWidth;
-		}
-		catch (BadLocationException e) {
-			// log for now, unless we find reason not to
-			Logger.log(Logger.INFO, e.getMessage());
-		}
-		return currentAvailableLineWidth;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/text/IXMLPartitions.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/text/IXMLPartitions.java
deleted file mode 100644
index 5d36751..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/text/IXMLPartitions.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.provisional.text;
-
-
-
-/**
- * This interface is not intended to be implemented.
- * It defines the partition types for XML.
- * Clients should reference the partition type Strings defined here directly.
- * 
- * @deprecated use org.eclipse.wst.xml.core.text
- */
-public interface IXMLPartitions {
-	
-	String XML_DEFAULT = "org.eclipse.wst.xml.XML_DEFAULT"; //$NON-NLS-1$
-	String XML_CDATA = "org.eclipse.wst.xml.XML_CDATA"; //$NON-NLS-1$
-	String XML_PI = "org.eclipse.wst.xml.XML_PI"; //$NON-NLS-1$
-	String XML_DECLARATION = "org.eclipse.wst.xml.XML_DECL"; //$NON-NLS-1$
-	String XML_COMMENT = "org.eclipse.wst.xml.XML_COMMENT"; //$NON-NLS-1$
-	
-	/*
-	 * This value is used as a prefix to any unknown processing instructions
-	 * we find. The processor target name is converted to uppercase and
-	 * appended to the prefix to create a unique partition type.
-	 */
-	String PROCESSING_INSTRUCTION_PREFIX = "org.eclipse.wst.xml.PROCESSING_INSTRUCTION:"; //$NON-NLS-1$
-
-	/**
-	 * Should match
-	 * org.eclipse.wst.sse.core.dtd.partitioning.StructuredTextPartitionerForDTD.ST_DTD_SUBSET
-	 */
-	String DTD_SUBSET = "org.eclipse.wst.xml.dtd.internal_subset"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/regions/DOMRegionContext.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/regions/DOMRegionContext.java
deleted file mode 100644
index 4a73d8d..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/regions/DOMRegionContext.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.regions;
-
-public interface DOMRegionContext {
-
-	public static final String BLOCK_TEXT = "BLOCK_TEXT"; //$NON-NLS-1$
-
-	public static final String UNDEFINED = "UNDEFINED"; //$NON-NLS-1$
-
-	public static final String WHITE_SPACE = "WHITE_SPACE"; //$NON-NLS-1$
-	public static final String XML_ATTLIST_DECL_CLOSE = "XML_ATTLIST_DECL_CLOSE"; //$NON-NLS-1$
-	public static final String XML_ATTLIST_DECL_CONTENT = "XML_ATTLIST_DECL_CONTENT"; //$NON-NLS-1$
-	public static final String XML_ATTLIST_DECL_NAME = "XML_ATTLIST_DECL_NAME"; //$NON-NLS-1$
-
-	public static final String XML_ATTLIST_DECLARATION = "XML_ATTLIST_DECLARATION"; //$NON-NLS-1$
-	public static final String XML_CDATA_CLOSE = "XML_CDATA_CLOSE"; //$NON-NLS-1$
-	public static final String XML_CDATA_OPEN = "XML_CDATA_OPEN"; //$NON-NLS-1$
-	public static final String XML_CDATA_TEXT = "XML_CDATA_TEXT"; //$NON-NLS-1$
-	public static final String XML_CHAR_REFERENCE = "XML_CHAR_REFERENCE"; //$NON-NLS-1$
-	public static final String XML_COMMENT_CLOSE = "XML_COMMENT_CLOSE"; //$NON-NLS-1$
-
-	public static final String XML_COMMENT_OPEN = "XML_COMMENT_OPEN"; //$NON-NLS-1$
-	public static final String XML_COMMENT_TEXT = "XML_COMMENT_TEXT"; //$NON-NLS-1$
-
-	public static final String XML_CONTENT = "XML_CONTENT"; //$NON-NLS-1$
-	public static final String XML_DECLARATION_CLOSE = "XML_DECLARATION_CLOSE"; //$NON-NLS-1$
-
-	public static final String XML_DECLARATION_OPEN = "XML_DECLARATION_OPEN"; //$NON-NLS-1$
-
-	public static final String XML_DOCTYPE_DECLARATION = "XML_DOCTYPE_DECLARATION"; //$NON-NLS-1$
-	public static final String XML_DOCTYPE_DECLARATION_CLOSE = "XML_DOCTYPE_DECLARATION_CLOSE"; //$NON-NLS-1$
-	public static final String XML_DOCTYPE_EXTERNAL_ID_PUBLIC = "XML_DOCTYPE_EXTERNAL_ID_PUBLIC"; //$NON-NLS-1$
-	public static final String XML_DOCTYPE_EXTERNAL_ID_PUBREF = "XML_DOCTYPE_EXTERNAL_ID_PUBREF"; //$NON-NLS-1$
-	public static final String XML_DOCTYPE_EXTERNAL_ID_SYSREF = "XML_DOCTYPE_EXTERNAL_ID_SYSREF"; //$NON-NLS-1$
-	public static final String XML_DOCTYPE_EXTERNAL_ID_SYSTEM = "XML_DOCTYPE_EXTERNAL_ID_SYSTEM"; //$NON-NLS-1$
-	public static final String XML_DOCTYPE_INTERNAL_SUBSET = "XML_DOCTYPE_INTERNAL_SUBSET"; //$NON-NLS-1$
-	public static final String XML_DOCTYPE_NAME = "XML_DOCTYPE_NAME"; //$NON-NLS-1$
-	public static final String XML_ELEMENT_DECL_CLOSE = "XML_ELEMENT_DECL_CLOSE"; //$NON-NLS-1$
-	public static final String XML_ELEMENT_DECL_CONTENT = "XML_ELEMENT_DECL_CONTENT"; //$NON-NLS-1$
-	public static final String XML_ELEMENT_DECL_NAME = "XML_ELEMENT_DECL_NAME"; //$NON-NLS-1$
-
-	public static final String XML_ELEMENT_DECLARATION = "XML_ELEMENT_DECLARATION"; //$NON-NLS-1$
-	public static final String XML_EMPTY_TAG_CLOSE = "XML_EMPTY_TAG_CLOSE"; //$NON-NLS-1$
-	public static final String XML_END_TAG_OPEN = "XML_END_TAG_OPEN"; //$NON-NLS-1$
-	public static final String XML_ENTITY_REFERENCE = "XML_ENTITY_REFERENCE"; //$NON-NLS-1$
-
-	public static final String XML_PE_REFERENCE = "XML_PE_REFERENCE"; //$NON-NLS-1$
-	public static final String XML_PI_CLOSE = "XML_PI_CLOSE"; //$NON-NLS-1$
-	public static final String XML_PI_CONTENT = "XML_PI_CONTENT"; //$NON-NLS-1$
-	public static final String XML_PI_OPEN = "XML_PI_OPEN"; //$NON-NLS-1$
-	public static final String XML_TAG_ATTRIBUTE_EQUALS = "XML_TAG_ATTRIBUTE_EQUALS"; //$NON-NLS-1$
-	public static final String XML_TAG_ATTRIBUTE_NAME = "XML_TAG_ATTRIBUTE_NAME"; //$NON-NLS-1$
-	public static final String XML_TAG_ATTRIBUTE_VALUE = "XML_TAG_ATTRIBUTE_VALUE"; //$NON-NLS-1$
-	public static final String XML_TAG_CLOSE = "XML_TAG_CLOSE"; //$NON-NLS-1$
-	public static final String XML_TAG_NAME = "XML_TAG_NAME"; //$NON-NLS-1$
-
-	public static final String XML_TAG_OPEN = "XML_TAG_OPEN"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/ModelQueryAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/ModelQueryAdapter.java
deleted file mode 100644
index 74ad2a1..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/ModelQueryAdapter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.ssemodelquery;
-
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
-
-public interface ModelQueryAdapter extends INodeAdapter {
-
-	public CMDocumentCache getCMDocumentCache();
-
-	public URIResolver getIdResolver();
-
-	public ModelQuery getModelQuery();
-
-	void release();
-
-	void setIdResolver(URIResolver newIdResolver);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/ModelQueryAdapterImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/ModelQueryAdapterImpl.java
deleted file mode 100644
index a68e672..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/ModelQueryAdapterImpl.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.ssemodelquery;
-
-
-
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
-
-
-public class ModelQueryAdapterImpl implements ModelQueryAdapter {
-	protected CMDocumentCache cmDocumentCache;
-	protected URIResolver idResolver;
-
-	protected ModelQuery modelQuery;
-
-	public ModelQueryAdapterImpl(CMDocumentCache cmDocumentCache, ModelQuery modelQuery, URIResolver idResolver) {
-		this.cmDocumentCache = cmDocumentCache;
-		this.modelQuery = modelQuery;
-		this.idResolver = idResolver;
-	}
-
-	public CMDocumentCache getCMDocumentCache() {
-		return cmDocumentCache;
-	}
-
-	public URIResolver getIdResolver() {
-		return idResolver;
-	}
-
-	public ModelQuery getModelQuery() {
-		return modelQuery;
-	}
-
-	/**
-	 * Allowing the INodeAdapter to compare itself against the type allows it
-	 * to return true in more than one case.
-	 */
-	public boolean isAdapterForType(Object type) {
-		return type.equals(ModelQueryAdapter.class);
-	}
-
-	/**
-	 */
-
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-	}
-
-	/**
-	 * @see ModelQueryAdapter#release()
-	 */
-	public void release() {
-	}
-
-	/**
-	 * @see ModelQueryAdapter#setIdResolver(URIResolver)
-	 */
-
-	public void setIdResolver(URIResolver newIdResolver) {
-		idResolver = newIdResolver;
-		if (modelQuery instanceof MovableModelQuery)
-			((MovableModelQuery) modelQuery).setIdResolver(newIdResolver);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/MovableModelQuery.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/MovableModelQuery.java
deleted file mode 100644
index 49d7339..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/MovableModelQuery.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.ssemodelquery;
-
-
-
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-
-public interface MovableModelQuery extends ModelQuery {
-
-	void setIdResolver(URIResolver newURIResolver);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/tasks/XMLFileTaskScanner.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/tasks/XMLFileTaskScanner.java
deleted file mode 100644
index 94b8155..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/tasks/XMLFileTaskScanner.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.tasks;
-
-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.tasks.StructuredFileTaskScanner;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-public class XMLFileTaskScanner extends StructuredFileTaskScanner {
-	public XMLFileTaskScanner() {
-		super();
-	}
-
-	protected boolean isCommentRegion(IStructuredDocumentRegion region, ITextRegion textRegion) {
-		return textRegion.getType().equals(DOMRegionContext.XML_COMMENT_TEXT);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/text/XMLStructuredDocumentRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/text/XMLStructuredDocumentRegion.java
deleted file mode 100644
index e26bf08..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/text/XMLStructuredDocumentRegion.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.text;
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-public class XMLStructuredDocumentRegion extends BasicStructuredDocumentRegion implements IStructuredDocumentRegion {
-
-	public XMLStructuredDocumentRegion() {
-		super();
-	}
-
-	public String getType() {
-		String result = super.getType();
-		// normally, we want the second region as the flatnode type ... since
-		// the
-		// first one is usually just "open tag".
-		if ((result != DOMRegionContext.XML_PI_OPEN) && (getRegions().size() > 1)) {
-			result = getRegions().get(1).getType();
-		}
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/text/rules/StructuredTextPartitionerForXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/text/rules/StructuredTextPartitionerForXML.java
deleted file mode 100644
index 8b73869..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/text/rules/StructuredTextPartitionerForXML.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.text.rules;
-
-import java.util.Locale;
-
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.wst.sse.core.internal.parser.ForeignRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredTextPartitioner;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.text.rules.StructuredTextPartitioner;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.core.text.IXMLPartitions;
-
-public class StructuredTextPartitionerForXML extends StructuredTextPartitioner implements IStructuredTextPartitioner {
-
-	private final static String[] configuredContentTypes = new String[]{IXMLPartitions.XML_DEFAULT, IXMLPartitions.XML_CDATA, IXMLPartitions.XML_PI, IXMLPartitions.XML_DECLARATION, IXMLPartitions.XML_COMMENT, IXMLPartitions.DTD_SUBSET};
-
-	public StructuredTextPartitionerForXML() {
-		super();
-	}
-
-	protected void setInternalPartition(int offset, int length, String type) {
-		super.setInternalPartition(offset, length, type);
-	}
-
-	protected void initLegalContentTypes() {
-		fSupportedTypes = configuredContentTypes;
-	}
-
-	public String getPartitionType(ITextRegion region, int offset) {
-		String result = null;
-		if (region.getType() == DOMRegionContext.XML_COMMENT_TEXT)
-			result = IXMLPartitions.XML_COMMENT;
-		else if (region.getType() == DOMRegionContext.XML_CDATA_TEXT)
-			result = IXMLPartitions.XML_CDATA;
-		else if (region.getType() == DOMRegionContext.XML_PI_CONTENT) {
-			/**
-			 * Grammatically, it's impossible to get a PI_CONTENT region
-			 * without a preceding XML_TAG_NAME region. Relying on this,
-			 * extract the target processor name and create a partition type
-			 * dynamically.
-			 */
-			IStructuredDocumentRegion docRegion = fStructuredDocument.getRegionAtCharacterOffset(offset);
-			ITextRegion name = docRegion.getRegionAtCharacterOffset(docRegion.getStartOffset() + region.getStart() - 1);
-			result = IXMLPartitions.PROCESSING_INSTRUCTION_PREFIX + docRegion.getText(name).toUpperCase(Locale.ENGLISH);
-		}
-		else if (region.getType() == DOMRegionContext.XML_PI_OPEN)
-			result = IXMLPartitions.XML_PI;
-		else if (region.getType() == DOMRegionContext.XML_DOCTYPE_DECLARATION)
-			result = IXMLPartitions.XML_DECLARATION;
-		else if (region.getType() == DOMRegionContext.XML_DOCTYPE_INTERNAL_SUBSET)
-			result = IXMLPartitions.DTD_SUBSET;
-		else
-			result = super.getPartitionType(region, offset);
-		return result;
-	}
-
-	protected String getPartitionType(ForeignRegion region, int offset) {
-		// temp added just to dis-ambiguate call from subclass
-		return super.getPartitionType(region, offset);
-	}
-
-	public String getPartitionTypeBetween(IStructuredDocumentRegion previousNode, IStructuredDocumentRegion nextNode) {
-		return super.getPartitionTypeBetween(previousNode, nextNode);
-	}
-
-	public String getDefaultPartitionType() {
-		return IXMLPartitions.XML_DEFAULT;
-	}
-
-	public IDocumentPartitioner newInstance() {
-		StructuredTextPartitionerForXML instance = new StructuredTextPartitionerForXML();
-		return instance;
-	}
-
-	/**
-	 * @return
-	 */
-	public static String[] getConfiguredContentTypes() {
-		return configuredContentTypes;
-	}
-
-	protected String getPartitionFromBlockedText(ITextRegion region, int offset, String result) {
-		// was moved to subclass for quick transition
-		String newResult = result;
-		// nsd_TODO: David and I need to discuss, design, and implement this
-		// for all block tags and comments
-		// and make sure is part of "extensible" design of block tags
-		if (region.getType() == DOMRegionContext.BLOCK_TEXT) {
-			// for code safety, we'll always check instanceof, but I think
-			// always true.
-			if (region instanceof ForeignRegion) {
-				// super is used below so won't be ambiguous
-				newResult = getPartitionType((ForeignRegion) region, offset);
-			}
-			else if (region instanceof ForeignRegion) {
-				newResult = getPartitionType((ForeignRegion) region, offset);
-			}
-			else {
-				newResult = getUnknown();
-			}
-		}
-		return newResult;
-	}
-
-	protected boolean doParserSpecificCheck(int offset, boolean partitionFound, IStructuredDocumentRegion sdRegion, IStructuredDocumentRegion previousStructuredDocumentRegion, ITextRegion next, ITextRegion previousStart) {
-		// this was moved down to subclass of StructuredTextPartioner
-		// for quick fix to transition problems. Heirarchy needs lots of
-		// cleanup.
-		if (previousStart != null && previousStart.getType() == DOMRegionContext.XML_TAG_OPEN && next.getType() == DOMRegionContext.XML_END_TAG_OPEN) {
-			ITextRegion previousName = previousStructuredDocumentRegion.getRegionAtCharacterOffset(previousStructuredDocumentRegion.getEndOffset(previousStart));
-			ITextRegion nextName = sdRegion.getRegionAtCharacterOffset(sdRegion.getEndOffset(next));
-			if (previousName != null && nextName != null && previousName.getType() == DOMRegionContext.XML_TAG_NAME && nextName.getType() == DOMRegionContext.XML_TAG_NAME) {
-				setInternalPartition(offset, 0, getPartitionTypeBetween(previousStructuredDocumentRegion, sdRegion));
-				partitionFound = true;
-			}
-		}
-		return partitionFound;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/AbstractPropagatingValidator.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/AbstractPropagatingValidator.java
deleted file mode 100644
index 3fddda3..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/AbstractPropagatingValidator.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.validate;
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.validate.ValidationAdapter;
-import org.w3c.dom.Node;
-
-
-public abstract class AbstractPropagatingValidator extends ValidationComponent {
-
-	/**
-	 * Constructor for AbstractPropagatingValidator.
-	 */
-	public AbstractPropagatingValidator() {
-		super();
-	}
-
-	protected abstract ValidationComponent getPropagatee();
-
-	protected abstract ValidationAdapter getValidator();
-
-
-	public void validate(IndexedRegion node) {
-		if (node == null)
-			return;
-		getValidator().validate(node);
-
-		propagateToChildElements(getPropagatee(), (Node) node);
-	}
-
-	private void propagateToChildElements(ValidationComponent validator, Node parent) {
-		if (parent == null)
-			return;
-		Class clazz = validator.getClass();
-
-		Node child = parent.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() == Node.ELEMENT_NODE) {
-				INodeNotifier notifier = (INodeNotifier) child;
-				ValidationAdapter va = (ValidationAdapter) notifier.getExistingAdapter(clazz);
-				if (va == null) {
-					notifier.addAdapter(validator);
-					va = validator;
-				}
-				// bug 143213 - Can't batch validate open HTML files when
-				// as-you-type validation is enabled
-				va.setReporter(validator.getReporter());
-				va.validate((IndexedRegion) child);
-			}
-			child = child.getNextSibling();
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/Propagator.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/Propagator.java
deleted file mode 100644
index 3ce6569..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/Propagator.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.validate;
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.validate.ValidationAdapter;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * @deprecated since 2.0 M5 - if propogateToChildElement is needed, just copy
- *             method to your own class
- */
-public class Propagator {
-
-	public static void propagateToChildElements(ValidationComponent validator, Node parent) {
-		if (parent == null)
-			return;
-		Class clazz = validator.getClass();
-
-		NodeList children = parent.getChildNodes();
-		for (int i = 0; i < children.getLength(); i++) {
-			Node child = children.item(i);
-			if (child == null || child.getNodeType() != Node.ELEMENT_NODE)
-				continue;
-
-			INodeNotifier notifier = (INodeNotifier) child;
-			ValidationAdapter va = (ValidationAdapter) notifier.getExistingAdapter(clazz);
-			if (va == null) {
-				notifier.addAdapter(validator);
-				va = validator;
-			}
-			va.validate((IndexedRegion) child);
-		}
-	}
-
-	/**
-	 * Propagator is just a placeholder of utilities. Don't instantiate.
-	 */
-	private Propagator() {
-		super();
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/ValidationComponent.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/ValidationComponent.java
deleted file mode 100644
index dfd921f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/ValidationComponent.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.validate;
-
-
-
-import org.eclipse.wst.sse.core.internal.validate.ValidationAdapter;
-import org.eclipse.wst.sse.core.internal.validate.ValidationReporter;
-
-public abstract class ValidationComponent implements ValidationAdapter {
-
-	protected ValidationReporter reporter = null;
-
-	/**
-	 * ValidationComponent constructor comment.
-	 */
-	public ValidationComponent() {
-		super();
-	}
-
-	/**
-	 * Allowing the INodeAdapter to compare itself against the type allows it
-	 * to return true in more than one case.
-	 */
-	public boolean isAdapterForType(Object type) {
-		return (type == ValidationAdapter.class);
-	}
-
-	/**
-	 */
-	public void notifyChanged(org.eclipse.wst.sse.core.internal.provisional.INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-		// This method will be implemented in the V2.
-	}
-
-	/**
-	 */
-	public void setReporter(ValidationReporter reporter) {
-		this.reporter = reporter;
-	}
-
-	ValidationReporter getReporter() {
-		return this.reporter;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/text/IXMLPartitions.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/text/IXMLPartitions.java
deleted file mode 100644
index d8da786..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/text/IXMLPartitions.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.core.text;
-
-
-
-/**
- * This interface is not intended to be implemented.
- * It defines the partition types for XML.
- * Clients should reference the partition type Strings defined here directly.
- * 
- * @since 1.1
- */
-public interface IXMLPartitions {
-	
-	String XML_DEFAULT = "org.eclipse.wst.xml.XML_DEFAULT"; //$NON-NLS-1$
-	String XML_CDATA = "org.eclipse.wst.xml.XML_CDATA"; //$NON-NLS-1$
-	String XML_PI = "org.eclipse.wst.xml.XML_PI"; //$NON-NLS-1$
-	String XML_DECLARATION = "org.eclipse.wst.xml.XML_DECL"; //$NON-NLS-1$
-	String XML_COMMENT = "org.eclipse.wst.xml.XML_COMMENT"; //$NON-NLS-1$
-	
-	/*
-	 * This value is used as a prefix to any unknown processing instructions
-	 * we find. The processor target name is converted to uppercase and
-	 * appended to the prefix to create a unique partition type.
-	 */
-	String PROCESSING_INSTRUCTION_PREFIX = "org.eclipse.wst.xml.PROCESSING_INSTRUCTION:"; //$NON-NLS-1$
-
-	/**
-	 * Should match
-	 * org.eclipse.wst.sse.core.dtd.partitioning.StructuredTextPartitionerForDTD.ST_DTD_SUBSET
-	 */
-	String DTD_SUBSET = "org.eclipse.wst.xml.dtd.internal_subset"; //$NON-NLS-1$
-}
diff --git a/features/org.eclipse.wst.web_core.feature.patch/.project b/features/org.eclipse.wst.web_core.feature.patch/.project
deleted file mode 100644
index 55af69c..0000000
--- a/features/org.eclipse.wst.web_core.feature.patch/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.web_core.feature.patch 2.0.2 Patches</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/features/org.eclipse.wst.web_core.feature.patch/build.properties b/features/org.eclipse.wst.web_core.feature.patch/build.properties
deleted file mode 100644
index cb50260..0000000
--- a/features/org.eclipse.wst.web_core.feature.patch/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-bin.includes = feature.xml,\
-               license.html,\
-               feature.properties,\
-               epl-v10.html,\
-               eclipse_update_120.jpg
diff --git a/features/org.eclipse.wst.web_core.feature.patch/buildnotes_org.eclipse.wst.web_core.feature.patch.html b/features/org.eclipse.wst.web_core.feature.patch/buildnotes_org.eclipse.wst.web_core.feature.patch.html
deleted file mode 100644
index d67d5b6..0000000
--- a/features/org.eclipse.wst.web_core.feature.patch/buildnotes_org.eclipse.wst.web_core.feature.patch.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta name="Build" content="Build">
-<title>WTP 2.0.2 Patches</title>
-</head>
-
-<body>
-
-<h1>WTP 2.0.2 Patches</h1>
-
-<h2>org.eclipse.wst.web_core.feature</h2>
-<h3>org.eclipse.wst.common.modulecore</h3>
-<p>Bug <a href="https://bugs.eclipse.org/201318">201318</a>.
-EAR Libraries container fails to initalize ...</p>
-</body>
-</html>
diff --git a/features/org.eclipse.wst.web_core.feature.patch/eclipse_update_120.jpg b/features/org.eclipse.wst.web_core.feature.patch/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/features/org.eclipse.wst.web_core.feature.patch/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.wst.web_core.feature.patch/epl-v10.html b/features/org.eclipse.wst.web_core.feature.patch/epl-v10.html
deleted file mode 100644
index 84ec251..0000000
--- a/features/org.eclipse.wst.web_core.feature.patch/epl-v10.html
+++ /dev/null
@@ -1,261 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Public License - Version 1.0</title>
-<style type="text/css">
-  body {
-    size: 8.5in 11.0in;
-    margin: 0.25in 0.5in 0.25in 0.5in;
-    tab-interval: 0.5in;
-    }
-  p {  	
-    margin-left: auto;
-    margin-top:  0.5em;
-    margin-bottom: 0.5em;
-    }
-  p.list {
-  	margin-left: 0.5in;
-    margin-top:  0.05em;
-    margin-bottom: 0.05em;
-    }
-  </style>
-
-</head>
-
-<body lang="EN-US">
-
-<p align=center><b>Eclipse Public License - v 1.0</b></p>
-
-<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
-PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE, REPRODUCTION OR
-DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
-AGREEMENT.</p>
-
-<p><b>1. DEFINITIONS</b></p>
-
-<p>&quot;Contribution&quot; means:</p>
-
-<p class="list">a) in the case of the initial Contributor, the initial
-code and documentation distributed under this Agreement, and</p>
-<p class="list">b) in the case of each subsequent Contributor:</p>
-<p class="list">i) changes to the Program, and</p>
-<p class="list">ii) additions to the Program;</p>
-<p class="list">where such changes and/or additions to the Program
-originate from and are distributed by that particular Contributor. A
-Contribution 'originates' from a Contributor if it was added to the
-Program by such Contributor itself or anyone acting on such
-Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in
-conjunction with the Program under their own license agreement, and (ii)
-are not derivative works of the Program.</p>
-
-<p>&quot;Contributor&quot; means any person or entity that distributes
-the Program.</p>
-
-<p>&quot;Licensed Patents&quot; mean patent claims licensable by a
-Contributor which are necessarily infringed by the use or sale of its
-Contribution alone or when combined with the Program.</p>
-
-<p>&quot;Program&quot; means the Contributions distributed in accordance
-with this Agreement.</p>
-
-<p>&quot;Recipient&quot; means anyone who receives the Program under
-this Agreement, including all Contributors.</p>
-
-<p><b>2. GRANT OF RIGHTS</b></p>
-
-<p class="list">a) Subject to the terms of this Agreement, each
-Contributor hereby grants Recipient a non-exclusive, worldwide,
-royalty-free copyright license to reproduce, prepare derivative works
-of, publicly display, publicly perform, distribute and sublicense the
-Contribution of such Contributor, if any, and such derivative works, in
-source code and object code form.</p>
-
-<p class="list">b) Subject to the terms of this Agreement, each
-Contributor hereby grants Recipient a non-exclusive, worldwide,
-royalty-free patent license under Licensed Patents to make, use, sell,
-offer to sell, import and otherwise transfer the Contribution of such
-Contributor, if any, in source code and object code form. This patent
-license shall apply to the combination of the Contribution and the
-Program if, at the time the Contribution is added by the Contributor,
-such addition of the Contribution causes such combination to be covered
-by the Licensed Patents. The patent license shall not apply to any other
-combinations which include the Contribution. No hardware per se is
-licensed hereunder.</p>
-
-<p class="list">c) Recipient understands that although each Contributor
-grants the licenses to its Contributions set forth herein, no assurances
-are provided by any Contributor that the Program does not infringe the
-patent or other intellectual property rights of any other entity. Each
-Contributor disclaims any liability to Recipient for claims brought by
-any other entity based on infringement of intellectual property rights
-or otherwise. As a condition to exercising the rights and licenses
-granted hereunder, each Recipient hereby assumes sole responsibility to
-secure any other intellectual property rights needed, if any. For
-example, if a third party patent license is required to allow Recipient
-to distribute the Program, it is Recipient's responsibility to acquire
-that license before distributing the Program.</p>
-
-<p class="list">d) Each Contributor represents that to its knowledge it
-has sufficient copyright rights in its Contribution, if any, to grant
-the copyright license set forth in this Agreement.</p>
-
-<p><b>3. REQUIREMENTS</b></p>
-
-<p>A Contributor may choose to distribute the Program in object code
-form under its own license agreement, provided that:</p>
-
-<p class="list">a) it complies with the terms and conditions of this
-Agreement; and</p>
-
-<p class="list">b) its license agreement:</p>
-
-<p class="list">i) effectively disclaims on behalf of all Contributors
-all warranties and conditions, express and implied, including warranties
-or conditions of title and non-infringement, and implied warranties or
-conditions of merchantability and fitness for a particular purpose;</p>
-
-<p class="list">ii) effectively excludes on behalf of all Contributors
-all liability for damages, including direct, indirect, special,
-incidental and consequential damages, such as lost profits;</p>
-
-<p class="list">iii) states that any provisions which differ from this
-Agreement are offered by that Contributor alone and not by any other
-party; and</p>
-
-<p class="list">iv) states that source code for the Program is available
-from such Contributor, and informs licensees how to obtain it in a
-reasonable manner on or through a medium customarily used for software
-exchange.</p>
-
-<p>When the Program is made available in source code form:</p>
-
-<p class="list">a) it must be made available under this Agreement; and</p>
-
-<p class="list">b) a copy of this Agreement must be included with each
-copy of the Program.</p>
-
-<p>Contributors may not remove or alter any copyright notices contained
-within the Program.</p>
-
-<p>Each Contributor must identify itself as the originator of its
-Contribution, if any, in a manner that reasonably allows subsequent
-Recipients to identify the originator of the Contribution.</p>
-
-<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
-
-<p>Commercial distributors of software may accept certain
-responsibilities with respect to end users, business partners and the
-like. While this license is intended to facilitate the commercial use of
-the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create
-potential liability for other Contributors. Therefore, if a Contributor
-includes the Program in a commercial product offering, such Contributor
-(&quot;Commercial Contributor&quot;) hereby agrees to defend and
-indemnify every other Contributor (&quot;Indemnified Contributor&quot;)
-against any losses, damages and costs (collectively &quot;Losses&quot;)
-arising from claims, lawsuits and other legal actions brought by a third
-party against the Indemnified Contributor to the extent caused by the
-acts or omissions of such Commercial Contributor in connection with its
-distribution of the Program in a commercial product offering. The
-obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In
-order to qualify, an Indemnified Contributor must: a) promptly notify
-the Commercial Contributor in writing of such claim, and b) allow the
-Commercial Contributor to control, and cooperate with the Commercial
-Contributor in, the defense and any related settlement negotiations. The
-Indemnified Contributor may participate in any such claim at its own
-expense.</p>
-
-<p>For example, a Contributor might include the Program in a commercial
-product offering, Product X. That Contributor is then a Commercial
-Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance
-claims and warranties are such Commercial Contributor's responsibility
-alone. Under this section, the Commercial Contributor would have to
-defend claims against the other Contributors related to those
-performance claims and warranties, and if a court requires any other
-Contributor to pay any damages as a result, the Commercial Contributor
-must pay those damages.</p>
-
-<p><b>5. NO WARRANTY</b></p>
-
-<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
-PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS
-OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
-ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
-OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and
-distributing the Program and assumes all risks associated with its
-exercise of rights under this Agreement , including but not limited to
-the risks and costs of program errors, compliance with applicable laws,
-damage to or loss of data, programs or equipment, and unavailability or
-interruption of operations.</p>
-
-<p><b>6. DISCLAIMER OF LIABILITY</b></p>
-
-<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
-NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
-WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
-DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
-HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
-
-<p><b>7. GENERAL</b></p>
-
-<p>If any provision of this Agreement is invalid or unenforceable under
-applicable law, it shall not affect the validity or enforceability of
-the remainder of the terms of this Agreement, and without further action
-by the parties hereto, such provision shall be reformed to the minimum
-extent necessary to make such provision valid and enforceable.</p>
-
-<p>If Recipient institutes patent litigation against any entity
-(including a cross-claim or counterclaim in a lawsuit) alleging that the
-Program itself (excluding combinations of the Program with other
-software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the
-date such litigation is filed.</p>
-
-<p>All Recipient's rights under this Agreement shall terminate if it
-fails to comply with any of the material terms or conditions of this
-Agreement and does not cure such failure in a reasonable period of time
-after becoming aware of such noncompliance. If all Recipient's rights
-under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive.</p>
-
-<p>Everyone is permitted to copy and distribute copies of this
-Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The
-Agreement Steward reserves the right to publish new versions (including
-revisions) of this Agreement from time to time. No one other than the
-Agreement Steward has the right to modify this Agreement. The Eclipse
-Foundation is the initial Agreement Steward. The Eclipse Foundation may
-assign the responsibility to serve as the Agreement Steward to a
-suitable separate entity. Each new version of the Agreement will be
-given a distinguishing version number. The Program (including
-Contributions) may always be distributed subject to the version of the
-Agreement under which it was received. In addition, after a new version
-of the Agreement is published, Contributor may elect to distribute the
-Program (including its Contributions) under the new version. Except as
-expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
-rights or licenses to the intellectual property of any Contributor under
-this Agreement, whether expressly, by implication, estoppel or
-otherwise. All rights in the Program not expressly granted under this
-Agreement are reserved.</p>
-
-<p>This Agreement is governed by the laws of the State of New York and
-the intellectual property laws of the United States of America. No party
-to this Agreement will bring a legal action under this Agreement more
-than one year after the cause of action arose. Each party waives its
-rights to a jury trial in any resulting litigation.</p>
-
-</body>
-
-</html>
diff --git a/features/org.eclipse.wst.web_core.feature.patch/feature.properties b/features/org.eclipse.wst.web_core.feature.patch/feature.properties
deleted file mode 100644
index da49220..0000000
--- a/features/org.eclipse.wst.web_core.feature.patch/feature.properties
+++ /dev/null
@@ -1,147 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=WST Web Core Patches
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=\
-The bugs and fixes are described in the following bugzilla entries:\n\
-\n\
-Bug https://bugs.eclipse.org/201318 EAR Libraries container fails to initalize ...\n\
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2008 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-September 27, 2007\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.web_core.feature.patch/feature.xml b/features/org.eclipse.wst.web_core.feature.patch/feature.xml
deleted file mode 100644
index 4b3af0b..0000000
--- a/features/org.eclipse.wst.web_core.feature.patch/feature.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.wst.web_core.feature.patch"
-      label="%featureName"
-      version="2.0.2.qualifier"
-      provider-name="%providerName">
-
-      <description>%description</description>
-
-      <copyright>%copyright</copyright>
-
-      <license url="%licenseURL">%license</license>
-
-
-
-   <requires>
-      <import feature="org.eclipse.wst.web_core.feature" version="2.0.2.v200802150100-42CN_kE77a8F9XCOEL" patch="true"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.wst.common.modulecore"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/features/org.eclipse.wst.web_core.feature.patch/license.html b/features/org.eclipse.wst.web_core.feature.patch/license.html
deleted file mode 100644
index fd7c16d..0000000
--- a/features/org.eclipse.wst.web_core.feature.patch/license.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML>
-<HEAD>
-<TITLE>Eclipse.org Software User Agreement</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR>
-</HEAD>
-<BODY lang=EN-US vLink=purple link=blue>
-<H2>Eclipse Foundation Software User Agreement</H2>
-<P>June, 2008</P>
-<H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
-INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-(COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS
-AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF
-LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING
-THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE
-TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR
-REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</P>
-<H3>Applicable Licenses</H3>
-<P>Unless otherwise indicated, all Content made available by the
-Eclipse Foundation is provided to you under the terms and conditions of
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is
-provided with this Content and is also available at <A
-	href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>.
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>Content includes, but is not limited to, source code, object
-code, documentation and other files maintained in the Eclipse.org CVS
-repository ("Repository") in CVS modules ("Modules") and made available
-as downloadable archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in
-fragments ("Fragments"), and features ("Features"). A Feature is a
-bundle of one or more Plug-ins and/or Fragments and associated material.
-Files named "feature.xml" may contain a list of the names and version
-numbers of the Plug-ins and/or Fragments associated with a Feature.
-Plug-ins and Fragments are located in directories named "plugins" and
-Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features").
-Files named "feature.xml" may contain a list of the names and version
-numbers of Included Features.</P>
-<P>The terms and conditions governing Plug-ins and Fragments should
-be contained in files named "about.html" ("Abouts"). The terms and
-conditions governing Features and Included Features should be contained
-in files named "license.html" ("Feature Licenses"). Abouts and Feature
-Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</P>
-<UL>
-	<LI>The top-level (root) directory
-	<LI>Plug-in and Fragment directories
-	<LI>Subdirectories of the directory named "src" of certain
-	Plug-ins
-	<LI>Feature directories</LI>
-</UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is
-installed using the Eclipse Update Manager, you must agree to a license
-("Feature Update License") during the installation process. If the
-Feature contains Included Features, the Feature Update License should
-either provide you with the terms and conditions governing the Included
-Features or inform you where you can locate them. Feature Update
-Licenses may be found in the "license" property of files named
-"feature.properties". Such Abouts, Feature Licenses and Feature Update
-Licenses contain the terms and conditions (or references to such terms
-and conditions) that govern your use of the associated Content in that
-directory.</P>
-<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY
-REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND
-CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE
-NOT LIMITED TO):</P>
-<UL>
-	<LI>Common Public License Version 1.0 (available at <A
-		href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>)
-
-	
-	<LI>Apache Software License 1.1 (available at <A
-		href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>)
-
-	
-	<LI>Apache Software License 2.0 (available at <A
-		href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>)
-
-	
-	<LI>IBM Public License 1.0 (available at <A
-		href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>)
-
-	
-	<LI>Metro Link Public License 1.00 (available at <A
-		href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>)
-
-	
-	<LI>Mozilla Public License Version 1.1 (available at <A
-		href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>)
-	</LI>
-</UL>
-<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND
-CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License or
-Feature Update License is provided, please contact the Eclipse
-Foundation to determine what terms and conditions govern that particular
-Content.</P>
-<H3>Cryptography</H3>
-<P>Content may contain encryption software. The country in which you
-are currently may have restrictions on the import, possession, and use,
-and/or re-export to another country, of encryption software. BEFORE
-using any encryption software, please check the country's laws,
-regulations and policies concerning the import, possession, or use, and
-re-export of encryption software, to see if this is permitted.</P>
-</BODY>
-</HTML>
diff --git a/features/org.eclipse.wst.xml_core.feature.patch/.cvsignore b/features/org.eclipse.wst.xml_core.feature.patch/.cvsignore
deleted file mode 100644
index b1d6d30..0000000
--- a/features/org.eclipse.wst.xml_core.feature.patch/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-build.xml
-feature.temp.folder
diff --git a/features/org.eclipse.wst.xml_core.feature.patch/.project b/features/org.eclipse.wst.xml_core.feature.patch/.project
deleted file mode 100644
index 648c793..0000000
--- a/features/org.eclipse.wst.xml_core.feature.patch/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.xml_core.feature.patch</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/features/org.eclipse.wst.xml_core.feature.patch/build.properties b/features/org.eclipse.wst.xml_core.feature.patch/build.properties
deleted file mode 100644
index bfd58ab..0000000
--- a/features/org.eclipse.wst.xml_core.feature.patch/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-bin.includes = feature.xml,\
-               license.html,\
-               feature.properties,\
-               epl-v10.html,\
-               eclipse_update_120.jpg,\
-               buildnotes_bug-165215.html
diff --git a/features/org.eclipse.wst.xml_core.feature.patch/buildnotes_org.eclipse.wst.xml_core.feature.patch.html b/features/org.eclipse.wst.xml_core.feature.patch/buildnotes_org.eclipse.wst.xml_core.feature.patch.html
deleted file mode 100644
index 6356913..0000000
--- a/features/org.eclipse.wst.xml_core.feature.patch/buildnotes_org.eclipse.wst.xml_core.feature.patch.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Web Tools Platform Patch Build Notes</title>
-</head>
-<body>
-
-
-<h1>WTP 3.0.1 Patches</h1>
-
-<p>Bug <a href="https://bugs.eclipse.org/243747">243747</a>.
-"Cannot find the tag library descriptor" after removing a taglib file with duplicate URI.</p>
-</body>
-</head>
\ No newline at end of file
diff --git a/features/org.eclipse.wst.xml_core.feature.patch/eclipse_update_120.jpg b/features/org.eclipse.wst.xml_core.feature.patch/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/features/org.eclipse.wst.xml_core.feature.patch/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.wst.xml_core.feature.patch/epl-v10.html b/features/org.eclipse.wst.xml_core.feature.patch/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.wst.xml_core.feature.patch/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.wst.xml_core.feature.patch/feature.properties b/features/org.eclipse.wst.xml_core.feature.patch/feature.properties
deleted file mode 100644
index 6edee72..0000000
--- a/features/org.eclipse.wst.xml_core.feature.patch/feature.properties
+++ /dev/null
@@ -1,147 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=WST XML Core Patch Feature
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=\
-The bugs and fixes are described in the following bugzilla entries:\n\
-\n\
-Bug https://bugs.eclipse.org/243747 Cannot find the tag library descriptor" after removing a taglib file with duplicate URI.\n\
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.xml_core.feature.patch/feature.xml b/features/org.eclipse.wst.xml_core.feature.patch/feature.xml
deleted file mode 100644
index 9b23ea4..0000000
--- a/features/org.eclipse.wst.xml_core.feature.patch/feature.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.wst.xml_core.feature.patch"
-      label="%featureName"
-      version="3.0.1.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates/"/>
-   </url>
-
-   <requires>
-      <import feature="org.eclipse.wst.xml_core.feature" version="3.0.1.v200807220139-7A7NEGuE7QYGHNH_NuKhUl" patch="true"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.wst.sse.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/features/org.eclipse.wst.xml_core.feature.patch/license.html b/features/org.eclipse.wst.xml_core.feature.patch/license.html
deleted file mode 100644
index 2347060..0000000
--- a/features/org.eclipse.wst.xml_core.feature.patch/license.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
-<BODY lang=EN-US vLink=purple link=blue>
-<H2>Eclipse Foundation Software User Agreement</H2>
-<P>January 28, 2005</P>
-<H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF 
-THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE 
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED 
-BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED 
-BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE 
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE 
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY 
-APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU 
-MAY NOT USE THE CONTENT.</P>
-<H3>Applicable Licenses</H3>
-<P>Unless otherwise indicated, all Content made available by the Eclipse 
-Foundation is provided to you under the terms and conditions of the Eclipse 
-Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
-Content and is also available at <A 
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>Content includes, but is not limited to, source code, object code, 
-documentation and other files maintained in the Eclipse.org CVS repository 
-("Repository") in CVS modules ("Modules") and made available as downloadable 
-archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" may 
-contain a list of the names and version numbers of the Plug-ins and/or Fragments 
-associated with a Feature. Plug-ins and Fragments are located in directories 
-named "plugins" and Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features"). Files named 
-"feature.xml" may contain a list of the names and version numbers of Included 
-Features.</P>
-<P>The terms and conditions governing Plug-ins and Fragments should be contained 
-in files named "about.html" ("Abouts"). The terms and conditions governing 
-Features and Included Features should be contained in files named "license.html" 
-("Feature Licenses"). Abouts and Feature Licenses may be located in any 
-directory of a Download or Module including, but not limited to the following 
-locations:</P>
-<UL>
-  <LI>The top-level (root) directory 
-  <LI>Plug-in and Fragment directories 
-  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
-  <LI>Feature directories </LI></UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is installed 
-using the Eclipse Update Manager, you must agree to a license ("Feature Update 
-License") during the installation process. If the Feature contains Included 
-Features, the Feature Update License should either provide you with the terms 
-and conditions governing the Included Features or inform you where you can 
-locate them. Feature Update Licenses may be found in the "license" property of 
-files named "feature.properties". Such Abouts, Feature Licenses and Feature 
-Update Licenses contain the terms and conditions (or references to such terms 
-and conditions) that govern your use of the associated Content in that 
-directory.</P>
-<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL 
-OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE 
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P>
-<UL>
-  <LI>Common Public License Version 1.0 (available at <A 
-  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) 
-
-  <LI>Apache Software License 1.1 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) 
-
-  <LI>Apache Software License 2.0 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) 
-
-  <LI>IBM Public License 1.0 (available at <A 
-  href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>) 
-
-  <LI>Metro Link Public License 1.00 (available at <A 
-  href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) 
-
-  <LI>Mozilla Public License Version 1.1 (available at <A 
-  href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) 
-  </LI></UL>
-<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR 
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is 
-provided, please contact the Eclipse Foundation to determine what terms and 
-conditions govern that particular Content.</P>
-<H3>Cryptography</H3>
-<P>Content may contain encryption software. The country in which you are 
-currently may have restrictions on the import, possession, and use, and/or 
-re-export to another country, of encryption software. BEFORE using any 
-encryption software, please check the country's laws, regulations and policies 
-concerning the import, possession, or use, and re-export of encryption software, 
-to see if this is permitted.</P></BODY></HTML>