This commit was manufactured by cvs2svn to create tag 'v20041230_0535'.
diff --git a/bundles/org.eclipse.wst.dtd.core/.classpath b/bundles/org.eclipse.wst.dtd.core/.classpath
deleted file mode 100644
index df094ee..0000000
--- a/bundles/org.eclipse.wst.dtd.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.wst.dtd.core/.compatibility b/bundles/org.eclipse.wst.dtd.core/.compatibility
deleted file mode 100644
index d77886b..0000000
--- a/bundles/org.eclipse.wst.dtd.core/.compatibility
+++ /dev/null
@@ -1,2 +0,0 @@
-#Wed Mar 24 13:53:52 EST 2004

-.project=54098

diff --git a/bundles/org.eclipse.wst.dtd.core/.cvsignore b/bundles/org.eclipse.wst.dtd.core/.cvsignore
deleted file mode 100644
index db54fd1..0000000
--- a/bundles/org.eclipse.wst.dtd.core/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin
-dtdmodel.jar
-build.xml
-temp.folder
-org.eclipse.wst.dtd.core_1.0.0.jar
diff --git a/bundles/org.eclipse.wst.dtd.core/.project b/bundles/org.eclipse.wst.dtd.core/.project
deleted file mode 100644
index 76249e5..0000000
--- a/bundles/org.eclipse.wst.dtd.core/.project
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.dtd.core</name>
-	<comment></comment>
-	<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.dtd.core/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.dtd.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 69a289f..0000000
--- a/bundles/org.eclipse.wst.dtd.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,69 +0,0 @@
-#Thu Dec 16 07:39:20 EST 2004

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

-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled

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

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

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

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

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

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

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

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

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

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

-org.eclipse.jdt.core.builder.invalidClasspath=abort

-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch

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

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

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

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

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

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

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

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

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

-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve

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

-org.eclipse.jdt.core.compiler.compliance=1.4

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

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

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

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

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

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

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

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

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

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

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

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

-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2

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

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

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

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

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

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

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

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

-eclipse.preferences.version=1

-org.eclipse.jdt.core.circularClasspath=error

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

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

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

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

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

-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled

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

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

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

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

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

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

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

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

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

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

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

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

diff --git a/bundles/org.eclipse.wst.dtd.core/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.wst.dtd.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index fe8b7cb..0000000
--- a/bundles/org.eclipse.wst.dtd.core/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Thu Dec 16 07:40:58 EST 2004

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

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

-compilers.p.unknown-element=0

-compilers.p.unknown-resource=0

-compilers.p.unknown-class=0

-compilers.p.unknown-attribute=0

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

-eclipse.preferences.version=1

-compilers.p.unresolved-import=0

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

-compilers.use-project=true

diff --git a/bundles/org.eclipse.wst.dtd.core/README.txt b/bundles/org.eclipse.wst.dtd.core/README.txt
deleted file mode 100644
index 5b71e3e..0000000
--- a/bundles/org.eclipse.wst.dtd.core/README.txt
+++ /dev/null
@@ -1 +0,0 @@
-This plugin extends the core model to implement a dtd specific model.
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.dtd.core/build.properties b/bundles/org.eclipse.wst.dtd.core/build.properties
deleted file mode 100644
index 8267abc..0000000
--- a/bundles/org.eclipse.wst.dtd.core/build.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-#     Jens Lukowski/Innoopract - initial renaming/restructuring
-#     
-###############################################################################
-bin.includes = plugin.xml,\
-               *.jar,\
-               dtd.jar,\
-               plugin.properties,\
-               icons/
-src.includes = plugin.xml,\
-               plugin.properties,\
-               build.xml,\
-               icons/
-source.dtdmodel.jar = src/
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/DTDFile.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/DTDFile.gif
deleted file mode 100644
index 64ee536..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/DTDFile.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/any.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/any.gif
deleted file mode 100644
index 7017d91..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/any.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/attribute.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/attribute.gif
deleted file mode 100644
index 00bb7b4..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/attribute.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/attribute_list.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/attribute_list.gif
deleted file mode 100644
index 795eb5e..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/attribute_list.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/comment.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/comment.gif
deleted file mode 100644
index 28c2ccb..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/comment.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/element.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/element.gif
deleted file mode 100644
index 01f4889..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/element.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/element_ref.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/element_ref.gif
deleted file mode 100644
index 749acfc..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/element_ref.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/emptycontent.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/emptycontent.gif
deleted file mode 100644
index bc8e66c..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/emptycontent.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/entity.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/entity.gif
deleted file mode 100644
index 6a91888..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/entity.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/entity_reference.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/entity_reference.gif
deleted file mode 100644
index d30b26b..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/entity_reference.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/fldr_el.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/fldr_el.gif
deleted file mode 100644
index 801c133..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/fldr_el.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/fldr_ent.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/fldr_ent.gif
deleted file mode 100644
index 2fb2ca7..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/fldr_ent.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/fldr_not.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/fldr_not.gif
deleted file mode 100644
index 5909668..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/fldr_not.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/fldr_unrec.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/fldr_unrec.gif
deleted file mode 100644
index 6fd82e6..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/fldr_unrec.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/folder_attlist_obj.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/folder_attlist_obj.gif
deleted file mode 100644
index f849c75..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/folder_attlist_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/folder_comments_obj.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/folder_comments_obj.gif
deleted file mode 100644
index c9f0945..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/folder_comments_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/genhtmform_wiz.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/genhtmform_wiz.gif
deleted file mode 100644
index 5f54702..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/genhtmform_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/newdtd_wiz.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/newdtd_wiz.gif
deleted file mode 100644
index 2c115ff..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/newdtd_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/notation.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/notation.gif
deleted file mode 100644
index ce9df98..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/notation.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/one.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/one.gif
deleted file mode 100644
index 694c26f..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/one.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/onechoice.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/onechoice.gif
deleted file mode 100644
index d13ba2e..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/onechoice.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/oneormore.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/oneormore.gif
deleted file mode 100644
index 8b2b357..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/oneormore.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/oneormorechoice.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/oneormorechoice.gif
deleted file mode 100644
index 96398c0..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/oneormorechoice.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/oneormoresequence.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/oneormoresequence.gif
deleted file mode 100644
index 041db27..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/oneormoresequence.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/onesequence.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/onesequence.gif
deleted file mode 100644
index 5f9658e..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/onesequence.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/optional.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/optional.gif
deleted file mode 100644
index e7422d7..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/optional.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/optionalchoice.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/optionalchoice.gif
deleted file mode 100644
index fb4f9bd..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/optionalchoice.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/optionalsequence.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/optionalsequence.gif
deleted file mode 100644
index f8d5289..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/optionalsequence.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/txtext.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/txtext.gif
deleted file mode 100644
index efa7a38..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/txtext.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/unrecognized_content.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/unrecognized_content.gif
deleted file mode 100644
index 358997d..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/unrecognized_content.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/zeroormore.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/zeroormore.gif
deleted file mode 100644
index daf514d..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/zeroormore.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/zeroormorechoice.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/zeroormorechoice.gif
deleted file mode 100644
index a1ac131..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/zeroormorechoice.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/zeroormoresequence.gif b/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/zeroormoresequence.gif
deleted file mode 100644
index 8ed4cb7..0000000
--- a/bundles/org.eclipse.wst.dtd.core/icons/full/obj16/zeroormoresequence.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.dtd.core/plugin.properties b/bundles/org.eclipse.wst.dtd.core/plugin.properties
deleted file mode 100644
index f1fa737..0000000
--- a/bundles/org.eclipse.wst.dtd.core/plugin.properties
+++ /dev/null
@@ -1,127 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-#     Jens Lukowski/Innoopract - initial renaming/restructuring
-#     
-###############################################################################
-! Properties file for component: XML tools SSE DTD Model
-! Packaged for translation in:  xml.zip
-
-!plugin.xml
-providerName=Eclipse.org
-pluginName=Structured Source DTD Model
-nlFeatureName=Structured Source DTD Model NL Support
-
-! Strings for DTDBasicTypeImpl type descriptions
-_UI_NONE_DESC=None
-
-!! NOTE TO TRANSLATOR: Do not translate following text in parentheses on following 10 lines i.e.(CDATA)
-_UI_CHARACTER_DATA_DESC=Character Data (CDATA)
-_UI_IDENTIFIER_DESC=Identifier (ID)
-_UI_ID_REFERENCE_DESC=ID Reference (IDREF)
-_UI_ID_REFERENCES_DESC=ID References (IDREFS)
-_UI_ENTITY_NAME_DESC=Entity Name (ENTITY)
-_UI_ENTITY_NAMES_DESC=Entity Names (ENTITIES)
-_UI_NAME_TOKEN_DESC=Name Token (NMTOKEN)
-_UI_NAME_TOKENS_DESC=Name Tokens (NMTOKENS)
-_UI_ENUM_NAME_TOKENS_DESC=Enumerated Name Tokens
-_UI_ENUM_NOTATION_DESC=Enumerated NOTATION
-
-!dtd/util/CreateListItems.java
-_UI_LABEL_NONE=(none)
-
-! Strings from sed/model
-
-! Attribute.java
-_UI_LABEL_ATTR_DEFAULT_VAL=Attribute Default Change Value
-_UI_LABEL_ATTR_DEFAULT_KIND=Change Attribute Default Value
-_UI_LABEL_ATTR_TYPE=Change Attribute Type
-
-! AttributeEnumList
-_UI_LABEL_ATTR_ENUM_ITEMS=Change Attribute Enumeration Value
-
-! AttributeList
-_UI_LABEL_ATTR_LIST_ADD=Add Attribute
-
-! CMGroupNode
-_UI_LABEL_CM_GRP_NODE_CONNECTOR=Change Connector
-_UI_LABEL_CM_GRP_NODE_INSERT_ELEMENT=Insert Element
-_UI_LABEL_CM_GRP_NODE_ADD_GRP=Add Group
-_UI_LABEL_CM_GRP_NODE_ADD_CHILD=Add Child Element
-
-! CMNode
-_UI_LABEL_CM_NODE_MIX_CONTENT=Mixed Content
-_UI_LABEL_CM_NODE_CHILD_CONTENT=Children Content
-_UI_LABEL_CM_NODE_SET_MIX_CONTENT=Set Mixed Content
-_UI_LABEL_CM_NODE_SET_CHILD_CONTENT=Set Children Content
-
-!! NOTE TO TRANSLATOR - USAGE: "Set <variable content> Content"
-_UI_LABEL_CM_NODE_SET=Set
-_UI_LABEL_CM_NODE_CONTENT=Content
-
-!! NOTE TO TRANSLATOR - DO NOT TRANSLATE FOLLOWING 3 LINES
-_UI_LABEL_CM_NODE_PCDATA=(#PCDATA)
-_UI_LABEL_CM_NODE_ANY=ANY
-_UI_LABEL_CM_NODE_EMPTY=EMPTY
-
-! CMRepeatableNode
-_UI_LABEL_CM_REP_NODE_CHG_OCCUR=Change Occurrence
-
-! Comment
-_UI_LABEL_COMMENT_CHG=Comment Change
-
-! DTDFile
-_UI_LABEL_DTD_FILE_ADD_ELEMENT=Add Element
-_UI_LABEL_DTD_FILE_ADD_ENTITY=Add Entity
-_UI_LABEL_DTD_FILE_ADD_COMMENT=Add Comment
-_UI_LABEL_DTD_FILE_ADD_PARM_ENTITY_REF=Add Parameter Entity Reference
-_UI_LABEL_DTD_FILE_ADD_NOTATION=Add Notation
-_UI_LABEL_DTD_FILE_ADD_ATTR_LIST=Add Attribute List
-_UI_LABEL_DTD_FILE_DELETE=Delete
-
-! DTDNode
-_UI_LABEL_DTD_NODE_NAME_CHG=Name Change
-_UI_LABEL_DTD_NODE_DELETE=Delete
-
-! Element
-_UI_LABEL_ELEMENT_ADD_ATTR=Add Attribute
-_UI_LABEL_ELEMENT_ADD_GRP=Add Group
-_UI_LABEL_ELEMENT_ADD_CHILD=Add Child Element
-
-! Entity
-_UI_LABEL_ENTITY_SET_PARM_ENTITY=Set Parameter Entity
-_UI_LABEL_ENTITY_SET_GENERAL_ENTITY=Set General Entity
-_UI_LABEL_ENTITY_SET_EXT_ENTITY=Set External Entity
-_UI_LABEL_ENTITY_SET_INT_ENTITY=Set Internal Entity
-_UI_LABEL_ENTITY_VALUE_CHG=Entity Value Change
-
-!! NOTE TO TRANSLATOR - USAGE: "NDATA Change"
-_UI_LABEL_ENTITY_NDATA_CHANGE=Change
-
-! ExternalNode
-_UI_LABEL_EXT_NODE_PUBLIC_ID_CHG=Public ID Change
-_UI_LABEL_EXT_NODE_SYSTEM_ID_CHG=System ID Change
-
-! NodeList
-_UI_LABEL_NODE_LIST_ELEMENTS=Elements
-_UI_LABEL_NODE_LIST_ENTITIES=Entities
-_UI_LABEL_NODE_LIST_NOTATIONS=Notations
-_UI_LABEL_NODE_LIST_COMMENTS=Comments
-_UI_LABEL_NODE_LIST_OTHER=Other
-_UI_LABEL_NODE_LIST_ATTRIBUTES=Attributes
-
-! ParameterEntityReference
-_UI_LABEL_PARM_ENTITY_REF_CHG_ENTITY_REF=Change Entity Reference
-_UI_LABEL_PARM_ENTITY_REF_COMMENT_CHG=Comment Change
-
-! TopLevelNode
-_UI_LABEL_TOP_LEVEL_NODE_DELETE=Delete
-#
-Structured_DTD_Document_Factory_Extension.name=Structured DTD Document Factory Extension
-DTD_Content_Type_Extension_Element.name=DTD Content Type
diff --git a/bundles/org.eclipse.wst.dtd.core/plugin.xml b/bundles/org.eclipse.wst.dtd.core/plugin.xml
deleted file mode 100644
index 711b572..0000000
--- a/bundles/org.eclipse.wst.dtd.core/plugin.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-	id="org.eclipse.wst.dtd.core"
-	name="%pluginName"
-	version="1.0.0"
-	provider-name="%providerName"
-	class="org.eclipse.wst.dtd.core.internal.DTDCorePlugin">
-
-	<runtime>
-		<library name="dtdmodel.jar">
-			<export name="*" />
-		</library>
-	</runtime>
-	<requires>
-		<import plugin="org.eclipse.ui.ide" />
-		<import plugin="org.eclipse.ui.views" />
-		<import plugin="org.eclipse.jface.text" />
-		<import plugin="org.eclipse.ui.workbench.texteditor" />
-		<import plugin="org.eclipse.ui.editors" />
-		<import plugin="org.eclipse.wst.common.encoding" />
-		<import plugin="org.eclipse.wst.sse.core" />
-		<import plugin="org.eclipse.wst.xml.core" />
-		<import plugin="org.eclipse.core.resources" />
-		<import plugin="org.eclipse.core.runtime" />
-		<import plugin="org.eclipse.ui" />
-	</requires>
-
-
-	<extension point="org.eclipse.wst.sse.core.modelHandler">
-		<modelHandler
-			class="org.eclipse.wst.dtd.core.modelhandler.ModelHandlerForDTD"
-			associatedContentTypeId="org.eclipse.wst.dtd.core.dtdsource"
-			id="org.eclipse.wst.dtd.core.modelhandler">
-		</modelHandler>
-	</extension>
-	<extension
-		point="org.eclipse.wst.sse.core.builderdelegate"
-		id="org.eclipse.wst.dtd.core.builderdelegate.todo">
-		<participant
-			class="org.eclipse.wst.dtd.core.builder.delegates.DTDTaskTagSeeker"
-			contentType="org.eclipse.wst.dtd.core.dtdsource"
-		/>
-	</extension>
-
-   <extension point="org.eclipse.core.filebuffers.documentCreation"
-         id="org.eclipse.wst.dtd.core.documentfactories"
-         name="%Structured_DTD_Document_Factory_Extension.name">
-      <factory
-            contentTypeId="org.eclipse.wst.dtd.core.dtdsource"
-            class="org.eclipse.wst.sse.core.filebuffers.BasicStructuredDocumentFactory"/>
-   </extension>
-
-	<extension point="org.eclipse.team.core.fileTypes">
-		<fileTypes
-			type="text"
-			extension="dtd" />
-		<fileTypes
-			type="text"
-			extension="mod" />
-		<fileTypes
-			type="text"
-			extension="ent" />
-	</extension>
-	
-	   <extension
-         point="org.eclipse.core.runtime.contentTypes">
-         <content-type
-               file-extensions="dtd,mod,ent"
-               priority="normal"
-               name="%DTD_Content_Type_Extension_Element.name"
-               id="dtdsource"
-               base-type="org.eclipse.core.runtime.text"
-			   default-charset="UTF-8">
-			<describer class="org.eclipse.wst.dtd.core.content.ContentDescriberForDTD"/>
-		</content-type>
-   </extension>
-	
-	
-</plugin>
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Attribute.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Attribute.java
deleted file mode 100644
index 3054337..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Attribute.java
+++ /dev/null
@@ -1,370 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import java.util.Hashtable;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.dtd.core.internal.text.RegionIterator;
-import org.eclipse.wst.dtd.core.parser.DTDRegionTypes;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-
-// base class for an Element's contentmodel
-public class Attribute extends DTDNode {
-
-	public static final String CDATA = DTDCorePlugin.getDTDString("_UI_CHARACTER_DATA_DESC"); //$NON-NLS-1$
-	public static final String ENTITIES = DTDCorePlugin.getDTDString("_UI_ENTITY_NAMES_DESC"); //$NON-NLS-1$
-	public static final String ENTITY = DTDCorePlugin.getDTDString("_UI_ENTITY_NAME_DESC"); //$NON-NLS-1$
-	public static final String ENUMERATED_NAME = DTDCorePlugin.getDTDString("_UI_ENUM_NAME_TOKENS_DESC"); //$NON-NLS-1$
-	public static final String ENUMERATED_NOTATION = DTDCorePlugin.getDTDString("_UI_ENUM_NOTATION_DESC"); //$NON-NLS-1$
-	public static final String FIXED = "#FIXED"; //$NON-NLS-1$
-	public static final String ID = DTDCorePlugin.getDTDString("_UI_IDENTIFIER_DESC"); //$NON-NLS-1$
-	public static final String IDREF = DTDCorePlugin.getDTDString("_UI_ID_REFERENCE_DESC"); //$NON-NLS-1$
-	public static final String IDREFS = DTDCorePlugin.getDTDString("_UI_ID_REFERENCES_DESC"); //$NON-NLS-1$
-
-	public static final String IMPLIED = "#IMPLIED"; //$NON-NLS-1$
-	public static final String NMTOKEN = DTDCorePlugin.getDTDString("_UI_NAME_TOKEN_DESC"); //$NON-NLS-1$
-	public static final String NMTOKENS = DTDCorePlugin.getDTDString("_UI_NAME_TOKENS_DESC"); //$NON-NLS-1$
-	public static final String REQUIRED = "#REQUIRED"; //$NON-NLS-1$
-
-	protected static Hashtable typeHash = new Hashtable();
-
-	public static final String[] types = {CDATA, ID, IDREF, IDREFS, ENTITY, ENTITIES, NMTOKEN, NMTOKENS, ENUMERATED_NAME, ENUMERATED_NOTATION};
-
-	{
-		typeHash.put(DTDRegionTypes.CDATA_KEYWORD, CDATA);
-		typeHash.put(DTDRegionTypes.ID_KEYWORD, ID);
-		typeHash.put(DTDRegionTypes.IDREF_KEYWORD, IDREF);
-		typeHash.put(DTDRegionTypes.IDREFS_KEYWORD, IDREFS);
-		typeHash.put(DTDRegionTypes.ENTITY_KEYWORD, ENTITY);
-		typeHash.put(DTDRegionTypes.ENTITIES_KEYWORD, ENTITIES);
-		typeHash.put(DTDRegionTypes.NMTOKEN_KEYWORD, NMTOKEN);
-		typeHash.put(DTDRegionTypes.NMTOKENS_KEYWORD, NMTOKENS);
-		typeHash.put(DTDRegionTypes.NOTATION_KEYWORD, ENUMERATED_NOTATION);
-		// this one's a special case since there is no keyword for
-		// enumerated name tokens
-		typeHash.put("()", ENUMERATED_NAME); //$NON-NLS-1$
-
-		// now put the reverse in place. This gives us a 2 way lookup
-		// for when we want to retrieve the value and when we want to set it
-		typeHash.put(CDATA, "CDATA"); //$NON-NLS-1$
-		typeHash.put(ID, "ID"); //$NON-NLS-1$
-		typeHash.put(IDREF, "IDREF"); //$NON-NLS-1$
-		typeHash.put(IDREFS, "IDREFS"); //$NON-NLS-1$
-		typeHash.put(ENTITY, "ENTITY"); //$NON-NLS-1$
-		typeHash.put(ENTITIES, "ENTITIES"); //$NON-NLS-1$
-		typeHash.put(NMTOKEN, "NMTOKEN"); //$NON-NLS-1$
-		typeHash.put(NMTOKENS, "NMTOKENS"); //$NON-NLS-1$
-		typeHash.put(ENUMERATED_NAME, ""); //$NON-NLS-1$
-		typeHash.put(ENUMERATED_NOTATION, "NOTATION"); //$NON-NLS-1$
-	}
-
-	private AttributeEnumList enumList = null;
-
-	//  public static final String IMPLIED = "IMPLIED";
-
-	public Attribute(DTDFile file, IStructuredDocumentRegion flatNode) {
-		super(file, flatNode);
-	}
-
-	public String getDefaultKind() {
-		ITextRegion defaultKindRegion = getDefaultKindRegion();
-		if (defaultKindRegion != null) {
-			return getStructuredDTDDocumentRegion().getText(defaultKindRegion);
-		}
-
-		return ""; //$NON-NLS-1$
-	}
-
-	public ITextRegion getDefaultKindRegion() {
-		RegionIterator iter = iterator();
-		while (iter.hasNext()) {
-			ITextRegion region = iter.next();
-			if (region.getType() == DTDRegionTypes.IMPLIED_KEYWORD || region.getType() == DTDRegionTypes.REQUIRED_KEYWORD || region.getType() == DTDRegionTypes.FIXED_KEYWORD) {
-				return region;
-			}
-		}
-		return null;
-	}
-
-	public String getDefaultValue() {
-		ITextRegion defaultValue = getNextQuotedLiteral(iterator());
-		if (defaultValue != null) {
-			return getValueFromQuotedRegion(defaultValue);
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	public AttributeEnumList getEnumList() {
-		return enumList;
-	}
-
-	public Image getImage() {
-		return DTDCorePlugin.getInstance().getImage(DTDResource.ATTRIBUTEICON);
-	}
-
-	public ITextRegion getNameRegion() {
-		return getNextRegion(iterator(), DTDRegionTypes.ATTRIBUTE_NAME);
-	}
-
-	public ITextRegion getNextQuotedLiteral(RegionIterator iter) {
-		while (iter.hasNext()) {
-			ITextRegion region = iter.next();
-			if (region.getType().equals(DTDRegionTypes.SINGLEQUOTED_LITERAL) || region.getType().equals(DTDRegionTypes.DOUBLEQUOTED_LITERAL)) {
-				return region;
-			}
-		}
-		return null;
-	}
-
-	protected int getOffsetAfterType() {
-		ITextRegion typeRegion = getTypeRegion();
-
-		String type = getType();
-		boolean isEnumeration = type.equals(ENUMERATED_NAME) || type.equals(ENUMERATED_NOTATION);
-		if (isEnumeration) {
-			// now check if maybe this is an enumeration
-			if (getEnumList() != null) {
-				return getEnumList().getEndOffset();
-			}
-		}
-		if (typeRegion != null) {
-			return getStructuredDTDDocumentRegion().getEndOffset(typeRegion);
-		} else {
-			ITextRegion nameRegion = getNameRegion();
-			return getStructuredDTDDocumentRegion().getEndOffset(nameRegion);
-			//        // create one
-			//        typeRegion =
-			// findOrCreateTypeRegion((String)typeHash.get(CDATA));
-		}
-	}
-
-	public String getType() {
-		ITextRegion region = getTypeRegion();
-		if (region != null) {
-			String type = (String) typeHash.get(region.getType());
-			if (type == null) {
-				// just return the text of the type region since this may be
-				// an entity representing the type;
-				return getStructuredDTDDocumentRegion().getText(region);
-			}
-			return type;
-		} else if (getEnumList() != null) {
-			// enumerated name tokens don't have a type keyword. just
-			// the existence of the left paren is enough
-			return (String) typeHash.get("()"); //$NON-NLS-1$
-		}
-
-		return ""; //$NON-NLS-1$
-	}
-
-	public ITextRegion getTypeRegion() {
-		RegionIterator iter = iterator();
-
-		while (iter.hasNext()) {
-			ITextRegion region = iter.next();
-			if (region.getType() == DTDRegionTypes.CDATA_KEYWORD || region.getType() == DTDRegionTypes.ID_KEYWORD || region.getType() == DTDRegionTypes.IDREF_KEYWORD || region.getType() == DTDRegionTypes.IDREFS_KEYWORD || region.getType() == DTDRegionTypes.ENTITY_KEYWORD || region.getType() == DTDRegionTypes.ENTITIES_KEYWORD || region.getType() == DTDRegionTypes.NMTOKEN_KEYWORD || region.getType() == DTDRegionTypes.NMTOKENS_KEYWORD || region.getType() == DTDRegionTypes.NOTATION_KEYWORD || region.getType() == DTDRegionTypes.PARM_ENTITY_TYPE) {
-				return region;
-			}
-		}
-		return null;
-	}
-
-	public String getValueFromQuotedRegion(ITextRegion region) {
-		String type = region.getType();
-		if (type.equals(DTDRegionTypes.SINGLEQUOTED_LITERAL) || type.equals(DTDRegionTypes.DOUBLEQUOTED_LITERAL)) {
-			String text = getStructuredDTDDocumentRegion().getText(region);
-			return text.substring(1, text.length() - 1);
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	public void resolveRegions() {
-		removeChildNodes();
-		RegionIterator iter = iterator();
-
-		while (iter.hasNext()) {
-			ITextRegion currentRegion = iter.next();
-			if (currentRegion.getType().equals(DTDRegionTypes.LEFT_PAREN)) {
-				enumList = new AttributeEnumList(getDTDFile(), getStructuredDTDDocumentRegion());
-			}
-			if (enumList != null) {
-				enumList.addRegion(currentRegion);
-				if (currentRegion.getType() == DTDRegionTypes.RIGHT_PAREN) {
-					return;
-				}
-			}
-		}
-
-	}
-
-	public void setDefaultKind(Object requestor, String kind) {
-
-		ITextRegion defaultKindRegion = getDefaultKindRegion();
-		String oldDefaultKind = defaultKindRegion == null ? "" : getStructuredDTDDocumentRegion().getText(defaultKindRegion); //$NON-NLS-1$
-		if (!kind.equals(oldDefaultKind)) {
-			String newText = kind;
-			int startOffset = 0;
-			int length = 0;
-			if (defaultKindRegion != null) {
-				startOffset = getStructuredDTDDocumentRegion().getStartOffset(defaultKindRegion);
-				length = getStructuredDTDDocumentRegion().getEndOffset(defaultKindRegion) - startOffset;
-			} else {
-				startOffset = getOffsetAfterType();
-				newText = " " + newText; //$NON-NLS-1$
-			}
-
-			ITextRegion defaultValue = getNextQuotedLiteral(iterator());
-
-			if (kind.equals(Attribute.FIXED) || kind.equals("")) { //$NON-NLS-1$
-				if (defaultValue == null) {
-					// we are changing to fixed and wehave no quoted region.
-					// put in an empty value
-					newText += " \"\""; //$NON-NLS-1$
-				}
-			} else {
-				if (defaultValue != null) {
-					length = getStructuredDTDDocumentRegion().getEndOffset(defaultValue) - startOffset;
-				}
-			}
-			replaceText(requestor, startOffset, length, newText);
-			// do something if there is no "kind" region
-		}
-	}
-
-	public void setDefaultKind(String kind) {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_ATTR_DEFAULT_KIND")); //$NON-NLS-1$
-		setDefaultKind(this, kind);
-		endRecording(this);
-	}
-
-	public void setDefaultValue(Object requestor, String value, boolean fixed) {
-		ITextRegion defaultValue = getNextQuotedLiteral(iterator());
-		String quoteChar = value.indexOf("\"") == -1 ? "\"" : "'"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		int startOffset = 0;
-		int endOffset = 0;
-		String newText = ""; //$NON-NLS-1$
-
-		String oldValue = getDefaultValue();
-		boolean oldKindIsFixed = getDefaultKind().equals(Attribute.FIXED);
-		if (oldValue.equals(value) && fixed == oldKindIsFixed) {
-			// nothing to do
-			return;
-		}
-
-		if (defaultValue != null) {
-			startOffset = getStructuredDTDDocumentRegion().getStartOffset(defaultValue);
-			endOffset = getStructuredDTDDocumentRegion().getEndOffset(defaultValue);
-		}
-
-		ITextRegion defaultKindRegion = getDefaultKindRegion();
-		if (defaultKindRegion != null) {
-			startOffset = getStructuredDTDDocumentRegion().getStartOffset(defaultKindRegion);
-			endOffset = endOffset == 0 ? getStructuredDTDDocumentRegion().getEndOffset(defaultKindRegion) : endOffset;
-		} else {
-			if (startOffset == 0) {
-				endOffset = startOffset = getOffsetAfterType();
-				newText += " "; //$NON-NLS-1$
-			}
-			ITextRegion typeRegion = getTypeRegion();
-			if (typeRegion == null && getEnumList() == null) {
-				// tack on a default type
-				//        newText += "CDATA ";
-			}
-		}
-		if (fixed) {
-			newText += "#FIXED "; //$NON-NLS-1$
-		} else {
-			if (getDefaultKind().equals("") && value.equals("")) { //$NON-NLS-1$ //$NON-NLS-2$
-				// if not fixed and value is "" then reset the default kind to
-				// implied
-				newText += "#IMPLIED"; //$NON-NLS-1$
-			}
-		}
-
-		if (!getType().equals("") && !value.equals("")) { //$NON-NLS-1$ //$NON-NLS-2$
-			newText += quoteChar + value + quoteChar;
-		}
-		replaceText(requestor, startOffset, endOffset - startOffset, newText);
-	}
-
-	public void setDefaultValue(String value, boolean fixed) {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_ATTR_DEFAULT_VAL")); //$NON-NLS-1$
-		setDefaultValue(this, value, fixed);
-		endRecording(this);
-	}
-
-	public void setType(Object requestor, String type) {
-		String oldType = getType();
-		if (!type.equals(oldType)) {
-			boolean wasEnumeration = oldType.equals(ENUMERATED_NAME) || oldType.equals(ENUMERATED_NOTATION);
-			boolean isEnumeration = type.equals(ENUMERATED_NAME) || type.equals(ENUMERATED_NOTATION);
-			String newText = ""; //$NON-NLS-1$
-			int startOffset = 0;
-			int endOffset = 0;
-
-			if (wasEnumeration && !isEnumeration) {
-				// get rid of the old enumlist
-				AttributeEnumList enumList = getEnumList();
-				if (enumList != null) {
-					startOffset = enumList.getStartOffset();
-					endOffset = enumList.getEndOffset();
-				}
-			}
-
-			ITextRegion region = getTypeRegion();
-			if (region != null) {
-				startOffset = getStructuredDTDDocumentRegion().getStartOffset(region);
-				if (endOffset == 0) {
-					endOffset = getStructuredDTDDocumentRegion().getEndOffset(region);
-				}
-			} else if (startOffset == 0) {
-				ITextRegion nameRegion = getNameRegion();
-				newText += " "; //$NON-NLS-1$
-				endOffset = startOffset = getStructuredDTDDocumentRegion().getEndOffset(nameRegion);
-			}
-
-			String newTypeWord = (String) typeHash.get(type);
-			if (newTypeWord == null) {
-				// then this must be a parm entity being used in the type
-				// use the type text directly
-				newTypeWord = type;
-			}
-
-			newText += newTypeWord;
-
-			if (isEnumeration && !wasEnumeration) {
-				// put in a new numlist
-				boolean isSpaceNeeded = !type.equals(ENUMERATED_NAME);
-				newText += isSpaceNeeded ? " " : ""; //$NON-NLS-1$ //$NON-NLS-2$
-				newText += "()"; //$NON-NLS-1$
-			}
-			replaceText(requestor, startOffset, endOffset - startOffset, newText);
-			if (newTypeWord.equals("") && !type.equals(ENUMERATED_NAME)) { //$NON-NLS-1$
-				// the set the defaultkind to ""
-				//        setDefaultKind(requestor, "");
-				setDefaultValue(requestor, "", false); //$NON-NLS-1$
-			}
-
-		}
-	}
-
-	public void setType(String type) {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_ATTR_TYPE")); //$NON-NLS-1$
-		setType(this, type);
-		endRecording(this);
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/AttributeEnumList.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/AttributeEnumList.java
deleted file mode 100644
index b021f7a..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/AttributeEnumList.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.dtd.core.internal.text.RegionIterator;
-import org.eclipse.wst.dtd.core.parser.DTDRegionTypes;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-
-public class AttributeEnumList extends DTDNode {
-
-	private ArrayList list = new ArrayList();
-
-	public AttributeEnumList(DTDFile file, IStructuredDocumentRegion flatNode) {
-		super(file, flatNode);
-	}
-
-	public Image getImage() {
-		// never exposed in tree
-		return null;
-	}
-
-	// return the items that are in this enumerated list
-	public List getItems() {
-		list.clear();
-		RegionIterator iter = iterator();
-		while (iter.hasNext()) {
-			ITextRegion name = getNextRegion(iter, DTDRegionTypes.NAME);
-			if (name != null) {
-				list.add(getStructuredDTDDocumentRegion().getText(name));
-			}
-		}
-		return list;
-	}
-
-	public void setItems(Object requestor, String[] items) {
-		if (items != null) {
-			String text = "("; //$NON-NLS-1$
-			for (int i = 0; i < items.length; i++) {
-				if (i > 0) {
-					text += " | " + items[i]; //$NON-NLS-1$
-				} else {
-					text += items[i];
-				}
-			}
-			text += ")"; //$NON-NLS-1$
-			replaceText(requestor, getStartOffset(), getNodeLength(), text);
-		}
-	}
-
-	public void setItems(String[] items) {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_ATTR_ENUM_ITEMS")); //$NON-NLS-1$
-		setItems(this, items);
-		endRecording(this);
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/AttributeList.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/AttributeList.java
deleted file mode 100644
index a9ede05..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/AttributeList.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import java.util.ArrayList;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.dtd.core.internal.text.RegionIterator;
-import org.eclipse.wst.dtd.core.parser.DTDRegionTypes;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-
-public class AttributeList extends NamedTopLevelNode {
-	public AttributeList(DTDFile file, IStructuredDocumentRegion flatNode) {
-		super(file, flatNode, DTDRegionTypes.ATTLIST_TAG);
-	}
-
-	public void addAttribute(String name) {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_ATTR_LIST_ADD")); //$NON-NLS-1$
-
-		DTDNode lastAttribute = (DTDNode) getLastChild();
-		if (lastAttribute != null) {
-			replaceText(this, lastAttribute.getEndOffset(), 0, "\n\t" + name + " CDATA #IMPLIED"); //$NON-NLS-1$ //$NON-NLS-2$
-		} else {
-			ITextRegion nameRegion = getNameRegion();
-			if (nameRegion != null) {
-				replaceText(this, getStructuredDTDDocumentRegion().getEndOffset(nameRegion), 0, "\n\t" + name + " CDATA #IMPLIED"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-
-		}
-
-		endRecording(this);
-	}
-
-	public Image getImage() {
-		return DTDCorePlugin.getInstance().getImage(DTDResource.ATTRIBUTELISTICON);
-	}
-
-	public void insertIntoModel(Object requestor, Attribute reference, Attribute node, boolean isAfter) {
-		int offset = 0;
-		String newText = ""; //$NON-NLS-1$
-		String nodeText = node.getFullNodeText();
-		boolean isLastChild = false;
-		if (!isAfter) {
-			offset = reference.getStartOffset();
-		} else {
-			// try and get next child
-			Attribute attr = (Attribute) reference.getNextSibling();
-			if (attr != null) {
-				offset = attr.getStartOffset();
-			} else {
-				// just use the end offset
-				offset = reference.getWhitespaceEndOffset();
-			}
-		}
-		newText += nodeText;// + (isLastChild ? "\n" : "\n\t");
-		if (!node.hasTrailingWhitespace()) {
-			newText += "\n\t"; //$NON-NLS-1$
-		}
-		replaceText(requestor, offset, 0, newText);
-	}
-
-	public void resolveRegions() {
-		removeChildNodes();
-		RegionIterator iter = iterator();
-
-		if (getNameRegion() != null) {
-			// we skip past the name token is our name
-			skipPastName(iter);
-		}
-
-		ArrayList children = new ArrayList();
-		Attribute attribute = null;
-		boolean trailingWhitespace = false;
-		while (iter.hasNext()) {
-			ITextRegion currentRegion = iter.next();
-			if (currentRegion.getType().equals(DTDRegionTypes.ATTRIBUTE_NAME)) {
-				attribute = new Attribute(getDTDFile(), getStructuredDTDDocumentRegion());
-				children.add(attribute);
-				appendChild(attribute);
-				trailingWhitespace = false;
-			}
-			if (attribute != null && currentRegion.getType() != DTDRegionTypes.END_TAG) {
-				if (!trailingWhitespace) {
-					attribute.addRegion(currentRegion);
-				} else {
-					if (currentRegion.getType() == DTDRegionTypes.WHITESPACE) {
-						attribute.addWhitespaceRegion(currentRegion);
-					}
-				}
-
-				// the following prevents extra whitespace from being picked
-				// up by the attribute
-				if (currentRegion.getType() == DTDRegionTypes.REQUIRED_KEYWORD || currentRegion.getType() == DTDRegionTypes.IMPLIED_KEYWORD || currentRegion.getType() == DTDRegionTypes.SINGLEQUOTED_LITERAL || currentRegion.getType() == DTDRegionTypes.DOUBLEQUOTED_LITERAL) {
-					trailingWhitespace = true;
-				}
-			}
-		}
-		int numKids = children.size();
-		for (int i = 0; i < numKids; i++) {
-			((Attribute) children.get(i)).resolveRegions();
-		} // end of for ()
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/CMBasicNode.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/CMBasicNode.java
deleted file mode 100644
index e5b70f8..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/CMBasicNode.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.dtd.core.internal.text.RegionIterator;
-import org.eclipse.wst.dtd.core.parser.DTDRegionTypes;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-
-/*
- * CMBasicNode combines all the different content types into one. The idea
- * behind this is to allow arbitrary name changes to not require a tree
- * update.
- */
-public class CMBasicNode extends CMRepeatableNode {
-
-	//    static final int EMPTY = 0;
-	//    static final int ANY = 1;
-	//    static final int PCDATA = 2;
-
-	public CMBasicNode(DTDFile file, IStructuredDocumentRegion flatNode) {
-		super(file, flatNode);
-	}
-
-	public Image getImage() {
-		final String name = getName();
-		ITextRegion pcdata = getNextRegion(iterator(), DTDRegionTypes.CONTENT_PCDATA);
-		if (pcdata != null) {
-			return DTDCorePlugin.getInstance().getImage(DTDResource.PCDATAICON);
-		}
-
-		if (isRootElementContent()) {
-			if (name.equals(EMPTY)) {
-				return DTDCorePlugin.getInstance().getImage(DTDResource.EMPTYICON);
-			} else if (name.equals(ANY)) {
-				return DTDCorePlugin.getInstance().getImage(DTDResource.ANYICON);
-			}
-		}
-
-		// Otherwise this is just an element reference node. Just return
-		// what CMRepeatableNode would give us
-		return super.getImage();
-	}
-
-	public ITextRegion getNameRegion() {
-		RegionIterator iter = iterator();
-		while (iter.hasNext()) {
-			ITextRegion region = iter.next();
-			if (region.getType() == DTDRegionTypes.NAME || region.getType() == DTDRegionTypes.CONTENT_PCDATA) {
-				return region;
-			}
-		}
-		return null;
-	}
-
-	// returns the occurrencetoken, or the token where the occurrence token
-	// should appear after
-	public ITextRegion getOccurrenceRegion() {
-		RegionIterator iter = iterator();
-		skipPastName(iter);
-		if (iter.hasNext()) {
-			ITextRegion region = iter.next();
-			if (region.getType() == DTDRegionTypes.OCCUR_TYPE) {
-				return region;
-			}
-		}
-		return getNameRegion();
-	}
-
-	public String getType() {
-		ITextRegion pcdata = getNextRegion(iterator(), DTDRegionTypes.CONTENT_PCDATA);
-		if (pcdata != null) {
-			return PCDATA;
-		}
-
-		if (isRootElementContent()) {
-			final String name = getName();
-			if (isRootElementContent()) {
-				if (name.equals(EMPTY)) {
-					return EMPTY;
-				} else if (name.equals(ANY)) {
-					return ANY;
-				} else {
-					// otherwise just return it's name as the type
-					return name;
-				}
-
-			}
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	public boolean isEmptyAnyOrPCData() {
-		if (isPCData()) {
-			return true;
-		}
-
-
-		final String name = getName();
-		if (isRootElementContent()) {
-			if (name.equals(EMPTY) || name.equals(ANY)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	public boolean isPCData() {
-		ITextRegion pcdata = getNextRegion(iterator(), DTDRegionTypes.CONTENT_PCDATA);
-		if (pcdata != null) {
-			return true;
-		}
-		return false;
-	}
-
-	//    public Node insertRegion(Region token)
-	//    {
-	//      if (!tokenStream.containsToken(token) && token.getType() ==
-	// Token.OCCUR_TYPE)
-	//      {
-	//        // then add it so that our range contains it
-	//        insertIntoTokenStream(token);
-	//      }
-	//      return this;
-	//    }
-
-	public boolean isReference() {
-		return !isEmptyAnyOrPCData();
-	}
-
-	public void setName(Object requestor, String name) {
-		//    beginRecording(requestor, "Name Change");
-
-		super.setName(requestor, name);
-		if (!isReference()) {
-			// if it is no longer a reference node, remove the occurrence
-			// token
-			setOccurrence(requestor, CMRepeatableNode.ONCE);
-		}
-
-		//    endRecording(requestor);
-	}
-
-	/*
-	 * public static String getName(int type) { switch (type) { case EMPTY:
-	 * return emptyString; case ANY: return anyString; case PCDATA: return
-	 * pcdataString; default: break; } // end of switch () return ""; }
-	 */
-
-}// CMBasicNode
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/CMGroupNode.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/CMGroupNode.java
deleted file mode 100644
index 5d90898..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/CMGroupNode.java
+++ /dev/null
@@ -1,425 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import java.util.List;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.dtd.core.internal.text.RegionIterator;
-import org.eclipse.wst.dtd.core.parser.DTDRegionTypes;
-import org.eclipse.wst.dtd.core.util.DTDUniqueNameHelper;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-
-public class CMGroupNode extends CMRepeatableNode {
-
-	public static final char CHOICE = '|';
-	public static final char SEQUENCE = ',';
-
-	protected char connector = SEQUENCE;
-
-	//  protected ArrayList children = new ArrayList();
-
-	public CMGroupNode(DTDFile file, IStructuredDocumentRegion flatNode) {
-		super(file, flatNode);
-	}
-
-	public void addChild() {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_CM_GRP_NODE_ADD_CHILD")); //$NON-NLS-1$
-		DTDNode lastNode = (DTDNode) getLastChild();
-		String elementName = DTDUniqueNameHelper.getUniqueName(getChildrenList(), "ChildNode"); //$NON-NLS-1$
-		if (lastNode != null) {
-			replaceText(this, lastNode.getEndOffset(), 0, String.valueOf(getConnector()) + elementName); //$NON-NLS-1$
-		} else {
-			replaceText(this, getStartOffset() + 1, 0, elementName); //$NON-NLS-1$
-		}
-
-		endRecording(this);
-	}
-
-	public void addGroup() {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_CM_GRP_NODE_ADD_GRP")); //$NON-NLS-1$
-		DTDNode lastNode = (DTDNode) getLastChild();
-		if (lastNode != null) {
-			replaceText(this, lastNode.getEndOffset(), 0, String.valueOf(getConnector()) + " ()"); //$NON-NLS-1$
-		} else {
-			replaceText(this, getStartOffset() + 1, 0, "()"); //$NON-NLS-1$
-		}
-
-		endRecording(this);
-	}
-
-	public void delete(Object requestor, DTDNode child) {
-		Object[] children = getChildren();
-
-		if (children.length == 1 && getFirstChild() == child) {
-			replaceText(requestor, child.getStartOffset(), child.getNodeLength(), null);
-			return;
-		}
-
-		for (int i = 0; i < children.length - 1; i++) {
-			DTDNode childA = (DTDNode) children[i];
-			DTDNode childB = (DTDNode) children[i + 1];
-
-			boolean childADeleted = childA == child;
-			boolean childBDeleted = childB == child;
-			if (childADeleted || childBDeleted) {
-				// we found the child
-				int startOffset = childADeleted ? childA.getStartOffset() : childA.getEndOffset();
-				int endOffset = childADeleted ? childB.getStartOffset() : childB.getEndOffset();
-				replaceText(requestor, startOffset, endOffset - startOffset, ""); //$NON-NLS-1$
-				removeChild(child);
-				break;
-			}
-		}
-	}
-
-	/**
-	 * Get the value of connector.
-	 * 
-	 * @return value of connector.
-	 */
-	public char getConnector() {
-		Object[] children = getChildren();
-		for (int i = 0; i < children.length - 1; i++) {
-			DTDNode childA = (DTDNode) children[i];
-			DTDNode childB = (DTDNode) children[i + 1];
-
-			// create a stream between the two siblings and walk it
-			// note that this stream includes the last region of the first
-			// sibling and the first region of the next sibling.
-			// both these should be ignored
-			RegionIterator iter = new RegionIterator(getStructuredDTDDocumentRegion(), childA.getEndOffset(), childB.getStartOffset());
-			//      stream.setFirstRegion(childA.getLastRegion());
-			//      stream.setLastRegion(childB.getFirstRegion());
-			//      Iterator iter = stream.iterator();
-			// skip the first region which is the last region of childA
-			//do we need this now ?
-			//      iter.next();
-			ITextRegion currentRegion = null;
-			while (iter.hasNext() && currentRegion != childB.getStartRegion()) {
-				currentRegion = iter.next();
-				if (currentRegion.getType() == DTDRegionTypes.CONNECTOR) {
-					connector = getStructuredDTDDocumentRegion().getText(currentRegion).charAt(0);
-					return connector;
-				}
-			}
-		}
-		return connector;
-	}
-
-	public Image getImage() {
-		DTDCorePlugin resourcePlugin = DTDCorePlugin.getInstance();
-		switch (getConnector()) {
-			case SEQUENCE :
-				return resourcePlugin.getImage(DTDResource.ONESEQUENCEICON);
-			/*
-			 * switch (getOccurrence()) { case ONCE : return
-			 * resourcePlugin.getImage(DTDResource.ONESEQUENCEICON); case
-			 * OPTIONAL : return
-			 * resourcePlugin.getImage(DTDResource.OPTIONALSEQUENCEICON); case
-			 * ONE_OR_MORE : return
-			 * resourcePlugin.getImage(DTDResource.ONEORMORESEQUENCEICON);
-			 * case ZERO_OR_MORE : return
-			 * resourcePlugin.getImage(DTDResource.ZEROORMORESEQUENCEICON); }
-			 */
-			case CHOICE :
-				return resourcePlugin.getImage(DTDResource.ONECHOICEICON);
-		/*
-		 * switch (getOccurrence()) { case ONCE : return
-		 * resourcePlugin.getImage(DTDResource.ONECHOICEICON); case OPTIONAL :
-		 * return resourcePlugin.getImage(DTDResource.OPTIONALCHOICEICON);
-		 * case ONE_OR_MORE : return
-		 * resourcePlugin.getImage(DTDResource.ONEORMORECHOICEICON); case
-		 * ZERO_OR_MORE : return
-		 * resourcePlugin.getImage(DTDResource.ZEROORMORECHOICEICON); }
-		 */
-		}
-		return null;
-	}
-
-	public String getName() {
-		return ""; //$NON-NLS-1$
-	}
-
-	// returns the occurrenceregion, or the last region where the occurrence
-	// region should appear after
-	public ITextRegion getOccurrenceRegion() {
-		int nesting = 0;
-
-		// we skip past the first left paren we see since that is the
-		// beginning of our own node
-		RegionIterator iter = iterator();
-		// we assume the first region is the '('
-		iter.next();
-		ITextRegion currentRegion = null;
-		while (iter.hasNext() && nesting >= 0) {
-			currentRegion = iter.next();
-			if (currentRegion.getType() == DTDRegionTypes.LEFT_PAREN) {
-				nesting++;
-			}
-			if (currentRegion.getType() == DTDRegionTypes.RIGHT_PAREN) {
-				nesting--;
-			}
-		}
-		if (nesting < 0) {
-			// This means we have passed over the right paren that marks the
-			// end of our grouping.
-			// Look for an occurrence region
-			while (iter.hasNext()) {
-				currentRegion = iter.next();
-				if (currentRegion.getType() == DTDRegionTypes.OCCUR_TYPE) {
-					return currentRegion;
-				}
-			}
-		}
-		// if we're here, this means that there is no occur region. return the
-		// last region
-		return iter.previous();
-	}
-
-	public String getType() {
-		if (isRootElementContent()) {
-			if (getFirstChild() != null) {
-				CMNode node = (CMNode) getFirstChild();
-				if (node.getType().equals(PCDATA)) {
-					return MIXED;
-				} else {
-					return CHILDREN;
-				}
-			}
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	public void insertChildNode(Object requestor, String nodeText, int position) {
-		Object[] children = getChildren();
-
-		int startOffset = 0;
-		boolean isLastChild = position == children.length;
-		String newText = ""; //$NON-NLS-1$
-		if (position < children.length) {
-			DTDNode reference = (DTDNode) children[position];
-			startOffset = reference.getStartOffset();
-			newText = nodeText + " " + String.valueOf(getConnector()) + " "; //$NON-NLS-1$ //$NON-NLS-2$
-		} else if (position == children.length) {
-			// add to end
-			DTDNode reference = (DTDNode) children[position - 1];
-			startOffset = reference.getEndOffset();
-			newText = " " + String.valueOf(getConnector()) + " " + nodeText; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		replaceText(requestor, startOffset, 0, newText);
-	}
-
-	public void insertChildNode(String nodeText, int position) {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_CM_GRP_NODE_INSERT_ELEMENT")); //$NON-NLS-1$
-		insertChildNode(this, nodeText, position);
-		endRecording(this);
-	}
-
-	public void insertIntoModel(Object requestor, CMNode reference, CMNode node, boolean isAfter) {
-		String nodeText = node.getNodeText();
-		List children = getChildrenList();
-
-		int index = children.indexOf(reference);
-		if (index == -1) {
-			// no reference node, add it to the end??
-			index = children.size();
-		} else {
-			// got an index. if we want to add after, increase by 1
-			index = isAfter ? index + 1 : index;
-		}
-		insertChildNode(requestor, nodeText, index);
-	}
-
-	public void resolveRegions() {
-		int nesting = 0;
-		//    children.clear();
-		removeChildNodes();
-		// we skip past the first left paren we see since that is the
-		// beginning of our own node
-		boolean isConnectorSet = false;
-		DTDNode currentGroupNode = null;
-		CMBasicNode currentReferenceNode = null;
-		RegionIterator iter = iterator();
-		// we assume the first region is the '('
-		iter.next();
-		while (iter.hasNext() && nesting >= 0) {
-			ITextRegion currentRegion = iter.next();
-			if (nesting == 0) {
-				if (currentRegion.getType().equals(DTDRegionTypes.CONTENT_PCDATA)) {
-					currentGroupNode = currentReferenceNode = null;
-					DTDNode pcData = new CMBasicNode(getDTDFile(), getStructuredDTDDocumentRegion());
-					pcData.addRegion(currentRegion);
-					appendChild(pcData);
-					//          children.add(pcData);
-				} else if (currentRegion.getType().equals(DTDRegionTypes.NAME)) {
-					// we have hit a new reference node. Make sure we reset
-					// the groupnode var so it doesn't collect more regions
-					currentGroupNode = null;
-					currentReferenceNode = new CMBasicNode(getDTDFile(), getStructuredDTDDocumentRegion());
-					currentReferenceNode.addRegion(currentRegion);
-					appendChild(currentReferenceNode);
-					//          children.add(currentReferenceNode);
-				} else if (currentRegion.getType().equals(DTDRegionTypes.OCCUR_TYPE)) {
-					// we could potentially flag an error here if we hit an
-					// occurrence type and currentRefNode and currentGroupNode
-					// are null
-					if (currentReferenceNode != null) {
-						//           currentReferenceNode.setOccurrence(currentRegion.getText().toCharArray()[0]);
-						currentReferenceNode.addRegion(currentRegion);
-						currentReferenceNode = null;
-					}
-				} else if (currentRegion.getType().equals(DTDRegionTypes.CONNECTOR)) {
-					// note that if connector is already set and it is
-					// different from the current connector region, then we
-					// have an error!
-					//         setConnector(currentRegion.getText().toCharArray()[0]);
-				} else if (currentRegion.getType().equals(DTDRegionTypes.LEFT_PAREN)) {
-					if (currentGroupNode == null) {
-						// we have hit a new group. Make sure we reset the
-						// referencenode var so it doesn't collect any more
-						// regions
-						currentReferenceNode = null;
-						currentGroupNode = new CMGroupNode(getDTDFile(), getStructuredDTDDocumentRegion());
-						appendChild(currentGroupNode);
-						//            children.add(currentGroupNode);
-					}
-				}
-			}
-
-			if (currentRegion.getType().equals(DTDRegionTypes.LEFT_PAREN)) {
-				nesting++;
-			}
-			if (currentRegion.getType().equals(DTDRegionTypes.RIGHT_PAREN)) {
-				nesting--;
-				if (nesting == 0 && currentGroupNode != null) {
-					currentGroupNode.addRegion(currentRegion);
-					// peek at next region to see if it is an occur region. if
-					// so, add it to the groupnode
-					if (iter.hasNext()) {
-						ITextRegion nextRegion = iter.next();
-						if (nextRegion.getType().equals(DTDRegionTypes.OCCUR_TYPE)) {
-							currentGroupNode.addRegion(nextRegion);
-						} else {
-							// Otherwise, push it back as the next item to be
-							// retrieved by a future next() call
-							iter.previous();
-						}
-					}
-					currentGroupNode = null;
-				}
-			}
-			if (currentGroupNode != null) {
-				currentGroupNode.addRegion(currentRegion);
-			}
-		}
-
-		if (nesting < 0) {
-			// This means we have passed over the right paren that marks the
-			// end of our grouping.
-			// Look for an occurrence region
-			while (iter.hasNext()) {
-				ITextRegion currentRegion = iter.next();
-				if (currentRegion.getType().equals(DTDRegionTypes.OCCUR_TYPE)) {
-					//          setOccurrence(currentRegion.getText().toCharArray()[0]);
-				}
-			} // end of while ()
-		}
-
-		//      for (org.w3c.dom.Node child = getFirstChild(); child != null; child
-		// = child.getNextSibling())
-		//      {
-		//        System.out.println("child found = " + child);
-		//      }
-
-		Object[] children = getChildren();
-		//    System.out.println("children legnth = " + children.length);
-
-		for (int i = 0; i < children.length; i++) {
-			DTDNode currentNode = (DTDNode) children[i];
-			currentNode.resolveRegions();
-		} // end of while ()
-
-	}
-
-	/**
-	 * Set the value of connector.
-	 * 
-	 * @param v
-	 *            Value to assign to connector.
-	 */
-	public void setConnector(char v) {
-		if (connector != v) {
-			connector = v;
-			// walk through our kids and see if there is a connector between
-			// each sibling. if not, create one and set the connector. if
-			// there is
-			// then just change the text of the connector
-			Object[] children = getChildren();
-			if (children.length <= 1) {
-				// there won't be any connector existing between the children
-				// just notify a change in the node and return;
-				getDTDFile().notifyNodeChanged(this);
-				return;
-			}
-			beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_CM_GRP_NODE_CONNECTOR")); //$NON-NLS-1$
-			for (int i = 0; i < children.length - 1; i++) {
-				DTDNode childA = (DTDNode) children[i];
-				DTDNode childB = (DTDNode) children[i + 1];
-
-				// create a stream between the two siblings and walk it
-				// note that this stream includes the last region of the first
-				// sibling and the first region of the next sibling.
-				// both these should be ignored
-				RegionIterator iter = new RegionIterator(getStructuredDTDDocumentRegion(), childA.getEndOffset(), childB.getStartOffset());
-				// skip the first region which is the last region of childA
-
-				// do we still need this
-				//        iter.next();
-				ITextRegion currentRegion = null;
-				boolean foundConnector = false;
-				while (iter.hasNext() && currentRegion != childB.getStartRegion()) {
-					currentRegion = iter.next();
-					if (currentRegion.getType() == DTDRegionTypes.CONNECTOR) {
-						foundConnector = true;
-						//            Region oldRegion = currentRegion.createCopy();
-						// found a connector! on to the next sibling pair
-						//            currentRegion.updateText(String.valueOf(v));
-						replaceText(this, getStructuredDTDDocumentRegion().getStartOffset(currentRegion), 1, String.valueOf(connector));
-						//changeStructuredDocument(oldRegion, currentRegion);
-						break;
-					}
-				}
-
-				if (!foundConnector) {
-					//if we're here, that means we need to insert a new
-					// connector region after childA
-					replaceText(this, childA.getEndOffset(), 0, String.valueOf(connector));
-					//          DTDRegion connectorRegion = new
-					// DTDRegion(DTDRegionTypes.CONNECTOR,
-					// childA.getEndOffset(), 1);
-					//          insertIntoStructuredDocument(connectorRegion);
-				}
-			}
-			endRecording(this);
-		}
-	}
-
-	//    public Object[] getChildren()
-	//    {
-	//      return children.toArray();
-	//    }
-}// CMGroupNode
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/CMNode.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/CMNode.java
deleted file mode 100644
index 539dcdf..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/CMNode.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-
-// base class for an Element's contentmodel
-public abstract class CMNode extends DTDNode {
-	public static final String ANY = DTDCorePlugin.getDTDString("_UI_LABEL_CM_NODE_ANY"); //$NON-NLS-1$
-	public static final String CHILDREN = DTDCorePlugin.getDTDString("_UI_LABEL_CM_NODE_CHILD_CONTENT"); //$NON-NLS-1$
-
-	public static final String EMPTY = DTDCorePlugin.getDTDString("_UI_LABEL_CM_NODE_EMPTY"); //$NON-NLS-1$
-	public static final String MIXED = DTDCorePlugin.getDTDString("_UI_LABEL_CM_NODE_MIX_CONTENT"); //$NON-NLS-1$
-	public static final String PCDATA = DTDCorePlugin.getDTDString("_UI_LABEL_CM_NODE_PCDATA"); //$NON-NLS-1$
-
-
-	boolean rootElementContent;
-
-	public CMNode(DTDFile file, IStructuredDocumentRegion flatNode) {
-		super(file, flatNode);
-	}
-
-	// this is only valid to ask if the content is a root element content
-	abstract public String getType();
-
-	/**
-	 * Get the value of rootElementContent. This tells us whether this element
-	 * content's parent is a direct decendent of the containing element
-	 * 
-	 * @return value of rootElementContent.
-	 */
-	public boolean isRootElementContent() {
-		return rootElementContent;
-	}
-
-	// if this is a root element, change the content to children
-	// ie . (child1)
-	public void setChildrenContent(String newChild) {
-		if (isRootElementContent()) {
-			if (!newChild.equals("")) { //$NON-NLS-1$
-				beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_CM_NODE_SET_CHILD_CONTENT")); //$NON-NLS-1$
-				replaceText(this, getStartOffset(), getNodeLength(), "(" + newChild + ")"); //$NON-NLS-1$ //$NON-NLS-2$
-				endRecording(this);
-				return;
-			}
-
-			if (!getType().equals(CHILDREN)) {
-				beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_CM_NODE_SET_CHILD_CONTENT")); //$NON-NLS-1$
-				if (this instanceof CMBasicNode) {
-					replaceText(this, getStartOffset(), getNodeLength(), "(newChild)"); //$NON-NLS-1$
-				} else {
-					// now must convert from mixed content to this one. must
-					// preserve the remaining children
-					CMGroupNode group = (CMGroupNode) this;
-					CMNode firstChild = (CMNode) group.getFirstChild();
-					if (firstChild.getType().equals(PCDATA)) {
-						group.delete(firstChild);
-					}
-				}
-
-				endRecording(this);
-			}
-		}
-	}
-
-	public void setContent(String content) {
-		if (isRootElementContent()) {
-			beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_CM_NODE_SET") + " " + content + " " + DTDCorePlugin.getDTDString("_UI_LABEL_CM_NODE_CONTENT")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			replaceText(this, getStartOffset(), getNodeLength(), content);
-			endRecording(this);
-		}
-	}
-
-	// if this is a root element, change the content to mixed
-	// ie . (#PCDATA, child1)
-	public void setMixedContent() {
-		if (isRootElementContent()) {
-			if (!getType().equals(MIXED)) {
-				beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_CM_NODE_SET_MIX_CONTENT")); //$NON-NLS-1$
-				if (this instanceof CMBasicNode) {
-					replaceText(this, getStartOffset(), getNodeLength(), "(#PCDATA | newChild)*"); //$NON-NLS-1$
-				} else {
-					// now must convert from children content to this one.
-					// must
-					// preserve the children
-					CMGroupNode group = (CMGroupNode) this;
-					group.setConnector(CMGroupNode.CHOICE);
-					group.setOccurrence(CMRepeatableNode.ZERO_OR_MORE);
-					CMNode firstChild = (CMNode) group.getFirstChild();
-					if (!firstChild.getType().equals(PCDATA)) {
-						group.insertChildNode("#PCDATA", 0); //$NON-NLS-1$
-					}
-				}
-				endRecording(this);
-			}
-		}
-	}
-
-	/**
-	 * Set the value of rootElementContent.
-	 * 
-	 * @param v
-	 *            Value to assign to rootElementContent.
-	 */
-	public void setRootElementContent(boolean v) {
-		this.rootElementContent = v;
-	}
-
-	//    public void delete()
-	//    {
-	//      if (isRootElementContent())
-	//      {
-	//        // then the superclasses delete will be fine
-	//        super.delete();
-	//        return;
-	//      }
-
-	//      CMGroupNode parent = (CMGroupNode) getParentNode();
-	//      parent.removeChildNode(this);
-	//    }
-
-
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/CMRepeatableNode.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/CMRepeatableNode.java
deleted file mode 100644
index b9155f4..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/CMRepeatableNode.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.dtd.core.parser.DTDRegionTypes;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-
-public abstract class CMRepeatableNode extends CMNode {
-
-	public static final char ONCE = '1';
-	public static final char ONE_OR_MORE = '+';
-	public static final char OPTIONAL = '?';
-	public static final char ZERO_OR_MORE = '*';
-
-
-	public CMRepeatableNode(DTDFile file, IStructuredDocumentRegion flatNode) {
-		super(file, flatNode);
-	}
-
-	public Image getImage() {
-		DTDCorePlugin resourcePlugin = DTDCorePlugin.getInstance();
-		return resourcePlugin.getImage(DTDResource.ELEMENTREFICON);
-	}
-
-	public char getOccurrence() {
-		ITextRegion occurRegion = getOccurrenceRegion();
-		if (occurRegion != null && occurRegion.getType() == DTDRegionTypes.OCCUR_TYPE) {
-			return getStructuredDTDDocumentRegion().getText(occurRegion).charAt(0);
-		}
-		return CMRepeatableNode.ONCE;
-	}
-
-	// returns the occurrenceregion, or the last region where the occurrence
-	// region should appear after
-	abstract public ITextRegion getOccurrenceRegion();
-
-	public void setOccurrence(char occurrence) {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_CM_REP_NODE_CHG_OCCUR")); //$NON-NLS-1$
-		setOccurrence(this, occurrence);
-		endRecording(this);
-	}
-
-	public void setOccurrence(Object requestor, char occurrence) {
-		if (getOccurrence() != occurrence) {
-			ITextRegion region = getOccurrenceRegion();
-			if (region != null) {
-				if (region.getType().equals(DTDRegionTypes.OCCUR_TYPE)) {
-					if (occurrence == CMRepeatableNode.ONCE) {
-						// we need to remove the occur region from the flat
-						// model;
-						getDTDFile().getStructuredDocument().replaceText(requestor, getStructuredDTDDocumentRegion().getStartOffset(region), 1, ""); //$NON-NLS-1$
-					} else {
-						//            Region oldOccur = region.createCopy();
-						getDTDFile().getStructuredDocument().replaceText(requestor, getStructuredDTDDocumentRegion().getStartOffset(region), 1, String.valueOf(occurrence));
-						//            changeStructuredDocument(oldOccur, region);
-					}
-				} else if (occurrence != CMRepeatableNode.ONCE) {
-					//          System.out.println(getString());
-					// we need to create an occurrenceRegion
-					replaceText(requestor, getStructuredDTDDocumentRegion().getEndOffset(region), 0, String.valueOf(occurrence));
-				}
-			}
-		}
-	}
-
-}// CMRepeatableNode
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Comment.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Comment.java
deleted file mode 100644
index 54f234c..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Comment.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.dtd.core.internal.text.RegionIterator;
-import org.eclipse.wst.dtd.core.parser.DTDRegionTypes;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-
-public class Comment extends NamedTopLevelNode {
-
-	public class StartEndPair {
-		public int startOffset, endOffset;
-	}
-
-	public Comment(DTDFile file, IStructuredDocumentRegion flatNode) {
-		super(file, flatNode, DTDRegionTypes.COMMENT_START);
-	}
-
-	public Image getImage() {
-		return DTDCorePlugin.getInstance().getImage(DTDResource.COMMENTICON);
-	}
-
-	public String getName() {
-		String text = getText();
-		if (text.length() <= 30) {
-			return text;
-		} else {
-			return text.substring(0, 29) + "..."; //$NON-NLS-1$
-		}
-	}
-
-	private void getStartAndEndOffsetForText(StartEndPair pair) {
-		RegionIterator iter = iterator();
-		ITextRegion commentStartTag = getStartTag(iter);
-		ITextRegion endCommentTag = getNextRegion(iter, DTDRegionTypes.COMMENT_END);
-		pair.endOffset = getStructuredDTDDocumentRegion().getEndOffset();
-		if (commentStartTag != null) {
-			pair.startOffset = getStructuredDTDDocumentRegion().getEndOffset(commentStartTag);
-		}
-		if (endCommentTag != null) {
-			pair.endOffset = getStructuredDTDDocumentRegion().getStartOffset(endCommentTag);
-		}
-	}
-
-	public String getText() {
-		String text = getStructuredDTDDocumentRegion().getText();
-		int flatNodeStart = getStructuredDTDDocumentRegion().getStartOffset();
-		StartEndPair pair = new StartEndPair();
-		getStartAndEndOffsetForText(pair);
-		return text.substring(pair.startOffset - flatNodeStart, pair.endOffset - flatNodeStart);
-	}
-
-	public void setText(String newText) {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_COMMENT_CHG")); //$NON-NLS-1$
-		int flatNodeStart = getStructuredDTDDocumentRegion().getStartOffset();
-		StartEndPair pair = new StartEndPair();
-		getStartAndEndOffsetForText(pair);
-		replaceText(this, pair.startOffset, pair.endOffset - pair.startOffset, newText);
-		endRecording(this);
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/DTDFile.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/DTDFile.java
deleted file mode 100644
index 5985ed9..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/DTDFile.java
+++ /dev/null
@@ -1,655 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.dtd.core.document.DTDModelImpl;
-import org.eclipse.wst.dtd.core.event.IDTDFileListener;
-import org.eclipse.wst.dtd.core.event.NodesEvent;
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.dtd.core.parser.DTDRegionTypes;
-import org.eclipse.wst.dtd.core.util.DTDExternalReferenceRemover;
-import org.eclipse.wst.dtd.core.util.DTDModelUpdater;
-import org.eclipse.wst.dtd.core.util.DTDNotationReferenceRemover;
-import org.eclipse.wst.sse.core.IndexedRegion;
-import org.eclipse.wst.sse.core.events.NewDocumentEvent;
-import org.eclipse.wst.sse.core.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.events.RegionsReplacedEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentRegionsReplacedEvent;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegionList;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-
-
-public class DTDFile implements IndexedRegion {
-	protected NodeList attlistList = new NodeList(this, DTDRegionTypes.ATTLIST_TAG);
-	protected NodeList commentList = new NodeList(this, DTDRegionTypes.COMMENT_START);
-
-	boolean creatingNewModel = false;
-	protected DTDModelImpl dtdModel;
-
-	protected NodeList elementList = new NodeList(this, DTDRegionTypes.ELEMENT_TAG);
-	protected NodeList entityList = new NodeList(this, DTDRegionTypes.ENTITY_TAG);
-
-	protected List folderList = null;
-
-	private boolean isMovingNode = false;
-
-	protected List lists = new ArrayList();
-
-	protected List modelListeners = new ArrayList();
-
-	protected List nodeList = new ArrayList();
-	protected NodeList notationList = new NodeList(this, DTDRegionTypes.NOTATION_TAG);
-	protected NodeList unrecognizedList = new NodeList(this, DTDRegionTypes.UNKNOWN_CONTENT);
-
-	public DTDFile(DTDModelImpl dtdModel) {
-		this.dtdModel = dtdModel;
-	}
-
-	public void addDTDFileListener(IDTDFileListener listener) {
-		modelListeners.add(listener);
-	}
-
-	protected void addNode(DTDNode node) {
-		addNode(nodeList.size(), node);
-	}
-
-	protected void addNode(int index, DTDNode node) {
-		nodeList.add(index, node);
-		/*
-		 * if (index < nodeList.size()) { insertBefore(node, (DTDNode)
-		 * nodeList.get(index)); } else { appendChild(node); }
-		 */
-	}
-
-	public DTDNode buildNode(IStructuredDocumentRegion flatNode) {
-		//    ITextRegionList regions = flatNode.getRegions();
-		DTDNode node = null;
-		if (isElement(flatNode)) {
-			// then this is an element
-			node = new Element(this, flatNode);
-		} else if (isEntity(flatNode)) {
-			node = new Entity(this, flatNode);
-		} else if (isNotation(flatNode)) {
-			node = new Notation(this, flatNode);
-		} else if (isAttributeList(flatNode)) {
-			node = new AttributeList(this, flatNode);
-		} else if (isComment(flatNode)) {
-			node = new Comment(this, flatNode);
-		} else if (isParameterEntityReference(flatNode)) {
-			node = new ParameterEntityReference(this, flatNode);
-		} else if (!flatNode.getText().trim().equals("")) { //$NON-NLS-1$
-			node = new Unrecognized(this, flatNode);
-		}
-		if (node != null) {
-			insertNode(node);
-			node.resolveRegions();
-		}
-		return node;
-	}
-
-	public void buildNodes(IStructuredDocumentRegionList list) {
-		NodesEvent addedDTDNodes = new NodesEvent();
-
-		TopLevelNode previousNode = null;
-		for (int i = 0; i < list.getLength(); i++) {
-			IStructuredDocumentRegion flatNode = list.item(i);
-			TopLevelNode node = (TopLevelNode) buildNode(flatNode);
-			// if we don't create a node, then we assume that the flat
-			// node was whitespace. Tack it on to a previous toplevel
-			// node
-			if (node != null) {
-				previousNode = node;
-				addedDTDNodes.add(node);
-			}
-			else {
-				if (previousNode != null) {
-					previousNode.addWhitespaceStructuredDocumentRegion(flatNode);
-				}
-			}
-		}
-
-		if (addedDTDNodes.getNodes().size() > 0)// &&
-		//        creatingNewModel == false)
-		{
-			// now tell people about the additions
-			notifyNodesAdded(addedDTDNodes);
-		}
-	}
-
-	// Implements IndexedRegion
-
-	public boolean contains(int testPosition) {
-		return getStartOffset() <= testPosition && testPosition <= getEndOffset();
-	}
-
-	public void createAttributeList(DTDNode node, String name, boolean isAfter) {
-		getDTDModel().beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_DTD_FILE_ADD_ATTR_LIST")); //$NON-NLS-1$
-		DTDNode topLevelNode = null;
-		String newStream = "<!ATTLIST " + name + ">\n"; //$NON-NLS-1$ //$NON-NLS-2$
-		int offset = getInsertOffset(node, isAfter);
-		getStructuredDocument().replaceText(this, offset, 0, newStream);
-		getDTDModel().endRecording(this);
-	}
-
-	public void createComment(DTDNode node, String name, boolean isAfter) {
-		getDTDModel().beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_DTD_FILE_ADD_COMMENT")); //$NON-NLS-1$
-		DTDNode topLevelNode = null;
-		String newStream = "<!-- " + name + " -->\n"; //$NON-NLS-1$ //$NON-NLS-2$
-		int offset = getInsertOffset(node, isAfter);
-		getStructuredDocument().replaceText(this, offset, 0, newStream);
-		getDTDModel().endRecording(this);
-	}
-
-	public void createElement(DTDNode node, String name, boolean isAfter) {
-		getDTDModel().beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_DTD_FILE_ADD_ELEMENT")); //$NON-NLS-1$
-		DTDNode topLevelNode = null;
-		String newStream = "<!ELEMENT " + name + " EMPTY>\n"; //$NON-NLS-1$ //$NON-NLS-2$
-		int offset = getInsertOffset(node, isAfter);
-		getStructuredDocument().replaceText(this, offset, 0, newStream);
-		getDTDModel().endRecording(this);
-	}
-
-	public void createEntity(DTDNode node, String name, boolean isAfter) {
-		getDTDModel().beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_DTD_FILE_ADD_ENTITY")); //$NON-NLS-1$
-		DTDNode topLevelNode = null;
-		String newStream = "<!ENTITY " + name + " \"\">\n"; //$NON-NLS-1$//$NON-NLS-2$
-		int offset = getInsertOffset(node, isAfter);
-		getStructuredDocument().replaceText(this, offset, 0, newStream);
-		getDTDModel().endRecording(this);
-	}
-
-	public void createNotation(DTDNode node, String name, boolean isAfter) {
-		getDTDModel().beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_DTD_FILE_ADD_NOTATION")); //$NON-NLS-1$
-		DTDNode topLevelNode = null;
-		String newStream = "<!NOTATION " + name + " SYSTEM \"\">\n"; //$NON-NLS-1$ //$NON-NLS-2$
-		int offset = getInsertOffset(node, isAfter);
-		getStructuredDocument().replaceText(this, offset, 0, newStream);
-		getDTDModel().endRecording(this);
-	}
-
-	public void createParameterEntityReference(DTDNode node, String name, boolean isAfter) {
-		getDTDModel().beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_DTD_FILE_ADD_PARM_ENTITY_REF")); //$NON-NLS-1$
-		DTDNode topLevelNode = null;
-		String newStream = name + "\n"; //$NON-NLS-1$
-		int offset = getInsertOffset(node, isAfter);
-		getStructuredDocument().replaceText(this, offset, 0, newStream);
-		getDTDModel().endRecording(this);
-	}
-
-	public void deleteNode(DTDNode node) {
-		getDTDModel().beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_DTD_FILE_DELETE")); //$NON-NLS-1$
-		deleteNode(this, node);
-		getDTDModel().endRecording(this);
-	}
-
-	public void deleteNode(Object requestor, DTDNode node) {
-		DTDNode parent = (DTDNode) node.getParentNode();
-		if (parent != null) {
-			parent.delete(requestor, node);
-		} else {
-			if (!isMovingNode) {
-				DTDModelUpdater updater = new DTDModelUpdater();
-				updater.objectAboutToBeDeleted(requestor, node);
-				if (node instanceof ParameterEntityReference) {
-					Entity referencedEntity = ((ParameterEntityReference) node).getEntityObject();
-					if (referencedEntity != null) {
-						// remove references to all elements and parm entities
-						// contained in our current model
-						DTDExternalReferenceRemover remover = new DTDExternalReferenceRemover();
-						remover.externalReferenceAboutToChange(requestor, referencedEntity);
-					}
-				} else if (node instanceof Notation) {
-					Notation notation = ((Notation) node);
-					DTDNotationReferenceRemover remover = new DTDNotationReferenceRemover();
-					remover.notationAboutToBeDeleted(requestor, notation);
-				}
-			}
-
-			// no parent? then delete up until the start of the next node
-			// if it is a top level node
-			int startOffset = node.getStartOffset();
-			int endOffset = node.getWhitespaceEndOffset();
-			if (node instanceof TopLevelNode) {
-				endOffset = getInsertOffset(node, true);
-			}
-			getStructuredDocument().replaceText(requestor, startOffset, endOffset - startOffset, ""); //$NON-NLS-1$
-		}
-	}
-
-	public NodeList getComments() {
-		return commentList;
-	}
-
-	public DTDModelImpl getDTDModel() {
-		return dtdModel;
-	}
-
-	public NodeList getElementsAndParameterEntityReferences() {
-		return elementList;
-	}
-
-	public int getEndOffset() {
-		IStructuredDocumentRegion region = getStructuredDocument().getFirstStructuredDocumentRegion();
-		if (region != null)
-			return region.getEndOffset();
-		else
-			return 1;
-	}
-
-	public NodeList getEntities() {
-		return entityList;
-	}
-
-	public Image getImage() {
-		return DTDCorePlugin.getInstance().getImage(DTDResource.DTDFILEICON);
-	}
-
-
-
-	public int getInsertOffset(DTDNode node, boolean isAfter) {
-		int offset = 0;
-		if (node != null) {
-			if (isAfter) {
-				// then get the next node and use it's start offset
-				int index = getNodes().indexOf(getNode(node.getStructuredDTDDocumentRegion()));
-
-				DTDNode afterNode = null;
-				if (index + 1 < getNodes().size()) {
-					afterNode = (DTDNode) getNodes().get(index + 1);
-				}
-				if (afterNode != null) {
-					offset = afterNode.getStructuredDTDDocumentRegion().getStartOffset();
-				} else {
-					// add to end
-					if (getStructuredDocument().getLastStructuredDocumentRegion() != null) {
-						offset = getStructuredDocument().getLastStructuredDocumentRegion().getEndOffset();
-					}
-				}
-			} else {
-				offset = node.getStructuredDTDDocumentRegion().getStartOffset();
-			}
-		} else {
-			// add to end
-			if (getStructuredDocument().getLastStructuredDocumentRegion() != null) {
-				offset = getStructuredDocument().getLastStructuredDocumentRegion().getEndOffset();
-			}
-		}
-		return offset;
-	}
-
-	public String getName() {
-		org.eclipse.core.runtime.Path path = new org.eclipse.core.runtime.Path(getDTDModel().getId().toString());
-		return path.lastSegment();
-	}
-
-	public DTDNode getNode(IStructuredDocumentRegion flatNode) {
-		for (int i = 0; i < nodeList.size(); i++) {
-			DTDNode node = (DTDNode) nodeList.get(i);
-			if (node.getStructuredDTDDocumentRegion() == flatNode) {
-				return node;
-			}
-		}
-		return null;
-	}
-
-	public IndexedRegion getNodeAt(int offset) {
-		DTDNode node = getTopLevelNodeAt(offset);
-		if (node != null) {
-			return node.getDeepestNode(offset);
-		}
-		return null;
-	}
-
-	public IndexedRegion getNodeAt(int startOffset, int endOffset) {
-		DTDNode node = getTopLevelNodeAt(startOffset);
-		if (node != null) {
-			return node.getDeepestNode(startOffset, endOffset);
-		}
-		return null;
-	}
-
-	public List getNodeLists() {
-		if (folderList == null) {
-			folderList = new ArrayList();
-			folderList.add(notationList);
-			folderList.add(entityList);
-			folderList.add(elementList);
-			// http://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=4200
-			//folderList.add(attlistList);
-			//folderList.add(commentList);
-			folderList.add(unrecognizedList);
-		}
-		return folderList;
-	}
-
-	public List getNodes() {
-		return nodeList;
-	}
-
-	public NodeList getNotations() {
-		return notationList;
-	}
-
-	public int getStartOffset() {
-		IStructuredDocumentRegion region = getStructuredDocument().getFirstStructuredDocumentRegion();
-		if (region != null)
-			return region.getStartOffset();
-		else
-			return 1;
-	}
-
-	public IStructuredDocument getStructuredDocument() {
-		return dtdModel.getStructuredDocument();
-	}
-
-	public DTDNode getTopLevelNodeAt(int offset) {
-		for (int i = 0; i < nodeList.size(); i++) {
-			DTDNode node = (DTDNode) nodeList.get(i);
-			if (node.contains(offset)) {
-				return node;
-			}
-		}
-		return null;
-	}
-
-	public NodeList getUnrecognized() {
-		return unrecognizedList;
-	}
-
-	public void insertIntoModel(Object requestor, DTDNode reference, DTDNode node, boolean isAfter) {
-		String nodeText = ""; //$NON-NLS-1$
-		if (node instanceof TopLevelNode) {
-			nodeText = ((TopLevelNode) node).getFullText();
-		} else {
-			nodeText = node.getNodeText();
-		}
-		int offset = getInsertOffset(reference, isAfter);
-		getStructuredDocument().replaceText(requestor, offset, 0, nodeText);
-	}
-
-
-	public void insertNode(DTDNode node) {
-		int startOffset = node.getStartOffset();
-		int insertIndex = -1;
-		//    System.out.println("startoffset = " + startOffset);
-		for (int i = 0; i < getNodes().size(); i++) {
-			DTDNode currentNode = (DTDNode) getNodes().get(i);
-			//      System.out.println("currentNode endOffset = "
-			// +currentNode.getEndOffset());
-
-			if (currentNode.getEndOffset() > startOffset) {
-				//        System.out.println("endoffset " +
-				// currentNode.getEndOffset() + " > " + startOffset);
-				insertIndex = i;
-				break;
-			}
-		}
-		if (insertIndex == -1) {
-			insertIndex = getNodes().size();
-		}
-
-
-		//    System.out.println("insert index = " + insertIndex);
-
-		addNode(insertIndex, node);
-	}
-
-	// it is assumed that flatnode contains at least 3 regions
-	public boolean isAttributeList(IStructuredDocumentRegion flatNode) {
-		if (flatNode.getRegions().size() >= 3) {
-			ITextRegion second = flatNode.getRegions().get(1);
-			ITextRegion third = flatNode.getRegions().get(2);
-			if (second.getType().equals(DTDRegionTypes.EXCLAMATION) && third.getType().equals(DTDRegionTypes.ATTLIST_TAG)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	// it is assumed that flatnode contains at least 3 regions
-	public boolean isComment(IStructuredDocumentRegion flatNode) {
-		if (flatNode.getRegions().size() >= 2) {
-			ITextRegion region = flatNode.getRegions().get(1);
-			if (region.getType().equals(DTDRegionTypes.COMMENT_START)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	// it is assumed that flatnode contains at least 3 regions
-	public boolean isElement(IStructuredDocumentRegion flatNode) {
-		if (flatNode.getRegions().size() >= 3) {
-			ITextRegion second = flatNode.getRegions().get(1);
-			ITextRegion third = flatNode.getRegions().get(2);
-			if (second.getType().equals(DTDRegionTypes.EXCLAMATION) && third.getType().equals(DTDRegionTypes.ELEMENT_TAG)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	// it is assumed that flatnode contains at least 3 regions
-	public boolean isEntity(IStructuredDocumentRegion flatNode) {
-		if (flatNode.getRegions().size() >= 3) {
-			ITextRegion second = flatNode.getRegions().get(1);
-			ITextRegion third = flatNode.getRegions().get(2);
-			if (second.getType().equals(DTDRegionTypes.EXCLAMATION) && third.getType().equals(DTDRegionTypes.ENTITY_TAG)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	// it is assumed that flatnode contains at least 3 regions
-	public boolean isNotation(IStructuredDocumentRegion flatNode) {
-		if (flatNode.getRegions().size() >= 3) {
-			ITextRegion second = flatNode.getRegions().get(1);
-			ITextRegion third = flatNode.getRegions().get(2);
-			if (second.getType().equals(DTDRegionTypes.EXCLAMATION) && third.getType().equals(DTDRegionTypes.NOTATION_TAG)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	// it is assumed that flatnode contains at least 3 regions
-	public boolean isParameterEntityReference(IStructuredDocumentRegion flatNode) {
-		if (flatNode.getRegions().size() == 1) {
-			ITextRegion region = flatNode.getRegions().get(0);
-			if (region.getType().equals(DTDRegionTypes.ENTITY_PARM)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	boolean isSameTopLevelType(DTDNode affectedNode) {
-		IStructuredDocumentRegion flatNode = affectedNode.getStructuredDTDDocumentRegion();
-		// return true if the flatnode still matches what the affectedNode
-		// is representing
-		if (affectedNode instanceof Element && isElement(flatNode)) {
-			return true;
-		}
-		if (affectedNode instanceof Entity && isEntity(flatNode)) {
-			return true;
-		}
-		if (affectedNode instanceof Comment && isComment(flatNode)) {
-			return true;
-		}
-		if (affectedNode instanceof AttributeList && isAttributeList(flatNode)) {
-			return true;
-		}
-		if (affectedNode instanceof Notation && isNotation(flatNode)) {
-			return true;
-		}
-		if (affectedNode instanceof Unrecognized && isUnrecognized(flatNode)) {
-			return true;
-		}
-		return false;
-	}
-
-	public boolean isUnrecognized(IStructuredDocumentRegion flatNode) {
-		return !isElement(flatNode) && !isEntity(flatNode) && !isNotation(flatNode) && !isParameterEntityReference(flatNode) && !isAttributeList(flatNode) && !isComment(flatNode);
-	}
-
-	public void moveNode(Object requestor, DTDNode referenceNode, DTDNode nodeToMove, boolean isAfter) {
-		isMovingNode = true;
-
-		deleteNode(requestor, nodeToMove);
-		insertIntoModel(requestor, referenceNode, nodeToMove, isAfter);
-		isMovingNode = false;
-	}
-
-	public void newModel(NewDocumentEvent event) {
-		creatingNewModel = true;
-		nodeList.clear();
-		NodesEvent removeEvent = new NodesEvent();
-		removeEvent.getNodes().addAll(nodeList);
-		notifyNodesRemoved(removeEvent);
-		/* removeChildNodes(); */
-
-		if (event.getStructuredDocument() != null && event.getStructuredDocument().getRegionList() != null) {
-			buildNodes(event.getStructuredDocument().getRegionList());
-		}
-		creatingNewModel = false;
-	}
-
-	public void nodesReplaced(StructuredDocumentRegionsReplacedEvent event) {
-		IStructuredDocumentRegionList oldNodes = event.getOldStructuredDocumentRegions();
-		NodesEvent removedDTDNodes = new NodesEvent();
-		for (int i = 0; i < oldNodes.getLength(); i++) {
-			IStructuredDocumentRegion flatNode = oldNodes.item(i);
-
-			for (Iterator iter = getNodes().iterator(); iter.hasNext();) {
-				DTDNode node = (DTDNode) iter.next();
-				if (node.getStructuredDTDDocumentRegion() == flatNode) {
-					removedDTDNodes.add(node);
-				}
-			}
-		}
-
-		buildNodes(event.getNewStructuredDocumentRegions());
-
-		if (removedDTDNodes.getNodes().size() > 0) {
-			notifyNodesRemoved(removedDTDNodes);
-			removeNodes(removedDTDNodes.getNodes());
-		}
-	}
-
-	public void notifyNodeChanged(DTDNode node) {
-		Iterator iter = modelListeners.iterator();
-		while (iter.hasNext()) {
-			IDTDFileListener listener = (IDTDFileListener) iter.next();
-			listener.nodeChanged(node);
-		}
-	}
-
-	public void notifyNodesAdded(NodesEvent addedNodes) {
-		Iterator iter = modelListeners.iterator();
-		while (iter.hasNext()) {
-			IDTDFileListener listener = (IDTDFileListener) iter.next();
-			listener.nodesAdded(addedNodes);
-		}
-	}
-
-	protected void notifyNodesRemoved(NodesEvent event) {
-		Iterator iter = modelListeners.iterator();
-		while (iter.hasNext()) {
-			IDTDFileListener listener = (IDTDFileListener) iter.next();
-			listener.nodesRemoved(event);
-		}
-	}
-
-	public void rebuildNodes(List nodes) {
-		// remove the old nodes
-		removeNodes(nodes);
-
-		// now rebuild them
-		NodesEvent addedDTDNodes = new NodesEvent();
-		Iterator dtdNodes = nodes.iterator();
-		while (dtdNodes.hasNext()) {
-			DTDNode dtdNode = (DTDNode) dtdNodes.next();
-			//      System.out.println("rebuilding " +
-			// dtdNode.getStructuredDocumentRegion().getText());
-
-			DTDNode node = buildNode(dtdNode.getStructuredDTDDocumentRegion());
-			if (node != null) {
-				addedDTDNodes.add(node);
-			}
-		}
-		if (addedDTDNodes.getNodes().size() > 0) {
-			// now tell people about the additions
-			notifyNodesAdded(addedDTDNodes);
-		}
-	}
-
-	public void regionChanged(RegionChangedEvent event) {
-		ITextRegion changedRegion = event.getRegion();
-		IStructuredDocumentRegion flatNode = event.getStructuredDocumentRegion();
-		DTDNode affectedNode = (DTDNode) getNodeAt(flatNode.getStartOffset(changedRegion), flatNode.getEndOffset(changedRegion));
-		if (affectedNode != null) {
-			// no need to resolve regions as it is just a change
-			//      affectedNode.resolveRegions();
-			notifyNodeChanged(affectedNode);
-		}
-	}
-
-	public void regionsReplaced(RegionsReplacedEvent event) {
-		List nodesToRebuild = new ArrayList();
-		IStructuredDocumentRegion flatNode = event.getStructuredDocumentRegion();
-		DTDNode affectedNode = getNode(flatNode);
-
-		if (!isSameTopLevelType(affectedNode)) {
-			nodesToRebuild.add(affectedNode);
-			rebuildNodes(nodesToRebuild);
-		} else {
-			affectedNode.resolveRegions();
-			notifyNodeChanged(affectedNode);
-			// now try and determine which ones were added
-			NodesEvent addedDTDNodes = new NodesEvent();
-			ITextRegionList newRegions = event.getNewRegions();
-			int size = newRegions.size();
-			for (int i = 0; i < size; i++) {
-				ITextRegion region = newRegions.get(i);
-				DTDNode deepestNode = affectedNode.getDeepestNode(flatNode.getStartOffset(region), flatNode.getEndOffset(region));
-				if (!addedDTDNodes.getNodes().contains(deepestNode)) {
-					addedDTDNodes.add(deepestNode);
-				}
-			}
-			if (addedDTDNodes.getNodes().size() > 0) {
-				notifyNodesAdded(addedDTDNodes);
-			}
-		}
-	}
-
-	public void removeDTDFileListener(IDTDFileListener listener) {
-		modelListeners.remove(listener);
-	}
-
-	protected void removeNodes(List nodes) {
-		getNodes().removeAll(nodes);
-		/*
-		 * for (int i = 0; i < nodes.size(); i++) {
-		 * removeChild((DTDNode)nodes.get(i)); } // end of for ()
-		 */
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/DTDNode.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/DTDNode.java
deleted file mode 100644
index 134bda7..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/DTDNode.java
+++ /dev/null
@@ -1,334 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.dtd.core.document.DTDModelImpl;
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.dtd.core.internal.text.RegionIterator;
-import org.eclipse.wst.dtd.core.parser.DTDRegionTypes;
-import org.eclipse.wst.sse.core.IFactoryRegistry;
-import org.eclipse.wst.sse.core.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.text.TextRegionListImpl;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.document.NodeContainer;
-
-
-public abstract class DTDNode extends NodeContainer implements IndexedRegion {
-
-	// these are characteroffsets
-	protected DTDFile dtdFile;
-
-	// flat node that contains this node
-	protected IStructuredDocumentRegion flatNode;
-
-	protected TextRegionListImpl regions = new TextRegionListImpl();
-
-	protected TextRegionListImpl whitespace = new TextRegionListImpl();
-
-	public DTDNode(DTDFile dtdFile, IStructuredDocumentRegion flatNode) {
-		this.dtdFile = dtdFile;
-		this.flatNode = flatNode;
-	}
-
-	public void addRegion(ITextRegion region) {
-		/*
-		 * if (startRegion == null) { startRegion = region; } endRegion =
-		 * region;
-		 */
-		regions.add(region);
-	}
-
-	public void addWhitespaceRegion(ITextRegion region) {
-		whitespace.add(region);
-	}
-
-	public org.w3c.dom.Node appendChild(org.w3c.dom.Node newChild) throws org.w3c.dom.DOMException {
-		// System.out.println("appendchild called with " + newChild);
-		return super.appendChild(newChild);
-	}
-
-	public void beginRecording(Object requestor, String label) {
-		getDTDFile().getDTDModel().beginRecording(requestor, label);
-	}
-
-	public org.w3c.dom.Node cloneNode(boolean deepest) {
-		return null;
-	}
-
-	public boolean contains(int testPosition) {
-		return containsRange(testPosition, testPosition);
-	}
-
-	public boolean containsRange(int start, int end) {
-		return getStartOffset() <= start && end <= getEndOffset();
-	}
-
-	public void delete(DTDNode child) {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_DTD_NODE_DELETE")); //$NON-NLS-1$
-		delete(this, child);
-		endRecording(this);
-	}
-
-	public void delete(Object requestor, DTDNode child) {
-		replaceText(requestor, child.getStartOffset(), child.getFullNodeLength(), ""); //$NON-NLS-1$
-	}
-
-	public void endRecording(Object requestor) {
-		getDTDFile().getDTDModel().endRecording(requestor);
-	}
-
-	public Object[] getChildren() {
-		return getChildrenList().toArray();
-	}
-
-	public List getChildrenList() {
-		org.w3c.dom.Node child = getFirstChild();
-		if (child != null) {
-			List children = new ArrayList();
-			for (; child != null; child = child.getNextSibling()) {
-				children.add(child);
-			}
-			return children;
-		} else {
-			return Collections.EMPTY_LIST;
-		}
-	}
-
-	public DTDNode getDeepestNode(int offset) {
-		if (contains(offset)) {
-			// now see if a child contains this offset
-			Object[] children = getChildren();
-			for (int i = 0; i < children.length; i++) {
-				DTDNode child = (DTDNode) children[i];
-				DTDNode deepest = child.getDeepestNode(offset);
-				if (deepest != null) {
-					return deepest;
-				}
-			} // end of for ()
-			return this;
-		}
-		return null;
-	}
-
-	public DTDNode getDeepestNode(int start, int end) {
-		if (containsRange(start, end)) {
-			// now see if a child contains this offset
-			Object[] children = getChildren();
-			for (int i = 0; i < children.length; i++) {
-				DTDNode child = (DTDNode) children[i];
-				DTDNode deepest = child.getDeepestNode(start, end);
-				if (deepest != null) {
-					return deepest;
-				}
-			} // end of for ()
-			return this;
-		}
-		return null;
-	}
-
-	public DTDFile getDTDFile() {
-		return dtdFile;
-	}
-
-	public int getEndOffset() {
-		return getStructuredDTDDocumentRegion().getEndOffset(getEndRegion());
-	}
-
-	public ITextRegion getEndRegion() {
-		return regions.get(regions.size() - 1);// endRegion;
-	}
-
-	/**
-	 */
-	public IFactoryRegistry getFactoryRegistry() {
-		DTDModelImpl model = dtdFile.getDTDModel();
-		if (model != null) {
-			IFactoryRegistry reg = model.getFactoryRegistry();
-			if (reg != null)
-				return reg;
-		}
-		return null;
-	}
-
-	public int getFullNodeLength() {
-		return getWhitespaceEndOffset() - getStartOffset();
-	}
-
-	public String getFullNodeText() {
-		String text = getNodeText();
-		if (whitespace.size() > 0) {
-			RegionIterator iter = new RegionIterator(whitespace);
-			while (iter.hasNext()) {
-				ITextRegion region = iter.next();
-				text += getStructuredDTDDocumentRegion().getText(region);
-			}
-		}
-		return text;
-	}
-
-	abstract public Image getImage();
-
-	public String getName() {
-		ITextRegion region = getNameRegion();
-		if (region != null) {
-			return getStructuredDTDDocumentRegion().getText(region);
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	public ITextRegion getNameRegion() {
-		RegionIterator iter = iterator();
-		while (iter.hasNext()) {
-			ITextRegion region = iter.next();
-			if (region.getType() == DTDRegionTypes.NAME) {
-				return region;
-			}
-		}
-		return null;
-	}
-
-	// return the first token containing the specified token type
-	public ITextRegion getNextRegion(RegionIterator iter, String type) {
-		while (iter.hasNext()) {
-			ITextRegion region = iter.next();
-			if (region.getType().equals(type)) {
-				return region;
-			}
-		}
-		return null;
-	}
-
-	public int getNodeLength() {
-		return getEndOffset() - getStartOffset();
-	}
-
-	public String getNodeName() {
-		return getName();
-	}
-
-	public String getNodeText() {
-		StringBuffer sb = new StringBuffer();
-
-		RegionIterator iter = iterator();
-		while (iter.hasNext()) {
-			ITextRegion region = iter.next();
-			sb.append(getStructuredDTDDocumentRegion().getText(region));
-		}
-		return sb.toString();
-	}
-
-	public short getNodeType() {
-		return -1;
-	}
-
-	public int getStartOffset() {
-		return getStructuredDTDDocumentRegion().getStartOffset(getStartRegion());
-	}
-
-	// private Region startRegion,endRegion;
-	public ITextRegion getStartRegion() {
-		return regions.get(0);
-		// return startRegion;
-	}
-
-	/**
-	 * Get the value of flatNode.
-	 * 
-	 * @return value of flatNode.
-	 * 
-	 * ISSUE:named changed not to be confused with default access protected
-	 * super class method, but should re-think if this is correct technique.
-	 * Perhaps getFirstRegion?
-	 */
-	public IStructuredDocumentRegion getStructuredDTDDocumentRegion() {
-		return flatNode;
-	}
-
-	// return end offset including whitespace
-	// or just the end offset if there is no whitespace
-	public int getWhitespaceEndOffset() {
-		if (whitespace.size() > 0) {
-			ITextRegion region = whitespace.get(whitespace.size() - 1);
-			return getStructuredDTDDocumentRegion().getEndOffset(region);
-		}
-
-		return getEndOffset();
-	}
-
-	public boolean hasTrailingWhitespace() {
-		return whitespace.size() > 0;
-	}
-
-	public RegionIterator iterator() {
-		// System.out.println("create region iter " + this.getClass() + " with
-		// start , end = " + getStartOffset() + ", " +getEndOffset());
-		return new RegionIterator(regions);
-	}
-
-	public void replaceText(Object requestor, int start, int length, String newText) {
-		getDTDFile().getStructuredDocument().replaceText(requestor, start, length, newText);
-	}
-
-	public void resolveRegions() {
-	}
-
-	public void setName(Object requestor, String name) {
-		if (!getName().equals(name)) {
-			ITextRegion nameRegion = getNameRegion();
-			if (nameRegion != null) {
-				// nameToken.updateText(name);
-				getDTDFile().getDTDModel().getReferenceUpdater().nameAboutToChange(requestor, this, name);
-				replaceText(requestor, getStructuredDTDDocumentRegion().getStartOffset(nameRegion), nameRegion.getLength(), name);
-			}
-		}
-	}
-
-	public void setName(String name) {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_DTD_NODE_NAME_CHG")); //$NON-NLS-1$
-		setName(this, name);
-		endRecording(this);
-	}
-
-	/**
-	 * Set the value of flatNode.
-	 * 
-	 * @param v
-	 *            Value to assign to flatNode. ISSUE:named changed not to be
-	 *            confused with default access protected super class method,
-	 *            but should re-think if this is correct technique
-	 */
-	void setStructuredDTDDocumentRegion(IStructuredDocumentRegion v) {
-		this.flatNode = v;
-	}
-
-	// skips past next name token in the iterator
-	protected void skipPastName(RegionIterator iter) {
-		while (iter.hasNext()) {
-			ITextRegion currentRegion = iter.next();
-			if (currentRegion.getType() == DTDRegionTypes.NAME) {
-				break;
-			}
-		}
-	}
-
-	public boolean supports(java.lang.String feature, java.lang.String version) {
-		return false;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/DTDPlugin.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/DTDPlugin.java
deleted file mode 100644
index ae9deed..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/DTDPlugin.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-
-/**
- * @deprecated use internal DTDCorePlugin class instead if possible
- */
-public class DTDPlugin extends DTDCorePlugin {
-	// see org.eclipse.wst.dtd.core.internal.DTDCorePlugin
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/DTDResource.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/DTDResource.java
deleted file mode 100644
index 0f1d053..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/DTDResource.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-
-public interface DTDResource {
-	//Enumeration Constants
-	public static final String ANYICON = "icons/full/obj16/any.gif"; //$NON-NLS-1$
-	public static final String ATTRIBUTEICON = "icons/full/obj16/attribute.gif"; //$NON-NLS-1$
-	public static final String ATTRIBUTELISTICON = "icons/full/obj16/attribute_list.gif"; //$NON-NLS-1$
-	public static final String COMMENTICON = "icons/full/obj16/comment.gif"; //$NON-NLS-1$
-
-	public static final String DTDFILEICON = "icons/full/obj16/DTDFile.gif"; //$NON-NLS-1$
-	public static final String ELEMENTICON = "icons/full/obj16/element.gif"; //$NON-NLS-1$
-	public static final String ELEMENTREFICON = "icons/full/obj16/element_ref.gif"; //$NON-NLS-1$
-	public static final String EMPTYICON = "icons/full/obj16/emptycontent.gif"; //$NON-NLS-1$
-	public static final String ENTITYICON = "icons/full/obj16/entity.gif"; //$NON-NLS-1$
-	public static final String ENTITYREFERENCEICON = "icons/full/obj16/entity_reference.gif"; //$NON-NLS-1$
-	public static final String FLDR_ATTLIST = "icons/full/obj16/folder_attlist_obj.gif"; //$NON-NLS-1$
-	public static final String FLDR_COMM = "icons/full/obj16/folder_comments_obj.gif"; //$NON-NLS-1$
-
-	public static final String FLDR_EL = "icons/full/obj16/fldr_el.gif"; //$NON-NLS-1$
-	public static final String FLDR_ENT = "icons/full/obj16/fldr_ent.gif"; //$NON-NLS-1$
-	public static final String FLDR_NOT = "icons/full/obj16/fldr_not.gif"; //$NON-NLS-1$
-	public static final String FLDR_UNREC = "icons/full/obj16/fldr_unrec.gif"; //$NON-NLS-1$
-
-	public static final String NEWDTD = "icons/full/obj16/newdtd_wiz.gif"; //$NON-NLS-1$
-	public static final String NEWHTMLFORM = "icons/full/obj16/genhtmform_wiz.gif"; //$NON-NLS-1$
-	public static final String NOTATIONICON = "icons/full/obj16/notation.gif"; //$NON-NLS-1$
-
-	public static final String ONECHOICEICON = "icons/full/obj16/onechoice.gif"; //$NON-NLS-1$
-
-	public static final String ONEICON = "icons/full/obj16/one.gif"; //$NON-NLS-1$
-	public static final String ONEORMORECHOICEICON = "icons/full/obj16/oneormorechoice.gif"; //$NON-NLS-1$
-	public static final String ONEORMOREICON = "icons/full/obj16/oneormore.gif"; //$NON-NLS-1$
-	public static final String ONEORMORESEQUENCEICON = "icons/full/obj16/oneormoresequence.gif"; //$NON-NLS-1$
-
-	public static final String ONESEQUENCEICON = "icons/full/obj16/onesequence.gif"; //$NON-NLS-1$
-	public static final String OPTIONALCHOICEICON = "icons/full/obj16/optionalchoice.gif"; //$NON-NLS-1$
-	public static final String OPTIONALICON = "icons/full/obj16/optional.gif"; //$NON-NLS-1$
-	public static final String OPTIONALSEQUENCEICON = "icons/full/obj16/optionalsequence.gif"; //$NON-NLS-1$
-	public static final String PCDATAICON = "icons/full/obj16/txtext.gif"; //$NON-NLS-1$
-	public static final String UNRECOGNIZEDICON = "icons/full/obj16/unrecognized_content.gif"; //$NON-NLS-1$
-	public static final String ZEROORMORECHOICEICON = "icons/full/obj16/zeroormorechoice.gif"; //$NON-NLS-1$
-	public static final String ZEROORMOREICON = "icons/full/obj16/zeroormore.gif"; //$NON-NLS-1$
-	public static final String ZEROORMORESEQUENCEICON = "icons/full/obj16/zeroormoresequence.gif"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Element.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Element.java
deleted file mode 100644
index bc784e6..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Element.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.dtd.core.internal.text.RegionIterator;
-import org.eclipse.wst.dtd.core.parser.DTDRegionTypes;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.w3c.dom.Node;
-
-
-public class Element extends NamedTopLevelNode {
-
-	List attListList = new ArrayList();
-
-	List attributes = new ArrayList();
-
-	protected CMNode contentModel;
-
-	public Element(DTDFile dtdFile, IStructuredDocumentRegion flatNode) {
-		super(dtdFile, flatNode, DTDRegionTypes.ELEMENT_TAG);
-	}
-
-	public void addAttribute(String name) {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_ELEMENT_ADD_ATTR")); //$NON-NLS-1$
-		List attLists = getAttributeLists();
-		if (attLists.size() == 0) {
-			getDTDFile().createAttributeList(this, getName(), true);
-			attLists = getAttributeLists();
-		}
-		if (attLists.size() > 0) {
-			AttributeList attList = (AttributeList) attLists.get(attLists.size() - 1);
-			attList.addAttribute(name);
-		}
-		endRecording(this);
-	}
-
-	public void addChild() {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_ELEMENT_ADD_CHILD")); //$NON-NLS-1$
-		addContent(this, " EMPTY"); //$NON-NLS-1$
-		endRecording(this);
-	}
-
-	protected void addContent(Object requestor, String content) {
-		ITextRegion whitespace = getWhitespaceAfterName();
-		int startOffset = 0;
-		int length = 0;
-		if (whitespace != null) {
-			startOffset = getStructuredDTDDocumentRegion().getStartOffset(whitespace);
-			length = whitespace.getLength() >= 2 ? 1 : 0;
-		} else {
-			ITextRegion nameRegion = getNameRegion();
-			if (nameRegion != null) {
-				startOffset = getStructuredDTDDocumentRegion().getEndOffset(nameRegion);
-			} else {
-				ITextRegion elementTag = getNextRegion(iterator(), DTDRegionTypes.ELEMENT_TAG);
-				startOffset = getStructuredDTDDocumentRegion().getEndOffset(elementTag);
-			}
-		}
-		replaceText(requestor, startOffset, length, content);
-	}
-
-	public void addGroup() {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_ELEMENT_ADD_GRP")); //$NON-NLS-1$
-		addContent(this, " ()"); //$NON-NLS-1$
-		endRecording(this);
-	}
-
-	public Node cloneNode(boolean deep) {
-		return new Element(dtdFile, flatNode);
-	}
-
-	public List getAttributeLists() {
-		attListList.clear();
-		String elementName = getName();
-		Iterator iter = dtdFile.getNodes().iterator();
-		while (iter.hasNext()) {
-			DTDNode node = (DTDNode) iter.next();
-			if (node instanceof AttributeList && node.getName().equals(elementName)) {
-				attListList.add(node);
-			}
-		}
-		return attListList;
-	}
-
-
-
-	public CMNode getContentModel() {
-		//    Object[] children = getChildren()
-		return (CMNode) getFirstChild();//contentModel;
-	}
-
-	public List getElementAttributes() {
-		attributes.clear();
-		Iterator attLists = getAttributeLists().iterator();
-		while (attLists.hasNext()) {
-			AttributeList attList = (AttributeList) attLists.next();
-
-			Object[] children = attList.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				attributes.add(children[i]);
-			}
-		}
-		return attributes;
-	}
-
-	public Image getImage() {
-		return DTDCorePlugin.getInstance().getImage(DTDResource.ELEMENTICON);
-	}
-
-	public short getNodeType() {
-		return Node.ELEMENT_NODE;
-	}
-
-	public void replaceContentModel(Object requestor, CMNode node) {
-		int offset = 0;
-		int length = 0;
-		String nodeText = node.getNodeText();
-		CMNode contentModel = getContentModel();
-		if (contentModel != null) {
-			offset = contentModel.getStartOffset();
-			length = contentModel.getWhitespaceEndOffset() - offset;
-			replaceText(requestor, offset, length, nodeText);
-		} else {
-			addContent(requestor, nodeText);
-		}
-	}
-
-	public void resolveRegions() {
-		//    System.out.println("element node stream = " +
-		// tokenStream.getString());
-		contentModel = null;
-		removeChildNodes();
-		RegionIterator iter = iterator();
-
-		if (getNameRegion() != null) {
-			// we skip past the name token is our name
-			skipPastName(iter);
-		}
-
-		CMBasicNode basicNode = null;
-		while (iter.hasNext()) {
-			ITextRegion currentRegion = iter.next();
-
-			if (contentModel == null) {
-				if (currentRegion.getType().equals(DTDRegionTypes.NAME)) {
-					contentModel = basicNode = new CMBasicNode(getDTDFile(), getStructuredDTDDocumentRegion());
-				} else if (currentRegion.getType().equals(DTDRegionTypes.CONTENT_PCDATA)) {
-					contentModel = basicNode = new CMBasicNode(getDTDFile(), getStructuredDTDDocumentRegion());
-				} else if (currentRegion.getType().equals(DTDRegionTypes.LEFT_PAREN)) {
-					contentModel = new CMGroupNode(getDTDFile(), getStructuredDTDDocumentRegion());
-				}
-			}
-
-			if (contentModel != null) {
-				if (!currentRegion.getType().equals(DTDRegionTypes.END_TAG)) {
-					// content model gets all regions except for the '>'
-					contentModel.addRegion(currentRegion);
-				} else {
-					// if it is equal to the end tag, then don't add anymore
-					// regions
-					// for the content model
-					break;
-				}
-
-			}
-
-		}
-		if (contentModel != null) {
-			appendChild(contentModel);
-			// this is the root element content so set it true
-			contentModel.setRootElementContent(true);
-			// now tell the content model to resolve it's regions
-			contentModel.resolveRegions();
-
-		}
-	}
-
-	public void setContentModel(CMNode contentModel) {
-		this.contentModel = contentModel;
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Entity.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Entity.java
deleted file mode 100644
index 9eade12..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Entity.java
+++ /dev/null
@@ -1,325 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.dtd.core.internal.text.RegionIterator;
-import org.eclipse.wst.dtd.core.parser.DTDRegionTypes;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-
-// external node contains code to help set and get public ids
-public class Entity extends ExternalNode {
-
-	private static String setExternalEntity = DTDCorePlugin.getDTDString("_UI_LABEL_ENTITY_SET_EXT_ENTITY"); //$NON-NLS-1$
-	private static String setGeneralEntity = DTDCorePlugin.getDTDString("_UI_LABEL_ENTITY_SET_GENERAL_ENTITY"); //$NON-NLS-1$
-	private static String setInternalEntity = DTDCorePlugin.getDTDString("_UI_LABEL_ENTITY_SET_INT_ENTITY"); //$NON-NLS-1$
-
-	private static String setParameterEntity = DTDCorePlugin.getDTDString("_UI_LABEL_ENTITY_SET_PARM_ENTITY"); //$NON-NLS-1$
-
-	public Entity(DTDFile file, IStructuredDocumentRegion flatNode) {
-		super(file, flatNode, DTDRegionTypes.ENTITY_TAG);
-	}
-
-	public Image getImage() {
-		return DTDCorePlugin.getInstance().getImage(DTDResource.ENTITYICON);
-	}
-
-
-	/**
-	 * Get the value of notationName.
-	 * 
-	 * @return value of notationName.
-	 */
-	public String getNotationName() {
-		ITextRegion ndataRegion = getNextRegion(iterator(), DTDRegionTypes.NDATA_VALUE);
-		if (ndataRegion != null) {
-			return getStructuredDTDDocumentRegion().getText(ndataRegion);
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	public ITextRegion getPercentRegion() {
-		return getNextRegion(iterator(), DTDRegionTypes.PERCENT);
-	}
-
-	/**
-	 * Get the value of value.
-	 * 
-	 * @return value of value.
-	 */
-	public String getValue() {
-		if (!isExternalEntity()) {
-			ITextRegion valueRegion = getNextQuotedLiteral(iterator());
-			if (valueRegion != null) {
-				return getValueFromQuotedRegion(valueRegion);
-			}
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * Get the value of externalEntity.
-	 * 
-	 * @return value of externalEntity.
-	 */
-	public boolean isExternalEntity() {
-		return getPublicKeywordRegion(iterator()) != null || getSystemKeywordRegion(iterator()) != null;
-	}
-
-	/**
-	 * Get the value of isParameterEntity.
-	 * 
-	 * @return value of isParameterEntity.
-	 */
-	public boolean isParameterEntity() {
-		return getPercentRegion() != null;
-	}
-
-	private void removeNData(Object requestor) {
-		ITextRegion ndataRegion = null;
-
-		// see if we have an NDATA keyword
-		ndataRegion = getNextRegion(iterator(), DTDRegionTypes.NDATA_KEYWORD);
-		int startOffset = 0, endOffset = 0;
-		if (ndataRegion != null) {
-			startOffset = getStructuredDTDDocumentRegion().getStartOffset(ndataRegion);
-			endOffset = getStructuredDTDDocumentRegion().getEndOffset(ndataRegion);
-		}
-		ITextRegion value = getNextRegion(iterator(), DTDRegionTypes.NDATA_VALUE);
-		if (value != null) {
-			if (startOffset == 0) {
-				startOffset = getStructuredDTDDocumentRegion().getStartOffset(value);
-			}
-			endOffset = getStructuredDTDDocumentRegion().getEndOffset(value);
-		}
-		replaceText(requestor, startOffset, endOffset - startOffset, ""); //$NON-NLS-1$
-	}
-
-	/**
-	 * Set the value of externalEntity.
-	 * 
-	 * @param v
-	 *            Value to assign to externalEntity.
-	 */
-	public void setExternalEntity(boolean isExternalEntity) {
-		if (isExternalEntity() != isExternalEntity) {
-			//      externalEntity = v;
-			beginRecording(this, isExternalEntity ? setExternalEntity : setInternalEntity);
-			if (isExternalEntity) {
-				// we need to get rid of the value literal
-				ITextRegion quote = getNextRegion(iterator(), DTDRegionTypes.SINGLEQUOTED_LITERAL);
-				if (quote == null) {
-					quote = getNextRegion(iterator(), DTDRegionTypes.DOUBLEQUOTED_LITERAL);
-				}
-				if (quote != null) {
-					replaceText(this, getStructuredDTDDocumentRegion().getStartOffset(quote), quote.getLength(), ""); //$NON-NLS-1$
-				}
-				setSystemID(""); //$NON-NLS-1$
-			} else {
-				// we need to get rid of text between end of name region and
-				// the last double quoted literal
-				RegionIterator iter = iterator();
-				ITextRegion keyword = getSystemKeywordRegion(iter);
-				int startOffset = 0;
-				int length = 0;
-				if (keyword == null) {
-					// reset the iterator
-					iter = iterator();
-					keyword = getPublicKeywordRegion(iter);
-				}
-				if (keyword != null) {
-					startOffset = getStructuredDTDDocumentRegion().getStartOffset(keyword);
-					// start with a length just equal to the keyword for now
-					length = keyword.getLength();
-				} else {
-					// reset the iterator since we didn't find the keyword
-					iter = iterator();
-					// just go from after the name
-					startOffset = getStructuredDTDDocumentRegion().getEndOffset(getNameRegion());
-				}
-
-				// now that we have the start, look for the end
-				ITextRegion lastRegion = null;
-
-				if (lastRegion == null) {
-					// then look for last quoted literal
-					while (iter.hasNext()) {
-						ITextRegion literal = getNextQuotedLiteral(iter);
-						if (literal != null) {
-							lastRegion = literal;
-						}
-					}
-				}
-
-				if (lastRegion != null) {
-					length = getStructuredDTDDocumentRegion().getEndOffset(lastRegion) - startOffset;
-				}
-				replaceText(this, startOffset, length, "\"\""); //$NON-NLS-1$
-				removeNData(this);
-			}
-			endRecording(this);
-		}
-	}
-
-	public void setNotationName(Object requestor, String newNotation) {
-		if (!getNotationName().equals(newNotation)) {
-			if (!newNotation.equals("")) { //$NON-NLS-1$
-				// 
-				ITextRegion ndataRegion = getNextRegion(iterator(), DTDRegionTypes.NDATA_VALUE);
-				if (ndataRegion != null) {
-					replaceText(requestor, getStructuredDTDDocumentRegion().getStartOffset(ndataRegion), ndataRegion.getLength(), newNotation);
-				} else {
-					// time to create one
-					int startOffset = 0;
-					String string = ""; //$NON-NLS-1$
-					RegionIterator iter = iterator();
-					ITextRegion ndataKeyword = getNextRegion(iter, DTDRegionTypes.NDATA_KEYWORD);
-					if (ndataKeyword == null) {
-						// we'll need to create one after the last quoted
-						// literal
-						// Reset iterator
-						string += " NDATA "; //$NON-NLS-1$
-						iter = iterator();
-						ITextRegion lastQuotedLiteral = null;
-						while (iter.hasNext()) {
-							ITextRegion literal = getNextQuotedLiteral(iter);
-							if (literal != null) {
-								lastQuotedLiteral = literal;
-							}
-						}
-						if (lastQuotedLiteral != null) {
-							startOffset = getStructuredDTDDocumentRegion().getEndOffset(lastQuotedLiteral);
-						} else {
-							// created after the system or public keyword
-							ITextRegion keyword = getPublicKeywordRegion(iterator());
-							if (keyword == null) {
-								keyword = getSystemKeywordRegion(iterator());
-							}
-							// we shouldn't be null here since we check if we
-							// were external already
-							startOffset = getStructuredDTDDocumentRegion().getEndOffset(keyword);
-						}
-
-					} else {
-						startOffset = getStructuredDTDDocumentRegion().getEndOffset(ndataKeyword);
-					}
-					replaceText(requestor, startOffset, 0, string + newNotation);
-				}
-			} else {
-				// need to remove the ndata stuff
-				removeNData(requestor);
-			}
-		}
-	}
-
-	/**
-	 * Set the value of notationName.
-	 * 
-	 * @param newNotation
-	 *            Value to assign to notationName.
-	 */
-	public void setNotationName(String newNotation) {
-		beginRecording(this, "NDATA " + DTDCorePlugin.getDTDString("_UI_LABEL_ENTITY_NDATA_CHANGE")); //$NON-NLS-1$ //$NON-NLS-2$
-		setNotationName(this, newNotation);
-		endRecording(this);
-	}
-
-	/**
-	 * Set the value of isParameterEntity.
-	 * 
-	 * @param v
-	 *            Value to assign to isParameterEntity.
-	 */
-	public void setParameterEntity(boolean v) {
-		if (isParameterEntity() != v) {
-			beginRecording(this, v ? setParameterEntity : setGeneralEntity);
-			if (v) {
-				RegionIterator iter = iterator();
-				ITextRegion startTag = getNextRegion(iter, DTDRegionTypes.ENTITY_TAG);
-				int startOffset = 0, length = 0;
-
-				if (iter.hasNext()) {
-					ITextRegion region = iter.next();
-					startOffset = getStructuredDTDDocumentRegion().getStartOffset(region);
-					if (region.getType() == DTDRegionTypes.WHITESPACE && region.getLength() > 1) {
-						length = 1;
-					}
-				} else {
-					startOffset = getStructuredDTDDocumentRegion().getEndOffset(startTag);
-				}
-				replaceText(this, startOffset, length, " %"); //$NON-NLS-1$
-				// now get rid of any NData since it is only allowed if the
-				// entity is a general entity and not a parameter entity
-				removeNData(this);
-			} else {
-				// get rid of percent region
-				ITextRegion percentRegion = getPercentRegion();
-				replaceText(this, getStructuredDTDDocumentRegion().getStartOffset(percentRegion), percentRegion.getLength(), ""); //$NON-NLS-1$
-			}
-
-			endRecording(this);
-		}
-	}
-
-	/**
-	 * Set the value of value.
-	 * 
-	 * @param v
-	 *            Value to assign to value.
-	 */
-	public void setValue(Object requestor, String v) {
-		if (!isExternalEntity()) {
-			if (!getValue().equals(v)) {
-				// then it makes sense to change the value
-				ITextRegion valueRegion = getNextQuotedLiteral(iterator());
-				String quoteChar = v.indexOf("\"") == -1 ? "\"" : "'"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				if (valueRegion != null) {
-					replaceText(requestor, getStructuredDTDDocumentRegion().getStartOffset(valueRegion), valueRegion.getLength(), quoteChar + v + quoteChar);
-				} else {
-					int startOffset = 0, length = 0;
-					RegionIterator iter = iterator();
-					ITextRegion region = getNextRegion(iter, DTDRegionTypes.NAME);
-					if (region == null) {
-						// create it after the percent if there is one
-						region = getPercentRegion();
-					}
-					if (region == null) {
-						// if still null, then create it after the element tag
-						region = getStartTag(iterator());
-					}
-
-					if (region != null) {
-						startOffset = getStructuredDTDDocumentRegion().getEndOffset(region);
-						replaceText(requestor, startOffset, 0, quoteChar + v + quoteChar);
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Set the value of value.
-	 * 
-	 * @param v
-	 *            Value to assign to value.
-	 */
-	public void setValue(String v) {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_ENTITY_VALUE_CHG")); //$NON-NLS-1$
-		setValue(this, v);
-		endRecording(this);
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/ExternalNode.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/ExternalNode.java
deleted file mode 100644
index 1a068c0..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/ExternalNode.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.dtd.core.internal.text.RegionIterator;
-import org.eclipse.wst.dtd.core.parser.DTDRegionTypes;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-
-// base class for nodes that can contain external content
-public abstract class ExternalNode extends NamedTopLevelNode {
-
-	String publicID;
-
-	String systemID;
-
-	public ExternalNode(DTDFile file, IStructuredDocumentRegion flatNode, String tagType) {
-		super(file, flatNode, tagType);
-	}
-
-	public ITextRegion getNextQuotedLiteral(RegionIterator iter) {
-		while (iter.hasNext()) {
-			ITextRegion region = iter.next();
-			if (region.getType().equals(DTDRegionTypes.SINGLEQUOTED_LITERAL) || region.getType().equals(DTDRegionTypes.DOUBLEQUOTED_LITERAL)) {
-				return region;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Get the value of publicID.
-	 * 
-	 * @return value of publicID.
-	 */
-	public String getPublicID() {
-		ITextRegion publicValue = getPublicValueRegion();
-		if (publicValue != null) {
-			return getValueFromQuotedRegion(publicValue);
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	public ITextRegion getPublicKeywordRegion(RegionIterator iter) {
-		return getNextRegion(iter, DTDRegionTypes.PUBLIC_KEYWORD);
-	}
-
-	public ITextRegion getPublicValueRegion() {
-		RegionIterator iter = iterator();
-
-		ITextRegion publicKeyword = getPublicKeywordRegion(iter);
-
-		if (publicKeyword != null && iter.hasNext()) {
-			ITextRegion quotedLiteral = getNextQuotedLiteral(iter);
-			if (quotedLiteral != null) {
-				return quotedLiteral;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Get the value of systemID.
-	 * 
-	 * @return value of systemID.
-	 */
-	public String getSystemID() {
-		ITextRegion systemValue = getSystemValueRegion();
-		if (systemValue != null) {
-			return getValueFromQuotedRegion(systemValue);
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	public ITextRegion getSystemKeywordRegion(RegionIterator iter) {
-		return getNextRegion(iter, DTDRegionTypes.SYSTEM_KEYWORD);
-	}
-
-	public ITextRegion getSystemValueRegion() {
-		RegionIterator iter = iterator();
-
-		ITextRegion systemKeyword = getSystemKeywordRegion(iter);
-		if (systemKeyword != null && iter.hasNext()) {
-			ITextRegion quotedLiteral = getNextQuotedLiteral(iter);
-			if (quotedLiteral != null) {
-				return quotedLiteral;
-			}
-		} else {
-			// try and see if there is a second quoted literal after a public
-			// keyword
-			iter = iterator();
-			ITextRegion publicKeyword = getPublicKeywordRegion(iter);
-
-			if (publicKeyword != null && iter.hasNext()) {
-				ITextRegion quotedLiteral = getNextQuotedLiteral(iter);
-				if (quotedLiteral != null && iter.hasNext()) {
-					// now get the second quoted literal
-					quotedLiteral = getNextQuotedLiteral(iter);
-					if (quotedLiteral != null) {
-						// got it!
-						return quotedLiteral;
-					}
-				}
-			}
-		}
-		return null;
-	}
-
-	public String getValueFromQuotedRegion(ITextRegion region) {
-		String type = region.getType();
-		if (type.equals(DTDRegionTypes.SINGLEQUOTED_LITERAL) || type.equals(DTDRegionTypes.DOUBLEQUOTED_LITERAL)) {
-			String text = getStructuredDTDDocumentRegion().getText(region);
-			return text.substring(1, text.length() - 1);
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * Set the value of publicID.
-	 * 
-	 * @param v
-	 *            Value to assign to publicID.
-	 */
-	public void setPublicID(Object requestor, String v) {
-		if (!v.equals(publicID)) {
-			publicID = v;
-			ITextRegion publicValue = getPublicValueRegion();
-			ITextRegion publicKeyword = getPublicKeywordRegion(iterator());
-			ITextRegion systemKeyword = getSystemKeywordRegion(iterator());
-			ITextRegion systemValue = getSystemValueRegion();
-
-			if (v.equals("")) { //$NON-NLS-1$
-				if (publicKeyword != null) {
-					// time to get rid of the public keyword and value
-					// and replace it with the system one
-					int startOffset = getStructuredDTDDocumentRegion().getStartOffset(publicKeyword);
-					String newString = "SYSTEM"; //$NON-NLS-1$
-					if (systemValue == null) {
-						newString += " \"\""; //$NON-NLS-1$
-					}
-					replaceText(requestor, startOffset, getStructuredDTDDocumentRegion().getEndOffset(publicValue) - startOffset, newString);
-				}
-			} else {
-				// here were setting a non empty value
-				String quoteChar = v.indexOf("\"") == -1 ? "\"" : "'"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				if (publicValue != null) {
-					replaceText(requestor, getStructuredDTDDocumentRegion().getStartOffset(publicValue), publicValue.getLength(), quoteChar + publicID + quoteChar);
-				} else {
-					// time to create stuff
-					if (publicKeyword != null) {
-						// then just put our new value after the keyword
-						replaceText(requestor, getStructuredDTDDocumentRegion().getEndOffset(publicKeyword), 0, " " + quoteChar + v + quoteChar); //$NON-NLS-1$
-					} else {
-						// we need the public keyword as well
-						if (systemKeyword != null) {
-							replaceText(requestor, getStructuredDTDDocumentRegion().getStartOffset(systemKeyword), systemKeyword.getLength(), "PUBLIC " + quoteChar + v + quoteChar); //$NON-NLS-1$
-						} else {
-							ITextRegion nameRegion = getNameRegion();
-							replaceText(requestor, getStructuredDTDDocumentRegion().getEndOffset(nameRegion), 0, " PUBLIC " + quoteChar + v + quoteChar); //$NON-NLS-1$
-						}
-					}
-				}
-			}
-		}
-	}
-
-
-	/**
-	 * Set the value of publicID.
-	 * 
-	 * @param v
-	 *            Value to assign to publicID.
-	 */
-	public void setPublicID(String v) {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_EXT_NODE_PUBLIC_ID_CHG")); //$NON-NLS-1$
-		setPublicID(this, v);
-		endRecording(this);
-	}
-
-	/**
-	 * Set the value of systemID.
-	 * 
-	 * @param v
-	 *            Value to assign to systemID.
-	 */
-	public void setSystemID(Object requestor, String v) {
-		if (!v.equals(systemID) || (getPublicKeywordRegion(iterator()) == null && getSystemKeywordRegion(iterator()) == null)) {
-			systemID = v;
-			String quoteChar = v.indexOf("\"") == -1 ? "\"" : "'"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			ITextRegion systemValue = getSystemValueRegion();
-			if (systemValue != null) {
-				replaceText(requestor, getStructuredDTDDocumentRegion().getStartOffset(systemValue), systemValue.getLength(), quoteChar + systemID + quoteChar);
-			} else {
-				ITextRegion systemKeyword = getSystemKeywordRegion(iterator());
-
-				// time to create stuff
-				if (systemKeyword != null) {
-					// then just put our new value after the keyword
-					replaceText(requestor, getStructuredDTDDocumentRegion().getEndOffset(systemKeyword), 0, " " + quoteChar + v + quoteChar); //$NON-NLS-1$
-				} else {
-					// see if we have a public keyword
-					ITextRegion publicKeyword = getPublicKeywordRegion(iterator());
-					if (publicKeyword == null) {
-						ITextRegion nameRegion = getNameRegion();
-
-						replaceText(requestor, getStructuredDTDDocumentRegion().getEndOffset(nameRegion), 0, " SYSTEM " + quoteChar + v + quoteChar); //$NON-NLS-1$
-					} else {
-						// put it after the public value region
-						ITextRegion publicValueRegion = getPublicValueRegion();
-						replaceText(requestor, getStructuredDTDDocumentRegion().getEndOffset(publicValueRegion), 0, " " + quoteChar + v + quoteChar); //$NON-NLS-1$
-					}
-
-				}
-			}
-
-		}
-	}
-
-
-	/**
-	 * Set the value of systemID.
-	 * 
-	 * @param v
-	 *            Value to assign to systemID.
-	 */
-	public void setSystemID(String v) {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_EXT_NODE_SYSTEM_ID_CHG")); //$NON-NLS-1$
-		setSystemID(this, v);
-		endRecording(this);
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Logger.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Logger.java
deleted file mode 100644
index 9bc12a1..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Logger.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.dtd.core;
-
-/**
- * @deprecated moved to internal package because only this plugin should be
- * using this Logger class.
- */
-public class Logger extends org.eclipse.wst.dtd.core.internal.Logger {
-	// see org.eclipse.wst.dtd.core.internal.Logger
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/NamedTopLevelNode.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/NamedTopLevelNode.java
deleted file mode 100644
index 5967273..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/NamedTopLevelNode.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import org.eclipse.wst.dtd.core.internal.text.RegionIterator;
-import org.eclipse.wst.dtd.core.parser.DTDRegionTypes;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-
-// interface for nodes that can exist at the top level in a dtdfile
-// eg. entity, notation, element, comment, attlist, or unrecognized stuff (ie
-// <junk dkfjdl>
-public abstract class NamedTopLevelNode extends TopLevelNode {
-
-	private String tagStartType;
-
-	public NamedTopLevelNode(DTDFile dtdFile, IStructuredDocumentRegion flatNode, String type) {
-		super(dtdFile, flatNode);
-		tagStartType = type;
-	}
-
-	public ITextRegion getNameRegion() {
-		// name region is located after the whitespace (which is after
-		// the elementtag
-		RegionIterator iter = iterator();
-		ITextRegion startTag = getNextRegion(iter, tagStartType);
-
-		if (!iter.hasNext()) {
-			return null;
-		}
-
-		ITextRegion region = iter.next();
-		if (!region.getType().equals(DTDRegionTypes.WHITESPACE)) {
-			return null;
-		}
-
-		if (!iter.hasNext()) {
-			return null;
-		}
-
-		region = iter.next();
-		if (region.getType().equals(DTDRegionTypes.NAME)) {
-			return region;
-		}
-
-		// we normally stop here, but for entities, we have to see if we are
-		// at a '%'. if so, we skip that and find the name after the
-		// whitespace again
-		if (tagStartType == DTDRegionTypes.ENTITY_TAG && region.getType().equals(DTDRegionTypes.PERCENT) && iter.hasNext()) {
-			region = iter.next();
-
-			if (!region.getType().equals(DTDRegionTypes.WHITESPACE)) {
-				return null;
-			}
-
-			if (!iter.hasNext()) {
-				return null;
-			}
-
-			region = iter.next();
-			if (region.getType().equals(DTDRegionTypes.NAME)) {
-				return region;
-			}
-		}
-
-		return null;
-	}
-
-	public ITextRegion getStartTag(RegionIterator iter) {
-		return getNextRegion(iter, tagStartType);
-	}
-
-	public ITextRegion getWhitespaceAfterName() {
-		ITextRegion nameRegion = getNameRegion();
-		RegionIterator iter = iterator();
-		// skip past the element tag region
-		ITextRegion elementTagRegion = getNextRegion(iter, tagStartType);
-		boolean foundName = false;
-		while (iter.hasNext()) {
-			ITextRegion region = iter.next();
-			if (!foundName && nameRegion != null && region == nameRegion) {
-				foundName = true;
-			}
-
-			if (region.getType().equals(DTDRegionTypes.WHITESPACE)) {
-				// there is no name region or we have already passed it
-				if (nameRegion == null || foundName) {
-					return region;
-				}
-			}
-		}
-		return null;
-	}
-
-	public void setName(Object requestor, String name) {
-		ITextRegion nameRegion = getNameRegion();
-		if (nameRegion != null) {
-			super.setName(requestor, name);
-		} else {
-			RegionIterator iter = iterator();
-			ITextRegion elementTagRegion = getNextRegion(iter, tagStartType);
-			int replaceLength = 0;
-			if (iter.hasNext()) {
-				ITextRegion region = iter.next();
-				if (region.getType().equals(DTDRegionTypes.WHITESPACE)) {
-					if (region.getLength() >= 2) {
-						// there are 2 spaces between 'ELEMENT' and the
-						// content
-						// Change replace length to 1 so that the new name and
-						// the content are separated by a single space
-						replaceLength = 1;
-					}
-				}
-			}
-
-			//      beginRecording(requestor, "Name Change");
-			String newText = " " + name; //$NON-NLS-1$
-			replaceText(requestor, getStructuredDTDDocumentRegion().getEndOffset(elementTagRegion), replaceLength, newText);
-			//      endRecording(requestor);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/NodeList.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/NodeList.java
deleted file mode 100644
index 4b4c71f..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/NodeList.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.dtd.core.parser.DTDRegionTypes;
-
-
-public class NodeList {
-	protected DTDFile dtdFile;
-
-	ArrayList listNodes = new ArrayList();
-
-	protected String listType;
-
-	public NodeList(DTDFile dtdFile, String tokenType) {
-		listType = tokenType;
-		this.dtdFile = dtdFile;
-	}
-
-	public Image getImage() {
-		if (listType == DTDRegionTypes.ELEMENT_TAG) {
-			return DTDCorePlugin.getInstance().getImage(DTDResource.FLDR_EL);
-		} else if (listType == DTDRegionTypes.ENTITY_TAG) {
-			return DTDCorePlugin.getInstance().getImage(DTDResource.FLDR_ENT);
-		} else if (listType == DTDRegionTypes.NOTATION_TAG) {
-			return DTDCorePlugin.getInstance().getImage(DTDResource.FLDR_NOT);
-		} else if (listType == DTDRegionTypes.COMMENT_START) {
-			return DTDCorePlugin.getInstance().getImage(DTDResource.FLDR_COMM);
-		} else if (listType == DTDRegionTypes.ATTLIST_TAG) {
-			return DTDCorePlugin.getInstance().getImage(DTDResource.FLDR_ATTLIST);
-		} else if (listType == DTDRegionTypes.UNKNOWN_CONTENT) {
-			return DTDCorePlugin.getInstance().getImage(DTDResource.FLDR_UNREC);
-		} else
-			return null;
-	}
-
-	public String getListType() {
-		return listType;
-	}
-
-	public String getName() {
-		if (listType == DTDRegionTypes.ELEMENT_TAG) {
-			return DTDCorePlugin.getDTDString("_UI_LABEL_NODE_LIST_ELEMENTS"); //$NON-NLS-1$
-		} else if (listType == DTDRegionTypes.ENTITY_TAG) {
-			return DTDCorePlugin.getDTDString("_UI_LABEL_NODE_LIST_ENTITIES"); //$NON-NLS-1$
-		} else if (listType == DTDRegionTypes.NOTATION_TAG) {
-			return DTDCorePlugin.getDTDString("_UI_LABEL_NODE_LIST_NOTATIONS"); //$NON-NLS-1$
-		} else if (listType == DTDRegionTypes.COMMENT_START) {
-			return DTDCorePlugin.getDTDString("_UI_LABEL_NODE_LIST_COMMENTS"); //$NON-NLS-1$
-		} else if (listType == DTDRegionTypes.ATTLIST_TAG) {
-			return DTDCorePlugin.getDTDString("_UI_LABEL_NODE_LIST_ATTRIBUTES"); //$NON-NLS-1$
-		} else if (listType == DTDRegionTypes.UNKNOWN_CONTENT) {
-			return DTDCorePlugin.getDTDString("_UI_LABEL_NODE_LIST_OTHER"); //$NON-NLS-1$
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	public ArrayList getNodes() {
-		listNodes.clear();
-		Iterator iter = dtdFile.getNodes().iterator();
-		while (iter.hasNext()) {
-			DTDNode node = (DTDNode) iter.next();
-			if (listType == DTDRegionTypes.ELEMENT_TAG && (node instanceof Element || node instanceof ParameterEntityReference)) {
-				listNodes.add(node);
-			} else if (listType == DTDRegionTypes.ATTLIST_TAG && node instanceof AttributeList) {
-				listNodes.add(node);
-			} else if (listType == DTDRegionTypes.ENTITY_TAG && node instanceof Entity) {
-				listNodes.add(node);
-			} else if (listType == DTDRegionTypes.NOTATION_TAG && node instanceof Notation) {
-				listNodes.add(node);
-			} else if (listType == DTDRegionTypes.COMMENT_START && node instanceof Comment) {
-				listNodes.add(node);
-			} else if (listType == DTDRegionTypes.UNKNOWN_CONTENT && node instanceof Unrecognized) {
-				listNodes.add(node);
-			}
-		}
-		return listNodes;
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Notation.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Notation.java
deleted file mode 100644
index 050b5f5..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Notation.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.dtd.core.parser.DTDRegionTypes;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-
-
-public class Notation extends ExternalNode {
-
-	public Notation(DTDFile file, IStructuredDocumentRegion flatNode) {
-		super(file, flatNode, DTDRegionTypes.NOTATION_TAG);
-	}
-
-	public Image getImage() {
-		return DTDCorePlugin.getInstance().getImage(DTDResource.NOTATIONICON);
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/ParameterEntityReference.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/ParameterEntityReference.java
deleted file mode 100644
index 6a82e97..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/ParameterEntityReference.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import java.util.List;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.dtd.core.internal.text.RegionIterator;
-import org.eclipse.wst.dtd.core.parser.DTDRegionTypes;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-
-public class ParameterEntityReference extends NamedTopLevelNode {
-
-
-
-	public class StartEndPair {
-		public int startOffset, endOffset;
-	}
-
-	private Entity cachedEntity = null;
-
-	public ParameterEntityReference(DTDFile file, IStructuredDocumentRegion flatNode) {
-		super(file, flatNode, DTDRegionTypes.COMMENT_START);
-	}
-
-	public Entity getEntityObject() {
-		if (cachedEntity != null && !cachedEntity.getName().equals(getReferencedEntity())) {
-			// if we have a cached entity, but the name doesnt match,
-			// null it now, so we perform a lookup
-			cachedEntity = null;
-		}
-
-		if (cachedEntity == null) {
-			List nodes = getDTDFile().getNodes();
-			for (int i = 0; i < nodes.size(); i++) {
-				DTDNode node = (DTDNode) nodes.get(i);
-				if (node instanceof Entity) {
-					Entity entity = (Entity) node;
-					if (entity.isParameterEntity() && entity.getName().equals(getReferencedEntity())) {
-						cachedEntity = entity;
-					}
-				}
-			}
-		}
-		return cachedEntity;
-	}
-
-	public Image getImage() {
-		return DTDCorePlugin.getInstance().getImage(DTDResource.ENTITYREFERENCEICON);
-	}
-
-	public String getName() {
-		return getStructuredDTDDocumentRegion().getText();
-	}
-
-	public String getReferencedEntity() {
-		String text = getName();
-		return getName().substring(1, text.length() - 1);
-	}
-
-	private void getStartAndEndOffsetForText(StartEndPair pair) {
-		RegionIterator iter = iterator();
-		ITextRegion commentStartTag = getStartTag(iter);
-		ITextRegion endCommentTag = getNextRegion(iter, DTDRegionTypes.COMMENT_END);
-		pair.endOffset = getStructuredDTDDocumentRegion().getEndOffset();
-		if (commentStartTag != null) {
-			pair.startOffset = getStructuredDTDDocumentRegion().getEndOffset(commentStartTag);
-		}
-		if (endCommentTag != null) {
-			pair.endOffset = getStructuredDTDDocumentRegion().getEndOffset(endCommentTag);
-		}
-	}
-
-	public String getText() {
-		String text = getStructuredDTDDocumentRegion().getText();
-		int flatNodeStart = getStructuredDTDDocumentRegion().getStartOffset();
-		StartEndPair pair = new StartEndPair();
-		getStartAndEndOffsetForText(pair);
-		return text.substring(pair.startOffset - flatNodeStart, pair.endOffset - flatNodeStart);
-	}
-
-	public void setReferencedEntity(Object requestor, String name) {
-		replaceText(requestor, getStructuredDTDDocumentRegion().getStartOffset(), getStructuredDTDDocumentRegion().getLength(), "%" + name + ";"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void setReferencedEntity(String name) {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_PARM_ENTITY_REF_CHG_ENTITY_REF")); //$NON-NLS-1$
-		setReferencedEntity(this, name);
-		endRecording(this);
-	}
-
-	public void setText(String newText) {
-		beginRecording(this, DTDCorePlugin.getDTDString("_UI_LABEL_PARM_ENTITY_REF_COMMENT_CHG")); //$NON-NLS-1$
-		int flatNodeStart = getStructuredDTDDocumentRegion().getStartOffset();
-		StartEndPair pair = new StartEndPair();
-		getStartAndEndOffsetForText(pair);
-		replaceText(this, pair.startOffset, pair.endOffset - pair.startOffset, newText);
-		endRecording(this);
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/TopLevelNode.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/TopLevelNode.java
deleted file mode 100644
index 4d92e0b..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/TopLevelNode.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.dtd.core.internal.text.RegionIterator;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-
-// interface for nodes that can exist at the top level in a dtdfile
-// eg. entity, notation, element, comment, attlist, or unrecognized stuff (ie
-// <junk dkfjdl>
-public abstract class TopLevelNode extends DTDNode {
-
-	private ArrayList flatNodes = new ArrayList();
-
-	public TopLevelNode(DTDFile dtdFile, IStructuredDocumentRegion flatNode) {
-		super(dtdFile, flatNode);
-		flatNodes.add(flatNode);
-	}
-
-	public void addWhitespaceStructuredDocumentRegion(IStructuredDocumentRegion node) {
-		flatNodes.add(node);
-	}
-
-	// specialize this so we delete the objects flat node range
-	// AND any whitespace
-	public void delete() {
-		beginRecording(getDTDFile(), DTDCorePlugin.getDTDString("_UI_LABEL_TOP_LEVEL_NODE_DELETE")); //$NON-NLS-1$
-		IStructuredDocumentRegion first = (IStructuredDocumentRegion) flatNodes.get(0);
-		IStructuredDocumentRegion last = (IStructuredDocumentRegion) flatNodes.get(flatNodes.size() - 1);
-		int startOffset = first.getStartOffset();
-		int endOffset = last.getEndOffset();
-
-		replaceText(getDTDFile(), startOffset, endOffset - startOffset, ""); //$NON-NLS-1$
-		endRecording(getDTDFile());
-	}
-
-	public ITextRegion getEndRegion() {
-		int size = flatNode.getRegions().size();
-		if (size > 0) {
-			return flatNode.getRegions().get(size - 1);
-		}
-		return null;
-	}
-
-	// includes what gettext gives us plus any whitespace
-	// trailing it
-	public String getFullText() {
-		StringBuffer sb = new StringBuffer();
-		Iterator iter = flatNodes.iterator();
-		while (iter.hasNext()) {
-			IStructuredDocumentRegion fNode = (IStructuredDocumentRegion) iter.next();
-			sb.append(fNode.getText());
-		}
-		return sb.toString();
-	}
-
-	public ITextRegion getStartRegion() {
-		if (flatNode.getRegions().size() > 0) {
-			return flatNode.getRegions().get(0);
-		}
-		return null;
-	}
-
-	public RegionIterator iterator() {
-		//    System.out.println("create region iter " + this.getClass() + " with
-		// start , end = " + getStartOffset() + ", " +getEndOffset());
-		return new RegionIterator(flatNode, getStartOffset(), getEndOffset());
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Unrecognized.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Unrecognized.java
deleted file mode 100644
index 8036eff..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/Unrecognized.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.dtd.core.internal.DTDCorePlugin;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-
-
-public class Unrecognized extends TopLevelNode {
-
-	public Unrecognized(DTDFile file, IStructuredDocumentRegion flatNode) {
-		super(file, flatNode);
-	}
-
-	public Image getImage() {
-		return DTDCorePlugin.getInstance().getImage(DTDResource.UNRECOGNIZEDICON);
-	}
-
-	public String getName() {
-		String text = getStructuredDTDDocumentRegion().getText();
-		if (text.length() <= 30) {
-			return text;
-		} else {
-			return text.substring(0, 29) + "..."; //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/builder/delegates/DTDTaskTagSeeker.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/builder/delegates/DTDTaskTagSeeker.java
deleted file mode 100644
index 558534c..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/builder/delegates/DTDTaskTagSeeker.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.builder.delegates;
-
-import org.eclipse.wst.dtd.core.parser.DTDRegionTypes;
-import org.eclipse.wst.sse.core.participants.TaskTagSeeker;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-
-public class DTDTaskTagSeeker extends TaskTagSeeker {
-	protected boolean isCommentRegion(IStructuredDocumentRegion region, ITextRegion textRegion) {
-		return textRegion.getType().equals(DTDRegionTypes.COMMENT_CONTENT);
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/content/ContentDescriberForDTD.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/content/ContentDescriberForDTD.java
deleted file mode 100644
index fa4c731..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/content/ContentDescriberForDTD.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.content;
-
-import org.eclipse.core.runtime.content.ITextContentDescriber;
-import org.eclipse.wst.common.encoding.AbstractContentDescriber;
-import org.eclipse.wst.common.encoding.IResourceCharsetDetector;
-import org.eclipse.wst.xml.core.contenttype.XMLResourceEncodingDetector;
-
-
-
-
-public class ContentDescriberForDTD extends AbstractContentDescriber implements ITextContentDescriber {
-
-	// same rules as for XML
-	protected IResourceCharsetDetector getDetector() {
-		return new XMLResourceEncodingDetector();
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/document/DTDModel.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/document/DTDModel.java
deleted file mode 100644
index b04cf2c..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/document/DTDModel.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-/*
- * Created on 28-Aug-03
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-package org.eclipse.wst.dtd.core.document;
-
-/**
- * @author kboo
- * 
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public interface DTDModel {
-
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/document/DTDModelImpl.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/document/DTDModelImpl.java
deleted file mode 100644
index 37ec8b7..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/document/DTDModelImpl.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.document;
-
-import java.io.File;
-import java.util.Iterator;
-import java.util.Vector;
-
-import org.eclipse.wst.dtd.core.DTDFile;
-import org.eclipse.wst.dtd.core.DTDNode;
-import org.eclipse.wst.dtd.core.Entity;
-import org.eclipse.wst.dtd.core.NodeList;
-import org.eclipse.wst.dtd.core.event.IDTDFileListener;
-import org.eclipse.wst.dtd.core.event.NodesEvent;
-import org.eclipse.wst.dtd.core.util.DTDReferenceUpdater;
-import org.eclipse.wst.dtd.core.util.LabelValuePair;
-import org.eclipse.wst.sse.core.AbstractStructuredModel;
-import org.eclipse.wst.sse.core.IndexedRegion;
-import org.eclipse.wst.sse.core.events.IStructuredDocumentListener;
-import org.eclipse.wst.sse.core.events.NewDocumentEvent;
-import org.eclipse.wst.sse.core.events.NoChangeEvent;
-import org.eclipse.wst.sse.core.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.events.RegionsReplacedEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentRegionsReplacedEvent;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-
-
-public final class DTDModelImpl extends AbstractStructuredModel implements IStructuredDocumentListener, DTDModel {
-
-	public static boolean deleteFile(String fileName) {
-		boolean result = false;
-
-		// create the temp File object
-		File file = new File(fileName);
-		if (file.exists())
-			result = file.delete();
-		return result;
-	}
-
-	private DTDFile document;
-
-	//private List errorMessages = new ArrayList();
-
-	// entity reference names found in the conditional IGNORE sections
-	private Vector ignoredEntityRefs;
-
-	private boolean refreshRequired = false;
-
-	protected DTDReferenceUpdater refUpdater = new DTDReferenceUpdater();
-
-	public DTDModelImpl() {
-		super();
-		document = new DTDFile(this);
-		document.addDTDFileListener(new IDTDFileListener() {
-
-			public void nodeChanged(DTDNode node) {
-				if (node instanceof Entity) {
-					Entity entity = (Entity) node;
-					if (entity.isParameterEntity() && entity.isExternalEntity()) {
-						// just say they have changed for now
-						setReferencedModelsChanged();
-					}
-				}
-			}
-
-			public void nodesAdded(NodesEvent event) {
-				checkIfExternalReferencesChanged(event);
-			}
-
-			public void nodesRemoved(NodesEvent event) {
-				checkIfExternalReferencesChanged(event);
-			}
-		});
-	}
-
-	public void beginRecording(Object requester, String label) {
-		super.beginRecording(requester, label);
-		// clear reference updater cache
-		getReferenceUpdater().clearCache();
-	}
-
-	private void checkIfExternalReferencesChanged(NodesEvent event) {
-		Iterator iter = event.getNodes().iterator();
-		while (iter.hasNext()) {
-			DTDNode node = (DTDNode) iter.next();
-			if (node instanceof Entity) {
-				Entity entity = (Entity) node;
-				if (entity.isParameterEntity() && entity.isExternalEntity()) {
-					// just say they have changed for now
-					setReferencedModelsChanged();
-				}
-			}
-		}
-	}
-
-	//
-	// The following function helps determine the list of things that
-	// can be used in a parameter entity reference content
-	// Optional parameter is to allow the currently used DTDEntity to
-	// be included in the combobox.
-	//
-	public LabelValuePair[] createParmEntityContentItems(Entity entity) {
-		NodeList entities = getDTDFile().getEntities();
-
-		Vector items = new Vector();
-
-		if (entity != null) {
-			String name = "%" + entity.getName() + ";"; //$NON-NLS-1$ //$NON-NLS-2$
-			items.addElement(new LabelValuePair(name, name));
-		}
-
-		for (Iterator i = entities.getNodes().iterator(); i.hasNext();) {
-			Entity entityAt = (Entity) i.next();
-			if (entityAt.isParameterEntity() && entityAt.isExternalEntity()) {
-				String name = "%" + entityAt.getName() + ";"; //$NON-NLS-1$ //$NON-NLS-2$
-				items.addElement(new LabelValuePair(name, name));
-			}
-		}
-		LabelValuePair[] comboArray = new LabelValuePair[items.size()];
-		items.copyInto(comboArray);
-		return comboArray;
-	}
-
-	public void endRecording(Object requester) {
-		super.endRecording(requester);
-		// clear reference updater cache
-		getReferenceUpdater().clearCache();
-	}
-
-
-	public DTDFile getDTDFile() {
-		return document;
-	}
-
-	// Returns entity reference names that are in
-	// the conditional IGNORE sections.
-	public Vector getIgnoredEntityRefs() {
-		if (ignoredEntityRefs == null)
-			ignoredEntityRefs = new Vector();
-		return ignoredEntityRefs;
-	}
-
-	public IndexedRegion getIndexedRegion(int offset) {
-		if (this.document == null)
-			return null;
-		//    System.out.println("getNode at " + offset + " returning = " +
-		// this.document.getNodeAt(offset));
-
-		return this.document.getNodeAt(offset);
-	}
-
-	public DTDReferenceUpdater getReferenceUpdater() {
-		return refUpdater;
-	}
-
-	public boolean isReferencedModelsChanged() {
-		return refreshRequired;
-	}
-
-	public boolean isRefreshRequired() {
-		return refreshRequired;
-	}
-
-	public void newModel(NewDocumentEvent flatModelEvent) {
-		document.newModel(flatModelEvent);
-		//    System.out.println("\nnewmodel");
-		outputStructuredDocument(flatModelEvent);
-	}
-
-	public void noChange(NoChangeEvent flatModelEvent) {
-		//    System.out.println("\nnochange");
-		outputStructuredDocument(flatModelEvent);
-
-	}
-
-	public void nodesReplaced(StructuredDocumentRegionsReplacedEvent flatModelEvent) {
-		//    System.out.println("\nnodesreplaced");
-		document.nodesReplaced(flatModelEvent);
-		outputStructuredDocument(flatModelEvent);
-
-	}
-
-	public void outputStructuredDocument(StructuredDocumentEvent flatModelEvent) {
-		//      System.out.println("structuredDocument source = '" +
-		// flatModelEvent.getStructuredDocument().getText() + "'");
-		//      System.out.println("new String = '" +
-		// flatModelEvent.getOriginalChanges() +"'");
-		//      System.out.println("deleted String = '" +
-		// flatModelEvent.getDeletedText() +"'");
-		//      Enumeration e =
-		// flatModelEvent.getStructuredDocument().getNodes().elements();
-		//      int i = 0;
-		//      for (; e.hasMoreElements(); i++)
-		//      {
-		//        BasicStructuredDocumentRegion node =
-		// (BasicStructuredDocumentRegion) e.nextElement();
-		//        outputStructuredDocumentRegion(node);
-		//        System.out.println(" " + i +". " + node.hashCode() + " '"
-		// +node.getText() + "'");
-		//        }
-	}
-
-	public void outputStructuredDocumentRegion(IStructuredDocumentRegion flatNode) {
-		//      int size = flatNode.getNumberOfRegions();
-		//      for (int i = 0; i < size; i++)
-		//      {
-		//        Region region = (Region) flatNode.getRegions().get(i);
-		//        System.out.println(i + ". " + region.getType());
-
-		//      } // end of for ()
-
-	}
-
-	public void regionChanged(RegionChangedEvent flatModelEvent) {
-		//    System.out.println("\nregion changed");
-		document.regionChanged(flatModelEvent);
-		//      System.out.println("= " +
-		// flatModelEvent.getStructuredDocumentRegion().getText());
-		//      System.out.println("region changed " +
-		// flatModelEvent.getRegion().hashCode() + " = " +
-		// flatModelEvent.getRegion());
-
-		outputStructuredDocument(flatModelEvent);
-	}
-
-	public void regionsReplaced(RegionsReplacedEvent flatModelEvent) {
-		//    System.out.println("\nregion replaced");
-		document.regionsReplaced(flatModelEvent);
-		outputStructuredDocument(flatModelEvent);
-	}
-
-	public void setReferencedModelsChanged() {
-		refreshRequired = true;
-	}
-
-	public void setRefreshRequired(boolean value) {
-		refreshRequired = value;
-	}
-
-
-	/**
-	 * @param newStructuredDocument
-	 *            org.eclipse.wst.sse.core.text.IStructuredDocument
-	 */
-	public void setStructuredDocument(IStructuredDocument newStructuredDocument) {
-		IStructuredDocument oldStructuredDocument = super.getStructuredDocument();
-		if (newStructuredDocument == oldStructuredDocument)
-			return; // noting to do
-
-		if (oldStructuredDocument != null)
-			oldStructuredDocument.removeDocumentChangingListener(this);
-		super.setStructuredDocument(newStructuredDocument);
-		if (newStructuredDocument.getLength() > 0) {
-			newModel(new NewDocumentEvent(newStructuredDocument, this));
-		}
-		if (newStructuredDocument != null)
-			newStructuredDocument.addDocumentChangingListener(this);
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/encoding/DTDDocumentCharsetDetector.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/encoding/DTDDocumentCharsetDetector.java
deleted file mode 100644
index 9cd2207..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/encoding/DTDDocumentCharsetDetector.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-/*
- * Created on 28-Aug-03
- * 
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-package org.eclipse.wst.dtd.core.encoding;
-
-import java.io.IOException;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.common.encoding.AbstractResourceEncodingDetector;
-import org.eclipse.wst.sse.core.document.DocumentReader;
-import org.eclipse.wst.sse.core.document.IDocumentCharsetDetector;
-import org.eclipse.wst.xml.core.encoding.XMLDocumentCharsetDetector;
-
-
-/**
- * @author kboo
- * 
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public final class DTDDocumentCharsetDetector extends AbstractResourceEncodingDetector implements IDocumentCharsetDetector {
-
-	public String getSpecDefaultEncoding() {
-		// by default, UTF-8 as per XML spec
-		final String enc = "UTF-8"; //$NON-NLS-1$
-		return enc;
-	}
-
-	/**
-	 *  
-	 */
-
-	protected void parseInput() throws IOException {
-		IDocumentCharsetDetector documentEncodingDetector = new XMLDocumentCharsetDetector();
-		documentEncodingDetector.set(fReader);
-		fEncodingMemento = documentEncodingDetector.getEncodingMemento();
-
-	}
-
-	public void set(IDocument document) {
-		set(new DocumentReader(document, 0));
-
-
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/encoding/DTDDocumentLoader.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/encoding/DTDDocumentLoader.java
deleted file mode 100644
index 6767d39..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/encoding/DTDDocumentLoader.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.encoding;
-
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.wst.dtd.core.internal.text.DTDStructuredDocumentReParser;
-import org.eclipse.wst.dtd.core.parser.DTDRegionParser;
-import org.eclipse.wst.dtd.core.rules.StructuredTextPartitionerForDTD;
-import org.eclipse.wst.sse.core.document.AbstractDocumentLoader;
-import org.eclipse.wst.sse.core.document.IDocumentCharsetDetector;
-import org.eclipse.wst.sse.core.document.IEncodedDocument;
-import org.eclipse.wst.sse.core.document.StructuredDocumentFactory;
-import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument;
-import org.eclipse.wst.sse.core.parser.RegionParser;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-
-
-public final class DTDDocumentLoader extends AbstractDocumentLoader {
-
-	public DTDDocumentLoader() {
-		super();
-	}
-
-	public IDocumentPartitioner getDefaultDocumentPartitioner() {
-		return new StructuredTextPartitionerForDTD();
-	}
-
-	public IDocumentCharsetDetector getDocumentEncodingDetector() {
-		if (fDocumentEncodingDetector == null) {
-			fDocumentEncodingDetector = new DTDDocumentCharsetDetector();
-		}
-		return fDocumentEncodingDetector;
-	}
-
-	public RegionParser getParser() {
-		return new DTDRegionParser();
-	}
-
-	protected String getSpecDefaultEncoding() {
-		String enc = "UTF-8"; //$NON-NLS-1$
-		return enc;
-	}
-
-	protected IEncodedDocument newEncodedDocument() {
-		IStructuredDocument document = StructuredDocumentFactory.getNewStructuredDocumentInstance(getParser());
-		DTDStructuredDocumentReParser reParser = new DTDStructuredDocumentReParser();
-		reParser.setStructuredDocument(document);
-		if (document instanceof BasicStructuredDocument) {
-			((BasicStructuredDocument) document).setReParser(reParser);
-		}
-		return document;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/event/IDTDFileListener.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/event/IDTDFileListener.java
deleted file mode 100644
index 235b60a..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/event/IDTDFileListener.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.event;
-
-import org.eclipse.wst.dtd.core.DTDNode;
-
-public interface IDTDFileListener {
-
-	public void nodeChanged(DTDNode node);
-
-	public void nodesAdded(NodesEvent event);
-
-	public void nodesRemoved(NodesEvent event);
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/event/NodesEvent.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/event/NodesEvent.java
deleted file mode 100644
index ceaca1f..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/event/NodesEvent.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.event;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.dtd.core.DTDNode;
-
-
-public final class NodesEvent {
-	private ArrayList changedNodes = new ArrayList();
-
-	public void add(DTDNode changedNode) {
-		changedNodes.add(changedNode);
-	}
-
-	public List getNodes() {
-		return changedNodes;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/DTDCorePlugin.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/DTDCorePlugin.java
deleted file mode 100644
index 8a2903b..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/DTDCorePlugin.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.internal;
-
-import java.text.MessageFormat;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-public class DTDCorePlugin extends AbstractUIPlugin {
-	private static DTDCorePlugin instance;
-
-	public static Image getDTDImage(String iconName) {
-		return getInstance().getImage(iconName);
-	}
-
-	public static ImageDescriptor getDTDImageDescriptor(String iconName) {
-		String thisID = getInstance().getBundle().getSymbolicName();
-		return AbstractUIPlugin.imageDescriptorFromPlugin(thisID, iconName);
-	}
-
-	public static String getDTDString(String key) {
-		// In case it is invoked from a command line
-		if (getInstance() == null) {
-			return ""; //$NON-NLS-1$
-		}
-
-		return getInstance().getString(key);
-	}
-
-	public synchronized static DTDCorePlugin getInstance() {
-		return instance;
-	}
-
-	public static DTDCorePlugin getPlugin() {
-		return instance;
-	}
-
-	private ResourceBundle resourceBundle;
-
-	public DTDCorePlugin() {
-		super();
-		instance = this;
-		try {
-			resourceBundle = Platform.getResourceBundle(Platform
-					.getBundle("org.eclipse.wst.dtd.core")); //$NON-NLS-1$
-		} catch (java.util.MissingResourceException exception) {
-			//B2BUtilPlugin.getPlugin().getMsgLogger().write(B2BUtilPlugin.getGUIString("_WARN_PLUGIN_PROPERTIES_MISSING")
-			// + descriptor.getLabel());
-			resourceBundle = null;
-		}
-	}
-
-	public Image getImage(String iconName) {
-		ImageRegistry imageRegistry = getImageRegistry();
-		Image image = imageRegistry.get(iconName);
-
-		if (image == null) {
-			String thisID = getInstance().getBundle().getSymbolicName();
-			imageRegistry.put(iconName, imageDescriptorFromPlugin(thisID,
-					iconName));
-			image = imageRegistry.get(iconName);
-		}
-
-		return image;
-	}
-
-	public ResourceBundle getResourceBundle() {
-		return resourceBundle;
-	}
-
-	/**
-	 * This gets the string resource.
-	 */
-	public String getString(String key) {
-		return getResourceBundle().getString(key);
-	}
-
-	/**
-	 * This gets the string resource and does one substitution.
-	 */
-	public String getString(String key, Object s1) {
-		return MessageFormat.format(getString(key), new Object[] { s1 });
-	}
-
-	/**
-	 * This gets the string resource and does two substitutions.
-	 */
-	public String getString(String key, Object s1, Object s2) {
-		return MessageFormat.format(getString(key), new Object[] { s1, s2 });
-	}
-
-	public void startup() {
-		instance = this;
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/Logger.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/Logger.java
deleted file mode 100644
index a0ba793..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/Logger.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.internal;
-
-import java.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.dtd.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;
-		}
-		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 (!isDebugging())
-			return;
-
-		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)) {
-					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;
-				}
-			}
-		}
-	}
-
-	/**
-	 * @return true if the platform is debugging
-	 */
-	public static boolean isDebugging() {
-		return Platform.inDebugMode();
-	}
-	
-	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.dtd.core/src/org/eclipse/wst/dtd/core/internal/text/DTDStructuredDocumentReParser.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/text/DTDStructuredDocumentReParser.java
deleted file mode 100644
index b4d24ea..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/text/DTDStructuredDocumentReParser.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.internal.text;
-
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.text.StructuredDocumentReParser;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.IStructuredTextReParser;
-
-
-public class DTDStructuredDocumentReParser extends StructuredDocumentReParser {
-
-	public StructuredDocumentEvent checkForCrossStructuredDocumentRegionBoundryCases() {
-		IStructuredDocumentRegion startNode = fStructuredDocument.getRegionAtCharacterOffset(fStart);
-		IStructuredDocumentRegion endNode = fStructuredDocument.getRegionAtCharacterOffset(fStart + fLengthToReplace - 1);
-		return reparse(startNode.getStart(), endNode.getEnd());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.internal.text.StructuredDocumentReParser#newInstance()
-	 */
-	public IStructuredTextReParser newInstance() {
-		return new DTDStructuredDocumentReParser();
-	}
-
-	protected StructuredDocumentEvent reparse(IStructuredDocumentRegion dirtyStart, IStructuredDocumentRegion dirtyEnd) {
-		return super.reparse(dirtyStart, dirtyEnd);
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/text/DTDStructuredDocumentRegionFactory.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/text/DTDStructuredDocumentRegionFactory.java
deleted file mode 100644
index 816ffac..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/text/DTDStructuredDocumentRegionFactory.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.internal.text;
-
-import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-
-
-public class DTDStructuredDocumentRegionFactory {
-	public static final int DTD_GENERIC = 5;
-
-	public static IStructuredDocumentRegion createStructuredDocumentRegion(int type) {
-		IStructuredDocumentRegion instance = null;
-		switch (type) {
-			case DTD_GENERIC :
-				instance = new BasicStructuredDocumentRegion();
-				break;
-			default :
-				break;
-		}
-		return instance;
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/text/RegionIterator.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/text/RegionIterator.java
deleted file mode 100644
index c363a21..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/text/RegionIterator.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.internal.text;
-
-import java.util.NoSuchElementException;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-
-
-public class RegionIterator {
-
-	private int currentIndex;
-
-	//private IStructuredDocumentRegion flatNode;
-	private ITextRegionList regions;
-	//private int startOffset, endOffset;
-	private ITextRegion startRegion, endRegion;
-
-	public RegionIterator(IStructuredDocumentRegion node) {
-		this(node, node.getStart(), node.getEnd());
-	}
-
-	public RegionIterator(IStructuredDocumentRegion node, int startOffset, int endOffset) {
-		regions = node.getRegions();
-		startRegion = node.getRegionAtCharacterOffset(startOffset);
-		endRegion = node.getRegionAtCharacterOffset(endOffset - 1);
-
-		for (int i = 0; i < regions.size(); i++) {
-			ITextRegion region = regions.get(i);
-			if (startRegion == region) {
-				currentIndex = i;
-				break;
-			}
-		}
-	}
-
-	public RegionIterator(ITextRegionList regions) {
-		this.regions = regions;
-		startRegion = regions.get(0);
-		endRegion = regions.get(regions.size() - 1);
-		currentIndex = 0;
-		//    this(node, node.getStart(), node.getEnd());
-	}
-
-	public boolean hasNext() {
-		if (currentIndex < regions.size()) {
-			return currentIndex <= regions.indexOf(endRegion);
-		}
-		return false;
-	}
-
-	public boolean hasPrevious() {
-		if (currentIndex >= 0) {
-			return currentIndex >= regions.indexOf(startRegion);
-		}
-		return false;
-	}
-
-	public ITextRegion next() {
-		if (hasNext()) {
-			return regions.get(currentIndex++);
-		}
-		throw new NoSuchElementException();
-	}
-
-	public ITextRegion previous() {
-		if (hasPrevious()) {
-			return regions.get(--currentIndex);
-		}
-		throw new NoSuchElementException();
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/modelhandler/DTDModelDumper.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/modelhandler/DTDModelDumper.java
deleted file mode 100644
index abdf741..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/modelhandler/DTDModelDumper.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.modelhandler;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.encoding.EncodingRule;
-import org.eclipse.wst.sse.core.IStructuredModel;
-import org.eclipse.wst.sse.core.ModelDumper;
-
-
-public final class DTDModelDumper implements ModelDumper {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.ModelDumper#dump(org.eclipse.wst.sse.core.IStructuredModel,
-	 *      java.io.OutputStream, org.eclipse.wst.common.encoding.EncodingRule,
-	 *      org.eclipse.core.resources.IFile)
-	 */
-	public void dump(IStructuredModel model, OutputStream outputStream, EncodingRule encodingRule, IFile iFile) throws UnsupportedEncodingException, IOException, CoreException {
-		// TODO Auto-generated method stub
-		System.out.println("Implement DTDModelDumper.dump()"); //$NON-NLS-1$
-
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/modelhandler/DTDModelLoader.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/modelhandler/DTDModelLoader.java
deleted file mode 100644
index 896c24d..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/modelhandler/DTDModelLoader.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.modelhandler;
-
-import org.eclipse.wst.dtd.core.document.DTDModelImpl;
-import org.eclipse.wst.dtd.core.encoding.DTDDocumentLoader;
-import org.eclipse.wst.sse.core.AbstractModelLoader;
-import org.eclipse.wst.sse.core.IStructuredModel;
-import org.eclipse.wst.sse.core.ModelLoader;
-import org.eclipse.wst.sse.core.document.IDocumentLoader;
-
-
-
-public final class DTDModelLoader extends AbstractModelLoader {
-	public DTDModelLoader() {
-		super();
-	}
-
-	public IDocumentLoader getDocumentLoader() {
-		if (documentLoaderInstance == null) {
-			documentLoaderInstance = new DTDDocumentLoader();
-		}
-		return documentLoaderInstance;
-	}
-
-	public ModelLoader newInstance() {
-		return new DTDModelLoader();
-	}
-
-	public IStructuredModel newModel() {
-		IStructuredModel model = new DTDModelImpl();
-		// now done in create
-		//model.setStructuredDocument(createNewStructuredDocument());
-		//model.setFactoryRegistry(defaultFactoryRegistry());
-		return model;
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/modelhandler/ModelHandlerForDTD.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/modelhandler/ModelHandlerForDTD.java
deleted file mode 100644
index b1f4dc1..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/modelhandler/ModelHandlerForDTD.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.modelhandler;
-
-import org.eclipse.wst.dtd.core.encoding.DTDDocumentCharsetDetector;
-import org.eclipse.wst.dtd.core.encoding.DTDDocumentLoader;
-import org.eclipse.wst.sse.core.ModelLoader;
-import org.eclipse.wst.sse.core.document.IDocumentCharsetDetector;
-import org.eclipse.wst.sse.core.document.IDocumentLoader;
-import org.eclipse.wst.sse.core.modelhandler.AbstractModelHandler;
-import org.eclipse.wst.sse.core.modelhandler.IModelHandler;
-
-
-public final class ModelHandlerForDTD extends AbstractModelHandler implements IModelHandler {
-	private static String AssociatedContentTypeId = "org.eclipse.wst.dtd.core.dtdsource"; //$NON-NLS-1$
-	private static String ModelHandlerID = "org.eclipse.wst.dtd.core.modelhandler"; //$NON-NLS-1$
-
-	public ModelHandlerForDTD() {
-		super();
-		setId(ModelHandlerID);
-		setAssociatedContentTypeId(AssociatedContentTypeId);
-	}
-
-	public IDocumentLoader getDocumentLoader() {
-		return new DTDDocumentLoader();
-	}
-
-	public IDocumentCharsetDetector getEncodingDetector() {
-		return new DTDDocumentCharsetDetector();
-	}
-
-	public ModelLoader getModelLoader() {
-		return new DTDModelLoader();
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/parser/DTDRegion.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/parser/DTDRegion.java
deleted file mode 100644
index 69efada..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/parser/DTDRegion.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.parser;
-
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.parser.ContextRegion;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-
-
-
-public class DTDRegion extends ContextRegion {
-
-
-	public DTDRegion(String newContext, int newStart, int newLength) {
-		super(newContext, newStart, newLength, newLength);
-	}
-
-
-	public StructuredDocumentEvent updateModel(Object requester, IStructuredDocumentRegion flatnode, String changes, int requestStart, int requestLength) {
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/parser/DTDRegionFactory.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/parser/DTDRegionFactory.java
deleted file mode 100644
index fbcdef4..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/parser/DTDRegionFactory.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.parser;
-
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-public class DTDRegionFactory implements DTDRegionTypes {
-	public static ITextRegion createRegion(String tokenKind, int start, int length) {
-		ITextRegion region = null;
-		if (tokenKind != null) {
-			region = new DTDRegion(tokenKind, start, length);
-		}
-		return region;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/parser/DTDRegionParser.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/parser/DTDRegionParser.java
deleted file mode 100644
index c6a2b99..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/parser/DTDRegionParser.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.parser;
-
-import java.io.Reader;
-import java.io.StringReader;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Vector;
-
-import org.eclipse.wst.dtd.core.internal.text.DTDStructuredDocumentRegionFactory;
-import org.eclipse.wst.dtd.core.tokenizer.DTDTokenizer;
-import org.eclipse.wst.dtd.core.tokenizer.Token;
-import org.eclipse.wst.sse.core.parser.RegionParser;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-
-public class DTDRegionParser implements RegionParser {
-	private Vector cachedRegions = null;
-	private DTDTokenizer tokenizer = null;
-	private IStructuredDocumentRegion cachedNode = null; // top of node chain
-
-	public RegionParser newInstance() {
-		return new DTDRegionParser();
-	}
-
-	private IStructuredDocumentRegion addNewNodes(IStructuredDocumentRegion lastNode, Vector regions) {
-		IStructuredDocumentRegion leadingSpaceNode = null;
-		IStructuredDocumentRegion contentNode = null;
-		IStructuredDocumentRegion trailingSpaceNode = null;
-		LinkedList nodeSeeds = new LinkedList();
-		int nRegions = regions.size();
-		int leadingSpaceEnd = -1;
-		int trailingSpaceBegin = nRegions;
-
-		// find leading space
-		nodeSeeds.clear();
-		for (int i = 0; i < nRegions; i++) {
-			ITextRegion region = (ITextRegion) regions.get(i);
-			String type = region.getType();
-			if (isBlankRegion(type)) {
-				leadingSpaceEnd = i;
-				nodeSeeds.addLast(region);
-			} else {
-				break;
-			}
-		}
-		if (!nodeSeeds.isEmpty()) {
-			leadingSpaceNode = createNode(nodeSeeds);
-			if (lastNode != null) {
-				lastNode.setNext(leadingSpaceNode);
-				leadingSpaceNode.setPrevious(lastNode);
-			}
-			lastNode = leadingSpaceNode;
-		}
-
-		// find trailing space
-		if (leadingSpaceEnd < nRegions - 1) {
-			nodeSeeds.clear();
-			for (int i = nRegions - 1; 0 <= i; i--) {
-				ITextRegion region = (ITextRegion) regions.get(i);
-				String type = ((ITextRegion) regions.get(i)).getType();
-				if (isBlankRegion(type)) {
-					trailingSpaceBegin = i;
-					nodeSeeds.addFirst(region);
-				} else {
-					break;
-				}
-			}
-			if (!nodeSeeds.isEmpty()) {
-				trailingSpaceNode = createNode(nodeSeeds);
-			}
-
-			nodeSeeds.clear();
-			for (int i = leadingSpaceEnd + 1; i < trailingSpaceBegin; i++) {
-				nodeSeeds.addLast(regions.get(i));
-			}
-			if (!nodeSeeds.isEmpty()) {
-				contentNode = createNode(nodeSeeds);
-				if (lastNode != null) {
-					lastNode.setNext(contentNode);
-					contentNode.setPrevious(lastNode);
-				}
-				lastNode = contentNode;
-			}
-			if (trailingSpaceNode != null) {
-				lastNode.setNext(trailingSpaceNode);
-				trailingSpaceNode.setPrevious(lastNode);
-				lastNode = trailingSpaceNode;
-			}
-		}
-
-		return lastNode;
-	}
-
-	private IStructuredDocumentRegion createNode(LinkedList regions) {
-		if (regions.size() == 0) {
-			return null;
-		}
-
-		IStructuredDocumentRegion node = DTDStructuredDocumentRegionFactory.createStructuredDocumentRegion(DTDStructuredDocumentRegionFactory.DTD_GENERIC);
-		int start = ((ITextRegion) regions.getFirst()).getStart();
-		int length = ((ITextRegion) regions.getLast()).getEnd() - start;
-		node.setStart(start);
-		node.setLength(length);
-		for (ListIterator i = regions.listIterator(0); i.hasNext();) {
-			ITextRegion region = (ITextRegion) i.next();
-			node.addRegion(region);
-			region.adjustStart(-start);
-		}
-		node.setEnded(true);
-
-		return node;
-	}
-
-	private IStructuredDocumentRegion createNodeChain(List regions) {
-		IStructuredDocumentRegion headNode = null;
-		IStructuredDocumentRegion lastNode = null;
-		Vector nodeSeeds = new Vector();
-
-		for (Iterator e = regions.iterator(); e.hasNext();) {
-			ITextRegion region = (ITextRegion) e.next();
-			String type = region.getType();
-			// If the following regions appear,
-			// a previous node is closed in front of it.
-			if (!nodeSeeds.isEmpty() && isBeginningRegion(type)) {
-				lastNode = addNewNodes(lastNode, nodeSeeds);
-				nodeSeeds.clear();
-			}
-			nodeSeeds.addElement(region);
-
-			// The following regions close the current node.
-			if (!nodeSeeds.isEmpty() && isEndingRegion(type)) {
-				lastNode = addNewNodes(lastNode, nodeSeeds);
-				nodeSeeds.clear();
-			}
-
-			if (headNode == null && lastNode != null) {
-				headNode = findFirstNode(lastNode);
-			}
-		}
-
-		// close current node forcibly.
-		if (!nodeSeeds.isEmpty()) {
-			lastNode = addNewNodes(lastNode, nodeSeeds);
-			if (headNode == null && lastNode != null) {
-				headNode = findFirstNode(lastNode);
-			}
-		}
-		return headNode;
-	}
-
-	private IStructuredDocumentRegion findFirstNode(IStructuredDocumentRegion node) {
-		IStructuredDocumentRegion firstNode = node;
-		IStructuredDocumentRegion prevNode = null;
-		while ((prevNode = firstNode.getPrevious()) != null) {
-			firstNode = prevNode;
-		}
-		return firstNode;
-	}
-
-	public IStructuredDocumentRegion getDocumentRegions() {
-		if (cachedNode != null) {
-			return cachedNode;
-		}
-
-		List regions = getRegions();
-		IStructuredDocumentRegion headNode = createNodeChain(regions);
-		cachedNode = headNode;
-
-		return headNode;
-	}
-
-	public List getRegions() {
-		if (cachedRegions != null) {
-			return cachedRegions;
-		}
-
-		Vector regions = new Vector();
-		Token currentToken = null;
-		do {
-			try {
-				currentToken = (Token) tokenizer.yylex();
-				if (currentToken != null) {
-					ITextRegion region = DTDRegionFactory.createRegion(currentToken.getType(), currentToken.getStartOffset(), currentToken.getLength());
-					regions.add(region);
-				}
-			} catch (java.io.FileNotFoundException e) {
-				System.out.println("File not found"); //$NON-NLS-1$
-			} catch (java.io.IOException e) {
-				System.out.println("Error opening file"); //$NON-NLS-1$
-			}
-		} while (currentToken != null);
-
-		cachedRegions = regions;
-		return regions;
-	}
-
-	public void reset(Reader reader) {
-		if (tokenizer == null) {
-			try {
-				tokenizer = new DTDTokenizer(reader);
-			} catch (ArrayIndexOutOfBoundsException e) {
-				System.out.println("Usage : java DTDTokenizer <inputfile>"); //$NON-NLS-1$
-			}
-		} else {
-			try {
-				tokenizer.yyreset(reader);
-			} catch (java.io.IOException e) {
-				System.out.println("Error opening file"); //$NON-NLS-1$
-			}
-		}
-
-		cachedNode = null;
-		cachedRegions = null;
-	}
-
-	/**
-	 * An additional offset for use with any position-dependant parsing rules
-	 */
-	public void reset(Reader reader, int offset) {
-		reset(reader);
-	}
-
-	public void reset(String input) {
-		reset(new StringReader(input));
-	}
-
-	public void reset(String input, int offset) {
-		reset(input);
-	}
-
-	// never used
-	 DTDTokenizer getTokenizer() {
-		return tokenizer;
-	}
-
-	private boolean isBeginningRegion(String type) {
-		return (type == DTDRegionTypes.START_TAG) || (type == DTDRegionTypes.ENTITY_PARM);
-	}
-
-	private boolean isBlankRegion(String type) {
-		return (type == DTDRegionTypes.WHITESPACE);
-	}
-
-	private boolean isEndingRegion(String type) {
-		return (type == DTDRegionTypes.END_TAG) || (type == DTDRegionTypes.ENTITY_PARM) || (type == DTDRegionTypes.COMMENT_END);
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/parser/DTDRegionTypes.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/parser/DTDRegionTypes.java
deleted file mode 100644
index f65e56b..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/parser/DTDRegionTypes.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.parser;
-
-public interface DTDRegionTypes {
-	public static final String regionPrefix = "org.eclipse.wst.dtd.core.util.parser.DTDRegionTypes."; //$NON-NLS-1$
-
-	public static final String NAME = regionPrefix + "NAME"; //$NON-NLS-1$
-	public static final String START_TAG = regionPrefix + "START_TAG"; //$NON-NLS-1$
-	public static final String END_TAG = regionPrefix + "END_TAG"; //$NON-NLS-1$
-	public static final String LEFT_PAREN = regionPrefix + "LEFT_PAREN"; //$NON-NLS-1$
-	public static final String RIGHT_PAREN = regionPrefix + "RIGHT_PAREN"; //$NON-NLS-1$
-	public static final String WHITESPACE = regionPrefix + "WHITESPACE"; //$NON-NLS-1$
-	public static final String CONNECTOR = regionPrefix + "CONNECTOR"; //$NON-NLS-1$
-
-	public static final String OCCUR_TYPE = regionPrefix + "OCCUR_TYPE"; //$NON-NLS-1$
-	public static final String EXCLAMATION = regionPrefix + "EXCLAMATION"; //$NON-NLS-1$
-	public static final String PERCENT = regionPrefix + "PERCENT"; //$NON-NLS-1$
-	public static final String SEMICOLON = regionPrefix + "SEMICOLON"; //$NON-NLS-1$
-	public static final String COMMENT_START = regionPrefix + "COMMENT"; //$NON-NLS-1$
-	public static final String COMMENT_CONTENT = regionPrefix + "COMMENT_CONTENT"; //$NON-NLS-1$
-	public static final String COMMENT_END = regionPrefix + "COMMENT_END"; //$NON-NLS-1$
-
-	public static final String NOTATION_TAG = regionPrefix + "NOTATION_TAG"; //$NON-NLS-1$
-	public static final String NOTATION_CONTENT = regionPrefix + "NOTATION_CONTENT"; //$NON-NLS-1$
-
-	public static final String ENTITY_TAG = regionPrefix + "ENTITY_TAG"; //$NON-NLS-1$
-	public static final String ENTITY_PARM = regionPrefix + "ENTITY_PARM"; //$NON-NLS-1$
-	public static final String ENTITY_CONTENT = regionPrefix + "ENTITY_CONTENT"; //$NON-NLS-1$
-	public static final String NDATA_VALUE = regionPrefix + "NDATA_VALUE"; //$NON-NLS-1$
-
-	public static final String ELEMENT_TAG = regionPrefix + "ELEMENT_TAG"; //$NON-NLS-1$
-	public static final String ELEMENT_CONTENT = regionPrefix + "ELEMENT_CONTENT"; //$NON-NLS-1$
-	public static final String CONTENT_EMPTY = regionPrefix + "CONTENT_EMPTY"; //$NON-NLS-1$
-	public static final String CONTENT_ANY = regionPrefix + "CONTENT_ANY"; //$NON-NLS-1$
-	public static final String CONTENT_PCDATA = regionPrefix + "CONTENT_PCDATA"; //$NON-NLS-1$
-
-	public static final String ATTLIST_TAG = regionPrefix + "ATTLIST_TAG"; //$NON-NLS-1$
-
-	public static final String SYSTEM_KEYWORD = regionPrefix + "SYSTEM_KEYWORD"; //$NON-NLS-1$
-	public static final String PUBLIC_KEYWORD = regionPrefix + "PUBLIC_KEYWORD"; //$NON-NLS-1$
-	public static final String NDATA_KEYWORD = regionPrefix + "NDATA_KEYWORD"; //$NON-NLS-1$
-	public static final String SINGLEQUOTED_LITERAL = regionPrefix + "SINGLEQUOTED_LITERAL"; //$NON-NLS-1$
-	public static final String DOUBLEQUOTED_LITERAL = regionPrefix + "DOUBLEQUOTED_LITERAL"; //$NON-NLS-1$
-	public static final String UNKNOWN_CONTENT = regionPrefix + "UNKNOWN_CONTENT"; //$NON-NLS-1$
-
-	public static final String ATTRIBUTE_NAME = regionPrefix + "ATTRIBUTE_NAME"; //$NON-NLS-1$
-
-	// attribute type keywords
-	public static final String CDATA_KEYWORD = regionPrefix + "CDATA_KEYWORD"; //$NON-NLS-1$
-	public static final String ID_KEYWORD = regionPrefix + "ID_KEYWORD"; //$NON-NLS-1$
-	public static final String IDREF_KEYWORD = regionPrefix + "IDREF_KEYWORD"; //$NON-NLS-1$
-	public static final String IDREFS_KEYWORD = regionPrefix + "IDREFS_KEYWORD"; //$NON-NLS-1$
-	public static final String ENTITY_KEYWORD = regionPrefix + "ENTITY_KEYWORD"; //$NON-NLS-1$
-	public static final String ENTITIES_KEYWORD = regionPrefix + "ENTITIES_KEYWORD"; //$NON-NLS-1$
-	public static final String NMTOKEN_KEYWORD = regionPrefix + "NMTOKEN_KEYWORD"; //$NON-NLS-1$
-	public static final String NMTOKENS_KEYWORD = regionPrefix + "NMTOKENS_KEYWORD"; //$NON-NLS-1$
-	public static final String NOTATION_KEYWORD = regionPrefix + "NOTATION_KEYWORD"; //$NON-NLS-1$
-	public static final String ENUM_CHOICE = regionPrefix + "ENUM_CHOICE"; //$NON-NLS-1$
-	public static final String PARM_ENTITY_TYPE = regionPrefix + "PARM_ENTITY_TYPE"; //$NON-NLS-1$
-
-	// attribute defaults keywords
-	public static final String REQUIRED_KEYWORD = regionPrefix + "REQUIRED_KEYWORD"; //$NON-NLS-1$
-	public static final String IMPLIED_KEYWORD = regionPrefix + "IMPLIED_KEYWORD"; //$NON-NLS-1$
-	public static final String FIXED_KEYWORD = regionPrefix + "FIXED_KEYWORD"; //$NON-NLS-1$
-}// DTDRegionTypes
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/rules/StructuredTextPartitionerForDTD.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/rules/StructuredTextPartitionerForDTD.java
deleted file mode 100644
index 725b371..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/rules/StructuredTextPartitionerForDTD.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.rules;
-
-import org.eclipse.wst.sse.core.text.rules.StructuredTextPartitioner;
-
-public class StructuredTextPartitionerForDTD extends StructuredTextPartitioner {
-
-	public static final String ST_DTD_DEFAULT = "org.eclipse.wst.dtd.DEFAULT"; //$NON-NLS-1$
-
-	public StructuredTextPartitionerForDTD() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.rules.StructuredTextPartitioner#getDefault()
-	 */
-	public String getDefault() {
-		return ST_DTD_DEFAULT;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.rules.StructuredTextPartitioner#initLegalContentTypes()
-	 */
-	protected void initLegalContentTypes() {
-		fSupportedTypes = new String[]{ST_DTD_DEFAULT, ST_UNKNOWN_PARTITION};
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/tokenizer/DTDTokenizer.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/tokenizer/DTDTokenizer.java
deleted file mode 100644
index ad01b20..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/tokenizer/DTDTokenizer.java
+++ /dev/null
@@ -1,1428 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.tokenizer;
-
-import org.eclipse.wst.dtd.core.parser.DTDRegionTypes;
-
-
-
-/**
- * This class is a scanner generated by <a href="http://www.jflex.de/">JFlex
- * </a> 1.3.5 on 05/04/02 11:38 AM from the specification file
- * <tt>dtd.flex</tt>
- */
-public class DTDTokenizer {
-
-	/** This character denotes the end of file */
-	final public static int YYEOF = -1;
-
-	/** initial size of the lookahead buffer */
-	final private static int YY_BUFFERSIZE = 16384;
-	final  static String yy_NL = System.getProperty("line.separator");
-
-	/** lexical states */
-	final public static int ATTRIBUTE_ENUMERATION = 13;
-	final public static int NOTATION_NAME = 6;
-	final public static int ELEMENT_CHILD = 1;
-	final public static int ENTITY_CONTENT = 4;
-	final public static int COMMENT_CONTENT = 8;
-	final public static int ATTLIST_NAME = 9;
-	final public static int EXTERNALID_CONTENT = 7;
-	final public static int ELEMENT_CONTENT = 1;
-	final public static int ELEMENT_MIXED = 1;
-	final public static int ELEMENT_MIXED_OR_CHILD = 1;
-	final public static int ATTRIBUTE_CONTENT = 11;
-	final public static int ENTITY_NAME = 3;
-	final public static int ATTRIBUTE_DEFAULT = 12;
-	final public static int ELEMENT_NAME = 2;
-	final public static int YYINITIAL = 0;
-	final public static int NDATA_CONTENT = 5;
-	final public static int ATTLIST_CONTENT = 10;
-	final public static int NODE = 1;
-
-	/**
-	 * Translates characters to character classes
-	 */
-	final private static String yycmap_packed = "\10\0\1\0\1\5\1\3\1\0\1\0\1\2\22\0\1\5\1\6" + "\1\1\1\37\1\0\1\23\1\0\1\46\1\42\1\43\1\4\1\7" + "\1\45\1\12\1\0\1\0\12\0\1\0\1\10\1\11\1\0\1\13" + "\1\4\1\0\1\25\1\31\1\32\1\33\1\14\1\35\2\0\1\21" + "\1\0\1\36\1\15\1\16\1\17\1\24\1\27\1\40\1\34\1\26" + "\1\20\1\30\2\0\1\41\1\22\1\0\1\0\1\0\2\0\1\0" + "\1\0\32\0\1\0\1\44\uff83\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, 39, 78, 117, 156, 195, 234, 273, 312, 351, 390, 429, 468, 507, 546, 585, 624, 39, 39, 39, 663, 702, 741, 780, 819, 39, 39, 858, 897, 39, 39, 936, 936, 975, 1014, 1053, 1092, 1131, 1170, 1209, 1248, 1287, 1326, 1365, 1404, 1443, 39, 1482, 1521, 1560, 1599, 1638, 39, 1677, 1716, 1755, 1794, 1833, 1872, 39, 39, 1911, 1950, 1989, 2028, 2067, 2106, 39, 39, 39, 2145, 2184, 2223, 2262, 2301, 2340, 2379, 897, 2418, 975, 2457, 2496, 2535, 2574, 975, 2613, 2652, 2691, 2730, 1560, 2769, 2808, 2847, 2886, 2925, 2964, 3003, 3042, 3081, 3120, 1950, 3159, 3198, 3237, 3276, 3315, 1950, 39, 3354, 3393, 3432, 39, 3471, 3510, 3549, 39, 3588, 3627, 39, 3666, 3705, 3744, 39, 39, 3783, 3822, 3861, 3900, 3939, 3978, 4017, 4056, 39, 4095, 4134, 4173, 39, 4212, 4251, 4290, 4329, 4368, 4407, 4446, 4485, 4524, 4563, 4602, 4641, 4680, 4719, 4758, 4797, 4836, 4875, 4914, 4953, 4992, 5031, 5070, 5109, 5148, 5187, 5226, 5265, 5304, 5343, 975, 5382, 5421, 5460, 5499,
-				5538, 5577, 1560, 5616, 5655, 5694, 5733, 5772, 5811, 5850, 546, 5889, 5928, 5967, 6006, 975, 975, 975, 6045, 1560, 6084, 6123, 1560, 6162, 6201, 6240, 1950, 546, 6279, 546, 819, 6318, 6357, 6396, 6435, 6474, 6513, 546, 6552, 1560, 1560, 1560, 1950, 6591, 39, 1950};
-
-	/**
-	 * The packed transition table of the DFA (part 0)
-	 */
-	final private static String yy_packed0 = "\2\17\2\20\1\17\1\20\1\21\1\17\1\22\1\23" + "\1\17\1\24\1\25\2\17\1\26\3\17\1\27\1\17" + "\1\30\21\17\47\0\2\31\2\20\1\32\1\20\1\0" + "\1\32\1\31\1\33\1\31\1\33\23\31\1\34\2\31" + "\1\35\1\36\2\37\1\31\2\40\2\20\1\0\1\20" + "\3\40\1\33\1\40\1\33\7\40\1\41\16\40\4\0" + "\1\40\1\42\1\43\2\20\1\42\1\20\3\42\1\33" + "\1\42\1\33\12\42\1\44\1\45\16\42\1\46\2\47" + "\2\20\1\47\1\20\3\47\1\33\1\47\1\33\33\47" + "\2\50\2\20\1\0\1\20\2\0\1\50\1\33\1\50" + "\1\33\26\50\4\0\1\50\1\42\1\43\2\20\1\42" + "\1\20\3\42\1\33\1\42\1\33\3\42\1\51\6\42" + "\1\52\1\53\16\42\1\46\2\54\2\55\1\54\1\55" + "\4\54\1\56\1\57\33\54\2\60\2\20\1\42\1\20" + "\2\42\1\60\1\33\1\60\1\33\26\60\4\42\1\60" + "\2\61\2\20\1\42\1\20\2\42\1\61\1\33\1\61" + "\1\33\26\61\4\42\1\61\1\62\1\63\1\64\1\65" + "\1\62\1\66\3\62\1\33\1\62\1\33\1\67\2\62" + "\1\70\1\62\1\71\10\62\1\72\4\62\1\73\2\62" + "\1\74\2\75\1\62\1\76\1\77\1\100\2\20\1\77" + "\1\20\3\77\1\33\1\77\1\33\23\77\1\101\6\77"
-				+ "\1\102\2\103\2\20\1\103\1\20\3\103\1\33\1\103" + "\1\33\26\103\1\104\1\105\1\106\2\103\2\17\2\0" + "\1\17\2\0\1\17\2\0\1\17\1\0\7\17\1\0" + "\23\17\2\0\2\20\1\0\1\20\53\0\1\107\34\0" + "\2\17\2\0\1\17\2\0\1\17\2\0\1\17\1\0" + "\1\17\1\110\1\17\1\111\3\17\1\0\25\17\2\0" + "\1\17\2\0\1\17\2\0\1\17\1\0\7\17\1\0" + "\1\112\22\17\2\113\2\0\1\113\2\0\1\113\2\0" + "\1\113\1\0\7\113\1\0\23\113\2\17\2\0\1\17" + "\2\0\1\17\2\0\1\17\1\0\4\17\1\114\2\17" + "\1\0\23\17\2\31\6\0\1\31\1\0\1\31\1\0" + "\26\31\4\0\3\31\6\0\1\31\1\0\1\31\1\0" + "\13\31\1\115\12\31\4\0\1\31\2\0\2\116\1\0" + "\1\116\31\0\1\117\7\0\2\40\4\0\3\40\1\0" + "\1\40\1\0\26\40\4\0\1\40\2\42\2\0\1\42" + "\1\0\3\42\1\0\1\42\1\0\33\42\1\43\1\120" + "\2\121\1\43\1\121\3\43\1\121\1\43\1\121\33\43" + "\2\42\2\0\1\42\1\0\3\42\1\0\1\42\1\0" + "\6\42\1\122\26\42\2\0\1\42\1\0\3\42\1\0" + "\1\42\1\0\14\42\1\123\16\42\2\46\2\124\1\46" + "\1\124\3\46\1\124\1\46\1\124\32\46\1\125\2\47"
-				+ "\2\0\1\47\1\0\3\47\1\0\1\47\1\0\33\47" + "\2\50\6\0\1\50\1\0\1\50\1\0\26\50\4\0" + "\1\50\2\42\2\0\1\42\1\0\3\42\1\0\1\42" + "\1\0\17\42\1\126\15\42\2\0\1\42\1\0\3\42" + "\1\0\1\42\1\0\6\42\1\127\26\42\2\0\1\42" + "\1\0\3\42\1\0\1\42\1\0\14\42\1\130\16\42" + "\12\54\2\0\35\54\2\55\1\54\1\55\4\54\2\0" + "\33\54\12\0\1\131\34\0\2\60\2\0\1\42\1\0" + "\2\42\1\60\1\0\1\60\1\0\26\60\4\42\1\60" + "\2\61\2\0\1\42\1\0\2\42\1\61\1\0\1\61" + "\1\0\26\61\4\42\1\61\2\62\2\0\1\62\1\0" + "\3\62\1\0\1\62\1\0\26\62\3\0\2\62\1\63" + "\1\132\2\133\1\63\1\133\3\63\1\133\1\63\1\133" + "\26\63\3\133\2\63\3\0\1\65\50\0\1\66\41\0" + "\2\62\2\0\1\62\1\0\3\62\1\0\1\62\1\0" + "\3\62\1\134\22\62\3\0\4\62\2\0\1\62\1\0" + "\3\62\1\0\1\62\1\0\2\62\1\135\5\62\1\136" + "\15\62\3\0\4\62\2\0\1\62\1\0\3\62\1\0" + "\1\62\1\0\17\62\1\137\6\62\3\0\4\62\2\0" + "\1\62\1\0\3\62\1\0\1\62\1\0\17\62\1\140" + "\6\62\3\0\4\62\2\0\1\62\1\0\3\62\1\0" + "\1\62\1\0\5\62\1\141\12\62\1\142\1\143\4\62"
-				+ "\3\0\2\62\2\76\2\144\1\76\1\144\3\76\1\144" + "\1\76\1\144\26\76\3\144\1\76\1\132\2\77\2\0" + "\1\77\1\0\3\77\1\0\1\77\1\0\33\77\1\100" + "\1\145\2\146\1\100\1\146\3\100\1\146\1\100\1\146" + "\33\100\2\77\2\0\1\77\1\0\3\77\1\0\1\77" + "\1\0\5\77\1\147\12\77\1\150\1\151\11\77\2\102" + "\2\152\1\102\1\152\3\102\1\152\1\102\1\152\32\102" + "\1\153\2\103\2\0\1\103\1\0\3\103\1\0\1\103" + "\1\0\26\103\3\0\2\103\12\0\1\154\34\0\2\17" + "\2\0\1\17\2\0\1\17\2\0\1\17\1\0\1\155" + "\6\17\1\0\25\17\2\0\1\17\2\0\1\17\2\0" + "\1\17\1\0\4\17\1\156\2\17\1\0\25\17\2\0" + "\1\17\2\0\1\17\2\0\1\17\1\0\4\17\1\157" + "\2\17\1\0\23\17\2\113\2\0\1\113\2\0\1\113" + "\1\160\1\0\1\113\1\0\7\113\1\0\23\113\2\17" + "\2\0\1\17\2\0\1\17\2\0\1\17\1\0\4\17" + "\1\161\2\17\1\0\23\17\2\31\6\0\1\31\1\0" + "\1\31\1\0\16\31\1\162\7\31\4\0\1\31\27\0" + "\1\163\17\0\1\121\1\164\45\121\2\42\2\0\1\42" + "\1\0\3\42\1\0\1\42\1\0\12\42\1\165\22\42" + "\2\0\1\42\1\0\3\42\1\0\1\42\1\0\15\42"
-				+ "\1\166\15\42\46\124\1\167\2\42\2\0\1\42\1\0" + "\3\42\1\0\1\42\1\0\11\42\1\170\23\42\2\0" + "\1\42\1\0\3\42\1\0\1\42\1\0\12\42\1\171" + "\22\42\2\0\1\42\1\0\3\42\1\0\1\42\1\0" + "\15\42\1\172\15\42\13\0\1\173\33\0\1\133\1\174" + "\45\133\2\62\2\0\1\62\1\0\3\62\1\0\1\62" + "\1\0\4\62\1\175\21\62\3\0\4\62\2\0\1\62" + "\1\0\3\62\1\0\1\62\1\0\4\62\1\176\21\62" + "\3\0\4\62\2\0\1\62\1\0\3\62\1\0\1\62" + "\1\0\4\62\1\177\21\62\3\0\4\62\2\0\1\62" + "\1\0\3\62\1\0\1\62\1\0\20\62\1\200\5\62" + "\3\0\4\62\2\0\1\62\1\0\3\62\1\0\1\62" + "\1\0\11\62\1\201\14\62\3\0\4\62\2\0\1\62" + "\1\0\3\62\1\0\1\62\1\0\2\62\1\202\23\62" + "\3\0\4\62\2\0\1\62\1\0\3\62\1\0\1\62" + "\1\0\1\203\25\62\3\0\4\62\2\0\1\62\1\0" + "\3\62\1\0\1\62\1\0\5\62\1\204\20\62\3\0" + "\2\62\46\144\1\174\1\146\1\205\45\146\2\77\2\0" + "\1\77\1\0\3\77\1\0\1\77\1\0\2\77\1\206" + "\32\77\2\0\1\77\1\0\3\77\1\0\1\77\1\0" + "\1\207\34\77\2\0\1\77\1\0\3\77\1\0\1\77" + "\1\0\5\77\1\210\25\77\46\152\1\211\2\17\2\0"
-				+ "\1\17\2\0\1\17\2\0\1\17\1\0\2\17\1\212" + "\4\17\1\0\25\17\2\0\1\17\2\0\1\17\2\0" + "\1\17\1\0\5\17\1\213\1\17\1\0\25\17\2\0" + "\1\17\2\0\1\17\2\0\1\17\1\0\7\17\1\0" + "\1\17\1\214\23\17\2\0\1\17\2\0\1\17\2\0" + "\1\17\1\0\1\17\1\215\5\17\1\0\23\17\2\31" + "\6\0\1\31\1\0\1\31\1\0\17\31\1\216\6\31" + "\4\0\1\31\32\0\1\217\14\0\2\42\2\0\1\42" + "\1\0\3\42\1\0\1\42\1\0\4\42\1\220\30\42" + "\2\0\1\42\1\0\3\42\1\0\1\42\1\0\1\42" + "\1\221\33\42\2\0\1\42\1\0\3\42\1\0\1\42" + "\1\0\4\42\1\222\30\42\2\0\1\42\1\0\3\42" + "\1\0\1\42\1\0\4\42\1\223\30\42\2\0\1\42" + "\1\0\3\42\1\0\1\42\1\0\1\42\1\224\31\42" + "\2\62\2\0\1\62\1\0\3\62\1\0\1\62\1\0" + "\5\62\1\225\20\62\3\0\4\62\2\0\1\62\1\0" + "\3\62\1\0\1\62\1\0\10\62\1\226\15\62\3\0" + "\4\62\2\0\1\62\1\0\3\62\1\0\1\62\1\0" + "\11\62\1\227\14\62\3\0\4\62\2\0\1\62\1\0" + "\3\62\1\0\1\62\1\0\1\230\25\62\3\0\4\62" + "\2\0\1\62\1\0\3\62\1\0\1\62\1\0\4\62" + "\1\231\21\62\3\0\4\62\2\0\1\62\1\0\3\62"
-				+ "\1\0\1\62\1\0\13\62\1\232\12\62\3\0\4\62" + "\2\0\1\62\1\0\3\62\1\0\1\62\1\0\24\62" + "\1\233\1\62\3\0\4\62\2\0\1\62\1\0\3\62" + "\1\0\1\62\1\0\25\62\1\234\3\0\2\62\2\77" + "\2\0\1\77\1\0\3\77\1\0\1\77\1\0\13\77" + "\1\235\21\77\2\0\1\77\1\0\3\77\1\0\1\77" + "\1\0\24\77\1\236\10\77\2\0\1\77\1\0\3\77" + "\1\0\1\77\1\0\25\77\1\237\5\77\2\17\2\0" + "\1\17\2\0\1\17\2\0\1\17\1\0\1\240\6\17" + "\1\0\25\17\2\0\1\17\2\0\1\17\2\0\1\17" + "\1\0\4\17\1\241\2\17\1\0\25\17\2\0\1\17" + "\2\0\1\17\2\0\1\17\1\0\4\17\1\242\2\17" + "\1\0\25\17\2\0\1\17\2\0\1\17\2\0\1\17" + "\1\0\5\17\1\243\1\17\1\0\23\17\2\31\6\0" + "\1\31\1\0\1\31\1\0\11\31\1\244\14\31\4\0" + "\1\31\33\0\1\245\13\0\2\42\2\0\1\42\1\0" + "\3\42\1\0\1\42\1\0\1\246\34\42\2\0\1\42" + "\1\0\3\42\1\0\1\42\1\0\5\42\1\247\27\42" + "\2\0\1\42\1\0\3\42\1\0\1\42\1\0\11\42" + "\1\250\23\42\2\0\1\42\1\0\3\42\1\0\1\42" + "\1\0\1\251\34\42\2\0\1\42\1\0\3\42\1\0" + "\1\42\1\0\5\42\1\252\25\42\2\62\2\0\1\62"
-				+ "\1\0\3\62\1\0\1\62\1\0\4\62\1\253\21\62" + "\3\0\4\62\2\0\1\62\1\0\3\62\1\0\1\62" + "\1\0\22\62\1\254\3\62\3\0\4\62\2\0\1\62" + "\1\0\3\62\1\0\1\62\1\0\4\62\1\255\21\62" + "\3\0\4\62\2\0\1\62\1\0\3\62\1\0\1\62" + "\1\0\21\62\1\256\4\62\3\0\4\62\2\0\1\62" + "\1\0\3\62\1\0\1\62\1\0\11\62\1\257\14\62" + "\3\0\4\62\2\0\1\62\1\0\3\62\1\0\1\62" + "\1\0\1\62\1\260\24\62\3\0\4\62\2\0\1\62" + "\1\0\3\62\1\0\1\62\1\0\14\62\1\261\11\62" + "\3\0\4\62\2\0\1\62\1\0\3\62\1\0\1\62" + "\1\0\1\262\25\62\3\0\2\62\2\77\2\0\1\77" + "\1\0\3\77\1\0\1\77\1\0\1\77\1\263\33\77" + "\2\0\1\77\1\0\3\77\1\0\1\77\1\0\14\77" + "\1\264\20\77\2\0\1\77\1\0\3\77\1\0\1\77" + "\1\0\1\265\32\77\2\17\2\0\1\17\2\0\1\17" + "\2\0\1\17\1\0\3\17\1\266\3\17\1\0\25\17" + "\2\0\1\17\2\0\1\17\2\0\1\17\1\0\6\17" + "\1\267\1\0\25\17\2\0\1\17\2\0\1\17\2\0" + "\1\17\1\0\5\17\1\270\1\17\1\0\25\17\2\0" + "\1\17\2\0\1\17\2\0\1\17\1\0\7\17\1\0" + "\2\17\1\271\20\17\2\31\6\0\1\31\1\0\1\31"
-				+ "\1\0\4\31\1\272\21\31\4\0\1\31\25\0\1\273" + "\21\0\2\42\2\0\1\42\1\0\3\42\1\0\1\42" + "\1\0\2\42\1\274\32\42\2\0\1\42\1\0\3\42" + "\1\0\1\42\1\0\16\42\1\274\16\42\2\0\1\42" + "\1\0\3\42\1\0\1\42\1\0\2\42\1\275\32\42" + "\2\0\1\42\1\0\3\42\1\0\1\42\1\0\16\42" + "\1\276\14\42\2\62\2\0\1\62\1\0\3\62\1\0" + "\1\62\1\0\5\62\1\277\1\300\17\62\3\0\4\62" + "\2\0\1\62\1\0\3\62\1\0\1\62\1\0\1\301" + "\25\62\3\0\4\62\2\0\1\62\1\0\3\62\1\0" + "\1\62\1\0\5\62\1\302\20\62\3\0\4\62\2\0" + "\1\62\1\0\3\62\1\0\1\62\1\0\12\62\1\303" + "\13\62\3\0\4\62\2\0\1\62\1\0\3\62\1\0" + "\1\62\1\0\5\62\1\234\20\62\3\0\4\62\2\0" + "\1\62\1\0\3\62\1\0\1\62\1\0\5\62\1\304" + "\20\62\3\0\4\62\2\0\1\62\1\0\3\62\1\0" + "\1\62\1\0\17\62\1\132\6\62\3\0\2\62\2\77" + "\2\0\1\77\1\0\3\77\1\0\1\77\1\0\5\77" + "\1\305\27\77\2\0\1\77\1\0\3\77\1\0\1\77" + "\1\0\5\77\1\306\27\77\2\0\1\77\1\0\3\77" + "\1\0\1\77\1\0\17\77\1\307\13\77\2\17\2\0" + "\1\17\2\0\1\17\2\0\1\17\1\0\4\17\1\310"
-				+ "\2\17\1\0\25\17\2\0\1\17\2\0\1\17\2\0" + "\1\17\1\0\7\17\1\0\1\311\24\17\2\0\1\17" + "\2\0\1\17\2\0\1\17\1\0\4\17\1\312\2\17" + "\1\0\23\17\2\31\6\0\1\31\1\0\1\31\1\0" + "\11\31\1\313\14\31\4\0\1\31\20\0\1\314\26\0" + "\2\62\2\0\1\62\1\0\3\62\1\0\1\62\1\0" + "\1\315\25\62\3\0\4\62\2\0\1\62\1\0\3\62" + "\1\0\1\62\1\0\3\62\1\316\22\62\3\0\4\62" + "\2\0\1\62\1\0\3\62\1\0\1\62\1\0\10\62" + "\1\317\15\62\3\0\4\62\2\0\1\62\1\0\3\62" + "\1\0\1\62\1\0\20\62\1\234\5\62\3\0\2\62" + "\2\77\2\0\1\77\1\0\3\77\1\0\1\77\1\0" + "\1\320\34\77\2\0\1\77\1\0\3\77\1\0\1\77" + "\1\0\20\77\1\321\12\77\2\17\2\0\1\17\2\0" + "\1\17\2\0\1\17\1\0\3\17\1\322\3\17\1\0" + "\23\17\25\0\1\323\21\0\2\62\2\0\1\62\1\0" + "\3\62\1\0\1\62\1\0\12\62\1\324\13\62\3\0" + "\4\62\2\0\1\62\1\0\3\62\1\0\1\62\1\0" + "\12\62\1\325\13\62\3\0\4\62\2\0\1\62\1\0" + "\3\62\1\0\1\62\1\0\3\62\1\326\22\62\3\0" + "\2\62\2\77\2\0\1\77\1\0\3\77\1\0\1\77" + "\1\0\17\77\1\327\15\77\2\0\1\77\1\0\3\77"
-				+ "\1\0\1\77\1\0\1\330\32\77\2\0\2\323\1\0" + "\1\323\35\0\1\331\3\0\2\77\2\0\1\77\1\0" + "\3\77\1\0\1\77\1\0\17\77\1\332\13\77";
-
-	/**
-	 * The transition table of the DFA
-	 */
-	final private static int yytrans[] = yy_unpack();
-
-
-	/* error codes */
-	final private static int YY_UNKNOWN_ERROR = 0;
-	final  static int YY_ILLEGAL_STATE = 1;
-	final private static int YY_NO_MATCH = 2;
-	final private static int YY_PUSHBACK_2BIG = 3;
-
-	/* error messages for the codes above */
-	final private static String YY_ERROR_MSG[] = {"Unkown internal scanner error", "Internal error: unknown state", "Error: could not match input", "Error: pushback value was too large"};
-
-	/**
-	 * YY_ATTRIBUTE[aState] contains the attributes of state
-	 * <code>aState</code>
-	 */
-	private final static byte YY_ATTRIBUTE[] = {0, 8, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 9, 9, 9, 1, 1, 1, 1, 1, 9, 9, 1, 1, 9, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 9, 1, 1, 1, 1, 1, 1, 9, 9, 9, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 9, 1, 1, 1, 9, 1, 1, 0, 9, 1, 1, 9, 1, 1, 1, 9, 9, 1, 1, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 9, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 9, 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[YY_BUFFERSIZE];
-
-	/** 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
-	 */
-	 int yycolumn;
-
-	/**
-	 * yy_atBOL == true <=>the scanner is currently at the beginning of a
-	 * line
-	 */
-	 boolean yy_atBOL = true;
-
-	/** yy_atEOF == true <=>the scanner is at the EOF */
-	private boolean yy_atEOF;
-
-	/* user code: */
-	 int node_count = 0;
-	 String currentString;
-
-	private Token createToken(String type) {
-		return new Token(type, yytext(), yyline, yychar + startOffset, yylength());
-	}
-
-	private int startOffset = 0;
-
-	public void setStartOffset(int startOffset) {
-		this.startOffset = startOffset;
-	}
-
-	public void setLine(int line) {
-		this.yyline = line;
-	}
-
-
-	/**
-	 * 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 DTDTokenizer(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 DTDTokenizer(java.io.InputStream in) {
-		this(new java.io.InputStreamReader(in));
-	}
-
-	/**
-	 * Unpacks the split, compressed DFA transition table.
-	 * 
-	 * @return the unpacked transition table
-	 */
-	private static int[] yy_unpack() {
-		int[] trans = new int[6630];
-		int offset = 0;
-		offset = yy_unpack(yy_packed0, offset, trans);
-		return trans;
-	}
-
-	/**
-	 * Unpacks the compressed DFA transition table.
-	 * 
-	 * @param packed
-	 *            the packed transition table
-	 * @return the index of the last entry
-	 */
-	private static int yy_unpack(String packed, int offset, int[] trans) {
-		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++);
-			value--;
-			do
-				trans[j++] = value;
-			while (--count > 0);
-		}
-		return j;
-	}
-
-	/**
-	 * 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 < 130) {
-			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 yy_refill() throws java.io.IOException {
-
-		/* 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 < 0) {
-			return true;
-		} else {
-			yy_endRead += numRead;
-			return false;
-		}
-	}
-
-
-	/**
-	 * 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 */
-
-		if (yy_reader != null)
-			yy_reader.close();
-	}
-
-
-	/**
-	 * Closes the current stream, and resets the scanner to read from a new
-	 * input stream.
-	 * 
-	 * 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>YY_INITIAL</tt>.
-	 * 
-	 * @param reader
-	 *            the new input stream
-	 */
-	final public void yyreset(java.io.Reader reader) throws java.io.IOException {
-		yyclose();
-		yy_reader = reader;
-		yy_atBOL = true;
-		yy_atEOF = false;
-		yy_endRead = yy_startRead = 0;
-		yy_currentPos = yy_markedPos = yy_pushbackPos = 0;
-		yyline = yychar = yycolumn = 0;
-		yy_lexical_state = YYINITIAL;
-	}
-
-
-	/**
-	 * 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 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
-	 */
-	final public char yycharat(int pos) {
-		return yy_buffer[yy_startRead + pos];
-	}
-
-
-	/**
-	 * Returns the length of the matched text region.
-	 */
-	final public int yylength() {
-		return yy_markedPos - yy_startRead;
-	}
-
-
-	/**
-	 * 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 yy_ScanError(int errorCode) {
-		String message;
-		try {
-			message = YY_ERROR_MSG[errorCode];
-		} catch (ArrayIndexOutOfBoundsException e) {
-			message = YY_ERROR_MSG[YY_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())
-			yy_ScanError(YY_PUSHBACK_2BIG);
-
-		yy_markedPos -= number;
-	}
-
-
-	/**
-	 * Resumes scanning until the next regular expression is matched, the end
-	 * of input is encountered or an I/O-Error occurs.
-	 * 
-	 * @return the next token
-	 * @exception IOException
-	 *                if any I/O-Error occurs
-	 */
-	public Yytoken yylex() throws java.io.IOException {
-		int yy_input;
-		int yy_action;
-
-		// cached fields:
-		int yy_currentPos_l;
-		int yy_startRead_l;
-		int yy_markedPos_l;
-		int yy_endRead_l = yy_endRead;
-		char[] yy_buffer_l = yy_buffer;
-		char[] yycmap_l = yycmap;
-
-		int[] yytrans_l = yytrans;
-		int[] yy_rowMap_l = yy_rowMap;
-		byte[] yy_attr_l = YY_ATTRIBUTE;
-
-		while (true) {
-			yy_markedPos_l = yy_markedPos;
-
-			yychar += yy_markedPos_l - yy_startRead;
-
-			boolean yy_r = false;
-			for (yy_currentPos_l = yy_startRead; yy_currentPos_l < yy_markedPos_l; yy_currentPos_l++) {
-				switch (yy_buffer_l[yy_currentPos_l]) {
-					case '\u000B' :
-					case '\u000C' :
-					case '\u0085' :
-					case '\u2028' :
-					case '\u2029' :
-						yyline++;
-						yy_r = false;
-						break;
-					case '\r' :
-						yyline++;
-						yy_r = true;
-						break;
-					case '\n' :
-						if (yy_r)
-							yy_r = false;
-						else {
-							yyline++;
-						}
-						break;
-					default :
-						yy_r = false;
-				}
-			}
-
-			if (yy_r) {
-				// peek one character ahead if it is \n (if we have counted
-				// one line too much)
-				boolean yy_peek;
-				if (yy_markedPos_l < yy_endRead_l)
-					yy_peek = yy_buffer_l[yy_markedPos_l] == '\n';
-				else if (yy_atEOF)
-					yy_peek = false;
-				else {
-					boolean eof = yy_refill();
-					yy_markedPos_l = yy_markedPos;
-					yy_buffer_l = yy_buffer;
-					if (eof)
-						yy_peek = false;
-					else
-						yy_peek = yy_buffer_l[yy_markedPos_l] == '\n';
-				}
-				if (yy_peek)
-					yyline--;
-			}
-			yy_action = -1;
-
-			yy_startRead_l = yy_currentPos_l = yy_currentPos = yy_startRead = yy_markedPos_l;
-
-			yy_state = yy_lexical_state;
-
-
-			yy_forAction : {
-				while (true) {
-
-					if (yy_currentPos_l < yy_endRead_l)
-						yy_input = yy_buffer_l[yy_currentPos_l++];
-					else if (yy_atEOF) {
-						yy_input = YYEOF;
-						break yy_forAction;
-					} else {
-						// store back cached positions
-						yy_currentPos = yy_currentPos_l;
-						yy_markedPos = yy_markedPos_l;
-						boolean eof = yy_refill();
-						// get translated positions and possibly new buffer
-						yy_currentPos_l = yy_currentPos;
-						yy_markedPos_l = yy_markedPos;
-						yy_buffer_l = yy_buffer;
-						yy_endRead_l = yy_endRead;
-						if (eof) {
-							yy_input = YYEOF;
-							break yy_forAction;
-						} else {
-							yy_input = yy_buffer_l[yy_currentPos_l++];
-						}
-					}
-					int yy_next = yytrans_l[yy_rowMap_l[yy_state] + yycmap_l[yy_input]];
-					if (yy_next == -1)
-						break yy_forAction;
-					yy_state = yy_next;
-
-					int yy_attributes = yy_attr_l[yy_state];
-					if ((yy_attributes & 1) == 1) {
-						yy_action = yy_state;
-						yy_markedPos_l = yy_currentPos_l;
-						if ((yy_attributes & 8) == 8)
-							break yy_forAction;
-					}
-
-				}
-			}
-
-			// store back cached position
-			yy_markedPos = yy_markedPos_l;
-
-			switch (yy_action) {
-
-				case 26 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [197] { yypushback(yylength());
-				// yybegin(YYINITIAL); }");
-				{
-					yypushback(yylength());
-					yybegin(YYINITIAL);
-				}
-				case 219 :
-					break;
-				case 89 :
-				case 123 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [231] { yypushback(yylength());
-				// yybegin(ATTRIBUTE_DEFAULT); }");
-				{
-					yypushback(yylength());
-					yybegin(ATTRIBUTE_DEFAULT);
-				}
-				case 220 :
-					break;
-				case 12 :
-				case 62 :
-				case 63 :
-				case 64 :
-				case 65 :
-				case 102 :
-				case 103 :
-				case 104 :
-				case 133 :
-				case 134 :
-				case 135 :
-				case 156 :
-				case 157 :
-				case 158 :
-				case 178 :
-				case 179 :
-				case 180 :
-				case 196 :
-				case 197 :
-				case 207 :
-				case 208 :
-				case 215 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [247] { yypushback(yylength());
-				// yybegin(ATTLIST_CONTENT); }");
-				{
-					yypushback(yylength());
-					yybegin(ATTLIST_CONTENT);
-				}
-				case 221 :
-					break;
-				case 51 :
-				case 52 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [217] { yypushback(yylength());
-				// yybegin(ATTLIST_CONTENT); }");
-				{
-					yypushback(yylength());
-					yybegin(ATTLIST_CONTENT);
-				}
-				case 222 :
-					break;
-				case 205 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [227] {
-				// yybegin(ATTRIBUTE_DEFAULT); return
-				// createToken(DTDRegionTypes.NMTOKEN_KEYWORD); }");
-				{
-					yybegin(ATTRIBUTE_DEFAULT);
-					return createToken(DTDRegionTypes.NMTOKEN_KEYWORD);
-				}
-				case 223 :
-					break;
-				case 194 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [224] {
-				// yybegin(ATTRIBUTE_DEFAULT); return
-				// createToken(DTDRegionTypes.IDREFS_KEYWORD); }");
-				{
-					yybegin(ATTRIBUTE_DEFAULT);
-					return createToken(DTDRegionTypes.IDREFS_KEYWORD);
-				}
-				case 224 :
-					break;
-				case 191 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [225] {
-				// yybegin(ATTRIBUTE_DEFAULT); return
-				// createToken(DTDRegionTypes.ENTITY_KEYWORD); }");
-				{
-					yybegin(ATTRIBUTE_DEFAULT);
-					return createToken(DTDRegionTypes.ENTITY_KEYWORD);
-				}
-				case 225 :
-					break;
-				case 107 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [174] {
-				// yybegin(COMMENT_CONTENT); return
-				// createToken(DTDRegionTypes.COMMENT_START); }");
-				{
-					yybegin(COMMENT_CONTENT);
-					return createToken(DTDRegionTypes.COMMENT_START);
-				}
-				case 226 :
-					break;
-				case 48 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [211] {
-				// yybegin(ATTRIBUTE_CONTENT); return
-				// createToken(DTDRegionTypes.ATTRIBUTE_NAME); }");
-				{
-					yybegin(ATTRIBUTE_CONTENT);
-					return createToken(DTDRegionTypes.ATTRIBUTE_NAME);
-				}
-				case 227 :
-					break;
-				case 39 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [283] {
-				// yybegin(EXTERNALID_CONTENT); return
-				// createToken(DTDRegionTypes.NAME); }");
-				{
-					yybegin(EXTERNALID_CONTENT);
-					return createToken(DTDRegionTypes.NAME);
-				}
-				case 228 :
-					break;
-				case 106 :
-				case 136 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [245] {
-				// yybegin(ATTLIST_CONTENT); return
-				// createToken(DTDRegionTypes.SINGLEQUOTED_LITERAL); }");
-				{
-					yybegin(ATTLIST_CONTENT);
-					return createToken(DTDRegionTypes.SINGLEQUOTED_LITERAL);
-				}
-				case 229 :
-					break;
-				case 100 :
-				case 132 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [246] {
-				// yybegin(ATTLIST_CONTENT); return
-				// createToken(DTDRegionTypes.DOUBLEQUOTED_LITERAL); }");
-				{
-					yybegin(ATTLIST_CONTENT);
-					return createToken(DTDRegionTypes.DOUBLEQUOTED_LITERAL);
-				}
-				case 230 :
-					break;
-				case 202 :
-				case 216 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [189] { return
-				// createToken(DTDRegionTypes.CONTENT_PCDATA); }");
-				{
-					return createToken(DTDRegionTypes.CONTENT_PCDATA);
-				}
-				case 231 :
-					break;
-				case 189 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [290] { return
-				// createToken(DTDRegionTypes.PUBLIC_KEYWORD); }");
-				{
-					return createToken(DTDRegionTypes.PUBLIC_KEYWORD);
-				}
-				case 232 :
-					break;
-				case 188 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [289] { return
-				// createToken(DTDRegionTypes.SYSTEM_KEYWORD); }");
-				{
-					return createToken(DTDRegionTypes.SYSTEM_KEYWORD);
-				}
-				case 233 :
-					break;
-				case 14 :
-				case 20 :
-				case 21 :
-				case 23 :
-				case 71 :
-				case 72 :
-				case 73 :
-				case 75 :
-				case 108 :
-				case 109 :
-				case 110 :
-				case 112 :
-				case 137 :
-				case 138 :
-				case 139 :
-				case 140 :
-				case 159 :
-				case 160 :
-				case 161 :
-				case 162 :
-				case 181 :
-				case 183 :
-				case 184 :
-				case 200 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [182] { return
-				// createToken(DTDRegionTypes.UNKNOWN_CONTENT); }");
-				{
-					return createToken(DTDRegionTypes.UNKNOWN_CONTENT);
-				}
-				case 234 :
-					break;
-				case 4 :
-				case 33 :
-				case 34 :
-				case 35 :
-				case 36 :
-				case 37 :
-				case 81 :
-				case 82 :
-				case 116 :
-				case 117 :
-				case 143 :
-				case 144 :
-				case 165 :
-				case 166 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [275] { return
-				// createToken(DTDRegionTypes.UNKNOWN_CONTENT); }");
-				{
-					return createToken(DTDRegionTypes.UNKNOWN_CONTENT);
-				}
-				case 235 :
-					break;
-				case 7 :
-				case 40 :
-				case 41 :
-				case 42 :
-				case 85 :
-				case 86 :
-				case 87 :
-				case 119 :
-				case 120 :
-				case 121 :
-				case 145 :
-				case 146 :
-				case 147 :
-				case 168 :
-				case 169 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [294] { return
-				// createToken(DTDRegionTypes.UNKNOWN_CONTENT); }");
-				{
-					return createToken(DTDRegionTypes.UNKNOWN_CONTENT);
-				}
-				case 236 :
-					break;
-				case 9 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [205] { return
-				// createToken(DTDRegionTypes.UNKNOWN_CONTENT); }");
-				{
-					return createToken(DTDRegionTypes.UNKNOWN_CONTENT);
-				}
-				case 237 :
-					break;
-				case 10 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [212] { return
-				// createToken(DTDRegionTypes.UNKNOWN_CONTENT); }");
-				{
-					return createToken(DTDRegionTypes.UNKNOWN_CONTENT);
-				}
-				case 238 :
-					break;
-				case 43 :
-				case 45 :
-				case 46 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [309] { return
-				// createToken(DTDRegionTypes.COMMENT_CONTENT); }");
-				{
-					return createToken(DTDRegionTypes.COMMENT_CONTENT);
-				}
-				case 239 :
-					break;
-				case 60 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [236] { return
-				// createToken(DTDRegionTypes.UNKNOWN_CONTENT); }");
-				{
-					return createToken(DTDRegionTypes.UNKNOWN_CONTENT);
-				}
-				case 240 :
-					break;
-				case 198 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [244] { return
-				// createToken(DTDRegionTypes.FIXED_KEYWORD); }");
-				{
-					return createToken(DTDRegionTypes.FIXED_KEYWORD);
-				}
-				case 241 :
-					break;
-				case 214 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [243] {
-				// yybegin(ATTLIST_CONTENT); return
-				// createToken(DTDRegionTypes.IMPLIED_KEYWORD); }");
-				{
-					yybegin(ATTLIST_CONTENT);
-					return createToken(DTDRegionTypes.IMPLIED_KEYWORD);
-				}
-				case 242 :
-					break;
-				case 212 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [228] {
-				// yybegin(ATTRIBUTE_DEFAULT); return
-				// createToken(DTDRegionTypes.NMTOKENS_KEYWORD); }");
-				{
-					yybegin(ATTRIBUTE_DEFAULT);
-					return createToken(DTDRegionTypes.NMTOKENS_KEYWORD);
-				}
-				case 243 :
-					break;
-				case 211 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [226] {
-				// yybegin(ATTRIBUTE_DEFAULT); return
-				// createToken(DTDRegionTypes.ENTITIES_KEYWORD); }");
-				{
-					yybegin(ATTRIBUTE_DEFAULT);
-					return createToken(DTDRegionTypes.ENTITIES_KEYWORD);
-				}
-				case 244 :
-					break;
-				case 209 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [176] { yybegin(NOTATION_NAME);
-				// return createToken(DTDRegionTypes.NOTATION_TAG); }");
-				{
-					yybegin(NOTATION_NAME);
-					return createToken(DTDRegionTypes.NOTATION_TAG);
-				}
-				case 245 :
-					break;
-				case 201 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [177] { yybegin(ATTLIST_NAME);
-				// return createToken(DTDRegionTypes.ATTLIST_TAG); }");
-				{
-					yybegin(ATTLIST_NAME);
-					return createToken(DTDRegionTypes.ATTLIST_TAG);
-				}
-				case 246 :
-					break;
-				case 199 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [173] { yybegin(ELEMENT_NAME);
-				// return createToken(DTDRegionTypes.ELEMENT_TAG); }");
-				{
-					yybegin(ELEMENT_NAME);
-					return createToken(DTDRegionTypes.ELEMENT_TAG);
-				}
-				case 247 :
-					break;
-				case 182 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [175] { yybegin(ENTITY_NAME);
-				// return createToken(DTDRegionTypes.ENTITY_TAG); }");
-				{
-					yybegin(ENTITY_NAME);
-					return createToken(DTDRegionTypes.ENTITY_TAG);
-				}
-				case 248 :
-					break;
-				case 167 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [293] { yybegin(NDATA_CONTENT);
-				// return createToken(DTDRegionTypes.NDATA_KEYWORD); }");
-				{
-					yybegin(NDATA_CONTENT);
-					return createToken(DTDRegionTypes.NDATA_KEYWORD);
-				}
-				case 249 :
-					break;
-				case 111 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [179] { return
-				// createToken(DTDRegionTypes.ENTITY_PARM); }");
-				{
-					return createToken(DTDRegionTypes.ENTITY_PARM);
-				}
-				case 250 :
-					break;
-				case 94 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [222] {
-				// yybegin(ATTRIBUTE_DEFAULT); return
-				// createToken(DTDRegionTypes.ID_KEYWORD); }");
-				{
-					yybegin(ATTRIBUTE_DEFAULT);
-					return createToken(DTDRegionTypes.ID_KEYWORD);
-				}
-				case 251 :
-					break;
-				case 25 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [194] { return
-				// createToken(DTDRegionTypes.OCCUR_TYPE); }");
-				{
-					return createToken(DTDRegionTypes.OCCUR_TYPE);
-				}
-				case 252 :
-					break;
-				case 16 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [169] { return
-				// createToken(DTDRegionTypes.EXCLAMATION); }");
-				{
-					return createToken(DTDRegionTypes.EXCLAMATION);
-				}
-				case 253 :
-					break;
-				case 15 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [184] { return
-				// createToken(DTDRegionTypes.WHITESPACE); }");
-				{
-					return createToken(DTDRegionTypes.WHITESPACE);
-				}
-				case 254 :
-					break;
-				case 11 :
-				case 49 :
-				case 50 :
-				case 54 :
-				case 55 :
-				case 56 :
-				case 57 :
-				case 58 :
-				case 61 :
-				case 91 :
-				case 92 :
-				case 93 :
-				case 95 :
-				case 96 :
-				case 97 :
-				case 98 :
-				case 124 :
-				case 125 :
-				case 126 :
-				case 127 :
-				case 128 :
-				case 129 :
-				case 130 :
-				case 131 :
-				case 148 :
-				case 149 :
-				case 150 :
-				case 151 :
-				case 152 :
-				case 153 :
-				case 154 :
-				case 155 :
-				case 170 :
-				case 171 :
-				case 172 :
-				case 175 :
-				case 176 :
-				case 177 :
-				case 190 :
-				case 192 :
-				case 193 :
-				case 195 :
-				case 204 :
-				case 206 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [235] {
-				// yybegin(ATTRIBUTE_DEFAULT); return
-				// createToken(DTDRegionTypes.PARM_ENTITY_TYPE); }");
-				{
-					yybegin(ATTRIBUTE_DEFAULT);
-					return createToken(DTDRegionTypes.PARM_ENTITY_TYPE);
-				}
-				case 255 :
-					break;
-				case 28 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [192] { return
-				// createToken(DTDRegionTypes.LEFT_PAREN); }");
-				{
-					return createToken(DTDRegionTypes.LEFT_PAREN);
-				}
-				case 256 :
-					break;
-				case 29 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [195] { return
-				// createToken(DTDRegionTypes.RIGHT_PAREN); }");
-				{
-					return createToken(DTDRegionTypes.RIGHT_PAREN);
-				}
-				case 257 :
-					break;
-				case 44 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [308] { return
-				// createToken(DTDRegionTypes.WHITESPACE); }");
-				{
-					return createToken(DTDRegionTypes.WHITESPACE);
-				}
-				case 258 :
-					break;
-				case 53 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [218] { return
-				// createToken(DTDRegionTypes.WHITESPACE); }");
-				{
-					return createToken(DTDRegionTypes.WHITESPACE);
-				}
-				case 259 :
-					break;
-				case 59 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [234] { yypushback(yylength());
-				// yybegin(ATTRIBUTE_ENUMERATION); }");
-				{
-					yypushback(yylength());
-					yybegin(ATTRIBUTE_ENUMERATION);
-				}
-				case 260 :
-					break;
-				case 67 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [253] { return
-				// createToken(DTDRegionTypes.LEFT_PAREN); }");
-				{
-					return createToken(DTDRegionTypes.LEFT_PAREN);
-				}
-				case 261 :
-					break;
-				case 68 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [255] {
-				// yybegin(ATTRIBUTE_DEFAULT); return
-				// createToken(DTDRegionTypes.RIGHT_PAREN); }");
-				{
-					yybegin(ATTRIBUTE_DEFAULT);
-					return createToken(DTDRegionTypes.RIGHT_PAREN);
-				}
-				case 262 :
-					break;
-				case 69 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [254] { return
-				// createToken(DTDRegionTypes.ENUM_CHOICE); }");
-				{
-					return createToken(DTDRegionTypes.ENUM_CHOICE);
-				}
-				case 263 :
-					break;
-				case 31 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [265] { yybegin(ENTITY_CONTENT);
-				// return createToken(DTDRegionTypes.NAME); }");
-				{
-					yybegin(ENTITY_CONTENT);
-					return createToken(DTDRegionTypes.NAME);
-				}
-				case 264 :
-					break;
-				case 47 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [204] {
-				// yybegin(ATTLIST_CONTENT); return
-				// createToken(DTDRegionTypes.NAME); }");
-				{
-					yybegin(ATTLIST_CONTENT);
-					return createToken(DTDRegionTypes.NAME);
-				}
-				case 265 :
-					break;
-				case 187 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [272] { yypushback(yylength());
-				// yybegin(EXTERNALID_CONTENT); }");
-				{
-					yypushback(yylength());
-					yybegin(EXTERNALID_CONTENT);
-				}
-				case 266 :
-					break;
-				case 213 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [229] {
-				// yybegin(ATTRIBUTE_ENUMERATION); return
-				// createToken(DTDRegionTypes.NOTATION_KEYWORD); }");
-				{
-					yybegin(ATTRIBUTE_ENUMERATION);
-					return createToken(DTDRegionTypes.NOTATION_KEYWORD);
-				}
-				case 267 :
-					break;
-				case 174 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [220] {
-				// yybegin(ATTRIBUTE_DEFAULT); return
-				// createToken(DTDRegionTypes.CDATA_KEYWORD); }");
-				{
-					yybegin(ATTRIBUTE_DEFAULT);
-					return createToken(DTDRegionTypes.CDATA_KEYWORD);
-				}
-				case 268 :
-					break;
-				case 173 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [223] {
-				// yybegin(ATTRIBUTE_DEFAULT); return
-				// createToken(DTDRegionTypes.IDREF_KEYWORD); }");
-				{
-					yybegin(ATTRIBUTE_DEFAULT);
-					return createToken(DTDRegionTypes.IDREF_KEYWORD);
-				}
-				case 269 :
-					break;
-				case 217 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [242] {
-				// yybegin(ATTLIST_CONTENT); return
-				// createToken(DTDRegionTypes.REQUIRED_KEYWORD); }");
-				{
-					yybegin(ATTLIST_CONTENT);
-					return createToken(DTDRegionTypes.REQUIRED_KEYWORD);
-				}
-				case 270 :
-					break;
-				case 122 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [307] { yybegin(YYINITIAL);
-				// return createToken(DTDRegionTypes.COMMENT_END); }");
-				{
-					yybegin(YYINITIAL);
-					return createToken(DTDRegionTypes.COMMENT_END);
-				}
-				case 271 :
-					break;
-				case 84 :
-				case 118 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [273] { return
-				// createToken(DTDRegionTypes.SINGLEQUOTED_LITERAL); }");
-				{
-					return createToken(DTDRegionTypes.SINGLEQUOTED_LITERAL);
-				}
-				case 272 :
-					break;
-				case 79 :
-				case 115 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [274] { return
-				// createToken(DTDRegionTypes.DOUBLEQUOTED_LITERAL); }");
-				{
-					return createToken(DTDRegionTypes.DOUBLEQUOTED_LITERAL);
-				}
-				case 273 :
-					break;
-				case 24 :
-				case 27 :
-				case 76 :
-				case 113 :
-				case 141 :
-				case 163 :
-				case 185 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [190] { return
-				// createToken(DTDRegionTypes.NAME); }");
-				{
-					return createToken(DTDRegionTypes.NAME);
-				}
-				case 274 :
-					break;
-				case 5 :
-				case 38 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [300] { yybegin(YYINITIAL);
-				// return createToken(DTDRegionTypes.NDATA_VALUE); }");
-				{
-					yybegin(YYINITIAL);
-					return createToken(DTDRegionTypes.NDATA_VALUE);
-				}
-				case 275 :
-					break;
-				case 13 :
-				case 66 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [256] { return
-				// createToken(DTDRegionTypes.NAME); }");
-				{
-					return createToken(DTDRegionTypes.NAME);
-				}
-				case 276 :
-					break;
-				case 18 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [167] { return
-				// createToken(DTDRegionTypes.START_TAG); }");
-				{
-					return createToken(DTDRegionTypes.START_TAG);
-				}
-				case 277 :
-					break;
-				case 17 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [171] { return
-				// createToken(DTDRegionTypes.SEMICOLON); }");
-				{
-					return createToken(DTDRegionTypes.SEMICOLON);
-				}
-				case 278 :
-					break;
-				case 30 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [193] { return
-				// createToken(DTDRegionTypes.CONNECTOR); }");
-				{
-					return createToken(DTDRegionTypes.CONNECTOR);
-				}
-				case 279 :
-					break;
-				case 22 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [170] { return
-				// createToken(DTDRegionTypes.PERCENT); }");
-				{
-					return createToken(DTDRegionTypes.PERCENT);
-				}
-				case 280 :
-					break;
-				case 19 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [168] { return
-				// createToken(DTDRegionTypes.END_TAG); }");
-				{
-					return createToken(DTDRegionTypes.END_TAG);
-				}
-				case 281 :
-					break;
-				case 32 :
-				//System.out.println("line: "+(yyline+1)+" "+"match:
-				// --"+yytext()+"--");
-				//System.out.println("action [264] { return
-				// createToken(DTDRegionTypes.PERCENT); }");
-				{
-					return createToken(DTDRegionTypes.PERCENT);
-				}
-				case 282 :
-					break;
-				default :
-					if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
-						yy_atEOF = true;
-						return null;
-					} else {
-						yy_ScanError(YY_NO_MATCH);
-					}
-			}
-		}
-	}
-
-	/**
-	 * Runs the scanner on input files.
-	 * 
-	 * This main method is the debugging routine for the scanner. It prints
-	 * debugging information about each returned token to System.out until the
-	 * end of file is reached, or an error occured.
-	 * 
-	 * @param argv
-	 *            the command line, contains the filenames to run the scanner
-	 *            on.
-	 */
-	public static void main(String argv[]) {
-		if (argv.length == 0) {
-			System.out.println("Usage : java DTDTokenizer <inputfile>");
-		} else {
-			for (int i = 0; i < argv.length; i++) {
-				DTDTokenizer scanner = null;
-				try {
-					scanner = new DTDTokenizer(new java.io.FileReader(argv[i]));
-					do {
-						System.out.println(scanner.yylex());
-					} while (!scanner.yy_atEOF);
-
-				} catch (java.io.FileNotFoundException e) {
-					System.out.println("File not found : \"" + argv[i] + "\"");
-				} catch (java.io.IOException e) {
-					System.out.println("IO error scanning file \"" + argv[i] + "\"");
-					System.out.println(e);
-				} catch (Exception e) {
-					System.out.println("Unexpected exception:");
-					e.printStackTrace();
-				}
-			}
-		}
-	}
-
-
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/tokenizer/Token.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/tokenizer/Token.java
deleted file mode 100644
index 4c8072d..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/tokenizer/Token.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.tokenizer;
-
-public class Token extends Yytoken {
-	public static final int COMMENT_START = 9;
-	public static final int CONNECTOR = 6;
-	public static final int CONTENT_ANY = 43;
-	public static final int CONTENT_EMPTY = 42;
-	public static final int CONTENT_PCDATA = 44;
-	public static final int ELEMENT_CONTENT = 41;
-
-	public static final int ELEMENT_TAG = 40;
-	public static final int END_TAG = 2;
-	public static final int ENTITY_CONTENT = 32;
-	public static final int ENTITY_PARM = 31;
-
-	public static final int ENTITY_TAG = 30;
-	public static final int EXCLAMATION = 8;
-	public static final int LEFT_PAREN = 3;
-	public static final int NAME = 0;
-	public static final int NOTATION_CONTENT = 21;
-
-
-	public static final int NOTATION_TAG = 20;
-
-	//    public static final int CONNECT_CHOICE = 5;
-	//    public static final int CONNECT_SEQUENCE = 6;
-	//    public static final int OCCUR_OPTIONAL = 7;
-	//    public static final int OCCUR_ONE_OR_MORE = 8;
-	//    public static final int OCCUR_ZERO_OR_MORE = 9;
-	public static final int OCCUR_TYPE = 7;
-	public static final int RIGHT_PAREN = 4;
-	public static final int START_TAG = 1;
-	public static final int WHITESPACE = 5;
-
-
-	public Token(String type) {
-		super(type);
-	}
-
-	public Token(String type, String text, int line, int charBegin, int length) {
-		super(type, text, line, charBegin, length);
-	}
-
-	public Token createCopy() {
-		Token copy = new Token(getType(), getText(), getStartLine(), getStartOffset(), getLength());
-		return copy;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/tokenizer/Yytoken.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/tokenizer/Yytoken.java
deleted file mode 100644
index ceead5f..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/tokenizer/Yytoken.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.tokenizer;
-
-class Yytoken {
-	public int m_charBegin;
-	public int m_length;
-	public int m_line;
-	public String m_text;
-	public String m_type;
-
-	Yytoken(String type) {
-		m_type = type;
-	}
-
-	Yytoken(String type, String text, int line, int charBegin, int length) {
-		m_type = type;
-		m_text = new String(text);
-		m_line = line;
-		m_charBegin = charBegin;
-		m_length = length;
-	}
-
-	public void delete(int start, int length) {
-		int stringStart = start - m_charBegin;
-		String oldString = m_text;
-		m_text = oldString.substring(0, stringStart);
-		m_text += oldString.substring(stringStart + length);
-
-		m_length = m_text.length();
-		System.out.println("new string = " + m_text); //$NON-NLS-1$
-
-	}
-
-	public boolean equals(Yytoken other) {
-		return m_type == other.getType() && m_text.equals(other.getText()) && m_line == other.getStartLine() && m_charBegin == other.getStartOffset() && m_length == other.getLength();
-	}
-
-	public int getEndOffset() {
-		return m_charBegin + m_length;
-	}
-
-	public int getLength() {
-		return m_length;
-	}
-
-	public int getStartLine() {
-		return m_line;
-	}
-
-	public int getStartOffset() {
-		return m_charBegin;
-	}
-
-	public String getText() {
-		return m_text;
-	}
-
-	public String getType() {
-		return m_type;
-	}
-
-	public void setStartOffset(int startOffset) {
-		m_charBegin = startOffset;
-	}
-
-	public String toString() {
-		return "Text   : " + m_text + "\ntype : " + m_type + "\nline  : " + m_line + "\ncBeg. : " + m_charBegin + "\ncEnd. : " + getEndOffset() + "\ncLength. : " + m_length; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-	}
-
-	public void updateOffset(int delta) {
-		m_charBegin += delta;
-	}
-
-	public void updateText(String newText) {
-		m_text = newText;
-		m_length = newText.length();
-	}
-}
-
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/tokenizer/dtd.flex b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/tokenizer/dtd.flex
deleted file mode 100644
index b29b7f8..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/tokenizer/dtd.flex
+++ /dev/null
@@ -1,312 +0,0 @@
-/* this is a scanner for DTD files */

-package org.eclipse.wst.dtd.core.tokenizer;

-

-import org.eclipse.wst.dtd.core.parser.DTDRegionTypes;

-

-%%

-

-%{

-  private int node_count = 0;

-  private String currentString;

-

-  private Token createToken(String type)

-  {

-    return new Token(type, yytext(), yyline, yychar + startOffset, yylength());

-  }

-

-  private int startOffset = 0;

-  public void setStartOffset(int startOffset)

-  {

-    this.startOffset = startOffset;

-  }

-

-  public void setLine(int line)

-  {

-    this.yyline = line;

-  }

-%} 

-

-%class DTDTokenizer

-%public

-%unicode

-%debug

-%line

-%char

-%state NODE

-%state ELEMENT_NAME

-%state ELEMENT_CONTENT

-%state ELEMENT_MIXED_OR_CHILD

-%state ELEMENT_MIXED

-%state ELEMENT_CHILD

-%state ENTITY_NAME

-%state ENTITY_CONTENT

-%state NDATA_CONTENT

-

-%state NOTATION_NAME

-%state EXTERNALID_CONTENT

-

-%state COMMENT_CONTENT

-%state ATTLIST_NAME

-%state ATTLIST_CONTENT

-%state ATTRIBUTE_CONTENT

-%state ATTRIBUTE_DEFAULT

-%state ATTRIBUTE_ENUMERATION

-

-

-ALPHA=[A-Za-z]

-DIGIT=[0-9]

-NONNEWLINE_WHITE_SPACE_CHAR=[\ \t\b\012]

-STRING_TEXT=(\\\"|[^\n\r\"]|\\{WHITE_SPACE_CHAR}+\\)*

-COMMENT_TEXT=([^*/\n]|[^*\n]"/"[^*\n]|[^/\n]"*"[^/\n]|"*"[^/\n]|"/"[^*\n])*

-Ident = {ALPHA}({ALPHA}|{DIGIT}|_)*

-InputCharacter = [^\r\n]

-

-LineTerminator = \r|\n|\r\n

-

-/* 3 - White Space */

-S              =    (\x20 | \x09 | \x0D | \x0A)+

-NonLineTerminatorWhitespace = (\x20 | \x09)+

-

-WhiteSpace     = {LineTerminator} | [ \t\f]

-

-/* 84 */

-/*Letter         =    {BaseChar} | {Ideographic}

-

-/* 85 */

-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]  

-

-/* 86 */

-Ideographic    =    [\u4E00-\u9FA5] | \u3007 | [\u3021-\u3029]  

-

-/* 4 */  /* is '.' to be escaped?? */

-NameChar       =    {Letter} | {Digit} | . | - | _ | : | {CombiningChar} | {Extender}

-

-/* 5 */

-Name           = ({Letter} | _ | :) {NameChar}* 

-

-/* 87 */

-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  

-

-/* 88 */

-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]  

-

-/* 89 */

-Extender       =    \u00B7 | \u02D0 | \u02D1 | \u0387 | \u0640 | \u0E46 | \u0EC6 | \u3005 | [\u3031-\u3035] | [\u309D-\u309E] | [\u30FC-\u30FE]  

-*/

-

-Letter         = [a-zA-Z]

-NameChar       = {Letter} | [0-9]

-//Name           = ({Letter} | _ | :) {NameChar}* 

-//Name           = [^\x20\x09\x0D\x0A]+

-Name           = [^\x20\x09\x0D\x0A\|,\!\?\+\*\(\)<>]+

-ElementRefName = [^\x20\x09\x0D\x0A\|,\?\+\*\(\)<>]+

-EntityName     = [^\x20\x09\x0D\x0A\|,\?\*\(\)<>]+

-ParmEntityName = [^\x20\x09\x0D\x0A\!%;<>]+

-

-CommentStart   = \!--

-CommentContent = [^->]+

-CommentEnd     = -->

-ElementStart   = ELEMENT

-ElementContent = [^<>]*

-

-EntityStart    = ENTITY

-Entity_Parm    = %{S}

-EntityContent  = {S}[^<>]*

-

-NotationStart  = NOTATION

-NotationContent = {S}[^<>]*

-AttList        = ATTLIST

-ExternalParmEntityRef = %{ParmEntityName};

-EndTag         = >

-StartTag       = <

-System         = SYSTEM

-Public         = PUBLIC

-NData          = NDATA

-

-// these are attribute type keywords

-//   we reuse NOTATION from NotationStart

-//   we reuse ENTITY from EntityStart

-CData          = CDATA

-ID             = ID

-IDRef          = IDREF

-IDRefs         = IDREFS

-Entities       = ENTITIES

-NMToken        = NMTOKEN

-NMTokens       = NMTOKENS

-

-// these are attribute defaults keywords

-Required       = #REQUIRED

-Implied        = #IMPLIED

-Fixed          = #FIXED

-

-

-Empty          = EMPTY

-Any            = ANY

-PcData         = #PCDATA

-LeftParen      = \(

-RightParen     = \)

-

-Percent        = %

-Semicolon      = ;

-Plus           = \+

-Choice  = \|

-Sequence = ,

-Connector      = {Choice}|{Sequence}

-OccurOptional  = \?

-OccurOneOrMore = \+

-OccurZeroOrMore = \*

-OccurType      = {OccurOptional}|{OccurOneOrMore}|{OccurZeroOrMore}

-Exclamation   = \!

-SingleQuotedLiteral = '[^']*'

-DoubleQuotedLiteral = \"[^\"]*\"

-NonTagContent = [^\x20\x09\x0D\x0A<>]*

-NonEnumContent = [^\x20\x09\x0D\x0A<>\(\)\|]*

-%% 

-

-<YYINITIAL> {

-  {StartTag}       { return createToken(DTDRegionTypes.START_TAG); }

-  {EndTag}         { return createToken(DTDRegionTypes.END_TAG); }

-  {Exclamation}    { return createToken(DTDRegionTypes.EXCLAMATION); }

-  {Percent}        { return createToken(DTDRegionTypes.PERCENT); }

-  {Semicolon}      { return createToken(DTDRegionTypes.SEMICOLON); }

-

-  {ElementStart}   { yybegin(ELEMENT_NAME); return createToken(DTDRegionTypes.ELEMENT_TAG); }

-  {CommentStart}   { yybegin(COMMENT_CONTENT); return createToken(DTDRegionTypes.COMMENT_START); }

-  {EntityStart}    { yybegin(ENTITY_NAME); return createToken(DTDRegionTypes.ENTITY_TAG); }

-  {NotationStart}  { yybegin(NOTATION_NAME); return createToken(DTDRegionTypes.NOTATION_TAG); }

-  {AttList}        { yybegin(ATTLIST_NAME); return createToken(DTDRegionTypes.ATTLIST_TAG); }

-

-  {ExternalParmEntityRef}   { return createToken(DTDRegionTypes.ENTITY_PARM); }

-// just a parmentityname by itself is no good.  we use this

-// to capture garbage content at the top level

-  {ParmEntityName}          { return createToken(DTDRegionTypes.UNKNOWN_CONTENT); }

-

-  {S}              { return createToken(DTDRegionTypes.WHITESPACE); }

-}

-

-<ELEMENT_NAME> {

-  {S}              { return createToken(DTDRegionTypes.WHITESPACE); }

-  {PcData}|\({S}*{PcData}{S}*\) { return createToken(DTDRegionTypes.CONTENT_PCDATA); }

-  {Name}           { return createToken(DTDRegionTypes.NAME); }

-

-  {LeftParen}      { return createToken(DTDRegionTypes.LEFT_PAREN); }

-  {Connector}      { return createToken(DTDRegionTypes.CONNECTOR); }    

-  {OccurType}      { return createToken(DTDRegionTypes.OCCUR_TYPE); }

-  {RightParen}     { return createToken(DTDRegionTypes.RIGHT_PAREN); }

-

-  {StartTag}       { yypushback(yylength()); yybegin(YYINITIAL); }

-  {EndTag}         { yypushback(yylength()); yybegin(YYINITIAL); }

-}

-

-// ******** <!ATTLIST...>

-<ATTLIST_NAME> {

-  {S}              { return createToken(DTDRegionTypes.WHITESPACE); }

-  {Name}           { yybegin(ATTLIST_CONTENT); return createToken(DTDRegionTypes.NAME); }

-  {NonTagContent}  { return createToken(DTDRegionTypes.UNKNOWN_CONTENT); }

-  {StartTag} | {EndTag} { yypushback(yylength()); yybegin(YYINITIAL); }

-}

-

-<ATTLIST_CONTENT> {

-  {S}              { return createToken(DTDRegionTypes.WHITESPACE); }

-  {Name}           { yybegin(ATTRIBUTE_CONTENT); return createToken(DTDRegionTypes.ATTRIBUTE_NAME); }

-  {NonTagContent}  { return createToken(DTDRegionTypes.UNKNOWN_CONTENT); }

-  {StartTag} | {EndTag} { yypushback(yylength()); yybegin(YYINITIAL); }

-}

-

-<ATTRIBUTE_CONTENT> {

-  {LineTerminator} { yypushback(yylength()); yybegin(ATTLIST_CONTENT); }

-  {NonLineTerminatorWhitespace}

-                   { return createToken(DTDRegionTypes.WHITESPACE); }

-  {CData}          { yybegin(ATTRIBUTE_DEFAULT); return createToken(DTDRegionTypes.CDATA_KEYWORD); }  

-

-  {ID}             { yybegin(ATTRIBUTE_DEFAULT); return createToken(DTDRegionTypes.ID_KEYWORD); }       

-  {IDRef}          { yybegin(ATTRIBUTE_DEFAULT); return createToken(DTDRegionTypes.IDREF_KEYWORD); }  

-  {IDRefs}         { yybegin(ATTRIBUTE_DEFAULT); return createToken(DTDRegionTypes.IDREFS_KEYWORD); }  

-  {EntityStart}    { yybegin(ATTRIBUTE_DEFAULT); return createToken(DTDRegionTypes.ENTITY_KEYWORD); }  

-  {Entities}       { yybegin(ATTRIBUTE_DEFAULT); return createToken(DTDRegionTypes.ENTITIES_KEYWORD); }  

-  {NMToken}        { yybegin(ATTRIBUTE_DEFAULT); return createToken(DTDRegionTypes.NMTOKEN_KEYWORD); }  

-  {NMTokens}       { yybegin(ATTRIBUTE_DEFAULT); return createToken(DTDRegionTypes.NMTOKENS_KEYWORD); }  

-  {NotationStart}  { yybegin(ATTRIBUTE_ENUMERATION); return createToken(DTDRegionTypes.NOTATION_KEYWORD); }  

-

-  {Required} | {Implied} | {Fixed} | {SingleQuotedLiteral} | { DoubleQuotedLiteral}

-                   { yypushback(yylength()); yybegin(ATTRIBUTE_DEFAULT); }

-

-  {LeftParen}      { yypushback(yylength()); yybegin(ATTRIBUTE_ENUMERATION); }  

-  {NonEnumContent} { yybegin(ATTRIBUTE_DEFAULT); return createToken(DTDRegionTypes.PARM_ENTITY_TYPE); }

-  {NonEnumContent}|{RightParen}|{Choice}  { return createToken(DTDRegionTypes.UNKNOWN_CONTENT); }

-  {StartTag} | {EndTag} { yypushback(yylength()); yybegin(YYINITIAL); }

-}

-

-<ATTRIBUTE_DEFAULT> {

-  {S}              { return createToken(DTDRegionTypes.WHITESPACE); }

-  {Required}       { yybegin(ATTLIST_CONTENT); return createToken(DTDRegionTypes.REQUIRED_KEYWORD); }

-  {Implied}        { yybegin(ATTLIST_CONTENT); return createToken(DTDRegionTypes.IMPLIED_KEYWORD); }

-  {Fixed}          { return createToken(DTDRegionTypes.FIXED_KEYWORD); }

-  {SingleQuotedLiteral}  { yybegin(ATTLIST_CONTENT); return createToken(DTDRegionTypes.SINGLEQUOTED_LITERAL); }

-  {DoubleQuotedLiteral}  { yybegin(ATTLIST_CONTENT); return createToken(DTDRegionTypes.DOUBLEQUOTED_LITERAL); }

-  {NonTagContent}   { yypushback(yylength()); yybegin(ATTLIST_CONTENT); } //return createToken(DTDRegionTypes.UNKNOWN_CONTENT); }

-  {StartTag} | {EndTag} { yypushback(yylength()); yybegin(YYINITIAL); }

-}

-

-<ATTRIBUTE_ENUMERATION> {

-  {S}              { return createToken(DTDRegionTypes.WHITESPACE); }

-  {LeftParen}      { return createToken(DTDRegionTypes.LEFT_PAREN); }

-  {Choice}         { return createToken(DTDRegionTypes.ENUM_CHOICE); }

-  {RightParen}     { yybegin(ATTRIBUTE_DEFAULT); return createToken(DTDRegionTypes.RIGHT_PAREN); }

-  {NonEnumContent}   { return createToken(DTDRegionTypes.NAME); }

-  {StartTag} | {EndTag} { yypushback(yylength()); yybegin(YYINITIAL); }

-}

-

-

-// ******** <!ENTITY...>

-<ENTITY_NAME> {

-  {S}              { return createToken(DTDRegionTypes.WHITESPACE); }

-  {Percent}        { return createToken(DTDRegionTypes.PERCENT); }

-  {EntityName}     { yybegin(ENTITY_CONTENT); return createToken(DTDRegionTypes.NAME); }

-  {StartTag} | {EndTag} { yypushback(yylength()); yybegin(YYINITIAL); }

-}

-

-<ENTITY_CONTENT> {

-//  {EntityContent} { yybegin(YYINITIAL); return createToken(DTDRegionTypes.ENTITY_CONTENT); }

-  {S}              { return createToken(DTDRegionTypes.WHITESPACE); }

-  {System} | {Public} { yypushback(yylength()); yybegin(EXTERNALID_CONTENT); }

-  {SingleQuotedLiteral}  { return createToken(DTDRegionTypes.SINGLEQUOTED_LITERAL); }

-  {DoubleQuotedLiteral}  { return createToken(DTDRegionTypes.DOUBLEQUOTED_LITERAL); }

-  {NonTagContent}   { return createToken(DTDRegionTypes.UNKNOWN_CONTENT); }

-  {StartTag} | {EndTag} { yypushback(yylength()); yybegin(YYINITIAL); }

-}

-

-

-// ******** <!NOTATION...>

-<NOTATION_NAME> {

-  {S}              { return createToken(DTDRegionTypes.WHITESPACE); }

-  {Name}           { yybegin(EXTERNALID_CONTENT); return createToken(DTDRegionTypes.NAME); }

-  {StartTag} | {EndTag} { yypushback(yylength()); yybegin(YYINITIAL); }

-}

-

-<EXTERNALID_CONTENT> {

-  {S}              { return createToken(DTDRegionTypes.WHITESPACE); }

-  {System}         { return createToken(DTDRegionTypes.SYSTEM_KEYWORD); }  

-  {Public}         { return createToken(DTDRegionTypes.PUBLIC_KEYWORD); }  

-  {SingleQuotedLiteral}  { return createToken(DTDRegionTypes.SINGLEQUOTED_LITERAL); }

-  {DoubleQuotedLiteral}  { return createToken(DTDRegionTypes.DOUBLEQUOTED_LITERAL); }

-  {NData}          { yybegin(NDATA_CONTENT); return createToken(DTDRegionTypes.NDATA_KEYWORD); }

-  {NonTagContent}   { return createToken(DTDRegionTypes.UNKNOWN_CONTENT); }

-  {StartTag} | {EndTag} { yypushback(yylength()); yybegin(YYINITIAL); }

-}

-

-<NDATA_CONTENT> {

-  {S}              { return createToken(DTDRegionTypes.WHITESPACE); }

-  {NonTagContent}  { yybegin(YYINITIAL); return createToken(DTDRegionTypes.NDATA_VALUE); }

-  {StartTag} | {EndTag} { yypushback(yylength()); yybegin(YYINITIAL); }

-}

-  

-

-// ******** <!-- ...>

-<COMMENT_CONTENT> {

-  {CommentEnd}  { yybegin(YYINITIAL); return createToken(DTDRegionTypes.COMMENT_END); }

-  {S}              { return createToken(DTDRegionTypes.WHITESPACE); }

-  {CommentContent} | "-" | ">"  { return createToken(DTDRegionTypes.COMMENT_CONTENT); }

-}

-

-

diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDBatchNodeDelete.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDBatchNodeDelete.java
deleted file mode 100644
index 9f7109d..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDBatchNodeDelete.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.util;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.dtd.core.DTDFile;
-import org.eclipse.wst.dtd.core.DTDNode;
-
-
-public class DTDBatchNodeDelete {
-	protected DTDFile dtdFile;
-
-	protected List nodes = new ArrayList();
-
-	public DTDBatchNodeDelete(DTDFile dtdFile) {
-		this.dtdFile = dtdFile;
-	}
-
-	public void addNode(DTDNode node) {
-		// first check if the node is contained by anyone
-		for (int i = 0; i < nodes.size(); i++) {
-			DTDNode currentNode = (DTDNode) nodes.get(i);
-
-			if (currentNode.containsRange(node.getStartOffset(), node.getEndOffset())) {
-				// then no need to add the node to the list to be deleted
-				return;
-			}
-
-			if (node.getStartOffset() < currentNode.getStartOffset() && node.getEndOffset() <= currentNode.getStartOffset()) {
-				nodes.add(i, node);
-				return;
-			}
-		}
-		// if we get here, then add it to the end
-		nodes.add(node);
-	}
-
-	public void deleteNodes(Object requestor) {
-		for (int i = nodes.size() - 1; i >= 0; i--) {
-			DTDNode node = (DTDNode) nodes.get(i);
-			dtdFile.deleteNode(requestor, (DTDNode) nodes.get(i));
-		}
-		nodes.clear();
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDExternalReferenceRemover.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDExternalReferenceRemover.java
deleted file mode 100644
index 168cc09..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDExternalReferenceRemover.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.util;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.dtd.core.Attribute;
-import org.eclipse.wst.dtd.core.AttributeList;
-import org.eclipse.wst.dtd.core.CMBasicNode;
-import org.eclipse.wst.dtd.core.DTDFile;
-import org.eclipse.wst.dtd.core.DTDNode;
-import org.eclipse.wst.dtd.core.Element;
-import org.eclipse.wst.dtd.core.Entity;
-
-
-/*
- * This class is responsible for updating the model when items are deleted or
- * so that items referenced by it are cleaned up note that top level nodes are
- * queued up for deletion so that iteration over the list of nodes from the
- * dtdfile is not messed up. Note that when an external parmeter entity
- * changes, the client of the model (e.g. editor) must be a DTDFileListener
- * implementing the listener's interface to keep the model's referential
- * integrity (See DTDModelImpl for example).
- */
-
-public class DTDExternalReferenceRemover extends DTDVisitor {
-
-	protected DTDBatchNodeDelete batchDelete;
-	protected List externalElementsAndParmEntities = new ArrayList();
-
-	protected boolean isParmEntity = false;
-
-	protected boolean isUpdating = false;
-	protected DTDNode nodeToDelete;
-	protected String oldRefName = ""; //$NON-NLS-1$
-	protected Object requestor;
-
-	public DTDExternalReferenceRemover() {
-
-	}
-
-	public synchronized void externalReferenceAboutToChange(Object requestor, Entity entity) {
-		if (isUpdating) {
-			return;
-		}
-		if (!entity.isParameterEntity() || !entity.isExternalEntity()) {
-			// if it is not an external parameter entity, ignore as well
-			return;
-		}
-
-		isUpdating = true;
-		this.requestor = requestor;
-
-		DTDFile dtdFile = entity.getDTDFile();
-		if (batchDelete == null) {
-			batchDelete = new DTDBatchNodeDelete(dtdFile);
-		}
-
-		// See the comment at the head of this file regarding
-		// external parameter entities.
-		//externalElementsAndParmEntities =
-		// dtdFile.getDTDModel().getExternalModels().getElementContentNames(entity.getPublicID(),
-		// dtdFile.getDTDModel().resolveID(entity.getPublicID(),
-		// entity.getSystemID()));
-
-		visit(dtdFile);
-
-		batchDelete.deleteNodes(requestor);
-
-		isUpdating = false;
-	}
-
-	public boolean isMatchingName(String name) {
-		return externalElementsAndParmEntities.contains(name);
-	}
-
-	public void visitAttribute(Attribute attr) {
-		super.visitAttribute(attr);
-		String attrName = attr.getName();
-		String attrType = attr.getType();
-
-		if (isParameterEntityRef(attrName)) {
-			if (isMatchingName(attrName)) {
-				attr.setName(requestor, "TempName"); //$NON-NLS-1$
-			}
-		}
-		if (isParameterEntityRef(attrType)) {
-			if (isMatchingName(attrType)) {
-				attr.setType(requestor, Attribute.CDATA);
-			}
-		}
-	}
-
-	public void visitAttributeList(AttributeList attList) {
-		super.visitAttributeList(attList);
-		String attListName = attList.getName();
-		if (isParameterEntityRef(attListName)) {
-			if (isMatchingName(attListName)) {
-				attList.setName(requestor, "TempName"); //$NON-NLS-1$
-			}
-		}
-	}
-
-	public void visitElement(Element element) {
-		String elementName = element.getName();
-		if (isParameterEntityRef(elementName)) {
-			if (isMatchingName(elementName)) {
-				element.setName(requestor, "TempName"); //$NON-NLS-1$
-			}
-		}
-		super.visitElement(element);
-	}
-
-	public void visitReference(CMBasicNode node) {
-		super.visitReference(node);
-		String refName = node.getName();
-		if (isMatchingName(refName)) {
-			DTDNode parent = (DTDNode) node.getParentNode();
-			batchDelete.addNode(node);
-			//      parent.delete(requestor, node);
-		}
-	}
-
-	//    public void
-	// visitExternalParameterEntityReference(ParameterEntityReference
-	// parmEntityRef)
-	//    {
-	//      super.visitExternalParameterEntityReference(parmEntityRef);
-	//      if (isParmEntity && parmEntityRef.getName().equals(oldRefName))
-	//      {
-	//        nodesToDelete.add(parmEntityRef);
-	//      }
-	//    }
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDModelUpdater.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDModelUpdater.java
deleted file mode 100644
index fa2d0f9..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDModelUpdater.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.util;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.dtd.core.Attribute;
-import org.eclipse.wst.dtd.core.AttributeList;
-import org.eclipse.wst.dtd.core.CMBasicNode;
-import org.eclipse.wst.dtd.core.DTDFile;
-import org.eclipse.wst.dtd.core.DTDNode;
-import org.eclipse.wst.dtd.core.Element;
-import org.eclipse.wst.dtd.core.Entity;
-import org.eclipse.wst.dtd.core.ParameterEntityReference;
-
-
-// this class is responsible for updating the model when items
-// are deleted or a external parm entity changes so that
-// items referenced by it are cleaned up
-// note that top level nodes are queued up for deletion so that
-// iteration over the list of nodes from the dtdfile is not messed up
-public class DTDModelUpdater extends DTDVisitor {
-
-	protected boolean isParmEntity = false;
-
-	protected boolean isUpdating = false;
-
-	protected List nodesToDelete = new ArrayList();
-	protected DTDNode nodeToDelete;
-	protected String oldRefName = ""; //$NON-NLS-1$
-	protected Object requestor;
-
-	public DTDModelUpdater() {
-
-	}
-
-	public synchronized void objectAboutToBeDeleted(Object requestor, DTDNode node) {
-		if (isUpdating) {
-			return;
-		}
-		if (!(node instanceof Entity || node instanceof Element)) {
-			// just ignore if it is not one of these
-			return;
-		}
-		if (node instanceof Entity && !((Entity) node).isParameterEntity()) {
-			// if it is not a parameter entity, ignore as well
-			return;
-		}
-
-
-		isUpdating = true;
-		this.requestor = requestor;
-		this.nodeToDelete = node;
-		oldRefName = node.getName();
-		isParmEntity = false;
-		nodesToDelete.clear();
-
-		if (node instanceof Entity) {
-			Entity entity = (Entity) node;
-			isParmEntity = true;
-			oldRefName = "%" + oldRefName + ";"; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		DTDFile dtdFile = node.getDTDFile();
-		visit(dtdFile);
-
-		for (int i = 0; i < nodesToDelete.size(); i++) {
-			dtdFile.deleteNode(requestor, (DTDNode) nodesToDelete.get(i));
-		}
-
-		isUpdating = false;
-	}
-
-	public void visitAttribute(Attribute attr) {
-		super.visitAttribute(attr);
-		if (isParmEntity) {
-			if (attr.getName().equals(oldRefName)) {
-				attr.setName(requestor, "TempName"); //$NON-NLS-1$
-			}
-			if (attr.getType().equals(oldRefName)) {
-				attr.setType(requestor, Attribute.CDATA);
-			}
-		}
-		// check the attr name and the attr type to see if it
-		// needs updating
-	}
-
-	public void visitAttributeList(AttributeList attList) {
-		super.visitAttributeList(attList);
-		if (attList.getName().equals(oldRefName)) {
-			if (isParmEntity) {
-				attList.setName(requestor, "TempName"); //$NON-NLS-1$
-			} else {
-				// save up for later deletion
-				nodesToDelete.add(attList);
-			}
-		}
-	}
-
-	public void visitElement(Element element) {
-		if (isParmEntity) {
-			if (element.getName().equals(oldRefName)) {
-				element.setName(requestor, "TempName"); //$NON-NLS-1$
-			}
-		}
-		super.visitElement(element);
-	}
-
-	public void visitExternalParameterEntityReference(ParameterEntityReference parmEntityRef) {
-		super.visitExternalParameterEntityReference(parmEntityRef);
-		if (isParmEntity && parmEntityRef.getName().equals(oldRefName)) {
-			nodesToDelete.add(parmEntityRef);
-		}
-	}
-
-	public void visitReference(CMBasicNode node) {
-		super.visitReference(node);
-
-		if (node.getName().equals(oldRefName)) {
-			DTDNode parent = (DTDNode) node.getParentNode();
-			parent.delete(requestor, node);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDNotationReferenceRemover.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDNotationReferenceRemover.java
deleted file mode 100644
index cbcb9ed..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDNotationReferenceRemover.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.util;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.dtd.core.Attribute;
-import org.eclipse.wst.dtd.core.AttributeEnumList;
-import org.eclipse.wst.dtd.core.AttributeList;
-import org.eclipse.wst.dtd.core.DTDFile;
-import org.eclipse.wst.dtd.core.DTDNode;
-import org.eclipse.wst.dtd.core.Entity;
-import org.eclipse.wst.dtd.core.Notation;
-
-
-public class DTDNotationReferenceRemover {
-	protected Notation notation;
-	protected String notationName;
-
-	protected Object requestor;
-
-	public DTDNotationReferenceRemover() {
-
-	}
-
-	public void notationAboutToBeDeleted(Object requestor, Notation notation) {
-		this.requestor = requestor;
-		this.notation = notation;
-		notationName = notation.getName();
-
-		visit(notation.getDTDFile());
-	}
-
-	public void visit(DTDFile file) {
-		List nodes = file.getNodes();
-		for (int i = 0; i < nodes.size(); i++) {
-			DTDNode currentNode = (DTDNode) nodes.get(i);
-			if (currentNode instanceof Entity) {
-				visitEntity((Entity) currentNode);
-			} else if (currentNode instanceof AttributeList) {
-				visitAttributeList((AttributeList) currentNode);
-			}
-		}
-	}
-
-	public void visitAttribute(Attribute attr) {
-		if (attr.getType().equals(Attribute.ENUMERATED_NOTATION)) {
-			AttributeEnumList enumList = attr.getEnumList();
-			List notationNames = enumList.getItems();
-			Iterator iter = notationNames.iterator();
-			boolean updateRequired = false;
-			while (iter.hasNext()) {
-				String notation = (String) iter.next();
-				if (notation.equals(notationName)) {
-					updateRequired = true;
-					iter.remove();
-				}
-			}
-			if (updateRequired) {
-				String[] newItems = new String[notationNames.size()];
-				notationNames.toArray(newItems);
-				enumList.setItems(requestor, newItems);
-			}
-		}
-	}
-
-	public void visitAttributeList(AttributeList attList) {
-		Attribute attr = (Attribute) attList.getFirstChild();
-		while (attr != null) {
-			visitAttribute(attr);
-			attr = (Attribute) attr.getNextSibling();
-		}
-	}
-
-	public void visitEntity(Entity entity) {
-		if (entity.getNotationName().equals(notationName)) {
-			entity.setNotationName(requestor, ""); //$NON-NLS-1$
-		}
-	}
-
-}// DTDNotationRemover
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDReferenceUpdater.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDReferenceUpdater.java
deleted file mode 100644
index 79bfcf2..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDReferenceUpdater.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.util;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.dtd.core.Attribute;
-import org.eclipse.wst.dtd.core.AttributeEnumList;
-import org.eclipse.wst.dtd.core.AttributeList;
-import org.eclipse.wst.dtd.core.CMBasicNode;
-import org.eclipse.wst.dtd.core.DTDFile;
-import org.eclipse.wst.dtd.core.DTDNode;
-import org.eclipse.wst.dtd.core.Element;
-import org.eclipse.wst.dtd.core.Entity;
-import org.eclipse.wst.dtd.core.Notation;
-import org.eclipse.wst.dtd.core.ParameterEntityReference;
-
-
-// this class is responsible for updating any dtd node in
-// response to a change in the node that they reference
-public class DTDReferenceUpdater extends DTDVisitor {
-	protected boolean isNotation = false;
-
-	protected boolean isParmEntity = false;
-
-	protected boolean isUpdating = false;
-	protected String newName = ""; //$NON-NLS-1$
-	protected String oldRefName = "", newRefName = ""; //$NON-NLS-1$ //$NON-NLS-2$
-	protected DTDNode referencedNode = null;
-
-	// the references List is a cache of the DTDNodes that are changed
-	// as a result of a call to nameAboutToChange(). The idea is that
-	// if a subsequent call comes in that changes the name of the same
-	// object for which this cache exists for, then we optimize the
-	// path by just walking the cache
-	private List references = new ArrayList();
-	protected Object requestor;
-
-	public DTDReferenceUpdater() {
-
-	}
-
-	public void clearCache() {
-		referencedNode = null;
-		references.clear();
-	}
-
-	public synchronized void nameAboutToChange(Object requestor, DTDNode referencedNode, String newName) {
-		if (isUpdating) {
-			return;
-		}
-		if (!(referencedNode instanceof Entity || referencedNode instanceof Element || referencedNode instanceof Notation)) {
-			// just ignore if it is not one of these
-			return;
-		}
-		if (referencedNode instanceof Entity && !((Entity) referencedNode).isParameterEntity()) {
-			// if it is not a parameter entity, ignore as well
-			return;
-		}
-
-		isUpdating = true;
-		this.requestor = requestor;
-		oldRefName = referencedNode.getName();
-		this.newName = newRefName = newName;
-		isParmEntity = false;
-		isNotation = referencedNode instanceof Notation;
-
-		if (referencedNode instanceof Entity) {
-			Entity entity = (Entity) referencedNode;
-			isParmEntity = true;
-			oldRefName = "%" + oldRefName + ";"; //$NON-NLS-1$ //$NON-NLS-2$
-			newRefName = "%" + newRefName + ";"; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		if (this.referencedNode != null) {
-			// check if the previous referenced node that was changed
-			// is the same as the one that is coming in. if so, just
-			// change the previous regions
-			if (this.referencedNode == referencedNode) {
-				quickUpdate();
-				isUpdating = false;
-				return;
-			}
-		}
-
-		// clear the cache if we get here
-		this.referencedNode = referencedNode;
-		references.clear();
-		DTDFile dtdFile = referencedNode.getDTDFile();
-		visit(dtdFile);
-		isUpdating = false;
-	}
-
-	protected void quickUpdate() {
-		for (int i = 0; i < references.size(); i++) {
-			DTDNode node = (DTDNode) references.get(i);
-			if (node instanceof Element) {
-				visitElement((Element) node);
-			} else if (node instanceof AttributeList) {
-				visitAttributeList((AttributeList) node);
-			} else if (node instanceof Attribute) {
-				visitAttribute((Attribute) node);
-			} else if (node instanceof CMBasicNode) {
-				visitReference((CMBasicNode) node);
-			} else if (node instanceof ParameterEntityReference) {
-				visitExternalParameterEntityReference((ParameterEntityReference) node);
-			}
-		}
-	}
-
-	public void visitAttribute(Attribute attr) {
-		super.visitAttribute(attr);
-		if (isParmEntity) {
-			// check the attr name and the attr type to see if it
-			// needs updating
-			if (attr.getName().equals(oldRefName)) {
-				attr.setName(requestor, newRefName);
-				references.add(attr);
-			}
-			if (attr.getType().equals(oldRefName)) {
-				attr.setType(requestor, newRefName);
-				references.add(attr);
-			}
-		} else if (isNotation && attr.getType().equals(Attribute.ENUMERATED_NOTATION)) {
-			AttributeEnumList enumList = attr.getEnumList();
-			List items = enumList.getItems();
-			boolean updateNeeded = false;
-			for (int i = 0; i < items.size(); i++) {
-				String notationName = (String) items.get(i);
-				if (notationName.equals(oldRefName)) {
-					updateNeeded = true;
-					items.set(i, newName);
-				}
-			}
-			if (updateNeeded) {
-				String[] newItems = new String[items.size()];
-
-				enumList.setItems((String[]) items.toArray(newItems));
-			}
-		}
-
-	}
-
-	public void visitAttributeList(AttributeList attList) {
-		if (!isNotation && attList.getName().equals(oldRefName)) {
-			attList.setName(requestor, newRefName);
-			references.add(attList);
-		}
-		super.visitAttributeList(attList);
-	}
-
-	public void visitElement(Element element) {
-		if (isParmEntity) {
-			if (element.getName().equals(oldRefName)) {
-				element.setName(requestor, newRefName);
-				references.add(element);
-			}
-		}
-		super.visitElement(element);
-	}
-
-	public void visitExternalParameterEntityReference(ParameterEntityReference parmEntityRef) {
-		super.visitExternalParameterEntityReference(parmEntityRef);
-		if (parmEntityRef.getName().equals(oldRefName)) {
-			parmEntityRef.setReferencedEntity(requestor, newName);
-			references.add(parmEntityRef);
-		}
-	}
-
-	public void visitReference(CMBasicNode node) {
-		super.visitReference(node);
-		if (isParameterEntityRef(oldRefName) && !isParmEntity) {
-			return;
-		}
-
-		if (node.getName().equals(oldRefName)) {
-			node.setName(requestor, newRefName);
-			references.add(node);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDSAXParser.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDSAXParser.java
deleted file mode 100644
index 04f0971..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDSAXParser.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.util;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.parsers.SAXParser;
-
-import org.xml.sax.Parser;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXNotRecognizedException;
-import org.xml.sax.SAXNotSupportedException;
-import org.xml.sax.XMLReader;
-
-/**
- * TODO: Kihup and Nitin, reevaluate the use and implementation of this class
- */
-
-//import org.apache.xerces.parsers.SAXParser;
-//import org.apache.xerces.xni.Augmentations;
-//import org.apache.xerces.xni.XMLLocator;
-//import org.apache.xerces.xni.XMLString;
-//import org.apache.xerces.xni.XNIException;
-public class DTDSAXParser extends SAXParser {
-
-	private List ignoredEntityRefs = new ArrayList();
-
-	//  private XMLLocator locator;
-	//
-	public List getIgnoredEntityRefs() {
-		return ignoredEntityRefs;
-	}
-
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see javax.xml.parsers.SAXParser#getParser()
-	 */
-	public Parser getParser() throws SAXException {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see javax.xml.parsers.SAXParser#getProperty(java.lang.String)
-	 */
-	public Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see javax.xml.parsers.SAXParser#getXMLReader()
-	 */
-	public XMLReader getXMLReader() throws SAXException {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	//
-	//  public XMLLocator getLocator()
-	//  {
-	//    return locator;
-	//  }
-	//
-	//  public void startDocument
-	//    (XMLLocator locator,
-	//     String encoding,
-	//     Augmentations augs)
-	//  {
-	//    this.locator = locator;
-	//    super.startDocument(locator,encoding,augs);
-	//  }
-	//
-	//  public void ignoredCharacters(XMLString text, Augmentations augs)
-	//    throws XNIException
-	//  {
-	//    String s =
-	//      text.length > 0 ? new String(text.ch,text.offset,text.length) : "";
-	//    //System.out.println("ignoredCharacters: " + s);
-	//
-	//    StringTokenizer tokenizer = new StringTokenizer(s,";");
-	//    try
-	//    {
-	//      String token = null;
-	//      while (tokenizer.hasMoreTokens())
-	//      {
-	//        token = tokenizer.nextToken();
-	//        if (isEntityRef(token))
-	//          registerEntityRef(token);
-	//      }
-	//    }
-	//    catch (NoSuchElementException e)
-	//    {
-	//      e.printStackTrace();
-	//    }
-	//  }
-	//
-	// TODO: never used
-	 boolean isEntityRef(String token) {
-		// Looking for the pattern "nnnn%nnnnn".
-		if (token.indexOf('%') != -1)
-			return true; // candidate for entity reference
-		else
-			return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see javax.xml.parsers.SAXParser#isNamespaceAware()
-	 */
-	public boolean isNamespaceAware() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see javax.xml.parsers.SAXParser#isValidating()
-	 */
-	public boolean isValidating() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	// TODO: never used
-	 void registerEntityRef(String token) {
-		int index = token.lastIndexOf('%');
-		if (index == -1)
-			return;
-
-		String refName = token.substring(index, token.length());
-		//System.out.println("entity ref name is: " + refName);
-		if (refName.indexOf(' ') != -1 || refName.indexOf('\t') != -1 || refName.indexOf('\n') != -1)
-			return;
-		else
-			// we found entity reference
-			ignoredEntityRefs.add(refName + ";"); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see javax.xml.parsers.SAXParser#setProperty(java.lang.String,
-	 *      java.lang.Object)
-	 */
-	public void setProperty(String name, Object value) throws SAXNotRecognizedException, SAXNotSupportedException {
-		// TODO Auto-generated method stub
-
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDUniqueNameHelper.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDUniqueNameHelper.java
deleted file mode 100644
index 1555c24..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDUniqueNameHelper.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.util;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.dtd.core.Attribute;
-import org.eclipse.wst.dtd.core.CMBasicNode;
-import org.eclipse.wst.dtd.core.DTDFile;
-import org.eclipse.wst.dtd.core.Element;
-import org.eclipse.wst.dtd.core.Entity;
-import org.eclipse.wst.dtd.core.Notation;
-
-
-public class DTDUniqueNameHelper {
-
-	static public String getName(Object obj) {
-		if (obj instanceof Element) {
-			return ((Element) obj).getName();
-		} else if (obj instanceof Entity) {
-			return ((Entity) obj).getName();
-		} else if (obj instanceof Notation) {
-			return ((Notation) obj).getName();
-		} else if (obj instanceof Attribute) {
-			return ((Attribute) obj).getName();
-		} else if (obj instanceof CMBasicNode) // Model Group Content
-		{
-			return ((CMBasicNode) obj).getName();
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	static public String getUniqueAttributeName(Element element) {
-		List attrs = element.getElementAttributes();
-		return getUniqueName(attrs, "NewAttribute"); //$NON-NLS-1$
-	}
-
-	static public String getUniqueElementName(DTDFile dtdFile) {
-		List elements = dtdFile.getElementsAndParameterEntityReferences().getNodes();
-		return getUniqueName(elements, "NewElement"); //$NON-NLS-1$
-	}
-
-	static public String getUniqueEntityName(DTDFile dtdFile) {
-		List entities = dtdFile.getEntities().getNodes();
-		return getUniqueName(entities, "NewEntity"); //$NON-NLS-1$
-	}
-
-	static public String getUniqueName(List objs, String token) {
-		int counter = 1;
-
-		boolean uniqueName = false;
-		while (!uniqueName) {
-			String newName = token + new Integer(counter++);
-			uniqueName = true;
-			Iterator iter = objs.iterator();
-			while (iter.hasNext()) {
-				Object obj = iter.next();
-				String objName = getName(obj);
-				if (objName.equals(newName)) {
-					uniqueName = false;
-					break;
-				}
-			}
-			if (uniqueName) {
-				return newName;
-			}
-		}
-		// we shouldn't get here
-		return "No Name found"; //$NON-NLS-1$
-	}
-
-	static public String getUniqueNotationName(DTDFile dtdFile) {
-		List notations = dtdFile.getNotations().getNodes();
-		return getUniqueName(notations, "NewNotation"); //$NON-NLS-1$
-	}
-
-	public DTDUniqueNameHelper() {
-	}
-
-} // DTDUniqueNameHelper
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDVisitor.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDVisitor.java
deleted file mode 100644
index 2544de7..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/DTDVisitor.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.util;
-
-import java.util.List;
-
-import org.eclipse.wst.dtd.core.Attribute;
-import org.eclipse.wst.dtd.core.AttributeList;
-import org.eclipse.wst.dtd.core.CMBasicNode;
-import org.eclipse.wst.dtd.core.CMGroupNode;
-import org.eclipse.wst.dtd.core.CMNode;
-import org.eclipse.wst.dtd.core.DTDFile;
-import org.eclipse.wst.dtd.core.DTDNode;
-import org.eclipse.wst.dtd.core.Element;
-import org.eclipse.wst.dtd.core.ParameterEntityReference;
-
-
-public class DTDVisitor {
-
-	public DTDVisitor() {
-
-	}
-
-	// utility method
-	public boolean isParameterEntityRef(String reference) {
-		if (reference.length() > 0) {
-			return reference.charAt(0) == '%' && reference.charAt(reference.length() - 1) == ';';
-		}
-		return false;
-	}
-
-	public void visit(DTDFile file) {
-		List nodes = file.getNodes();
-		for (int i = 0; i < nodes.size(); i++) {
-			DTDNode currentNode = (DTDNode) nodes.get(i);
-			if (currentNode instanceof Element) {
-				visitElement((Element) currentNode);
-			} else if (currentNode instanceof AttributeList) {
-				visitAttributeList((AttributeList) currentNode);
-			} else if (currentNode instanceof ParameterEntityReference) {
-				visitExternalParameterEntityReference((ParameterEntityReference) currentNode);
-			}
-		}
-	}
-
-	public void visitAttribute(Attribute attr) {
-	}
-
-	public void visitAttributeList(AttributeList attList) {
-		// note that we don't visit attributes here because we
-		// want the element to visit them with it's consolidated list
-		// that it creates by gathering all attribute lists together
-	}
-
-	public void visitAttributes(List attributes) {
-		int size = attributes.size();
-		for (int i = 0; i < size; i++) {
-			Attribute attr = (Attribute) attributes.get(i);
-			visitAttribute(attr);
-		}
-	}
-
-	public void visitContentNode(CMNode content) {
-		if (content instanceof CMBasicNode) {
-			CMBasicNode basicNode = (CMBasicNode) content;
-			if (basicNode.isReference()) {
-				visitReference(basicNode);
-			}
-		} else if (content instanceof CMGroupNode) {
-			visitGroupNode((CMGroupNode) content);
-		}
-	}
-
-	public void visitElement(Element element) {
-		CMNode content = element.getContentModel();
-		visitContentNode(content);
-		visitAttributes(element.getElementAttributes());
-	}
-
-	public void visitExternalParameterEntityReference(ParameterEntityReference parmEntityRef) {
-	}
-
-	public void visitGroupNode(CMGroupNode group) {
-		List children = group.getChildrenList();
-		int size = children.size();
-		for (int i = 0; i < size; i++) {
-			visitContentNode((CMNode) children.get(i));
-		}
-	}
-
-	public void visitReference(CMBasicNode node) {
-	}
-
-
-}
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/LabelValuePair.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/LabelValuePair.java
deleted file mode 100644
index 5f04ceb..0000000
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/util/LabelValuePair.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.dtd.core.util;
-
-import org.eclipse.jface.util.Assert;
-
-public class LabelValuePair {
-
-	public String fLabel;
-	public Object fValue;
-
-	/**
-	 * Creates a new name/value item
-	 */
-	public LabelValuePair(String label, Object value) {
-		Assert.isTrue(label != null);
-		fLabel = label;
-		fValue = value;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/.classpath b/bundles/org.eclipse.wst.sse.core/.classpath
deleted file mode 100644
index 498bbe6..0000000
--- a/bundles/org.eclipse.wst.sse.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry excluding="org/eclipse/**/internal/**" kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.wst.sse.core/.compatibility b/bundles/org.eclipse.wst.sse.core/.compatibility
deleted file mode 100644
index b10de48..0000000
--- a/bundles/org.eclipse.wst.sse.core/.compatibility
+++ /dev/null
@@ -1,2 +0,0 @@
-#Wed Mar 24 13:53:52 EST 2004

-.project=7955

diff --git a/bundles/org.eclipse.wst.sse.core/.cvsignore b/bundles/org.eclipse.wst.sse.core/.cvsignore
deleted file mode 100644
index 826c644..0000000
--- a/bundles/org.eclipse.wst.sse.core/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin
-model.jar
-build.xml
-temp.folder
-org.eclipse.wst.sse.core_1.0.0.jar
diff --git a/bundles/org.eclipse.wst.sse.core/.options b/bundles/org.eclipse.wst.sse.core/.options
deleted file mode 100644
index 08bcfef..0000000
--- a/bundles/org.eclipse.wst.sse.core/.options
+++ /dev/null
@@ -1,15 +0,0 @@
-org.eclipse.wst.sse.core/debug=true
-org.eclipse.wst.sse.core/debug/tracefilter=
-org.eclipse.wst.sse.core/dom/adapter/notification/time=false
-org.eclipse.wst.sse.core/dom/adapter/notification/time/criteria=10
-org.eclipse.wst.sse.core/resourcechangehandling=false
-org.eclipse.wst.sse.core/structuredmodel/lifecycle=false
-org.eclipse.wst.sse.core/structuredmodel/state=false
-org.eclipse.wst.sse.core/builder=false
-org.eclipse.wst.sse.core/builder/detection=false
-org.eclipse.wst.sse.core/builder/time=false
-org.eclipse.wst.sse.core/participantregistry=false
-org.eclipse.wst.sse.core/builder/participant/tasktag=false
-org.eclipse.wst.sse.core/builder/modelprovider=false
-org.eclipse.wst.sse.core/filebuffers/modelmanagement=false
-org.eclipse.wst.sse.core/filebuffers/lifecycle=false
diff --git a/bundles/org.eclipse.wst.sse.core/.project b/bundles/org.eclipse.wst.sse.core/.project
deleted file mode 100644
index 36c5b34..0000000
--- a/bundles/org.eclipse.wst.sse.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.sse.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.sse.core/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.sse.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 508cf40..0000000
--- a/bundles/org.eclipse.wst.sse.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,69 +0,0 @@
-#Mon Nov 29 12:52:04 EST 2004

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

-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled

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

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

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

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

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

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

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

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

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

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

-org.eclipse.jdt.core.builder.invalidClasspath=abort

-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch

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

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

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

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

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

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

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

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

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

-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve

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

-org.eclipse.jdt.core.compiler.compliance=1.4

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

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

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

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

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

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

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

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

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

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

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

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

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

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2

-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled

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

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

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

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

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

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

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

-eclipse.preferences.version=1

-org.eclipse.jdt.core.circularClasspath=error

-org.eclipse.jdt.core.compiler.maxProblemPerUnit=500

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

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

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

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

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

-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled

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

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

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

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

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

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

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

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

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

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

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

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.jFlex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.jFlex
deleted file mode 100644
index 00c56b7b..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.jFlex
+++ /dev/null
@@ -1,286 +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.common.encoding.contentspecific.css;
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.wst.common.encoding.contentspecific.EncodingParserConstants;
-import org.eclipse.wst.common.encoding.contentspecific.HeadParserToken;
-import org.eclipse.wst.common.encoding.contentspecific.IntStack;
-import org.eclipse.wst.common.encoding.contentspecific.xml.XMLHeadTokenizerConstants;
-
-
-
-%%
-
-%{
-
-
-	private boolean hasMore = true;
-	private final static int MAX_TO_SCAN = 1000;
-	StringBuffer string = new StringBuffer();
-	// state stack for easier state handling
-	private IntStack fStateStack = new IntStack();
-	private String valueText = null;
-
-
-
-	public CSSHeadTokenizer() {
-		super();
-	}
-
-	  public void reset (Reader in) {
-	  	/* the input device */
-	  	yy_reader = in;
-
-  		/* the current state of the DFA */
-  		yy_state = 0;
-
-  		/* the current lexical state */
-  		yy_lexical_state = YYINITIAL;
-
-  		/* this buffer contains the current text to be matched and is
-  		 the source of the yytext() string */
-  		java.util.Arrays.fill(yy_buffer, (char)0);
-
-  		/* the textposition at the last accepting state */
-  		yy_markedPos = 0;
-
-  		/* the textposition at the last state to be included in yytext */
-  		yy_pushbackPos = 0;
-
-  		/* the current text position in the buffer */
-  		yy_currentPos = 0;
-
-  		/* startRead marks the beginning of the yytext() string in the buffer */
-  		yy_startRead = 0;
-
-  		/** 
-  		 * endRead marks the last character in the buffer, that has been read
-  		 * from input 
-  		 */
-  		yy_endRead = 0;
-
-  		/* number of newlines encountered up to the start of the matched text */
-  		yyline = 0;
-
-  		/* the number of characters up to the start of the matched text */
-  		yychar = 0;
-
-  		/**
-  		 * the number of characters from the last newline up to the start
-  		 * of the matched text
-  		 */
-  		yycolumn = 0; 
-
-  		/** 
-  		 * yy_atBOL == true <=> the scanner is currently at the beginning 
-  		 * of a line
-  		 */
-  		yy_atBOL = false;
-
-  		/* yy_atEOF == true <=> the scanner has returned a value for EOF */
-  		yy_atEOF = false;
-
-  		/* denotes if the user-EOF-code has already been executed */
-  		yy_eof_done = false;
-
-
-  		fStateStack.clear();
-  		
-  		hasMore = true;
-  		
-		// its a little wasteful to "throw away" first char array generated
-		// by class init (via auto generated code), but we really do want
-		// a small buffer for our head parsers.
-		if (yy_buffer.length != MAX_TO_SCAN) {
-			yy_buffer = new char[MAX_TO_SCAN];
-		}
-  		
-
-  	}
-
-
-	public final HeadParserToken getNextToken() throws IOException {
-		String context = null;
-		context = primGetNextToken();
-		HeadParserToken result = null;
-		if (valueText != null) {
-			result = createToken(context, yychar, valueText);
-			valueText = null;
-		} else {
-			result = createToken(context, yychar, yytext());
-		}
-		return result;
-	}
-
-	public final boolean hasMoreTokens() {
-		return hasMore && yychar < MAX_TO_SCAN;
-	}
-	private void pushCurrentState() {
-		fStateStack.push(yystate());
-
-	}
-
-	private void popState() {
-		yybegin(fStateStack.pop());
-	}
-	private HeadParserToken createToken(String context, int start, String text) {
-		return new HeadParserToken(context, start, text);
-	}
-	
-
-%}
-
-%eof{
-	hasMore=false;
-%eof}
-
-%public
-%class CSSHeadTokenizer
-%function primGetNextToken
-%type String
-%char
-%unicode
-%ignorecase 
-%debug
-%switch
-
-
-UTF16BE = \xFE\xFF
-UTF16LE = \xFF\xFE
-UTF83ByteBOM = \xEF\xBB\xBF
-
-//SpaceChar = [\x20\x09]
-
-
-
-// [3] S ::= (0x20 | 0x9 | 0xD | 0xA)+
-S = [\x20\x09\x0D\x0A]
-
-BeginAttribeValue = {S}* \= {S}*
-
-LineTerminator = \r|\n
-
-
-%state ST_XMLDecl
-%state CHARSET_RULE
-%state QuotedAttributeValue
-%state DQ_STRING
-%state SQ_STRING
-%state UnDelimitedString
-
-%%
-
-
-<YYINITIAL>  
-{
-	{UTF16BE}   		{hasMore = false; return EncodingParserConstants.UTF16BE;}
-	{UTF16LE}   		{hasMore = false; return EncodingParserConstants.UTF16LE;}
-	{UTF83ByteBOM}   	{hasMore = false; return EncodingParserConstants.UTF83ByteBOM;}
-
-	// force to be started on first line, but we do allow preceeding spaces
-	^ {S}* "<\?xml" {S}+ {if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;}}
-	
-	^ {S}* "@charset"     {if (yychar == 0 )  {yybegin(CHARSET_RULE); return CSSHeadTokenizerConstants.CHARSET_RULE;}}
-	
-
-}	
-
-// I don't think there's really an XML form of CSS files ... but will leave here for consistency	
-<ST_XMLDecl> 
-{
-	//"version" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;}
-	"encoding" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;}
-	// note this "forced end" once end of XML Declaration found
-	"\?>"    {yybegin(YYINITIAL);  return XMLHeadTokenizerConstants.XMLDeclEnd;}
-}	
-
-<CHARSET_RULE> 
-{
-
-	{S}*  {pushCurrentState(); yybegin(QuotedAttributeValue);}
-	";"    { yybegin(YYINITIAL);  hasMore = false; return CSSHeadTokenizerConstants.RuleEnd;}
-}
-	
-
-<QuotedAttributeValue>
-{
-	\"                      { yybegin(DQ_STRING); string.setLength(0); }
-	\'			{ yybegin(SQ_STRING); string.setLength(0); }
-	// in this state, anything other than a space character can start an undelimited string
-	{S}*.           { yypushback(1); yybegin(UnDelimitedString); string.setLength(0);}
-
-}	
-
-
-<DQ_STRING>
-{
-
-	\"                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; }
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\?>"			{ yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"<"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	
-	">"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\/>"			{ yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	";"                      { yypushback(1); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-	
-	.			{ string.append( yytext() ); }
-
-
-}
-
-<SQ_STRING>
-{
-
-	\'                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;}
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"%>"			{ yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"<"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	">"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\/>"			{ yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	";"                      { yypushback(1); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-	.			{ string.append( yytext() ); }
-
-
-}
-
-<UnDelimitedString>
-{
-
-
-	{S}                     { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; }
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\?>"			{ yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"<"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	// these are a bit special, since we started an undelimit string, but found a quote ... probably indicates a missing beginning quote
-	\'			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}
-	\"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}
-	
-	">"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\/>"			{ yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	";"                      { yypushback(1); popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; }
-	.			{ string.append( yytext() ); }
-
-}
-
-// The "match anything" rule should always be in effect except for when looking for end of string
-// (That is, remember to update state list if/when new states added)
-<YYINITIAL, ST_XMLDecl, QuotedAttributeValue, CHARSET_RULE>
-{
-// this is the fallback (match "anything") rule  (for this scanner, input is ignored, and position advanced, if not recognized)
-.|\n              {if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}}
-}
-
-// this rule always in effect
-<<EOF>>         {hasMore = false; return EncodingParserConstants.EOF;}
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.java
deleted file mode 100644
index 4dfc385..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.java
+++ /dev/null
@@ -1,977 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-/* The following code was generated by JFlex 1.2.2 on 1/27/04 6:42 PM */
-
-/*nlsXXX*/
-package org.eclipse.wst.common.encoding.contentspecific.css;
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.wst.common.encoding.contentspecific.EncodingParserConstants;
-import org.eclipse.wst.common.encoding.contentspecific.HeadParserToken;
-import org.eclipse.wst.common.encoding.contentspecific.IntStack;
-import org.eclipse.wst.common.encoding.contentspecific.xml.XMLHeadTokenizerConstants;
-
-
-
-
-/**
- * This class is a scanner generated by 
- * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
- * on 1/27/04 6:42 PM from the specification file
- * <tt>file:/D:/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.jflex</tt>
- */
-public class CSSHeadTokenizer {
-
-  /** this character denotes the end of file */
-  final public static int YYEOF = -1;
-
-  /** lexical states */
-  final public static int YYINITIAL = 0;
-  final public static int UnDelimitedString = 12;
-  final public static int DQ_STRING = 8;
-  final public static int SQ_STRING = 10;
-  final public static int ST_XMLDecl = 2;
-  final public static int QuotedAttributeValue = 6;
-  final public static int CHARSET_RULE = 4;
-
-  /**
-   * 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
-  };
-
-  /** 
-   * Translates characters to character classes
-   */
-  final private static String yycmap_packed = 
-    "\11\0\1\6\1\11\2\0\1\10\22\0\1\6\1\0\1\36\2\0"+
-    "\1\41\1\0\1\37\7\0\1\40\13\0\1\35\1\12\1\7\1\34"+
-    "\1\13\1\17\1\22\1\0\1\20\1\31\1\25\1\0\1\33\1\21"+
-    "\1\32\2\0\1\16\1\15\1\27\1\30\2\0\1\23\1\24\1\26"+
-    "\3\0\1\14\10\0\1\22\1\0\1\20\1\31\1\25\1\0\1\33"+
-    "\1\21\1\32\2\0\1\16\1\15\1\27\1\30\2\0\1\23\1\24"+
-    "\1\26\3\0\1\14\102\0\1\4\3\0\1\5\17\0\1\3\16\0"+
-    "\1\1\20\0\1\3\16\0\1\1\1\2\170\0\1\2\ufe87\0";
-
-  /** 
-   * 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 = 1000;
-	StringBuffer string = new StringBuffer();
-	// state stack for easier state handling
-	private IntStack fStateStack = new IntStack();
-	private String valueText = null;
-
-
-
-	public CSSHeadTokenizer() {
-		super();
-	}
-
-	  public void reset (Reader in) {
-	  	/* the input device */
-	  	yy_reader = in;
-
-  		/* the current state of the DFA */
-  		yy_state = 0;
-
-  		/* the current lexical state */
-  		yy_lexical_state = YYINITIAL;
-
-  		/* this buffer contains the current text to be matched and is
-  		 the source of the yytext() string */
-  		java.util.Arrays.fill(yy_buffer, (char)0);
-
-  		/* the textposition at the last accepting state */
-  		yy_markedPos = 0;
-
-  		/* the textposition at the last state to be included in yytext */
-  		yy_pushbackPos = 0;
-
-  		/* the current text position in the buffer */
-  		yy_currentPos = 0;
-
-  		/* startRead marks the beginning of the yytext() string in the buffer */
-  		yy_startRead = 0;
-
-  		/** 
-  		 * endRead marks the last character in the buffer, that has been read
-  		 * from input 
-  		 */
-  		yy_endRead = 0;
-
-  		/* number of newlines encountered up to the start of the matched text */
-  		yyline = 0;
-
-  		/* the number of characters up to the start of the matched text */
-  		yychar = 0;
-
-  		/**
-  		 * the number of characters from the last newline up to the start
-  		 * of the matched text
-  		 */
-  		yycolumn = 0; 
-
-  		/** 
-  		 * yy_atBOL == true <=> the scanner is currently at the beginning 
-  		 * of a line
-  		 */
-  		yy_atBOL = false;
-
-  		/* yy_atEOF == true <=> the scanner has returned a value for EOF */
-  		yy_atEOF = false;
-
-  		/* denotes if the user-EOF-code has already been executed */
-  		yy_eof_done = false;
-
-
-  		fStateStack.clear();
-  		
-  		hasMore = true;
-  		
-		// its a little wasteful to "throw away" first char array generated
-		// by class init (via auto generated code), but we really do want
-		// a small buffer for our head parsers.
-		if (yy_buffer.length != MAX_TO_SCAN) {
-			yy_buffer = new char[MAX_TO_SCAN];
-		}
-  		
-
-  	}
-
-
-	public final HeadParserToken getNextToken() throws IOException {
-		String context = null;
-		context = primGetNextToken();
-		HeadParserToken result = null;
-		if (valueText != null) {
-			result = createToken(context, yychar, valueText);
-			valueText = null;
-		} else {
-			result = createToken(context, yychar, yytext());
-		}
-		return result;
-	}
-
-	public final boolean hasMoreTokens() {
-		return hasMore && yychar < MAX_TO_SCAN;
-	}
-	private void pushCurrentState() {
-		fStateStack.push(yystate());
-
-	}
-
-	private void popState() {
-		yybegin(fStateStack.pop());
-	}
-	private HeadParserToken createToken(String context, int start, String text) {
-		return new HeadParserToken(context, start, text);
-	}
-	
-
-
-
-  /**
-   * 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 CSSHeadTokenizer(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 CSSHeadTokenizer(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 < 158) {
-      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;
-
-
-    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_forAction: {
-        while (true) {
-
-          yy_input = yy_advance();
-
-          if ( yy_input == YYEOF ) break yy_forAction;
-
-          yy_input = yycmap[yy_input];
-
-          boolean yy_isFinal = false;
-          boolean yy_noLookAhead = false;
-
-          yy_forNext: { switch (yy_state) {
-            case 0:
-              switch (yy_input) {
-                case 1: yy_isFinal = true; yy_state = 9; break yy_forNext;
-                case 2: yy_isFinal = true; yy_state = 10; break yy_forNext;
-                case 3: yy_isFinal = true; yy_state = 11; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext;
-              }
-
-            case 1:
-              switch (yy_input) {
-                case 1: yy_isFinal = true; yy_state = 9; break yy_forNext;
-                case 2: yy_isFinal = true; yy_state = 10; break yy_forNext;
-                case 3: yy_isFinal = true; yy_state = 11; break yy_forNext;
-                case 6: 
-                case 8: 
-                case 9: yy_isFinal = true; yy_state = 12; break yy_forNext;
-                case 10: yy_isFinal = true; yy_state = 13; break yy_forNext;
-                case 15: yy_isFinal = true; yy_state = 14; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext;
-              }
-
-            case 2:
-              switch (yy_input) {
-                case 11: yy_isFinal = true; yy_state = 15; break yy_forNext;
-                case 21: yy_isFinal = true; yy_state = 16; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext;
-              }
-
-            case 3:
-              switch (yy_input) {
-                case 6: 
-                case 8: 
-                case 9: yy_isFinal = true; yy_state = 17; break yy_forNext;
-                case 29: yy_isFinal = true; yy_noLookAhead = true; yy_state = 18; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext;
-              }
-
-            case 4:
-              switch (yy_input) {
-                case 6: 
-                case 8: yy_isFinal = true; yy_state = 20; break yy_forNext;
-                case 9: yy_isFinal = true; yy_state = 21; break yy_forNext;
-                case 30: yy_isFinal = true; yy_noLookAhead = true; yy_state = 22; break yy_forNext;
-                case 31: yy_isFinal = true; yy_noLookAhead = true; yy_state = 23; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 19; break yy_forNext;
-              }
-
-            case 5:
-              switch (yy_input) {
-                case 8: 
-                case 9: 
-                case 10: 
-                case 28: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
-                case 11: 
-                case 32: yy_isFinal = true; yy_state = 26; break yy_forNext;
-                case 29: yy_isFinal = true; yy_noLookAhead = true; yy_state = 27; break yy_forNext;
-                case 30: yy_isFinal = true; yy_noLookAhead = true; yy_state = 28; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 24; break yy_forNext;
-              }
-
-            case 6:
-              switch (yy_input) {
-                case 8: 
-                case 9: 
-                case 10: 
-                case 28: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
-                case 32: yy_isFinal = true; yy_state = 26; break yy_forNext;
-                case 29: yy_isFinal = true; yy_noLookAhead = true; yy_state = 27; break yy_forNext;
-                case 31: yy_isFinal = true; yy_noLookAhead = true; yy_state = 28; break yy_forNext;
-                case 33: yy_isFinal = true; yy_state = 29; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 24; break yy_forNext;
-              }
-
-            case 7:
-              switch (yy_input) {
-                case 10: 
-                case 28: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
-                case 32: yy_isFinal = true; yy_state = 26; break yy_forNext;
-                case 11: yy_isFinal = true; yy_state = 29; break yy_forNext;
-                case 6: 
-                case 8: 
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 30; break yy_forNext;
-                case 29: yy_isFinal = true; yy_noLookAhead = true; yy_state = 31; break yy_forNext;
-                case 30: 
-                case 31: yy_isFinal = true; yy_noLookAhead = true; yy_state = 32; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 24; break yy_forNext;
-              }
-
-            case 9:
-              switch (yy_input) {
-                case 2: yy_isFinal = true; yy_noLookAhead = true; yy_state = 33; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 10:
-              switch (yy_input) {
-                case 1: yy_isFinal = true; yy_noLookAhead = true; yy_state = 34; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 11:
-              switch (yy_input) {
-                case 4: yy_state = 35; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 12:
-              switch (yy_input) {
-                case 6: 
-                case 8: 
-                case 9: yy_state = 36; break yy_forNext;
-                case 10: yy_state = 37; break yy_forNext;
-                case 15: yy_state = 38; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 13:
-              switch (yy_input) {
-                case 11: yy_state = 39; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 14:
-              switch (yy_input) {
-                case 16: yy_state = 40; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 15:
-              switch (yy_input) {
-                case 28: yy_isFinal = true; yy_noLookAhead = true; yy_state = 41; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 16:
-              switch (yy_input) {
-                case 23: yy_state = 42; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 17:
-              switch (yy_input) {
-                case 6: 
-                case 8: 
-                case 9: yy_isFinal = true; yy_state = 17; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 20:
-              switch (yy_input) {
-                case 6: 
-                case 8: yy_isFinal = true; yy_state = 20; break yy_forNext;
-                case 9: yy_state = 43; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 19; break yy_forNext;
-              }
-
-            case 21:
-              switch (yy_input) {
-                case 6: 
-                case 8: yy_isFinal = true; yy_state = 20; break yy_forNext;
-                case 9: yy_state = 43; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 19; break yy_forNext;
-              }
-
-            case 26:
-              switch (yy_input) {
-                case 28: yy_isFinal = true; yy_noLookAhead = true; yy_state = 44; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 29:
-              switch (yy_input) {
-                case 28: yy_isFinal = true; yy_noLookAhead = true; yy_state = 45; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 35:
-              switch (yy_input) {
-                case 5: yy_isFinal = true; yy_noLookAhead = true; yy_state = 46; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 36:
-              switch (yy_input) {
-                case 6: 
-                case 8: 
-                case 9: yy_state = 36; break yy_forNext;
-                case 10: yy_state = 37; break yy_forNext;
-                case 15: yy_state = 38; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 37:
-              switch (yy_input) {
-                case 11: yy_state = 39; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 38:
-              switch (yy_input) {
-                case 16: yy_state = 40; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 39:
-              switch (yy_input) {
-                case 12: yy_state = 47; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 40:
-              switch (yy_input) {
-                case 17: yy_state = 48; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 42:
-              switch (yy_input) {
-                case 16: yy_state = 49; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 43:
-              switch (yy_input) {
-                case 6: 
-                case 8: yy_isFinal = true; yy_state = 20; break yy_forNext;
-                case 9: yy_state = 43; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 19; break yy_forNext;
-              }
-
-            case 47:
-              switch (yy_input) {
-                case 13: yy_state = 50; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 48:
-              switch (yy_input) {
-                case 18: yy_state = 51; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 49:
-              switch (yy_input) {
-                case 24: yy_state = 52; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 50:
-              switch (yy_input) {
-                case 14: yy_state = 53; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 51:
-              switch (yy_input) {
-                case 19: yy_state = 54; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 52:
-              switch (yy_input) {
-                case 25: yy_state = 55; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 53:
-              switch (yy_input) {
-                case 6: 
-                case 8: 
-                case 9: yy_isFinal = true; yy_state = 56; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 54:
-              switch (yy_input) {
-                case 20: yy_state = 57; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 55:
-              switch (yy_input) {
-                case 26: yy_state = 58; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 56:
-              switch (yy_input) {
-                case 6: 
-                case 8: 
-                case 9: yy_isFinal = true; yy_state = 56; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 57:
-              switch (yy_input) {
-                case 21: yy_state = 59; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 58:
-              switch (yy_input) {
-                case 23: yy_state = 60; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 59:
-              switch (yy_input) {
-                case 22: yy_isFinal = true; yy_noLookAhead = true; yy_state = 61; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 60:
-              switch (yy_input) {
-                case 27: yy_state = 62; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 62:
-              switch (yy_input) {
-                case 6: 
-                case 8: 
-                case 9: yy_state = 62; break yy_forNext;
-                case 7: yy_isFinal = true; yy_state = 63; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 63:
-              switch (yy_input) {
-                case 6: 
-                case 8: 
-                case 9: yy_isFinal = true; yy_state = 63; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            default:
-              yy_ScanError(YY_ILLEGAL_STATE);
-              break;
-          } }
-
-          if ( yy_isFinal ) {
-            yy_action = yy_state; 
-            yy_markedPos = yy_currentPos; 
-            if ( yy_noLookAhead ) break yy_forAction;
-          }
-
-        }
-      }
-
-
-      switch (yy_action) {    
-
-        case 45: 
-          {  yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 65: break;
-        case 25: 
-          {  yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 66: break;
-        case 19: 
-        case 20: 
-          {  yypushback(1); yybegin(UnDelimitedString); string.setLength(0); }
-        case 67: break;
-        case 18: 
-          {  yybegin(YYINITIAL);  hasMore = false; return CSSHeadTokenizerConstants.RuleEnd; }
-        case 68: break;
-        case 32: 
-          {  yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue; }
-        case 69: break;
-        case 44: 
-          {  yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 70: break;
-        case 61: 
-          { if (yychar == 0 )  {yybegin(CHARSET_RULE); return CSSHeadTokenizerConstants.CHARSET_RULE;} }
-        case 71: break;
-        case 56: 
-          { if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;} }
-        case 72: break;
-        case 8: 
-        case 9: 
-        case 10: 
-        case 11: 
-        case 12: 
-        case 13: 
-        case 14: 
-        case 15: 
-        case 16: 
-        case 21: 
-          { if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;} }
-        case 73: break;
-        case 41: 
-          { yybegin(YYINITIAL);  return XMLHeadTokenizerConstants.XMLDeclEnd; }
-        case 74: break;
-        case 63: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding; }
-        case 75: break;
-        case 3: 
-        case 17: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); }
-        case 76: break;
-        case 46: 
-          { hasMore = false; return EncodingParserConstants.UTF83ByteBOM; }
-        case 77: break;
-        case 33: 
-          { hasMore = false; return EncodingParserConstants.UTF16BE; }
-        case 78: break;
-        case 34: 
-          { hasMore = false; return EncodingParserConstants.UTF16LE; }
-        case 79: break;
-        case 24: 
-        case 26: 
-        case 29: 
-          {  string.append( yytext() );  }
-        case 80: break;
-        case 23: 
-          {  yybegin(SQ_STRING); string.setLength(0);  }
-        case 81: break;
-        case 22: 
-          {  yybegin(DQ_STRING); string.setLength(0);  }
-        case 82: break;
-        case 27: 
-          {  yypushback(1); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;  }
-        case 83: break;
-        case 28: 
-          {  popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;  }
-        case 84: break;
-        case 30: 
-          {  yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue;  }
-        case 85: break;
-        case 31: 
-          {  yypushback(1); popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue;  }
-        case 86: break;
-        default: 
-          if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
-            yy_atEOF = true;
-            yy_do_eof();
-              { hasMore = false; return EncodingParserConstants.EOF; }
-          } 
-          else {
-            yy_ScanError(YY_NO_MATCH);
-          }
-      }
-    }
-  }    
-
-  /**
-   * Runs the scanner on input files.
-   *
-   * This main method is the debugging routine for the scanner.
-   * It prints each returned token to System.out until the end of
-   * file is reached, or an error occured.
-   *
-   * @param argv   the command line, contains the filenames to run
-   *               the scanner on.
-   */
-  public static void main(String argv[]) {
-    for (int i = 0; i < argv.length; i++) {
-      CSSHeadTokenizer scanner = null;
-      try {
-        scanner = new CSSHeadTokenizer( new java.io.FileReader(argv[i]) );
-      }
-      catch (java.io.FileNotFoundException e) {
-        System.out.println("File not found : \""+argv[i]+"\"");
-        System.exit(1);
-      }
-      catch (java.io.IOException e) {
-        System.out.println("Error opening file \""+argv[i]+"\"");
-        System.exit(1);
-      }
-      catch (ArrayIndexOutOfBoundsException e) {
-        System.out.println("Usage : java CSSHeadTokenizer <inputfile>");
-        System.exit(1);
-      }
-
-      try {
-        do {
-          System.out.println(scanner.primGetNextToken());
-        } while (!scanner.yy_atEOF);
-
-      }
-      catch (java.io.IOException e) {
-        System.out.println("An I/O error occured while scanning :");
-        System.out.println(e);
-        System.exit(1);
-      }
-      catch (Exception e) {
-        e.printStackTrace();
-        System.exit(1);
-      }
-    }
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizerGenJava.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizerGenJava.cmd
deleted file mode 100644
index 9ef06e9..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizerGenJava.cmd
+++ /dev/null
@@ -1,23 +0,0 @@
-@echo off

-

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

-set PATH=%PATH%;d:jdks\j2sdk1.4.1_02\bin

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

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

-

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

-set MAIN_NAME=CSSHeadTokenizer

-set PROJECT_SRC=\org.eclipse.wst.common.encoding.contentspecific\src\

-set PACKAGE_DIR=com\ibm\encoding\resource\contentspecific\css\

-

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

-set JAVA_FILE=%MAIN_NAME%.java

-set JFLEX_RULES=%MAIN_NAME%.jflex

-set SKELETON_FILE=%MAIN_NAME%.skeleton

-

-IF EXIST %JAVA_FILE% del %JAVA_FILE%

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

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

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

-

-rem pause

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/jflexerr.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/jflexerr.txt
deleted file mode 100644
index e69de29..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/jflexerr.txt
+++ /dev/null
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/jflexout.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/jflexout.txt
deleted file mode 100644
index e0743ca..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/jflexout.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Reading "CSSHeadTokenizer.jflex"
-Constructing NFA : 458 states in NFA
-Converting NFA to DFA : 
-........................................................................................
-102 states before minimization, 64 states in minimized DFA
-Writing code to "CSSHeadTokenizer.java"
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.jFlex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.jFlex
deleted file mode 100644
index eb10921..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.jFlex
+++ /dev/null
@@ -1,285 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*nlsXXX*/
-package org.eclipse.wst.common.encoding.contentspecific.html;
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.wst.common.encoding.contentspecific.EncodingParserConstants;
-import org.eclipse.wst.common.encoding.contentspecific.HeadParserToken;
-import org.eclipse.wst.common.encoding.contentspecific.IntStack;
-import org.eclipse.wst.common.encoding.contentspecific.xml.XMLHeadTokenizerConstants;
-
-
-
-%%
-
-%{
-
-
-	private boolean hasMore = true;
-	private final static int MAX_TO_SCAN = 1000;
-	StringBuffer string = new StringBuffer();
-	// state stack for easier state handling
-	private IntStack fStateStack = new IntStack();
-	private String valueText = null;
-	boolean foundContentTypeValue = false;
-
-
-
-	public HTMLHeadTokenizer() {
-		super();
-	}
-
-	  public void reset (Reader in) {
-	  	/* the input device */
-	  	yy_reader = in;
-
-  		/* the current state of the DFA */
-  		yy_state = 0;
-
-  		/* the current lexical state */
-  		yy_lexical_state = YYINITIAL;
-
-  		/* this buffer contains the current text to be matched and is
-  		 the source of the yytext() string */
-  		java.util.Arrays.fill(yy_buffer, (char)0);
-
-  		/* the textposition at the last accepting state */
-  		yy_markedPos = 0;
-
-  		/* the textposition at the last state to be included in yytext */
-  		yy_pushbackPos = 0;
-
-  		/* the current text position in the buffer */
-  		yy_currentPos = 0;
-
-  		/* startRead marks the beginning of the yytext() string in the buffer */
-  		yy_startRead = 0;
-
-  		/** 
-  		 * endRead marks the last character in the buffer, that has been read
-  		 * from input 
-  		 */
-  		yy_endRead = 0;
-
-  		/* number of newlines encountered up to the start of the matched text */
-  		yyline = 0;
-
-  		/* the number of characters up to the start of the matched text */
-  		yychar = 0;
-
-  		/**
-  		 * the number of characters from the last newline up to the start
-  		 * of the matched text
-  		 */
-  		yycolumn = 0; 
-
-  		/** 
-  		 * yy_atBOL == true <=> the scanner is currently at the beginning 
-  		 * of a line
-  		 */
-  		yy_atBOL = false;
-
-  		/* yy_atEOF == true <=> the scanner has returned a value for EOF */
-  		yy_atEOF = false;
-
-  		/* denotes if the user-EOF-code has already been executed */
-  		yy_eof_done = false;
-
-
-  		fStateStack.clear();
-  		
-  		hasMore = true;
-  		
-		// its a little wasteful to "throw away" first char array generated
-		// by class init (via auto generated code), but we really do want
-		// a small buffer for our head parsers.
-		if (yy_buffer.length != MAX_TO_SCAN) {
-			yy_buffer = new char[MAX_TO_SCAN];
-		}
-  		
-
-  	}
-
-
-	public final HeadParserToken getNextToken() throws IOException {
-		String context = null;
-		context = primGetNextToken();
-		HeadParserToken result = null;
-		if (valueText != null) {
-			result = createToken(context, yychar, valueText);
-			valueText = null;
-		} else {
-			result = createToken(context, yychar, yytext());
-		}
-		return result;
-	}
-
-	public final boolean hasMoreTokens() {
-		return hasMore && yychar < MAX_TO_SCAN;
-	}
-	private void pushCurrentState() {
-		fStateStack.push(yystate());
-
-	}
-
-	private void popState() {
-		yybegin(fStateStack.pop());
-	}
-	private HeadParserToken createToken(String context, int start, String text) {
-		return new HeadParserToken(context, start, text);
-	}
-	
-
-%}
-
-%eof{
-	hasMore=false;
-%eof}
-
-%public
-%class HTMLHeadTokenizer
-%function primGetNextToken
-%type String
-%char
-%unicode
-%ignorecase 
-%debug
-%switch
-
-
-UTF16BE = \xFE\xFF
-UTF16LE = \xFF\xFE
-UTF83ByteBOM = \xEF\xBB\xBF
-
-SpaceChar = [\x20\x09]
-
-
-
-// [3] S ::= (0x20 | 0x9 | 0xD | 0xA)+
-S = [\x20\x09\x0D\x0A]
-
-BeginAttribeValue = {S}* \= {S}*
-
-LineTerminator = \r|\n
-
-
-%state ST_XMLDecl
-%state ST_META_TAG
-%state QuotedAttributeValue
-%state DQ_STRING
-%state SQ_STRING
-%state UnDelimitedString
-
-%%
-
-
-<YYINITIAL>  
-{
-	{UTF16BE}   		{hasMore = false; return EncodingParserConstants.UTF16BE;}
-	{UTF16LE}   		{hasMore = false; return EncodingParserConstants.UTF16LE;}
-	{UTF83ByteBOM}   	{hasMore = false; return EncodingParserConstants.UTF83ByteBOM;}
-
-	// force to be started on first line, but we do allow preceeding spaces
-	^ {S}* "<\?xml" {S}+ {if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;}}
-	
-	"<META "       {yybegin(ST_META_TAG); return HTMLHeadTokenizerConstants.MetaTagStart;}
-	
-
-}	
-	
-<ST_XMLDecl> 
-{
-	//"version" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;}
-	"encoding" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;}
-	// note this "forced end" once end of XML Declaration found
-	"\?>"    {yybegin(YYINITIAL);  return XMLHeadTokenizerConstants.XMLDeclEnd;}
-}	
-
-<ST_META_TAG> 
-{
-
-	"http-equiv" {S}* \= {S}* \"? "Content-Type" \"? {S}+ "content" {BeginAttribeValue}  {pushCurrentState(); yybegin(QuotedAttributeValue); foundContentTypeValue=true; return HTMLHeadTokenizerConstants.MetaTagContentType;}
-	">"    { yybegin(YYINITIAL);  if (foundContentTypeValue) hasMore = false; return HTMLHeadTokenizerConstants.MetaTagEnd;}
-	"\/>"    { yybegin(YYINITIAL); if (foundContentTypeValue) hasMore = false; return HTMLHeadTokenizerConstants.MetaTagEnd;}
-}
-	
-
-<QuotedAttributeValue>
-{
-	\"                      { yybegin(DQ_STRING); string.setLength(0); }
-	\'			{ yybegin(SQ_STRING); string.setLength(0); }
-	// in this state, anything other than a space character can start an undelimited string
-	{S}*.           { yypushback(1); yybegin(UnDelimitedString); string.setLength(0);}
-
-}	
-
-
-<DQ_STRING>
-{
-
-	\"                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; }
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\?>"			{ yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"<"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	
-	">"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\/>"			{ yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	.			{ string.append( yytext() ); }
-
-
-}
-
-<SQ_STRING>
-{
-
-	\'                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;}
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"%>"			{ yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"<"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	">"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\/>"			{ yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	.			{ string.append( yytext() ); }
-
-
-}
-
-<UnDelimitedString>
-{
-
-
-	// note this initial special case for HTTP contenttype values
-	";"{S}*			{ string.append( yytext() ); }
-	{S}                     { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; }
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\?>"			{ yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"<"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	// these are a bit special, since we started an undelimit string, but found a quote ... probably indicates a missing beginning quote
-	\'			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}
-	\"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}
-	
-	">"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\/>"			{ yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	.			{ string.append( yytext() ); }
-
-}
-
-// The "match anything" rule should always be in effect except for when looking for end of string
-// (That is, remember to update state list if/when new states added)
-<YYINITIAL, ST_XMLDecl, QuotedAttributeValue, ST_META_TAG>
-{
-// this is the fallback (match "anything") rule  (for this scanner, input is ignored, and position advanced, if not recognized)
-.|\n              {if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}}
-}
-
-// this rule always in effect
-<<EOF>>         {hasMore = false; return EncodingParserConstants.EOF;}
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.java
deleted file mode 100644
index 4a78369..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.java
+++ /dev/null
@@ -1,1206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-/* The following code was generated by JFlex 1.2.2 on 1/27/04 6:41 PM */
-
-/*nlsXXX*/
-package org.eclipse.wst.common.encoding.contentspecific.html;
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.wst.common.encoding.contentspecific.EncodingParserConstants;
-import org.eclipse.wst.common.encoding.contentspecific.HeadParserToken;
-import org.eclipse.wst.common.encoding.contentspecific.IntStack;
-import org.eclipse.wst.common.encoding.contentspecific.xml.XMLHeadTokenizerConstants;
-
-
-
-
-/**
- * This class is a scanner generated by 
- * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
- * on 1/27/04 6:41 PM from the specification file
- * <tt>file:/D:/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.jflex</tt>
- */
-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 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
-  };
-
-  /** 
-   * Translates characters to character classes
-   */
-  final private static String yycmap_packed = 
-    "\11\0\1\6\1\7\2\0\1\11\22\0\1\22\1\0\1\40\2\0"+
-    "\1\44\1\0\1\43\5\0\1\34\1\0\1\42\13\0\1\45\1\12"+
-    "\1\10\1\31\1\13\1\0\1\21\1\0\1\24\1\26\1\17\1\0"+
-    "\1\30\1\32\1\27\2\0\1\16\1\15\1\23\1\25\1\33\1\35"+
-    "\2\0\1\20\1\36\1\37\1\0\1\14\1\41\7\0\1\21\1\0"+
-    "\1\24\1\26\1\17\1\0\1\30\1\32\1\27\2\0\1\16\1\15"+
-    "\1\23\1\25\1\33\1\35\2\0\1\20\1\36\1\37\1\0\1\14"+
-    "\1\41\101\0\1\4\3\0\1\5\17\0\1\3\16\0\1\1\20\0"+
-    "\1\3\16\0\1\1\1\2\170\0\1\2\ufe87\0";
-
-  /** 
-   * Translates characters to character classes
-   */
-  final private static 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 = 1000;
-	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 < 174) {
-      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;
-
-
-    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_forAction: {
-        while (true) {
-
-          yy_input = yy_advance();
-
-          if ( yy_input == YYEOF ) break yy_forAction;
-
-          yy_input = yycmap[yy_input];
-
-          boolean yy_isFinal = false;
-          boolean yy_noLookAhead = false;
-
-          yy_forNext: { switch (yy_state) {
-            case 0:
-              switch (yy_input) {
-                case 1: yy_isFinal = true; yy_state = 9; break yy_forNext;
-                case 2: yy_isFinal = true; yy_state = 10; break yy_forNext;
-                case 3: yy_isFinal = true; yy_state = 11; break yy_forNext;
-                case 10: yy_isFinal = true; yy_state = 12; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext;
-              }
-
-            case 1:
-              switch (yy_input) {
-                case 1: yy_isFinal = true; yy_state = 9; break yy_forNext;
-                case 2: yy_isFinal = true; yy_state = 10; break yy_forNext;
-                case 3: yy_isFinal = true; yy_state = 11; break yy_forNext;
-                case 6: 
-                case 7: 
-                case 9: 
-                case 18: yy_isFinal = true; yy_state = 13; break yy_forNext;
-                case 10: yy_isFinal = true; yy_state = 14; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext;
-              }
-
-            case 2:
-              switch (yy_input) {
-                case 11: yy_isFinal = true; yy_state = 15; break yy_forNext;
-                case 15: yy_isFinal = true; yy_state = 16; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext;
-              }
-
-            case 3:
-              switch (yy_input) {
-                case 25: yy_isFinal = true; yy_noLookAhead = true; yy_state = 17; break yy_forNext;
-                case 26: yy_isFinal = true; yy_state = 18; break yy_forNext;
-                case 34: yy_isFinal = true; yy_state = 19; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext;
-              }
-
-            case 4:
-              switch (yy_input) {
-                case 6: 
-                case 9: 
-                case 18: yy_isFinal = true; yy_state = 21; break yy_forNext;
-                case 7: yy_isFinal = true; yy_state = 22; break yy_forNext;
-                case 32: yy_isFinal = true; yy_noLookAhead = true; yy_state = 23; break yy_forNext;
-                case 35: yy_isFinal = true; yy_noLookAhead = true; yy_state = 24; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 20; break yy_forNext;
-              }
-
-            case 5:
-              switch (yy_input) {
-                case 7: 
-                case 9: 
-                case 10: 
-                case 25: yy_isFinal = true; yy_noLookAhead = true; yy_state = 26; break yy_forNext;
-                case 11: 
-                case 34: yy_isFinal = true; yy_state = 27; break yy_forNext;
-                case 32: yy_isFinal = true; yy_noLookAhead = true; yy_state = 28; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
-              }
-
-            case 6:
-              switch (yy_input) {
-                case 7: 
-                case 9: 
-                case 10: 
-                case 25: yy_isFinal = true; yy_noLookAhead = true; yy_state = 26; break yy_forNext;
-                case 34: yy_isFinal = true; yy_state = 27; break yy_forNext;
-                case 35: yy_isFinal = true; yy_noLookAhead = true; yy_state = 28; break yy_forNext;
-                case 36: yy_isFinal = true; yy_state = 29; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
-              }
-
-            case 7:
-              switch (yy_input) {
-                case 10: 
-                case 25: yy_isFinal = true; yy_noLookAhead = true; yy_state = 26; break yy_forNext;
-                case 34: yy_isFinal = true; yy_state = 27; break yy_forNext;
-                case 11: yy_isFinal = true; yy_state = 29; break yy_forNext;
-                case 6: 
-                case 7: 
-                case 9: 
-                case 18: yy_isFinal = true; yy_noLookAhead = true; yy_state = 30; break yy_forNext;
-                case 32: 
-                case 35: yy_isFinal = true; yy_noLookAhead = true; yy_state = 31; break yy_forNext;
-                case 37: yy_isFinal = true; yy_state = 32; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
-              }
-
-            case 9:
-              switch (yy_input) {
-                case 2: yy_isFinal = true; yy_noLookAhead = true; yy_state = 33; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 10:
-              switch (yy_input) {
-                case 1: yy_isFinal = true; yy_noLookAhead = true; yy_state = 34; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 11:
-              switch (yy_input) {
-                case 4: yy_state = 35; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 12:
-              switch (yy_input) {
-                case 13: yy_state = 36; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 13:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: 
-                case 18: yy_state = 37; break yy_forNext;
-                case 10: yy_state = 38; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 14:
-              switch (yy_input) {
-                case 13: yy_state = 36; break yy_forNext;
-                case 11: yy_state = 39; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 15:
-              switch (yy_input) {
-                case 25: yy_isFinal = true; yy_noLookAhead = true; yy_state = 40; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 16:
-              switch (yy_input) {
-                case 19: yy_state = 41; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 18:
-              switch (yy_input) {
-                case 16: yy_state = 42; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 19:
-              switch (yy_input) {
-                case 25: yy_isFinal = true; yy_noLookAhead = true; yy_state = 43; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 21:
-              switch (yy_input) {
-                case 6: 
-                case 9: 
-                case 18: yy_isFinal = true; yy_state = 21; break yy_forNext;
-                case 7: yy_state = 44; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 20; break yy_forNext;
-              }
-
-            case 22:
-              switch (yy_input) {
-                case 6: 
-                case 9: 
-                case 18: yy_isFinal = true; yy_state = 21; break yy_forNext;
-                case 7: yy_state = 44; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 20; break yy_forNext;
-              }
-
-            case 27:
-              switch (yy_input) {
-                case 25: yy_isFinal = true; yy_noLookAhead = true; yy_state = 45; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 29:
-              switch (yy_input) {
-                case 25: yy_isFinal = true; yy_noLookAhead = true; yy_state = 46; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 32:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: 
-                case 18: yy_isFinal = true; yy_state = 32; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 35:
-              switch (yy_input) {
-                case 5: yy_isFinal = true; yy_noLookAhead = true; yy_state = 47; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 36:
-              switch (yy_input) {
-                case 15: yy_state = 48; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 37:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: 
-                case 18: yy_state = 37; break yy_forNext;
-                case 10: yy_state = 38; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 38:
-              switch (yy_input) {
-                case 11: yy_state = 39; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 39:
-              switch (yy_input) {
-                case 12: yy_state = 49; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 41:
-              switch (yy_input) {
-                case 20: yy_state = 50; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 42:
-              switch (yy_input) {
-                case 16: yy_state = 51; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 44:
-              switch (yy_input) {
-                case 6: 
-                case 9: 
-                case 18: yy_isFinal = true; yy_state = 21; break yy_forNext;
-                case 7: yy_state = 44; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 20; break yy_forNext;
-              }
-
-            case 48:
-              switch (yy_input) {
-                case 16: yy_state = 52; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 49:
-              switch (yy_input) {
-                case 13: yy_state = 53; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 50:
-              switch (yy_input) {
-                case 21: yy_state = 54; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 51:
-              switch (yy_input) {
-                case 27: yy_state = 55; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 52:
-              switch (yy_input) {
-                case 17: yy_state = 56; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 53:
-              switch (yy_input) {
-                case 14: yy_state = 57; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 54:
-              switch (yy_input) {
-                case 22: yy_state = 58; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 55:
-              switch (yy_input) {
-                case 28: yy_state = 59; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 56:
-              switch (yy_input) {
-                case 18: yy_isFinal = true; yy_noLookAhead = true; yy_state = 60; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 57:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: 
-                case 18: yy_isFinal = true; yy_state = 61; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 58:
-              switch (yy_input) {
-                case 23: yy_state = 62; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 59:
-              switch (yy_input) {
-                case 15: yy_state = 63; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 61:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: 
-                case 18: yy_isFinal = true; yy_state = 61; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 62:
-              switch (yy_input) {
-                case 19: yy_state = 64; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 63:
-              switch (yy_input) {
-                case 29: yy_state = 65; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 64:
-              switch (yy_input) {
-                case 24: yy_state = 66; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 65:
-              switch (yy_input) {
-                case 30: yy_state = 67; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 66:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: 
-                case 18: yy_state = 66; break yy_forNext;
-                case 8: yy_isFinal = true; yy_state = 68; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 67:
-              switch (yy_input) {
-                case 23: yy_state = 69; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 68:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: 
-                case 18: yy_isFinal = true; yy_state = 68; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 69:
-              switch (yy_input) {
-                case 31: yy_state = 70; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 70:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: 
-                case 18: yy_state = 70; break yy_forNext;
-                case 8: yy_state = 71; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 71:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: 
-                case 18: yy_state = 71; break yy_forNext;
-                case 20: yy_state = 72; break yy_forNext;
-                case 32: yy_state = 73; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 72:
-              switch (yy_input) {
-                case 21: yy_state = 74; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 73:
-              switch (yy_input) {
-                case 20: yy_state = 72; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 74:
-              switch (yy_input) {
-                case 19: yy_state = 75; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 75:
-              switch (yy_input) {
-                case 16: yy_state = 76; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 76:
-              switch (yy_input) {
-                case 15: yy_state = 77; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 77:
-              switch (yy_input) {
-                case 19: yy_state = 78; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 78:
-              switch (yy_input) {
-                case 16: yy_state = 79; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 79:
-              switch (yy_input) {
-                case 28: yy_state = 80; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 80:
-              switch (yy_input) {
-                case 16: yy_state = 81; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 81:
-              switch (yy_input) {
-                case 33: yy_state = 82; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 82:
-              switch (yy_input) {
-                case 27: yy_state = 83; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 83:
-              switch (yy_input) {
-                case 15: yy_state = 84; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 84:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: 
-                case 18: yy_state = 85; break yy_forNext;
-                case 32: yy_state = 86; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 85:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: 
-                case 18: yy_state = 85; break yy_forNext;
-                case 20: yy_state = 87; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 86:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: 
-                case 18: yy_state = 85; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 87:
-              switch (yy_input) {
-                case 21: yy_state = 88; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 88:
-              switch (yy_input) {
-                case 19: yy_state = 89; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 89:
-              switch (yy_input) {
-                case 16: yy_state = 90; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 90:
-              switch (yy_input) {
-                case 15: yy_state = 91; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 91:
-              switch (yy_input) {
-                case 19: yy_state = 92; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 92:
-              switch (yy_input) {
-                case 16: yy_state = 93; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 93:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: 
-                case 18: yy_state = 93; break yy_forNext;
-                case 8: yy_isFinal = true; yy_state = 94; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 94:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: 
-                case 18: yy_isFinal = true; yy_state = 94; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            default:
-              yy_ScanError(YY_ILLEGAL_STATE);
-              break;
-          } }
-
-          if ( yy_isFinal ) {
-            yy_action = yy_state; 
-            yy_markedPos = yy_currentPos; 
-            if ( yy_noLookAhead ) break yy_forAction;
-          }
-
-        }
-      }
-
-
-      switch (yy_action) {    
-
-        case 26: 
-          {  yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 96: break;
-        case 20: 
-        case 21: 
-          {  yypushback(1); yybegin(UnDelimitedString); string.setLength(0); }
-        case 97: break;
-        case 17: 
-          {  yybegin(YYINITIAL);  if (foundContentTypeValue) hasMore = false; return HTMLHeadTokenizerConstants.MetaTagEnd; }
-        case 98: break;
-        case 31: 
-          {  yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue; }
-        case 99: break;
-        case 43: 
-          {  yybegin(YYINITIAL); if (foundContentTypeValue) hasMore = false; return HTMLHeadTokenizerConstants.MetaTagEnd; }
-        case 100: break;
-        case 45: 
-          {  yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 101: break;
-        case 46: 
-          {  yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 102: break;
-        case 61: 
-          { if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;} }
-        case 103: break;
-        case 8: 
-        case 9: 
-        case 10: 
-        case 11: 
-        case 12: 
-        case 13: 
-        case 14: 
-        case 15: 
-        case 16: 
-        case 18: 
-        case 19: 
-        case 22: 
-          { if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;} }
-        case 104: break;
-        case 60: 
-          { yybegin(ST_META_TAG); return HTMLHeadTokenizerConstants.MetaTagStart; }
-        case 105: break;
-        case 40: 
-          { yybegin(YYINITIAL);  return XMLHeadTokenizerConstants.XMLDeclEnd; }
-        case 106: break;
-        case 94: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); foundContentTypeValue=true; return HTMLHeadTokenizerConstants.MetaTagContentType; }
-        case 107: break;
-        case 68: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding; }
-        case 108: break;
-        case 33: 
-          { hasMore = false; return EncodingParserConstants.UTF16BE; }
-        case 109: break;
-        case 34: 
-          { hasMore = false; return EncodingParserConstants.UTF16LE; }
-        case 110: break;
-        case 47: 
-          { hasMore = false; return EncodingParserConstants.UTF83ByteBOM; }
-        case 111: break;
-        case 28: 
-          {  popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;  }
-        case 112: break;
-        case 25: 
-        case 27: 
-        case 29: 
-        case 32: 
-          {  string.append( yytext() );  }
-        case 113: break;
-        case 24: 
-          {  yybegin(SQ_STRING); string.setLength(0);  }
-        case 114: break;
-        case 23: 
-          {  yybegin(DQ_STRING); string.setLength(0);  }
-        case 115: break;
-        case 30: 
-          {  yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue;  }
-        case 116: break;
-        default: 
-          if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
-            yy_atEOF = true;
-            yy_do_eof();
-              { hasMore = false; return EncodingParserConstants.EOF; }
-          } 
-          else {
-            yy_ScanError(YY_NO_MATCH);
-          }
-      }
-    }
-  }    
-
-  /**
-   * Runs the scanner on input files.
-   *
-   * This main method is the debugging routine for the scanner.
-   * It prints each returned token to System.out until the end of
-   * file is reached, or an error occured.
-   *
-   * @param argv   the command line, contains the filenames to run
-   *               the scanner on.
-   */
-  public static void main(String argv[]) {
-    for (int i = 0; i < argv.length; i++) {
-      HTMLHeadTokenizer scanner = null;
-      try {
-        scanner = new HTMLHeadTokenizer( new java.io.FileReader(argv[i]) );
-      }
-      catch (java.io.FileNotFoundException e) {
-        System.out.println("File not found : \""+argv[i]+"\"");
-        System.exit(1);
-      }
-      catch (java.io.IOException e) {
-        System.out.println("Error opening file \""+argv[i]+"\"");
-        System.exit(1);
-      }
-      catch (ArrayIndexOutOfBoundsException e) {
-        System.out.println("Usage : java HTMLHeadTokenizer <inputfile>");
-        System.exit(1);
-      }
-
-      try {
-        do {
-          System.out.println(scanner.primGetNextToken());
-        } while (!scanner.yy_atEOF);
-
-      }
-      catch (java.io.IOException e) {
-        System.out.println("An I/O error occured while scanning :");
-        System.out.println(e);
-        System.exit(1);
-      }
-      catch (Exception e) {
-        e.printStackTrace();
-        System.exit(1);
-      }
-    }
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizerGenJava.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizerGenJava.cmd
deleted file mode 100644
index 96f2325..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizerGenJava.cmd
+++ /dev/null
@@ -1,23 +0,0 @@
-@echo off

-

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

-set PATH=%PATH%;d:jdks\j2sdk1.4.1_02\bin

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

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

-

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

-set MAIN_NAME=HTMLHeadTokenizer

-set PROJECT_SRC=\org.eclipse.wst.common.encoding.contentspecific\src\

-set PACKAGE_DIR=com\ibm\encoding\resource\contentspecific\html\

-

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

-set JAVA_FILE=%MAIN_NAME%.java

-set JFLEX_RULES=%MAIN_NAME%.jflex

-set SKELETON_FILE=%MAIN_NAME%.skeleton

-

-IF EXIST %JAVA_FILE% del %JAVA_FILE%

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

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

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

-

-rem pause

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/jflexerr.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/jflexerr.txt
deleted file mode 100644
index e69de29..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/jflexerr.txt
+++ /dev/null
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/jflexout.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/jflexout.txt
deleted file mode 100644
index 1469e9c..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/jflexout.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Reading "HTMLHeadTokenizer.jflex"
-
-Warning : Macro "SpaceChar" has been declared but never used.
-Constructing NFA : 660 states in NFA
-Converting NFA to DFA : 
-.........................................................................................................................
-135 states before minimization, 95 states in minimized DFA
-Writing code to "HTMLHeadTokenizer.java"
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer/JSPHeadTokenizer.jFlex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer/JSPHeadTokenizer.jFlex
deleted file mode 100644
index cd66ce2..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer/JSPHeadTokenizer.jFlex
+++ /dev/null
@@ -1,294 +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.sse.core.jsp.contenttype;
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.wst.common.encoding.EncodingParserConstants;
-import org.eclipse.wst.common.encoding.HeadParserToken;
-import org.eclipse.wst.common.encoding.IntStack;
-import org.eclipse.wst.sse.core.xml.contenttype.XMLHeadTokenizerConstants;
-
-
-
-
-
-%%
-
-%{
-
-
-
-	private boolean hasMore = true;
-	private final static int MAX_TO_SCAN = 1000;
-	StringBuffer string = new StringBuffer();
-	// state stack for easier state handling
-	private IntStack fStateStack = new IntStack();
-	private String valueText = null;
-
-
-	public JSPHeadTokenizer() {
-		super();
-	}
-
-	  public void reset (Reader in) {
-	  	/* the input device */
-	  	yy_reader = in;
-
-  		/* the current state of the DFA */
-  		yy_state = 0;
-
-  		/* the current lexical state */
-  		yy_lexical_state = YYINITIAL;
-
-  		/* this buffer contains the current text to be matched and is
-  		 the source of the yytext() string */
-  		java.util.Arrays.fill(yy_buffer, (char)0);
-
-  		/* the textposition at the last accepting state */
-  		yy_markedPos = 0;
-
-  		/* the textposition at the last state to be included in yytext */
-  		yy_pushbackPos = 0;
-
-  		/* the current text position in the buffer */
-  		yy_currentPos = 0;
-
-  		/* startRead marks the beginning of the yytext() string in the buffer */
-  		yy_startRead = 0;
-
-  		/**
-  		 * endRead marks the last character in the buffer, that has been read
-  		 * from input
-  		 */
-  		yy_endRead = 0;
-
-  		/* number of newlines encountered up to the start of the matched text */
-  		yyline = 0;
-
-  		/* the number of characters up to the start of the matched text */
-  		yychar = 0;
-
-  		/**
-  		 * the number of characters from the last newline up to the start
-  		 * of the matched text
-  		 */
-  		yycolumn = 0;
-
-  		/**
-  		 * yy_atBOL == true <=> the scanner is currently at the beginning
-  		 * of a line
-  		 */
-  		yy_atBOL = false;
-
-  		/* yy_atEOF == true <=> the scanner has returned a value for EOF */
-  		yy_atEOF = false;
-
-  		/* denotes if the user-EOF-code has already been executed */
-  		yy_eof_done = false;
-
-
-  		fStateStack.clear();
-
-  		hasMore = true;
-
-		// its a little wasteful to "throw away" first char array generated
-		// by class init (via auto generated code), but we really do want
-		// a small buffer for our head parsers.
-		if (yy_buffer.length != MAX_TO_SCAN) {
-			yy_buffer = new char[MAX_TO_SCAN];
-		}
-
-
-  	}
-
-
-	public final HeadParserToken getNextToken() throws IOException {
-		String context = null;
-		context = primGetNextToken();
-		HeadParserToken result = null;
-		if (valueText != null) {
-			result = createToken(context, yychar, valueText);
-			valueText = null;
-		} else {
-			result = createToken(context, yychar, yytext());
-		}
-		return result;
-	}
-
-	public final boolean hasMoreTokens() {
-		return hasMore && yychar < MAX_TO_SCAN;
-	}
-	private void pushCurrentState() {
-		fStateStack.push(yystate());
-
-	}
-
-	private void popState() {
-		yybegin(fStateStack.pop());
-	}
-	private HeadParserToken createToken(String context, int start, String text) {
-		return new HeadParserToken(context, start, text);
-	}
-
-
-%}
-
-%eof{
-	hasMore=false;
-%eof}
-
-%public
-%class JSPHeadTokenizer
-%function primGetNextToken
-%type String
-%char
-%unicode
-%ignorecase
-%debug
-%switch
-
-
-UTF16BE = \xFE\xFF
-UTF16LE = \xFF\xFE
-UTF83ByteBOM = \xEF\xBB\xBF
-
-SpaceChar = [\x20\x09]
-
-
-// [3] S ::= (0x20 | 0x9 | 0xD | 0xA)+
-S = [\x20\x09\x0D\x0A]
-
-BeginAttribeValue = {S}* \= {S}*
-
-LineTerminator = \r|\n
-
-
-%state ST_XMLDecl
-%state ST_PAGE_DIRECTIVE
-%state QuotedAttributeValue
-%state DQ_STRING
-%state SQ_STRING
-%state UnDelimitedString
-
-%%
-
-
-<YYINITIAL>
-{
-	{UTF16BE}   		{hasMore = false; return EncodingParserConstants.UTF16BE;}
-	{UTF16LE}   		{hasMore = false; return EncodingParserConstants.UTF16LE;}
-	{UTF83ByteBOM}   	{hasMore = false; return EncodingParserConstants.UTF83ByteBOM;}
-
-
-	// force to be started on first line, but we do allow preceeding spaces
-	^ {S}* "<\?xml" {S}+ {if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;}}
-
-	"<%" {S}* "@" {S}* "page" {S}+   {yybegin(ST_PAGE_DIRECTIVE); return JSPHeadTokenizerConstants.PageDirectiveStart;}
-	"<jsp:directive.page" {S}+           {yybegin(ST_PAGE_DIRECTIVE); return JSPHeadTokenizerConstants.PageDirectiveStart;}
-
-
-}
-
-<ST_XMLDecl>
-{
-//      commented out 'version' since we don't really use, but could add back in here if needed
-//	"version" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;}
-	"encoding" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;}
-	// note the "forced end" (via 'hasMore=false') once the end of XML Declaration found
-	// This is since non-ascii chars may follow and may cause IOExceptions which would not occur once stream is
-	// read with incorrect encoding (such as if platform encoding is in effect until true encoding detected).
-	"\?>"    {yybegin(YYINITIAL); hasMore = false; return XMLHeadTokenizerConstants.XMLDeclEnd;}
-}
-
-<ST_PAGE_DIRECTIVE>
-{
-//  removed 'language' since it really can be handled seperately from encoding, but may add it back later for simple re-use.
-	"language"     {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageLanguage;}
-	"contentType" {BeginAttribeValue}  {pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageContentType;}
-	"pageEncoding" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageEncoding;}
-	// note the "forced end" (via 'hasMore=false') once the end of XML Declaration found
-	// This is since non-ascii chars may follow and may cause IOExceptions which would not occur once stream is
-	// read in correct encoding.
-
-	// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=4205 demonstrates how we need to keep parsing,
-	// even if come to end of one page directive, so hasMore=false was removed from these rules.
-	"%>"    { yybegin(YYINITIAL);  return JSPHeadTokenizerConstants.PageDirectiveEnd;}
-	"\/>"    { yybegin(YYINITIAL); return JSPHeadTokenizerConstants.PageDirectiveEnd;}
-}
-
-
-<QuotedAttributeValue>
-{
-	\"                      { yybegin(DQ_STRING); string.setLength(0); }
-	\'			{ yybegin(SQ_STRING); string.setLength(0); }
-	// in this state, anything other than a space character can start an undelimited string
-	{S}*.           { yypushback(1); yybegin(UnDelimitedString); string.setLength(0);}
-
-}
-
-
-<DQ_STRING>
-{
-
-	\"                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; }
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\?>"			{ yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	'<'			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	.			{ string.append( yytext() ); }
-
-	"%>"			{ yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-
-
-}
-
-<SQ_STRING>
-{
-
-	\'                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;}
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"%>"			{ yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	'<'			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	.			{ string.append( yytext() ); }
-	"%>"			{ yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-
-
-}
-
-<UnDelimitedString>
-{
-
-
-	{S}                     { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; }
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\?>"			{ yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	'<'			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	// these are a bit special, since we started an undelimit string, but found a quote ... probably indicates a missing beginning quote
-	\'			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}
-	\"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}
-
-	.			{ string.append( yytext() ); }
-	"%>"			{ yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-
-}
-
-// The "match anything" rule should always be in effect except for when looking for end of string
-// (That is, remember to update state list if/when new states added)
-<YYINITIAL, ST_XMLDecl, QuotedAttributeValue, ST_PAGE_DIRECTIVE>
-{
-// this is the fallback (match "anything") rule  (for this scanner, input is ignored, and position advanced, if not recognized)
-.|\n              {if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}}
-}
-
-// this rule always in effect
-<<EOF>>         {hasMore = false; return EncodingParserConstants.EOF;}
-
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer/JSPHeadTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer/JSPHeadTokenizer.java
deleted file mode 100644
index 27d3b07..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer/JSPHeadTokenizer.java
+++ /dev/null
@@ -1,1327 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-/* The following code was generated by JFlex 1.2.2 on 9/7/04 8:12 AM */
-
-/*nlsXXX*/
-package org.eclipse.wst.sse.core.jsp.contenttype;
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.wst.common.encoding.EncodingParserConstants;
-import org.eclipse.wst.common.encoding.HeadParserToken;
-import org.eclipse.wst.common.encoding.IntStack;
-import org.eclipse.wst.sse.core.xml.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 9/7/04 8:12 AM from the specification file
- * <tt>file:/D:/DevTimeSupport/HeadParsers/JSPHeadTokenizer/JSPHeadTokenizer.jflex</tt>
- */
-public class JSPHeadTokenizer {
-
-  /** this character denotes the end of file */
-  final public static int YYEOF = -1;
-
-  /** lexical states */
-  final public static int YYINITIAL = 0;
-  final public static int UnDelimitedString = 12;
-  final public static int DQ_STRING = 8;
-  final public static int SQ_STRING = 10;
-  final public static int ST_XMLDecl = 2;
-  final public static int ST_PAGE_DIRECTIVE = 4;
-  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
-  };
-
-  /** 
-   * Translates characters to character classes
-   */
-  final private static String yycmap_packed = 
-    "\11\0\1\6\1\7\2\0\1\11\22\0\1\6\1\0\1\45\2\0"+
-    "\1\17\1\0\1\46\6\0\1\36\1\44\12\0\1\27\1\0\1\12"+
-    "\1\10\1\41\1\13\1\20\1\22\1\0\1\33\1\30\1\24\1\0"+
-    "\1\23\1\0\1\31\1\25\1\0\1\16\1\15\1\37\1\40\1\21"+
-    "\1\0\1\32\1\26\1\34\1\42\1\35\1\0\1\14\1\43\7\0"+
-    "\1\22\1\0\1\33\1\30\1\24\1\0\1\23\1\0\1\31\1\25"+
-    "\1\0\1\16\1\15\1\37\1\40\1\21\1\0\1\32\1\26\1\34"+
-    "\1\42\1\35\1\0\1\14\1\43\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 = 1000;
-	StringBuffer string = new StringBuffer();
-	// state stack for easier state handling
-	private IntStack fStateStack = new IntStack();
-	private String valueText = null;
-
-
-	public JSPHeadTokenizer() {
-		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 JSPHeadTokenizer(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 JSPHeadTokenizer(java.io.InputStream in) {
-    this(new java.io.InputStreamReader(in));
-  }
-
-  /** 
-   * Unpacks the compressed character translation table.
-   *
-   * @param packed   the packed character translation table
-   * @return         the unpacked character translation table
-   */
-  private static char [] 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 < 182) {
-      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;
-
-
-    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_forAction: {
-        while (true) {
-
-          yy_input = yy_advance();
-
-          if ( yy_input == YYEOF ) break yy_forAction;
-
-          yy_input = yycmap[yy_input];
-
-          boolean yy_isFinal = false;
-          boolean yy_noLookAhead = false;
-
-          yy_forNext: { switch (yy_state) {
-            case 0:
-              switch (yy_input) {
-                case 1: yy_isFinal = true; yy_state = 9; break yy_forNext;
-                case 2: yy_isFinal = true; yy_state = 10; break yy_forNext;
-                case 3: yy_isFinal = true; yy_state = 11; break yy_forNext;
-                case 10: yy_isFinal = true; yy_state = 12; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext;
-              }
-
-            case 1:
-              switch (yy_input) {
-                case 1: yy_isFinal = true; yy_state = 9; break yy_forNext;
-                case 2: yy_isFinal = true; yy_state = 10; break yy_forNext;
-                case 3: yy_isFinal = true; yy_state = 11; break yy_forNext;
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 13; break yy_forNext;
-                case 10: yy_isFinal = true; yy_state = 14; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext;
-              }
-
-            case 2:
-              switch (yy_input) {
-                case 11: yy_isFinal = true; yy_state = 15; break yy_forNext;
-                case 20: yy_isFinal = true; yy_state = 16; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext;
-              }
-
-            case 3:
-              switch (yy_input) {
-                case 14: yy_isFinal = true; yy_state = 17; break yy_forNext;
-                case 15: yy_isFinal = true; yy_state = 18; break yy_forNext;
-                case 17: yy_isFinal = true; yy_state = 19; break yy_forNext;
-                case 27: yy_isFinal = true; yy_state = 20; break yy_forNext;
-                case 36: yy_isFinal = true; yy_state = 21; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext;
-              }
-
-            case 4:
-              switch (yy_input) {
-                case 6: 
-                case 9: yy_isFinal = true; yy_state = 23; break yy_forNext;
-                case 7: yy_isFinal = true; yy_state = 24; break yy_forNext;
-                case 37: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
-                case 38: yy_isFinal = true; yy_noLookAhead = true; yy_state = 26; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 22; break yy_forNext;
-              }
-
-            case 5:
-              switch (yy_input) {
-                case 7: 
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 28; break yy_forNext;
-                case 11: yy_isFinal = true; yy_state = 29; break yy_forNext;
-                case 15: yy_isFinal = true; yy_state = 30; break yy_forNext;
-                case 37: yy_isFinal = true; yy_noLookAhead = true; yy_state = 31; break yy_forNext;
-                case 38: yy_isFinal = true; yy_state = 32; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 27; break yy_forNext;
-              }
-
-            case 6:
-              switch (yy_input) {
-                case 7: 
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 28; break yy_forNext;
-                case 15: yy_isFinal = true; yy_state = 30; break yy_forNext;
-                case 38: yy_isFinal = true; yy_state = 33; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 27; break yy_forNext;
-              }
-
-            case 7:
-              switch (yy_input) {
-                case 11: 
-                case 15: yy_isFinal = true; yy_state = 30; break yy_forNext;
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 34; break yy_forNext;
-                case 37: yy_isFinal = true; yy_noLookAhead = true; yy_state = 35; break yy_forNext;
-                case 38: yy_isFinal = true; yy_state = 36; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 27; break yy_forNext;
-              }
-
-            case 9:
-              switch (yy_input) {
-                case 2: yy_isFinal = true; yy_noLookAhead = true; yy_state = 37; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 10:
-              switch (yy_input) {
-                case 1: yy_isFinal = true; yy_noLookAhead = true; yy_state = 38; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 11:
-              switch (yy_input) {
-                case 4: yy_state = 39; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 12:
-              switch (yy_input) {
-                case 15: yy_state = 40; break yy_forNext;
-                case 21: yy_state = 41; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 13:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_state = 42; break yy_forNext;
-                case 10: yy_state = 43; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 14:
-              switch (yy_input) {
-                case 15: yy_state = 40; break yy_forNext;
-                case 21: yy_state = 41; break yy_forNext;
-                case 11: yy_state = 44; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 15:
-              switch (yy_input) {
-                case 33: yy_isFinal = true; yy_noLookAhead = true; yy_state = 45; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 16:
-              switch (yy_input) {
-                case 31: yy_state = 46; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 17:
-              switch (yy_input) {
-                case 18: yy_state = 47; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 18:
-              switch (yy_input) {
-                case 33: yy_isFinal = true; yy_noLookAhead = true; yy_state = 48; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 19:
-              switch (yy_input) {
-                case 18: yy_state = 49; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 20:
-              switch (yy_input) {
-                case 32: yy_state = 50; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 21:
-              switch (yy_input) {
-                case 33: yy_isFinal = true; yy_noLookAhead = true; yy_state = 51; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 23:
-              switch (yy_input) {
-                case 6: 
-                case 9: yy_isFinal = true; yy_state = 23; break yy_forNext;
-                case 7: yy_state = 52; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 22; break yy_forNext;
-              }
-
-            case 24:
-              switch (yy_input) {
-                case 6: 
-                case 9: yy_isFinal = true; yy_state = 23; break yy_forNext;
-                case 7: yy_state = 52; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 22; break yy_forNext;
-              }
-
-            case 29:
-              switch (yy_input) {
-                case 33: yy_isFinal = true; yy_noLookAhead = true; yy_state = 53; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 30:
-              switch (yy_input) {
-                case 33: yy_isFinal = true; yy_noLookAhead = true; yy_state = 54; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 32:
-              switch (yy_input) {
-                case 10: yy_state = 55; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 33:
-              switch (yy_input) {
-                case 10: yy_state = 55; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 36:
-              switch (yy_input) {
-                case 10: yy_state = 55; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 39:
-              switch (yy_input) {
-                case 5: yy_isFinal = true; yy_noLookAhead = true; yy_state = 56; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 40:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_state = 40; break yy_forNext;
-                case 16: yy_state = 57; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 41:
-              switch (yy_input) {
-                case 22: yy_state = 58; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 42:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_state = 42; break yy_forNext;
-                case 10: yy_state = 43; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 43:
-              switch (yy_input) {
-                case 11: yy_state = 44; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 44:
-              switch (yy_input) {
-                case 12: yy_state = 59; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 46:
-              switch (yy_input) {
-                case 27: yy_state = 60; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 47:
-              switch (yy_input) {
-                case 31: yy_state = 61; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 49:
-              switch (yy_input) {
-                case 19: yy_state = 62; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 50:
-              switch (yy_input) {
-                case 31: yy_state = 63; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 52:
-              switch (yy_input) {
-                case 6: 
-                case 9: yy_isFinal = true; yy_state = 23; break yy_forNext;
-                case 7: yy_state = 52; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 22; break yy_forNext;
-              }
-
-            case 55:
-              switch (yy_input) {
-                case 38: yy_isFinal = true; yy_noLookAhead = true; yy_state = 28; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 57:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_state = 57; break yy_forNext;
-                case 17: yy_state = 64; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 58:
-              switch (yy_input) {
-                case 17: yy_state = 65; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 59:
-              switch (yy_input) {
-                case 13: yy_state = 66; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 60:
-              switch (yy_input) {
-                case 32: yy_state = 67; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 61:
-              switch (yy_input) {
-                case 19: yy_state = 68; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 62:
-              switch (yy_input) {
-                case 20: yy_state = 69; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 63:
-              switch (yy_input) {
-                case 28: yy_state = 70; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 64:
-              switch (yy_input) {
-                case 18: yy_state = 71; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 65:
-              switch (yy_input) {
-                case 23: yy_state = 72; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 66:
-              switch (yy_input) {
-                case 14: yy_state = 73; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 67:
-              switch (yy_input) {
-                case 24: yy_state = 74; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 68:
-              switch (yy_input) {
-                case 34: yy_state = 75; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 69:
-              switch (yy_input) {
-                case 20: yy_state = 76; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 70:
-              switch (yy_input) {
-                case 20: yy_state = 77; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 71:
-              switch (yy_input) {
-                case 19: yy_state = 78; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 72:
-              switch (yy_input) {
-                case 24: yy_state = 79; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 73:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 80; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 74:
-              switch (yy_input) {
-                case 25: yy_state = 81; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 75:
-              switch (yy_input) {
-                case 18: yy_state = 82; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 76:
-              switch (yy_input) {
-                case 31: yy_state = 83; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 77:
-              switch (yy_input) {
-                case 31: yy_state = 84; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 78:
-              switch (yy_input) {
-                case 20: yy_state = 85; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 79:
-              switch (yy_input) {
-                case 25: yy_state = 86; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 80:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 80; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 81:
-              switch (yy_input) {
-                case 31: yy_state = 87; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 82:
-              switch (yy_input) {
-                case 19: yy_state = 88; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 83:
-              switch (yy_input) {
-                case 27: yy_state = 89; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 84:
-              switch (yy_input) {
-                case 28: yy_state = 90; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 85:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 91; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 86:
-              switch (yy_input) {
-                case 26: yy_state = 92; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 87:
-              switch (yy_input) {
-                case 19: yy_state = 93; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 88:
-              switch (yy_input) {
-                case 20: yy_state = 94; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 89:
-              switch (yy_input) {
-                case 32: yy_state = 95; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 90:
-              switch (yy_input) {
-                case 28: yy_state = 96; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 91:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 91; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 92:
-              switch (yy_input) {
-                case 20: yy_state = 97; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 93:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_state = 93; break yy_forNext;
-                case 8: yy_isFinal = true; yy_state = 98; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 94:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_state = 94; break yy_forNext;
-                case 8: yy_isFinal = true; yy_state = 99; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 95:
-              switch (yy_input) {
-                case 24: yy_state = 100; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 96:
-              switch (yy_input) {
-                case 35: yy_state = 101; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 97:
-              switch (yy_input) {
-                case 27: yy_state = 102; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 98:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 98; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 99:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 99; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 100:
-              switch (yy_input) {
-                case 25: yy_state = 103; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 101:
-              switch (yy_input) {
-                case 17: yy_state = 104; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 102:
-              switch (yy_input) {
-                case 28: yy_state = 105; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 103:
-              switch (yy_input) {
-                case 31: yy_state = 106; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 104:
-              switch (yy_input) {
-                case 20: yy_state = 107; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 105:
-              switch (yy_input) {
-                case 25: yy_state = 108; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 106:
-              switch (yy_input) {
-                case 19: yy_state = 109; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 107:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_state = 107; break yy_forNext;
-                case 8: yy_isFinal = true; yy_state = 110; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 108:
-              switch (yy_input) {
-                case 29: yy_state = 111; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 109:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_state = 109; break yy_forNext;
-                case 8: yy_isFinal = true; yy_state = 112; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 110:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 110; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 111:
-              switch (yy_input) {
-                case 20: yy_state = 113; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 112:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 112; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 113:
-              switch (yy_input) {
-                case 30: yy_state = 114; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 114:
-              switch (yy_input) {
-                case 17: yy_state = 64; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            default:
-              yy_ScanError(YY_ILLEGAL_STATE);
-              break;
-          } }
-
-          if ( yy_isFinal ) {
-            yy_action = yy_state; 
-            yy_markedPos = yy_currentPos; 
-            if ( yy_noLookAhead ) break yy_forAction;
-          }
-
-        }
-      }
-
-
-      switch (yy_action) {    
-
-        case 33: 
-          {  popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; }
-        case 116: break;
-        case 28: 
-          {  yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 117: break;
-        case 22: 
-        case 23: 
-          {  yypushback(1); yybegin(UnDelimitedString); string.setLength(0); }
-        case 118: break;
-        case 35: 
-        case 36: 
-          {  yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue; }
-        case 119: break;
-        case 48: 
-          {  yybegin(YYINITIAL);  return JSPHeadTokenizerConstants.PageDirectiveEnd; }
-        case 120: break;
-        case 51: 
-          {  yybegin(YYINITIAL); return JSPHeadTokenizerConstants.PageDirectiveEnd; }
-        case 121: break;
-        case 53: 
-          {  yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 122: break;
-        case 54: 
-          {  yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 123: break;
-        case 80: 
-          { if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;} }
-        case 124: break;
-        case 8: 
-        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 24: 
-          { if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;} }
-        case 125: break;
-        case 91: 
-          { yybegin(ST_PAGE_DIRECTIVE); return JSPHeadTokenizerConstants.PageDirectiveStart; }
-        case 126: break;
-        case 45: 
-          { yybegin(YYINITIAL); hasMore = false; return XMLHeadTokenizerConstants.XMLDeclEnd; }
-        case 127: break;
-        case 112: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageEncoding; }
-        case 128: break;
-        case 110: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageContentType; }
-        case 129: break;
-        case 99: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageLanguage; }
-        case 130: break;
-        case 98: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding; }
-        case 131: break;
-        case 56: 
-          { hasMore = false; return EncodingParserConstants.UTF83ByteBOM; }
-        case 132: break;
-        case 37: 
-          { hasMore = false; return EncodingParserConstants.UTF16BE; }
-        case 133: break;
-        case 38: 
-          { hasMore = false; return EncodingParserConstants.UTF16LE; }
-        case 134: break;
-        case 31: 
-          {  popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;  }
-        case 135: break;
-        case 27: 
-        case 29: 
-        case 30: 
-        case 32: 
-          {  string.append( yytext() );  }
-        case 136: break;
-        case 26: 
-          {  yybegin(SQ_STRING); string.setLength(0);  }
-        case 137: break;
-        case 25: 
-          {  yybegin(DQ_STRING); string.setLength(0);  }
-        case 138: break;
-        case 34: 
-          {  yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue;  }
-        case 139: break;
-        default: 
-          if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
-            yy_atEOF = true;
-            yy_do_eof();
-              { hasMore = false; return EncodingParserConstants.EOF; }
-          } 
-          else {
-            yy_ScanError(YY_NO_MATCH);
-          }
-      }
-    }
-  }    
-
-  /**
-   * Runs the scanner on input files.
-   *
-   * This main method is the debugging routine for the scanner.
-   * It prints each returned token to System.out until the end of
-   * file is reached, or an error occured.
-   *
-   * @param argv   the command line, contains the filenames to run
-   *               the scanner on.
-   */
-  public static void main(String argv[]) {
-    for (int i = 0; i < argv.length; i++) {
-      JSPHeadTokenizer scanner = null;
-      try {
-        scanner = new JSPHeadTokenizer( new java.io.FileReader(argv[i]) );
-      }
-      catch (java.io.FileNotFoundException e) {
-        System.out.println("File not found : \""+argv[i]+"\"");
-        System.exit(1);
-      }
-      catch (java.io.IOException e) {
-        System.out.println("Error opening file \""+argv[i]+"\"");
-        System.exit(1);
-      }
-      catch (ArrayIndexOutOfBoundsException e) {
-        System.out.println("Usage : java JSPHeadTokenizer <inputfile>");
-        System.exit(1);
-      }
-
-      try {
-        do {
-          System.out.println(scanner.primGetNextToken());
-        } while (!scanner.yy_atEOF);
-
-      }
-      catch (java.io.IOException e) {
-        System.out.println("An I/O error occured while scanning :");
-        System.out.println(e);
-        System.exit(1);
-      }
-      catch (Exception e) {
-        e.printStackTrace();
-        System.exit(1);
-      }
-    }
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer/JSPHeadTokenizerGenJava.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer/JSPHeadTokenizerGenJava.cmd
deleted file mode 100644
index 08aa344..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer/JSPHeadTokenizerGenJava.cmd
+++ /dev/null
@@ -1,25 +0,0 @@
-@echo off

-

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

-set PATH=%PATH%;d:jdks\j2sdk1.4.1_02\bin

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

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

-

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

-set MAIN_NAME=JSPHeadTokenizer

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

-set PACKAGE_DIR=com\ibm\sse\model\jsp\contenttype\

-

-

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

-set JAVA_FILE=%MAIN_NAME%.java

-set JFLEX_RULES=%MAIN_NAME%.jflex

-set SKELETON_FILE=%MAIN_NAME%.skeleton

-

-IF EXIST %JAVA_FILE% del %JAVA_FILE%

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

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

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

-

-rem pause

-

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer/jflexerr.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer/jflexerr.txt
deleted file mode 100644
index e69de29..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer/jflexerr.txt
+++ /dev/null
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer/jflexout.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer/jflexout.txt
deleted file mode 100644
index efb08a2..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer/jflexout.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Reading "JSPHeadTokenizer.jflex"
-
-Warning : Macro "SpaceChar" has been declared but never used.
-Constructing NFA : 820 states in NFA
-Converting NFA to DFA : 
-................................................................................................................................................
-158 states before minimization, 115 states in minimized DFA
-Writing code to "JSPHeadTokenizer.java"
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10Names.jFlex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10Names.jFlex
deleted file mode 100644
index a5dd0f4..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/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.sse.core.xml.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.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10Names.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10Names.java
deleted file mode 100644
index 07bdcf2..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10Names.java
+++ /dev/null
@@ -1,594 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-/* The following code was generated by JFlex 1.4 on 7/17/04 3:43 AM */
-
-/*nlsXXX*/
-package org.eclipse.wst.sse.core.xml.internal.parser;
-
-
-
-
-/**
- * This class is a scanner generated by 
- * <a href="http://www.jflex.de/">JFlex</a> 1.4
- * on 7/17/04 3:43 AM from the specification file
- * <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 = 
-    "\11\0\1\1\1\2\2\0\1\1\22\0\1\1\14\0\1\0\2\0"+
-    "\12\0\1\3\6\0\32\3\4\0\1\3\1\0\32\3\74\0\1\0"+
-    "\10\0\27\3\1\0\37\3\1\0\72\3\2\0\13\3\2\0\10\3"+
-    "\1\0\65\3\1\0\104\3\11\0\44\3\3\0\2\3\4\0\36\3"+
-    "\70\0\131\3\22\0\7\3\16\0\2\0\56\0\106\0\32\0\2\0"+
-    "\44\0\1\3\1\0\3\3\1\0\1\3\1\0\24\3\1\0\54\3"+
-    "\1\0\7\3\3\0\1\3\1\0\1\3\1\0\1\3\1\0\1\3"+
-    "\1\0\22\3\15\0\14\3\1\0\102\3\1\0\14\3\1\0\44\3"+
-    "\1\0\4\0\11\0\65\3\2\0\2\3\2\0\2\3\3\0\34\3"+
-    "\2\0\10\3\2\0\2\3\67\0\46\3\2\0\1\3\7\0\46\3"+
-    "\12\0\21\0\1\0\27\0\1\0\3\0\1\0\1\0\1\0\2\0"+
-    "\1\0\1\0\13\0\33\3\5\0\3\3\56\0\32\3\5\0\1\0"+
-    "\12\3\10\0\15\0\12\0\6\0\1\0\107\3\2\0\5\3\1\0"+
-    "\17\3\1\0\4\3\1\0\1\3\17\0\2\3\2\0\1\0\4\0"+
-    "\2\0\12\0\u0207\0\3\0\1\0\65\3\2\0\1\0\1\3\20\0"+
-    "\3\0\4\0\3\0\12\3\2\0\2\0\12\0\21\0\3\0\1\0"+
-    "\10\3\2\0\2\3\2\0\26\3\1\0\7\3\1\0\1\3\3\0"+
-    "\4\3\2\0\1\0\1\0\7\0\2\0\2\0\2\0\3\0\11\0"+
-    "\1\0\4\0\2\3\1\0\3\3\2\0\2\0\12\0\2\3\20\0"+
-    "\1\0\2\0\6\3\4\0\2\3\2\0\26\3\1\0\7\3\1\0"+
-    "\2\3\1\0\2\3\1\0\2\3\2\0\1\0\1\0\5\0\4\0"+
-    "\2\0\2\0\3\0\13\0\4\3\1\0\1\3\7\0\12\0\2\0"+
-    "\3\3\14\0\3\0\1\0\7\3\1\0\1\3\1\0\3\3\1\0"+
-    "\26\3\1\0\7\3\1\0\2\3\1\0\5\3\2\0\1\0\1\3"+
-    "\10\0\1\0\3\0\1\0\3\0\22\0\1\3\5\0\12\0\21\0"+
-    "\3\0\1\0\10\3\2\0\2\3\2\0\26\3\1\0\7\3\1\0"+
-    "\2\3\2\0\4\3\2\0\1\0\1\3\6\0\3\0\2\0\2\0"+
-    "\3\0\10\0\2\0\4\0\2\3\1\0\3\3\4\0\12\0\22\0"+
-    "\2\0\1\0\6\3\3\0\3\3\1\0\4\3\3\0\2\3\1\0"+
-    "\1\3\1\0\2\3\3\0\2\3\3\0\3\3\3\0\10\3\1\0"+
-    "\3\3\4\0\5\0\3\0\3\0\1\0\4\0\11\0\1\0\17\0"+
-    "\11\0\21\0\3\0\1\0\10\3\1\0\3\3\1\0\27\3\1\0"+
-    "\12\3\1\0\5\3\4\0\7\0\1\0\3\0\1\0\4\0\7\0"+
-    "\2\0\11\0\2\3\4\0\12\0\22\0\2\0\1\0\10\3\1\0"+
-    "\3\3\1\0\27\3\1\0\12\3\1\0\5\3\4\0\7\0\1\0"+
-    "\3\0\1\0\4\0\7\0\2\0\7\0\1\3\1\0\2\3\4\0"+
-    "\12\0\22\0\2\0\1\0\10\3\1\0\3\3\1\0\27\3\1\0"+
-    "\20\3\4\0\6\0\2\0\3\0\1\0\4\0\11\0\1\0\10\0"+
-    "\2\3\4\0\12\0\221\0\56\3\1\0\1\3\1\0\2\3\7\0"+
-    "\5\0\6\3\1\0\10\0\1\0\12\0\47\0\2\3\1\0\1\3"+
-    "\2\0\2\3\1\0\1\3\2\0\1\3\6\0\4\3\1\0\7\3"+
-    "\1\0\3\3\1\0\1\3\1\0\1\3\2\0\2\3\1\0\2\3"+
-    "\1\0\1\3\1\0\2\3\6\0\1\0\2\0\1\3\2\0\5\3"+
-    "\1\0\1\0\1\0\6\0\2\0\12\0\76\0\2\0\6\0\12\0"+
-    "\13\0\1\0\1\0\1\0\1\0\1\0\4\0\2\0\10\3\1\0"+
-    "\41\3\7\0\24\0\1\0\6\0\4\0\6\0\1\0\1\0\1\0"+
-    "\25\0\3\0\7\0\1\0\1\0\346\0\46\3\12\0\47\3\11\0"+
-    "\1\3\1\0\2\3\1\0\3\3\1\0\1\3\1\0\2\3\1\0"+
-    "\5\3\51\0\1\3\1\0\1\3\1\0\1\3\13\0\1\3\1\0"+
-    "\1\3\1\0\1\3\3\0\2\3\3\0\1\3\5\0\3\3\1\0"+
-    "\1\3\1\0\1\3\1\0\1\3\1\0\1\3\3\0\2\3\3\0"+
-    "\2\3\1\0\1\3\50\0\1\3\11\0\1\3\2\0\1\3\2\0"+
-    "\2\3\7\0\2\3\1\0\1\3\1\0\7\3\50\0\1\3\4\0"+
-    "\1\3\10\0\1\3\u0c06\0\234\3\4\0\132\3\6\0\26\3\2\0"+
-    "\6\3\2\0\46\3\2\0\6\3\2\0\10\3\1\0\1\3\1\0"+
-    "\1\3\1\0\1\3\1\0\37\3\2\0\65\3\1\0\7\3\1\0"+
-    "\1\3\3\0\3\3\1\0\7\3\3\0\4\3\2\0\6\3\4\0"+
-    "\15\3\5\0\3\3\1\0\7\3\323\0\15\0\4\0\1\0\104\0"+
-    "\1\3\3\0\2\3\2\0\1\3\121\0\3\3\u0e82\0\1\0\1\0"+
-    "\1\3\31\0\11\3\6\0\1\0\5\0\13\0\124\3\4\0\2\0"+
-    "\2\0\2\0\2\0\132\3\1\0\3\0\6\0\50\3\u1cd3\0\u51a6\3"+
-    "\u0c5a\0\u2ba4\3\u285c\0";
-
-  /** 
-   * 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\4\1";
-
-  private static int [] zzUnpackAction() {
-    int [] result = new int[7];
-    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\0\20\0\24\0\30";
-
-  private static int [] zzUnpackRowMap() {
-    int [] result = new int[7];
-    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, 1, -1, 2, -1, -1, -1, -1, 2, 3, 
-    4, 2, 2, 3, 4, 5, -1, 4, 4, 6, 
-    5, 5, 4, 5, 6, 6, -1, 6, 
-  };
-
-  /* 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\5\1";
-
-  private static int [] zzUnpackAttribute() {
-    int [] result = new int[7];
-    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: */
-
-	/**
-	 * 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 < 1226) {
-      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;
-          }
-        case 3: break;
-        case 2: 
-          { return true;
-          }
-        case 4: break;
-        default: 
-          if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
-            zzAtEOF = true;
-              { {return false;} }
-          } 
-          else {
-            zzScanError(ZZ_NO_MATCH);
-          }
-      }
-    }
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10NamesGenJava.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10NamesGenJava.cmd
deleted file mode 100644
index 2477d14..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10NamesGenJava.cmd
+++ /dev/null
@@ -1,25 +0,0 @@
-@echo on

-

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

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

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

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

-

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

-set MAIN_NAME=XML10Names

-

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

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

-

-

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

-set JAVA_FILE=%MAIN_NAME%.java

-set JFLEX_RULES=%MAIN_NAME%.jflex

-set SKELETON_FILE=%MAIN_NAME%.skeleton

-

-IF EXIST %JAVA_FILE% del %JAVA_FILE%

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

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

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

-

-pause

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10NamesGenJavaJFlex14.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10NamesGenJavaJFlex14.cmd
deleted file mode 100644
index aafbf61..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10NamesGenJavaJFlex14.cmd
+++ /dev/null
@@ -1,25 +0,0 @@
-@echo on

-

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

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

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

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

-

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

-set MAIN_NAME=XML10Names

-

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

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

-

-

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

-set JAVA_FILE=%MAIN_NAME%.java

-set JFLEX_RULES=%MAIN_NAME%.jflex

-set SKELETON_FILE=%MAIN_NAME%.skeleton

-

-IF EXIST %JAVA_FILE% del %JAVA_FILE%

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

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

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

-

-pause

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/jflexerr.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/jflexerr.txt
deleted file mode 100644
index e69de29..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/jflexerr.txt
+++ /dev/null
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/jflexout.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/jflexout.txt
deleted file mode 100644
index 6e960b5..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/jflexout.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Reading "XML10Names.jflex"
-Constructing NFA : 36 states in NFA
-Converting NFA to DFA : 
-...........
-13 states before minimization, 7 states in minimized DFA
-Writing code to "XML10Names.java"
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.jFlex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.jFlex
deleted file mode 100644
index a1944fb..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.jFlex
+++ /dev/null
@@ -1,268 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*nlsXXX*/
-package org.eclipse.wst.common.encoding.contentspecific.xml;
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.wst.common.encoding.contentspecific.EncodingParserConstants;
-import org.eclipse.wst.common.encoding.contentspecific.HeadParserToken;
-import org.eclipse.wst.common.encoding.contentspecific.IntStack;
-import org.eclipse.wst.common.encoding.contentspecific.xml.XMLHeadTokenizerConstants;
-
-
-
-
-%%
-
-%{
-
-
-	private boolean hasMore = true;
-	private final static int MAX_TO_SCAN = 1000;
-	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 */
-	  	yy_reader = in;
-
-  		/* the current state of the DFA */
-  		yy_state = 0;
-
-  		/* the current lexical state */
-  		yy_lexical_state = YYINITIAL;
-
-  		/* this buffer contains the current text to be matched and is
-  		 the source of the yytext() string */
-  		java.util.Arrays.fill(yy_buffer, (char)0);
-
-  		/* the textposition at the last accepting state */
-  		yy_markedPos = 0;
-
-  		/* the textposition at the last state to be included in yytext */
-  		yy_pushbackPos = 0;
-
-  		/* the current text position in the buffer */
-  		yy_currentPos = 0;
-
-  		/* startRead marks the beginning of the yytext() string in the buffer */
-  		yy_startRead = 0;
-
-  		/** 
-  		 * endRead marks the last character in the buffer, that has been read
-  		 * from input 
-  		 */
-  		yy_endRead = 0;
-
-  		/* number of newlines encountered up to the start of the matched text */
-  		yyline = 0;
-
-  		/* the number of characters up to the start of the matched text */
-  		yychar = 0;
-
-  		/**
-  		 * the number of characters from the last newline up to the start
-  		 * of the matched text
-  		 */
-  		yycolumn = 0; 
-
-  		/** 
-  		 * yy_atBOL == true <=> the scanner is currently at the beginning 
-  		 * of a line
-  		 */
-  		yy_atBOL = false;
-
-  		/* yy_atEOF == true <=> the scanner has returned a value for EOF */
-  		yy_atEOF = false;
-
-  		/* denotes if the user-EOF-code has already been executed */
-  		yy_eof_done = false;
-
-
-  		fStateStack.clear();
-  		
-  		hasMore = true;
-  		
-  		// its a little wasteful to "throw away" first char array generated
-  		// by class init (via auto generated code), but we really do want 
-  		// a small buffer for our head parsers. 
-  		if (yy_buffer.length != MAX_TO_SCAN) {
-  			yy_buffer = new char[MAX_TO_SCAN];
-  		}
-
-
-  	}
-
-
-	public final HeadParserToken getNextToken() throws IOException {
-		String context = null;
-		context = primGetNextToken();
-		HeadParserToken result = null;
-		if (valueText != null) {
-			result = createToken(context, yychar, valueText);
-			valueText = null;
-		} else {
-			result = createToken(context, yychar, yytext());
-		}
-		return result;
-	}
-
-	public final boolean hasMoreTokens() {
-		return hasMore && yychar < MAX_TO_SCAN;
-	}
-	private void pushCurrentState() {
-		fStateStack.push(yystate());
-
-	}
-
-	private void popState() {
-		yybegin(fStateStack.pop());
-	}
-	
-	private HeadParserToken createToken(String context, int start, String text) {
-		return new HeadParserToken(context, start, text);
-	}	
-
-%}
-
-%eof{
-	hasMore=false;
-%eof}
-
-%public
-%class XMLHeadTokenizer
-%function primGetNextToken
-%type String
-%char
-%unicode
-%ignorecase 
-%debug
-%switch
-
-UTF16BE = \xFE\xFF
-UTF16LE = \xFF\xFE
-UTF83ByteBOM = \xEF\xBB\xBF
-
-SpaceChar = [\x20\x09]
-
-// [3] S ::= (0x20 | 0x9 | 0xD | 0xA)+
-S = [\x20\x09\x0D\x0A]
-
-BeginAttribeValue = {S}* \= {S}*
-
-LineTerminator = \r|\n
-
-
-%state ST_XMLDecl
-%state QuotedAttributeValue
-%state DQ_STRING
-%state SQ_STRING
-%state UnDelimitedString
-
-%%
-
-
-<YYINITIAL>  
-{
-	// force to start at beginning of line (^) and at beginning of file (yychar == 0)
-	^{UTF16BE}   		{if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16BE;}}
-	^{UTF16LE}   		{if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16LE;}}
-	^{UTF83ByteBOM}   	{if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF83ByteBOM;}}
-	
-	// force to be started on first line, but we do allow preceeding spaces
-	^ {S}* "<\?xml" {S}+ {if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;}}
-	
-}	
-	
-<ST_XMLDecl> 
-{
-//      commented out 'version' since we don't really use, but could add back in here if needed
-//	"version" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;}
-	"encoding" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;}
-	// note the "forced end" (via 'hasMore=false') once the end of XML Declaration found
-	// This is since non-ascii chars may follow and may cause IOExceptions which would not occur once stream is 
-	// read with incorrect encoding (such as if platform encoding is in effect until true encoding detected). 
-	"\?>"    {yybegin(YYINITIAL); hasMore = false; return XMLHeadTokenizerConstants.XMLDeclEnd;}
-}	
-
-	
-
-<QuotedAttributeValue>
-{
-	\"                      { yybegin(DQ_STRING); string.setLength(0); }
-	\'			{ yybegin(SQ_STRING); string.setLength(0); }
-	// in this state, anything other than a space character can start an undelimited string
-	{S}*.           { yypushback(1); yybegin(UnDelimitedString); string.setLength(0);}
-
-}	
-
-
-<DQ_STRING>
-{
-
-	\"                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; }
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\?>"			{ yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	'<'			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	.			{ string.append( yytext() ); }
-
-
-}
-
-<SQ_STRING>
-{
-
-	\'                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;}
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"%>"			{ yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	'<'			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	.			{ string.append( yytext() ); }
-
-
-}
-
-<UnDelimitedString>
-{
-
-	{S}                     { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; }
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\?>"			{ yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	'<'	
-	{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	// these are a bit special, since we started an undelimit string, but found a quote ... probably indicates a missing beginning quote
-	\'			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}
-	
-	\"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}
-	
-	.			{ string.append( yytext() ); }
-
-}
-
-// The "match anything" rule should always be in effect except for when looking for end of string
-// (That is, remember to update state list if/when new states added)
-<YYINITIAL, ST_XMLDecl, QuotedAttributeValue>
-{
-// this is the fallback (match "anything") rule  (for this scanner, input is ignored, and position advanced, if not recognized)
-.|\n              {if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}}
-}
-
-// this rule always in effect
-<<EOF>>         {hasMore = false; return EncodingParserConstants.EOF;}
-
-	
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.java
deleted file mode 100644
index 196594c..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.java
+++ /dev/null
@@ -1,905 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-/* The following code was generated by JFlex 1.2.2 on 4/6/04 11:13 PM */
-
-/*nlsXXX*/
-package org.eclipse.wst.common.encoding.contentspecific.xml;
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.wst.common.encoding.contentspecific.EncodingParserConstants;
-import org.eclipse.wst.common.encoding.contentspecific.HeadParserToken;
-import org.eclipse.wst.common.encoding.contentspecific.IntStack;
-import org.eclipse.wst.common.encoding.contentspecific.xml.XMLHeadTokenizerConstants;
-
-
-
-
-
-/**
- * This class is a scanner generated by 
- * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
- * on 4/6/04 11:13 PM from the specification file
- * <tt>file:/D:/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.jflex</tt>
- */
-public class XMLHeadTokenizer {
-
-  /** this character denotes the end of file */
-  final public static int YYEOF = -1;
-
-  /** lexical states */
-  final public static int YYINITIAL = 0;
-  final public static int UnDelimitedString = 10;
-  final public static int DQ_STRING = 6;
-  final public static int SQ_STRING = 8;
-  final public static int ST_XMLDecl = 2;
-  final public static int QuotedAttributeValue = 4;
-
-  /**
-   * 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
-  };
-
-  /** 
-   * Translates characters to character classes
-   */
-  final private static String yycmap_packed = 
-    "\11\0\1\6\1\7\2\0\1\11\22\0\1\6\1\0\1\27\2\0"+
-    "\1\31\1\0\1\30\24\0\1\12\1\10\1\26\1\13\3\0\1\21"+
-    "\1\23\1\17\1\0\1\25\1\0\1\24\2\0\1\16\1\15\1\20"+
-    "\1\22\10\0\1\14\12\0\1\21\1\23\1\17\1\0\1\25\1\0"+
-    "\1\24\2\0\1\16\1\15\1\20\1\22\10\0\1\14\102\0\1\4"+
-    "\3\0\1\5\17\0\1\3\16\0\1\1\20\0\1\3\16\0\1\1"+
-    "\1\2\170\0\1\2\ufe87\0";
-
-  /** 
-   * 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 = 1000;
-	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 */
-	  	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 XMLHeadTokenizer(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 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 [] 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 < 128) {
-      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;
-
-
-    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_forAction: {
-        while (true) {
-
-          yy_input = yy_advance();
-
-          if ( yy_input == YYEOF ) break yy_forAction;
-
-          yy_input = yycmap[yy_input];
-
-          boolean yy_isFinal = false;
-          boolean yy_noLookAhead = false;
-
-          yy_forNext: { switch (yy_state) {
-            case 0:
-              switch (yy_input) {
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 7; break yy_forNext;
-              }
-
-            case 1:
-              switch (yy_input) {
-                case 1: yy_isFinal = true; yy_state = 8; break yy_forNext;
-                case 2: yy_isFinal = true; yy_state = 9; break yy_forNext;
-                case 3: yy_isFinal = true; yy_state = 10; break yy_forNext;
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 11; break yy_forNext;
-                case 10: yy_isFinal = true; yy_state = 12; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 7; break yy_forNext;
-              }
-
-            case 2:
-              switch (yy_input) {
-                case 11: yy_isFinal = true; yy_state = 13; break yy_forNext;
-                case 15: yy_isFinal = true; yy_state = 14; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 7; break yy_forNext;
-              }
-
-            case 3:
-              switch (yy_input) {
-                case 6: 
-                case 9: yy_isFinal = true; yy_state = 16; break yy_forNext;
-                case 7: yy_isFinal = true; yy_state = 17; break yy_forNext;
-                case 23: yy_isFinal = true; yy_noLookAhead = true; yy_state = 18; break yy_forNext;
-                case 24: yy_isFinal = true; yy_noLookAhead = true; yy_state = 19; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 15; break yy_forNext;
-              }
-
-            case 4:
-              switch (yy_input) {
-                case 7: 
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 21; break yy_forNext;
-                case 11: yy_isFinal = true; yy_state = 22; break yy_forNext;
-                case 23: yy_isFinal = true; yy_noLookAhead = true; yy_state = 23; break yy_forNext;
-                case 24: yy_isFinal = true; yy_state = 24; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 20; break yy_forNext;
-              }
-
-            case 5:
-              switch (yy_input) {
-                case 7: 
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 21; break yy_forNext;
-                case 24: yy_isFinal = true; yy_state = 25; break yy_forNext;
-                case 25: yy_isFinal = true; yy_state = 26; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 20; break yy_forNext;
-              }
-
-            case 6:
-              switch (yy_input) {
-                case 11: yy_isFinal = true; yy_state = 26; break yy_forNext;
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 27; break yy_forNext;
-                case 23: yy_isFinal = true; yy_noLookAhead = true; yy_state = 28; break yy_forNext;
-                case 24: yy_isFinal = true; yy_state = 29; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 20; break yy_forNext;
-              }
-
-            case 8:
-              switch (yy_input) {
-                case 2: yy_isFinal = true; yy_noLookAhead = true; yy_state = 30; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 9:
-              switch (yy_input) {
-                case 1: yy_isFinal = true; yy_noLookAhead = true; yy_state = 31; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 10:
-              switch (yy_input) {
-                case 4: yy_state = 32; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 11:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_state = 33; break yy_forNext;
-                case 10: yy_state = 34; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 12:
-              switch (yy_input) {
-                case 11: yy_state = 35; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 13:
-              switch (yy_input) {
-                case 22: yy_isFinal = true; yy_noLookAhead = true; yy_state = 36; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 14:
-              switch (yy_input) {
-                case 16: yy_state = 37; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 16:
-              switch (yy_input) {
-                case 6: 
-                case 9: yy_isFinal = true; yy_state = 16; break yy_forNext;
-                case 7: yy_state = 38; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 15; break yy_forNext;
-              }
-
-            case 17:
-              switch (yy_input) {
-                case 6: 
-                case 9: yy_isFinal = true; yy_state = 16; break yy_forNext;
-                case 7: yy_state = 38; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 15; break yy_forNext;
-              }
-
-            case 22:
-              switch (yy_input) {
-                case 22: yy_isFinal = true; yy_noLookAhead = true; yy_state = 39; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 24:
-              switch (yy_input) {
-                case 10: yy_state = 40; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 25:
-              switch (yy_input) {
-                case 10: yy_state = 40; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 26:
-              switch (yy_input) {
-                case 22: yy_isFinal = true; yy_noLookAhead = true; yy_state = 41; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 29:
-              switch (yy_input) {
-                case 10: yy_state = 40; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 32:
-              switch (yy_input) {
-                case 5: yy_isFinal = true; yy_noLookAhead = true; yy_state = 42; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 33:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_state = 33; break yy_forNext;
-                case 10: yy_state = 34; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 34:
-              switch (yy_input) {
-                case 11: yy_state = 35; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 35:
-              switch (yy_input) {
-                case 12: yy_state = 43; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 37:
-              switch (yy_input) {
-                case 17: yy_state = 44; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 38:
-              switch (yy_input) {
-                case 6: 
-                case 9: yy_isFinal = true; yy_state = 16; break yy_forNext;
-                case 7: yy_state = 38; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 15; break yy_forNext;
-              }
-
-            case 40:
-              switch (yy_input) {
-                case 24: yy_isFinal = true; yy_noLookAhead = true; yy_state = 21; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 43:
-              switch (yy_input) {
-                case 13: yy_state = 45; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 44:
-              switch (yy_input) {
-                case 18: yy_state = 46; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 45:
-              switch (yy_input) {
-                case 14: yy_state = 47; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 46:
-              switch (yy_input) {
-                case 19: yy_state = 48; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 47:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 49; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 48:
-              switch (yy_input) {
-                case 20: yy_state = 50; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 49:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 49; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 50:
-              switch (yy_input) {
-                case 16: yy_state = 51; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 51:
-              switch (yy_input) {
-                case 21: yy_state = 52; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 52:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_state = 52; break yy_forNext;
-                case 8: yy_isFinal = true; yy_state = 53; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 53:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 53; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            default:
-              yy_ScanError(YY_ILLEGAL_STATE);
-              break;
-          } }
-
-          if ( yy_isFinal ) {
-            yy_action = yy_state; 
-            yy_markedPos = yy_currentPos; 
-            if ( yy_noLookAhead ) break yy_forAction;
-          }
-
-        }
-      }
-
-
-      switch (yy_action) {    
-
-        case 25: 
-          {  popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; }
-        case 55: break;
-        case 21: 
-          {  yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 56: break;
-        case 15: 
-        case 16: 
-          {  yypushback(1); yybegin(UnDelimitedString); string.setLength(0); }
-        case 57: break;
-        case 28: 
-        case 29: 
-          {  yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue; }
-        case 58: break;
-        case 39: 
-          {  yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 59: break;
-        case 41: 
-          {  yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 60: break;
-        case 7: 
-        case 8: 
-        case 9: 
-        case 10: 
-        case 11: 
-        case 12: 
-        case 13: 
-        case 14: 
-        case 17: 
-          { if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;} }
-        case 61: break;
-        case 30: 
-          { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16BE;} }
-        case 62: break;
-        case 31: 
-          { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16LE;} }
-        case 63: break;
-        case 42: 
-          { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF83ByteBOM;} }
-        case 64: break;
-        case 49: 
-          { if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;} }
-        case 65: break;
-        case 36: 
-          { yybegin(YYINITIAL); hasMore = false; return XMLHeadTokenizerConstants.XMLDeclEnd; }
-        case 66: break;
-        case 53: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding; }
-        case 67: break;
-        case 23: 
-          {  popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;  }
-        case 68: break;
-        case 20: 
-        case 22: 
-        case 24: 
-        case 26: 
-          {  string.append( yytext() );  }
-        case 69: break;
-        case 19: 
-          {  yybegin(SQ_STRING); string.setLength(0);  }
-        case 70: break;
-        case 18: 
-          {  yybegin(DQ_STRING); string.setLength(0);  }
-        case 71: break;
-        case 27: 
-          {  yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue;  }
-        case 72: break;
-        default: 
-          if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
-            yy_atEOF = true;
-            yy_do_eof();
-              { hasMore = false; return EncodingParserConstants.EOF; }
-          } 
-          else {
-            yy_ScanError(YY_NO_MATCH);
-          }
-      }
-    }
-  }    
-
-  /**
-   * Runs the scanner on input files.
-   *
-   * This main method is the debugging routine for the scanner.
-   * It prints each returned token to System.out until the end of
-   * file is reached, or an error occured.
-   *
-   * @param argv   the command line, contains the filenames to run
-   *               the scanner on.
-   */
-  public static void main(String argv[]) {
-    for (int i = 0; i < argv.length; i++) {
-      XMLHeadTokenizer scanner = null;
-      try {
-        scanner = new XMLHeadTokenizer( new java.io.FileReader(argv[i]) );
-      }
-      catch (java.io.FileNotFoundException e) {
-        System.out.println("File not found : \""+argv[i]+"\"");
-        System.exit(1);
-      }
-      catch (java.io.IOException e) {
-        System.out.println("Error opening file \""+argv[i]+"\"");
-        System.exit(1);
-      }
-      catch (ArrayIndexOutOfBoundsException e) {
-        System.out.println("Usage : java XMLHeadTokenizer <inputfile>");
-        System.exit(1);
-      }
-
-      try {
-        do {
-          System.out.println(scanner.primGetNextToken());
-        } while (!scanner.yy_atEOF);
-
-      }
-      catch (java.io.IOException e) {
-        System.out.println("An I/O error occured while scanning :");
-        System.out.println(e);
-        System.exit(1);
-      }
-      catch (Exception e) {
-        e.printStackTrace();
-        System.exit(1);
-      }
-    }
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizerGenJava.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizerGenJava.cmd
deleted file mode 100644
index 7ec1c7b..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizerGenJava.cmd
+++ /dev/null
@@ -1,28 +0,0 @@
-@echo on

-

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

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

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

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

-

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

-set MAIN_NAME=XMLHeadTokenizer

-

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

-rem set PACKAGE_DIR=com\ibm\sse\model\xml\encoding\

-

-set PROJECT_SRC=\org.eclipse.wst.common.encoding.contentspecific\src\

-set PACKAGE_DIR=com\ibm\encoding\resource\contentspecific\xml\

-

-

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

-set JAVA_FILE=%MAIN_NAME%.java

-set JFLEX_RULES=%MAIN_NAME%.jflex

-set SKELETON_FILE=%MAIN_NAME%.skeleton

-

-IF EXIST %JAVA_FILE% del %JAVA_FILE%

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

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

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

-

-pause

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/jflexerr.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/jflexerr.txt
deleted file mode 100644
index e69de29..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/jflexerr.txt
+++ /dev/null
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/jflexout.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/jflexout.txt
deleted file mode 100644
index 316c32e..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/jflexout.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Reading "XMLHeadTokenizer.jflex"
-
-Warning : Macro "SpaceChar" has been declared but never used.
-Constructing NFA : 358 states in NFA
-Converting NFA to DFA : 
-...................................................................
-79 states before minimization, 54 states in minimized DFA
-Writing code to "XMLHeadTokenizer.java"
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/JSModel/build.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/JSModel/build.txt
deleted file mode 100644
index 789cf67..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/JSModel/build.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-Do not check in classes generated by sablecc.  The classes already checked in are enhanced by hand in several ways and rebuilding from the grammar will cause the those hand made changes to be lost.   If you need to rebuild from the grammar, you'll need to *merge* the generated classes with the classes we already have checked in.  I suggest you build first without any grammar changes so that you can see what was generated before we made our changes.  This will allow you to do a three way merge.
-
-I've included the sablecc build that I used here.
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/JSModel/ecmalexeronly.sablegrammar b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/JSModel/ecmalexeronly.sablegrammar
deleted file mode 100644
index bf0b685..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/JSModel/ecmalexeronly.sablegrammar
+++ /dev/null
@@ -1,676 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

- * This file is part of Scriptonite.                               *

- * See the file "Scriptonite-LICENSE" for Copyright information    *

- * and the terms and conditions for copying, distribution and      *

- * modification of Scriptonite.                                    *

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

-

-/**

- * Throughout this file reference is made to [ECMA-262]. This is the Standard

- * ECMA-262, ECMAScript Language Specification, 3rd Edition dated December 99.

- * A Portable Document Format (PDF) version is included in the Scriptonite

- * distribution (in scriptonite/docs/).

- *

- * [ECMA-262] refers to the UNICODE character chart. This implementation uses

- * the UNICODE 3.0 Character Chart, available from www.unicode.org at

- * <ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData-Latest.txt>.

- */

-Package com.ibm.sed.jsparser;

-

-Helpers

-   /**

-    * 6. Source Text. [ECMA-262] p. 10.

-    */

-   source_character = [0x0000..0xFFFF];

-

-   /**

-    * 7.2. White Space. [ECMA-262] pp. 11-12.

-    */

-   tab =  0x0009;

-   vt =   0x000B;

-   ff =   0x000C;

-   sp =   0x0020;

-   nbsp = 0x00A0;

-   usp =  0x1680  // OGHAM SPACE MARK

-      |   0x2000  // EN QUAD

-      |   0x2001  // EM QUAD

-      |   0x2002  // EN SPACE

-      |   0x2003  // EM SPACE

-      |   0x2004  // THREE-PER-EM SPACE

-      |   0x2005  // FOUR-PER-EM SPACE

-      |   0x2006  // SIX-PER-EM SPACE

-      |   0x2007  // FIGURE SPACE

-      |   0x2008  // PUNCTUATION SPACE

-      |   0x2009  // THIN SPACE

-      |   0x200A  // HAIR SPACE

-      |   0x200B  // ZERO WIDTH SPACE

-      |   0x202F  // NARROW NO-BREAK SPACE

-      |   0x3000  // IDEOGRAPHIC SPACE

-      ;

-

-   simple_white_space = tab | vt | ff | sp | nbsp | usp;

-

-   /**

-    *  7.3. Line Terminators. [ECMA-262] p. 12.

-    */

-   lf = 0x000A; // Line Feed

-   cr = 0x000D; // Carriage Return

-   ls = 0x2028; // Line separator

-   ps = 0x2029; // Paragraph separator

-   

-   line_terminator = [lf + [cr + [ls + ps]]];

-

-   non_terminator = [source_character - line_terminator];

-

-   /**

-    * 7.2. Comments. [ECMA-262] pp. 12-13.

-    */

-/**

-redone below by jlc

-   multi_line_comment =

-        '/*' '*'* ([source_character - ['/' + '*']] [source_character - '*']* '*'*)* '*' '/';

-

-   multi_line_comment_no_lt =

-        '/*' '*'* ([non_terminator - ['/' + '*']] [non_terminator - '*']* '*'*)* '*' '/';

-*/        

-   multi_line_comment =

-        '/*' '*'* ([source_character - ['/' + '*']] [source_character - '*']* '*'*)* '*' '/'

-       | '/**' '/'

-       ; 

-

-   multi_line_comment_no_lt =

-        '/*' '*'* ([non_terminator - ['/' + '*']] [non_terminator - '*']* '*'*)* '*/'

-       | '/**' '/'

-       ; 

-

-   multi_line_comment_unterminated =

-        '/*' '*'* ([source_character - ['/' + '*']] [source_character - '*']* '*'*)* 

-        ;

-

-   single_line_comment = '//' non_terminator*;

-

-   comment =

-        multi_line_comment_no_lt

-      | multi_line_comment

-      | single_line_comment

-      ;

-

-   /**

-    * UnicodeLetter. [ECMA-262] p. 15.

-    * any character in the Unicode categories "Uppercase letter (Lu)",

-    * "Lowercase letter (Ll)", "Titlecase letter (Lt)", "Modifier letter

-    * (Lm)", "Other letter (Lo)", or "Letter number (Nl)".

-    */

-   unicode_letter =

-        [0x0041..0x005A] | [0x0061..0x007A] |  0x00AA          |  0x00B5

-      |  0x00BA          | [0x00C0..0x00D6] | [0x00D8..0x00F6] | [0x00F8..0x021F]

-      | [0x0222..0x0233] | [0x0250..0x02AD] | [0x02B0..0x02B8] | [0x02BB..0x02C1]

-      | [0x02D0..0x02D1] | [0x02E0..0x02E4] |  0x02EE          |  0x037A

-      |  0x0386          | [0x0388..0x038A] |  0x038C          | [0x038E..0x03A1]

-      | [0x03A3..0x03CE] | [0x03D0..0x03D7] | [0x03DA..0x03F3] | [0x0400..0x0481]

-      | [0x048C..0x04C4] | [0x04C7..0x04C8] | [0x04CB..0x04CC] | [0x04D0..0x04F5]

-      | [0x04F8..0x04F9] | [0x0531..0x0556] |  0x0559          | [0x0561..0x0587]

-      | [0x05D0..0x05EA] | [0x05F0..0x05F2] | [0x0621..0x063A] | [0x0640..0x064A]

-      | [0x0671..0x06D3] |  0x06D5          | [0x06E5..0x06E6] | [0x06FA..0x06FC]

-      |  0x0710          | [0x0712..0x072C] | [0x0780..0x07A5] | [0x0905..0x0939]

-      |  0x093D          |  0x0950          | [0x0958..0x0961] | [0x0985..0x098C]

-      | [0x098F..0x0990] | [0x0993..0x09A8] | [0x09AA..0x09B0] |  0x09B2

-      | [0x09B6..0x09B9] | [0x09DC..0x09DD] | [0x09DF..0x09E1] | [0x09F0..0x09F1]

-      | [0x0A05..0x0A0A] | [0x0A0F..0x0A10] | [0x0A13..0x0A28] | [0x0A2A..0x0A30]

-      | [0x0A32..0x0A33] | [0x0A35..0x0A36] | [0x0A38..0x0A39] | [0x0A59..0x0A5C]

-      |  0x0A5E          | [0x0A72..0x0A74] | [0x0A85..0x0A8B] |  0x0A8D

-      | [0x0A8F..0x0A91] | [0x0A93..0x0AA8] | [0x0AAA..0x0AB0] | [0x0AB2..0x0AB3]

-      | [0x0AB5..0x0AB9] |  0x0ABD          |  0x0AD0          |  0x0AE0

-      | [0x0B05..0x0B0C] | [0x0B0F..0x0B10] | [0x0B13..0x0B28] | [0x0B2A..0x0B30]

-      | [0x0B32..0x0B33] | [0x0B36..0x0B39] |  0x0B3D          | [0x0B5C..0x0B5D]

-      | [0x0B5F..0x0B61] | [0x0B85..0x0B8A] | [0x0B8E..0x0B90] | [0x0B92..0x0B95]

-      | [0x0B99..0x0B9A] |  0x0B9C          | [0x0B9E..0x0B9F] | [0x0BA3..0x0BA4]

-      | [0x0BA8..0x0BAA] | [0x0BAE..0x0BB5] | [0x0BB7..0x0BB9] | [0x0C05..0x0C0C]

-      | [0x0C0E..0x0C10] | [0x0C12..0x0C28] | [0x0C2A..0x0C33] | [0x0C35..0x0C39]

-      | [0x0C60..0x0C61] | [0x0C85..0x0C8C] | [0x0C8E..0x0C90] | [0x0C92..0x0CA8]

-      | [0x0CAA..0x0CB3] | [0x0CB5..0x0CB9] |  0x0CDE          | [0x0CE0..0x0CE1]

-      | [0x0D05..0x0D0C] | [0x0D0E..0x0D10] | [0x0D12..0x0D28] | [0x0D2A..0x0D39]

-      | [0x0D60..0x0D61] | [0x0D85..0x0D96] | [0x0D9A..0x0DB1] | [0x0DB3..0x0DBB]

-      |  0x0DBD          | [0x0DC0..0x0DC6] | [0x0E01..0x0E30] | [0x0E32..0x0E33]

-      | [0x0E40..0x0E46] | [0x0E81..0x0E82] |  0x0E84          | [0x0E87..0x0E88]

-      |  0x0E8A          |  0x0E8D          | [0x0E94..0x0E97] | [0x0E99..0x0E9F]

-      | [0x0EA1..0x0EA3] |  0x0EA5          |  0x0EA7          | [0x0EAA..0x0EAB]

-      | [0x0EAD..0x0EB0] | [0x0EB2..0x0EB3] | [0x0EBD..0x0EC4] |  0x0EC6

-      | [0x0EDC..0x0EDD] |  0x0F00          | [0x0F40..0x0F6A] | [0x0F88..0x0F8B]

-      | [0x1000..0x1021] | [0x1023..0x1027] | [0x1029..0x102A] | [0x1050..0x1055]

-      | [0x10A0..0x10C5] | [0x10D0..0x10F6] | [0x1100..0x1159] | [0x115F..0x11A2]

-      | [0x11A8..0x11F9] | [0x1200..0x1206] | [0x1208..0x1246] |  0x1248

-      | [0x124A..0x124D] | [0x1250..0x1256] |  0x1258          | [0x125A..0x125D]

-      | [0x1260..0x1286] |  0x1288          | [0x128A..0x128D] | [0x1290..0x12AE]

-      |  0x12B0          | [0x12B2..0x12B5] | [0x12B8..0x12BE] |  0x12C0

-      | [0x12C2..0x12C5] | [0x12C8..0x12CE] | [0x12D0..0x12D6] | [0x12D8..0x12EE]

-      | [0x12F0..0x130E] |  0x1310          | [0x1312..0x1315] | [0x1318..0x131E]

-      | [0x1320..0x1346] | [0x1348..0x135A] | [0x13A0..0x13B0] | [0x13B1..0x13F4]

-      | [0x1401..0x1676] | [0x1681..0x169A] | [0x16A0..0x16EA] | [0x1780..0x17B3]

-      | [0x1820..0x1877] | [0x1880..0x18A8] | [0x1E00..0x1E9B] | [0x1EA0..0x1EE0]

-      | [0x1EE1..0x1EF9] | [0x1F00..0x1F15] | [0x1F18..0x1F1D] | [0x1F20..0x1F39]

-      | [0x1F3A..0x1F45] | [0x1F48..0x1F4D] | [0x1F50..0x1F57] |  0x1F59

-      |  0x1F5B          |  0x1F5D          | [0x1F5F..0x1F7D] | [0x1F80..0x1FB4]

-      | [0x1FB6..0x1FBC] |  0x1FBE          | [0x1FC2..0x1FC4] | [0x1FC6..0x1FCC]

-      | [0x1FD0..0x1FD3] | [0x1FD6..0x1FDB] | [0x1FE0..0x1FEC] | [0x1FF2..0x1FF4]

-      | [0x1FF6..0x1FFC] |  0x207F          |  0x2102          |  0x2107

-      | [0x210A..0x2113] |  0x2115          | [0x2119..0x211D] |  0x2124

-      |  0x2126          |  0x2128          | [0x212A..0x212D] | [0x212F..0x2131]

-      | [0x2133..0x2139] | [0x2160..0x2183] | [0x3005..0x3007] | [0x3021..0x3029]

-      | [0x3031..0x3035] | [0x3038..0x303A] | [0x3041..0x3094] | [0x309D..0x309E]

-      | [0x30A1..0x30FA] | [0x30FC..0x30FE] | [0x3105..0x312C] | [0x3131..0x318E]

-      | [0x31A0..0x31B7] |  0x3400          |  0x4DB5          |  0x4E00

-      |  0x9FA5          | [0xA000..0xA48C] |  0xAC00          |  0xD7A3

-      | [0xF900..0xFA2D] | [0xFB00..0xFB06] | [0xFB13..0xFB17] |  0xFB1D

-      | [0xFB1F..0xFB28] | [0xFB2A..0xFB36] | [0xFB38..0xFB3C] |  0xFB3E

-      | [0xFB40..0xFB41] | [0xFB43..0xFB44] | [0xFB46..0xFBB1] | [0xFBD3..0xFD3D]

-      | [0xFD50..0xFD8F] | [0xFD92..0xFDC7] | [0xFDF0..0xFDFB] | [0xFE70..0xFE72]

-      |  0xFE74          | [0xFE76..0xFEFC] | [0xFF21..0xFF3A] | [0xFF41..0xFF5A]

-      | [0xFF66..0xFFBE] | [0xFFC2..0xFFC7] | [0xFFCA..0xFFCF] | [0xFFD2..0xFFD7]

-      | [0xFFDA..0xFFDC]

-      ;

-

-   /**

-    * UnicodeCombiningMark. [ECMA-262] p. 15.

-    * any character in the Unicode categories "Non-spacing mark (Mn)" or

-    * "Combining spacing mark (Mc)".

-    */

-   unicode_combining_mark =

-        [0x0300..0x034E] | [0x0360..0x0362] | [0x0483..0x0486] | [0x0591..0x05A1]

-      | [0x05A3..0x05B9] | [0x05BB..0x05BD] |  0x05BF          | [0x05C1..0x05C2]

-      |  0x05C4          | [0x064B..0x0655] |  0x0670          | [0x06D6..0x06DC]

-      | [0x06DF..0x06E4] | [0x06E7..0x06E8] | [0x06EA..0x06ED] |  0x0711

-      | [0x0730..0x074A] | [0x07A6..0x07B0] | [0x0901..0x0903] |  0x093C

-      | [0x093E..0x094D] | [0x0951..0x0954] | [0x0962..0x0963] | [0x0981..0x0983]

-      | [0x09BC..0x09C4] | [0x09C7..0x09C8] | [0x09CB..0x09CD] |  0x09D7

-      | [0x09E2..0x09E3] |  0x0A02          |  0x0A3C          | [0x0A3E..0x0A42]

-      | [0x0A47..0x0A48] | [0x0A4B..0x0A4D] | [0x0A70..0x0A71] | [0x0A81..0x0A83]

-      |  0x0ABC          | [0x0ABE..0x0AC5] | [0x0AC7..0x0AC9] | [0x0ACB..0x0ACD]

-      | [0x0B01..0x0B03] |  0x0B3C          | [0x0B3E..0x0B43] | [0x0B47..0x0B48]

-      | [0x0B4B..0x0B4D] | [0x0B56..0x0B57] | [0x0B82..0x0B83] | [0x0BBE..0x0BC2]

-      | [0x0BC6..0x0BC8] | [0x0BCA..0x0BCD] |  0x0BD7          | [0x0C01..0x0C03]

-      | [0x0C3E..0x0C44] | [0x0C46..0x0C48] | [0x0C4A..0x0C4D] | [0x0C55..0x0C56]

-      | [0x0C82..0x0C83] | [0x0CBE..0x0CC4] | [0x0CC6..0x0CC8] | [0x0CCA..0x0CCD]

-      | [0x0CD5..0x0CD6] | [0x0D02..0x0D03] | [0x0D3E..0x0D43] | [0x0D46..0x0D48]

-      | [0x0D4A..0x0D4D] |  0x0D57          | [0x0D82..0x0D83] |  0x0DCA

-      | [0x0DCF..0x0DD4] |  0x0DD6          | [0x0DD8..0x0DDF] | [0x0DF2..0x0DF3]

-      |  0x0E31          | [0x0E34..0x0E3A] | [0x0E47..0x0E4E] |  0x0EB1

-      | [0x0EB4..0x0EB9] | [0x0EBB..0x0EBC] | [0x0EC8..0x0ECD] | [0x0F18..0x0F19]

-      |  0x0F35          |  0x0F37          |  0x0F39          | [0x0F3E..0x0F3F]

-      | [0x0F71..0x0F84] | [0x0F86..0x0F87] | [0x0F90..0x0F97] | [0x0F99..0x0FBC]

-      |  0x0FC6          | [0x102C..0x1032] | [0x1036..0x1039] | [0x1056..0x1059]

-      | [0x17B4..0x17D3] |  0x18A9          | [0x20D0..0x20DC] |  0x20E1

-      | [0x302A..0x302F] | [0x3099..0x309A] |  0xFB1E          | [0xFE20..0xFE23]

-      ;

-

-   /**

-    * UnicodeDigit. [ECMA-262] p. 15.

-    * any character in the Unicode category "Decimal number (Nd)".

-    */

-   unicode_digit =

-        [0x0030..0x0039] | [0x0660..0x0669] | [0x06F0..0x06F9] | [0x0966..0x096F]

-      | [0x09E6..0x09EF] | [0x0A66..0x0A6F] | [0x0AE6..0x0AEF] | [0x0B66..0x0B6F]

-      | [0x0BE7..0x0BEF] | [0x0C66..0x0C6F] | [0x0CE6..0x0CEF] | [0x0D66..0x0D6F]

-      | [0x0E50..0x0E59] | [0x0ED0..0x0ED9] | [0x0F20..0x0F29] | [0x1040..0x1049]

-      | [0x1369..0x1371] | [0x17E0..0x17E9] | [0x1810..0x1819] | [0xFF10..0xFF19]

-      ;

-

-   /**

-    * UnicodeConnectorPunctuation. [ECMA-262] p. 15.

-    * any character in the Unicode category "Connector punctuation (Pc)"

-    */

-   unicode_connector_punctuation =

-         0x005F          | [0x203F..0x2040] |  0x30FB          | [0xFE33..0xFE34]

-      | [0xFE4D..0xFE4F] |  0xFF3F          |  0xFF65

-      ;

-

-   /**

-    * UnicodeEscapeSequence. [ECMA-262] p. 19.

-    */

-   hex_digit = [['0'..'9'] + [['a'..'f'] + ['A'..'F']]];

-

-   unicode_escape_sequence = 'u' hex_digit hex_digit hex_digit hex_digit;

-

-   /**

-    * 7.6. Identifier. [ECMA-262] pp. 14-15.

-    */

-   identifier_start =

-        unicode_letter

-      | '$'

-      | '_'

-      | '\' unicode_escape_sequence

-      ;

-

-   identifier_part =

-        identifier_start

-      | unicode_combining_mark

-      | unicode_digit

-      | unicode_connector_punctuation

-      | '\' unicode_escape_sequence

-      ;

-

-   /**

-    * 7.8.3. Numeric Literals. [ECMA-262] pp. 16-17.

-    */

-   decimal_digit = ['0'..'9'];

-

-   non_zero_digit = ['1'..'9'];

-

-   exponent_part = ('e' | 'E') ('+' | '-')? ['0'..'9']+;

-

-   decimal_integer_literal = '0' | ['1'..'9'] ['0'..'9']*;

-    

-   /**

-    * String Literals. [ECMA-262] pp. 18-19.

-    */

-   single_escape_character =

-        [''' + ['"' + ['\' + ['b' + ['f' + ['n' + ['r' + ['t' + 'v']]]]]]]];

-

-   escape_character =

-        [single_escape_character + [decimal_digit + ['x' + 'u']]];

-

-   non_escape_character =

-        [source_character - [escape_character + line_terminator]];

-

-   character_escape_sequence =

-        single_escape_character

-      | non_escape_character

-      ;

-

-   escape_sequence =

-        character_escape_sequence

-      | '0' // TODO: [lookahead not a DecimalDigit]

-      | 'x' hex_digit hex_digit

-      | unicode_escape_sequence

-      ;

-

-   double_string_character =

-        [source_character - ['"' + ['\' + line_terminator]]]

-      | '\' escape_sequence

-      ;

-

-   single_string_character =

-        [source_character - [''' + ['\' + line_terminator]]]

-      | '\' escape_sequence

-      ;

-

-   /**

-    * 7.8.5. Regular Expression Literals. [ECMA-262] pp. 20-21.

-    */

-   regular_expression_char =

-        [non_terminator - ['\' + '/']]

-      | '\' non_terminator

-      ;

-

-   regular_expression_first_char =

-        [non_terminator - ['*' + ['\' + '/']]]

-      | '\' non_terminator

-      ;

-

-   regular_expression_body =

-        regular_expression_first_char regular_expression_char*;

-

-

-//   white_space_no_lt = (simple_white_space | single_line_comment | multi_line_comment_no_lt)+;

-//   white_space =       (simple_white_space | comment | line_terminator)+;

-   white_space =       (simple_white_space | line_terminator)+;

-

-

-//States

-//   normal,

-//   nolt;

-

-

-Tokens

-//          blank_no_lt = (simple_white_space | single_line_comment | multi_line_comment_no_lt)+;

-//   blank =       (simple_white_space | comment | line_terminator)+;

-

-   blank =       (simple_white_space | line_terminator)+;

-   commenttok = comment;

-   

-/* infinitecomment must appear after commmenttok to insure that actual comments are recognized

-in preferentially.

-*/

-   unterminated_comment = multi_line_comment_unterminated;

-

-   /**

-    * 7.5.2. Keywords. [ECMA-262] p.12-13.

-    *

-    * The tokens "continue", "break", "return" and "throw" should trigger

-    * a state change. In this new state, a line terminator shouldn't be

-    * considered a white space. All other tokens are parsed as usual.

-    *

-    * A custom lexer should change the state back to normal as soon as a

-    * non white space token is matched.

-    */

-   /**

-    * 7.5.3. Future Reserved Words. [ECMA-262] p. 14.

-    */

-/**    

-   abstract =     'abstract';

-   enum =         'enum';

-   int =          'int';

-   short =        'short';

-   boolean =      'boolean';

-   export =       'export';

-   interface =    'interface';

-   static =       'static';

-   byte =         'byte';

-   extends =      'extends';

-   long =         'long';

-   super =        'super';

-   char =         'char';

-   final =        'final';

-   native =       'native';

-   synchronized = 'synchronized';

-   clazz =        'class';

-   float =        'float';

-   package =      'package';

-   throws =       'throws';

-   const =        'const';

-   goto =         'goto';

-   private =      'private';

-   transient =    'transient';

-   debugger =     'debugger';

-   implements =   'implements';

-   protected =    'protected';

-   volatile =     'volatile';

-   double =       'double';

-   import =       'import';

-   public =       'public';

-*/

-   

-   /**

-    * 7.8.3. Numeric Literals. [ECMA-262] pp. 16-17.

-    */

-   decimal_literal =

-        ('0' | ['1'..'9'] ['0'..'9']*) '.' ['0'..'9']* exponent_part?

-      | '.' ['0'..'9']+ exponent_part?

-      | ('0' | ['1'..'9'] ['0'..'9']*) exponent_part?

-      ;

-

-   hex_integer_literal = ('0x' | '0X') hex_digit+;

-

-   /**

-    * 7.7. Punctuators. [ECMA-262] p. 15.

-    *

-    * Punctuator.

-    */

-

-   punctuator1 =    

-   '{' |

-   '}' |

-   '(' |

-   ')' |

-   '[' |

-   ']' |

-   '.' |

-   ';' |

-   ',' |

-   '<' |

-   '>' |

-   '<=' |

-   '>=' |

-   '==' |

-   '!=' |

-   '===' |

-   '!==' |

-   '+' |

-   '-' |

-   '*' |

-   '%' |

-   '++' |

-   '--' |

-   '<<' |

-   '>>' |

-   '>>>' |

-   '&' |

-   '|' |

-   '^' |

-   '!' |

-   '~' |

-   '&&' |

-   '||' |

-   '?' |

-   ':' |

-   '=' |

-   '+=' |

-   '-=' |

-   '*=' |

-   '%=' |

-   '<<=' |

-   '>>=' |

-   '>>>=' |

-   '&=' |

-   '|=' |

-   '^=' |

-   '/=' |

-   '/';

-

-/* Trick to handle the special grammar case where incr and decr shouldn't

-be preceeded by a line terminator.  

-

-As blanks are normally ignored, we write a regular expression that will 

-contain the preceeding blanks as part of the token.  Remember that 

-the lexer returns the longest match; a blank followed by ++ or -- is 

-longer than a strait blank.

-

-incr_no_lt is listed first so that it gets precedence over incr, when the

-preceeding whitespace does not contain a line terminator.

-

-a custom lexer will break these tokens in two: 

-blank and [incr/decr][/_no_lt]

-

-*/

-/*

-   incr_no_lt = white_space_no_lt '++';

-   decr_no_lt = white_space_no_lt '--';

-   

-   incr =       white_space '++';

-   decr =       white_space '--';

-*/

-

-/*

-   lshift =               '<<';

-   rsignedshift =         '>>';

-   runsignedshift =       '>>>';

-   bit_and =              '&';

-   bit_or =               '|';

-   xor =                  '^';

-   bang =                 '!';

-   tilde =                '~';

-   sc_and =               '&&';

-   sc_or =                '||';

-   hook =                 '?';

-   colon =                ':';

-   assign =               '=';

-   plusassign =           '+=';

-   minusassign =          '-=';

-   starassign =           '*=';

-   remassign =            '%=';

-   lshiftassign =         '<<=';

-   rsignedshiftassign =   '>>=';

-   runsignedshiftassign = '>>>=';

-   andassign =            '&=';

-   orassign =             '|=';

-   xorassign =            '^=';

-   

-   //

-   // DivPunctuator.

-   //

-   slashassign = '/=';

-   slash =       '/';

-*/ 

-    

-   /**

-    * 7.8.4. String Literals. [ECMA-262] pp. 18-19.

-    */

-   string_literal =

-        '"' double_string_character* '"'

-      | ''' single_string_character* '''

-      ;

-

-   unterminated_string_literal =

-        '"' double_string_character* 

-      | ''' single_string_character*

-      ;

-

-   /**

-    * 7.8.5. Regular Expression Literals. [ECMA-262] pp. 20-21.

-    */

-   regular_expression_literal =

-        '/' regular_expression_body '/' identifier_part*;

-

-   /**

-    * 7.6. Identifier. [ECMA-262] pp. 14-15.

-    */

-   identifier = identifier_start identifier_part*;

-   

-   error_char = source_character;

-

-

-Ignored Tokens

-//   blank_no_lt,

-   blank;

-

-

-/*

-   // -----------------------------------------------------------------------

-   // for testing the Lexer only.

-   // -----------------------------------------------------------------------

-

-   script = script_token*;

-

-   script_token =

-        {res} reserved_word

-      | {id}  identifier

-      | {op}  punctuator

-      | {num} numeric_literal

-      | {str} string_literal

-      ;

-

-   reserved_word =

-        {keyword} keyword

-      | {future}  future_reserved_word

-      | {null}    null

-      | {boolean} boolean_literal

-      ;

-

-   keyword =

-        {break}      break

-      | {else}       else

-      | {new}        new

-      | {var}        var

-      | {case}       case

-      | {finally}    finally

-      | {return}     return

-      | {void}       void

-      | {catch}      catch

-      | {for}        for

-      | {switch}     switch

-      | {while}      while

-      | {continue}   continue

-      | {function}   function

-      | {this}       this

-      | {with}       with

-      | {default}    default

-      | {if}         if

-      | {throw}      throw

-      | {delete}     delete

-      | {in}         in

-      | {try}        try

-      | {do}         do

-      | {instanceof} instanceof

-      | {typeof}     typeof

-      ;

-   

-   future_reserved_word =

-        {abstract}     abstract

-      | {enum}         enum

-      | {int}          int

-      | {short}        short

-      | {boolean}      boolean

-      | {export}       export

-      | {interface}    interface

-      | {static}       static

-      | {byte}         byte

-      | {extends}      extends

-      | {long}         long

-      | {super}        super

-      | {char}         char

-      | {final}        final

-      | {native}       native

-      | {synchronized} synchronized

-      | {class}        clazz

-      | {float}        float

-      | {package}      package

-      | {throws}       throws

-      | {const}        const

-      | {goto}         goto

-      | {private}      private

-      | {transient}    transient

-      | {debugger}     debugger

-      | {implements}   implements

-      | {protected}    protected

-      | {volatile}     volatile

-      | {double}       double

-      | {import}       import

-      | {public}       public

-      ;

-

-   punctuator =

-        {lbrace}    lbrace

-      | {rbrace}    rbrace

-      | {lparen}    lparen

-      | {rparen}    rparen

-      | {lbracket}  lbracket

-      | {rbracket}  rbracket

-      | {dot}       dot

-      | {semicolon} semicolon

-      | {comma}     comma

-      | {lt}        lt

-      | {gt}        gt

-      | {le}        le

-      | {ge}        ge

-      | {eq}        eq

-      | {ne}        ne

-      | {eqq}       eqq

-      | {neq}       neq

-      | {plus}      plus

-      | {minus}     minus

-      | {star}      star

-      | {rem}       rem

-      |

-        {incr1} incr_no_lt

-      | {decr1} decr_no_lt

-      | {incr2} incr

-      | {decr2} decr

-      |

-        {lshift}    lshift

-      | {rsshift}   rsignedshift

-      | {rushift}   runsignedshift

-      | {band}      bit_and

-      | {bor}       bit_or

-      | {xor}       xor

-      | {bang}      bang

-      | {bno}       tilde

-      | {sand}      sc_and

-      | {sor}       sc_or

-      | {hook}      hook

-      | {colon}     colon

-      | {assign}    assign

-      | {passign}   plusassign

-      | {massign}   minusassign

-      | {aasign}    starassign

-      | {rassign}   remassign

-      | {lsassign}  lshiftassign

-      | {rssassign} rsignedshiftassign

-      | {rusassign} runsignedshiftassign

-      | {andassign} andassign

-      | {orassign}  orassign

-      | {xorassign} xorassign

-      |

-        {slashassign} slashassign

-      | {slash}       slash

-      ;

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

-

-import java.io.CharArrayReader;

-import java.io.IOException;

-import java.util.ArrayList;

-import java.util.List;

-

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

-import org.eclipse.wst.sse.core.css.parser.CSSRegionContexts;

-import org.eclipse.wst.sse.core.css.parser.CSSTextToken;

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

-

-%%

-

-%public

-%class CSSTokenizer

-%implements CSSRegionContexts

-%function primGetNextToken

-%type String

-%char

-%line

-%unicode

-%caseless

-%debug

-%pack

-

-%{

-	private final static String UNDEFINED = "undefined";

-	private String fBufferedContext = null;

-	private int fBufferedStart;

-//	private int fBufferedTextLength;

-	private int fBufferedLength;

-//	private StringBuffer fBufferedText = null;

-	private CSSTextRegionFactory fRegionFactory = CSSTextRegionFactory.getInstance();

-	private int fInitialState = YYINITIAL;

-	public final static int BUFFER_SIZE_NORMAL = 16384;

-	public final static int BUFFER_SIZE_SMALL = 256;

-	private int fInitialBufferSize = BUFFER_SIZE_NORMAL;

-

-	public void setInitialState(int state) {

-		fInitialState = state;

-	}

-	

-	public void setInitialBufferSize(int size) {

-		fInitialBufferSize = size;

-	}

-

-	/* user method */

-  	public final ITextRegion getNextToken() throws IOException {

-		String context;

-		String nextTokenType;

-		boolean spaceFollows;

-//		StringBuffer text;

-		int start;

-		int textLength;

-		int length;

-		if (fBufferedContext != null) {

-			context = fBufferedContext;

-//			text = fBufferedText;

-			start = fBufferedStart;

-			textLength = length = fBufferedLength;

-

-			fBufferedContext = null;

-		} else {

-			context = primGetNextToken();

-//			text = new StringBuffer(yytext());

-			start = yychar;

-			textLength = length = yylength();

-		}

-

-		if (context != null) {

-			if (context == UNDEFINED) {

-				// undef -> concatenate undef's

-				nextTokenType = primGetNextToken();

-				while (nextTokenType == UNDEFINED) {

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

-					textLength += yylength();

-					length = textLength;

-					nextTokenType = primGetNextToken();

-				}

-				fBufferedContext = nextTokenType;

-//				fBufferedText = new StringBuffer(yytext());

-				fBufferedStart = yychar;

-				fBufferedLength = yylength();

-			} else {

-				nextTokenType = null;

-				spaceFollows = false;

-				if (CSSRegionUtil.isDeclarationValueType(context)) { // declaration value can contain VALUE_S

-					nextTokenType = primGetNextToken();

-					spaceFollows = (nextTokenType == CSS_DECLARATION_VALUE_S);

-				} else if (canContainSpace(context)) {

-					nextTokenType = primGetNextToken();

-					spaceFollows = (nextTokenType == CSS_S);

-				}

-				if (nextTokenType != null) { // nextToken is retrieved

-					if (spaceFollows) {

-						// next is space -> append

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

-						length += yylength();

-					} else {

-						// next is NOT space -> push this for next time, return itself

-						fBufferedContext = nextTokenType;

-//						fBufferedText = new StringBuffer(yytext());

-						fBufferedStart = yychar;

-						fBufferedLength = yylength();

-					}

-				}

-			}

-		}

-

-		if (context != null) {

-			if (context == UNDEFINED) {

-				context = CSS_UNKNOWN;

-			}

-			return fRegionFactory.createRegion(context, start, textLength, length);

-		} else {

-			return null;

-		}

-  	}

-

-	/* user method */

-	/* for standalone use */

-  	public final List parseText() throws IOException {

-  		List tokens = new ArrayList();

-

-  		CSSTextToken token;

-		for (String kind = primGetNextToken(); kind != null; kind = primGetNextToken()) {

-			token = new CSSTextToken();

-			token.kind = kind;  				

-			token.start = yychar;

-			token.length = yylength();

-			token.image = yytext();

-			tokens.add(token);

-		}

-

-  		return tokens;

-  	}

-  	

-  	/* user method */

-  	private boolean canContainSpace(String type) {

-  		if (type == CSS_DELIMITER || type == CSS_RBRACE || type == CSS_DECLARATION_DELIMITER) {

-  			return false;

-  		} else {

-  			return true;

-  		}

-  	}

-

-	/* user method */

-	public final int getOffset() {

-		return yychar;

-	}

-	

-	/* user method */

-	public final boolean isEOF() {

-		return yy_atEOF;

-	}

-

-	/* user method */

-	public void reset(char[] charArray) {

-		reset(new CharArrayReader(charArray), 0);

-	}

-

-	/* user method */

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

-		/** the input device */

-		yy_reader = in;

-

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

-		yy_state = 0;

-

-		/** the current lexical state */

-		yy_lexical_state = fInitialState; //YYINITIAL;

-

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

-			the source of the yytext() string */

-		if (yy_buffer.length != fInitialBufferSize) {

-			yy_buffer = new char[fInitialBufferSize];

-		}

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

-

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

-		yy_markedPos = 0;

-

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

-		yy_pushbackPos = 0;

-

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

-		yy_currentPos = 0;

-

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

-		yy_startRead = 0;

-

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

-			from input */

-		yy_endRead = 0;

-

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

-		yyline = 0;

-

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

-		yychar = 0;

-

-		/**

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

-		 * matched text

-		 */

-		yycolumn = 0; 

-

-		/** 

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

-		 */

-		yy_atBOL = false;

-		

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

-		yy_atEOF = false;

-

-		/* user variables */

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

-	}

-

-	/* user method */

-	public CSSTokenizer() {

-		super();

-	}

-

-%}

-

-%state ST_CHARSET_NAME

-%state ST_CHARSET_DELIMITER

-%state ST_IMPORT_URI

-%state ST_IMPORT_MEDIUM

-%state ST_IMPORT_DELIMITER

-%state ST_MEDIA_MEDIUM

-%state ST_MEDIA_DELIMITER

-%state ST_PAGE_PSEUDO_PAGE

-%state ST_PAGE_DELIMITER

-%state ST_FONT_FACE_DELIMITER

-%state ST_SELECTOR

-%state ST_SELECTOR_MODIFIER

-%state ST_SELECTOR_ATTRIBUTE_NAME

-%state ST_SELECTOR_ATTRIBUTE_OPERATOR

-%state ST_SELECTOR_ATTRIBUTE_VALUE

-%state ST_SELECTOR_ATTRIBUTE_END

-%state ST_DECLARATION

-%state ST_DECLARATION_SEPARATOR

-%state ST_DECLARATION_PRE_VALUE

-%state ST_DECLARATION_VALUE

-

-h = [0-9a-f]

-nonascii = [\u0080-\uffff]

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

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

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

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

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

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

-

-ident = {nmstart}{nmchar}*

-name = {nmchar}+

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

-string = {string1}|{string2}

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

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

-w = {s}*

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

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

-

-hash = "#"{name}

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

-function = {ident}"("

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

-

-%%

-

-/*

- * *** global ***

- */

-

-{s}+ { return CSS_S; }

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

-"-->" { return CSS_CDC; }

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

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

-

-//<YYINITIAL> {

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

-//}

-

-/*

- * *** charset rule ***

- * CHARSET_SYM S* STRING S* ';'

- */

-

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

-

-<ST_CHARSET_NAME> {

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

-}

-

-<ST_CHARSET_DELIMITER> {

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

-}

-

-/*

- * *** import rule ***

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

- */

-

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

-

-<ST_IMPORT_URI> {

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

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

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

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

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

-}

-

-<ST_IMPORT_MEDIUM> {

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

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

-}

-

-<ST_IMPORT_DELIMITER> {

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

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

-}

-

-/*

- * *** media rule ***

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

- */

-

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

-

-/* 

- * medium

- * IDENT S*

- */

-<ST_MEDIA_MEDIUM> {

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

-}

-

-<ST_MEDIA_DELIMITER> {

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

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

-}

-

-/*

- * *** page rule **

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

- */

-

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

- 

-/*

- * pseudo_page

- * ':' IDENT

- */

-

-<ST_PAGE_PSEUDO_PAGE> {

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

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

-}

-

-<ST_PAGE_DELIMITER> {

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

-}

-

-/*

- * font-face

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

- */

-

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

-

-<ST_FONT_FACE_DELIMITER> {

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

-}

-

-/*

- * selector

- * simple_selector [ combinator simple_selector ]*

- */

-

-/*

- * simple_selector

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

- */

-

-<YYINITIAL, ST_SELECTOR_MODIFIER, ST_SELECTOR> {

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

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

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

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

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

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

-}

-

-<YYINITIAL, ST_SELECTOR> {

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

-}

-

-<ST_SELECTOR_MODIFIER> {

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

-	// using LOOKAHEAD

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

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

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

-}

-

-/*

- * attrib

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

- */

-

-<ST_SELECTOR_ATTRIBUTE_NAME> {

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

-}

-

-<ST_SELECTOR_ATTRIBUTE_OPERATOR> {

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

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

-}

-

-<ST_SELECTOR_ATTRIBUTE_VALUE> {

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

-}

-

-<ST_SELECTOR_ATTRIBUTE_END> {

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

-}

-

-/*

- * declaration

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

- */

-

-<ST_DECLARATION> {

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

-}

-

-<ST_DECLARATION_SEPARATOR> {

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

-}

-

-<ST_DECLARATION_PRE_VALUE, ST_DECLARATION_VALUE> {

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

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

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

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

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

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

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

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

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

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

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

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

-}

-

-<ST_DECLARATION_VALUE> {

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

-}

-

-<ST_DECLARATION, ST_DECLARATION_SEPARATOR, ST_DECLARATION_PRE_VALUE, ST_DECLARATION_VALUE> {

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

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

-}

-

-

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

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

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

-//	. { return UNDEFINED; }

-//}

-

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

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

-//}

-

-. {

-	return UNDEFINED;

-}

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.cmd
deleted file mode 100644
index 30fce78..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.cmd
+++ /dev/null
@@ -1,7 +0,0 @@
-@echo off

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

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

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

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

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

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

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

-

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

-JAVAOPT=-Xmx470000000

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

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

-

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

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

-

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

-

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

-cp -v CSSTokenizer.java $DESTDIR

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

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/README b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/README
deleted file mode 100644
index 8bbbc73..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/README
+++ /dev/null
@@ -1,11 +0,0 @@
-devel     - the active development environment (sans JDK)

-            - latest version of HTMLTokenizer specification and generated code

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

-              compilation errors

-            - modified skeleton to prevent VM exits on unmatched input

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

-            - active RCS archive

-resources - backup/pristine resources

-            - Unmodified JFlex 1.2.2 download

-            - Separate modifications to the JFlex skeleton

-            - W3C XML recommendation used for several of the HTMLTokenizer rules

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JFlex/COPYRIGHT b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JFlex/COPYRIGHT
deleted file mode 100644
index aad1dec..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JFlex/COPYRIGHT
+++ /dev/null
@@ -1,303 +0,0 @@
-JFlex - Copying, Warranty & License

-

-  

-

-JFlex is free software, published under the terms of the GNU General Public License. 

-

-There is absolutely NO WARRANTY for JFlex, its code and its documentation. 

-  

-The code generated by JFlex inherits the copyright of the specification it

-was produced from. If it was your specification, you may use the generated 

-code without restriction.

-

-  

-

-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

-

-

-

-0.

- This License applies to any program or other work which contains

-a notice placed by the copyright holder saying it may be distributed

-under the terms of this General Public License.  The "Program", below,

-refers to any such program or work, and a "work based on the Program"

-means either the Program or any derivative work under copyright law:

-that is to say, a work containing the Program or a portion of it,

-either verbatim or with modifications and/or translated into another

-language.  (Hereinafter, translation is included without limitation in

-the term "modification".)  Each licensee is addressed as "you".

-

-

-Activities other than copying, distribution and modification are not

-covered by this License; they are outside its scope.  The act of

-running the Program is not restricted, and the output from the Program

-is covered only if its contents constitute a work based on the

-Program (independent of having been made by running the Program).

-Whether that is true depends on what the Program does.

-

-

-

-1.

- You may copy and distribute verbatim copies of the Program's

-source code as you receive it, in any medium, provided that you

-conspicuously and appropriately publish on each copy an appropriate

-copyright notice and disclaimer of warranty; keep intact all the

-notices that refer to this License and to the absence of any warranty;

-and give any other recipients of the Program a copy of this License

-along with the Program.

-

-

-You may charge a fee for the physical act of transferring a copy, and

-you may at your option offer warranty protection in exchange for a fee.

-

-

-2.

- You may modify your copy or copies of the Program or any portion

-of it, thus forming a work based on the Program, and copy and

-distribute such modifications or work under the terms of Section 1

-above, provided that you also meet all of these conditions:

-

-

-

-     a)

-     You must cause the modified files to carry prominent notices

-     stating that you changed the files and the date of any change.

-

-

-     b)

-     You must cause any work that you distribute or publish, that in

-     whole or in part contains or is derived from the Program or any

-     part thereof, to be licensed as a whole at no charge to all third

-     parties under the terms of this License.

-

-

-     c)

-     If the modified program normally reads commands interactively

-     when run, you must cause it, when started running for such

-     interactive use in the most ordinary way, to print or display an

-     announcement including an appropriate copyright notice and a

-     notice that there is no warranty (or else, saying that you provide

-     a warranty) and that users may redistribute the program under

-     these conditions, and telling the user how to view a copy of this

-     License.  (Exception: if the Program itself is interactive but

-     does not normally print such an announcement, your work based on

-     the Program is not required to print an announcement.)

-

-

-These requirements apply to the modified work as a whole.  If

-identifiable sections of that work are not derived from the Program,

-and can be reasonably considered independent and separate works in

-themselves, then this License, and its terms, do not apply to those

-sections when you distribute them as separate works.  But when you

-distribute the same sections as part of a whole which is a work based

-on the Program, the distribution of the whole must be on the terms of

-this License, whose permissions for other licensees extend to the

-entire whole, and thus to each and every part regardless of who wrote it.

-

-

-Thus, it is not the intent of this section to claim rights or contest

-your rights to work written entirely by you; rather, the intent is to

-exercise the right to control the distribution of derivative or

-collective works based on the Program.

-

-

-In addition, mere aggregation of another work not based on the Program

-with the Program (or with a work based on the Program) on a volume of

-a storage or distribution medium does not bring the other work under

-the scope of this License.

-

-

-

-3.

- You may copy and distribute the Program (or a work based on it,

-under Section 2) in object code or executable form under the terms of

-Sections 1 and 2 above provided that you also do one of the following:

-

-

-

-     a)

-     Accompany it with the complete corresponding machine-readable

-     source code, which must be distributed under the terms of Sections

-     1 and 2 above on a medium customarily used for software interchange; or,

-

-

-     b)

-     Accompany it with a written offer, valid for at least three

-     years, to give any third party, for a charge no more than your

-     cost of physically performing source distribution, a complete

-     machine-readable copy of the corresponding source code, to be

-     distributed under the terms of Sections 1 and 2 above on a medium

-     customarily used for software interchange; or,

-

-

-     c)

-     Accompany it with the information you received as to the offer

-     to distribute corresponding source code.  (This alternative is

-     allowed only for noncommercial distribution and only if you

-     received the program in object code or executable form with such

-     an offer, in accord with Subsection b above.)

-

-

-The source code for a work means the preferred form of the work for

-making modifications to it.  For an executable work, complete source

-code means all the source code for all modules it contains, plus any

-associated interface definition files, plus the scripts used to

-control compilation and installation of the executable.  However, as a

-special exception, the source code distributed need not include

-anything that is normally distributed (in either source or binary

-form) with the major components (compiler, kernel, and so on) of the

-operating system on which the executable runs, unless that component

-itself accompanies the executable.

-

-

-If distribution of executable or object code is made by offering

-access to copy from a designated place, then offering equivalent

-access to copy the source code from the same place counts as

-distribution of the source code, even though third parties are not

-compelled to copy the source along with the object code.

-

-

-4.

- You may not copy, modify, sublicense, or distribute the Program

-except as expressly provided under this License.  Any attempt

-otherwise to copy, modify, sublicense or distribute the Program is

-void, and will automatically terminate your rights under this License.

-However, parties who have received copies, or rights, from you under

-this License will not have their licenses terminated so long as such

-parties remain in full compliance.

-

-

-

-5.

- You are not required to accept this License, since you have not

-signed it.  However, nothing else grants you permission to modify or

-distribute the Program or its derivative works.  These actions are

-prohibited by law if you do not accept this License.  Therefore, by

-modifying or distributing the Program (or any work based on the

-Program), you indicate your acceptance of this License to do so, and

-all its terms and conditions for copying, distributing or modifying

-the Program or works based on it.

-

-

-

-6.

- Each time you redistribute the Program (or any work based on the

-Program), the recipient automatically receives a license from the

-original licensor to copy, distribute or modify the Program subject to

-these terms and conditions.  You may not impose any further

-restrictions on the recipients' exercise of the rights granted herein.

-You are not responsible for enforcing compliance by third parties to

-this License.

-

-

-

-7.

- If, as a consequence of a court judgment or allegation of patent

-infringement or for any other reason (not limited to patent issues),

-conditions are imposed on you (whether by court order, agreement or

-otherwise) that contradict the conditions of this License, they do not

-excuse you from the conditions of this License.  If you cannot

-distribute so as to satisfy simultaneously your obligations under this

-License and any other pertinent obligations, then as a consequence you

-may not distribute the Program at all.  For example, if a patent

-license would not permit royalty-free redistribution of the Program by

-all those who receive copies directly or indirectly through you, then

-the only way you could satisfy both it and this License would be to

-refrain entirely from distribution of the Program.

-

-

-If any portion of this section is held invalid or unenforceable under

-any particular circumstance, the balance of the section is intended to

-apply and the section as a whole is intended to apply in other

-circumstances.

-

-

-It is not the purpose of this section to induce you to infringe any

-patents or other property right claims or to contest validity of any

-such claims; this section has the sole purpose of protecting the

-integrity of the free software distribution system, which is

-implemented by public license practices.  Many people have made

-generous contributions to the wide range of software distributed

-through that system in reliance on consistent application of that

-system; it is up to the author/donor to decide if he or she is willing

-to distribute software through any other system and a licensee cannot

-impose that choice.

-

-

-This section is intended to make thoroughly clear what is believed to

-be a consequence of the rest of this License.

-

-

-

-8.

- If the distribution and/or use of the Program is restricted in

-certain countries either by patents or by copyrighted interfaces, the

-original copyright holder who places the Program under this License

-may add an explicit geographical distribution limitation excluding

-those countries, so that distribution is permitted only in or among

-countries not thus excluded.  In such case, this License incorporates

-the limitation as if written in the body of this License.

-

-

-

-9.

- The Free Software Foundation may publish revised and/or new versions

-of the General Public License from time to time.  Such new versions will

-be similar in spirit to the present version, but may differ in detail to

-address new problems or concerns.

-

-

-Each version is given a distinguishing version number.  If the Program

-specifies a version number of this License which applies to it and "any

-later version", you have the option of following the terms and conditions

-either of that version or of any later version published by the Free

-Software Foundation.  If the Program does not specify a version number of

-this License, you may choose any version ever published by the Free Software

-Foundation.

-

-

-

-

-10.

- If you wish to incorporate parts of the Program into other free

-programs whose distribution conditions are different, write to the author

-to ask for permission.  For software which is copyrighted by the Free

-Software Foundation, write to the Free Software Foundation; we sometimes

-make exceptions for this.  Our decision will be guided by the two goals

-of preserving the free status of all derivatives of our free software and

-of promoting the sharing and reuse of software generally.

-

-

-

-NO WARRANTY

-

-

-

-11.

- BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY

-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN

-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES

-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED

-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF

-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS

-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE

-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,

-REPAIR OR CORRECTION.

-

-

-

-12.

- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING

-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR

-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,

-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING

-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED

-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY

-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER

-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE

-POSSIBILITY OF SUCH DAMAGES.

-

-

-

-

-END OF TERMS AND CONDITIONS

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JFlex/README.sed b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JFlex/README.sed
deleted file mode 100644
index 0a58bc9..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JFlex/README.sed
+++ /dev/null
@@ -1,5 +0,0 @@
-This directory contains the contents of jflex-2.2.zip

-

-MINUS the JFlex/lib/JFlex.jar file and JFlex/bin, JFlex/doc, and 

-      JFlex/examples directories

-PLUS: sources rebuilt under a v1.3 JDK into JFlex/lib/sed-jflex.jar

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.java
deleted file mode 100644
index a7d578f..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.java
+++ /dev/null
@@ -1,3599 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/* The following code was generated by JFlex 1.2.2 on 9/27/04 1:09 AM */
-
-/*nlsXXX*/
-package org.eclipse.wst.sse.core.jsp.parser.internal;
-
-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.jsp.Logger;
-import org.eclipse.wst.sse.core.parser.BlockMarker;
-import org.eclipse.wst.sse.core.parser.BlockTokenizer;
-import org.eclipse.wst.sse.core.parser.TagMarker;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-import org.eclipse.wst.sse.core.util.Debug;
-import org.eclipse.wst.sse.core.util.StringUtils;
-import org.eclipse.wst.sse.core.xml.internal.parser.ContextRegionContainer;
-import org.eclipse.wst.sse.core.xml.internal.parser.IntStack;
-import org.eclipse.wst.sse.core.xml.jsp.model.parser.temp.XMLJSPRegionContexts;
-
-
-/**
- * This class is a scanner generated by 
- * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
- * on 9/27/04 1:09 AM from the specification file
- * <tt>file:/D:/eclipse.rad/workspace.rad/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex</tt>
- */
-public class JSPTokenizer implements BlockTokenizer, XMLJSPRegionContexts {
-
-  /** this character denotes the end of file */
-  final public static int YYEOF = -1;
-
-  /** lexical states */
-  final public static int ST_JSP_VBL_DQUOTES = 52;
-  final public static int ST_JSP_VBL_SQUOTES = 51;
-  final public static int ST_JSP_VBL_SQUOTES_END = 53;
-  final public static int ST_XML_COMMENT_END = 4;
-  final public static int ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE = 21;
-  final public static int ST_JSP_EL_SQUOTES_END = 46;
-  final public static int ST_JSP_EL_DQUOTES = 45;
-  final public static int ST_JSP_EL = 43;
-  final public static int ST_BLOCK_TAG_SCAN = 36;
-  final public static int ST_JSP_EL_SQUOTES = 44;
-  final public static int ST_DHTML_ATTRIBUTE_VALUE = 14;
-  final public static int ST_XML_PI_ATTRIBUTE_NAME = 8;
-  final public static int ST_DHTML_TAG_CLOSE = 15;
-  final public static int ST_XML_ATTRIBUTE_VALUE_DQUOTED = 41;
-  final public static int ST_DHTML_EQUALS = 13;
-  final public static int ST_XML_PI_ATTRIBUTE_VALUE = 10;
-  final public static int ST_XML_ATTRIBUTE_VALUE = 25;
-  final public static int ST_JSP_VBL = 50;
-  final public static int ST_JSP_SQUOTED_VBL = 56;
-  final public static int ST_XML_ATTRIBUTE_VALUE_SQUOTED = 40;
-  final public static int ST_XML_ATTRIBUTE_NAME = 23;
-  final public static int ST_XML_EQUALS = 24;
-  final public static int YYINITIAL = 0;
-  final public static int ST_JSP_DIRECTIVE_ATTRIBUTE_NAME = 19;
-  final public static int ST_JSP_CONTENT = 16;
-  final public static int ST_XML_DOCTYPE_ID_SYSTEM = 31;
-  final public static int ST_XML_ELEMENT_DECLARATION = 32;
-  final public static int ST_XML_DECLARATION_CLOSE = 27;
-  final public static int ST_JSP_DIRECTIVE_EQUALS = 20;
-  final public static int ST_JSP_VBL_DQUOTES_END = 54;
-  final public static int ST_JSP_DQUOTED_EL = 48;
-  final public static int ST_XML_DOCTYPE_DECLARATION = 28;
-  final public static int ST_CDATA_END = 2;
-  final public static int ST_PI_WS = 6;
-  final public static int ST_CDATA_TEXT = 1;
-  final public static int ST_JSP_DIRECTIVE_NAME_WHITESPACE = 18;
-  final public static int ST_XML_ELEMENT_DECLARATION_CONTENT = 33;
-  final public static int ST_XML_ATTLIST_DECLARATION = 34;
-  final public static int ST_JSP_EL_DQUOTES_END = 47;
-  final public static int ST_JSP_SQUOTED_EL = 49;
-  final public static int ST_JSP_COMMENT_END = 39;
-  final public static int ST_XML_PI_EQUALS = 9;
-  final public static int ST_XML_ATTLIST_DECLARATION_CONTENT = 35;
-  final public static int ST_XML_DOCTYPE_ID_PUBLIC = 30;
-  final public static int ST_JSP_DQUOTED_VBL = 55;
-  final public static int ST_DHTML_ATTRIBUTE_NAME = 12;
-  final public static int ST_ABORT_EMBEDDED = 42;
-  final public static int ST_XML_DOCTYPE_EXTERNAL_ID = 29;
-  final public static int ST_JSP_COMMENT = 38;
-  final public static int ST_PI_CONTENT = 7;
-  final public static int ST_BLOCK_TAG_INTERNAL_SCAN = 37;
-  final public static int ST_PI = 5;
-  final public static int ST_XML_DECLARATION = 26;
-  final public static int ST_JSP_DIRECTIVE_NAME = 17;
-  final public static int ST_XML_TAG_NAME = 22;
-  final public static int ST_XML_PI_TAG_CLOSE = 11;
-  final public static int ST_XML_COMMENT = 3;
-
-  /** 
-   * Translates characters to character classes
-   */
-  final private static String yycmap_packed = 
-    "\11\0\1\5\1\26\2\0\1\17\22\0\1\17\1\25\1\12\1\63"+
-    "\1\15\1\22\1\13\1\14\1\24\1\24\1\24\1\24\1\24\1\7"+
-    "\1\6\1\3\12\20\1\11\1\70\1\1\1\50\1\2\1\4\1\21"+
-    "\1\37\1\71\1\35\1\36\1\54\1\66\1\60\1\60\1\61\1\60"+
-    "\1\60\1\32\1\31\1\62\1\51\1\53\1\60\1\65\1\64\1\40"+
-    "\1\67\2\60\1\27\1\52\1\60\1\34\1\102\1\23\1\0\1\10"+
-    "\1\0\1\56\1\101\1\72\1\57\1\42\1\66\1\73\1\60\1\45"+
-    "\1\76\1\60\1\33\1\31\1\47\1\46\1\77\1\60\1\43\1\44"+
-    "\1\55\1\100\1\41\1\60\1\30\1\52\1\60\1\16\1\0\1\103"+
-    "\71\0\1\75\10\0\27\74\1\0\37\74\1\0\72\74\2\0\13\74"+
-    "\2\0\10\74\1\0\65\74\1\0\104\74\11\0\44\74\3\0\2\74"+
-    "\4\0\36\74\70\0\131\74\22\0\7\74\16\0\2\75\56\0\106\75"+
-    "\32\0\2\75\44\0\1\74\1\75\3\74\1\0\1\74\1\0\24\74"+
-    "\1\0\54\74\1\0\7\74\3\0\1\74\1\0\1\74\1\0\1\74"+
-    "\1\0\1\74\1\0\22\74\15\0\14\74\1\0\102\74\1\0\14\74"+
-    "\1\0\44\74\1\0\4\75\11\0\65\74\2\0\2\74\2\0\2\74"+
-    "\3\0\34\74\2\0\10\74\2\0\2\74\67\0\46\74\2\0\1\74"+
-    "\7\0\46\74\12\0\21\75\1\0\27\75\1\0\3\75\1\0\1\75"+
-    "\1\0\2\75\1\0\1\75\13\0\33\74\5\0\3\74\56\0\32\74"+
-    "\5\0\1\75\12\74\10\75\15\0\12\75\6\0\1\75\107\74\2\0"+
-    "\5\74\1\0\17\74\1\0\4\74\1\0\1\74\17\75\2\74\2\75"+
-    "\1\0\4\75\2\0\12\75\u0207\0\3\75\1\0\65\74\2\0\1\75"+
-    "\1\74\20\75\3\0\4\75\3\0\12\74\2\75\2\0\12\75\21\0"+
-    "\3\75\1\0\10\74\2\0\2\74\2\0\26\74\1\0\7\74\1\0"+
-    "\1\74\3\0\4\74\2\0\1\75\1\0\7\75\2\0\2\75\2\0"+
-    "\3\75\11\0\1\75\4\0\2\74\1\0\3\74\2\75\2\0\12\75"+
-    "\2\74\20\0\1\75\2\0\6\74\4\0\2\74\2\0\26\74\1\0"+
-    "\7\74\1\0\2\74\1\0\2\74\1\0\2\74\2\0\1\75\1\0"+
-    "\5\75\4\0\2\75\2\0\3\75\13\0\4\74\1\0\1\74\7\0"+
-    "\12\75\2\75\3\74\14\0\3\75\1\0\7\74\1\0\1\74\1\0"+
-    "\3\74\1\0\26\74\1\0\7\74\1\0\2\74\1\0\5\74\2\0"+
-    "\1\75\1\74\10\75\1\0\3\75\1\0\3\75\22\0\1\74\5\0"+
-    "\12\75\21\0\3\75\1\0\10\74\2\0\2\74\2\0\26\74\1\0"+
-    "\7\74\1\0\2\74\2\0\4\74\2\0\1\75\1\74\6\75\3\0"+
-    "\2\75\2\0\3\75\10\0\2\75\4\0\2\74\1\0\3\74\4\0"+
-    "\12\75\22\0\2\75\1\0\6\74\3\0\3\74\1\0\4\74\3\0"+
-    "\2\74\1\0\1\74\1\0\2\74\3\0\2\74\3\0\3\74\3\0"+
-    "\10\74\1\0\3\74\4\0\5\75\3\0\3\75\1\0\4\75\11\0"+
-    "\1\75\17\0\11\75\21\0\3\75\1\0\10\74\1\0\3\74\1\0"+
-    "\27\74\1\0\12\74\1\0\5\74\4\0\7\75\1\0\3\75\1\0"+
-    "\4\75\7\0\2\75\11\0\2\74\4\0\12\75\22\0\2\75\1\0"+
-    "\10\74\1\0\3\74\1\0\27\74\1\0\12\74\1\0\5\74\4\0"+
-    "\7\75\1\0\3\75\1\0\4\75\7\0\2\75\7\0\1\74\1\0"+
-    "\2\74\4\0\12\75\22\0\2\75\1\0\10\74\1\0\3\74\1\0"+
-    "\27\74\1\0\20\74\4\0\6\75\2\0\3\75\1\0\4\75\11\0"+
-    "\1\75\10\0\2\74\4\0\12\75\221\0\56\74\1\0\1\74\1\75"+
-    "\2\74\7\75\5\0\6\74\1\75\10\75\1\0\12\75\47\0\2\74"+
-    "\1\0\1\74\2\0\2\74\1\0\1\74\2\0\1\74\6\0\4\74"+
-    "\1\0\7\74\1\0\3\74\1\0\1\74\1\0\1\74\2\0\2\74"+
-    "\1\0\2\74\1\0\1\74\1\75\2\74\6\75\1\0\2\75\1\74"+
-    "\2\0\5\74\1\0\1\75\1\0\6\75\2\0\12\75\76\0\2\75"+
-    "\6\0\12\75\13\0\1\75\1\0\1\75\1\0\1\75\4\0\2\75"+
-    "\10\74\1\0\41\74\7\0\24\75\1\0\6\75\4\0\6\75\1\0"+
-    "\1\75\1\0\25\75\3\0\7\75\1\0\1\75\346\0\46\74\12\0"+
-    "\47\74\11\0\1\74\1\0\2\74\1\0\3\74\1\0\1\74\1\0"+
-    "\2\74\1\0\5\74\51\0\1\74\1\0\1\74\1\0\1\74\13\0"+
-    "\1\74\1\0\1\74\1\0\1\74\3\0\2\74\3\0\1\74\5\0"+
-    "\3\74\1\0\1\74\1\0\1\74\1\0\1\74\1\0\1\74\3\0"+
-    "\2\74\3\0\2\74\1\0\1\74\50\0\1\74\11\0\1\74\2\0"+
-    "\1\74\2\0\2\74\7\0\2\74\1\0\1\74\1\0\7\74\50\0"+
-    "\1\74\4\0\1\74\10\0\1\74\u0c06\0\234\74\4\0\132\74\6\0"+
-    "\26\74\2\0\6\74\2\0\46\74\2\0\6\74\2\0\10\74\1\0"+
-    "\1\74\1\0\1\74\1\0\1\74\1\0\37\74\2\0\65\74\1\0"+
-    "\7\74\1\0\1\74\3\0\3\74\1\0\7\74\3\0\4\74\2\0"+
-    "\6\74\4\0\15\74\5\0\3\74\1\0\7\74\323\0\15\75\4\0"+
-    "\1\75\104\0\1\74\3\0\2\74\2\0\1\74\121\0\3\74\u0e82\0"+
-    "\1\75\1\0\1\74\31\0\11\74\6\75\1\0\5\75\13\0\124\74"+
-    "\4\0\2\75\2\0\2\75\2\0\132\74\1\0\3\75\6\0\50\74"+
-    "\u1cd3\0\u51a6\74\u0c5a\0\u2ba4\74\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,    68,   136,   204,   272,   340,   408,   476,   544,   612, 
-      680,   748,   816,   884,   952,  1020,  1088,  1156,  1224,  1292, 
-     1360,  1428,  1496,  1564,  1632,  1700,  1768,  1836,  1904,  1972, 
-     2040,  2108,  2176,  2244,  2312,  2380,  2448,  2516,  2584,  2652, 
-     2720,  2788,  2856,  2924,  2992,  3060,  3128,  3196,  3264,  3332, 
-     3400,  3468,  3536,  3604,  3672,  3740,  3808,  3876,  3944,  4012, 
-     4080,  4148,  4216,  4284,  4352,  4284,  4352,  4420,  4284,  4284, 
-     4352,  4488,  4556,  4624,  4692,  4760,  4828,  4896,  4284,  4352, 
-     4964,  5032,  5100,  4284,  5168,  5168,  5236,  5304,  5372,  4964, 
-     4284,  5440,  5508,  4284,  5576,  5644,  5712,  5780,  4284,  4352, 
-     5848,  5916,  5984,  6052,  6120,  6188,  4284,  6256,  6256,  6324, 
-     6392,  6460,  6528,  6596,  4284,  6664,  6732,  6800,  6868,  6936, 
-     7004,  4284,  7072,  7140,  7208,  7276,  7344,  7412,  7480,  7548, 
-     4284,  7616,  7684,  7752,  7820,  7888,  7956,  8024,  8092,  8092, 
-     8160,  8228,  8296,  8364,  8364,  8432,  8500,  8568,  8636,  8636, 
-     8704,  8772,  8840,  8908,  4284,  8976,  8976,  9044,  9112,  9180, 
-     9248,  4284,  4284,  4352,  9316,  4284,  4352,  9384,  9452,  9520, 
-     9588,  4284,  9656,  9724,  9792,  9860,  4284,  9928,  9996, 10064, 
-    10132,  4284,  4284, 10200,  4284, 10268, 10336, 10268, 10404, 10472, 
-    10404,  4284,  4284, 10540, 10608, 10676,  4284, 10744, 10812, 10880, 
-    10948, 11016,  4284,  4284, 11084,  4284, 11152, 11220, 11152, 11288, 
-    11356, 11288,  4284,  4284, 11424, 11492, 11560,  4284, 11628, 11696, 
-    11764,  4284,  4284, 11832, 11900, 11968, 12036, 12104,  4284, 12172, 
-    12240, 12308, 12376, 12444, 12512, 12580, 12648, 12716,  4284, 12784, 
-    12852,  4284,  4284,  5168,  5304,  4284, 12920,  5372, 12988,  5440, 
-     5576,  5644, 13056,  5712,  4284, 13124, 13192,  5780, 13260,  4284, 
-    11900,  4284,  6256,  6324,  4284, 13328,  6392, 13396,  4284, 13464, 
-    13532,  7072, 13600,  7276,  4284, 13668,  7344, 13736, 13804, 13872, 
-    13940, 14008, 14076,  7820,  4284, 14144, 14212,  8092,  8160,  4284, 
-    14280, 14348, 14416, 14484, 14552,  8296,  8092,  8364,  8432,  4284, 
-     8500,  8568,  8364,  8636,  8704,  4284, 14620, 14688, 14756, 14824, 
-    14892, 14960, 15028,  8976,  9044,  4284, 15096, 15164, 15232, 15300, 
-    15368, 15436, 15504, 15572, 15640, 15708,  4284,  4284,  4284, 15776, 
-     4284,  4284, 15844, 15912, 15980, 16048, 10268,  4284, 16116, 16184, 
-    10404,  4284, 16252, 16320, 16388, 16456, 16524, 16592, 16660, 16728, 
-    16796, 10948, 11152,  4284, 16864, 16932, 11288,  4284, 17000, 17068, 
-    17136, 17204, 17272, 17340, 17408, 17476, 17544,  4284,  4284,  4284, 
-    17612, 17680, 17748, 17816, 17884,  4284, 17952, 18020,  4284,  4284, 
-     4284,  4284,  4284,  4692, 18088, 18156, 18224, 18292, 18360, 18428, 
-    18360, 18496, 18564, 18496, 18632, 18700, 18768, 18836, 18904, 18972, 
-    19040, 19040, 19108, 19176, 19176,  8840,  8840, 19244, 19312, 19380, 
-    19380,  9180,  9180, 19448, 19516, 19584, 15980, 10064, 10064, 19652, 
-    10268, 10268, 19720, 10404, 10404, 19788, 10540, 10540, 16524, 19856, 
-    10744, 10744, 16728, 19924, 10948, 10948, 11152, 11152, 19992, 11288, 
-    11288, 20060, 11424, 11424, 17272, 20128, 11628, 11628, 17476, 20196, 
-     4284,  4284, 20264, 20332,  4284, 20400, 20468, 20536,  7072,  4284, 
-     4284, 20604, 20672, 20740, 20808, 20876, 14484, 14824, 20944, 15300, 
-    21012,  4284,  4284, 21080, 21148, 21216,  4284, 21284, 21352, 21420, 
-    21488,  4284, 21556, 21624, 21692, 21760, 21828, 21896, 21964, 22032, 
-    22100, 22168, 22236, 22304, 22372, 22440, 22508, 22576, 22644, 22712, 
-    22780, 22848, 22916,  4692, 22984, 23052, 23120, 23188, 23256,  4284, 
-     4284, 23324, 23392, 23460, 23528, 16524, 16728, 23596, 23664, 17272, 
-    17476, 23732, 23800, 23868,  4284,  4284,  4284, 23936, 24004, 24072, 
-    24140, 24208, 24276, 24344,  6800, 24412, 24480, 24548, 24616, 24684, 
-    24752, 24820,  4284, 24888,  8840,  9180, 10268, 10404, 11152, 11288, 
-    24956, 25024, 25092, 25160, 25228, 25296, 25364, 25432, 25500, 25568, 
-    25636, 25704, 25772, 25840, 25908, 25976, 26044, 26112, 26180, 26248, 
-    26316, 26384, 26452, 26520, 26588, 26656, 26724, 26792, 26860, 26928, 
-    26996, 27064, 27132, 27200, 27268, 27336, 27404, 27472, 27540, 27608, 
-     4284, 27676, 27744, 27812, 27880,  6800, 27948, 28016, 28084, 28152, 
-    28220, 28288, 28356, 28424, 28492, 28560, 28628, 28696, 28764, 28832
-  };
-
-  /** 
-   * The packed transition table of the DFA
-   */
-  final private static String yy_packed = 
-    "\1\72\1\73\11\72\1\74\1\72\1\75\4\72\1\76"+
-    "\40\72\1\77\20\72\1\100\1\101\102\100\1\102\1\103"+
-    "\21\102\1\104\2\102\1\105\55\102\1\106\1\107\102\106"+
-    "\1\102\1\103\5\102\1\110\16\102\1\105\56\102\1\103"+
-    "\2\102\1\111\1\112\2\102\2\113\5\102\1\112\6\102"+
-    "\1\112\2\114\3\113\1\102\10\113\1\115\2\113\1\102"+
-    "\10\113\1\115\1\113\1\102\4\113\1\102\4\113\1\102"+
-    "\4\113\3\102\1\103\2\102\1\111\1\116\11\102\1\116"+
-    "\6\102\1\116\55\102\1\117\1\120\2\117\1\121\21\117"+
-    "\1\105\55\117\1\102\1\103\2\102\1\122\1\112\2\102"+
-    "\2\123\5\102\1\112\6\102\1\112\5\123\1\102\13\123"+
-    "\1\102\12\123\1\102\4\123\1\102\4\123\1\102\4\123"+
-    "\3\102\1\103\2\102\1\122\1\112\2\102\2\123\5\102"+
-    "\1\112\6\102\1\112\5\123\1\102\13\123\1\124\12\123"+
-    "\1\102\4\123\1\102\4\123\1\102\4\123\2\102\1\125"+
-    "\1\103\1\102\1\126\1\127\1\112\4\125\1\130\1\125"+
-    "\1\131\2\125\1\112\6\125\1\112\55\125\1\102\1\103"+
-    "\2\102\1\132\21\102\1\105\56\102\1\103\1\133\1\134"+
-    "\1\102\1\112\2\102\2\135\5\102\1\112\6\102\1\112"+
-    "\5\135\1\102\13\135\1\102\12\135\1\102\4\135\1\102"+
-    "\4\135\1\102\4\135\3\102\1\103\1\133\1\134\1\102"+
-    "\1\112\2\102\2\135\5\102\1\112\6\102\1\112\5\135"+
-    "\1\102\13\135\1\136\12\135\1\102\4\135\1\102\4\135"+
-    "\1\102\4\135\2\102\1\137\1\103\1\133\1\140\1\137"+
-    "\1\112\4\137\1\141\1\137\1\142\2\137\1\112\6\137"+
-    "\1\112\55\137\1\102\1\103\3\102\1\112\11\102\1\112"+
-    "\6\102\1\112\55\102\1\143\1\144\20\143\1\145\3\143"+
-    "\1\105\55\143\1\102\1\146\3\102\1\112\2\102\2\147"+
-    "\5\102\1\112\2\102\1\150\3\102\1\112\5\147\1\102"+
-    "\13\147\1\102\12\147\1\102\4\147\1\102\4\147\1\102"+
-    "\4\147\3\102\1\146\3\102\1\151\11\102\1\151\2\102"+
-    "\1\150\3\102\1\151\56\102\1\146\3\102\1\112\2\102"+
-    "\2\152\5\102\1\112\2\102\1\150\3\102\1\112\5\152"+
-    "\1\102\13\152\1\102\12\152\1\102\4\152\1\102\4\152"+
-    "\1\102\4\152\3\102\1\146\3\102\1\112\2\102\2\152"+
-    "\5\102\1\112\2\102\1\150\3\102\1\112\5\152\1\102"+
-    "\13\152\1\153\12\152\1\102\4\152\1\102\4\152\1\102"+
-    "\4\152\2\102\1\154\1\146\1\102\1\155\1\154\1\112"+
-    "\4\154\1\156\1\154\1\157\2\154\1\112\2\154\1\160"+
-    "\3\154\1\112\55\154\1\161\1\162\1\163\1\164\4\161"+
-    "\2\165\15\161\5\166\1\161\13\166\1\161\12\166\1\161"+
-    "\4\166\1\161\4\166\1\161\1\167\3\166\2\161\1\102"+
-    "\1\170\1\163\1\164\1\102\1\112\2\102\2\171\5\102"+
-    "\1\112\6\102\1\112\5\171\1\102\13\171\1\102\12\171"+
-    "\1\102\4\171\1\102\4\171\1\102\4\171\3\102\1\170"+
-    "\1\163\1\164\1\102\1\112\2\102\2\171\5\102\1\112"+
-    "\6\102\1\112\5\171\1\102\13\171\1\172\12\171\1\102"+
-    "\4\171\1\102\4\171\1\102\4\171\2\102\1\173\1\174"+
-    "\1\163\1\175\1\173\1\112\4\173\1\176\1\173\1\177"+
-    "\1\200\1\173\1\112\6\173\1\112\34\173\1\201\20\173"+
-    "\1\102\1\202\1\203\2\102\1\112\11\102\1\112\6\102"+
-    "\1\112\7\102\1\204\1\205\2\102\1\206\11\102\1\206"+
-    "\1\102\1\205\1\204\25\102\1\103\1\203\2\102\1\112"+
-    "\11\102\1\112\6\102\1\112\5\102\1\207\50\102\1\103"+
-    "\1\203\2\102\1\112\2\102\2\210\5\102\1\112\6\102"+
-    "\1\112\5\210\1\207\13\210\1\102\12\210\1\102\4\210"+
-    "\1\102\4\210\1\102\4\210\3\102\1\103\1\203\2\102"+
-    "\1\112\11\102\1\112\6\102\1\112\5\102\1\207\7\102"+
-    "\1\211\6\102\1\212\10\102\1\211\12\102\1\212\4\102"+
-    "\1\213\1\103\1\203\1\214\1\213\1\112\4\213\1\215"+
-    "\1\213\1\216\2\213\1\112\6\213\1\112\5\213\1\217"+
-    "\47\213\1\220\1\103\1\203\1\221\1\220\1\112\4\220"+
-    "\1\222\1\220\1\223\2\220\1\112\6\220\1\112\5\220"+
-    "\1\224\47\220\1\225\1\103\1\203\1\226\1\225\1\112"+
-    "\4\225\1\227\1\225\1\230\2\225\1\112\6\225\1\112"+
-    "\55\225\1\231\1\232\1\233\101\231\1\234\1\103\1\203"+
-    "\1\235\1\234\1\112\4\234\1\236\1\234\1\237\2\234"+
-    "\1\112\6\234\1\112\55\234\1\240\1\241\1\242\101\240"+
-    "\1\243\1\244\102\243\1\102\1\245\24\102\1\105\55\102"+
-    "\1\246\1\247\102\246\1\102\1\103\5\102\1\250\16\102"+
-    "\1\105\55\102\1\251\1\252\3\251\1\253\6\251\1\254"+
-    "\1\255\1\251\1\253\6\251\1\253\34\251\1\256\20\251"+
-    "\1\257\1\252\3\257\1\260\4\257\1\261\2\257\1\262"+
-    "\1\257\1\260\6\257\1\260\34\257\1\263\20\257\1\102"+
-    "\1\103\24\102\1\105\55\102\1\264\1\265\10\264\1\266"+
-    "\1\264\1\267\1\270\65\264\1\271\1\272\1\273\12\272"+
-    "\1\102\11\272\1\274\55\272\1\275\1\276\10\275\1\102"+
-    "\13\275\1\277\55\275\1\102\1\103\12\102\1\300\11\102"+
-    "\1\105\56\102\1\103\10\102\1\301\13\102\1\105\55\102"+
-    "\1\302\1\303\10\302\1\261\67\302\1\304\1\305\1\306"+
-    "\1\307\12\306\1\254\65\306\1\310\1\305\1\311\1\312"+
-    "\10\311\1\313\1\311\1\314\46\311\1\315\17\311\1\316"+
-    "\1\317\1\320\12\317\1\102\11\317\1\321\55\317\1\322"+
-    "\1\323\10\322\1\102\13\322\1\324\55\322\1\102\1\103"+
-    "\12\102\1\325\11\102\1\105\56\102\1\103\10\102\1\326"+
-    "\13\102\1\105\55\102\1\327\1\330\10\327\1\261\67\327"+
-    "\1\331\1\332\1\333\1\334\12\333\1\254\65\333\1\335"+
-    "\1\332\1\72\1\0\11\72\1\0\1\72\1\0\4\72"+
-    "\1\0\40\72\1\0\20\72\3\0\1\336\1\337\15\0"+
-    "\1\340\2\0\1\341\63\0\1\342\2\0\2\343\5\0"+
-    "\1\342\6\0\1\342\5\343\1\0\13\343\1\0\12\343"+
-    "\1\344\4\343\1\0\4\343\1\0\4\343\2\0\1\345"+
-    "\1\0\11\345\1\0\1\345\1\346\1\347\3\345\1\0"+
-    "\61\345\5\0\1\342\2\0\2\350\5\0\1\342\6\0"+
-    "\1\342\5\350\1\0\13\350\1\0\12\350\1\0\4\350"+
-    "\1\0\4\350\1\0\4\350\2\0\1\345\1\0\11\345"+
-    "\1\0\2\345\1\351\3\345\1\0\40\345\1\352\20\345"+
-    "\126\0\1\353\2\0\1\354\101\0\1\355\67\0\1\356"+
-    "\76\0\1\357\106\0\1\112\11\0\1\112\6\0\1\112"+
-    "\63\0\4\113\6\0\1\113\6\0\5\113\1\0\13\113"+
-    "\1\0\12\113\1\0\4\113\1\0\11\113\10\0\4\113"+
-    "\6\0\1\113\6\0\2\113\1\360\2\113\1\0\13\113"+
-    "\1\0\12\113\1\0\4\113\1\0\11\113\10\0\4\113"+
-    "\6\0\1\113\6\0\2\113\1\361\2\113\1\0\13\113"+
-    "\1\0\12\113\1\0\4\113\1\0\11\113\7\0\1\116"+
-    "\11\0\1\116\6\0\1\116\57\0\1\362\103\0\1\363"+
-    "\107\0\4\123\6\0\1\123\6\0\5\123\1\0\13\123"+
-    "\1\0\12\123\1\0\4\123\1\0\11\123\2\0\1\125"+
-    "\2\0\1\364\1\125\1\0\4\125\1\0\1\125\1\0"+
-    "\2\125\1\0\6\125\1\0\56\125\1\0\1\363\1\364"+
-    "\1\125\1\0\4\125\1\0\1\125\1\0\2\125\1\0"+
-    "\6\125\1\0\55\125\1\365\1\0\10\365\1\366\2\365"+
-    "\1\367\45\365\1\367\20\365\1\370\1\0\12\370\1\366"+
-    "\1\371\45\370\1\371\20\370\2\0\1\133\1\372\106\0"+
-    "\4\135\6\0\1\135\6\0\5\135\1\0\13\135\1\0"+
-    "\12\135\1\0\4\135\1\0\11\135\2\0\1\137\2\0"+
-    "\1\373\1\137\1\0\4\137\1\0\1\137\1\0\2\137"+
-    "\1\0\6\137\1\0\56\137\1\0\1\133\1\374\1\137"+
-    "\1\0\4\137\1\0\1\137\1\0\2\137\1\0\6\137"+
-    "\1\0\55\137\1\141\1\0\1\375\1\376\1\141\1\375"+
-    "\4\141\1\377\1\141\1\375\1\u0100\1\141\1\375\6\141"+
-    "\1\375\34\141\1\u0100\20\141\1\142\1\0\1\u0101\1\u0102"+
-    "\1\142\1\u0101\4\142\1\u0101\1\142\1\377\1\u0103\1\142"+
-    "\1\u0101\6\142\1\u0101\34\142\1\u0103\20\142\2\0\1\u0104"+
-    "\123\0\1\353\2\0\1\u0105\64\0\4\147\6\0\1\147"+
-    "\6\0\5\147\1\0\13\147\1\0\12\147\1\0\4\147"+
-    "\1\0\11\147\4\0\1\u0106\106\0\1\151\11\0\1\151"+
-    "\6\0\1\151\63\0\4\152\6\0\1\152\6\0\5\152"+
-    "\1\0\13\152\1\0\12\152\1\0\4\152\1\0\11\152"+
-    "\2\0\1\154\2\0\1\u0107\1\154\1\0\4\154\1\0"+
-    "\1\154\1\0\2\154\1\0\6\154\1\0\55\154\1\u0108"+
-    "\1\0\10\u0108\1\u0109\2\u0108\1\u010a\45\u0108\1\u010a\20\u0108"+
-    "\1\u010b\1\0\12\u010b\1\u0109\1\u010c\45\u010b\1\u010c\20\u010b"+
-    "\1\154\1\0\1\u0106\1\u0107\1\154\1\0\4\154\1\0"+
-    "\1\154\1\0\2\154\1\0\6\154\1\0\55\154\1\161"+
-    "\3\0\23\161\5\0\1\161\13\0\1\161\12\0\1\161"+
-    "\4\0\1\161\4\0\1\161\4\0\2\161\3\0\1\336"+
-    "\16\0\1\353\2\0\1\341\60\0\1\u010d\101\0\1\161"+
-    "\3\0\2\161\4\165\6\161\1\165\6\161\5\166\1\161"+
-    "\13\166\1\161\12\166\1\161\4\166\1\161\4\166\1\165"+
-    "\4\166\2\161\6\0\4\166\6\0\1\166\6\0\5\166"+
-    "\1\0\13\166\1\0\12\166\1\0\4\166\1\0\11\166"+
-    "\10\0\4\166\6\0\1\166\6\0\5\166\1\0\7\166"+
-    "\1\u010e\3\166\1\0\12\166\1\0\4\166\1\0\11\166"+
-    "\5\0\1\336\4\0\2\u010f\10\0\1\353\2\0\1\341"+
-    "\1\0\5\u010f\1\0\13\u010f\1\0\12\u010f\1\0\4\u010f"+
-    "\1\0\4\u010f\1\0\4\u010f\10\0\4\171\6\0\1\171"+
-    "\6\0\5\171\1\0\13\171\1\0\12\171\1\0\4\171"+
-    "\1\0\11\171\2\0\1\173\2\0\1\u0110\1\173\1\0"+
-    "\4\173\1\0\1\173\1\0\2\173\1\0\6\173\1\0"+
-    "\55\173\3\0\1\336\4\0\2\u0111\10\0\1\353\2\0"+
-    "\1\341\1\0\5\u0111\1\0\13\u0111\1\0\12\u0111\1\0"+
-    "\4\u0111\1\0\4\u0111\1\0\4\u0111\2\0\1\173\1\0"+
-    "\1\u010d\1\u0110\1\173\1\0\4\173\1\0\1\173\1\0"+
-    "\2\173\1\0\6\173\1\0\55\173\1\u0112\1\0\10\u0112"+
-    "\1\u0113\2\u0112\1\u0114\45\u0112\1\u0114\20\u0112\1\u0115\1\0"+
-    "\12\u0115\1\u0113\1\u0116\45\u0115\1\u0116\20\u0115\1\173\2\0"+
-    "\1\u0110\1\173\1\0\4\173\1\0\1\173\1\0\1\173"+
-    "\1\u0117\1\0\6\173\1\0\56\173\2\0\1\u0110\1\173"+
-    "\1\0\4\173\1\0\1\173\1\0\1\173\1\u0118\1\0"+
-    "\6\173\1\0\55\173\3\0\1\336\16\0\1\353\2\0"+
-    "\1\u0105\124\0\1\u0119\2\0\1\u0119\72\0\1\u011a\14\0"+
-    "\1\u011a\60\0\2\u011b\50\0\23\u011c\1\u011d\60\u011c\6\0"+
-    "\4\210\6\0\1\210\6\0\5\210\1\0\13\210\1\0"+
-    "\12\210\1\0\4\210\1\0\11\210\54\0\1\u011e\120\0"+
-    "\1\u011f\10\0\1\u011f\3\0\1\213\2\0\1\u0120\1\213"+
-    "\1\0\4\213\1\0\1\213\1\0\2\213\1\0\6\213"+
-    "\1\0\55\213\1\u0121\1\0\10\u0121\1\u0122\2\u0121\1\u0123"+
-    "\45\u0121\1\u0123\20\u0121\1\u0124\1\0\1\u0124\2\u0125\1\u0124"+
-    "\4\u0125\2\u0124\1\u0126\1\u0127\1\u0124\4\u0125\1\u0124\10\u0125"+
-    "\1\u0124\26\u0125\1\u0127\10\u0125\2\u0124\4\u0125\2\u0124\1\217"+
-    "\2\u011c\1\u0128\1\217\1\u011c\4\217\1\u011c\1\217\1\u011c"+
-    "\2\217\1\u011c\3\217\1\u0129\2\217\1\u011c\55\217\1\220"+
-    "\2\0\1\u012a\1\220\1\0\4\220\1\0\1\220\1\0"+
-    "\2\220\1\0\6\220\1\0\55\220\12\u012b\1\u012c\71\u012b"+
-    "\14\u012d\1\u012c\67\u012d\1\224\2\u011c\1\u012e\1\224\1\u011c"+
-    "\4\224\1\u011c\1\224\1\u011c\2\224\1\u011c\3\224\1\u012f"+
-    "\2\224\1\u011c\55\224\1\225\2\0\1\u0130\1\225\1\0"+
-    "\4\225\1\0\1\225\1\0\2\225\1\0\6\225\1\0"+
-    "\55\225\1\u0131\1\0\10\u0131\1\u0132\2\u0131\1\u0133\45\u0131"+
-    "\1\u0133\20\u0131\1\u0134\1\0\1\u0134\2\u0135\1\u0134\4\u0135"+
-    "\2\u0134\1\u0136\1\u0137\1\u0134\4\u0135\1\u0134\10\u0135\1\u0134"+
-    "\26\u0135\1\u0137\10\u0135\2\u0134\4\u0135\2\u0134\2\231\1\0"+
-    "\103\231\1\0\17\231\1\u0138\2\231\1\u0139\56\231\1\234"+
-    "\2\0\1\u013a\1\234\1\0\4\234\1\0\1\234\1\0"+
-    "\2\234\1\0\6\234\1\0\55\234\1\u013b\1\0\10\u013b"+
-    "\1\u013c\2\u013b\1\u013d\45\u013b\1\u013d\20\u013b\1\u013e\1\0"+
-    "\1\u013e\2\u013f\1\u013e\4\u013f\2\u013e\1\u0140\1\u0141\1\u013e"+
-    "\4\u013f\1\u013e\10\u013f\1\u013e\26\u013f\1\u0141\10\u013f\2\u013e"+
-    "\4\u013f\2\u013e\2\240\1\0\103\240\1\0\17\240\1\u0142"+
-    "\2\240\1\u0143\56\240\22\0\1\u0144\2\0\1\354\65\0"+
-    "\1\u0145\74\0\1\251\1\0\12\251\1\0\1\u0146\45\251"+
-    "\1\u0146\20\251\3\0\1\u0147\16\0\1\353\2\0\1\354"+
-    "\56\0\1\251\1\0\3\251\1\253\6\251\1\0\1\u0146"+
-    "\1\251\1\253\6\251\1\253\34\251\1\u0146\36\251\1\u0148"+
-    "\103\251\1\u0149\65\251\1\257\1\0\10\257\1\0\2\257"+
-    "\1\u014a\45\257\1\u014a\21\257\1\0\3\257\1\260\4\257"+
-    "\1\0\2\257\1\u014a\1\257\1\260\6\257\1\260\34\257"+
-    "\1\u014a\36\257\1\u014b\103\257\1\u014c\65\257\12\264\1\0"+
-    "\1\264\1\0\1\u014d\65\264\1\0\12\264\1\0\1\264"+
-    "\1\0\1\u014d\4\264\1\u014e\60\264\1\0\12\264\1\0"+
-    "\1\264\1\0\1\264\1\u014f\64\264\1\u0150\14\u0151\1\u0152"+
-    "\103\u0151\1\u0152\5\u0151\1\u0153\2\u0151\1\u0154\56\u0151\12\u0155"+
-    "\1\u0156\103\u0155\1\u0156\7\u0155\1\u0157\2\u0155\1\u0158\56\u0155"+
-    "\12\302\1\0\67\302\1\u0159\1\0\12\302\1\0\7\302"+
-    "\1\u015a\57\302\1\u0159\1\0\12\302\1\u015b\71\302\14\306"+
-    "\1\0\65\306\1\u015c\1\0\14\306\1\0\5\306\1\u015d"+
-    "\57\306\1\u015c\1\0\14\306\1\u015e\67\306\12\311\1\0"+
-    "\1\311\1\0\66\311\1\0\12\311\1\0\1\311\1\0"+
-    "\5\311\1\u015f\60\311\1\0\12\311\1\0\1\311\1\0"+
-    "\1\311\1\u0160\64\311\1\0\14\u0161\1\u0162\103\u0161\1\u0162"+
-    "\5\u0161\1\u0163\2\u0161\1\u0164\56\u0161\12\u0165\1\u0166\103\u0165"+
-    "\1\u0166\7\u0165\1\u0167\2\u0165\1\u0168\56\u0165\12\327\1\0"+
-    "\67\327\1\u0169\1\0\12\327\1\0\7\327\1\u016a\57\327"+
-    "\1\u0169\1\0\12\327\1\u016b\71\327\14\333\1\0\65\333"+
-    "\1\u016c\1\0\14\333\1\0\5\333\1\u016d\57\333\1\u016c"+
-    "\1\0\14\333\1\u016e\67\333\7\0\1\u016f\11\0\1\u0170"+
-    "\3\0\1\u0171\22\0\1\u0172\42\0\1\u0173\24\0\1\u0174"+
-    "\54\0\1\342\2\0\2\u0175\5\0\1\342\6\0\1\342"+
-    "\5\u0175\1\0\13\u0175\1\0\12\u0175\1\0\4\u0175\1\0"+
-    "\4\u0175\1\0\4\u0175\2\0\1\u0176\1\0\3\u0176\1\u0177"+
-    "\4\343\1\u0176\1\0\3\u0176\1\u0177\1\343\1\u0176\1\0"+
-    "\3\u0176\1\u0177\5\343\1\u0176\13\343\1\u0176\12\343\1\u0176"+
-    "\4\343\1\u0178\11\343\2\u0176\20\0\1\u0179\7\0\1\u017a"+
-    "\70\0\1\346\66\0\103\347\1\u017b\1\u0176\1\0\3\u0176"+
-    "\1\u0177\4\350\1\u0176\1\0\3\u0176\1\u0177\1\350\1\u0176"+
-    "\1\0\3\u0176\1\u0177\5\350\1\u0176\13\350\1\u0176\12\350"+
-    "\1\u0176\4\350\1\u017c\11\350\2\u0176\103\351\1\u017d\63\0"+
-    "\1\352\45\0\1\u0171\22\0\1\u0172\67\0\1\u0174\51\0"+
-    "\1\u017e\103\0\1\u017f\107\0\4\113\6\0\1\113\6\0"+
-    "\3\113\2\u0180\1\0\13\113\1\0\12\113\1\0\4\113"+
-    "\1\0\11\113\10\0\4\113\6\0\1\113\6\0\5\113"+
-    "\1\0\13\113\1\0\2\113\1\u0181\7\113\1\0\4\113"+
-    "\1\0\6\113\1\u0181\2\113\2\0\12\365\1\366\3\365"+
-    "\1\0\65\365\14\370\1\366\1\370\1\0\65\370\1\375"+
-    "\1\0\10\375\1\377\2\375\1\u0182\45\375\1\u0182\20\375"+
-    "\1\141\2\375\1\376\1\141\1\375\4\141\1\377\1\141"+
-    "\1\375\1\141\1\137\1\375\6\141\1\375\55\141\1\u0101"+
-    "\1\0\12\u0101\1\377\1\u0183\45\u0101\1\u0183\20\u0101\1\142"+
-    "\2\u0101\1\u0102\1\142\1\u0101\4\142\1\u0101\1\142\1\377"+
-    "\1\142\1\137\1\u0101\6\142\1\u0101\55\142\12\u0108\1\u0109"+
-    "\3\u0108\1\0\65\u0108\14\u010b\1\u0109\1\u010b\1\0\65\u010b"+
-    "\6\0\4\166\6\0\1\166\6\0\5\166\1\0\13\166"+
-    "\1\0\12\166\1\0\4\166\1\0\6\166\1\u0184\2\166"+
-    "\10\0\4\u010f\6\0\1\u010f\6\0\5\u010f\1\0\13\u010f"+
-    "\1\0\12\u010f\1\0\4\u010f\1\0\11\u010f\10\0\4\u0111"+
-    "\6\0\1\u0111\6\0\5\u0111\1\0\13\u0111\1\0\12\u0111"+
-    "\1\0\4\u0111\1\0\11\u0111\2\0\12\u0112\1\u0113\3\u0112"+
-    "\1\0\65\u0112\14\u0115\1\u0113\1\u0115\1\0\65\u0115\1\u0185"+
-    "\2\u0186\1\u0187\1\u0185\1\u0186\4\u0185\1\u0186\1\u0185\1\u0186"+
-    "\2\u0185\1\u0186\6\u0185\1\u0186\54\u0185\1\173\1\u0188\2\u0189"+
-    "\1\u018a\1\u0188\1\u0189\4\u0188\1\u0189\1\u0188\1\u0189\2\u0188"+
-    "\1\u0189\6\u0188\1\u0189\54\u0188\1\173\35\0\1\u018b\34\0"+
-    "\1\u018b\51\0\1\u018c\14\0\1\u018c\70\0\1\u018d\11\0"+
-    "\1\u018d\73\0\1\u018e\17\0\1\u018e\110\0\1\u018f\7\0"+
-    "\1\u018f\2\0\12\u0121\1\u0122\3\u0121\1\0\65\u0121\1\u0124"+
-    "\1\0\12\u0124\1\u0122\1\u0190\45\u0124\1\u0190\21\u0124\1\0"+
-    "\12\u0124\1\u0191\1\u0190\45\u0124\1\u0190\20\u0124\14\0\1\u0192"+
-    "\67\0\14\u0124\1\u0191\1\u0124\1\0\65\u0124\12\u0131\1\u0132"+
-    "\3\u0131\1\0\65\u0131\1\u0134\1\0\12\u0134\1\u0132\1\u0193"+
-    "\45\u0134\1\u0193\21\u0134\1\0\12\u0134\1\u0194\1\u0193\45\u0134"+
-    "\1\u0193\20\u0134\14\0\1\u0195\67\0\14\u0134\1\u0194\1\u0134"+
-    "\1\0\65\u0134\2\231\1\0\22\231\1\u0196\22\231\1\u0197"+
-    "\35\231\1\0\31\231\1\u0198\47\231\12\u013b\1\u013c\3\u013b"+
-    "\1\0\65\u013b\1\u013e\1\0\12\u013e\1\u013c\1\u0199\45\u013e"+
-    "\1\u0199\21\u013e\1\0\12\u013e\1\u019a\1\u0199\45\u013e\1\u0199"+
-    "\20\u013e\14\0\1\u019b\67\0\14\u013e\1\u019a\1\u013e\1\0"+
-    "\65\u013e\2\240\1\0\22\240\1\u019c\22\240\1\u019d\35\240"+
-    "\1\0\31\240\1\u019e\47\240\7\0\1\u019f\11\0\1\u0170"+
-    "\3\0\1\u0171\22\0\1\u0172\55\0\1\u01a0\61\0\16\251"+
-    "\1\0\65\251\16\257\1\0\65\257\12\264\1\0\1\264"+
-    "\1\0\1\264\1\u01a1\64\264\1\u0150\12\264\1\0\1\264"+
-    "\1\0\1\u014d\7\264\1\u01a2\22\264\1\u01a3\32\264\1\0"+
-    "\12\u01a1\1\0\1\u01a1\1\0\66\u01a1\1\0\12\u0150\1\0"+
-    "\1\u0150\1\0\1\u01a4\65\u0150\1\0\14\u0151\1\u0152\10\u0151"+
-    "\1\u01a5\22\u0151\1\u01a6\47\u0151\1\u0152\17\u0151\1\u01a7\47\u0151"+
-    "\12\u0155\1\u0156\12\u0155\1\u01a8\22\u0155\1\u01a9\45\u0155\1\u0156"+
-    "\21\u0155\1\u01aa\47\u0155\12\302\1\0\103\302\1\0\12\302"+
-    "\1\u01ab\22\302\1\u01ac\31\302\1\u0159\1\0\102\u01ad\1\u01ae"+
-    "\1\u01ad\14\306\1\0\103\306\1\0\10\306\1\u01af\22\306"+
-    "\1\u01b0\31\306\1\u015c\1\0\102\u01b1\1\u01b2\1\u01b1\12\311"+
-    "\1\0\1\311\1\0\10\311\1\u01b3\22\311\1\u01b4\32\311"+
-    "\1\0\14\u0161\1\u0162\10\u0161\1\u01b5\22\u0161\1\u01b6\47\u0161"+
-    "\1\u0162\17\u0161\1\u01b7\47\u0161\12\u0165\1\u0166\12\u0165\1\u01b8"+
-    "\22\u0165\1\u01b9\45\u0165\1\u0166\21\u0165\1\u01ba\47\u0165\12\327"+
-    "\1\0\103\327\1\0\12\327\1\u01bb\22\327\1\u01bc\31\327"+
-    "\1\u0169\1\0\102\u01bd\1\u01be\1\u01bd\14\333\1\0\103\333"+
-    "\1\0\10\333\1\u01bf\22\333\1\u01c0\31\333\1\u016c\1\0"+
-    "\102\u01c1\1\u01c2\1\u01c1\7\0\1\u01c3\103\0\1\u01c4\131\0"+
-    "\1\u01c5\46\0\1\u0175\1\0\11\u0175\1\0\6\u0175\1\0"+
-    "\61\u0175\1\u0176\1\0\11\u0176\1\0\6\u0176\1\0\45\u0176"+
-    "\1\0\14\u0176\1\0\3\u0176\1\u0177\5\u0176\1\0\3\u0176"+
-    "\1\u0177\2\u0176\1\0\3\u0176\1\u0177\41\u0176\1\u01c6\13\u0176"+
-    "\20\0\1\u0179\47\0\1\u01c7\33\0\1\u01c8\14\0\3\u01c8"+
-    "\2\0\1\u01c8\11\0\1\u01c8\1\0\2\u01c8\6\0\1\u01c8"+
-    "\2\0\2\u01c8\6\0\1\u01c8\10\0\4\113\6\0\1\113"+
-    "\6\0\5\113\1\0\11\113\1\u01c9\1\113\1\0\1\u01c9"+
-    "\11\113\1\0\4\113\1\0\11\113\2\0\12\375\1\377"+
-    "\3\375\1\0\65\375\14\u0101\1\377\1\u0101\1\0\65\u0101"+
-    "\6\0\3\166\1\u01ca\6\0\1\166\6\0\5\166\1\0"+
-    "\13\166\1\0\12\166\1\0\4\166\1\0\11\166\2\0"+
-    "\1\u0185\2\u0186\1\u0187\1\u0185\1\u0186\4\u0185\1\u0186\1\u0185"+
-    "\1\u0186\2\u0185\1\u0186\6\u0185\1\u0186\54\u0185\1\u01cb\103\u0186"+
-    "\1\u01cc\1\u0188\2\u0189\1\u018a\1\u0188\1\u0189\4\u0188\1\u0189"+
-    "\1\u0188\1\u0189\2\u0188\1\u0189\6\u0188\1\u0189\54\u0188\1\u01cb"+
-    "\103\u0189\1\u01cd\40\0\1\u01ce\14\0\1\u01ce\60\0\2\u01cf"+
-    "\101\0\1\u01d0\112\0\1\u01d1\14\0\1\u01d1\60\0\2\u01d2"+
-    "\50\0\14\u0124\1\u0122\1\u0124\1\0\65\u0124\3\0\2\u01d3"+
-    "\1\0\4\u01d3\2\0\1\u0126\1\u01d3\1\0\4\u01d3\1\0"+
-    "\10\u01d3\1\0\37\u01d3\2\0\4\u01d3\2\0\14\u0134\1\u0132"+
-    "\1\u0134\1\0\65\u0134\3\0\2\u01d4\1\0\4\u01d4\2\0"+
-    "\1\u0136\1\u01d4\1\0\4\u01d4\1\0\10\u01d4\1\0\37\u01d4"+
-    "\2\0\4\u01d4\2\0\2\231\1\0\32\231\1\u01d5\46\231"+
-    "\14\u013e\1\u013c\1\u013e\1\0\65\u013e\3\0\2\u01d6\1\0"+
-    "\4\u01d6\2\0\1\u0140\1\u01d6\1\0\4\u01d6\1\0\10\u01d6"+
-    "\1\0\37\u01d6\2\0\4\u01d6\2\0\2\240\1\0\32\240"+
-    "\1\u01d7\46\240\7\0\1\u01d8\76\0\1\u01d9\101\0\12\u0150"+
-    "\1\0\1\u0150\1\0\1\u0150\1\0\65\u0150\14\u0151\1\u0152"+
-    "\20\u0151\1\u01da\46\u0151\12\u0155\1\u0156\22\u0155\1\u01db\46\u0155"+
-    "\12\u01dc\1\u01dd\70\u01dc\1\0\14\u01de\1\u01dd\66\u01de\1\0"+
-    "\14\u0161\1\u0162\20\u0161\1\u01df\46\u0161\12\u0165\1\u0166\22\u0165"+
-    "\1\u01e0\46\u0165\12\u01e1\1\u01e2\70\u01e1\1\0\14\u01e3\1\u01e2"+
-    "\66\u01e3\37\0\1\u01e4\135\0\1\u01c6\33\0\1\u01c8\14\0"+
-    "\3\u01c8\2\0\1\u01c8\11\0\1\u01c8\1\0\2\u01c8\6\0"+
-    "\1\u01c8\1\0\1\u01c7\2\u01c8\6\0\1\u01c8\10\0\4\113"+
-    "\6\0\1\113\6\0\5\113\1\0\6\113\1\u01e5\4\113"+
-    "\1\0\12\113\1\0\1\113\1\u01e5\2\113\1\0\11\113"+
-    "\10\0\4\166\6\0\1\166\6\0\5\166\1\0\6\166"+
-    "\1\u01e6\4\166\1\0\6\166\1\u01e7\3\166\1\0\4\166"+
-    "\1\0\11\166\54\0\1\u01e8\76\0\1\u01e9\13\0\1\u01e9"+
-    "\64\0\1\u01ea\11\0\1\u01ea\71\0\1\u01eb\11\0\1\u01eb"+
-    "\74\0\1\u01ec\13\0\1\u01ec\22\0\2\231\1\0\33\231"+
-    "\1\u01ed\45\231\2\240\1\0\33\240\1\u01ee\45\240\14\u0151"+
-    "\1\u0152\21\u0151\1\u01ef\45\u0151\12\u0155\1\u0156\23\u0155\1\u01f0"+
-    "\45\u0155\12\u01dc\1\u01ad\67\u01dc\1\u01f1\1\u01ad\14\u01de\1\u01b1"+
-    "\65\u01de\1\u01f2\1\u01b1\14\u0161\1\u0162\21\u0161\1\u01f3\45\u0161"+
-    "\12\u0165\1\u0166\23\u0165\1\u01f4\45\u0165\12\u01e1\1\u01bd\67\u01e1"+
-    "\1\u01f5\1\u01bd\14\u01e3\1\u01c1\65\u01e3\1\u01f6\1\u01c1\37\0"+
-    "\1\u01f7\52\0\4\113\6\0\1\113\6\0\5\113\1\0"+
-    "\3\113\1\u01f8\7\113\1\0\4\113\1\u01f8\5\113\1\0"+
-    "\4\113\1\0\11\113\10\0\4\166\6\0\1\166\6\0"+
-    "\5\166\1\0\11\166\1\u01f9\1\166\1\0\12\166\1\0"+
-    "\4\166\1\0\11\166\10\0\4\166\6\0\1\166\6\0"+
-    "\5\166\1\0\10\166\1\u01fa\2\166\1\0\12\166\1\0"+
-    "\4\166\1\0\11\166\55\0\1\u01fb\23\0\1\u01fb\50\0"+
-    "\1\u01fc\17\0\1\u01fc\66\0\1\u01fd\12\0\1\u01fd\52\0"+
-    "\1\u01fe\107\0\1\u01ff\34\0\1\u01ff\11\0\2\231\1\0"+
-    "\34\231\1\u0200\44\231\2\240\1\0\34\240\1\u0201\44\240"+
-    "\14\u0151\1\u0152\22\u0151\1\u0202\44\u0151\12\u0155\1\u0156\24\u0155"+
-    "\1\u0203\44\u0155\12\u01dc\1\u0204\67\u01dc\1\u01f1\1\u01ad\14\u01de"+
-    "\1\u0205\65\u01de\1\u01f2\1\u01b1\14\u0161\1\u0162\22\u0161\1\u0206"+
-    "\44\u0161\12\u0165\1\u0166\24\u0165\1\u0207\44\u0165\12\u01e1\1\u0208"+
-    "\67\u01e1\1\u01f5\1\u01bd\14\u01e3\1\u0209\65\u01e3\1\u01f6\1\u01c1"+
-    "\40\0\1\u020a\51\0\4\166\6\0\1\166\6\0\5\166"+
-    "\1\0\11\166\1\u020b\1\166\1\0\12\166\1\0\4\166"+
-    "\1\0\11\166\10\0\4\166\6\0\1\166\6\0\5\166"+
-    "\1\0\6\166\1\u020c\4\166\1\0\12\166\1\0\4\166"+
-    "\1\0\11\166\44\0\1\u020d\11\0\1\u020d\67\0\1\u020e"+
-    "\14\0\1\u020e\66\0\1\u020f\14\0\1\u020f\26\0\2\231"+
-    "\1\0\35\231\1\u0210\43\231\2\240\1\0\35\240\1\u0211"+
-    "\43\240\14\u0151\1\u0152\23\u0151\1\u0212\43\u0151\12\u0155\1\u0156"+
-    "\25\u0155\1\u0213\43\u0155\14\u0161\1\u0162\23\u0161\1\u0214\43\u0161"+
-    "\12\u0165\1\u0166\25\u0165\1\u0215\43\u0165\37\0\1\u0216\52\0"+
-    "\4\166\6\0\1\166\6\0\5\166\1\0\13\166\1\0"+
-    "\4\166\1\u0217\5\166\1\0\4\166\1\0\11\166\10\0"+
-    "\4\166\6\0\1\166\6\0\5\166\1\0\5\166\1\u0218"+
-    "\5\166\1\0\12\166\1\0\4\166\1\0\11\166\2\0"+
-    "\2\231\1\0\34\231\1\u0219\44\231\2\240\1\0\34\240"+
-    "\1\u021a\44\240\14\u0151\1\u0152\22\u0151\1\u021b\44\u0151\12\u0155"+
-    "\1\u0156\24\u0155\1\u021c\44\u0155\14\u0161\1\u0162\22\u0161\1\u021d"+
-    "\44\u0161\12\u0165\1\u0166\24\u0165\1\u021e\44\u0165\34\0\1\u021f"+
-    "\55\0\4\166\6\0\1\166\6\0\5\166\1\0\13\166"+
-    "\1\0\12\166\1\0\4\166\1\0\1\166\1\u0220\7\166"+
-    "\2\0\2\231\1\0\31\231\1\u0221\47\231\2\240\1\0"+
-    "\31\240\1\u0222\47\240\14\u0151\1\u0152\17\u0151\1\u0223\47\u0151"+
-    "\12\u0155\1\u0156\21\u0155\1\u0224\47\u0155\14\u0161\1\u0162\17\u0161"+
-    "\1\u0225\47\u0161\12\u0165\1\u0166\21\u0165\1\u0226\47\u0165\6\0"+
-    "\4\166\6\0\1\166\6\0\5\166\1\0\13\166\1\0"+
-    "\4\166\1\u0227\5\166\1\0\4\166\1\0\11\166\10\0"+
-    "\4\166\6\0\1\166\6\0\5\166\1\0\10\166\1\u0228"+
-    "\2\166\1\0\12\166\1\0\4\166\1\0\11\166\10\0"+
-    "\4\166\6\0\1\166\6\0\5\166\1\0\4\166\1\u0229"+
-    "\6\166\1\0\12\166\1\0\4\166\1\0\11\166\10\0"+
-    "\4\166\6\0\1\166\6\0\5\166\1\0\5\166\1\u022a"+
-    "\5\166\1\0\12\166\1\0\4\166\1\0\11\166\2\0"+
-    "\6\u022b\4\u022c\6\u022b\1\u022c\5\u022b\1\0\5\u022c\1\u022b"+
-    "\13\u022c\1\u022b\12\u022c\1\u022b\4\u022c\1\u022b\11\u022c\2\u022b"+
-    "\41\0\1\u022d\3\0\1\u022e\7\0\1\u022f\1\u0230\20\0"+
-    "\1\u0231\12\0\4\166\6\0\1\166\6\0\5\166\1\0"+
-    "\4\166\1\u0232\3\166\1\u0233\2\166\1\0\4\166\1\u0234"+
-    "\1\u0235\4\166\1\0\4\166\1\0\6\166\1\u0236\2\166"+
-    "\60\0\1\u0237\74\0\1\u0238\112\0\1\u0239\102\0\1\u023a"+
-    "\104\0\1\u023b\33\0\4\166\6\0\1\166\6\0\5\166"+
-    "\1\0\13\166\1\0\5\166\1\u023c\4\166\1\0\4\166"+
-    "\1\0\11\166\10\0\4\166\6\0\1\166\6\0\5\166"+
-    "\1\0\12\166\1\u023d\1\0\12\166\1\0\4\166\1\0"+
-    "\11\166\10\0\4\166\6\0\1\166\6\0\5\166\1\0"+
-    "\13\166\1\0\5\166\1\u023e\4\166\1\0\4\166\1\0"+
-    "\11\166\10\0\4\166\6\0\1\166\6\0\5\166\1\0"+
-    "\13\166\1\0\4\166\1\u023f\5\166\1\0\4\166\1\0"+
-    "\11\166\10\0\4\166\6\0\1\166\6\0\5\166\1\0"+
-    "\13\166\1\0\5\166\1\u0240\4\166\1\0\4\166\1\0"+
-    "\11\166\45\0\1\u0241\132\0\1\u0242\104\0\1\u0243\65\0"+
-    "\1\u0244\121\0\1\u0245\16\0\4\166\6\0\1\166\6\0"+
-    "\5\166\1\0\6\166\1\u0246\4\166\1\0\12\166\1\0"+
-    "\4\166\1\0\11\166\10\0\4\166\6\0\1\166\6\0"+
-    "\5\166\1\0\13\166\1\0\12\166\1\0\4\166\1\0"+
-    "\1\166\1\u0247\7\166\10\0\4\166\6\0\1\166\6\0"+
-    "\5\166\1\0\13\166\1\0\12\166\1\0\4\166\1\0"+
-    "\2\166\1\u0248\6\166\10\0\4\166\6\0\1\166\6\0"+
-    "\5\166\1\0\13\166\1\0\4\166\1\u0249\5\166\1\0"+
-    "\4\166\1\0\11\166\10\0\4\166\6\0\1\166\6\0"+
-    "\5\166\1\0\13\166\1\0\12\166\1\0\4\166\1\0"+
-    "\2\166\1\u024a\6\166\47\0\1\u024b\71\0\1\u024c\103\0"+
-    "\1\u024d\113\0\1\u024e\102\0\1\u024f\47\0\4\166\6\0"+
-    "\1\166\6\0\5\166\1\0\10\166\1\u0250\2\166\1\0"+
-    "\12\166\1\0\4\166\1\0\11\166\10\0\4\166\6\0"+
-    "\1\166\6\0\4\166\1\u0251\1\0\13\166\1\0\12\166"+
-    "\1\0\4\166\1\0\11\166\10\0\4\166\6\0\1\166"+
-    "\6\0\4\166\1\u0252\1\0\13\166\1\0\12\166\1\0"+
-    "\4\166\1\0\11\166\10\0\4\166\6\0\1\166\6\0"+
-    "\5\166\1\0\6\166\1\u0253\4\166\1\0\12\166\1\0"+
-    "\4\166\1\0\11\166\10\0\4\166\6\0\1\166\6\0"+
-    "\5\166\1\0\5\166\1\u0254\5\166\1\0\12\166\1\0"+
-    "\4\166\1\0\11\166\60\0\1\u0255\125\0\1\u0256\50\0"+
-    "\1\u0257\103\0\1\u0258\44\0\4\166\6\0\1\166\6\0"+
-    "\5\166\1\0\13\166\1\0\5\166\1\u0259\4\166\1\0"+
-    "\4\166\1\0\11\166\10\0\4\166\6\0\1\166\6\0"+
-    "\5\166\1\0\13\166\1\0\12\166\1\0\4\166\1\0"+
-    "\7\166\1\u025a\1\166\10\0\4\166\6\0\1\166\6\0"+
-    "\5\166\1\0\10\166\1\u025b\2\166\1\0\12\166\1\0"+
-    "\4\166\1\0\11\166\10\0\4\166\6\0\1\166\6\0"+
-    "\5\166\1\0\10\166\1\u025c\2\166\1\0\12\166\1\0"+
-    "\4\166\1\0\11\166\103\0\1\u025d\61\0\1\u0245\125\0"+
-    "\1\u024f\103\0\1\u025e\10\0\4\166\6\0\1\166\6\0"+
-    "\5\166\1\0\13\166\1\0\12\166\1\0\4\166\1\0"+
-    "\10\166\1\u025f\10\0\4\166\6\0\1\166\6\0\5\166"+
-    "\1\0\13\166\1\0\6\166\1\u024a\3\166\1\0\4\166"+
-    "\1\0\11\166\10\0\4\166\6\0\1\166\6\0\5\166"+
-    "\1\0\13\166\1\0\12\166\1\0\4\166\1\0\10\166"+
-    "\1\u0254\10\0\4\166\6\0\1\166\6\0\5\166\1\0"+
-    "\13\166\1\0\12\166\1\0\4\166\1\0\10\166\1\u0260"+
-    "\35\0\1\u0245\150\0\1\u0261\11\0\4\166\6\0\1\166"+
-    "\6\0\4\166\1\u024a\1\0\13\166\1\0\12\166\1\0"+
-    "\4\166\1\0\11\166\10\0\4\166\6\0\1\166\6\0"+
-    "\5\166\1\0\13\166\1\0\12\166\1\0\4\166\1\0"+
-    "\7\166\1\u0262\1\166\57\0\1\u0245\34\0\4\166\6\0"+
-    "\1\166\6\0\5\166\1\0\13\166\1\0\4\166\1\u024a"+
-    "\5\166\1\0\4\166\1\0\11\166\2\0";
-
-  /** 
-   * 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, 
-     0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
-     1,  1,  1,  1,  0,  0,  0,  0,  1,  1,  0,  1,  0,  0,  0,  0, 
-     0,  0,  1,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  9, 
-     1,  9,  1,  1,  9,  9,  1,  1,  1,  1,  1,  1,  1,  1,  9,  1, 
-     1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  9,  1,  1,  9,  1,  1, 
-     1,  1,  9,  1,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1,  1, 
-     1,  1,  9,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  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,  1,  9,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1, 
-     9,  1,  1,  1,  1,  9,  9,  1,  9,  3,  3,  3,  3,  3,  3,  9, 
-     9,  1,  1,  1,  9,  1,  1,  1,  1,  1,  9,  9,  1,  9,  3,  3, 
-     3,  3,  3,  3,  9,  9,  1,  1,  1,  9,  1,  1,  1,  9,  9,  1, 
-     1,  0,  1,  0,  9,  1,  2,  1,  2,  1,  1,  0,  0,  0,  9,  1, 
-     1,  9,  9,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0,  0,  9,  1, 
-     0,  0,  1,  9,  0,  9,  0,  0,  9,  0,  0,  0,  9,  1,  1,  0, 
-     1,  0,  9,  0,  0,  0,  1,  1,  0,  0,  0,  0,  9,  0,  0,  0, 
-     0,  9,  0,  0,  0,  1,  0,  0,  1,  0,  0,  9,  0,  0,  1,  0, 
-     0,  9,  0,  0,  0,  1,  0,  1,  1,  0,  0,  9,  0,  0,  0,  1, 
-     0,  1,  1,  1,  0,  0,  9,  9,  9,  0,  9,  9,  1,  1,  1,  1, 
-     2, 13,  3,  2,  2, 13,  3,  2,  0,  1,  1,  0,  1,  1,  1,  1, 
-     2, 13,  3,  2,  2, 13,  3,  2,  0,  1,  1,  0,  1,  1,  0,  9, 
-     9,  9,  0,  0,  1,  1,  1,  9,  0,  0, 13,  9, 13,  9,  9,  1, 
-     1,  0,  0,  1,  3,  2,  2,  3,  2,  2,  0,  0,  0,  0,  0,  0, 
-     1,  0,  0,  1,  0,  1,  1,  1,  0,  1,  0,  1,  1,  1,  0,  0, 
-     1,  1,  1,  0,  3,  3,  2,  3,  3,  2,  1,  1,  0,  0,  1,  1, 
-     0,  0,  1,  1,  3,  3,  2,  3,  3,  2,  1,  1,  0,  0,  1,  1, 
-     0,  0,  9,  9,  0,  1,  9,  0,  1,  1,  5, 13, 13,  0,  0,  0, 
-     0,  0,  0,  0,  1,  0,  1,  9,  9,  2,  2,  0,  9,  0,  2,  2, 
-     0,  9,  0,  0,  1,  1,  1,  0,  0,  0,  0,  0,  1,  1,  2,  2, 
-     0,  0,  2,  2,  0,  0,  0,  1,  1,  1,  0,  0,  0,  9,  9,  1, 
-     1,  2,  2,  1,  1,  2,  2,  1,  1,  0,  1,  1,  9,  9,  9,  1, 
-     1,  2,  2,  2,  2,  0,  1,  1,  1,  1,  2,  2,  2,  2,  9,  1, 
-     1,  1,  3,  3,  3,  3,  1,  1,  1,  1,  0,  1,  0,  0,  0,  0, 
-     0,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1, 
-     0,  0,  1,  0,  0,  1,  1,  1,  1,  1,  0,  0,  0,  0,  9,  1, 
-     1,  1,  1,  1,  0,  0,  0,  0,  1,  1,  1,  1,  0,  0,  1,  1, 
-     0,  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 ContextRegionContainer fBufferedEmbeddedContainer = null;
-	private String f_context = null;
-
-	// state stack for handling embedded regions
-	private IntStack fStateStack = new IntStack();
-	// a "hint" as to what an embedded region should be evaluated
-	private String fEmbeddedHint = UNDEFINED;
-	// a "hint" as to what state to enter once an embedded region has
-	//   been completed
-	private int fEmbeddedPostState = YYINITIAL;
-	// the container used to create embedded regions
-	private ContextRegionContainer fEmbeddedContainer = null;
-	private static final String PROXY_CONTEXT = "PROXY_CONTEXT";
-
-	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 name of the current tag inside of an embedded region
-	private String internalTagName = null;
-	private String internalContext = null;
-
-	// the list of tag name BlockMarkers
-	private List fBlockMarkers = new ArrayList(0);
-	private List fNestablePrefixes = new ArrayList(1);
-	
-	// where the last internal container block was found
-	private int fLastInternalBlockStart = -1;
-
-	// required to not seek text blocks on an end tag
-	private boolean fIsBlockingEnabled = false;
-	private boolean fIsCaseSensitiveBlocking = true;
-
-	private static final boolean fForbidJSP = false;
-	
-	private int fELlevel = 0;
-
-	private JSPParserRegionFactory fRegionFactory = new JSPParserRegionFactory();
-
-	private static final String rcsver = "$Id: JSPTokenizer.java,v 1.1 2004/11/11 08:35:28 david_williams Exp $";//$NON-NLS-1$
-
-	/**
-	 * user method 
-	 */
-	public final void addBlockMarker(BlockMarker marker) {
-		if(containsTagName(marker.getTagName()))
-			return;
-		fBlockMarkers.add(marker);
-	}
-	/**
-	 * user method
-	 */
-	public final void addNestablePrefix(TagMarker marker) {
-		fNestablePrefixes.add(marker);
-	}
-	/* user method */
-	public List getNestablePrefixes() {
-		return fNestablePrefixes;
-	}
-	/**
-	 * user method
-	 */
-	private boolean isNestable(String tagName) {
-		//Iterator blocks = fNestablePrefixes.iterator();
-		//while(blocks.hasNext()) {
-		//	TagMarker marker = (TagMarker)blocks.next();
-		//	String markerName = marker.getTagName();
-		//	if(tagName.length() > markerName.length() + 1 && tagName.startsWith(markerName) && tagName.charAt(markerName.length()) == ':') {
-		//		return marker.isGlobal() || getOffset() >= marker.getMarker().getStart();
-		//	}
-		//}
-		//return false;
-		return true;
-	}
-	/**
-	 * user method 
-	 */
-	public final void removeNestablePrefix(String name) {
-		if (fNestablePrefixes != null) {
-			Iterator nestables = fNestablePrefixes.iterator();
-			while (nestables.hasNext()) {
-				if (((TagMarker) nestables.next()).getTagName().equalsIgnoreCase(name))
-					nestables.remove();
-			}
-		}
-	}
-	/**
-	 * 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 */
-	private final void assembleEmbeddedTagSequence(String startType, String endTagName) {
-		assembleEmbeddedContainer(startType, null, endTagName);
-	}
-	/* user method */
-	private final void assembleEmbeddedContainer(String startType, String[] endTypes) {
-		assembleEmbeddedContainer(startType, endTypes, null);
-	}
-	/* user method */
-	private final void assembleEmbeddedContainer(String startType, String endType) {
-		assembleEmbeddedContainer(startType, new String[]{endType}, null);
-	}
-	/**
-	 *  user method 
-	 * 
-	 * Assembles an embedded container beginning with the given startType as
-	 * the first ContextRegion within it and of the type fEmbeddedHint.  The
-	 * endTypes[] array contains the context types that will cause a successful
-	 * exit.  Use of the endTagName parameter alters this behavior to force an
-	 * exit on an XML_TAG_CLOSE after seeing an XML_TAG_NAME whose significant
-	 * text matches the endTagName String.  All contents in between are
-	 * insignificant, and yes, this means comments are allowed inside.
-	 **/
-	private final void assembleEmbeddedContainer(String startType, String[] endTypes, String endTagName) {
-		// the context of the region being added to the embedded container
-		internalContext = startType;
-		// keep track of where this container began; to provide relative indeces for the regions
-		int containerStart = yychar;
-		boolean notFinished = true;
-		// keep track of where we seem to be so that the endTagName can be checked
-		boolean isInEndTag = false;
-		boolean isInFirstTag = true;
-		// create the embedded container and setup its "type"
-		if (fEmbeddedContainer == null) {
-			fEmbeddedContainer = new ContextRegionContainer();
-			fEmbeddedContainer.setType(fEmbeddedHint);
-			fEmbeddedContainer.setStart(containerStart);
-			// TODO: parent region needs to be set .... but not sure where to get it from 
-			//		fEmbeddedContainer.setParent(parentRegion);
-		}
-		containerStart = fEmbeddedContainer.getStart();
-		while (notFinished) {
-			// add the region to the container
-			if (internalContext != null && internalContext != PROXY_CONTEXT) {
-				ITextRegion newToken = fRegionFactory.createToken(internalContext, yychar - containerStart, yylength(), yylength());
-				fEmbeddedContainer.getRegions().add(newToken);
-				fEmbeddedContainer.setLength(fEmbeddedContainer.getLength() + yylength());
-				fEmbeddedContainer.setTextLength(fEmbeddedContainer.getTextLength() + yylength());
-				// DW, 4/16/2003 token regions no longer have parents
-				//newToken.setParent(fEmbeddedContainer);
-			}
-			try {
-				// longscan determines whether to attempt a blockTagScan within the embedded container
-				boolean longscan = false;
-				// save the tokenizer state in case of a block tag scan
-				int previousState = yystate();
-				String previousCurrentTagName = fCurrentTagName;
-				int previousPostState = fEmbeddedPostState;
-				String previousEmbeddedHint = fEmbeddedHint;
-				// determine if a block tag scan is necessary
-				if (internalContext == XML_TAG_NAME) {
-					internalTagName = yytext();
-					if(!isNestable(internalTagName)) {
-						internalTagName = null;
-						// snagged a tag name we shouldn't have
-						fEmbeddedPostState = ST_ABORT_EMBEDDED;
-						notFinished = false;
-					}
-				}
-				else if (internalContext == XML_TAG_OPEN || internalContext == XML_END_TAG_OPEN) {
-					internalTagName = null;
-				}
-				// do upkeep for endTagName usage; must be here since the next token could be the close
-				if (internalContext == XML_END_TAG_OPEN) {
-					isInEndTag = true;
-				} else if (internalContext == XML_TAG_CLOSE) {
-					isInFirstTag = isInEndTag = false;
-				} else {
-				 	ITextRegionList embeddedRegions = fEmbeddedContainer.getRegions();
-					if (embeddedRegions.size() > 2 && (embeddedRegions.get(embeddedRegions.size()-1)).getType() == XML_TAG_CLOSE && (embeddedRegions.get(embeddedRegions.size() - 3)).getType() == XML_TAG_OPEN && internalTagName != null) {
-						if (containsTagName(internalTagName)) {
-							longscan = true;
-							yybegin(ST_BLOCK_TAG_SCAN);
-						}
-					}
-				}
-				if (longscan)
-					fCurrentTagName = internalTagName;
-				// read the next region and context
-				internalContext = primGetNextToken();
-				if (longscan) {
-					// Returning from a block tag scan requires restoring some state variables
-					// as well as handling the block region and setting up for normal scanning
-					// inside the embedded container
-					ITextRegion newToken = fRegionFactory.createToken(internalContext, yychar - containerStart, yylength(), yylength());
-					fEmbeddedContainer.getRegions().add(newToken);
-					fEmbeddedContainer.setLength(fEmbeddedContainer.getLength() + yylength());
-					fEmbeddedContainer.setTextLength(fEmbeddedContainer.getTextLength() + yylength());
-					// DW, 4/16/2003 token regions no longer have parents
-					// newToken.setParent(fEmbeddedContainer);
-					longscan = false;
-					fEmbeddedPostState = previousPostState;
-					fEmbeddedHint = previousEmbeddedHint;
-					fCurrentTagName = previousCurrentTagName;
-					yybegin(previousState);
-					internalContext = primGetNextToken();
-				}
-			} catch (IOException e) {
-				// primGetNextToken() calls may throw an IOException
-				// catch and do nothing since the isEOF check below
-				// will properly exit if the input was too short
-			} catch (Exception f) {
-				// some other exception happened; never should
-				Logger.logException(f);
-			}
-			boolean isEndingType = yystate() == ST_ABORT_EMBEDDED;
-			if(!isEndingType) {
-				// check for ending context
-				if (endTagName == null) {
-					for (int i = 0; i < endTypes.length; i++) {
-						isEndingType = isEndingType || (internalContext == endTypes[i]);
-					}
-				}
-				else {
-					isEndingType = ((isInEndTag && internalContext == XML_TAG_CLOSE) || (isInFirstTag && internalContext == XML_EMPTY_TAG_CLOSE)) && internalTagName != null && internalTagName.equals(endTagName);
-				}
-			}
-			ITextRegionList embeddedList = fEmbeddedContainer.getRegions();
-			notFinished = notFinished && ((!isEndingType) && !isEOF() && (endTagName != null || internalContext != UNDEFINED) && !(internalContext == PROXY_CONTEXT && (embeddedList.get(embeddedList.size()-1)).getType() == UNDEFINED));
-		}
-		// finish adding the last context
-		if (internalContext != null && internalContext != PROXY_CONTEXT) {
-			ITextRegion newToken = fRegionFactory.createToken(internalContext, yychar - containerStart, yylength(), yylength());
-			fEmbeddedContainer.getRegions().add(newToken);
-			// DW, 4/16/2003 token regions no longer have parents
-			//newToken.setParent(fEmbeddedContainer);
-			fEmbeddedContainer.setLength(yychar - containerStart + yylength());
-			fEmbeddedContainer.setTextLength(yychar - containerStart + yylength());
-		}
-		yybegin(fEmbeddedPostState);
-	}
-	/* user method */
-	public final boolean isCaseSensitiveBlocking() {
-		return fIsCaseSensitiveBlocking;
-	}
-	/* user method */
-	public final void setCaseSensitiveBlocking(boolean newValue) {
-		fIsCaseSensitiveBlocking = newValue;
-	}
-	/* user method */
-	public boolean getBlockMarkerAllowsJSP() {
-		return getBlockMarkerAllowsJSP(fCurrentTagName);
-	}
-	/* user method */
-	public boolean getBlockMarkerAllowsJSP(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 marker.allowsJSP();
-			else if(!casesensitive && marker.getTagName().equalsIgnoreCase(name))
-				return marker.allowsJSP();
-		}
-		return true;
-	}
-	/* user method */
-	public boolean getBlockMarkerCaseSensitivity() {
-		return getBlockMarkerCaseSensitivity(fCurrentTagName);
-	}
-	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 allowJSP - check for and allow for JSP markup <%%>
- * @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, boolean allowJSP, boolean allowCDATA, 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;
-	// Check for JSP starts ("<%") if the tag is global like SCRIPT or STYLE
-	boolean checkJSPs = allowJSP && !fForbidJSP;
-	boolean checkedForJSPsOnce = !checkJSPs;
-	boolean checkedJSPsAtStartOnce = 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();
-//		c = (char) n;
-		// If the input was too short or we've exhausted the input, stop immediately.
-		if (n == YYEOF && checkedForJSPsOnce) {
-			stillSearching = false;
-		}
-		else {
-			/**
-			 * Look for starting JSPs "<%"
-			 */
-			checkedForJSPsOnce = true;
-			// 1) yy_currentPos - searchStringLength : There's at least searchStringLength of input available; once that's read, check for JSPs
-			// ---
-			// Look for a JSP beginning at current-searchStringLength; if so, backup and switch scanner states to handle it.
-			// 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].
-			if(checkJSPs && yy_currentPos > searchStringLength && yy_currentPos - searchStringLength != fLastInternalBlockStart && 
-				yy_buffer[yy_currentPos - searchStringLength] == '<' && yy_buffer[yy_currentPos - searchStringLength + 1] == '%') {
-				fLastInternalBlockStart = yy_markedPos = yy_currentPos - searchStringLength;
-				yy_currentPos = yy_markedPos + 1;
-				int resumeState = yystate();
-				yybegin(ST_BLOCK_TAG_INTERNAL_SCAN);
-				if(yy_markedPos == yy_startRead) {
-					String jspContext = primGetNextToken();
-					yybegin(resumeState);
-					return jspContext;
-				}
-				return searchContext;
-			}
-			// 2) yy_currentPos - jspstarter.length : There's not searchStringLength of input available; check for a JSP 2 spots back in what we could read
-			// ---
-			// Look for a JSP beginning at the current position; this case wouldn't be handled by the preceding section
-			// since it relies upon *having* closeTagStringLength amount of input to work as designed.  Must be sure we don't
-			// spill over the end of the buffer while checking.
-			else if(checkJSPs && yy_startRead != fLastInternalBlockStart && yy_currentPos > 0 && yy_currentPos < yy_buffer.length - 1 &&
-					yy_buffer[yy_currentPos - 1] == '<' && yy_buffer[yy_currentPos] == '%') {
-				fLastInternalBlockStart = yy_markedPos = yy_currentPos - 1;
-				yy_currentPos = yy_markedPos + 1;
-				int resumeState = yystate();
-				yybegin(ST_BLOCK_TAG_INTERNAL_SCAN);
-				if(yy_markedPos == yy_startRead) {
-					String jspContext = primGetNextToken();
-					yybegin(resumeState);
-					return jspContext;
-				}
-				return searchContext;
-			}
-			// 3) yy_currentPos..(yy_currentPos+jspStartlength-1) : Check at the start of the block one time
-			// ---
-			// Look for a JSP beginning immediately in the block area; this case wouldn't be handled by the preceding section
-			// since it relies upon yy_currentPos equaling exactly the previous end +1 to work as designed.
-			else if(checkJSPs && !checkedJSPsAtStartOnce && yy_startRead != fLastInternalBlockStart && yy_startRead > 0 &&
-					yy_startRead < yy_buffer.length - 1 && yy_buffer[yy_startRead] == '<' && yy_buffer[yy_startRead + 1] == '%') {
-				checkedJSPsAtStartOnce = true;
-				fLastInternalBlockStart = yy_markedPos = yy_startRead;
-				yy_currentPos = yy_markedPos + 1;
-				int resumeState = yystate();
-				yybegin(ST_BLOCK_TAG_INTERNAL_SCAN);
-				if(yy_markedPos == yy_startRead) {
-					String jspContext = primGetNextToken();
-					yybegin(resumeState);
-					return jspContext;
-				}
-				return searchContext;
-			}
-
-
-			/**
-			 * Look for starting CDATA "<![CDATA["
-			 */
-			// 1) yy_currentPos - searchStringLength: There's at least searchStringLength of input available; once that's read, check for CDATA
-			// ---
-			// Look for a CDATA beginning at current-searchStringLength; if so, backup and switch scanner states to handle it.
-			// Ensure that we've not encountered a complete block (<[!CDATA[]]>) that was *shorter* than the closeTagString and
-			// thus found twice at current-targetLength [since the first scan would have come out this far anyway].
-/*			if(checkCDATA && yy_currentPos > searchStringLength && yy_currentPos + searchStringLength < yy_buffer.length && yy_currentPos - searchStringLength != fLastInternalBlockStart && 
-				charsMatch(cdataStarter, yy_buffer, 0, yy_currentPos - searchStringLength)) {
-				fLastInternalBlockStart = yy_markedPos = yy_currentPos - searchStringLength;
-				yy_currentPos = yy_markedPos + 1;
-				int resumeState = yystate();
-				// go to a state where CDATA can be found
-				if (fEmbeddedContainer == null) {
-					fEmbeddedContainer = new ContextRegionContainer();
-					fEmbeddedContainer.setType(searchContext);
-					fEmbeddedContainer.setStart(yychar);
-				}
-				ITextRegion newToken = fRegionFactory.createToken(searchContext, yychar, yylength(), yylength());
-				fEmbeddedContainer.getRegions().add(newToken);
-				fEmbeddedContainer.setLength(fEmbeddedContainer.getLength() + yylength());
-				fEmbeddedContainer.setTextLength(fEmbeddedContainer.getTextLength() + yylength());
-				yybegin(YYINITIAL);
-				String context = primGetNextToken();
-				if(context.equals(XMLRegionContexts.XML_CDATA_OPEN)) {
-					assembleEmbeddedContainer(XMLRegionContexts.XML_CDATA_OPEN, XMLRegionContexts.XML_CDATA_CLOSE);
-				}
-				yybegin(resumeState);
-				return searchContext;
-			}
-*//*
-			// 2) yy_currentPos - cdataStarter.length: There's not searchStringLength of input available; check for a CDATA right here spots back in what we could read
-			// ---
-			// Look for a JSP beginning at the current position; this case wouldn't be handled by the preceding section
-			// since it relies upon *having* closeTagStringLength amount of input to work as designed.  Must be sure we don't
-			// spill over the end of the buffer while checking.
-			else if(checkCDATA && yy_startRead != fLastInternalBlockStart && yy_currentPos > 0 && yy_currentPos < yy_buffer.length - 1 &&
-					yy_buffer[yy_currentPos - 1] == '<' && yy_buffer[yy_currentPos] == '%') {
-				fLastInternalBlockStart = yy_markedPos = yy_currentPos - 1;
-				yy_currentPos = yy_markedPos + 1;
-				int resumeState = yystate();
-				yybegin(ST_BLOCK_TAG_INTERNAL_SCAN);
-				if(yy_markedPos == yy_startRead) {
-					String jspContext = primGetNextToken();
-					yybegin(resumeState);
-					return jspContext;
-				}
-				return searchContext;
-			}
-			// 3) yy_currentPos : Check at the start of the block one time
-			// ---
-			// Look for a JSP beginning immediately in the block area; this case wouldn't be handled by the preceding section
-			// since it relies upon yy_currentPos equaling exactly the previous end +1 to work as designed.
-			else if(checkCDATA && !checkedForCDATAOnce && yy_startRead != fLastInternalBlockStart && yy_startRead > 0 &&
-					yy_startRead < yy_buffer.length - 1 && yy_buffer[yy_startRead] == '<' && yy_buffer[yy_startRead + 1] == '%') {
-				checkedForCDATAOnce = true;
-				fLastInternalBlockStart = yy_markedPos = yy_startRead;
-				yy_currentPos = yy_markedPos + 1;
-				int resumeState = yystate();
-				yybegin(ST_BLOCK_TAG_INTERNAL_SCAN);
-				if(yy_markedPos == yy_startRead) {
-					String jspContext = primGetNextToken();
-					yybegin(resumeState);
-					return jspContext;
-				}
-				return searchContext;
-			}
-*/
-			// Check the characters in the target versus the last targetLength characters read from the buffer
-			// and see if it matches
-			if (n == YYEOF) {
-				stillSearching = false;
-			}
-			else {
-				same = true;
-				// safety check for array accesses
-				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 
- * does a lookahead for the current tag name
- */
-private final String doBlockTagScan() throws IOException {
-	fIsCaseSensitiveBlocking = getBlockMarkerCaseSensitivity();
-	return doScan("</" + fCurrentTagName, true, getBlockMarkerAllowsJSP(), 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 {
-		fEmbeddedContainer = null;
-		// load the starting non-whitespace token (assume that it is so)
-		if (fShouldLoadBuffered) {
-			if (fBufferedEmbeddedContainer != null) {
-				ITextRegion container = fBufferedEmbeddedContainer;
-				fBufferedEmbeddedContainer = null;
-				fShouldLoadBuffered = false;
-				return container;
-			}
-			context = fBufferedContext;
-			start = fBufferedStart;
-			textLength = length = fBufferedLength;
-			fShouldLoadBuffered = false;
-		} else {
-			context = primGetNextToken();
-			if (context == PROXY_CONTEXT) {
-				return fEmbeddedContainer;
-			} else if (context == XML_TAG_NAME || f_context == JSP_ROOT_TAG_NAME || f_context == JSP_DIRECTIVE_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 == PROXY_CONTEXT) {
-			fBufferedEmbeddedContainer = fEmbeddedContainer;
-			fShouldLoadBuffered = true;
-		} else if (f_context == XML_TAG_NAME || f_context == JSP_ROOT_TAG_NAME || f_context == JSP_DIRECTIVE_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 JSPTokenizer(){
-		super();
-	}
-	/* user method */
-	public JSPTokenizer(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();
-	
-		fLastInternalBlockStart = -1;
-	
-		context = null;
-		start = 0;
-		textLength = 0;
-		length = 0;
-	
-		fEmbeddedContainer = null;
-		
-		fELlevel = 0;
-	}
-	/**
-	 * user method
-	 *
-	 * @see com.ibm.sed.parser.BlockTokenizer#newInstance()
-	 */
-	public BlockTokenizer newInstance() {
-		JSPTokenizer newInstance = new JSPTokenizer();
-		// 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);
-		}
-		for(int i = 0; i < fNestablePrefixes.size(); i++) {
-			TagMarker marker = (TagMarker) fNestablePrefixes.get(i);
-			if(marker.isGlobal())
-				newInstance.addNestablePrefix(marker);
-		}
-		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, true, true, XML_COMMENT_TEXT, ST_XML_COMMENT_END, ST_XML_COMMENT_END);
-	}
-	/* user method */
-	private final String scanJSPCommentText() throws IOException {
-		// Scan for '--%>' and return the text up to that point as
-		//   JSP_COMMENT_TEXT unless the string occurs IMMEDIATELY, in which
-		//  case change to the ST_JSP_COMMENT_END state and return the next
-		//  context as usual.
-		return doScan("--%>", false, false, true, JSP_COMMENT_TEXT, ST_JSP_COMMENT_END, ST_JSP_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 JSPTokenizer(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 JSPTokenizer(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[28900];
-    int i = 0;  /* index in packed string  */
-    int j = 0;  /* index in unpacked array */
-    while (i < 7180) {
-      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 < 1376) {
-      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()!
-   */
-  private 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;
-
-    yy_pushbackPos = -1;
-    boolean yy_was_pushback;
-
-    while (true) {
-
-      yychar+= yylength();
-
-      boolean yy_counted = false;
-      for (yy_currentPos = yy_startRead; yy_currentPos < yy_markedPos;
-                                                      yy_currentPos++) {
-        switch (yy_buffer[yy_currentPos]) {
-        case '\r':
-          yyline++;
-          yy_counted = true;
-          break;
-        case '\n':
-          if (yy_counted)
-            yy_counted = false;
-          else {
-            yyline++;
-          }
-          break;
-        default:
-          yy_counted = false;
-        }
-      }
-
-      if (yy_counted) {
-        if ( yy_advance() == '\n' ) yyline--;
-        if ( !yy_atEOF ) yy_currentPos--;
-      }
-
-      yy_action = -1;
-
-      yy_currentPos = yy_startRead = yy_markedPos;
-
-      yy_state = yy_lexical_state;
-
-      yy_was_pushback = false;
-
-      yy_forAction: {
-        while (true) {
-    
-          yy_input = yy_advance();
-
-          if ( yy_input == YYEOF ) break yy_forAction;
-
-          int yy_next = yytrans[ yy_rowMap[yy_state] + yycmap[yy_input] ];
-          if (yy_next == -1) break yy_forAction;
-          yy_state = yy_next;
-
-          int yy_attributes = YY_ATTRIBUTE[yy_state];
-          if ( (yy_attributes & 2) > 0 )
-            yy_pushbackPos = yy_currentPos;
-
-          if ( (yy_attributes & 1) > 0 ) {
-            yy_was_pushback = (yy_attributes & 4) > 0;
-            yy_action = yy_state; 
-            yy_markedPos = yy_currentPos; 
-            if ( (yy_attributes & 8) > 0 ) break yy_forAction;
-          }
-
-        }
-      }
-
-      if (yy_was_pushback)
-        yy_markedPos = yy_pushbackPos;
-
-      switch (yy_action) {    
-
-        case 578: 
-        case 583: 
-        case 590: 
-        case 595: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("jsp directive tag name");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_EQUALS;
-        yybegin(ST_XML_ATTRIBUTE_NAME);
-        return JSP_DIRECTIVE_NAME;
- }
-        case 611: break;
-        case 542: 
-        case 544: 
-        case 545: 
-        case 546: 
-        case 547: 
-        case 548: 
-        case 549: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nCDATA start");//$NON-NLS-1$
-	fStateStack.push(yystate());
-	yybegin(ST_CDATA_TEXT);
-	return XML_CDATA_OPEN;
- }
-        case 612: break;
-        case 534: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("jsp:root tag name");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_EQUALS;
-        yybegin(ST_XML_ATTRIBUTE_NAME);
-        return JSP_ROOT_TAG_NAME;
- }
-        case 613: break;
-        case 526: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("element");//$NON-NLS-1$
-	yybegin(ST_XML_ELEMENT_DECLARATION);
-	return XML_ELEMENT_DECLARATION;
- }
-        case 614: break;
-        case 525: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("attlist");//$NON-NLS-1$
-	yybegin(ST_XML_ATTLIST_DECLARATION);
-	return XML_ATTLIST_DECLARATION;
- }
-        case 615: break;
-        case 524: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("doctype");//$NON-NLS-1$
-	yybegin(ST_XML_DOCTYPE_DECLARATION);
-	return XML_DOCTYPE_DECLARATION;
- }
-        case 616: break;
-        case 510: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("doctype external id");//$NON-NLS-1$
-	fEmbeddedHint = XML_DOCTYPE_EXTERNAL_ID_PUBREF;
-	yybegin(ST_XML_DOCTYPE_ID_PUBLIC);
-	return XML_DOCTYPE_EXTERNAL_ID_PUBLIC;
- }
-        case 617: break;
-        case 509: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("doctype external id");//$NON-NLS-1$
-	fEmbeddedHint = XML_DOCTYPE_EXTERNAL_ID_SYSREF;
-	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
-	return XML_DOCTYPE_EXTERNAL_ID_SYSTEM;
- }
-        case 618: break;
-        case 503: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction target");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_EQUALS;
-        yybegin(ST_DHTML_ATTRIBUTE_NAME);
-        return XML_TAG_NAME;
- }
-        case 619: break;
-        case 481: 
-        case 519: 
-        case 520: 
-          { 
-	return JSP_VBL_QUOTED_CONTENT;
- }
-        case 620: break;
-        case 476: 
-        case 515: 
-        case 516: 
-          { 
-	return JSP_EL_QUOTED_CONTENT;
- }
-        case 621: break;
-        case 472: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nJSP comment close");//$NON-NLS-1$
-	yybegin(YYINITIAL);
-	return JSP_COMMENT_CLOSE;
- }
-        case 622: break;
-        case 471: 
-          { 
-	yybegin(ST_JSP_COMMENT);
-	assembleEmbeddedContainer(JSP_COMMENT_OPEN, JSP_COMMENT_CLOSE);
-	if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN)
-		yybegin(ST_BLOCK_TAG_SCAN);
-	return PROXY_CONTEXT;
- }
-        case 623: break;
-        case 460: 
-          { 
-	if (Debug.debugTokenizer) {
-		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
-	}
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-	fStateStack.push(yystate());
-	if(yylength() > 2)
-		yypushback(yylength() -2);
-	if(Debug.debugTokenizer)
-		dump("VBL in attr value");//$NON-NLS-1$
-	yybegin(ST_JSP_VBL);
-	fELlevel++;
-	assembleEmbeddedContainer(JSP_VBL_OPEN, new String[]{JSP_VBL_CLOSE});
-	fStateStack.pop();
-	yybegin(ST_XML_ATTRIBUTE_NAME);
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_EQUALS;
-	return PROXY_CONTEXT;
- }
-        case 624: break;
-        case 459: 
-          { 
-	if (Debug.debugTokenizer) {
-		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
-	}
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-	fStateStack.push(yystate());
-	if(yylength() > 2)
-		yypushback(yylength() -2);
-	if(Debug.debugTokenizer)
-		dump("EL in attr value");//$NON-NLS-1$
-	yybegin(ST_JSP_EL);
-	fELlevel++;
-	assembleEmbeddedContainer(JSP_EL_OPEN, new String[]{JSP_EL_CLOSE});
-	fStateStack.pop();
-	yybegin(ST_XML_ATTRIBUTE_NAME);
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_EQUALS;
-	return PROXY_CONTEXT;
- }
-        case 625: break;
-        case 454: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nCharRef");//$NON-NLS-1$
-	return XML_CHAR_REFERENCE;
- }
-        case 626: break;
-        case 451: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\ncomment start");//$NON-NLS-1$
-	fEmbeddedHint = XML_COMMENT_TEXT;
-	fEmbeddedPostState = ST_XML_COMMENT;
-	yybegin(ST_XML_COMMENT);
-	return XML_COMMENT_OPEN;
- }
-        case 627: break;
-        case 450: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nJSP comment start");//$NON-NLS-1$
-	yybegin(ST_JSP_COMMENT);
-	return JSP_COMMENT_OPEN;
- }
-        case 628: break;
-        case 383: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("XML processing instruction target");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_EQUALS;
-        yybegin(ST_XML_PI_ATTRIBUTE_NAME);
-        return XML_TAG_NAME;
- }
-        case 629: break;
-        case 382: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("comment end");//$NON-NLS-1$
-	fEmbeddedHint = UNDEFINED;
-	yybegin(YYINITIAL);
-	return XML_COMMENT_CLOSE;
- }
-        case 630: break;
-        case 381: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("CDATA end");//$NON-NLS-1$
-	yybegin(fStateStack.pop());
-	return XML_CDATA_CLOSE;
- }
-        case 631: break;
-        case 380: 
-          { 
-	yybegin(ST_JSP_VBL);
-	if(yylength() > 2)
-		yypushback(yylength() - 2);
-	fELlevel++;
-	fEmbeddedHint = XML_CONTENT;
-	fEmbeddedPostState = YYINITIAL;
-	assembleEmbeddedContainer(JSP_VBL_OPEN, JSP_VBL_CLOSE);
-	fEmbeddedHint = XML_CONTENT;
-	yybegin(YYINITIAL);
-	return PROXY_CONTEXT;
- }
-        case 632: break;
-        case 379: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nPEReference");//$NON-NLS-1$
-	return XML_PE_REFERENCE;
- }
-        case 633: break;
-        case 378: 
-          { 
-	yybegin(ST_JSP_EL);
-	if(yylength() > 2)
-		yypushback(yylength() - 2);
-	fELlevel++;
-	fEmbeddedHint = XML_CONTENT;
-	fEmbeddedPostState = YYINITIAL;
-	assembleEmbeddedContainer(JSP_EL_OPEN, JSP_EL_CLOSE);
-	fEmbeddedHint = XML_CONTENT;
-	yybegin(YYINITIAL);
-	return PROXY_CONTEXT;
- }
-        case 634: break;
-        case 375: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nEntityRef");//$NON-NLS-1$
-	return XML_ENTITY_REFERENCE;
- }
-        case 635: break;
-        case 369: 
-        case 406: 
-        case 412: 
-        case 418: 
-        case 421: 
-        case 424: 
-        case 427: 
-        case 431: 
-        case 435: 
-        case 437: 
-        case 440: 
-        case 443: 
-        case 447: 
-          { 
-	/* JSP expression begun (anywhere)
-	 * A consequence of the start anywhere possibility is that the
-	 *  incoming state must be checked to see if it's erroneous
-	 *  due to the order of precedence generated
-	 */
-	// begin sanity checks
-	if(yystate() == ST_JSP_CONTENT) {
-		// at the beginning?!
-		yypushback(2);
-		return JSP_CONTENT;
-	}
-	else if(yystate() == ST_BLOCK_TAG_SCAN) {
-		yypushback(3);
-		return doBlockTagScan();
-	}
-	else if(yystate() == ST_XML_COMMENT) {
-		yypushback(3);
-		return scanXMLCommentText();
-	}
-	else if(yystate() == ST_JSP_COMMENT) {
-		yypushback(3);
-		return scanJSPCommentText();
-	}
-	// end sanity checks
-	fStateStack.push(yystate());
-	if(fStateStack.peek()==YYINITIAL) {
-		// the simple case, just an expression out in content
-		if(Debug.debugTokenizer)
-			dump("\nJSP expression start");//$NON-NLS-1$
-		yybegin(ST_JSP_CONTENT);
-		return JSP_EXPRESSION_OPEN;
-	}
-	else {
-		if (Debug.debugTokenizer) {
-			System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
-		}
-		if(Debug.debugTokenizer)
-			dump("JSP expression start");//$NON-NLS-1$
-		if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED)
-			fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED;
-		else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED)
-			fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED;
-		else if(yystate() == ST_CDATA_TEXT) {
-			fEmbeddedPostState = ST_CDATA_TEXT;
-			fEmbeddedHint = XML_CDATA_TEXT;
-		}
-		yybegin(ST_JSP_CONTENT);
-		assembleEmbeddedContainer(JSP_EXPRESSION_OPEN, JSP_CLOSE);
-		if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {
-			yybegin(ST_BLOCK_TAG_SCAN);
-			return BLOCK_TEXT;
-		}
-		// required help for successive embedded regions
-		if(yystate() == ST_XML_TAG_NAME) {
-			fEmbeddedHint = XML_TAG_NAME;
-			fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-		}
-		else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) {
-			fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-			fEmbeddedPostState = ST_XML_EQUALS;
-		}
-		else if(yystate() == ST_XML_ATTRIBUTE_VALUE) {
-			fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-			fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-		}
-		return PROXY_CONTEXT;
-	}
- }
-        case 636: break;
-        case 368: 
-        case 405: 
-        case 411: 
-        case 417: 
-        case 420: 
-        case 423: 
-        case 426: 
-        case 430: 
-        case 434: 
-        case 436: 
-        case 439: 
-        case 442: 
-        case 446: 
-          { 
-	/* JSP declaration begun (anywhere)
-	 * A consequence of the start anywhere possibility is that the
-	 *  incoming state must be checked to see if it's erroneous
-	 *  due to the order of precedence generated
-	 */
-	// begin sanity checks
-	if(yystate() == ST_JSP_CONTENT) {
-		// at the beginning?!
-		yypushback(2);
-		return JSP_CONTENT;
-	}
-	else if(yystate() == ST_BLOCK_TAG_SCAN) {
-		yypushback(3);
-		return doBlockTagScan();
-	}
-	else if(yystate() == ST_XML_COMMENT) {
-		yypushback(3);
-		return scanXMLCommentText();
-	}
-	else if(yystate() == ST_JSP_COMMENT) {
-		yypushback(3);
-		return scanJSPCommentText();
-	}
-	// end sanity checks
-	fStateStack.push(yystate());
-	if(fStateStack.peek()==YYINITIAL) {
-		// the simple case, just a declaration out in content
-		if(Debug.debugTokenizer)
-			dump("\nJSP declaration start");//$NON-NLS-1$
-		yybegin(ST_JSP_CONTENT);
-		return JSP_DECLARATION_OPEN;
-	}
-	else {
-		if (Debug.debugTokenizer) {
-			System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
-		}
-		if(Debug.debugTokenizer)
-			dump("JSP declaration start");//$NON-NLS-1$
-		if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED)
-			fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED;
-		else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED)
-			fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED;
-		else if(yystate() == ST_CDATA_TEXT) {
-			fEmbeddedPostState = ST_CDATA_TEXT;
-			fEmbeddedHint = XML_CDATA_TEXT;
-		}
-		yybegin(ST_JSP_CONTENT);
-		assembleEmbeddedContainer(JSP_DECLARATION_OPEN, JSP_CLOSE);
-		if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {
-			yybegin(ST_BLOCK_TAG_SCAN);
-			return BLOCK_TEXT;
-		}
-		// required help for successive embedded regions
-		if(yystate() == ST_XML_TAG_NAME) {
-			fEmbeddedHint = XML_TAG_NAME;
-			fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-		}
-		else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) {
-			fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-			fEmbeddedPostState = ST_XML_EQUALS;
-		}
-		else if(yystate() == ST_XML_ATTRIBUTE_VALUE) {
-			fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-			fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-		}
-		return PROXY_CONTEXT;
-	}
- }
-        case 637: break;
-        case 367: 
-          { 
-	fStateStack.push(yystate());
-	if(fStateStack.peek()==YYINITIAL) {
-		if(Debug.debugTokenizer)
-			dump("\nJSP directive start");//$NON-NLS-1$
-		yybegin(ST_JSP_DIRECTIVE_NAME);
-		return JSP_DIRECTIVE_OPEN;
-	}
-	else {
-		if (Debug.debugTokenizer) {
-			System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
-		}
-		if(Debug.debugTokenizer)
-			dump("JSP directive start");//$NON-NLS-1$
-		yybegin(ST_JSP_DIRECTIVE_NAME);
-		assembleEmbeddedContainer(JSP_DIRECTIVE_OPEN, new String[]{JSP_DIRECTIVE_CLOSE, JSP_CLOSE});
-		if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {
-			yybegin(ST_BLOCK_TAG_SCAN);
-			return BLOCK_TEXT;
-		}
-		return PROXY_CONTEXT;
-	}
- }
-        case 638: break;
-        case 357: 
-          { 
-	yybegin(ST_JSP_VBL_DQUOTES_END);
-	return JSP_VBL_QUOTED_CONTENT;
- }
-        case 639: break;
-        case 353: 
-          { 
-	yybegin(ST_JSP_VBL_SQUOTES_END);
-	return JSP_VBL_QUOTED_CONTENT;
- }
-        case 640: break;
-        case 351: 
-          { 
-	fELlevel++;
-	if(fELlevel == 1) {
-		return JSP_VBL_OPEN;
-	}
- }
-        case 641: break;
-        case 341: 
-          { 
-	yybegin(ST_JSP_EL_DQUOTES_END);
-	return JSP_EL_QUOTED_CONTENT;
- }
-        case 642: break;
-        case 337: 
-          { 
-	yybegin(ST_JSP_EL_SQUOTES_END);
-	return JSP_EL_QUOTED_CONTENT;
- }
-        case 643: break;
-        case 335: 
-          { 
-	//System.out.println(JSP_EL_CONTENT+ ":[" + yytext() + "]");
-	return JSP_EL_CONTENT;
- }
-        case 644: break;
-        case 334: 
-          { 
-	fELlevel++;
-	if(fELlevel == 1) {
-		return JSP_EL_OPEN;
-	}
- }
-        case 645: break;
-        case 331: 
-          { 
-	int enterState = yystate();
-	yybegin(ST_JSP_DQUOTED_VBL);
-	assembleEmbeddedContainer(JSP_VBL_OPEN, new String[]{JSP_VBL_CLOSE, XML_TAG_ATTRIBUTE_VALUE_DQUOTE});
-	// abort early when an unescaped double quote is found in the VBL
-	if(fEmbeddedContainer.getLastRegion().getType().equals(XML_TAG_ATTRIBUTE_VALUE_DQUOTE)) {
-		yybegin(ST_ABORT_EMBEDDED);
-		fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-	}
-	else {
-		yybegin(enterState);
-	}
-	return PROXY_CONTEXT;
- }
-        case 646: break;
-        case 330: 
-          { 
-	int enterState = yystate();
-	yybegin(ST_JSP_DQUOTED_EL);
-	assembleEmbeddedContainer(JSP_EL_OPEN, new String[]{JSP_EL_CLOSE, XML_TAG_ATTRIBUTE_VALUE_DQUOTE});
-	// abort early when an unescaped double quote is found in the EL
-	if(fEmbeddedContainer.getLastRegion().getType().equals(XML_TAG_ATTRIBUTE_VALUE_DQUOTE)) {
-		yybegin(ST_ABORT_EMBEDDED);
-		fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-	}
-	else {
-		yybegin(enterState);
-	}
-	return PROXY_CONTEXT;
- }
-        case 647: break;
-        case 328: 
-          { 
-	int enterState = yystate();
-	yybegin(ST_JSP_SQUOTED_VBL);
-	assembleEmbeddedContainer(JSP_VBL_OPEN, new String[]{JSP_VBL_CLOSE, XML_TAG_ATTRIBUTE_VALUE_SQUOTE});
-	// abort early when an unescaped single quote is found in the VBL
-	if(fEmbeddedContainer.getLastRegion().getType().equals(XML_TAG_ATTRIBUTE_VALUE_SQUOTE)) {
-		yybegin(ST_ABORT_EMBEDDED);
-		fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-	}
-	else {
-		yybegin(enterState);
-	}
-	return PROXY_CONTEXT;
- }
-        case 648: break;
-        case 327: 
-          { 
-	int enterState = yystate();
-	yybegin(ST_JSP_SQUOTED_EL);
-	assembleEmbeddedContainer(JSP_EL_OPEN, new String[]{JSP_EL_CLOSE, XML_TAG_ATTRIBUTE_VALUE_SQUOTE});
-	// abort early when an unescaped single quote is found in the EL
-	if(fEmbeddedContainer.getLastRegion().getType().equals(XML_TAG_ATTRIBUTE_VALUE_SQUOTE)) {
-		yybegin(ST_ABORT_EMBEDDED);
-		fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-	}
-	else {
-		yybegin(enterState);
-	}
-	return PROXY_CONTEXT;
- }
-        case 649: break;
-        case 326: 
-          { 
-	if (Debug.debugTokenizer) {
-		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
-	}
-	int incomingState = yystate();
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-	if(Debug.debugTokenizer)
-		dump("JSP attribute value start - end tag");//$NON-NLS-1$
-	yybegin(ST_XML_TAG_NAME);
-	assembleEmbeddedContainer(XML_END_TAG_OPEN, new String[]{XML_TAG_CLOSE,XML_EMPTY_TAG_CLOSE});
-	if(yystate() != ST_ABORT_EMBEDDED)
-        yybegin(incomingState);
-	return PROXY_CONTEXT;
- }
-        case 650: break;
-        case 284: 
-        case 296: 
-        case 302: 
-          { 
-	return XML_DOCTYPE_INTERNAL_SUBSET;
- }
-        case 651: break;
-        case 272: 
-          { 
-	String tagName = yytext().substring(1);
-	// pushback to just after the opening bracket
-	yypushback(yylength() - 1);
-	if(!isNestable(tagName)) {
-		yybegin(ST_XML_TAG_NAME);
-		return XML_TAG_OPEN;
-	}
-	if(Debug.debugTokenizer)
-		dump("tag in place of attr value");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-	fStateStack.push(yystate());
-	// embedded container should be looking for the name (again) next
-	yybegin(ST_XML_TAG_NAME);
-	assembleEmbeddedTagSequence(XML_TAG_OPEN, tagName); // ?
-	fStateStack.pop();
-	yybegin(ST_XML_ATTRIBUTE_NAME);
-	return PROXY_CONTEXT;
- }
-        case 652: break;
-        case 270: 
-          { 
-	String tagName = yytext().substring(1);
-	// pushback to just after the opening bracket
-	yypushback(yylength() - 1);
-	if(!isNestable(tagName)) {
-		yybegin(ST_XML_TAG_NAME);
-		return XML_TAG_OPEN;
-	}
-	if(Debug.debugTokenizer)
-		dump("tag in place of attr name");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-	fStateStack.push(yystate());
-	// embedded container should be looking for the name (again) next
-	yybegin(ST_XML_TAG_NAME);
-	assembleEmbeddedTagSequence(XML_TAG_OPEN, tagName); // ?
-	fStateStack.pop();
-	yybegin(ST_XML_EQUALS);
-	return PROXY_CONTEXT;
- }
-        case 653: break;
-        case 268: 
-          { 
-        yybegin(YYINITIAL);
-	fEmbeddedHint = UNDEFINED;
-	if(Debug.debugTokenizer)
-		dump("empty tag close");//$NON-NLS-1$
-        return XML_EMPTY_TAG_CLOSE;
- }
-        case 654: break;
-        case 125: 
-          { 
-	if (Debug.debugTokenizer) {
-		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
-	}
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED;
-	yybegin(ST_XML_ATTRIBUTE_VALUE_DQUOTED);
-	fStateStack.push(yystate());
-	if(Debug.debugTokenizer)
-		dump("JSP attribute value start - complex double quoted");//$NON-NLS-1$
-	assembleEmbeddedContainer(XML_TAG_ATTRIBUTE_VALUE_DQUOTE, XML_TAG_ATTRIBUTE_VALUE_DQUOTE);
-	fStateStack.pop();
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_EQUALS;
-	yybegin(ST_XML_ATTRIBUTE_NAME);
-	return PROXY_CONTEXT;
- }
-        case 655: break;
-        case 123: 
-          { 
-	if (Debug.debugTokenizer) {
-		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
-	}
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-	fStateStack.push(yystate());
-	if(Debug.debugTokenizer)
-		dump("JSP tag embedded name start - start tag");//$NON-NLS-1$
-	yybegin(ST_XML_TAG_NAME);
-	assembleEmbeddedContainer(XML_TAG_OPEN, new String[]{XML_TAG_CLOSE,XML_EMPTY_TAG_CLOSE});
-	fStateStack.pop();
-        yybegin(ST_XML_ATTRIBUTE_NAME);
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_EQUALS;
-	return PROXY_CONTEXT;
- }
-        case 656: break;
-        case 122: 
-        case 127: 
-        case 128: 
-        case 274: 
-        case 278: 
-        case 279: 
-        case 388: 
-        case 391: 
-        case 458: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("attr value");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_EQUALS;
-        yybegin(ST_XML_ATTRIBUTE_NAME);
-        return XML_TAG_ATTRIBUTE_VALUE;
- }
-        case 657: break;
-        case 121: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("equals");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-        yybegin(ST_XML_ATTRIBUTE_VALUE);
-        return XML_TAG_ATTRIBUTE_EQUALS;
- }
-        case 658: break;
-        case 120: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("attr name");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-        yybegin(ST_XML_EQUALS);
-        return XML_TAG_ATTRIBUTE_NAME;
- }
-        case 659: break;
-        case 116: 
-        case 117: 
-        case 118: 
-        case 269: 
-        case 387: 
-        case 457: 
-        case 485: 
-        case 486: 
-        case 504: 
-        case 505: 
-        case 522: 
-        case 523: 
-        case 535: 
-        case 543: 
-        case 550: 
-        case 551: 
-        case 552: 
-        case 553: 
-        case 555: 
-        case 561: 
-        case 562: 
-        case 563: 
-        case 564: 
-        case 565: 
-        case 571: 
-        case 572: 
-        case 573: 
-        case 574: 
-        case 575: 
-        case 581: 
-        case 582: 
-        case 584: 
-        case 585: 
-        case 591: 
-        case 592: 
-        case 593: 
-        case 594: 
-        case 600: 
-        case 601: 
-        case 602: 
-        case 603: 
-        case 606: 
-        case 607: 
-        case 609: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("tag name");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_EQUALS;
-        yybegin(ST_XML_ATTRIBUTE_NAME);
-        return XML_TAG_NAME;
- }
-        case 660: break;
-        case 114: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("tag close");//$NON-NLS-1$
-	fEmbeddedHint = UNDEFINED;
-	if(isBlockMarker()) {
-		fEmbeddedHint = getBlockMarkerContext();
-		fEmbeddedPostState = ST_BLOCK_TAG_SCAN;
-        	yybegin(ST_BLOCK_TAG_SCAN);
-	}
-	else
-        	yybegin(YYINITIAL);
-        return XML_TAG_CLOSE;
- }
-        case 661: break;
-        case 107: 
-        case 111: 
-        case 264: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("attr value");//$NON-NLS-1$
-        yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_NAME);
-        return XML_TAG_ATTRIBUTE_VALUE;
- }
-        case 662: break;
-        case 106: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("equals");//$NON-NLS-1$
-        yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE);
-        return XML_TAG_ATTRIBUTE_EQUALS;
- }
-        case 663: break;
-        case 105: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("attr name");//$NON-NLS-1$
-        yybegin(ST_JSP_DIRECTIVE_EQUALS);
-        return XML_TAG_ATTRIBUTE_NAME;
- }
-        case 664: break;
-        case 102: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("JSP directive name");//$NON-NLS-1$
-	yybegin(ST_JSP_DIRECTIVE_NAME_WHITESPACE);
-	return JSP_DIRECTIVE_NAME;
- }
-        case 665: break;
-        case 98: 
-        case 99: 
-        case 100: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("JSP code content");//$NON-NLS-1$
-	return doScan("%>", false, false, false, JSP_CONTENT, ST_JSP_CONTENT, ST_JSP_CONTENT);
- }
-        case 666: break;
-        case 94: 
-        case 96: 
-        case 97: 
-        case 254: 
-        case 255: 
-        case 258: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction attribute value");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_EQUALS;
-        yybegin(ST_DHTML_ATTRIBUTE_NAME);
-        return XML_TAG_ATTRIBUTE_VALUE;
- }
-        case 667: break;
-        case 93: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction '='");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-        yybegin(ST_DHTML_ATTRIBUTE_VALUE);
-        return XML_TAG_ATTRIBUTE_EQUALS;
- }
-        case 668: break;
-        case 92: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction attribute name");//$NON-NLS-1$
-        yybegin(ST_DHTML_EQUALS);
-        return XML_TAG_ATTRIBUTE_NAME;
- }
-        case 669: break;
-        case 90: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction end");//$NON-NLS-1$
-	fEmbeddedHint = UNDEFINED;
-        yybegin(YYINITIAL);
-        return XML_PI_CLOSE;
- }
-        case 670: break;
-        case 84: 
-        case 86: 
-        case 245: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("XML processing instruction attribute value");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_EQUALS;
-        yybegin(ST_XML_PI_ATTRIBUTE_NAME);
-        return XML_TAG_ATTRIBUTE_VALUE;
- }
-        case 671: break;
-        case 83: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("XML processing instruction '='");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-        yybegin(ST_XML_PI_ATTRIBUTE_VALUE);
-        return XML_TAG_ATTRIBUTE_EQUALS;
- }
-        case 672: break;
-        case 50: 
-        case 200: 
-        case 201: 
-        case 204: 
-        case 214: 
-        case 215: 
-        case 218: 
-        case 219: 
-        case 362: 
-        case 365: 
-          { 
-	return JSP_VBL_CONTENT;
- }
-        case 673: break;
-        case 43: 
-        case 179: 
-        case 180: 
-        case 183: 
-        case 193: 
-        case 194: 
-        case 197: 
-        case 198: 
-        case 332: 
-        case 346: 
-        case 349: 
-        case 416: 
-          { 
-	return JSP_EL_CONTENT;
- }
-        case 674: break;
-        case 35: 
-        case 159: 
-        case 160: 
-        case 322: 
-        case 413: 
-        case 470: 
-        case 493: 
-        case 512: 
-        case 528: 
-        case 537: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("attlist contentspec");//$NON-NLS-1$
-	return XML_ATTLIST_DECL_CONTENT;
- }
-        case 675: break;
-        case 33: 
-        case 152: 
-        case 153: 
-        case 312: 
-        case 407: 
-        case 468: 
-        case 492: 
-        case 511: 
-        case 527: 
-        case 536: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("elementdecl contentspec");//$NON-NLS-1$
-	return XML_ELEMENT_DECL_CONTENT;
- }
-        case 676: break;
-        case 22: 
-        case 112: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("inappropriate tag name");//$NON-NLS-1$
-	if(!fStateStack.empty() && (fStateStack.peek()==ST_XML_ATTRIBUTE_VALUE_SQUOTED||fStateStack.peek()==ST_XML_ATTRIBUTE_VALUE_DQUOTED)) {
-		yybegin(ST_ABORT_EMBEDDED);
-		yypushback(yylength()-1);
-		return XML_TAG_ATTRIBUTE_VALUE;
-	}
-	yybegin(YYINITIAL);
-        return XML_CONTENT;
- }
-        case 677: break;
-        case 18: 
-        case 104: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("white space");//$NON-NLS-1$
-	yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_NAME);
-	return WHITE_SPACE;
- }
-        case 678: break;
-        case 5: 
-        case 8: 
-        case 9: 
-        case 10: 
-        case 12: 
-        case 13: 
-        case 14: 
-        case 15: 
-        case 17: 
-        case 19: 
-        case 20: 
-        case 21: 
-        case 23: 
-        case 24: 
-        case 25: 
-        case 26: 
-        case 27: 
-        case 28: 
-        case 29: 
-        case 30: 
-        case 31: 
-        case 32: 
-        case 34: 
-        case 40: 
-        case 41: 
-        case 73: 
-        case 170: 
-        case 175: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("white space");//$NON-NLS-1$
-        return WHITE_SPACE;
- }
-        case 679: break;
-        case 0: 
-        case 57: 
-        case 60: 
-        case 62: 
-        case 226: 
-        case 228: 
-        case 229: 
-        case 231: 
-        case 233: 
-        case 372: 
-        case 373: 
-        case 374: 
-        case 453: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nXML content");//$NON-NLS-1$
-	return XML_CONTENT;
- }
-        case 680: break;
-        case 58: 
-        case 101: 
-        case 113: 
-        case 119: 
-        case 129: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nstart tag open");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_NAME;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-        yybegin(ST_XML_TAG_NAME);
-        return XML_TAG_OPEN;
- }
-        case 681: break;
-        case 59: 
-        case 61: 
-        case 65: 
-        case 66: 
-        case 67: 
-        case 71: 
-        case 72: 
-        case 81: 
-        case 85: 
-        case 87: 
-        case 88: 
-        case 89: 
-        case 91: 
-        case 95: 
-        case 103: 
-        case 108: 
-        case 109: 
-        case 110: 
-        case 115: 
-        case 124: 
-        case 131: 
-        case 132: 
-        case 133: 
-        case 134: 
-        case 136: 
-        case 137: 
-        case 139: 
-        case 140: 
-        case 141: 
-        case 144: 
-        case 145: 
-        case 146: 
-        case 149: 
-        case 150: 
-        case 151: 
-        case 156: 
-        case 157: 
-        case 158: 
-        case 164: 
-        case 167: 
-        case 172: 
-        case 173: 
-        case 177: 
-        case 178: 
-        case 185: 
-        case 186: 
-        case 188: 
-        case 189: 
-        case 195: 
-        case 199: 
-        case 206: 
-        case 207: 
-        case 209: 
-        case 210: 
-        case 216: 
-        case 220: 
-          { 
-	if (Debug.debugTokenizer)
-		System.out.println("!!!unexpected!!!: \"" + yytext() + "\":" + //$NON-NLS-2$//$NON-NLS-1$
-			yychar + "-" + (yychar + yylength()));//$NON-NLS-1$
-	return UNDEFINED;
- }
-        case 682: break;
-        case 63: 
-        case 64: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("CDATA text");//$NON-NLS-1$
-	fEmbeddedPostState = ST_CDATA_TEXT;
-	fEmbeddedHint = XML_CDATA_TEXT;
-	String returnedContext = doScan("]]>", false, true, true, XML_CDATA_TEXT, ST_CDATA_END,  ST_CDATA_END);//$NON-NLS-1$
-	if(returnedContext == XML_CDATA_TEXT)
-		yybegin(ST_CDATA_END);
-	return returnedContext;
- }
-        case 683: break;
-        case 68: 
-        case 187: 
-        case 190: 
-        case 208: 
-        case 211: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("LINE FEED");//$NON-NLS-1$
-	return WHITE_SPACE;
- }
-        case 684: break;
-        case 69: 
-        case 70: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("comment content");//$NON-NLS-1$
-	return scanXMLCommentText();
- }
-        case 685: break;
-        case 74: 
-        case 75: 
-        case 76: 
-        case 239: 
-        case 240: 
-        case 384: 
-        case 456: 
-        case 484: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("processing instruction target");//$NON-NLS-1$
-	fEmbeddedHint = XML_CONTENT;
-        yybegin(ST_PI_WS);
-        return XML_TAG_NAME;
- }
-        case 686: break;
-        case 77: 
-          { 
-        yybegin(ST_PI_CONTENT);
-        return WHITE_SPACE;
- }
-        case 687: break;
-        case 78: 
-        case 79: 
-        case 80: 
-          { 
-		// block scan until close is found
-	return doScan("?>", false, false, false, XML_PI_CONTENT, ST_XML_PI_TAG_CLOSE, ST_XML_PI_TAG_CLOSE);
- }
-        case 688: break;
-        case 82: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("XML processing instruction attribute name");//$NON-NLS-1$
-        yybegin(ST_XML_PI_EQUALS);
-        return XML_TAG_ATTRIBUTE_NAME;
- }
-        case 689: break;
-        case 126: 
-          { 
-	if (Debug.debugTokenizer) {
-		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
-	}
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED;
-	yybegin(ST_XML_ATTRIBUTE_VALUE_SQUOTED);
-	fStateStack.push(yystate());
-	if(Debug.debugTokenizer)
-		dump("JSP attribute value start - complex single quoted");//$NON-NLS-1$
-	assembleEmbeddedContainer(XML_TAG_ATTRIBUTE_VALUE_SQUOTE, XML_TAG_ATTRIBUTE_VALUE_SQUOTE);
-	fStateStack.pop();
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_EQUALS;
-        yybegin(ST_XML_ATTRIBUTE_NAME);
-	return PROXY_CONTEXT;
- }
-        case 690: break;
-        case 130: 
-          { 
-	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 691: break;
-        case 135: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("doctype type");//$NON-NLS-1$
-	yybegin(ST_XML_DOCTYPE_EXTERNAL_ID);
-	return XML_DOCTYPE_NAME;
- }
-        case 692: break;
-        case 138: 
-        case 142: 
-        case 289: 
-        case 293: 
-        case 400: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("doctype public reference");//$NON-NLS-1$
-	fEmbeddedHint = UNDEFINED;
-	fEmbeddedPostState = YYINITIAL;
-	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
-	return XML_DOCTYPE_EXTERNAL_ID_PUBREF;
- }
-        case 693: break;
-        case 143: 
-        case 147: 
-        case 299: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("doctype system reference");//$NON-NLS-1$
-	fEmbeddedHint = UNDEFINED;
-	fEmbeddedPostState = YYINITIAL;
-	yybegin(ST_XML_DECLARATION_CLOSE);
-	return XML_DOCTYPE_EXTERNAL_ID_SYSREF;
- }
-        case 694: break;
-        case 148: 
-        case 305: 
-        case 309: 
-        case 403: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("elementdecl name");//$NON-NLS-1$
-	fEmbeddedHint = UNDEFINED;
-	fEmbeddedPostState = YYINITIAL;
-	yybegin(ST_XML_ELEMENT_DECLARATION_CONTENT);
-	return XML_ELEMENT_DECL_NAME;
- }
-        case 695: break;
-        case 154: 
-          { 
-	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 696: break;
-        case 155: 
-        case 315: 
-        case 319: 
-        case 409: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("attlist name");//$NON-NLS-1$
-	fEmbeddedHint = UNDEFINED;
-	fEmbeddedPostState = YYINITIAL;
-	yybegin(ST_XML_ATTLIST_DECLARATION_CONTENT);
-	return XML_ATTLIST_DECL_NAME;
- }
-        case 697: break;
-        case 161: 
-          { 
-	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 698: break;
-        case 165: 
-        case 166: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nJSP comment text");//$NON-NLS-1$
-	return scanJSPCommentText();
- }
-        case 699: break;
-        case 168: 
-        case 174: 
-          { 
-	return XML_TAG_ATTRIBUTE_VALUE;
- }
-        case 700: break;
-        case 169: 
-          { 
-	if (Debug.debugTokenizer) {
-		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
-	}
-	int incomingState = yystate();
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-	if(Debug.debugTokenizer)
-		dump("tag inside of JSP attribute value start");//$NON-NLS-1$
-	yybegin(ST_XML_TAG_NAME);
-	assembleEmbeddedContainer(XML_TAG_OPEN, new String[]{XML_TAG_CLOSE,XML_EMPTY_TAG_CLOSE});
-	if(yystate() != ST_ABORT_EMBEDDED)
-        yybegin(incomingState);
-	return PROXY_CONTEXT;
- }
-        case 701: break;
-        case 171: 
-          { 
-	return XML_TAG_ATTRIBUTE_VALUE_SQUOTE;
- }
-        case 702: break;
-        case 176: 
-          { 
-	return XML_TAG_ATTRIBUTE_VALUE_DQUOTE;
- }
-        case 703: break;
-        case 181: 
-          { 
-	yybegin(ST_JSP_EL_DQUOTES);
-	return JSP_EL_DQUOTE;
- }
-        case 704: break;
-        case 182: 
-          { 
-	yybegin(ST_JSP_EL_SQUOTES);
-	return JSP_EL_SQUOTE;
- }
-        case 705: break;
-        case 184: 
-          { 
-	fELlevel--;
-	if(fELlevel == 0) {
-		yybegin(YYINITIAL);
-		return JSP_EL_CLOSE;
-	}
-	return JSP_EL_CONTENT;
- }
-        case 706: break;
-        case 191: 
-          { 
-	yybegin(ST_JSP_EL);
-	return JSP_EL_SQUOTE;
- }
-        case 707: break;
-        case 192: 
-          { 
-	yybegin(ST_JSP_EL);
-	return JSP_EL_DQUOTE;
- }
-        case 708: break;
-        case 196: 
-          { 
-	return JSP_EL_CLOSE;
- }
-        case 709: break;
-        case 202: 
-          { 
-	yybegin(ST_JSP_VBL_DQUOTES);
-	return JSP_VBL_DQUOTE;
- }
-        case 710: break;
-        case 203: 
-          { 
-	yybegin(ST_JSP_VBL_SQUOTES);
-	return JSP_VBL_SQUOTE;
- }
-        case 711: break;
-        case 205: 
-          { 
-	fELlevel--;
-	if(fELlevel == 0) {
-		yybegin(YYINITIAL);
-		return JSP_VBL_CLOSE;
-	}
-	return JSP_VBL_CONTENT;
- }
-        case 712: break;
-        case 212: 
-          { 
-	yybegin(ST_JSP_VBL);
-	return JSP_VBL_SQUOTE;
- }
-        case 713: break;
-        case 213: 
-          { 
-	yybegin(ST_JSP_VBL);
-	return JSP_VBL_DQUOTE;
- }
-        case 714: break;
-        case 217: 
-          { 
-	return JSP_VBL_CLOSE;
- }
-        case 715: break;
-        case 221: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nend tag open");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_NAME;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-        yybegin(ST_XML_TAG_NAME);
-        return XML_END_TAG_OPEN;
- }
-        case 716: break;
-        case 222: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nprocessing instruction start");//$NON-NLS-1$
-	yybegin(ST_PI);
-        return XML_PI_OPEN;
- }
-        case 717: break;
-        case 223: 
-        case 234: 
-        case 311: 
-        case 321: 
-        case 323: 
-        case 333: 
-        case 338: 
-        case 342: 
-        case 345: 
-        case 348: 
-        case 350: 
-        case 354: 
-        case 358: 
-        case 361: 
-        case 364: 
-          { 
-	/* JSP scriptlet begun (anywhere)
-	 * A consequence of the start anywhere possibility is that the
-	 *  incoming state must be checked to see if it's erroneous
-	 *  due to the order of precedence generated
-	 */
-	// begin sanity checks
-	if(yystate() == ST_JSP_CONTENT) {
-		// at the beginning?!
-		yypushback(1);
-		return JSP_CONTENT;
-	}
-	else if(yystate() == ST_BLOCK_TAG_SCAN) {
-		yypushback(2);
-		return doBlockTagScan();
-	}
-	else if(yystate() == ST_XML_COMMENT) {
-		yypushback(2);
-		return scanXMLCommentText();
-	}
-	else if(yystate() == ST_JSP_COMMENT) {
-		yypushback(2);
-		return scanJSPCommentText();
-	}
-	// finished sanity checks
-	fStateStack.push(yystate());
-	if(fStateStack.peek()==YYINITIAL) {
-		// the simple case, just a regular scriptlet out in content
-		if(Debug.debugTokenizer)
-			dump("\nJSP scriptlet start");//$NON-NLS-1$
-		yybegin(ST_JSP_CONTENT);
-		return JSP_SCRIPTLET_OPEN;
-	}
-	else {
-		if (Debug.debugTokenizer) {
-			System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
-		}
-		if(Debug.debugTokenizer)
-			dump("JSP scriptlet start");//$NON-NLS-1$
-		if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED)
-			fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED;
-		else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED)
-			fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED;
-		else if(yystate() == ST_CDATA_TEXT) {
-			fEmbeddedPostState = ST_CDATA_TEXT;
-			fEmbeddedHint = XML_CDATA_TEXT;
-		}
-		yybegin(ST_JSP_CONTENT);
-		assembleEmbeddedContainer(JSP_SCRIPTLET_OPEN, JSP_CLOSE);
-		if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {
-			yybegin(ST_BLOCK_TAG_SCAN);
-			return BLOCK_TEXT;
-		}
-		// required help for successive embedded regions
-		if(yystate() == ST_XML_TAG_NAME) {
-			fEmbeddedHint = XML_TAG_NAME;
-			fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-		}
-		else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) {
-			fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-			fEmbeddedPostState = ST_XML_EQUALS;
-		}
-		else if(yystate() == ST_XML_ATTRIBUTE_VALUE) {
-			fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-			fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-		}
-		return PROXY_CONTEXT;
-	}
- }
-        case 718: break;
-        case 224: 
-          { 
-	fStateStack.push(yystate());
-	if(Debug.debugTokenizer)
-		dump("\ndeclaration start");//$NON-NLS-1$
-        yybegin(ST_XML_DECLARATION);
-	return XML_DECLARATION_OPEN;
- }
-        case 719: break;
-        case 238: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("processing instruction end");//$NON-NLS-1$
-	fEmbeddedHint = UNDEFINED;
-        yybegin(YYINITIAL);
-        return XML_PI_CLOSE;
- }
-        case 720: break;
-        case 241: 
-          { 
-		// ended with nothing inside
-		fEmbeddedHint = UNDEFINED;
-        yybegin(YYINITIAL);
-        return XML_PI_CLOSE;
- }
-        case 721: break;
-        case 242: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("XML processing instruction end");//$NON-NLS-1$
-	fEmbeddedHint = UNDEFINED;
-        yybegin(YYINITIAL);
-        return XML_PI_CLOSE;
- }
-        case 722: break;
-        case 259: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("JSP end");//$NON-NLS-1$
-	if (Debug.debugTokenizer) {
-		if(fStateStack.peek()!=YYINITIAL)
-			System.out.println("end embedded region");//$NON-NLS-1$
-	}
-	yybegin(fStateStack.pop());
-	return JSP_CLOSE;
- }
-        case 723: break;
-        case 261: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("JSP end");//$NON-NLS-1$
-	if (Debug.debugTokenizer) {
-		if(fStateStack.peek()!=YYINITIAL)
-			System.out.println("end embedded region");//$NON-NLS-1$
-	}
-	yybegin(fStateStack.pop());
-	return JSP_DIRECTIVE_CLOSE;
- }
-        case 724: break;
-        case 162: 
-        case 163: 
-          { 
-		return doBlockTagScan();
-	 }
-        case 725: 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.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex
deleted file mode 100644
index 862e714..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex
+++ /dev/null
@@ -1,2558 +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.sse.core.jsp.parser.internal;

-

-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.jsp.Logger;

-import org.eclipse.wst.sse.core.parser.BlockMarker;

-import org.eclipse.wst.sse.core.parser.BlockTokenizer;

-import org.eclipse.wst.sse.core.parser.TagMarker;

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

-import org.eclipse.wst.sse.core.text.ITextRegionList;

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

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

-import org.eclipse.wst.sse.core.xml.internal.parser.ContextRegionContainer;

-import org.eclipse.wst.sse.core.xml.internal.parser.IntStack;

-import org.eclipse.wst.sse.core.xml.jsp.model.parser.temp.XMLJSPRegionContexts;

-

-%%

-

-%{

-	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 ContextRegionContainer fBufferedEmbeddedContainer = null;

-	private String f_context = null;

-

-	// state stack for handling embedded regions

-	private IntStack fStateStack = new IntStack();

-	// a "hint" as to what an embedded region should be evaluated

-	private String fEmbeddedHint = UNDEFINED;

-	// a "hint" as to what state to enter once an embedded region has

-	//   been completed

-	private int fEmbeddedPostState = YYINITIAL;

-	// the container used to create embedded regions

-	private ContextRegionContainer fEmbeddedContainer = null;

-	private static final String PROXY_CONTEXT = "PROXY_CONTEXT";

-

-	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 name of the current tag inside of an embedded region

-	private String internalTagName = null;

-	private String internalContext = null;

-

-	// the list of tag name BlockMarkers

-	private List fBlockMarkers = new ArrayList(0);

-	private List fNestablePrefixes = new ArrayList(1);

-	

-	// where the last internal container block was found

-	private int fLastInternalBlockStart = -1;

-

-	// required to not seek text blocks on an end tag

-	private boolean fIsBlockingEnabled = false;

-	private boolean fIsCaseSensitiveBlocking = true;

-

-	private static final boolean fForbidJSP = false;

-	

-	private int fELlevel = 0;

-

-	private JSPParserRegionFactory fRegionFactory = new JSPParserRegionFactory();

-

-	private static final String rcsver = "$Id: JSPTokenizer.jflex,v 1.4.2.1 2004/10/20 15:21:33 kitlo Exp $";//$NON-NLS-1$

-

-	/**

-	 * user method 

-	 */

-	public final void addBlockMarker(BlockMarker marker) {

-		if(containsTagName(marker.getTagName()))

-			return;

-		fBlockMarkers.add(marker);

-	}

-	/**

-	 * user method

-	 */

-	public final void addNestablePrefix(TagMarker marker) {

-		fNestablePrefixes.add(marker);

-	}

-	/* user method */

-	public List getNestablePrefixes() {

-		return fNestablePrefixes;

-	}

-	/**

-	 * user method

-	 */

-	private boolean isNestable(String tagName) {

-		//Iterator blocks = fNestablePrefixes.iterator();

-		//while(blocks.hasNext()) {

-		//	TagMarker marker = (TagMarker)blocks.next();

-		//	String markerName = marker.getTagName();

-		//	if(tagName.length() > markerName.length() + 1 && tagName.startsWith(markerName) && tagName.charAt(markerName.length()) == ':') {

-		//		return marker.isGlobal() || getOffset() >= marker.getMarker().getStart();

-		//	}

-		//}

-		//return false;

-		return true;

-	}

-	/**

-	 * user method 

-	 */

-	public final void removeNestablePrefix(String name) {

-		if (fNestablePrefixes != null) {

-			Iterator nestables = fNestablePrefixes.iterator();

-			while (nestables.hasNext()) {

-				if (((TagMarker) nestables.next()).getTagName().equalsIgnoreCase(name))

-					nestables.remove();

-			}

-		}

-	}

-	/**

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

-	private final void assembleEmbeddedTagSequence(String startType, String endTagName) {

-		assembleEmbeddedContainer(startType, null, endTagName);

-	}

-	/* user method */

-	private final void assembleEmbeddedContainer(String startType, String[] endTypes) {

-		assembleEmbeddedContainer(startType, endTypes, null);

-	}

-	/* user method */

-	private final void assembleEmbeddedContainer(String startType, String endType) {

-		assembleEmbeddedContainer(startType, new String[]{endType}, null);

-	}

-	/**

-	 *  user method 

-	 * 

-	 * Assembles an embedded container beginning with the given startType as

-	 * the first ContextRegion within it and of the type fEmbeddedHint.  The

-	 * endTypes[] array contains the context types that will cause a successful

-	 * exit.  Use of the endTagName parameter alters this behavior to force an

-	 * exit on an XML_TAG_CLOSE after seeing an XML_TAG_NAME whose significant

-	 * text matches the endTagName String.  All contents in between are

-	 * insignificant, and yes, this means comments are allowed inside.

-	 **/

-	private final void assembleEmbeddedContainer(String startType, String[] endTypes, String endTagName) {

-		// the context of the region being added to the embedded container

-		internalContext = startType;

-		// keep track of where this container began; to provide relative indeces for the regions

-		int containerStart = yychar;

-		boolean notFinished = true;

-		// keep track of where we seem to be so that the endTagName can be checked

-		boolean isInEndTag = false;

-		boolean isInFirstTag = true;

-		// create the embedded container and setup its "type"

-		if (fEmbeddedContainer == null) {

-			fEmbeddedContainer = new ContextRegionContainer();

-			fEmbeddedContainer.setType(fEmbeddedHint);

-			fEmbeddedContainer.setStart(containerStart);

-			// TODO: parent region needs to be set .... but not sure where to get it from 

-			//		fEmbeddedContainer.setParent(parentRegion);

-		}

-		containerStart = fEmbeddedContainer.getStart();

-		while (notFinished) {

-			// add the region to the container

-			if (internalContext != null && internalContext != PROXY_CONTEXT) {

-				ITextRegion newToken = fRegionFactory.createToken(internalContext, yychar - containerStart, yylength(), yylength());

-				fEmbeddedContainer.getRegions().add(newToken);

-				fEmbeddedContainer.setLength(fEmbeddedContainer.getLength() + yylength());

-				fEmbeddedContainer.setTextLength(fEmbeddedContainer.getTextLength() + yylength());

-				// DW, 4/16/2003 token regions no longer have parents

-				//newToken.setParent(fEmbeddedContainer);

-			}

-			try {

-				// longscan determines whether to attempt a blockTagScan within the embedded container

-				boolean longscan = false;

-				// save the tokenizer state in case of a block tag scan

-				int previousState = yystate();

-				String previousCurrentTagName = fCurrentTagName;

-				int previousPostState = fEmbeddedPostState;

-				String previousEmbeddedHint = fEmbeddedHint;

-				// determine if a block tag scan is necessary

-				if (internalContext == XML_TAG_NAME) {

-					internalTagName = yytext();

-					if(!isNestable(internalTagName)) {

-						internalTagName = null;

-						// snagged a tag name we shouldn't have

-						fEmbeddedPostState = ST_ABORT_EMBEDDED;

-						notFinished = false;

-					}

-				}

-				else if (internalContext == XML_TAG_OPEN || internalContext == XML_END_TAG_OPEN) {

-					internalTagName = null;

-				}

-				// do upkeep for endTagName usage; must be here since the next token could be the close

-				if (internalContext == XML_END_TAG_OPEN) {

-					isInEndTag = true;

-				} else if (internalContext == XML_TAG_CLOSE) {

-					isInFirstTag = isInEndTag = false;

-				} else {

-				 	ITextRegionList embeddedRegions = fEmbeddedContainer.getRegions();

-					if (embeddedRegions.size() > 2 && (embeddedRegions.get(embeddedRegions.size()-1)).getType() == XML_TAG_CLOSE && (embeddedRegions.get(embeddedRegions.size() - 3)).getType() == XML_TAG_OPEN && internalTagName != null) {

-						if (containsTagName(internalTagName)) {

-							longscan = true;

-							yybegin(ST_BLOCK_TAG_SCAN);

-						}

-					}

-				}

-				if (longscan)

-					fCurrentTagName = internalTagName;

-				// read the next region and context

-				internalContext = primGetNextToken();

-				if (longscan) {

-					// Returning from a block tag scan requires restoring some state variables

-					// as well as handling the block region and setting up for normal scanning

-					// inside the embedded container

-					ITextRegion newToken = fRegionFactory.createToken(internalContext, yychar - containerStart, yylength(), yylength());

-					fEmbeddedContainer.getRegions().add(newToken);

-					fEmbeddedContainer.setLength(fEmbeddedContainer.getLength() + yylength());

-					fEmbeddedContainer.setTextLength(fEmbeddedContainer.getTextLength() + yylength());

-					// DW, 4/16/2003 token regions no longer have parents

-					// newToken.setParent(fEmbeddedContainer);

-					longscan = false;

-					fEmbeddedPostState = previousPostState;

-					fEmbeddedHint = previousEmbeddedHint;

-					fCurrentTagName = previousCurrentTagName;

-					yybegin(previousState);

-					internalContext = primGetNextToken();

-				}

-			} catch (IOException e) {

-				// primGetNextToken() calls may throw an IOException

-				// catch and do nothing since the isEOF check below

-				// will properly exit if the input was too short

-			} catch (Exception f) {

-				// some other exception happened; never should

-				Logger.logException(f);

-			}

-			boolean isEndingType = yystate() == ST_ABORT_EMBEDDED;

-			if(!isEndingType) {

-				// check for ending context

-				if (endTagName == null) {

-					for (int i = 0; i < endTypes.length; i++) {

-						isEndingType = isEndingType || (internalContext == endTypes[i]);

-					}

-				}

-				else {

-					isEndingType = ((isInEndTag && internalContext == XML_TAG_CLOSE) || (isInFirstTag && internalContext == XML_EMPTY_TAG_CLOSE)) && internalTagName != null && internalTagName.equals(endTagName);

-				}

-			}

-			ITextRegionList embeddedList = fEmbeddedContainer.getRegions();

-			notFinished = notFinished && ((!isEndingType) && !isEOF() && (endTagName != null || internalContext != UNDEFINED) && !(internalContext == PROXY_CONTEXT && (embeddedList.get(embeddedList.size()-1)).getType() == UNDEFINED));

-		}

-		// finish adding the last context

-		if (internalContext != null && internalContext != PROXY_CONTEXT) {

-			ITextRegion newToken = fRegionFactory.createToken(internalContext, yychar - containerStart, yylength(), yylength());

-			fEmbeddedContainer.getRegions().add(newToken);

-			// DW, 4/16/2003 token regions no longer have parents

-			//newToken.setParent(fEmbeddedContainer);

-			fEmbeddedContainer.setLength(yychar - containerStart + yylength());

-			fEmbeddedContainer.setTextLength(yychar - containerStart + yylength());

-		}

-		yybegin(fEmbeddedPostState);

-	}

-	/* user method */

-	public final boolean isCaseSensitiveBlocking() {

-		return fIsCaseSensitiveBlocking;

-	}

-	/* user method */

-	public final void setCaseSensitiveBlocking(boolean newValue) {

-		fIsCaseSensitiveBlocking = newValue;

-	}

-	/* user method */

-	public boolean getBlockMarkerAllowsJSP() {

-		return getBlockMarkerAllowsJSP(fCurrentTagName);

-	}

-	/* user method */

-	public boolean getBlockMarkerAllowsJSP(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 marker.allowsJSP();

-			else if(!casesensitive && marker.getTagName().equalsIgnoreCase(name))

-				return marker.allowsJSP();

-		}

-		return true;

-	}

-	/* user method */

-	public boolean getBlockMarkerCaseSensitivity() {

-		return getBlockMarkerCaseSensitivity(fCurrentTagName);

-	}

-	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 allowJSP - check for and allow for JSP markup <%%>

- * @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, boolean allowJSP, boolean allowCDATA, 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;

-	// Check for JSP starts ("<%") if the tag is global like SCRIPT or STYLE

-	boolean checkJSPs = allowJSP && !fForbidJSP;

-	boolean checkedForJSPsOnce = !checkJSPs;

-	boolean checkedJSPsAtStartOnce = 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();

-//		c = (char) n;

-		// If the input was too short or we've exhausted the input, stop immediately.

-		if (n == YYEOF && checkedForJSPsOnce) {

-			stillSearching = false;

-		}

-		else {

-			/**

-			 * Look for starting JSPs "<%"

-			 */

-			checkedForJSPsOnce = true;

-			// 1) yy_currentPos - searchStringLength : There's at least searchStringLength of input available; once that's read, check for JSPs

-			// ---

-			// Look for a JSP beginning at current-searchStringLength; if so, backup and switch scanner states to handle it.

-			// 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].

-			if(checkJSPs && yy_currentPos > searchStringLength && yy_currentPos - searchStringLength != fLastInternalBlockStart && 

-				yy_buffer[yy_currentPos - searchStringLength] == '<' && yy_buffer[yy_currentPos - searchStringLength + 1] == '%') {

-				fLastInternalBlockStart = yy_markedPos = yy_currentPos - searchStringLength;

-				yy_currentPos = yy_markedPos + 1;

-				int resumeState = yystate();

-				yybegin(ST_BLOCK_TAG_INTERNAL_SCAN);

-				if(yy_markedPos == yy_startRead) {

-					String jspContext = primGetNextToken();

-					yybegin(resumeState);

-					return jspContext;

-				}

-				return searchContext;

-			}

-			// 2) yy_currentPos - jspstarter.length : There's not searchStringLength of input available; check for a JSP 2 spots back in what we could read

-			// ---

-			// Look for a JSP beginning at the current position; this case wouldn't be handled by the preceding section

-			// since it relies upon *having* closeTagStringLength amount of input to work as designed.  Must be sure we don't

-			// spill over the end of the buffer while checking.

-			else if(checkJSPs && yy_startRead != fLastInternalBlockStart && yy_currentPos > 0 && yy_currentPos < yy_buffer.length - 1 &&

-					yy_buffer[yy_currentPos - 1] == '<' && yy_buffer[yy_currentPos] == '%') {

-				fLastInternalBlockStart = yy_markedPos = yy_currentPos - 1;

-				yy_currentPos = yy_markedPos + 1;

-				int resumeState = yystate();

-				yybegin(ST_BLOCK_TAG_INTERNAL_SCAN);

-				if(yy_markedPos == yy_startRead) {

-					String jspContext = primGetNextToken();

-					yybegin(resumeState);

-					return jspContext;

-				}

-				return searchContext;

-			}

-			// 3) yy_currentPos..(yy_currentPos+jspStartlength-1) : Check at the start of the block one time

-			// ---

-			// Look for a JSP beginning immediately in the block area; this case wouldn't be handled by the preceding section

-			// since it relies upon yy_currentPos equaling exactly the previous end +1 to work as designed.

-			else if(checkJSPs && !checkedJSPsAtStartOnce && yy_startRead != fLastInternalBlockStart && yy_startRead > 0 &&

-					yy_startRead < yy_buffer.length - 1 && yy_buffer[yy_startRead] == '<' && yy_buffer[yy_startRead + 1] == '%') {

-				checkedJSPsAtStartOnce = true;

-				fLastInternalBlockStart = yy_markedPos = yy_startRead;

-				yy_currentPos = yy_markedPos + 1;

-				int resumeState = yystate();

-				yybegin(ST_BLOCK_TAG_INTERNAL_SCAN);

-				if(yy_markedPos == yy_startRead) {

-					String jspContext = primGetNextToken();

-					yybegin(resumeState);

-					return jspContext;

-				}

-				return searchContext;

-			}

-

-

-			/**

-			 * Look for starting CDATA "<![CDATA["

-			 */

-			// 1) yy_currentPos - searchStringLength: There's at least searchStringLength of input available; once that's read, check for CDATA

-			// ---

-			// Look for a CDATA beginning at current-searchStringLength; if so, backup and switch scanner states to handle it.

-			// Ensure that we've not encountered a complete block (<[!CDATA[]]>) that was *shorter* than the closeTagString and

-			// thus found twice at current-targetLength [since the first scan would have come out this far anyway].

-/*			if(checkCDATA && yy_currentPos > searchStringLength && yy_currentPos + searchStringLength < yy_buffer.length && yy_currentPos - searchStringLength != fLastInternalBlockStart && 

-				charsMatch(cdataStarter, yy_buffer, 0, yy_currentPos - searchStringLength)) {

-				fLastInternalBlockStart = yy_markedPos = yy_currentPos - searchStringLength;

-				yy_currentPos = yy_markedPos + 1;

-				int resumeState = yystate();

-				// go to a state where CDATA can be found

-				if (fEmbeddedContainer == null) {

-					fEmbeddedContainer = new ContextRegionContainer();

-					fEmbeddedContainer.setType(searchContext);

-					fEmbeddedContainer.setStart(yychar);

-				}

-				ITextRegion newToken = fRegionFactory.createToken(searchContext, yychar, yylength(), yylength());

-				fEmbeddedContainer.getRegions().add(newToken);

-				fEmbeddedContainer.setLength(fEmbeddedContainer.getLength() + yylength());

-				fEmbeddedContainer.setTextLength(fEmbeddedContainer.getTextLength() + yylength());

-				yybegin(YYINITIAL);

-				String context = primGetNextToken();

-				if(context.equals(XMLRegionContexts.XML_CDATA_OPEN)) {

-					assembleEmbeddedContainer(XMLRegionContexts.XML_CDATA_OPEN, XMLRegionContexts.XML_CDATA_CLOSE);

-				}

-				yybegin(resumeState);

-				return searchContext;

-			}

-*//*

-			// 2) yy_currentPos - cdataStarter.length: There's not searchStringLength of input available; check for a CDATA right here spots back in what we could read

-			// ---

-			// Look for a JSP beginning at the current position; this case wouldn't be handled by the preceding section

-			// since it relies upon *having* closeTagStringLength amount of input to work as designed.  Must be sure we don't

-			// spill over the end of the buffer while checking.

-			else if(checkCDATA && yy_startRead != fLastInternalBlockStart && yy_currentPos > 0 && yy_currentPos < yy_buffer.length - 1 &&

-					yy_buffer[yy_currentPos - 1] == '<' && yy_buffer[yy_currentPos] == '%') {

-				fLastInternalBlockStart = yy_markedPos = yy_currentPos - 1;

-				yy_currentPos = yy_markedPos + 1;

-				int resumeState = yystate();

-				yybegin(ST_BLOCK_TAG_INTERNAL_SCAN);

-				if(yy_markedPos == yy_startRead) {

-					String jspContext = primGetNextToken();

-					yybegin(resumeState);

-					return jspContext;

-				}

-				return searchContext;

-			}

-			// 3) yy_currentPos : Check at the start of the block one time

-			// ---

-			// Look for a JSP beginning immediately in the block area; this case wouldn't be handled by the preceding section

-			// since it relies upon yy_currentPos equaling exactly the previous end +1 to work as designed.

-			else if(checkCDATA && !checkedForCDATAOnce && yy_startRead != fLastInternalBlockStart && yy_startRead > 0 &&

-					yy_startRead < yy_buffer.length - 1 && yy_buffer[yy_startRead] == '<' && yy_buffer[yy_startRead + 1] == '%') {

-				checkedForCDATAOnce = true;

-				fLastInternalBlockStart = yy_markedPos = yy_startRead;

-				yy_currentPos = yy_markedPos + 1;

-				int resumeState = yystate();

-				yybegin(ST_BLOCK_TAG_INTERNAL_SCAN);

-				if(yy_markedPos == yy_startRead) {

-					String jspContext = primGetNextToken();

-					yybegin(resumeState);

-					return jspContext;

-				}

-				return searchContext;

-			}

-*/

-			// Check the characters in the target versus the last targetLength characters read from the buffer

-			// and see if it matches

-			if (n == YYEOF) {

-				stillSearching = false;

-			}

-			else {

-				same = true;

-				// safety check for array accesses

-				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 

- * does a lookahead for the current tag name

- */

-private final String doBlockTagScan() throws IOException {

-	fIsCaseSensitiveBlocking = getBlockMarkerCaseSensitivity();

-	return doScan("</" + fCurrentTagName, true, getBlockMarkerAllowsJSP(), 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 {

-		fEmbeddedContainer = null;

-		// load the starting non-whitespace token (assume that it is so)

-		if (fShouldLoadBuffered) {

-			if (fBufferedEmbeddedContainer != null) {

-				ITextRegion container = fBufferedEmbeddedContainer;

-				fBufferedEmbeddedContainer = null;

-				fShouldLoadBuffered = false;

-				return container;

-			}

-			context = fBufferedContext;

-			start = fBufferedStart;

-			textLength = length = fBufferedLength;

-			fShouldLoadBuffered = false;

-		} else {

-			context = primGetNextToken();

-			if (context == PROXY_CONTEXT) {

-				return fEmbeddedContainer;

-			} else if (context == XML_TAG_NAME || f_context == JSP_ROOT_TAG_NAME || f_context == JSP_DIRECTIVE_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 == PROXY_CONTEXT) {

-			fBufferedEmbeddedContainer = fEmbeddedContainer;

-			fShouldLoadBuffered = true;

-		} else if (f_context == XML_TAG_NAME || f_context == JSP_ROOT_TAG_NAME || f_context == JSP_DIRECTIVE_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 JSPTokenizer(){

-		super();

-	}

-	/* user method */

-	public JSPTokenizer(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();

-	

-		fLastInternalBlockStart = -1;

-	

-		context = null;

-		start = 0;

-		textLength = 0;

-		length = 0;

-	

-		fEmbeddedContainer = null;

-		

-		fELlevel = 0;

-	}

-	/**

-	 * user method

-	 *

-	 * @see com.ibm.sed.parser.BlockTokenizer#newInstance()

-	 */

-	public BlockTokenizer newInstance() {

-		JSPTokenizer newInstance = new JSPTokenizer();

-		// 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);

-		}

-		for(int i = 0; i < fNestablePrefixes.size(); i++) {

-			TagMarker marker = (TagMarker) fNestablePrefixes.get(i);

-			if(marker.isGlobal())

-				newInstance.addNestablePrefix(marker);

-		}

-		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, true, true, XML_COMMENT_TEXT, ST_XML_COMMENT_END, ST_XML_COMMENT_END);

-	}

-	/* user method */

-	private final String scanJSPCommentText() throws IOException {

-		// Scan for '--%>' and return the text up to that point as

-		//   JSP_COMMENT_TEXT unless the string occurs IMMEDIATELY, in which

-		//  case change to the ST_JSP_COMMENT_END state and return the next

-		//  context as usual.

-		return doScan("--%>", false, false, true, JSP_COMMENT_TEXT, ST_JSP_COMMENT_END, ST_JSP_COMMENT_END);

-	}

-%}

-

-%eof{

-// do nothing, this is the downstream parser's job

-%eof}

-

-%public

-%class JSPTokenizer

-%implements BlockTokenizer, XMLJSPRegionContexts

-%function primGetNextToken

-%type String

-%char

-%line

-%unicode

-%pack

-

-%state ST_CDATA_TEXT

-%state ST_CDATA_END

-%state ST_XML_COMMENT

-%state ST_XML_COMMENT_END

-%state ST_PI

-%state ST_PI_WS

-%state ST_PI_CONTENT

-%state ST_XML_PI_ATTRIBUTE_NAME

-%state ST_XML_PI_EQUALS

-%state ST_XML_PI_ATTRIBUTE_VALUE

-%state ST_XML_PI_TAG_CLOSE

-%state ST_DHTML_ATTRIBUTE_NAME

-%state ST_DHTML_EQUALS

-%state ST_DHTML_ATTRIBUTE_VALUE

-%state ST_DHTML_TAG_CLOSE

-

-// scriptlet state(s)

-%state ST_JSP_CONTENT

-%state ST_JSP_DIRECTIVE_NAME

-%state ST_JSP_DIRECTIVE_NAME_WHITESPACE

-%state ST_JSP_DIRECTIVE_ATTRIBUTE_NAME

-%state ST_JSP_DIRECTIVE_EQUALS

-%state ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE

-

-// normal tag states

-%state ST_XML_TAG_NAME

-%state ST_XML_ATTRIBUTE_NAME

-%state ST_XML_EQUALS

-%state ST_XML_ATTRIBUTE_VALUE

-

-// declaration (DTD) states

-%state ST_XML_DECLARATION

-%state ST_XML_DECLARATION_CLOSE

-

-%state ST_XML_DOCTYPE_DECLARATION

-%state ST_XML_DOCTYPE_EXTERNAL_ID

-%state ST_XML_DOCTYPE_ID_PUBLIC

-%state ST_XML_DOCTYPE_ID_SYSTEM

-

-%state ST_XML_ELEMENT_DECLARATION

-%state ST_XML_ELEMENT_DECLARATION_CONTENT

-

-%state ST_XML_ATTLIST_DECLARATION

-%state ST_XML_ATTLIST_DECLARATION_CONTENT

-

-

-%state ST_BLOCK_TAG_SCAN

-%state ST_BLOCK_TAG_INTERNAL_SCAN

-

-%state ST_JSP_COMMENT

-%state ST_JSP_COMMENT_END

-

-%state ST_XML_ATTRIBUTE_VALUE_SQUOTED

-%state ST_XML_ATTRIBUTE_VALUE_DQUOTED

-

-%state ST_ABORT_EMBEDDED

-

-%state ST_JSP_EL

-%state ST_JSP_EL_SQUOTES

-%state ST_JSP_EL_DQUOTES

-%state ST_JSP_EL_SQUOTES_END

-%state ST_JSP_EL_DQUOTES_END

-

-%state ST_JSP_DQUOTED_EL

-%state ST_JSP_SQUOTED_EL

-

-%state ST_JSP_VBL

-%state ST_JSP_VBL_SQUOTES

-%state ST_JSP_VBL_DQUOTES

-%state ST_JSP_VBL_SQUOTES_END

-%state ST_JSP_VBL_DQUOTES_END

-

-%state ST_JSP_DQUOTED_VBL

-%state ST_JSP_SQUOTED_VBL

-

-// Letter = ([A-Za-z])

-// Digit = ([0-9])

-

-/**

- * smaller tokens

- */

-genericTagOpen       = <

-genericTagClose      = >

-genericEndTagOpen    = <\/

-genericEmptyTagClose = \/>

-

-PIstart = <\?

-PIend   = \?>

-

-

-// [1] document ::= prolog element Misc*

-document = ({prolog} {element} {Misc}*)

-

-// [2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]

- //Char = (.)

-Char = [\x09\x0A\x0D\x20-\uD7FF\uE000-\uFFFD] 

-

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

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

-

-// [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender

-NameChar = ({Letter} | {Digit} | \. | \- | _ | : | {CombiningChar} | {Extender})

-

-// [5] Name ::= (Letter | '_' | ':') NameChar*

-//Name = ({NameChar}{NameChar}*)

-Name = ({Letter} | _ | :){NameChar}*

-

-// [6] Names ::= {Name} ({S} {Name})*

-Names = ({Name} ({S} {Name})*)

-

-// [7] Nmtoken ::= (NameChar)+

-Nmtoken = ({NameChar}+)

-

-// [8] Nmtokens ::= Nmtoken (S Nmtoken)*

-Nmtokens = ({Nmtoken} ({S} {Nmtoken})*)

-

-// [9] EntityValue ::= '"' ([^%&"] | PEReference | Reference)* '"' |  "'" ([^%&'] | PEReference | Reference)* "'"

-EntityValue = (\" ([^%&\"] | {PEReference} | {Reference})* \" |  \' ([^%&\'] | {PEReference} | {Reference})* \')

-

-// \x24 = '$', \x7b = '{', \x23 = '#'

-// [10] AttValue ::= '"' ([^<&"] | Reference)* '"' |  "'" ([^<&'] | Reference)* "'"

-AttValue = ( \"([^<"\x24\x23] | [\x24\x23][^\x7b"] | {Reference})*[\x24\x23]*\" | \'([^<'\x24\x23] | [\x24\x23][^\x7b'] | {Reference})*[\x24\x23]*\'  | ([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )*)

-

-// [11] SystemLiteral ::= ('"' [^"]* '"') | ("'" [^']* "'") 

-SystemLiteral = ((\" [^\"]* \") | (\' [^\']* \')) 

-

-// [12] PubidLiteral ::= '"' PubidChar* '"' | "'" (PubidChar - "'")* "'"

-PubidLiteral = (\" {PubidChar}* \" | \' ({PubidChar}\')* "'")

-

-// [13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]

-PubidChar = ([\040\015\012] | [a-zA-Z0-9] | [\-\'()\+,.\/:=?;!\*#@\$_%])

-

-// [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)

-// implement lookahead behavior during action definition

-CharData = ([^<&(\]\]>)]*)

-

-// [15] Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'

-CommentStart = (<!\-\-)

-CommentEnd   = (\-\->)

-Comment = ({CommentStart}.*{CommentEnd})

-

-// [16] PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'

-PI = (<\?{PITarget} {Char}* \?>)

-

-// [17] PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l'))

-PITarget = ({Name}((X|x)(M|m)(L|l)))

-

-// [18] CDSect ::= CDStart CData CDEnd

-CDSect = ({CDStart}{CData}{CDEnd})

-

-// [19] CDStart ::= '<![CDATA['

-CDStart = <!\[CDATA\[

-

-// [20] CData ::= (Char* - (Char* ']]>' Char*)) 

-// implement lookahead behavior during action definition

-CData = ([^(\]\]>)]*)

-

-// [21] CDEnd ::= ']]>'

-CDEnd = (\]\]>)

-

-// [22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?

-prolog = ({XMLDecl}? {Misc}* ({doctypedecl} {Misc}*)?)

-

-// [23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'

-XMLDecl = (<\?xml {VersionInfo} {EncodingDecl}? {SDDecl}? {S}? \?>)

-

-// [24] VersionInfo ::= S 'version' Eq (' VersionNum ' | " VersionNum ")

-VersionInfo = ({S}version{Eq}(\'{VersionNum}\' | \"{VersionNum}\"))

-

-// [25] Eq ::= S? '=' S?

-Eq = (\=)

-

-// [26] VersionNum ::= ([a-zA-Z0-9_.:] | '-')+

-VersionNum = (([a-zA-Z0-9_.:]|\-)+)

-

-// [27] Misc ::= Comment | PI |  S

-Misc = ({Comment} | {PI} | {S})

-

-// [28] doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)?  S? ('[' (markupdecl | PEReference | S)* ']' S?)? '>'

-doctypedecl = (<\!DOCTYPE{S}{Name} ({S}{ExternalID})? {S}? (\[ ({markupdecl}|{PEReference}|{S})* \]{S}?)?>)

-

-// [29] markupdecl ::= elementdecl | AttlistDecl | EntityDecl | NotationDecl | PI | Comment

-markupdecl = ({elementdecl} | {AttlistDecl} | {EntityDecl} | {NotationDecl} | {PI} | {Comment})

-

-// [30] extSubset ::= TextDecl? extSubsetDecl

-extSubset = ({TextDecl}? {extSubsetDecl})

-

-// [31] extSubsetDecl ::= ( markupdecl | conditionalSect | PEReference | S )*

-extSubsetDecl = (( {markupdecl} | {conditionalSect} | {PEReference} | {S} )*)

-

-// [32]  SDDecl  ::= S 'standalone' Eq (("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"'))

-SDDecl  = ({S}standalone{Eq}{S}*((\'(yes|no)\')|(\"(yes|no)\")))

-

-// [33]  LanguageID  ::= Langcode ('-' Subcode)*

-LanguageID  = ({Langcode}(\-{Subcode})*)

-

-// [34]  Langcode ::= ISO639Code |  IanaCode |  UserCode

-Langcode = ({ISO639Code} |  {IanaCode} |  {UserCode})

-

-// [35]  ISO639Code ::= ([a-z] | [A-Z]) ([a-z] | [A-Z])

-ISO639Code = (([a-z]|[A-Z])([a-z]|[A-Z]))

-

-// [36]  IanaCode ::= ('i' | 'I') '-' ([a-z] | [A-Z])+

-IanaCode = ((i|I)\-([a-z]|[A-Z])+)

-

-// [37]  UserCode ::= ('x' | 'X') '-' ([a-z] | [A-Z])+

-UserCode = ((x|X)\-([a-z]|[A-Z])+)

-

-// [38]  Subcode ::= ([a-z] | [A-Z])+

-Subcode = (([a-z]|[A-Z])+)

-

-// [39]  element  ::= EmptyElemTag | STag content ETag

-element  = ({EmptyElemTag} | {STag} {content} {ETag})

-

-// [40]  STag  ::= '<' Name (S Attribute)* S? '>'

-STag = (<{Name}({S}{Attribute})*{S}?>)

-

-// [41]  Attribute ::= Name Eq AttValue

-Attribute = ({Name}{S}*{Eq}{S}*{AttValue})

-

-// [42]  ETag  ::= 'Name S? '>'

-ETag = (<\/{Name}{S}?>)

-

-// [43]  content  ::= (element | CharData | Reference | CDSect | PI | Comment)*

-content = (({element} | {CharData} | {Reference} | {CDSect} | {PI} | {Comment})*)

-

-// [44]  EmptyElemTag  ::= '<' Name (S Attribute)* S? '/>'

-EmptyElemTag = (<{Name}({S}{Attribute})*{S}?\/>)

-

-// [45] elementdecl ::= '<!ELEMENT' S Name S contentspec S? '>'

-elementdecl = (<\!ELEMENT{S}{Name}{S}{contentspec}{S}?>)

-

-// [46] contentspec ::= 'EMPTY' | 'ANY' | Mixed | children

-contentspec = (EMPTY|ANY|{Mixed}|{children})

-

-// [47] children ::= (choice | seq) ('?' | '*' | '+')?

-children = (({choice}|{seq})(\?|\*|\+)?)

-

-// CAUSES LOOP THROUGH DEFS OF CHOICE AND SEQ

-// [48] cp ::= (Name | choice | seq) ('?' | '*' | '+')?

-cp = (({Name} | {choice} | {seq}) (\?|\*|\+)?)

-

-// [49] choice ::= '(' S? cp ( S? '|' S? cp )* S? ')'

-// choice = \({S}?{cp}({S}?\|{S}?{cp})*{S}?\)

-choice = \({S}?{Name}({S}?\|{S}?{Name})*{S}?\)

-

-// [50] seq ::= '(' S? cp ( S? ',' S? cp )* S? ')'

-// seq = (\({S}?{cp}({S}?\,{S}?{cp})*{S}?\))

-seq = (\({S}?{Name}({S}?\,{S}?{Name})*{S}?\))

-

-// [51] Mixed ::= '(' S? '#PCDATA' (S? '|' S? Name)* S?  ')*' | '(' S? '#PCDATA' S? ')'

-Mixed = ({S}?\#PCDATA({S}?\|{S}?{Name})*{S}?)*\|({S}?\#PCDATA{S}?)

-

-// [52] AttlistDecl ::= '<!ATTLIST' S Name AttDef* S? '>'

-AttlistDecl = (<\!ATTLIST{S}{Name}{AttDef}*{S}?>)

-

-// [53] AttDef ::= S Name S AttType S DefaultDecl

-AttDef = ({S}{Name}{S}{AttType}{S}{DefaultDecl})

-

-// [54] AttType ::= StringType | TokenizedType | EnumeratedType 

-AttType = ({StringType} | {TokenizedType} | {EnumeratedType})

-

-// [55] StringType ::= 'CDATA'

-StringType = (CDATA)

-

-// [56] TokenizedType ::= 'ID' | 'IDREF' | 'IDREFS' | 'ENTITY' | 'ENTITIES' | 'NMTOKEN' | 'NMTOKENS'

-TokenizedType = (ID|IDREF|IDREFS|ENTITY|ENTITIES|NMTOKEN|NMTOKENS)

-

-// [57] EnumeratedType ::= NotationType | Enumeration 

-EnumeratedType = ({NotationType} | {Enumeration})

-

-// [58] NotationType ::= 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')' 

-NotationType = (NOTATION{S}\({S}?{Name}({S}?\|{S}?{Name})*{S}?\))

-

-// [59] Enumeration ::= '(' S? Nmtoken (S? '|' S?  Nmtoken)* S? ')'

-Enumeration = (\({S}?{Nmtoken}({S}?\|{S}?{Nmtoken})*{S}?\))

-

-// [60] DefaultDecl ::= '#REQUIRED' | '#IMPLIED' | (('#FIXED' S)? AttValue)

-DefaultDecl = (\#REQUIRED|\#IMPLIED|((\#FIXED{S})?{AttValue}))

-

-// [61] conditionalSect ::= includeSect | ignoreSect 

-conditionalSect = ({includeSect} | {ignoreSect})

-

-// [62] includeSect ::= '<![' S? 'INCLUDE' S? '[' extSubsetDecl ']]>' 

-includeSect = (<\!\[{S}?INCLUDE{S}?\[{extSubsetDecl}\]\]>)

-

-// [63] ignoreSect ::= '<![' S? 'IGNORE' S? '[' ignoreSectContents* ']]>'

-ignoreSect = (<\!\[{S}?IGNORE{S}?\[{ignoreSectContents}*\]\]>)

-

-// [64] ignoreSectContents ::= Ignore ('<![' ignoreSectContents ']]>' Ignore)*

-ignoreSectContents = ({Ignore}(<\!\[{ignoreSectContents}\]\]>{Ignore})*)

-

-// [65] Ignore ::= Char* - (Char* ('<![' | ']]>') Char*)

-Ignore =  ([^(\<\!\[|\]\]\>)]*)

-

-// [66] CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';'

-CharRef = (&#[0-9]+;|&#x[0-9a-fA-F]+;)

-

-// [67] Reference ::= EntityRef | CharRef

-Reference = ({EntityRef} | {CharRef})

-

-// [68] EntityRef = '&' Name ';'

-EntityRef = (&{Name};)

-

-// [69] PEReference ::= '%' Name ';'

-PEReference = (%{Name};)

-

-// [70] EntityDecl ::= GEDecl | PEDecl

-EntityDecl = ({GEDecl} | {PEDecl})

-

-// [71] GEDecl ::= '<!ENTITY' S Name S EntityDef S? '>'

-GEDecl = (<\!ENTITY{S}{Name}{S}{EntityDef}{S}?>)

-

-// [72] PEDecl ::= '<!ENTITY' S '%' S Name S PEDef S? '>'

-PEDecl = (<\!ENTITY{S}\%{S}{Name}{S}{PEDef}{S}?>)

-

-// [73] EntityDef ::= EntityValue | (ExternalID NDataDecl?)

-EntityDef = ({EntityValue} | ({ExternalID}{NDataDecl}?))

-

-// [74] PEDef ::= EntityValue | ExternalID

-PEDef = ({EntityValue} | {ExternalID})

-

-// [75] ExternalID ::= 'SYSTEM' S SystemLiteral | 'PUBLIC' S PubidLiteral S SystemLiteral 

-ExternalID = (SYSTEM{S}{SystemLiteral}|PUBLIC{S}{PubidLiteral}{S}{SystemLiteral} )

-

-// [76] NDataDecl ::= S 'NDATA' S Name

-NDataDecl = ({S}NDATA{S}{Name})

-

-// [77] TextDecl ::= '<?xml' VersionInfo? EncodingDecl S? '?>'

-TextDecl = (<\?xml{VersionInfo}?{EncodingDecl}{S}?\?>)

-

-// [78] extParsedEnt ::= TextDecl? content

-extParsedEnt = ({TextDecl}?{content})

-

-// [79] extPE ::= TextDecl? extSubsetDecl

-extPE = ({TextDecl}?{extSubsetDecl})

-

-// [80] EncodingDecl ::= S 'encoding' Eq ('"' EncName '"' |  "'" EncName "'" ) 

-EncodingDecl = ({S}encoding{S}*{Eq}{S}*(\"{EncName}\"|\'{EncName}\'))

-

-// [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')*

-EncName = ([A-Za-z]([A-Za-z0-9._]|\-)*)

-

-// [82] NotationDecl ::= '<!NOTATION' S Name S (ExternalID |  PublicID) S? '>'

-NotationDecl = (<\!NOTATION{S}{Name}{S}({ExternalID}|{PublicID}){S}?>)

-

-// [83] PublicID ::= 'PUBLIC' S PubidLiteral

-PublicID = (PUBLIC{S}{PubidLiteral})

-

-// [84]  Letter ::= BaseChar | Ideographic

-Letter = ({BaseChar} | {Ideographic})

-

-// [85]  BaseChar ::= [#x0041-#x005A] | [#x0061-#x007A] | [#x00C0-#x00D6]

-// | [#x00D8-#x00F6] | [#x00F8-#x00FF] | [#x0100-#x0131]

-// | [#x0134-#x013E] | [#x0141-#x0148] | [#x014A-#x017E]

-// | [#x0180-#x01C3] | [#x01CD-#x01F0] | [#x01F4-#x01F5]

-// | [#x01FA-#x0217] | [#x0250-#x02A8] | [#x02BB-#x02C1] | #x0386

-// | [#x0388-#x038A] | #x038C | [#x038E-#x03A1] | [#x03A3-#x03CE]

-// | [#x03D0-#x03D6] | #x03DA | #x03DC | #x03DE | #x03E0

-// | [#x03E2-#x03F3] | [#x0401-#x040C] | [#x040E-#x044F]

-// | [#x0451-#x045C] | [#x045E-#x0481] | [#x0490-#x04C4]

-// | [#x04C7-#x04C8] | [#x04CB-#x04CC] | [#x04D0-#x04EB]

-// | [#x04EE-#x04F5] | [#x04F8-#x04F9] | [#x0531-#x0556] | #x0559

-// | [#x0561-#x0586] | [#x05D0-#x05EA] | [#x05F0-#x05F2]

-// | [#x0621-#x063A] | [#x0641-#x064A] | [#x0671-#x06B7]

-// | [#x06BA-#x06BE] | [#x06C0-#x06CE] | [#x06D0-#x06D3] | #x06D5

-// | [#x06E5-#x06E6] | [#x0905-#x0939] | #x093D | [#x0958-#x0961]

-// | [#x0985-#x098C] | [#x098F-#x0990] | [#x0993-#x09A8]

-// | [#x09AA-#x09B0] | #x09B2 | [#x09B6-#x09B9] | [#x09DC-#x09DD]

-// | [#x09DF-#x09E1] | [#x09F0-#x09F1] | [#x0A05-#x0A0A]

-// | [#x0A0F-#x0A10] | [#x0A13-#x0A28] | [#x0A2A-#x0A30]

-// | [#x0A32-#x0A33] | [#x0A35-#x0A36] | [#x0A38-#x0A39]

-// | [#x0A59-#x0A5C] | #x0A5E | [#x0A72-#x0A74] | [#x0A85-#x0A8B]

-// | #x0A8D | [#x0A8F-#x0A91] | [#x0A93-#x0AA8] | [#x0AAA-#x0AB0]

-// | [#x0AB2-#x0AB3] | [#x0AB5-#x0AB9] | #x0ABD | #x0AE0

-// | [#x0B05-#x0B0C] | [#x0B0F-#x0B10] | [#x0B13-#x0B28]

-// | [#x0B2A-#x0B30] | [#x0B32-#x0B33] | [#x0B36-#x0B39] | #x0B3D

-// | [#x0B5C-#x0B5D] | [#x0B5F-#x0B61] | [#x0B85-#x0B8A]

-// | [#x0B8E-#x0B90] | [#x0B92-#x0B95] | [#x0B99-#x0B9A] | #x0B9C

-// | [#x0B9E-#x0B9F] | [#x0BA3-#x0BA4] | [#x0BA8-#x0BAA]

-// | [#x0BAE-#x0BB5] | [#x0BB7-#x0BB9] | [#x0C05-#x0C0C]

-// | [#x0C0E-#x0C10] | [#x0C12-#x0C28] | [#x0C2A-#x0C33]

-// | [#x0C35-#x0C39] | [#x0C60-#x0C61] | [#x0C85-#x0C8C]

-// | [#x0C8E-#x0C90] | [#x0C92-#x0CA8] | [#x0CAA-#x0CB3]

-// | [#x0CB5-#x0CB9] | #x0CDE | [#x0CE0-#x0CE1] | [#x0D05-#x0D0C]

-// | [#x0D0E-#x0D10] | [#x0D12-#x0D28] | [#x0D2A-#x0D39]

-// | [#x0D60-#x0D61] | [#x0E01-#x0E2E] | #x0E30 | [#x0E32-#x0E33]

-// | [#x0E40-#x0E45] | [#x0E81-#x0E82] | #x0E84 | [#x0E87-#x0E88]

-// | #x0E8A | #x0E8D | [#x0E94-#x0E97] | [#x0E99-#x0E9F]

-// | [#x0EA1-#x0EA3] | #x0EA5 | #x0EA7 | [#x0EAA-#x0EAB]

-// | [#x0EAD-#x0EAE] | #x0EB0 | [#x0EB2-#x0EB3] | #x0EBD

-// | [#x0EC0-#x0EC4] | [#x0F40-#x0F47] | [#x0F49-#x0F69]

-// | [#x10A0-#x10C5] | [#x10D0-#x10F6] | #x1100 | [#x1102-#x1103]

-// | [#x1105-#x1107] | #x1109 | [#x110B-#x110C] | [#x110E-#x1112]

-// | #x113C | #x113E | #x1140 | #x114C | #x114E | #x1150

-// | [#x1154-#x1155] | #x1159 | [#x115F-#x1161] | #x1163 | #x1165

-// | #x1167 | #x1169 | [#x116D-#x116E] | [#x1172-#x1173] | #x1175

-// | #x119E | #x11A8 | #x11AB | [#x11AE-#x11AF] | [#x11B7-#x11B8]

-// | #x11BA | [#x11BC-#x11C2] | #x11EB | #x11F0 | #x11F9

-// | [#x1E00-#x1E9B] | [#x1EA0-#x1EF9] | [#x1F00-#x1F15]

-// | [#x1F18-#x1F1D] | [#x1F20-#x1F45] | [#x1F48-#x1F4D]

-// | [#x1F50-#x1F57] | #x1F59 | #x1F5B | #x1F5D | [#x1F5F-#x1F7D]

-// | [#x1F80-#x1FB4] | [#x1FB6-#x1FBC] | #x1FBE | [#x1FC2-#x1FC4]

-// | [#x1FC6-#x1FCC] | [#x1FD0-#x1FD3] | [#x1FD6-#x1FDB]

-// | [#x1FE0-#x1FEC] | [#x1FF2-#x1FF4] | [#x1FF6-#x1FFC] | #x2126

-// | [#x212A-#x212B] | #x212E | [#x2180-#x2182] | [#x3041-#x3094]

-// | [#x30A1-#x30FA] | [#x3105-#x312C] | [#xAC00-#xD7A3]

-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]

-

-// [86]  Ideographic ::= [#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029]

-Ideographic = [\u4E00-\u9FA5\u3007\u3021-\u3029]

-

-// [87]      CombiningChar    ::=    [#x0300-#x0345]    | [#x0360-#x0361]

-// | [#x0483-#x0486]          | [#x0591-#x05A1]         | [#x05A3-#x05B9]

-// | [#x05BB-#x05BD]       | #x05BF       | [#x05C1-#x05C2]	 | #x05C4

-// | [#x064B-#x0652]    | #x0670    | [#x06D6-#x06DC]   | [#x06DD-#x06DF]

-// | [#x06E0-#x06E4]          | [#x06E7-#x06E8]         | [#x06EA-#x06ED]

-// | [#x0901-#x0903]       | #x093C       | [#x093E-#x094C]      | #x094D

-// | [#x0951-#x0954]    | [#x0962-#x0963]    | [#x0981-#x0983]   | #x09BC

-// | #x09BE       | #x09BF       | [#x09C0-#x09C4]      | [#x09C7-#x09C8]

-// | [#x09CB-#x09CD]   | #x09D7   | [#x09E2-#x09E3]   | #x0A02   | #x0A3C

-// | #x0A3E       | #x0A3F       | [#x0A40-#x0A42]      | [#x0A47-#x0A48]

-// | [#x0A4B-#x0A4D]    | [#x0A70-#x0A71]    | [#x0A81-#x0A83]   | #x0ABC

-// | [#x0ABE-#x0AC5]          | [#x0AC7-#x0AC9]         | [#x0ACB-#x0ACD]

-// | [#x0B01-#x0B03]    | #x0B3C    | [#x0B3E-#x0B43]   | [#x0B47-#x0B48]

-// | [#x0B4B-#x0B4D]          | [#x0B56-#x0B57]         | [#x0B82-#x0B83]

-// | [#x0BBE-#x0BC2]    | [#x0BC6-#x0BC8]    | [#x0BCA-#x0BCD]   | #x0BD7

-// | [#x0C01-#x0C03]          | [#x0C3E-#x0C44]         | [#x0C46-#x0C48]

-// | [#x0C4A-#x0C4D]          | [#x0C55-#x0C56]         | [#x0C82-#x0C83]

-// | [#x0CBE-#x0CC4]          | [#x0CC6-#x0CC8]         | [#x0CCA-#x0CCD]

-// | [#x0CD5-#x0CD6]          | [#x0D02-#x0D03]         | [#x0D3E-#x0D43]

-// | [#x0D46-#x0D48]       | [#x0D4A-#x0D4D]       | #x0D57      | #x0E31

-// | [#x0E34-#x0E3A]    | [#x0E47-#x0E4E]    | #x0EB1   | [#x0EB4-#x0EB9]

-// | [#x0EBB-#x0EBC]    | [#x0EC8-#x0ECD]    | [#x0F18-#x0F19]   | #x0F35

-// | #x0F37      | #x0F39     | #x0F3E     | #x0F3F     | [#x0F71-#x0F84]

-// | [#x0F86-#x0F8B]    | [#x0F90-#x0F95]    | #x0F97   | [#x0F99-#x0FAD]

-// | [#x0FB1-#x0FB7]       | #x0FB9       | [#x20D0-#x20DC]      | #x20E1

-// | [#x302A-#x302F] | #x3099 | #x309A

-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]

-

-// [88]   Digit  ::=  [#x0030-#x0039] | [#x0660-#x0669] | [#x06F0-#x06F9]

-// | [#x0966-#x096F]          | [#x09E6-#x09EF]         | [#x0A66-#x0A6F]

-// | [#x0AE6-#x0AEF]          | [#x0B66-#x0B6F]         | [#x0BE7-#x0BEF]

-// | [#x0C66-#x0C6F]          | [#x0CE6-#x0CEF]         | [#x0D66-#x0D6F]

-// | [#x0E50-#x0E59] | [#x0ED0-#x0ED9] | [#x0F20-#x0F29]

-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]

-

-// [89]  Extender ::= #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | #x0E46

-// | #x0EC6       | #x3005       | [#x3031-#x3035]      | [#x309D-#x309E]

-// | [#x30FC-#x30FE]

-Extender = [\u00B7\u02D0\u02D1\u0387\u0640\u0E46\u0EC6\u3005\u3031-\u3035\u309D-\u309E\u30FC-\u30FE]

-

-

-

-/**

- * JSP and scripting marker allowances

- */

-

-jspCommentStart = <%--

-jspCommentEnd   = --%>

-

-jspScriptletStart        = <%

-jspExpressionStart       = {jspScriptletStart}=

-jspDeclarationStart      = {jspScriptletStart}\!

-jspScriptletEnd          = %>

-jspDirectiveStart        = {jspScriptletStart}@

-

-%%

-

-/* white space within a tag */

-<ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE, ST_PI, ST_XML_PI_EQUALS, ST_XML_PI_ATTRIBUTE_NAME, ST_XML_PI_ATTRIBUTE_VALUE, ST_XML_DECLARATION, ST_XML_DOCTYPE_DECLARATION, ST_XML_ELEMENT_DECLARATION, ST_XML_ATTLIST_DECLARATION, ST_XML_DECLARATION_CLOSE, ST_XML_DOCTYPE_ID_PUBLIC, ST_XML_DOCTYPE_ID_SYSTEM, ST_XML_DOCTYPE_EXTERNAL_ID, ST_JSP_DIRECTIVE_NAME, ST_JSP_DIRECTIVE_ATTRIBUTE_NAME, ST_JSP_DIRECTIVE_EQUALS, ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE,ST_XML_ATTRIBUTE_VALUE_DQUOTED,ST_XML_ATTRIBUTE_VALUE_SQUOTED,ST_DHTML_ATTRIBUTE_NAME,ST_DHTML_EQUALS,ST_DHTML_ATTRIBUTE_VALUE,ST_DHTML_TAG_CLOSE> {S}* {

-	if(Debug.debugTokenizer)

-		dump("white space");//$NON-NLS-1$

-        return WHITE_SPACE;

-}

-

-// BEGIN REGULAR XML

-/* handle opening a new tag almost anywhere */

-

-

-<YYINITIAL, ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_DECLARATION, ST_JSP_DIRECTIVE_NAME, ST_JSP_DIRECTIVE_NAME_WHITESPACE, ST_JSP_DIRECTIVE_ATTRIBUTE_NAME, ST_JSP_DIRECTIVE_EQUALS, ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE> {genericTagOpen} {

-	if(Debug.debugTokenizer)

-		dump("\nstart tag open");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_NAME;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-        yybegin(ST_XML_TAG_NAME);

-        return XML_TAG_OPEN;

-}

-/* VERY special cases for tags as values */

-/* quoted JSP */

-<ST_XML_ATTRIBUTE_VALUE_DQUOTED> ["] {

-	return XML_TAG_ATTRIBUTE_VALUE_DQUOTE;

-}

-<ST_XML_ATTRIBUTE_VALUE_SQUOTED> ['] {

-	return XML_TAG_ATTRIBUTE_VALUE_SQUOTE;

-}

-<ST_XML_ATTRIBUTE_VALUE> ["] {

-	if (Debug.debugTokenizer) {

-		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$

-	}

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED;

-	yybegin(ST_XML_ATTRIBUTE_VALUE_DQUOTED);

-	fStateStack.push(yystate());

-	if(Debug.debugTokenizer)

-		dump("JSP attribute value start - complex double quoted");//$NON-NLS-1$

-	assembleEmbeddedContainer(XML_TAG_ATTRIBUTE_VALUE_DQUOTE, XML_TAG_ATTRIBUTE_VALUE_DQUOTE);

-	fStateStack.pop();

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_EQUALS;

-	yybegin(ST_XML_ATTRIBUTE_NAME);

-	return PROXY_CONTEXT;

-}

-<ST_XML_ATTRIBUTE_VALUE> ['] {

-	if (Debug.debugTokenizer) {

-		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$

-	}

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED;

-	yybegin(ST_XML_ATTRIBUTE_VALUE_SQUOTED);

-	fStateStack.push(yystate());

-	if(Debug.debugTokenizer)

-		dump("JSP attribute value start - complex single quoted");//$NON-NLS-1$

-	assembleEmbeddedContainer(XML_TAG_ATTRIBUTE_VALUE_SQUOTE, XML_TAG_ATTRIBUTE_VALUE_SQUOTE);

-	fStateStack.pop();

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_EQUALS;

-        yybegin(ST_XML_ATTRIBUTE_NAME);

-	return PROXY_CONTEXT;

-}

-

-<ST_XML_ATTRIBUTE_VALUE_DQUOTED> ([^<"\x24\x23]|[\x24\x23][^\x7b])+ {

-	return XML_TAG_ATTRIBUTE_VALUE;

-}

-<ST_XML_ATTRIBUTE_VALUE_SQUOTED> ([^<'\x24\x23]|[\x24\x23][^\x7b])+ {

-	return XML_TAG_ATTRIBUTE_VALUE;

-}

-

-<ST_XML_ATTRIBUTE_VALUE_DQUOTED,ST_XML_ATTRIBUTE_VALUE_SQUOTED> {genericTagOpen} {

-	if (Debug.debugTokenizer) {

-		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$

-	}

-	int incomingState = yystate();

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-	if(Debug.debugTokenizer)

-		dump("tag inside of JSP attribute value start");//$NON-NLS-1$

-	yybegin(ST_XML_TAG_NAME);

-	assembleEmbeddedContainer(XML_TAG_OPEN, new String[]{XML_TAG_CLOSE,XML_EMPTY_TAG_CLOSE});

-	if(yystate() != ST_ABORT_EMBEDDED)

-        yybegin(incomingState);

-	return PROXY_CONTEXT;

-}

-<ST_XML_ATTRIBUTE_VALUE_DQUOTED,ST_XML_ATTRIBUTE_VALUE_SQUOTED> {genericEndTagOpen} {

-	if (Debug.debugTokenizer) {

-		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$

-	}

-	int incomingState = yystate();

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-	if(Debug.debugTokenizer)

-		dump("JSP attribute value start - end tag");//$NON-NLS-1$

-	yybegin(ST_XML_TAG_NAME);

-	assembleEmbeddedContainer(XML_END_TAG_OPEN, new String[]{XML_TAG_CLOSE,XML_EMPTY_TAG_CLOSE});

-	if(yystate() != ST_ABORT_EMBEDDED)

-        yybegin(incomingState);

-	return PROXY_CONTEXT;

-}

-

-/* unquoted */

-<ST_XML_ATTRIBUTE_VALUE> {genericTagOpen} {

-	if (Debug.debugTokenizer) {

-		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$

-	}

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-	fStateStack.push(yystate());

-	if(Debug.debugTokenizer)

-		dump("JSP tag embedded name start - start tag");//$NON-NLS-1$

-	yybegin(ST_XML_TAG_NAME);

-	assembleEmbeddedContainer(XML_TAG_OPEN, new String[]{XML_TAG_CLOSE,XML_EMPTY_TAG_CLOSE});

-	fStateStack.pop();

-        yybegin(ST_XML_ATTRIBUTE_NAME);

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_EQUALS;

-	return PROXY_CONTEXT;

-}

-

-<YYINITIAL, ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE, ST_XML_DECLARATION> {genericEndTagOpen} {

-	if(Debug.debugTokenizer)

-		dump("\nend tag open");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_NAME;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-        yybegin(ST_XML_TAG_NAME);

-        return XML_END_TAG_OPEN;

-}

-/* specially treated JSP tag names */

-<ST_XML_TAG_NAME> jsp:root {

-	if(Debug.debugTokenizer)

-		dump("jsp:root tag name");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_EQUALS;

-        yybegin(ST_XML_ATTRIBUTE_NAME);

-        return JSP_ROOT_TAG_NAME;

-}

-<ST_XML_TAG_NAME> jsp:directive.(page|include|tag|taglib|attribute|variable) {

-	if(Debug.debugTokenizer)

-		dump("jsp directive tag name");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_EQUALS;

-        yybegin(ST_XML_ATTRIBUTE_NAME);

-        return JSP_DIRECTIVE_NAME;

-}

-/* the tag's name was found, start scanning for attributes */

-<ST_XML_TAG_NAME> {Name} {

-	if(Debug.debugTokenizer)

-		dump("tag name");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_EQUALS;

-        yybegin(ST_XML_ATTRIBUTE_NAME);

-        return XML_TAG_NAME;

-}

-

-/* another attribute name was found, resume looking for the equals sign */

-<ST_XML_ATTRIBUTE_NAME, ST_XML_EQUALS> {Name} {

-	if(Debug.debugTokenizer)

-		dump("attr name");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-        yybegin(ST_XML_EQUALS);

-        return XML_TAG_ATTRIBUTE_NAME;

-}

-/* an equal sign was found, what's next is the value */

-<ST_XML_EQUALS> {Eq} {

-	if(Debug.debugTokenizer)

-		dump("equals");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-        yybegin(ST_XML_ATTRIBUTE_VALUE);

-        return XML_TAG_ATTRIBUTE_EQUALS;

-}

-/* the value was found, look for the next name */

-<ST_XML_ATTRIBUTE_VALUE> {AttValue} {

-	if(Debug.debugTokenizer)

-		dump("attr value");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_EQUALS;

-        yybegin(ST_XML_ATTRIBUTE_NAME);

-        return XML_TAG_ATTRIBUTE_VALUE;

-}

-/* the tag's close was found */

-<ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE> {genericTagClose} {

-	if(Debug.debugTokenizer)

-		dump("tag close");//$NON-NLS-1$

-	fEmbeddedHint = UNDEFINED;

-	if(isBlockMarker()) {

-		fEmbeddedHint = getBlockMarkerContext();

-		fEmbeddedPostState = ST_BLOCK_TAG_SCAN;

-        	yybegin(ST_BLOCK_TAG_SCAN);

-	}

-	else

-        	yybegin(YYINITIAL);

-        return XML_TAG_CLOSE;

-}

-/* the tag's close was found, but the tag doesn't need a matching end tag */

-<ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE> {genericEmptyTagClose} {

-        yybegin(YYINITIAL);

-	fEmbeddedHint = UNDEFINED;

-	if(Debug.debugTokenizer)

-		dump("empty tag close");//$NON-NLS-1$

-        return XML_EMPTY_TAG_CLOSE;

-}

-

-<ST_XML_TAG_NAME> [^</>\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\u4E00-\u9FA5\u3007\u3021-\u3029]* {

-	if(Debug.debugTokenizer)

-		dump("inappropriate tag name");//$NON-NLS-1$

-	if(!fStateStack.empty() && (fStateStack.peek()==ST_XML_ATTRIBUTE_VALUE_SQUOTED||fStateStack.peek()==ST_XML_ATTRIBUTE_VALUE_DQUOTED)) {

-		yybegin(ST_ABORT_EMBEDDED);

-		yypushback(yylength()-1);

-		return XML_TAG_ATTRIBUTE_VALUE;

-	}

-	yybegin(YYINITIAL);

-        return XML_CONTENT;

-}

-

-// END REGULAR XML

-

-// BEGIN NESTED XML TAGS

-<ST_XML_ATTRIBUTE_NAME, ST_XML_EQUALS> <{Name} {

-	String tagName = yytext().substring(1);

-	// pushback to just after the opening bracket

-	yypushback(yylength() - 1);

-	if(!isNestable(tagName)) {

-		yybegin(ST_XML_TAG_NAME);

-		return XML_TAG_OPEN;

-	}

-	if(Debug.debugTokenizer)

-		dump("tag in place of attr name");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-	fStateStack.push(yystate());

-	// embedded container should be looking for the name (again) next

-	yybegin(ST_XML_TAG_NAME);

-	assembleEmbeddedTagSequence(XML_TAG_OPEN, tagName); // ?

-	fStateStack.pop();

-	yybegin(ST_XML_EQUALS);

-	return PROXY_CONTEXT;

-}

-<ST_XML_ATTRIBUTE_VALUE> <{Name} {

-	String tagName = yytext().substring(1);

-	// pushback to just after the opening bracket

-	yypushback(yylength() - 1);

-	if(!isNestable(tagName)) {

-		yybegin(ST_XML_TAG_NAME);

-		return XML_TAG_OPEN;

-	}

-	if(Debug.debugTokenizer)

-		dump("tag in place of attr value");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-	fStateStack.push(yystate());

-	// embedded container should be looking for the name (again) next

-	yybegin(ST_XML_TAG_NAME);

-	assembleEmbeddedTagSequence(XML_TAG_OPEN, tagName); // ?

-	fStateStack.pop();

-	yybegin(ST_XML_ATTRIBUTE_NAME);

-	return PROXY_CONTEXT;

-}

-// END NESTED XML

-

-// XML & JSP Comments

-

-<YYINITIAL, ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE, ST_XML_DECLARATION, ST_JSP_DIRECTIVE_NAME, ST_JSP_DIRECTIVE_NAME_WHITESPACE, ST_JSP_DIRECTIVE_ATTRIBUTE_NAME, ST_JSP_DIRECTIVE_EQUALS, ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE> {CommentStart} {

-	if(Debug.debugTokenizer)

-		dump("\ncomment start");//$NON-NLS-1$

-	fEmbeddedHint = XML_COMMENT_TEXT;

-	fEmbeddedPostState = ST_XML_COMMENT;

-	yybegin(ST_XML_COMMENT);

-	return XML_COMMENT_OPEN;

-}

-<ST_XML_COMMENT> .|\r|\n {

-	if(Debug.debugTokenizer)

-		dump("comment content");//$NON-NLS-1$

-	return scanXMLCommentText();

-}

-

-<ST_XML_COMMENT_END> {CommentEnd} {

-	if(Debug.debugTokenizer)

-		dump("comment end");//$NON-NLS-1$

-	fEmbeddedHint = UNDEFINED;

-	yybegin(YYINITIAL);

-	return XML_COMMENT_CLOSE;

-}

-

-<ST_JSP_CONTENT> {jspScriptletEnd} {

-	if(Debug.debugTokenizer)

-		dump("JSP end");//$NON-NLS-1$

-	if (Debug.debugTokenizer) {

-		if(fStateStack.peek()!=YYINITIAL)

-			System.out.println("end embedded region");//$NON-NLS-1$

-	}

-	yybegin(fStateStack.pop());

-	return JSP_CLOSE;

-}

-<ST_JSP_CONTENT> . {

-	if(Debug.debugTokenizer)

-		dump("JSP code content");//$NON-NLS-1$

-	return doScan("%>", false, false, false, JSP_CONTENT, ST_JSP_CONTENT, ST_JSP_CONTENT);

-}

-{jspScriptletStart} {

-	/* JSP scriptlet begun (anywhere)

-	 * A consequence of the start anywhere possibility is that the

-	 *  incoming state must be checked to see if it's erroneous

-	 *  due to the order of precedence generated

-	 */

-	// begin sanity checks

-	if(yystate() == ST_JSP_CONTENT) {

-		// at the beginning?!

-		yypushback(1);

-		return JSP_CONTENT;

-	}

-	else if(yystate() == ST_BLOCK_TAG_SCAN) {

-		yypushback(2);

-		return doBlockTagScan();

-	}

-	else if(yystate() == ST_XML_COMMENT) {

-		yypushback(2);

-		return scanXMLCommentText();

-	}

-	else if(yystate() == ST_JSP_COMMENT) {

-		yypushback(2);

-		return scanJSPCommentText();

-	}

-	// finished sanity checks

-	fStateStack.push(yystate());

-	if(fStateStack.peek()==YYINITIAL) {

-		// the simple case, just a regular scriptlet out in content

-		if(Debug.debugTokenizer)

-			dump("\nJSP scriptlet start");//$NON-NLS-1$

-		yybegin(ST_JSP_CONTENT);

-		return JSP_SCRIPTLET_OPEN;

-	}

-	else {

-		if (Debug.debugTokenizer) {

-			System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$

-		}

-		if(Debug.debugTokenizer)

-			dump("JSP scriptlet start");//$NON-NLS-1$

-		if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED)

-			fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED;

-		else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED)

-			fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED;

-		else if(yystate() == ST_CDATA_TEXT) {

-			fEmbeddedPostState = ST_CDATA_TEXT;

-			fEmbeddedHint = XML_CDATA_TEXT;

-		}

-		yybegin(ST_JSP_CONTENT);

-		assembleEmbeddedContainer(JSP_SCRIPTLET_OPEN, JSP_CLOSE);

-		if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {

-			yybegin(ST_BLOCK_TAG_SCAN);

-			return BLOCK_TEXT;

-		}

-		// required help for successive embedded regions

-		if(yystate() == ST_XML_TAG_NAME) {

-			fEmbeddedHint = XML_TAG_NAME;

-			fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-		}

-		else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) {

-			fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-			fEmbeddedPostState = ST_XML_EQUALS;

-		}

-		else if(yystate() == ST_XML_ATTRIBUTE_VALUE) {

-			fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;

-			fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-		}

-		return PROXY_CONTEXT;

-	}

-}

-{jspExpressionStart} {

-	/* JSP expression begun (anywhere)

-	 * A consequence of the start anywhere possibility is that the

-	 *  incoming state must be checked to see if it's erroneous

-	 *  due to the order of precedence generated

-	 */

-	// begin sanity checks

-	if(yystate() == ST_JSP_CONTENT) {

-		// at the beginning?!

-		yypushback(2);

-		return JSP_CONTENT;

-	}

-	else if(yystate() == ST_BLOCK_TAG_SCAN) {

-		yypushback(3);

-		return doBlockTagScan();

-	}

-	else if(yystate() == ST_XML_COMMENT) {

-		yypushback(3);

-		return scanXMLCommentText();

-	}

-	else if(yystate() == ST_JSP_COMMENT) {

-		yypushback(3);

-		return scanJSPCommentText();

-	}

-	// end sanity checks

-	fStateStack.push(yystate());

-	if(fStateStack.peek()==YYINITIAL) {

-		// the simple case, just an expression out in content

-		if(Debug.debugTokenizer)

-			dump("\nJSP expression start");//$NON-NLS-1$

-		yybegin(ST_JSP_CONTENT);

-		return JSP_EXPRESSION_OPEN;

-	}

-	else {

-		if (Debug.debugTokenizer) {

-			System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$

-		}

-		if(Debug.debugTokenizer)

-			dump("JSP expression start");//$NON-NLS-1$

-		if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED)

-			fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED;

-		else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED)

-			fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED;

-		else if(yystate() == ST_CDATA_TEXT) {

-			fEmbeddedPostState = ST_CDATA_TEXT;

-			fEmbeddedHint = XML_CDATA_TEXT;

-		}

-		yybegin(ST_JSP_CONTENT);

-		assembleEmbeddedContainer(JSP_EXPRESSION_OPEN, JSP_CLOSE);

-		if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {

-			yybegin(ST_BLOCK_TAG_SCAN);

-			return BLOCK_TEXT;

-		}

-		// required help for successive embedded regions

-		if(yystate() == ST_XML_TAG_NAME) {

-			fEmbeddedHint = XML_TAG_NAME;

-			fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-		}

-		else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) {

-			fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-			fEmbeddedPostState = ST_XML_EQUALS;

-		}

-		else if(yystate() == ST_XML_ATTRIBUTE_VALUE) {

-			fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;

-			fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-		}

-		return PROXY_CONTEXT;

-	}

-}

-{jspDeclarationStart} {

-	/* JSP declaration begun (anywhere)

-	 * A consequence of the start anywhere possibility is that the

-	 *  incoming state must be checked to see if it's erroneous

-	 *  due to the order of precedence generated

-	 */

-	// begin sanity checks

-	if(yystate() == ST_JSP_CONTENT) {

-		// at the beginning?!

-		yypushback(2);

-		return JSP_CONTENT;

-	}

-	else if(yystate() == ST_BLOCK_TAG_SCAN) {

-		yypushback(3);

-		return doBlockTagScan();

-	}

-	else if(yystate() == ST_XML_COMMENT) {

-		yypushback(3);

-		return scanXMLCommentText();

-	}

-	else if(yystate() == ST_JSP_COMMENT) {

-		yypushback(3);

-		return scanJSPCommentText();

-	}

-	// end sanity checks

-	fStateStack.push(yystate());

-	if(fStateStack.peek()==YYINITIAL) {

-		// the simple case, just a declaration out in content

-		if(Debug.debugTokenizer)

-			dump("\nJSP declaration start");//$NON-NLS-1$

-		yybegin(ST_JSP_CONTENT);

-		return JSP_DECLARATION_OPEN;

-	}

-	else {

-		if (Debug.debugTokenizer) {

-			System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$

-		}

-		if(Debug.debugTokenizer)

-			dump("JSP declaration start");//$NON-NLS-1$

-		if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED)

-			fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED;

-		else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED)

-			fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED;

-		else if(yystate() == ST_CDATA_TEXT) {

-			fEmbeddedPostState = ST_CDATA_TEXT;

-			fEmbeddedHint = XML_CDATA_TEXT;

-		}

-		yybegin(ST_JSP_CONTENT);

-		assembleEmbeddedContainer(JSP_DECLARATION_OPEN, JSP_CLOSE);

-		if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {

-			yybegin(ST_BLOCK_TAG_SCAN);

-			return BLOCK_TEXT;

-		}

-		// required help for successive embedded regions

-		if(yystate() == ST_XML_TAG_NAME) {

-			fEmbeddedHint = XML_TAG_NAME;

-			fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-		}

-		else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) {

-			fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-			fEmbeddedPostState = ST_XML_EQUALS;

-		}

-		else if(yystate() == ST_XML_ATTRIBUTE_VALUE) {

-			fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;

-			fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-		}

-		return PROXY_CONTEXT;

-	}

-}

-<ST_BLOCK_TAG_INTERNAL_SCAN> {jspCommentStart}  {

-	yybegin(ST_JSP_COMMENT);

-	assembleEmbeddedContainer(JSP_COMMENT_OPEN, JSP_COMMENT_CLOSE);

-	if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN)

-		yybegin(ST_BLOCK_TAG_SCAN);

-	return PROXY_CONTEXT;

-}

-<YYINITIAL,ST_BLOCK_TAG_INTERNAL_SCAN> {jspDirectiveStart}  {

-	fStateStack.push(yystate());

-	if(fStateStack.peek()==YYINITIAL) {

-		if(Debug.debugTokenizer)

-			dump("\nJSP directive start");//$NON-NLS-1$

-		yybegin(ST_JSP_DIRECTIVE_NAME);

-		return JSP_DIRECTIVE_OPEN;

-	}

-	else {

-		if (Debug.debugTokenizer) {

-			System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$

-		}

-		if(Debug.debugTokenizer)

-			dump("JSP directive start");//$NON-NLS-1$

-		yybegin(ST_JSP_DIRECTIVE_NAME);

-		assembleEmbeddedContainer(JSP_DIRECTIVE_OPEN, new String[]{JSP_DIRECTIVE_CLOSE, JSP_CLOSE});

-		if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {

-			yybegin(ST_BLOCK_TAG_SCAN);

-			return BLOCK_TEXT;

-		}

-		return PROXY_CONTEXT;

-	}

-}

-<ST_JSP_DIRECTIVE_NAME> {Name} {

-	if(Debug.debugTokenizer)

-		dump("JSP directive name");//$NON-NLS-1$

-	yybegin(ST_JSP_DIRECTIVE_NAME_WHITESPACE);

-	return JSP_DIRECTIVE_NAME;

-}

-<ST_JSP_DIRECTIVE_NAME_WHITESPACE> {S}? {

-	if(Debug.debugTokenizer)

-		dump("white space");//$NON-NLS-1$

-	yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_NAME);

-	return WHITE_SPACE;

-}

-<ST_JSP_DIRECTIVE_ATTRIBUTE_NAME, ST_JSP_DIRECTIVE_EQUALS> {Name} {

-	if(Debug.debugTokenizer)

-		dump("attr name");//$NON-NLS-1$

-        yybegin(ST_JSP_DIRECTIVE_EQUALS);

-        return XML_TAG_ATTRIBUTE_NAME;

-}

-<ST_JSP_DIRECTIVE_EQUALS> {Eq} {

-	if(Debug.debugTokenizer)

-		dump("equals");//$NON-NLS-1$

-        yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE);

-        return XML_TAG_ATTRIBUTE_EQUALS;

-}

-<ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE> {AttValue} {

-	if(Debug.debugTokenizer)

-		dump("attr value");//$NON-NLS-1$

-        yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_NAME);

-        return XML_TAG_ATTRIBUTE_VALUE;

-}

-<ST_JSP_DIRECTIVE_NAME, ST_JSP_DIRECTIVE_NAME_WHITESPACE, ST_JSP_DIRECTIVE_ATTRIBUTE_NAME, ST_JSP_DIRECTIVE_EQUALS, ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE> {jspScriptletEnd} {

-	if(Debug.debugTokenizer)

-		dump("JSP end");//$NON-NLS-1$

-	if (Debug.debugTokenizer) {

-		if(fStateStack.peek()!=YYINITIAL)

-			System.out.println("end embedded region");//$NON-NLS-1$

-	}

-	yybegin(fStateStack.pop());

-	return JSP_DIRECTIVE_CLOSE;

-}

-

-<YYINITIAL> {jspCommentStart} {

-	if(Debug.debugTokenizer)

-		dump("\nJSP comment start");//$NON-NLS-1$

-	yybegin(ST_JSP_COMMENT);

-	return JSP_COMMENT_OPEN;

-}

-

-<ST_XML_ATTRIBUTE_VALUE_DQUOTED> \x24\x7b {

-	int enterState = yystate();

-	yybegin(ST_JSP_DQUOTED_EL);

-	assembleEmbeddedContainer(JSP_EL_OPEN, new String[]{JSP_EL_CLOSE, XML_TAG_ATTRIBUTE_VALUE_DQUOTE});

-	// abort early when an unescaped double quote is found in the EL

-	if(fEmbeddedContainer.getLastRegion().getType().equals(XML_TAG_ATTRIBUTE_VALUE_DQUOTE)) {

-		yybegin(ST_ABORT_EMBEDDED);

-		fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-	}

-	else {

-		yybegin(enterState);

-	}

-	return PROXY_CONTEXT;

-}

-<ST_XML_ATTRIBUTE_VALUE_DQUOTED> \x23\x7b {

-	int enterState = yystate();

-	yybegin(ST_JSP_DQUOTED_VBL);

-	assembleEmbeddedContainer(JSP_VBL_OPEN, new String[]{JSP_VBL_CLOSE, XML_TAG_ATTRIBUTE_VALUE_DQUOTE});

-	// abort early when an unescaped double quote is found in the VBL

-	if(fEmbeddedContainer.getLastRegion().getType().equals(XML_TAG_ATTRIBUTE_VALUE_DQUOTE)) {

-		yybegin(ST_ABORT_EMBEDDED);

-		fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-	}

-	else {

-		yybegin(enterState);

-	}

-	return PROXY_CONTEXT;

-}

-<ST_XML_ATTRIBUTE_VALUE_SQUOTED> \x24\x7b {

-	int enterState = yystate();

-	yybegin(ST_JSP_SQUOTED_EL);

-	assembleEmbeddedContainer(JSP_EL_OPEN, new String[]{JSP_EL_CLOSE, XML_TAG_ATTRIBUTE_VALUE_SQUOTE});

-	// abort early when an unescaped single quote is found in the EL

-	if(fEmbeddedContainer.getLastRegion().getType().equals(XML_TAG_ATTRIBUTE_VALUE_SQUOTE)) {

-		yybegin(ST_ABORT_EMBEDDED);

-		fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-	}

-	else {

-		yybegin(enterState);

-	}

-	return PROXY_CONTEXT;

-}

-<ST_XML_ATTRIBUTE_VALUE_SQUOTED> \x23\x7b {

-	int enterState = yystate();

-	yybegin(ST_JSP_SQUOTED_VBL);

-	assembleEmbeddedContainer(JSP_VBL_OPEN, new String[]{JSP_VBL_CLOSE, XML_TAG_ATTRIBUTE_VALUE_SQUOTE});

-	// abort early when an unescaped single quote is found in the VBL

-	if(fEmbeddedContainer.getLastRegion().getType().equals(XML_TAG_ATTRIBUTE_VALUE_SQUOTE)) {

-		yybegin(ST_ABORT_EMBEDDED);

-		fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-	}

-	else {

-		yybegin(enterState);

-	}

-	return PROXY_CONTEXT;

-}

-

-// unescaped double quote, return as ending region

-<ST_JSP_DQUOTED_EL,ST_JSP_DQUOTED_VBL> ["] {

-	return XML_TAG_ATTRIBUTE_VALUE_DQUOTE;

-}

-// unescaped single quote, return as ending region

-<ST_JSP_SQUOTED_EL,ST_JSP_SQUOTED_VBL> ['] {

-	return XML_TAG_ATTRIBUTE_VALUE_SQUOTE;

-}

-

-

-// paired escaped double quotes

-<ST_JSP_DQUOTED_EL> \\\" ([^\\]|\\[^"}]+)* \\\" {

-	return JSP_EL_QUOTED_CONTENT;

-}

-// everything else EL

-<ST_JSP_DQUOTED_EL> ([^\\}"]|\\[^"])+ {

-	return JSP_EL_CONTENT;

-}

-<ST_JSP_DQUOTED_EL> \\\" {

-	return JSP_EL_CONTENT;

-}

-// paired escaped quotes

-<ST_JSP_SQUOTED_EL> \\\' ([^\\]|\\[^'}]+)* \\\' {

-	return JSP_EL_QUOTED_CONTENT;

-}

-// everything else EL

-<ST_JSP_SQUOTED_EL> ([^\\}']|\\[^'])+ {

-	return JSP_EL_CONTENT;

-}

-<ST_JSP_SQUOTED_EL> \\\' {

-	return JSP_EL_CONTENT;

-}

-<ST_JSP_DQUOTED_EL,ST_JSP_SQUOTED_EL> } {

-	return JSP_EL_CLOSE;

-}

-

-

-// paired escaped quotes

-<ST_JSP_DQUOTED_VBL> \\\" ([^\\]|\\[^"}]+)* \\\" {

-	return JSP_VBL_QUOTED_CONTENT;

-}

-// everything else VBL

-<ST_JSP_DQUOTED_VBL> ([^\\}"]|\\[^"])+ {

-	return JSP_VBL_CONTENT;

-}

-<ST_JSP_DQUOTED_VBL> \\\" {

-	return JSP_VBL_CONTENT;

-}

-// paired escaped quotes

-<ST_JSP_SQUOTED_VBL> \\\' ([^\\]|\\[^'}]+)* \\\' {

-	return JSP_VBL_QUOTED_CONTENT;

-}

-// everything else VBL

-<ST_JSP_SQUOTED_VBL> ([^\\}']|\\[^'])+ {

-	return JSP_VBL_CONTENT;

-}

-<ST_JSP_SQUOTED_VBL> \\\' {

-	return JSP_VBL_CONTENT;

-}

-

-<ST_JSP_DQUOTED_VBL,ST_JSP_SQUOTED_VBL> } {

-	return JSP_VBL_CLOSE;

-}

-

-

-// XML content area EL

-<YYINITIAL> \x24\x7b[^\x7d]*/\x7d {

-	yybegin(ST_JSP_EL);

-	if(yylength() > 2)

-		yypushback(yylength() - 2);

-	fELlevel++;

-	fEmbeddedHint = XML_CONTENT;

-	fEmbeddedPostState = YYINITIAL;

-	assembleEmbeddedContainer(JSP_EL_OPEN, JSP_EL_CLOSE);

-	fEmbeddedHint = XML_CONTENT;

-	yybegin(YYINITIAL);

-	return PROXY_CONTEXT;

-}

-<ST_JSP_EL> \x24\x7b {

-	fELlevel++;

-	if(fELlevel == 1) {

-		return JSP_EL_OPEN;

-	}

-}

-// XML content area VBL

-<YYINITIAL> \x23\x7b[^\x7d]*/\x7d {

-	yybegin(ST_JSP_VBL);

-	if(yylength() > 2)

-		yypushback(yylength() - 2);

-	fELlevel++;

-	fEmbeddedHint = XML_CONTENT;

-	fEmbeddedPostState = YYINITIAL;

-	assembleEmbeddedContainer(JSP_VBL_OPEN, JSP_VBL_CLOSE);

-	fEmbeddedHint = XML_CONTENT;

-	yybegin(YYINITIAL);

-	return PROXY_CONTEXT;

-}

-<ST_JSP_VBL> \x23\x7b {

-	fELlevel++;

-	if(fELlevel == 1) {

-		return JSP_VBL_OPEN;

-	}

-}

-// return anything not starting quotes or ending the VBL as content

-<ST_JSP_VBL> [^\x7d\x22\x27]* {

-	return JSP_VBL_CONTENT;

-}

-// return anything not starting quotes or ending the EL as content

-<ST_JSP_EL> [^\x7d\x22\x27]* {

-	return JSP_EL_CONTENT;

-}

-

-

-// quotes

-<ST_JSP_EL> \x22 {

-	yybegin(ST_JSP_EL_DQUOTES);

-	return JSP_EL_DQUOTE;

-}

-<ST_JSP_EL_DQUOTES> [^\x22]+/\x22 {

-	yybegin(ST_JSP_EL_DQUOTES_END);

-	return JSP_EL_QUOTED_CONTENT;

-}

-<ST_JSP_EL_DQUOTES_END> \x22 {

-	yybegin(ST_JSP_EL);

-	return JSP_EL_DQUOTE;

-}

-<ST_JSP_EL> \x27 {

-	yybegin(ST_JSP_EL_SQUOTES);

-	return JSP_EL_SQUOTE;

-}

-<ST_JSP_EL_SQUOTES> [^\x27]+/\x27 {

-	yybegin(ST_JSP_EL_SQUOTES_END);

-	return JSP_EL_QUOTED_CONTENT;

-}

-<ST_JSP_EL_SQUOTES_END> \x27 {

-	yybegin(ST_JSP_EL);

-	return JSP_EL_SQUOTE;

-}

-// quotes

-<ST_JSP_VBL> \x22 {

-	yybegin(ST_JSP_VBL_DQUOTES);

-	return JSP_VBL_DQUOTE;

-}

-<ST_JSP_VBL_DQUOTES> [^\x22]+/\x22 {

-	yybegin(ST_JSP_VBL_DQUOTES_END);

-	return JSP_VBL_QUOTED_CONTENT;

-}

-<ST_JSP_VBL_DQUOTES_END> \x22 {

-	yybegin(ST_JSP_VBL);

-	return JSP_VBL_DQUOTE;

-}

-<ST_JSP_VBL> \x27 {

-	yybegin(ST_JSP_VBL_SQUOTES);

-	return JSP_VBL_SQUOTE;

-}

-<ST_JSP_VBL_SQUOTES> [^\x27]+/\x27 {

-	yybegin(ST_JSP_VBL_SQUOTES_END);

-	return JSP_VBL_QUOTED_CONTENT;

-}

-<ST_JSP_VBL_SQUOTES_END> \x27 {

-	yybegin(ST_JSP_VBL);

-	return JSP_VBL_SQUOTE;

-}

-

-// unquoted content

-<ST_JSP_EL> ([^}\x27\x22\x24]|\x24[^\x7b\x27\x22])+ {

-	//System.out.println(JSP_EL_CONTENT+ ":[" + yytext() + "]");

-	return JSP_EL_CONTENT;

-}

-<ST_JSP_EL> } {

-	fELlevel--;

-	if(fELlevel == 0) {

-		yybegin(YYINITIAL);

-		return JSP_EL_CLOSE;

-	}

-	return JSP_EL_CONTENT;

-}

-<ST_JSP_VBL> } {

-	fELlevel--;

-	if(fELlevel == 0) {

-		yybegin(YYINITIAL);

-		return JSP_VBL_CLOSE;

-	}

-	return JSP_VBL_CONTENT;

-}

-// EL unquoted in tag (section 2.1 declares it as valid in template text (XML_CONTENT) or attribute values

-<ST_XML_ATTRIBUTE_VALUE> \x24\x7b[^\x7d]+/\x7d {

-	if (Debug.debugTokenizer) {

-		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$

-	}

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-	fStateStack.push(yystate());

-	if(yylength() > 2)

-		yypushback(yylength() -2);

-	if(Debug.debugTokenizer)

-		dump("EL in attr value");//$NON-NLS-1$

-	yybegin(ST_JSP_EL);

-	fELlevel++;

-	assembleEmbeddedContainer(JSP_EL_OPEN, new String[]{JSP_EL_CLOSE});

-	fStateStack.pop();

-	yybegin(ST_XML_ATTRIBUTE_NAME);

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_EQUALS;

-	return PROXY_CONTEXT;

-}

-// VBL unquoted in tag or attribute values

-<ST_XML_ATTRIBUTE_VALUE> \x23\x7b[^\x7d]+/\x7d {

-	if (Debug.debugTokenizer) {

-		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$

-	}

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-	fStateStack.push(yystate());

-	if(yylength() > 2)

-		yypushback(yylength() -2);

-	if(Debug.debugTokenizer)

-		dump("VBL in attr value");//$NON-NLS-1$

-	yybegin(ST_JSP_VBL);

-	fELlevel++;

-	assembleEmbeddedContainer(JSP_VBL_OPEN, new String[]{JSP_VBL_CLOSE});

-	fStateStack.pop();

-	yybegin(ST_XML_ATTRIBUTE_NAME);

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_EQUALS;

-	return PROXY_CONTEXT;

-}

-

-<ST_JSP_COMMENT> .|\r|\n {

-	if(Debug.debugTokenizer)

-		dump("\nJSP comment text");//$NON-NLS-1$

-	return scanJSPCommentText();

-}

-<ST_JSP_COMMENT_END> {jspCommentEnd} {

-	if(Debug.debugTokenizer)

-		dump("\nJSP comment close");//$NON-NLS-1$

-	yybegin(YYINITIAL);

-	return JSP_COMMENT_CLOSE;

-}

-

-// XML misc

-

-{CDStart} {

-	if(Debug.debugTokenizer)

-		dump("\nCDATA start");//$NON-NLS-1$

-	fStateStack.push(yystate());

-	yybegin(ST_CDATA_TEXT);

-	return XML_CDATA_OPEN;

-}

-<ST_CDATA_TEXT> .|\r|\n {

-	if(Debug.debugTokenizer)

-		dump("CDATA text");//$NON-NLS-1$

-	fEmbeddedPostState = ST_CDATA_TEXT;

-	fEmbeddedHint = XML_CDATA_TEXT;

-	String returnedContext = doScan("]]>", false, true, true, XML_CDATA_TEXT, ST_CDATA_END,  ST_CDATA_END);//$NON-NLS-1$

-	if(returnedContext == XML_CDATA_TEXT)

-		yybegin(ST_CDATA_END);

-	return returnedContext;

-}

-<ST_CDATA_END> {CDEnd} {

-	if(Debug.debugTokenizer)

-		dump("CDATA end");//$NON-NLS-1$

-	yybegin(fStateStack.pop());

-	return XML_CDATA_CLOSE;

-}

-

-<YYINITIAL> {PEReference} {

-	if(Debug.debugTokenizer)

-		dump("\nPEReference");//$NON-NLS-1$

-	return XML_PE_REFERENCE;

-}

-<YYINITIAL> {CharRef} {

-	if(Debug.debugTokenizer)

-		dump("\nCharRef");//$NON-NLS-1$

-	return XML_CHAR_REFERENCE;

-}

-<YYINITIAL> {EntityRef} {

-	if(Debug.debugTokenizer)

-		dump("\nEntityRef");//$NON-NLS-1$

-	return XML_ENTITY_REFERENCE;

-}

-

-<YYINITIAL> {PIstart} {

-	if(Debug.debugTokenizer)

-		dump("\nprocessing instruction start");//$NON-NLS-1$

-	yybegin(ST_PI);

-        return XML_PI_OPEN;

-}

-// the next three are order dependent

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

-	if(Debug.debugTokenizer)

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

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_EQUALS;

-        yybegin(ST_XML_PI_ATTRIBUTE_NAME);

-        return XML_TAG_NAME;

-}

-<ST_PI> ([iI][mM][pP][oO][rR][tT]) {

-	if(Debug.debugTokenizer)

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

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_EQUALS;

-        yybegin(ST_DHTML_ATTRIBUTE_NAME);

-        return XML_TAG_NAME;

-}

-<ST_PI> {Name} {

-	if(Debug.debugTokenizer)

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

-	fEmbeddedHint = XML_CONTENT;

-        yybegin(ST_PI_WS);

-        return XML_TAG_NAME;

-}

-<ST_PI_WS> {S}+ {

-        yybegin(ST_PI_CONTENT);

-        return WHITE_SPACE;

-}

-<ST_PI, ST_PI_WS> \?> {

-	if(Debug.debugTokenizer)

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

-	fEmbeddedHint = UNDEFINED;

-        yybegin(YYINITIAL);

-        return XML_PI_CLOSE;

-}

-<ST_PI_CONTENT> . {

-		// block scan until close is found

-	return doScan("?>", false, false, false, XML_PI_CONTENT, ST_XML_PI_TAG_CLOSE, ST_XML_PI_TAG_CLOSE);

-}

-<ST_PI_CONTENT,ST_XML_PI_TAG_CLOSE> \?> {

-		// ended with nothing inside

-		fEmbeddedHint = UNDEFINED;

-        yybegin(YYINITIAL);

-        return XML_PI_CLOSE;

-}

-

-<ST_XML_PI_ATTRIBUTE_NAME, ST_XML_PI_EQUALS> {Name} {

-	if(Debug.debugTokenizer)

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

-        yybegin(ST_XML_PI_EQUALS);

-        return XML_TAG_ATTRIBUTE_NAME;

-}

-<ST_XML_PI_EQUALS> {Eq} {

-	if(Debug.debugTokenizer)

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

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-        yybegin(ST_XML_PI_ATTRIBUTE_VALUE);

-        return XML_TAG_ATTRIBUTE_EQUALS;

-}

-/* the value was found, look for the next name */

-<ST_XML_PI_ATTRIBUTE_VALUE> {AttValue} {

-	if(Debug.debugTokenizer)

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

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_EQUALS;

-        yybegin(ST_XML_PI_ATTRIBUTE_NAME);

-        return XML_TAG_ATTRIBUTE_VALUE;

-}

-/* the PI's close was found */

-<ST_XML_PI_EQUALS, ST_XML_PI_ATTRIBUTE_NAME, ST_XML_PI_ATTRIBUTE_VALUE> {PIend} {

-	if(Debug.debugTokenizer)

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

-	fEmbeddedHint = UNDEFINED;

-        yybegin(YYINITIAL);

-        return XML_PI_CLOSE;

-}

-// DHTML

-<ST_DHTML_ATTRIBUTE_NAME, ST_DHTML_EQUALS> {Name} {

-	if(Debug.debugTokenizer)

-		dump("DHTML processing instruction attribute name");//$NON-NLS-1$

-        yybegin(ST_DHTML_EQUALS);

-        return XML_TAG_ATTRIBUTE_NAME;

-}

-<ST_DHTML_EQUALS> {Eq} {

-	if(Debug.debugTokenizer)

-		dump("DHTML processing instruction '='");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-        yybegin(ST_DHTML_ATTRIBUTE_VALUE);

-        return XML_TAG_ATTRIBUTE_EQUALS;

-}

-/* the value was found, look for the next name */

-<ST_DHTML_ATTRIBUTE_VALUE> {AttValue} | ([\'\"]([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )* ) {

-	if(Debug.debugTokenizer)

-		dump("DHTML processing instruction attribute value");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_EQUALS;

-        yybegin(ST_DHTML_ATTRIBUTE_NAME);

-        return XML_TAG_ATTRIBUTE_VALUE;

-}

-/* The DHTML PI's close was found */

-<ST_DHTML_EQUALS, ST_DHTML_ATTRIBUTE_NAME, ST_DHTML_ATTRIBUTE_VALUE> [/]*> {

-	if(Debug.debugTokenizer)

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

-	fEmbeddedHint = UNDEFINED;

-        yybegin(YYINITIAL);

-        return XML_PI_CLOSE;

-}

-

-// XML declarations

-

-<YYINITIAL, ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE> {genericTagOpen}! {

-	fStateStack.push(yystate());

-	if(Debug.debugTokenizer)

-		dump("\ndeclaration start");//$NON-NLS-1$

-        yybegin(ST_XML_DECLARATION);

-	return XML_DECLARATION_OPEN;

-}

-<ST_XML_DECLARATION> [Ee][Ll][Ee][Mm][Ee][Nn][Tt] {

-	if(Debug.debugTokenizer)

-		dump("element");//$NON-NLS-1$

-	yybegin(ST_XML_ELEMENT_DECLARATION);

-	return XML_ELEMENT_DECLARATION;

-}

-<ST_XML_DECLARATION> [Dd][Oo][Cc][Tt][Yy][Pp][Ee] {

-	if(Debug.debugTokenizer)

-		dump("doctype");//$NON-NLS-1$

-	yybegin(ST_XML_DOCTYPE_DECLARATION);

-	return XML_DOCTYPE_DECLARATION;

-}

-<ST_XML_DECLARATION> [Aa][Tt][Tt][Ll][Ii][Ss][Tt] {

-	if(Debug.debugTokenizer)

-		dump("attlist");//$NON-NLS-1$

-	yybegin(ST_XML_ATTLIST_DECLARATION);

-	return XML_ATTLIST_DECLARATION;

-}

-

-// begin DOCTYPE handling procedure

-<ST_XML_DOCTYPE_DECLARATION, ST_XML_DOCTYPE_EXTERNAL_ID, ST_XML_DOCTYPE_ID_SYSTEM, ST_XML_DOCTYPE_ID_PUBLIC, ST_XML_DECLARATION_CLOSE> \[[^\]]*\] {

-	return XML_DOCTYPE_INTERNAL_SUBSET;

-}

-

-<ST_XML_DOCTYPE_DECLARATION> {Name} {

-	if(Debug.debugTokenizer)

-		dump("doctype type");//$NON-NLS-1$

-	yybegin(ST_XML_DOCTYPE_EXTERNAL_ID);

-	return XML_DOCTYPE_NAME;

-}

-<ST_XML_DOCTYPE_EXTERNAL_ID> [Pp][Uu][Bb][Ll][Ii][Cc] {

-	if(Debug.debugTokenizer)

-		dump("doctype external id");//$NON-NLS-1$

-	fEmbeddedHint = XML_DOCTYPE_EXTERNAL_ID_PUBREF;

-	yybegin(ST_XML_DOCTYPE_ID_PUBLIC);

-	return XML_DOCTYPE_EXTERNAL_ID_PUBLIC;

-}

-<ST_XML_DOCTYPE_EXTERNAL_ID> [Ss][Yy][Ss][Tt][Ee][Mm] {

-	if(Debug.debugTokenizer)

-		dump("doctype external id");//$NON-NLS-1$

-	fEmbeddedHint = XML_DOCTYPE_EXTERNAL_ID_SYSREF;

-	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);

-	return XML_DOCTYPE_EXTERNAL_ID_SYSTEM;

-}

-<ST_XML_DOCTYPE_ID_PUBLIC> {AttValue}|{PubidLiteral} {

-	if(Debug.debugTokenizer)

-		dump("doctype public reference");//$NON-NLS-1$

-	fEmbeddedHint = UNDEFINED;

-	fEmbeddedPostState = YYINITIAL;

-	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);

-	return XML_DOCTYPE_EXTERNAL_ID_PUBREF;

-}

-<ST_XML_DOCTYPE_ID_SYSTEM> {AttValue}|{SystemLiteral} {

-	if(Debug.debugTokenizer)

-		dump("doctype system reference");//$NON-NLS-1$

-	fEmbeddedHint = UNDEFINED;

-	fEmbeddedPostState = YYINITIAL;

-	yybegin(ST_XML_DECLARATION_CLOSE);

-	return XML_DOCTYPE_EXTERNAL_ID_SYSREF;

-}

-// end DOCTYPE handling

-

-// begin ELEMENT handling procedure

-<ST_XML_ELEMENT_DECLARATION> {AttValue}|{PubidLiteral} {

-	if(Debug.debugTokenizer)

-		dump("elementdecl name");//$NON-NLS-1$

-	fEmbeddedHint = UNDEFINED;

-	fEmbeddedPostState = YYINITIAL;

-	yybegin(ST_XML_ELEMENT_DECLARATION_CONTENT);

-	return XML_ELEMENT_DECL_NAME;

-}

-<ST_XML_ELEMENT_DECLARATION_CONTENT> [^>]* {

-	if(Debug.debugTokenizer)

-		dump("elementdecl contentspec");//$NON-NLS-1$

-	return XML_ELEMENT_DECL_CONTENT;

-}

-

-<ST_XML_ELEMENT_DECLARATION_CONTENT> {genericTagClose} {

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

-}

-// end ELEMENT handling

-

-// begin ATTLIST handling procedure

-<ST_XML_ATTLIST_DECLARATION> {AttValue}|{PubidLiteral} {

-	if(Debug.debugTokenizer)

-		dump("attlist name");//$NON-NLS-1$

-	fEmbeddedHint = UNDEFINED;

-	fEmbeddedPostState = YYINITIAL;

-	yybegin(ST_XML_ATTLIST_DECLARATION_CONTENT);

-	return XML_ATTLIST_DECL_NAME;

-}

-<ST_XML_ATTLIST_DECLARATION_CONTENT> [^>]* {

-	if(Debug.debugTokenizer)

-		dump("attlist contentspec");//$NON-NLS-1$

-	return XML_ATTLIST_DECL_CONTENT;

-}

-

-<ST_XML_ATTLIST_DECLARATION_CONTENT> {genericTagClose} {

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

-}

-// end ATTLIST handling

-

-<ST_XML_DECLARATION, ST_XML_DOCTYPE_DECLARATION, ST_XML_DOCTYPE_EXTERNAL_ID, ST_XML_ATTLIST_DECLARATION, ST_XML_ELEMENT_DECLARATION, ST_XML_DECLARATION_CLOSE, ST_XML_DOCTYPE_ID_PUBLIC, ST_XML_DOCTYPE_ID_SYSTEM, ST_XML_DOCTYPE_EXTERNAL_ID> {genericTagClose} {

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

-}

-// end DECLARATION handling

-

-<YYINITIAL> ([^<&%\x24\x23]*|\x23+|\x24+|[&%]{S}+{Name}[^&%<]*|[\x24\x23][^\x7b<&%]|[&%]{Name}([^;&%<]*|{S}+;*)) {

-	if(Debug.debugTokenizer)

-		dump("\nXML content");//$NON-NLS-1$

-	return XML_CONTENT;

-}

-

-

-<ST_BLOCK_TAG_SCAN> .|\r|\n {

-		return doBlockTagScan();

-	}

-

-. {

-	if (Debug.debugTokenizer)

-		System.out.println("!!!unexpected!!!: \"" + yytext() + "\":" + //$NON-NLS-2$//$NON-NLS-1$

-			yychar + "-" + (yychar + yylength()));//$NON-NLS-1$

-	return UNDEFINED;

-}

-

-\040 {

-	if(Debug.debugTokenizer)

-		dump("SPACE");//$NON-NLS-1$

-	return WHITE_SPACE;

-}

-\011 {

-	if(Debug.debugTokenizer)

-		dump("0x9");//$NON-NLS-1$

-	return WHITE_SPACE;

-}

-\015 

-{

-	if(Debug.debugTokenizer)

-		dump("CARRIAGE RETURN");//$NON-NLS-1$

-	return WHITE_SPACE;

-}

-\012 {

-	if(Debug.debugTokenizer)

-		dump("LINE FEED");//$NON-NLS-1$

-	return WHITE_SPACE;

-}

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.java
deleted file mode 100644
index 76e8b6e..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.java
+++ /dev/null
@@ -1,1953 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/* The following code was generated by JFlex 1.2.2 on 9/23/04 1:31 AM */
-
-/*nlsXXX*/
-package org.eclipse.wst.sse.core.xml.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.parser.BlockMarker;
-import org.eclipse.wst.sse.core.parser.BlockTokenizer;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.util.Debug;
-import org.eclipse.wst.sse.core.util.StringUtils;
-import org.eclipse.wst.sse.core.xml.Logger;
-import org.eclipse.wst.sse.core.xml.internal.parser.regions.XMLParserRegionFactory;
-import org.eclipse.wst.sse.core.xml.parser.XMLRegionContext;
-
-
-/**
- * This class is a scanner generated by 
- * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
- * on 9/23/04 1:31 AM from the specification file
- * <tt>file:/D:/eclipse.rad/workspace.rad/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex</tt>
- */
-public class XMLTokenizer implements BlockTokenizer, XMLRegionContext {
-
-  /** 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\51"+
-    "\1\16\1\17\1\12\1\13\1\16\1\16\1\16\1\16\1\16\1\7"+
-    "\1\6\1\3\12\15\1\10\1\54\1\1\1\43\1\2\1\4\1\16"+
-    "\1\32\1\55\1\30\1\31\1\35\1\52\1\34\1\34\1\40\1\34"+
-    "\1\34\1\26\1\25\1\42\1\41\1\45\1\34\1\36\1\37\1\33"+
-    "\1\53\2\34\1\23\1\44\1\34\1\27\1\0\1\20\1\0\1\10"+
-    "\1\0\1\47\1\55\1\56\1\50\1\35\1\52\1\34\1\34\1\40"+
-    "\2\34\1\26\1\25\1\42\1\41\1\45\1\34\1\36\1\37\1\46"+
-    "\1\53\1\34\1\34\1\24\1\44\1\34\1\0\1\0\72\0\1\60"+
-    "\10\0\27\57\1\0\37\57\1\0\72\57\2\0\13\57\2\0\10\57"+
-    "\1\0\65\57\1\0\104\57\11\0\44\57\3\0\2\57\4\0\36\57"+
-    "\70\0\131\57\22\0\7\57\16\0\2\60\56\0\106\60\32\0\2\60"+
-    "\44\0\1\57\1\60\3\57\1\0\1\57\1\0\24\57\1\0\54\57"+
-    "\1\0\7\57\3\0\1\57\1\0\1\57\1\0\1\57\1\0\1\57"+
-    "\1\0\22\57\15\0\14\57\1\0\102\57\1\0\14\57\1\0\44\57"+
-    "\1\0\4\60\11\0\65\57\2\0\2\57\2\0\2\57\3\0\34\57"+
-    "\2\0\10\57\2\0\2\57\67\0\46\57\2\0\1\57\7\0\46\57"+
-    "\12\0\21\60\1\0\27\60\1\0\3\60\1\0\1\60\1\0\2\60"+
-    "\1\0\1\60\13\0\33\57\5\0\3\57\56\0\32\57\5\0\1\60"+
-    "\12\57\10\60\15\0\12\60\6\0\1\60\107\57\2\0\5\57\1\0"+
-    "\17\57\1\0\4\57\1\0\1\57\17\60\2\57\2\60\1\0\4\60"+
-    "\2\0\12\60\u0207\0\3\60\1\0\65\57\2\0\1\60\1\57\20\60"+
-    "\3\0\4\60\3\0\12\57\2\60\2\0\12\60\21\0\3\60\1\0"+
-    "\10\57\2\0\2\57\2\0\26\57\1\0\7\57\1\0\1\57\3\0"+
-    "\4\57\2\0\1\60\1\0\7\60\2\0\2\60\2\0\3\60\11\0"+
-    "\1\60\4\0\2\57\1\0\3\57\2\60\2\0\12\60\2\57\20\0"+
-    "\1\60\2\0\6\57\4\0\2\57\2\0\26\57\1\0\7\57\1\0"+
-    "\2\57\1\0\2\57\1\0\2\57\2\0\1\60\1\0\5\60\4\0"+
-    "\2\60\2\0\3\60\13\0\4\57\1\0\1\57\7\0\12\60\2\60"+
-    "\3\57\14\0\3\60\1\0\7\57\1\0\1\57\1\0\3\57\1\0"+
-    "\26\57\1\0\7\57\1\0\2\57\1\0\5\57\2\0\1\60\1\57"+
-    "\10\60\1\0\3\60\1\0\3\60\22\0\1\57\5\0\12\60\21\0"+
-    "\3\60\1\0\10\57\2\0\2\57\2\0\26\57\1\0\7\57\1\0"+
-    "\2\57\2\0\4\57\2\0\1\60\1\57\6\60\3\0\2\60\2\0"+
-    "\3\60\10\0\2\60\4\0\2\57\1\0\3\57\4\0\12\60\22\0"+
-    "\2\60\1\0\6\57\3\0\3\57\1\0\4\57\3\0\2\57\1\0"+
-    "\1\57\1\0\2\57\3\0\2\57\3\0\3\57\3\0\10\57\1\0"+
-    "\3\57\4\0\5\60\3\0\3\60\1\0\4\60\11\0\1\60\17\0"+
-    "\11\60\21\0\3\60\1\0\10\57\1\0\3\57\1\0\27\57\1\0"+
-    "\12\57\1\0\5\57\4\0\7\60\1\0\3\60\1\0\4\60\7\0"+
-    "\2\60\11\0\2\57\4\0\12\60\22\0\2\60\1\0\10\57\1\0"+
-    "\3\57\1\0\27\57\1\0\12\57\1\0\5\57\4\0\7\60\1\0"+
-    "\3\60\1\0\4\60\7\0\2\60\7\0\1\57\1\0\2\57\4\0"+
-    "\12\60\22\0\2\60\1\0\10\57\1\0\3\57\1\0\27\57\1\0"+
-    "\20\57\4\0\6\60\2\0\3\60\1\0\4\60\11\0\1\60\10\0"+
-    "\2\57\4\0\12\60\221\0\56\57\1\0\1\57\1\60\2\57\7\60"+
-    "\5\0\6\57\1\60\10\60\1\0\12\60\47\0\2\57\1\0\1\57"+
-    "\2\0\2\57\1\0\1\57\2\0\1\57\6\0\4\57\1\0\7\57"+
-    "\1\0\3\57\1\0\1\57\1\0\1\57\2\0\2\57\1\0\2\57"+
-    "\1\0\1\57\1\60\2\57\6\60\1\0\2\60\1\57\2\0\5\57"+
-    "\1\0\1\60\1\0\6\60\2\0\12\60\76\0\2\60\6\0\12\60"+
-    "\13\0\1\60\1\0\1\60\1\0\1\60\4\0\2\60\10\57\1\0"+
-    "\41\57\7\0\24\60\1\0\6\60\4\0\6\60\1\0\1\60\1\0"+
-    "\25\60\3\0\7\60\1\0\1\60\346\0\46\57\12\0\47\57\11\0"+
-    "\1\57\1\0\2\57\1\0\3\57\1\0\1\57\1\0\2\57\1\0"+
-    "\5\57\51\0\1\57\1\0\1\57\1\0\1\57\13\0\1\57\1\0"+
-    "\1\57\1\0\1\57\3\0\2\57\3\0\1\57\5\0\3\57\1\0"+
-    "\1\57\1\0\1\57\1\0\1\57\1\0\1\57\3\0\2\57\3\0"+
-    "\2\57\1\0\1\57\50\0\1\57\11\0\1\57\2\0\1\57\2\0"+
-    "\2\57\7\0\2\57\1\0\1\57\1\0\7\57\50\0\1\57\4\0"+
-    "\1\57\10\0\1\57\u0c06\0\234\57\4\0\132\57\6\0\26\57\2\0"+
-    "\6\57\2\0\46\57\2\0\6\57\2\0\10\57\1\0\1\57\1\0"+
-    "\1\57\1\0\1\57\1\0\37\57\2\0\65\57\1\0\7\57\1\0"+
-    "\1\57\3\0\3\57\1\0\7\57\3\0\4\57\2\0\6\57\4\0"+
-    "\15\57\5\0\3\57\1\0\7\57\323\0\15\60\4\0\1\60\104\0"+
-    "\1\57\3\0\2\57\2\0\1\57\121\0\3\57\u0e82\0\1\60\1\0"+
-    "\1\57\31\0\11\57\6\60\1\0\5\60\13\0\124\57\4\0\2\60"+
-    "\2\0\2\60\2\0\132\57\1\0\3\60\6\0\50\57\u1cd3\0\u51a6\57"+
-    "\u0c5a\0\u2ba4\57\134\0\u0800\0\u1ffe\0\2\0";
-
-  /** 
-   * 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,    49,    98,   147,   196,   245,   294,   343,   392,   441, 
-      490,   539,   588,   637,   686,   735,   784,   833,   882,   931, 
-      980,  1029,  1078,  1127,  1176,  1225,  1274,  1323,  1372,  1421, 
-     1470,  1519,  1568,  1617,  1666,  1715,  1764,  1715,  1764,  1813, 
-     1715,  1715,  1764,  1862,  1911,  1960,  2009,  2058,  2107,  2156, 
-     1715,  1764,  2205,  2254,  2303,  1715,  2352,  2352,  2401,  2450, 
-     2499,  2205,  1715,  2548,  2597,  1715,  2646,  2695,  2744,  2793, 
-     2842,  2891,  1715,  2940,  2989,  3038,  3087,  1715,  3136,  3185, 
-     3234,  3283,  3332,  1715,  3381,  3430,  3479,  3528,  3577,  3626, 
-     3675,  3724,  3724,  3773,  3822,  3871,  3920,  3920,  3969,  4018, 
-     4067,  4116,  4116,  4165,  4214,  4263,  4312,  1715,  4361,  4361, 
-     4410,  4459,  4508,  4557,  1715,  1715,  1764,  1715,  1715,  4606, 
-     4655,  4704,  4753,  4802,  4851,  4900,  4949,  1715,  4998,  5047, 
-     1715,  1715,  2352,  5096,  2450,  1715,  5145,  2499,  2548,  2646, 
-     2695,  5194,  2744,  1715,  5243,  2793,  1715,  3136,  5292,  3234, 
-     1715,  5341,  3283,  4606,  5390,  5439,  5488,  3528,  1715,  5537, 
-     5586,  3724,  5635,  3773,  1715,  5684,  5733,  5782,  5782,  5831, 
-     5880,  3871,  3724,  3920,  5929,  3969,  1715,  5978,  4018,  4067, 
-     3920,  4116,  6027,  4165,  1715,  6076,  6125,  6174,  6174,  6223, 
-     6272,  6321,  4361,  6370,  4410,  1715,  6419,  6468,  6517,  6517, 
-     6566,  6615,  6664,  6713,  6762,  6811,  6860,  1715,  6909,  6958, 
-     1715,  1715,  1715,  2009,  7007,  7056,  7105,  7154,  7203,  7252, 
-     5684,  7301,  7301,  6076,  7350,  7350,  7399,  6419,  7448,  7448, 
-     7497,  1715,  7546,  7595,  1715,  7644,  7693,  7742,  7791,  7840, 
-     7889,  7938,  5831,  6223,  7987,  6566,  8036,  8085,  8134,  8183, 
-     8232,  8281,  8330,  8379,  8428,  8477,  8526,  2009,  8575,  8624, 
-     8673,  1715,  1715,  8722,  8771,  8820,  1715,  1715,  1715,  8869, 
-     8918,  8967,  9016,  9065,  1715,  4263,  4508
-  };
-
-  /** 
-   * The packed transition table of the DFA
-   */
-  final private static String yy_packed = 
-    "\1\40\1\41\10\40\1\42\4\40\1\43\41\40\1\44"+
-    "\1\45\57\44\1\46\1\47\16\46\1\50\1\46\1\51"+
-    "\36\46\1\52\1\53\57\52\1\46\1\47\5\46\1\54"+
-    "\12\46\1\51\37\46\1\47\2\46\1\55\1\56\2\46"+
-    "\1\57\3\46\1\56\5\46\1\56\2\60\2\57\1\46"+
-    "\10\57\1\61\2\57\1\46\5\57\1\46\2\57\1\46"+
-    "\3\57\2\46\1\47\2\46\1\55\1\62\6\46\1\62"+
-    "\5\46\1\62\36\46\1\63\1\64\2\63\1\65\15\63"+
-    "\1\51\36\63\1\46\1\47\2\46\1\66\1\56\2\46"+
-    "\1\67\3\46\1\56\5\46\1\56\4\67\1\46\13\67"+
-    "\1\46\5\67\1\46\2\67\1\46\3\67\2\46\1\47"+
-    "\2\46\1\66\1\56\2\46\1\67\3\46\1\56\5\46"+
-    "\1\56\4\67\1\46\13\67\1\70\5\67\1\46\2\67"+
-    "\1\46\3\67\1\46\1\71\1\47\1\46\1\72\1\73"+
-    "\1\56\3\71\1\74\1\71\1\75\1\56\5\71\1\56"+
-    "\36\71\1\46\1\47\2\46\1\76\15\46\1\51\37\46"+
-    "\1\47\1\77\1\100\1\46\1\56\2\46\1\101\3\46"+
-    "\1\56\5\46\1\56\4\101\1\46\13\101\1\46\5\101"+
-    "\1\46\2\101\1\46\3\101\2\46\1\47\1\77\1\100"+
-    "\1\46\1\56\2\46\1\101\3\46\1\56\5\46\1\56"+
-    "\4\101\1\46\13\101\1\102\5\101\1\46\2\101\1\46"+
-    "\3\101\1\46\1\103\1\47\1\77\1\104\1\103\1\56"+
-    "\3\103\1\105\1\103\1\106\1\56\5\103\1\56\36\103"+
-    "\1\46\1\47\3\46\1\56\6\46\1\56\5\46\1\56"+
-    "\36\46\1\107\1\110\1\111\1\112\4\107\1\113\12\107"+
-    "\4\114\1\107\13\114\1\107\5\114\1\107\2\114\1\107"+
-    "\3\114\1\107\1\46\1\110\1\111\1\112\1\46\1\56"+
-    "\2\46\1\115\3\46\1\56\5\46\1\56\4\115\1\46"+
-    "\13\115\1\46\5\115\1\46\2\115\1\46\3\115\2\46"+
-    "\1\110\1\111\1\112\1\46\1\56\2\46\1\115\3\46"+
-    "\1\56\5\46\1\56\4\115\1\46\13\115\1\116\5\115"+
-    "\1\46\2\115\1\46\3\115\1\46\1\117\1\110\1\111"+
-    "\1\120\1\117\1\56\3\117\1\121\1\117\1\122\1\56"+
-    "\5\117\1\56\36\117\1\46\1\123\1\124\2\46\1\56"+
-    "\6\46\1\56\5\46\1\56\6\46\1\125\1\126\2\46"+
-    "\1\127\11\46\1\126\1\125\11\46\1\47\1\124\2\46"+
-    "\1\56\6\46\1\56\5\46\1\56\4\46\1\130\32\46"+
-    "\1\47\1\124\2\46\1\56\2\46\1\131\3\46\1\56"+
-    "\5\46\1\56\4\131\1\130\13\131\1\46\5\131\1\46"+
-    "\2\131\1\46\3\131\2\46\1\47\1\124\2\46\1\56"+
-    "\6\46\1\56\5\46\1\56\4\46\1\130\7\46\1\132"+
-    "\5\46\1\133\13\46\1\134\1\47\1\124\1\135\1\134"+
-    "\1\56\3\134\1\136\1\134\1\137\1\56\5\134\1\56"+
-    "\4\134\1\140\31\134\1\141\1\47\1\124\1\142\1\141"+
-    "\1\56\3\141\1\143\1\141\1\144\1\56\5\141\1\56"+
-    "\4\141\1\145\31\141\1\146\1\47\1\124\1\147\1\146"+
-    "\1\56\3\146\1\150\1\146\1\151\1\56\5\146\1\56"+
-    "\36\146\1\152\1\153\1\154\56\152\1\155\1\47\1\124"+
-    "\1\156\1\155\1\56\3\155\1\157\1\155\1\160\1\56"+
-    "\5\155\1\56\36\155\1\161\1\162\1\163\56\161\1\164"+
-    "\1\165\57\164\1\40\1\0\10\40\1\0\4\40\1\0"+
-    "\41\40\3\0\1\166\1\167\14\0\1\170\44\0\1\171"+
-    "\2\0\1\172\3\0\1\171\5\0\1\171\4\172\1\0"+
-    "\13\172\1\0\5\172\1\173\2\172\1\0\3\172\6\0"+
-    "\1\171\2\0\1\174\3\0\1\171\5\0\1\171\4\174"+
-    "\1\0\13\174\1\0\5\174\1\0\2\174\1\0\3\174"+
-    "\103\0\1\175\57\0\1\176\47\0\1\177\53\0\1\200"+
-    "\63\0\1\56\6\0\1\56\5\0\1\56\44\0\3\57"+
-    "\4\0\1\57\5\0\4\57\1\0\13\57\1\0\5\57"+
-    "\1\0\2\57\1\0\4\57\6\0\3\57\4\0\1\57"+
-    "\5\0\2\57\1\201\1\57\1\0\13\57\1\0\5\57"+
-    "\1\0\2\57\1\0\4\57\6\0\3\57\4\0\1\57"+
-    "\5\0\2\57\1\202\1\57\1\0\13\57\1\0\5\57"+
-    "\1\0\2\57\1\0\4\57\5\0\1\62\6\0\1\62"+
-    "\5\0\1\62\40\0\1\203\60\0\1\204\64\0\3\67"+
-    "\4\0\1\67\5\0\4\67\1\0\13\67\1\0\5\67"+
-    "\1\0\2\67\1\0\4\67\1\71\2\0\1\205\1\71"+
-    "\1\0\3\71\1\0\1\71\2\0\5\71\1\0\37\71"+
-    "\1\0\1\204\1\205\1\71\1\0\3\71\1\0\1\71"+
-    "\2\0\5\71\1\0\36\71\1\74\1\0\1\206\1\207"+
-    "\1\74\1\206\3\74\1\210\1\74\2\206\5\74\1\206"+
-    "\36\74\1\75\1\0\1\211\1\212\1\75\1\211\3\75"+
-    "\1\211\1\75\1\210\1\211\5\75\1\211\36\75\2\0"+
-    "\1\77\1\213\63\0\3\101\4\0\1\101\5\0\4\101"+
-    "\1\0\13\101\1\0\5\101\1\0\2\101\1\0\4\101"+
-    "\1\103\2\0\1\214\1\103\1\0\3\103\1\0\1\103"+
-    "\2\0\5\103\1\0\37\103\1\0\1\77\1\215\1\103"+
-    "\1\0\3\103\1\0\1\103\2\0\5\103\1\0\36\103"+
-    "\1\105\1\0\1\216\1\217\1\105\1\216\3\105\1\220"+
-    "\1\105\2\216\5\105\1\216\36\105\1\106\1\0\1\221"+
-    "\1\222\1\106\1\221\3\106\1\221\1\106\1\220\1\221"+
-    "\5\106\1\221\36\106\1\107\3\0\17\107\4\0\1\107"+
-    "\13\0\1\107\5\0\1\107\2\0\1\107\3\0\1\107"+
-    "\3\0\1\166\15\0\1\170\41\0\1\223\56\0\1\107"+
-    "\3\0\2\107\3\113\4\107\1\113\5\107\4\114\1\107"+
-    "\13\114\1\107\5\114\1\107\2\114\1\107\3\114\1\113"+
-    "\6\0\3\114\4\0\1\114\5\0\4\114\1\0\13\114"+
-    "\1\0\5\114\1\0\2\114\1\0\4\114\6\0\3\115"+
-    "\4\0\1\115\5\0\4\115\1\0\13\115\1\0\5\115"+
-    "\1\0\2\115\1\0\4\115\1\117\2\0\1\224\1\117"+
-    "\1\0\3\117\1\0\1\117\2\0\5\117\1\0\37\117"+
-    "\1\0\1\223\1\224\1\117\1\0\3\117\1\0\1\117"+
-    "\2\0\5\117\1\0\36\117\1\121\1\0\1\225\1\226"+
-    "\1\121\1\225\3\121\1\227\1\121\2\225\5\121\1\225"+
-    "\36\121\1\122\1\0\1\230\1\231\1\122\1\230\3\122"+
-    "\1\230\1\122\1\227\1\230\5\122\1\230\36\122\3\0"+
-    "\1\166\15\0\1\232\100\0\1\233\52\0\1\234\12\0"+
-    "\1\234\40\0\1\235\32\0\20\236\1\237\40\236\6\0"+
-    "\3\131\4\0\1\131\5\0\4\131\1\0\13\131\1\0"+
-    "\5\131\1\0\2\131\1\0\4\131\44\0\1\240\67\0"+
-    "\1\241\5\0\1\134\2\0\1\242\1\134\1\0\3\134"+
-    "\1\0\1\134\2\0\5\134\1\0\36\134\1\136\1\0"+
-    "\1\243\1\244\1\136\1\243\3\136\1\245\1\136\2\243"+
-    "\5\136\1\243\36\136\1\246\1\0\1\247\1\250\1\251"+
-    "\1\247\3\251\1\247\1\246\1\252\1\253\3\251\1\246"+
-    "\1\251\1\253\4\251\1\246\27\251\2\246\1\140\2\236"+
-    "\1\254\1\140\1\236\3\140\1\236\1\140\2\236\3\140"+
-    "\1\255\1\140\1\236\36\140\1\141\2\0\1\256\1\141"+
-    "\1\0\3\141\1\0\1\141\2\0\5\141\1\0\36\141"+
-    "\1\143\2\257\1\260\1\143\1\257\3\143\1\261\1\143"+
-    "\2\257\5\143\1\257\36\143\1\144\2\262\1\263\1\144"+
-    "\1\262\3\144\1\262\1\144\1\261\1\262\5\144\1\262"+
-    "\36\144\1\145\2\236\1\264\1\145\1\236\3\145\1\236"+
-    "\1\145\2\236\3\145\1\265\1\145\1\236\36\145\1\146"+
-    "\2\0\1\266\1\146\1\0\3\146\1\0\1\146\2\0"+
-    "\5\146\1\0\36\146\1\150\1\0\1\267\1\270\1\150"+
-    "\1\267\3\150\1\271\1\150\2\267\5\150\1\267\36\150"+
-    "\1\272\1\0\1\273\1\274\1\275\1\273\3\275\1\273"+
-    "\1\272\1\276\1\277\3\275\1\272\1\275\1\277\4\275"+
-    "\1\272\27\275\2\272\2\152\1\0\60\152\1\0\16\152"+
-    "\1\300\37\152\1\155\2\0\1\301\1\155\1\0\3\155"+
-    "\1\0\1\155\2\0\5\155\1\0\36\155\1\157\1\0"+
-    "\1\302\1\303\1\157\1\302\3\157\1\304\1\157\2\302"+
-    "\5\157\1\302\36\157\1\305\1\0\1\306\1\307\1\310"+
-    "\1\306\3\310\1\306\1\305\1\311\1\312\3\310\1\305"+
-    "\1\310\1\312\4\310\1\305\27\310\2\305\2\161\1\0"+
-    "\60\161\1\0\16\161\1\313\37\161\7\0\1\314\17\0"+
-    "\1\315\36\0\1\171\2\0\1\40\3\0\1\171\5\0"+
-    "\1\171\4\40\1\0\13\40\1\0\5\40\1\0\2\40"+
-    "\1\0\3\40\1\0\1\316\1\0\3\316\1\317\3\172"+
-    "\1\316\1\0\1\316\1\317\1\172\1\316\1\0\2\316"+
-    "\1\317\4\172\1\316\13\172\1\316\5\172\1\316\2\172"+
-    "\1\320\4\172\15\0\1\321\6\0\1\322\34\0\1\316"+
-    "\1\0\3\316\1\317\3\174\1\316\1\0\1\316\1\317"+
-    "\1\174\1\316\1\0\2\316\1\317\4\174\1\316\13\174"+
-    "\1\316\5\174\1\316\2\174\1\323\4\174\27\0\1\315"+
-    "\33\0\1\324\60\0\1\325\64\0\3\57\4\0\1\57"+
-    "\5\0\3\57\1\326\1\0\13\57\1\0\5\57\1\0"+
-    "\2\57\1\0\4\57\6\0\3\57\4\0\1\57\5\0"+
-    "\4\57\1\0\13\57\1\0\1\57\1\327\3\57\1\0"+
-    "\2\57\1\0\4\57\1\206\1\0\7\206\1\210\47\206"+
-    "\1\211\1\0\11\211\1\210\45\211\1\216\1\0\7\216"+
-    "\1\220\47\216\1\221\1\0\11\221\1\220\45\221\1\225"+
-    "\1\0\7\225\1\227\47\225\1\230\1\0\11\230\1\227"+
-    "\45\230\30\0\1\330\25\0\1\330\35\0\1\331\12\0"+
-    "\1\331\47\0\1\332\62\0\1\333\76\0\1\334\3\0"+
-    "\1\243\1\0\7\243\1\245\47\243\1\246\1\0\1\247"+
-    "\1\335\1\246\1\247\3\246\1\247\1\246\1\245\1\247"+
-    "\5\246\1\247\36\246\1\247\1\0\11\247\1\245\45\247"+
-    "\1\246\1\0\1\247\1\335\1\246\1\247\3\246\1\247"+
-    "\1\246\1\336\1\247\5\246\1\247\36\246\13\0\1\337"+
-    "\45\0\1\247\1\0\11\247\1\336\45\247\11\257\1\261"+
-    "\47\257\13\262\1\261\45\262\1\267\1\0\7\267\1\271"+
-    "\47\267\1\272\1\0\1\273\1\340\1\272\1\273\3\272"+
-    "\1\273\1\272\1\271\1\273\5\272\1\273\36\272\1\273"+
-    "\1\0\11\273\1\271\45\273\1\272\1\0\1\273\1\340"+
-    "\1\272\1\273\3\272\1\273\1\272\1\341\1\273\5\272"+
-    "\1\273\36\272\13\0\1\342\45\0\1\273\1\0\11\273"+
-    "\1\341\45\273\2\152\1\0\24\152\1\343\31\152\1\302"+
-    "\1\0\7\302\1\304\47\302\1\305\1\0\1\306\1\344"+
-    "\1\305\1\306\3\305\1\306\1\305\1\304\1\306\5\305"+
-    "\1\306\36\305\1\306\1\0\11\306\1\304\45\306\1\305"+
-    "\1\0\1\306\1\344\1\305\1\306\3\305\1\306\1\305"+
-    "\1\345\1\306\5\305\1\306\36\305\13\0\1\346\45\0"+
-    "\1\306\1\0\11\306\1\345\45\306\2\161\1\0\24\161"+
-    "\1\347\31\161\7\0\1\350\101\0\1\351\30\0\1\316"+
-    "\1\0\10\316\1\0\4\316\1\0\34\316\1\0\5\316"+
-    "\1\0\3\316\1\317\4\316\1\0\1\316\1\317\2\316"+
-    "\1\0\2\316\1\317\31\316\1\352\4\316\15\0\1\321"+
-    "\36\0\1\353\21\0\1\354\12\0\3\354\2\0\1\354"+
-    "\11\0\2\354\1\0\1\354\2\0\2\354\10\0\3\57"+
-    "\4\0\1\57\5\0\4\57\1\0\11\57\1\355\1\57"+
-    "\1\0\5\57\1\0\2\57\1\0\4\57\33\0\1\356"+
-    "\12\0\1\356\40\0\1\357\57\0\1\360\66\0\1\361"+
-    "\12\0\1\361\40\0\1\362\35\0\2\363\1\0\3\363"+
-    "\2\0\1\252\4\363\1\0\6\363\1\0\27\363\5\0"+
-    "\2\364\1\0\3\364\2\0\1\276\4\364\1\0\6\364"+
-    "\1\0\27\364\2\0\2\152\1\0\25\152\1\365\30\152"+
-    "\3\0\2\366\1\0\3\366\2\0\1\311\4\366\1\0"+
-    "\6\366\1\0\27\366\2\0\2\161\1\0\25\161\1\367"+
-    "\30\161\31\0\1\370\103\0\1\352\21\0\1\354\12\0"+
-    "\3\354\2\0\1\354\11\0\2\354\1\0\1\354\1\0"+
-    "\1\353\2\354\10\0\3\57\4\0\1\57\5\0\4\57"+
-    "\1\0\6\57\1\371\4\57\1\0\5\57\1\0\2\57"+
-    "\1\0\4\57\44\0\1\372\54\0\1\373\55\0\1\374"+
-    "\60\0\1\375\63\0\1\376\20\0\2\152\1\0\26\152"+
-    "\1\377\27\152\2\161\1\0\26\161\1\u0100\27\161\32\0"+
-    "\1\u0101\34\0\3\57\4\0\1\57\5\0\4\57\1\0"+
-    "\3\57\1\u0102\7\57\1\0\2\57\1\u0102\2\57\1\0"+
-    "\2\57\1\0\4\57\45\0\1\u0103\52\0\1\u0104\63\0"+
-    "\1\u0105\43\0\1\u0106\63\0\1\u0107\25\0\1\u0107\2\0"+
-    "\2\152\1\0\27\152\1\u0108\26\152\2\161\1\0\27\161"+
-    "\1\u0109\26\161\33\0\1\u010a\62\0\1\u010b\56\0\1\u010c"+
-    "\12\0\1\u010c\45\0\1\u010d\12\0\1\u010d\12\0\2\152"+
-    "\1\0\30\152\1\u010e\25\152\2\161\1\0\30\161\1\u010f"+
-    "\25\161\32\0\1\u0110\26\0\2\152\1\0\27\152\1\u0111"+
-    "\26\152\2\161\1\0\27\161\1\u0112\26\161\27\0\1\u0113"+
-    "\31\0\2\152\1\0\24\152\1\u0114\31\152\2\161\1\0"+
-    "\24\161\1\u0115\31\161";
-
-  /** 
-   * 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,  9,  1,  1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  9,  1, 
-     1,  9,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1,  9,  1,  1, 
-     1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
-     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1, 
-     1,  1,  9,  9,  1,  9,  9,  1,  0,  1,  0,  1,  0,  0,  0,  9, 
-     1,  1,  9,  9,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0,  9, 
-     0,  0,  9,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0,  9,  0, 
-     0,  0,  0,  0,  9,  1,  0,  0,  1,  1,  0,  0,  1,  0,  0,  0, 
-     9,  0,  0,  0,  1,  0,  0,  0,  9,  1,  0,  0,  1,  1,  0,  1, 
-     0,  0,  0,  9,  1,  0,  0,  1,  1,  0,  1,  0,  0,  1,  1,  9, 
-     0,  0,  9,  9,  9,  1,  1,  0,  0,  0,  0,  0,  0,  1,  0,  0, 
-     1,  0,  1,  0,  1,  0,  1,  9,  0,  1,  9,  0,  1,  0,  0,  0, 
-     0,  0,  0,  0,  1,  0,  1,  0,  1,  0,  0,  0,  0,  0,  1,  1, 
-     0,  1,  0,  0,  0,  9,  9,  1,  1,  0,  9,  9,  9,  1,  1,  0, 
-     1,  1,  9,  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 ContextRegionContainer fBufferedEmbeddedContainer = null;
-	private String f_context = null;
-
-	// state stack for handling embedded regions
-	private IntStack fStateStack = new IntStack();
-	// a "hint" as to what an embedded region should be evaluated
-	private String fEmbeddedHint = UNDEFINED;
-	// a "hint" as to what state to enter once an embedded region has
-	//   been completed
-	private int fEmbeddedPostState = YYINITIAL;
-	// the container used to create embedded regions
-	private ContextRegionContainer fEmbeddedContainer = null;
-	private static final String PROXY_CONTEXT = "PROXY_CONTEXT";
-
-	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();
-
-	private static final String rcsver = "$Id: XMLTokenizer.java,v 1.1 2004/11/11 08:35:28 david_williams Exp $";//$NON-NLS-1$
-/**
- * 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 {
-	fEmbeddedContainer = null;
-	// load the starting non-whitespace token (assume that it is so)
-	if (fShouldLoadBuffered) {
-		if (fBufferedEmbeddedContainer != null) {
-			ITextRegion container = fBufferedEmbeddedContainer;
-			fBufferedEmbeddedContainer = null;
-			fShouldLoadBuffered = false;
-			return container;
-		}
-		context = fBufferedContext;
-		start = fBufferedStart;
-		textLength = length = fBufferedLength;
-		fShouldLoadBuffered = false;
-	}
-	else {
-		context = primGetNextToken();
-		if (context == PROXY_CONTEXT) {
-			return fEmbeddedContainer;
-		}
-		else 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 == PROXY_CONTEXT) {
-		fBufferedEmbeddedContainer = fEmbeddedContainer;
-		fShouldLoadBuffered = true;
-	}
-	else 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;
-
-	fEmbeddedContainer = null;
-}
-
-	/**
-	 * user method
-	 *
-	 * @see com.ibm.sed.parser.BlockTokenizer#newInstance()
-	 */
-	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[9114];
-    int i = 0;  /* index in packed string  */
-    int j = 0;  /* index in unpacked array */
-    while (i < 3174) {
-      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()!
-   */
-  private 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 274: 
-        case 275: 
-        case 276: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nCDATA start");//$NON-NLS-1$
-	fStateStack.push(yystate());
-	yybegin(ST_CDATA_TEXT);
-	return XML_CDATA_OPEN;
- }
-        case 278: break;
-        case 268: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("element");//$NON-NLS-1$
-	yybegin(ST_XML_ELEMENT_DECLARATION);
-	return XML_ELEMENT_DECLARATION;
- }
-        case 279: break;
-        case 267: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("attlist");//$NON-NLS-1$
-	yybegin(ST_XML_ATTLIST_DECLARATION);
-	return XML_ATTLIST_DECLARATION;
- }
-        case 280: break;
-        case 266: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("doctype");//$NON-NLS-1$
-	yybegin(ST_XML_DOCTYPE_DECLARATION);
-	return XML_DOCTYPE_DECLARATION;
- }
-        case 281: break;
-        case 262: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("doctype external id");//$NON-NLS-1$
-	fEmbeddedHint = XML_DOCTYPE_EXTERNAL_ID_PUBREF;
-	yybegin(ST_XML_DOCTYPE_ID_PUBLIC);
-	return XML_DOCTYPE_EXTERNAL_ID_PUBLIC;
- }
-        case 282: break;
-        case 261: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("doctype external id");//$NON-NLS-1$
-	fEmbeddedHint = XML_DOCTYPE_EXTERNAL_ID_SYSREF;
-	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
-	return XML_DOCTYPE_EXTERNAL_ID_SYSTEM;
- }
-        case 283: break;
-        case 257: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction target");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_EQUALS;
-        yybegin(ST_DHTML_ATTRIBUTE_NAME);
-        return XML_TAG_NAME;
- }
-        case 284: break;
-        case 234: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nCharRef");//$NON-NLS-1$
-	return XML_CHAR_REFERENCE;
- }
-        case 285: break;
-        case 231: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\ncomment start");//$NON-NLS-1$
-	fEmbeddedHint = XML_COMMENT_TEXT;
-	fEmbeddedPostState = ST_XML_COMMENT;
-	yybegin(ST_XML_COMMENT);
-	return XML_COMMENT_OPEN;
- }
-        case 286: break;
-        case 213: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("XML processing instruction target");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_EQUALS;
-        yybegin(ST_XML_PI_ATTRIBUTE_NAME);
-        return XML_TAG_NAME;
- }
-        case 287: break;
-        case 212: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("comment end");//$NON-NLS-1$
-	fEmbeddedHint = UNDEFINED;
-	yybegin(YYINITIAL);
-	return XML_COMMENT_CLOSE;
- }
-        case 288: break;
-        case 211: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("CDATA end");//$NON-NLS-1$
-	yybegin(fStateStack.pop());
-	return XML_CDATA_CLOSE;
- }
-        case 289: break;
-        case 210: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nPEReference");//$NON-NLS-1$
-	return XML_PE_REFERENCE;
- }
-        case 290: break;
-        case 207: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nEntityRef");//$NON-NLS-1$
-	return XML_ENTITY_REFERENCE;
- }
-        case 291: break;
-        case 158: 
-        case 172: 
-        case 180: 
-          { 
-	return XML_DOCTYPE_INTERNAL_SUBSET;
- }
-        case 292: break;
-        case 146: 
-          { 
-        yybegin(YYINITIAL);
-	fEmbeddedHint = UNDEFINED;
-	if(Debug.debugTokenizer)
-		dump("empty tag close");//$NON-NLS-1$
-        return XML_EMPTY_TAG_CLOSE;
- }
-        case 293: break;
-        case 131: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("XML processing instruction end");//$NON-NLS-1$
-	fEmbeddedHint = UNDEFINED;
-        yybegin(YYINITIAL);
-        return XML_PI_CLOSE;
- }
-        case 294: break;
-        case 130: 
-          { 
-		// ended with nothing inside
-		fEmbeddedHint = UNDEFINED;
-        yybegin(YYINITIAL);
-        return XML_PI_CLOSE;
- }
-        case 295: break;
-        case 127: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("processing instruction end");//$NON-NLS-1$
-	fEmbeddedHint = UNDEFINED;
-        yybegin(YYINITIAL);
-        return XML_PI_CLOSE;
- }
-        case 296: break;
-        case 119: 
-          { 
-	fStateStack.push(yystate());
-	if(Debug.debugTokenizer)
-		dump("\ndeclaration start");//$NON-NLS-1$
-        yybegin(ST_XML_DECLARATION);
-	return XML_DECLARATION_OPEN;
- }
-        case 297: break;
-        case 118: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nprocessing instruction start");//$NON-NLS-1$
-	yybegin(ST_PI);
-        return XML_PI_OPEN;
- }
-        case 298: break;
-        case 62: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction end");//$NON-NLS-1$
-	fEmbeddedHint = UNDEFINED;
-        yybegin(YYINITIAL);
-        return XML_PI_CLOSE;
- }
-        case 299: break;
-        case 56: 
-        case 58: 
-        case 59: 
-        case 60: 
-        case 135: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("XML processing instruction attribute value");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_EQUALS;
-        yybegin(ST_XML_PI_ATTRIBUTE_NAME);
-        return XML_TAG_ATTRIBUTE_VALUE;
- }
-        case 300: break;
-        case 55: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("XML processing instruction '='");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-        yybegin(ST_XML_PI_ATTRIBUTE_VALUE);
-        return XML_TAG_ATTRIBUTE_EQUALS;
- }
-        case 301: break;
-        case 54: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("XML processing instruction attribute name");//$NON-NLS-1$
-        yybegin(ST_XML_PI_EQUALS);
-        return XML_TAG_ATTRIBUTE_NAME;
- }
-        case 302: break;
-        case 50: 
-        case 51: 
-        case 52: 
-          { 
-	// block scan until close is found
-	return doScan("?>", false, XML_PI_CONTENT, ST_XML_PI_TAG_CLOSE, ST_XML_PI_TAG_CLOSE);
- }
-        case 303: break;
-        case 49: 
-          { 
-        yybegin(ST_PI_CONTENT);
-        return WHITE_SPACE;
- }
-        case 304: break;
-        case 46: 
-        case 47: 
-        case 48: 
-        case 128: 
-        case 129: 
-        case 214: 
-        case 236: 
-        case 248: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("processing instruction target");//$NON-NLS-1$
-	fEmbeddedHint = XML_CONTENT;
-        yybegin(ST_PI_WS);
-        return XML_TAG_NAME;
- }
-        case 305: break;
-        case 41: 
-        case 42: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("comment content");//$NON-NLS-1$
-	return scanXMLCommentText();
- }
-        case 306: break;
-        case 40: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("LINE FEED");//$NON-NLS-1$
-	return WHITE_SPACE;
- }
-        case 307: break;
-        case 0: 
-        case 31: 
-        case 121: 
-        case 123: 
-        case 205: 
-        case 206: 
-        case 233: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nXML content");//$NON-NLS-1$
-	return XML_CONTENT;
- }
-        case 308: 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 309: break;
-        case 16: 
-        case 70: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("inappropriate tag name");//$NON-NLS-1$
-	yybegin(YYINITIAL);
-        return XML_CONTENT;
- }
-        case 310: break;
-        case 27: 
-        case 105: 
-        case 106: 
-        case 191: 
-        case 226: 
-        case 244: 
-        case 254: 
-        case 263: 
-        case 269: 
-        case 272: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("elementdecl contentspec");//$NON-NLS-1$
-	return XML_ELEMENT_DECL_CONTENT;
- }
-        case 311: break;
-        case 29: 
-        case 112: 
-        case 113: 
-        case 202: 
-        case 230: 
-        case 246: 
-        case 255: 
-        case 264: 
-        case 270: 
-        case 273: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("attlist contentspec");//$NON-NLS-1$
-	return XML_ATTLIST_DECL_CONTENT;
- }
-        case 312: break;
-        case 32: 
-        case 71: 
-        case 82: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nstart tag open");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_NAME;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-        yybegin(ST_XML_TAG_NAME);
-        return XML_TAG_OPEN;
- }
-        case 313: break;
-        case 33: 
-        case 34: 
-        case 37: 
-        case 38: 
-        case 39: 
-        case 43: 
-        case 44: 
-        case 53: 
-        case 57: 
-        case 61: 
-        case 63: 
-        case 67: 
-        case 73: 
-        case 79: 
-        case 84: 
-        case 85: 
-        case 86: 
-        case 87: 
-        case 89: 
-        case 90: 
-        case 92: 
-        case 97: 
-        case 102: 
-        case 109: 
-          { 
-	if (Debug.debugTokenizer)
-		System.out.println("!!!unexpected!!!: \"" + yytext() + "\":" + //$NON-NLS-2$//$NON-NLS-1$
-			yychar + "-" + (yychar + yylength()));//$NON-NLS-1$
-	return UNDEFINED;
- }
-        case 314: break;
-        case 35: 
-        case 36: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("CDATA text");//$NON-NLS-1$
-	fEmbeddedHint = XML_CDATA_TEXT;
-	fEmbeddedPostState = ST_CDATA_TEXT;
-	String blockContext = doBlockScan("]]>", XML_CDATA_TEXT, ST_CDATA_END);//$NON-NLS-1$
-	if(blockContext == XML_CDATA_TEXT)
-		yybegin(ST_CDATA_END);
-	return blockContext;
- }
-        case 315: break;
-        case 64: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction attribute name");//$NON-NLS-1$
-        yybegin(ST_DHTML_EQUALS);
-        return XML_TAG_ATTRIBUTE_NAME;
- }
-        case 316: break;
-        case 65: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction '='");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-        yybegin(ST_DHTML_ATTRIBUTE_VALUE);
-        return XML_TAG_ATTRIBUTE_EQUALS;
- }
-        case 317: break;
-        case 66: 
-        case 68: 
-        case 69: 
-        case 143: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction attribute value");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_EQUALS;
-        yybegin(ST_DHTML_ATTRIBUTE_NAME);
-        return XML_TAG_ATTRIBUTE_VALUE;
- }
-        case 318: break;
-        case 72: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("tag close");//$NON-NLS-1$
-	fEmbeddedHint = UNDEFINED;
-	if(isBlockMarker()) {
-		fEmbeddedHint = getBlockMarkerContext();
-		fEmbeddedPostState = ST_BLOCK_TAG_SCAN;
-        	yybegin(ST_BLOCK_TAG_SCAN);
-	}
-	else
-        	yybegin(YYINITIAL);
-        return XML_TAG_CLOSE;
- }
-        case 319: break;
-        case 74: 
-        case 75: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("tag name");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_EQUALS;
-        yybegin(ST_XML_ATTRIBUTE_NAME);
-        return XML_TAG_NAME;
- }
-        case 320: break;
-        case 76: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("attr name");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-        yybegin(ST_XML_EQUALS);
-        return XML_TAG_ATTRIBUTE_NAME;
- }
-        case 321: break;
-        case 77: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("equals");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-        yybegin(ST_XML_ATTRIBUTE_VALUE);
-        return XML_TAG_ATTRIBUTE_EQUALS;
- }
-        case 322: break;
-        case 78: 
-        case 80: 
-        case 81: 
-        case 150: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("attr value");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-	fEmbeddedPostState = ST_XML_EQUALS;
-        yybegin(ST_XML_ATTRIBUTE_NAME);
-        return XML_TAG_ATTRIBUTE_VALUE;
- }
-        case 323: break;
-        case 83: 
-          { 
-	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 324: break;
-        case 88: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("doctype type");//$NON-NLS-1$
-	yybegin(ST_XML_DOCTYPE_EXTERNAL_ID);
-	return XML_DOCTYPE_NAME;
- }
-        case 325: break;
-        case 91: 
-        case 93: 
-        case 94: 
-        case 95: 
-        case 164: 
-        case 165: 
-        case 168: 
-        case 169: 
-        case 221: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("doctype public reference");//$NON-NLS-1$
-	fEmbeddedHint = UNDEFINED;
-	fEmbeddedPostState = YYINITIAL;
-	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
-	return XML_DOCTYPE_EXTERNAL_ID_PUBREF;
- }
-        case 326: break;
-        case 96: 
-        case 98: 
-        case 99: 
-        case 100: 
-        case 176: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("doctype system reference");//$NON-NLS-1$
-	fEmbeddedHint = UNDEFINED;
-	fEmbeddedPostState = YYINITIAL;
-	yybegin(ST_XML_DECLARATION_CLOSE);
-	return XML_DOCTYPE_EXTERNAL_ID_SYSREF;
- }
-        case 327: break;
-        case 101: 
-        case 103: 
-        case 104: 
-        case 184: 
-        case 185: 
-        case 188: 
-        case 189: 
-        case 224: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("elementdecl name");//$NON-NLS-1$
-	fEmbeddedHint = UNDEFINED;
-	fEmbeddedPostState = YYINITIAL;
-	yybegin(ST_XML_ELEMENT_DECLARATION_CONTENT);
-	return XML_ELEMENT_DECL_NAME;
- }
-        case 328: break;
-        case 107: 
-          { 
-	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 329: break;
-        case 108: 
-        case 110: 
-        case 111: 
-        case 195: 
-        case 196: 
-        case 199: 
-        case 200: 
-        case 228: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("attlist name");//$NON-NLS-1$
-	fEmbeddedHint = UNDEFINED;
-	fEmbeddedPostState = YYINITIAL;
-	yybegin(ST_XML_ATTLIST_DECLARATION_CONTENT);
-	return XML_ATTLIST_DECL_NAME;
- }
-        case 330: break;
-        case 114: 
-          { 
-	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 331: break;
-        case 117: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nend tag open");//$NON-NLS-1$
-	fEmbeddedHint = XML_TAG_NAME;
-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-        yybegin(ST_XML_TAG_NAME);
-        return XML_END_TAG_OPEN;
- }
-        case 332: break;
-        case 115: 
-        case 116: 
-          { 
-		return doBlockTagScan();
-	 }
-        case 333: 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.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex
deleted file mode 100644
index f0e7f64..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex
+++ /dev/null
@@ -1,1398 +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.sse.core.xml.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.parser.BlockMarker;

-import org.eclipse.wst.sse.core.parser.BlockTokenizer;

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

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

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

-import org.eclipse.wst.sse.core.xml.Logger;

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

-import org.eclipse.wst.sse.core.xml.parser.XMLRegionContext;

-

-%%

-

-%{

-	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 ContextRegionContainer fBufferedEmbeddedContainer = null;

-	private String f_context = null;

-

-	// state stack for handling embedded regions

-	private IntStack fStateStack = new IntStack();

-	// a "hint" as to what an embedded region should be evaluated

-	private String fEmbeddedHint = UNDEFINED;

-	// a "hint" as to what state to enter once an embedded region has

-	//   been completed

-	private int fEmbeddedPostState = YYINITIAL;

-	// the container used to create embedded regions

-	private ContextRegionContainer fEmbeddedContainer = null;

-	private static final String PROXY_CONTEXT = "PROXY_CONTEXT";

-

-	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();

-

-	private static final String rcsver = "$Id: XMLTokenizer.jflex,v 1.4.2.1 2004/10/20 15:21:33 kitlo Exp $";//$NON-NLS-1$

-/**

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

-	fEmbeddedContainer = null;

-	// load the starting non-whitespace token (assume that it is so)

-	if (fShouldLoadBuffered) {

-		if (fBufferedEmbeddedContainer != null) {

-			ITextRegion container = fBufferedEmbeddedContainer;

-			fBufferedEmbeddedContainer = null;

-			fShouldLoadBuffered = false;

-			return container;

-		}

-		context = fBufferedContext;

-		start = fBufferedStart;

-		textLength = length = fBufferedLength;

-		fShouldLoadBuffered = false;

-	}

-	else {

-		context = primGetNextToken();

-		if (context == PROXY_CONTEXT) {

-			return fEmbeddedContainer;

-		}

-		else 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 == PROXY_CONTEXT) {

-		fBufferedEmbeddedContainer = fEmbeddedContainer;

-		fShouldLoadBuffered = true;

-	}

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

-

-	fEmbeddedContainer = null;

-}

-

-	/**

-	 * user method

-	 *

-	 * @see com.ibm.sed.parser.BlockTokenizer#newInstance()

-	 */

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

-}

-%}

-

-%eof{

-// do nothing, this is the downstream parser's job

-%eof}

-

-%public

-%class XMLTokenizer

-%implements BlockTokenizer, XMLRegionContext

-%function primGetNextToken

-%type String

-%char

-%line

-%unicode

-%pack

-

-%state ST_CDATA_TEXT

-%state ST_CDATA_END

-%state ST_XML_COMMENT

-%state ST_XML_COMMENT_END

-%state ST_PI

-%state ST_PI_WS

-%state ST_PI_CONTENT

-%state ST_XML_PI_ATTRIBUTE_NAME

-%state ST_XML_PI_EQUALS

-%state ST_XML_PI_ATTRIBUTE_VALUE

-%state ST_XML_PI_TAG_CLOSE

-%state ST_DHTML_ATTRIBUTE_NAME

-%state ST_DHTML_EQUALS

-%state ST_DHTML_ATTRIBUTE_VALUE

-%state ST_DHTML_TAG_CLOSE

-

-// normal tag states

-%state ST_XML_TAG_NAME

-%state ST_XML_ATTRIBUTE_NAME

-%state ST_XML_EQUALS

-%state ST_XML_ATTRIBUTE_VALUE

-

-// declaration (DTD) states

-%state ST_XML_DECLARATION

-%state ST_XML_DECLARATION_CLOSE

-

-%state ST_XML_DOCTYPE_DECLARATION

-%state ST_XML_DOCTYPE_EXTERNAL_ID

-%state ST_XML_DOCTYPE_ID_PUBLIC

-%state ST_XML_DOCTYPE_ID_SYSTEM

-

-%state ST_XML_ELEMENT_DECLARATION

-%state ST_XML_ELEMENT_DECLARATION_CONTENT

-

-%state ST_XML_ATTLIST_DECLARATION

-%state ST_XML_ATTLIST_DECLARATION_CONTENT

-

-%state ST_BLOCK_TAG_SCAN

-

-// Letter = ([A-Za-z])

-// Digit = ([0-9])

-

-/**

- * smaller tokens

- */

-genericTagOpen       = <

-genericTagClose      = >

-genericEndTagOpen    = <\/

-genericEmptyTagClose = \/>

-

-PIstart = <\?

-PIend   = \?>

-

-

-// [1] document ::= prolog element Misc*

-document = ({prolog} {element} {Misc}*)

-

-// [2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]

- //Char = (.)

-Char = [\x09\x0A\x0D\x20-\uD7FF\uE000-\uFFFD] 

-

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

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

-

-// [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender

-NameChar = ({Letter} | {Digit} | \. | \- | _ | : | {CombiningChar} | {Extender})

-

-// [5] Name ::= (Letter | '_' | ':') NameChar*

-//Name = ({NameChar}{NameChar}*)

-Name = ({Letter} | _ | :){NameChar}*

-

-// [6] Names ::= {Name} ({S} {Name})*

-Names = ({Name} ({S} {Name})*)

-

-// [7] Nmtoken ::= (NameChar)+

-Nmtoken = ({NameChar}+)

-

-// [8] Nmtokens ::= Nmtoken (S Nmtoken)*

-Nmtokens = ({Nmtoken} ({S} {Nmtoken})*)

-

-// [9] EntityValue ::= '"' ([^%&"] | PEReference | Reference)* '"' |  "'" ([^%&'] | PEReference | Reference)* "'"

-EntityValue = (\" ([^%&\"] | {PEReference} | {Reference})* \" |  \' ([^%&\'] | {PEReference} | {Reference})* \')

-

-// [10] AttValue ::= '"' ([^<&"] | Reference)* '"' |  "'" ([^<&'] | Reference)* "'"

-AttValue = ( \" ([^<\"] | {Reference})* \" | \' ([^<\'] | {Reference})* \'  | ([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )* )

-

-// [11] SystemLiteral ::= ('"' [^"]* '"') | ("'" [^']* "'") 

-SystemLiteral = ((\" [^\"]* \") | (\' [^\']* \')) 

-

-// [12] PubidLiteral ::= '"' PubidChar* '"' | "'" (PubidChar - "'")* "'"

-PubidLiteral = (\" {PubidChar}* \" | \' ({PubidChar}\')* "'")

-

-// [13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]

-PubidChar = ([\040\015\012] | [a-zA-Z0-9] | [\-\'()\+,.\/:=?;!\*#@\$_%])

-

-// [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)

-// implement lookahead behavior during action definition

-CharData = ([^<&(\]\]>)]*)

-

-// [15] Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'

-CommentStart = (<!\-\-)

-CommentEnd   = (\-\->)

-Comment = ({CommentStart}.*{CommentEnd})

-

-// [16] PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'

-PI = (<\?{PITarget} {Char}* \?>)

-

-// [17] PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l'))

-PITarget = ({Name}((X|x)(M|m)(L|l)))

-

-// [18] CDSect ::= CDStart CData CDEnd

-CDSect = ({CDStart}{CData}{CDEnd})

-

-// [19] CDStart ::= '<![CDATA['

-CDStart = <!\[CDATA\[

-

-// [20] CData ::= (Char* - (Char* ']]>' Char*)) 

-// implement lookahead behavior during action definition

-CData = ([^(\]\]>)]*)

-

-// [21] CDEnd ::= ']]>'

-CDEnd = (\]\]>)

-

-// [22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?

-prolog = ({XMLDecl}? {Misc}* ({doctypedecl} {Misc}*)?)

-

-// [23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'

-XMLDecl = (<\?xml {VersionInfo} {EncodingDecl}? {SDDecl}? {S}? \?>)

-

-// [24] VersionInfo ::= S 'version' Eq (' VersionNum ' | " VersionNum ")

-VersionInfo = ({S}version{Eq}(\'{VersionNum}\' | \"{VersionNum}\"))

-

-// [25] Eq ::= S? '=' S?

-Eq = (\=)

-

-// [26] VersionNum ::= ([a-zA-Z0-9_.:] | '-')+

-VersionNum = (([a-zA-Z0-9_.:]|\-)+)

-

-// [27] Misc ::= Comment | PI |  S

-Misc = ({Comment} | {PI} | {S})

-

-// [28] doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)?  S? ('[' (markupdecl | PEReference | S)* ']' S?)? '>'

-doctypedecl = (<\!DOCTYPE{S}{Name} ({S}{ExternalID})? {S}? (\[ ({markupdecl}|{PEReference}|{S})* \]{S}?)?>)

-

-// [29] markupdecl ::= elementdecl | AttlistDecl | EntityDecl | NotationDecl | PI | Comment

-markupdecl = ({elementdecl} | {AttlistDecl} | {EntityDecl} | {NotationDecl} | {PI} | {Comment})

-

-// [30] extSubset ::= TextDecl? extSubsetDecl

-extSubset = ({TextDecl}? {extSubsetDecl})

-

-// [31] extSubsetDecl ::= ( markupdecl | conditionalSect | PEReference | S )*

-extSubsetDecl = (( {markupdecl} | {conditionalSect} | {PEReference} | {S} )*)

-

-// [32]  SDDecl  ::= S 'standalone' Eq (("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"'))

-SDDecl  = ({S}standalone{Eq}{S}*((\'(yes|no)\')|(\"(yes|no)\")))

-

-// [33]  LanguageID  ::= Langcode ('-' Subcode)*

-LanguageID  = ({Langcode}(\-{Subcode})*)

-

-// [34]  Langcode ::= ISO639Code |  IanaCode |  UserCode

-Langcode = ({ISO639Code} |  {IanaCode} |  {UserCode})

-

-// [35]  ISO639Code ::= ([a-z] | [A-Z]) ([a-z] | [A-Z])

-ISO639Code = (([a-z]|[A-Z])([a-z]|[A-Z]))

-

-// [36]  IanaCode ::= ('i' | 'I') '-' ([a-z] | [A-Z])+

-IanaCode = ((i|I)\-([a-z]|[A-Z])+)

-

-// [37]  UserCode ::= ('x' | 'X') '-' ([a-z] | [A-Z])+

-UserCode = ((x|X)\-([a-z]|[A-Z])+)

-

-// [38]  Subcode ::= ([a-z] | [A-Z])+

-Subcode = (([a-z]|[A-Z])+)

-

-// [39]  element  ::= EmptyElemTag | STag content ETag

-element  = ({EmptyElemTag} | {STag} {content} {ETag})

-

-// [40]  STag  ::= '<' Name (S Attribute)* S? '>'

-STag = (<{Name}({S}{Attribute})*{S}?>)

-

-// [41]  Attribute ::= Name Eq AttValue

-Attribute = ({Name}{S}*{Eq}{S}*{AttValue})

-

-// [42]  ETag  ::= 'Name S? '>'

-ETag = (<\/{Name}{S}?>)

-

-// [43]  content  ::= (element | CharData | Reference | CDSect | PI | Comment)*

-content = (({element} | {CharData} | {Reference} | {CDSect} | {PI} | {Comment})*)

-

-// [44]  EmptyElemTag  ::= '<' Name (S Attribute)* S? '/>'

-EmptyElemTag = (<{Name}({S}{Attribute})*{S}?\/>)

-

-// [45] elementdecl ::= '<!ELEMENT' S Name S contentspec S? '>'

-elementdecl = (<\!ELEMENT{S}{Name}{S}{contentspec}{S}?>)

-

-// [46] contentspec ::= 'EMPTY' | 'ANY' | Mixed | children

-contentspec = (EMPTY|ANY|{Mixed}|{children})

-

-// [47] children ::= (choice | seq) ('?' | '*' | '+')?

-children = (({choice}|{seq})(\?|\*|\+)?)

-

-// CAUSES LOOP THROUGH DEFS OF CHOICE AND SEQ

-// [48] cp ::= (Name | choice | seq) ('?' | '*' | '+')?

-cp = (({Name} | {choice} | {seq}) (\?|\*|\+)?)

-

-// [49] choice ::= '(' S? cp ( S? '|' S? cp )* S? ')'

-// choice = \({S}?{cp}({S}?\|{S}?{cp})*{S}?\)

-choice = \({S}?{Name}({S}?\|{S}?{Name})*{S}?\)

-

-// [50] seq ::= '(' S? cp ( S? ',' S? cp )* S? ')'

-// seq = (\({S}?{cp}({S}?\,{S}?{cp})*{S}?\))

-seq = (\({S}?{Name}({S}?\,{S}?{Name})*{S}?\))

-

-// [51] Mixed ::= '(' S? '#PCDATA' (S? '|' S? Name)* S?  ')*' | '(' S? '#PCDATA' S? ')'

-Mixed = ({S}?\#PCDATA({S}?\|{S}?{Name})*{S}?)*\|({S}?\#PCDATA{S}?)

-

-// [52] AttlistDecl ::= '<!ATTLIST' S Name AttDef* S? '>'

-AttlistDecl = (<\!ATTLIST{S}{Name}{AttDef}*{S}?>)

-

-// [53] AttDef ::= S Name S AttType S DefaultDecl

-AttDef = ({S}{Name}{S}{AttType}{S}{DefaultDecl})

-

-// [54] AttType ::= StringType | TokenizedType | EnumeratedType 

-AttType = ({StringType} | {TokenizedType} | {EnumeratedType})

-

-// [55] StringType ::= 'CDATA'

-StringType = (CDATA)

-

-// [56] TokenizedType ::= 'ID' | 'IDREF' | 'IDREFS' | 'ENTITY' | 'ENTITIES' | 'NMTOKEN' | 'NMTOKENS'

-TokenizedType = (ID|IDREF|IDREFS|ENTITY|ENTITIES|NMTOKEN|NMTOKENS)

-

-// [57] EnumeratedType ::= NotationType | Enumeration 

-EnumeratedType = ({NotationType} | {Enumeration})

-

-// [58] NotationType ::= 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')' 

-NotationType = (NOTATION{S}\({S}?{Name}({S}?\|{S}?{Name})*{S}?\))

-

-// [59] Enumeration ::= '(' S? Nmtoken (S? '|' S?  Nmtoken)* S? ')'

-Enumeration = (\({S}?{Nmtoken}({S}?\|{S}?{Nmtoken})*{S}?\))

-

-// [60] DefaultDecl ::= '#REQUIRED' | '#IMPLIED' | (('#FIXED' S)? AttValue)

-DefaultDecl = (\#REQUIRED|\#IMPLIED|((\#FIXED{S})?{AttValue}))

-

-// [61] conditionalSect ::= includeSect | ignoreSect 

-conditionalSect = ({includeSect} | {ignoreSect})

-

-// [62] includeSect ::= '<![' S? 'INCLUDE' S? '[' extSubsetDecl ']]>' 

-includeSect = (<\!\[{S}?INCLUDE{S}?\[{extSubsetDecl}\]\]>)

-

-// [63] ignoreSect ::= '<![' S? 'IGNORE' S? '[' ignoreSectContents* ']]>'

-ignoreSect = (<\!\[{S}?IGNORE{S}?\[{ignoreSectContents}*\]\]>)

-

-// [64] ignoreSectContents ::= Ignore ('<![' ignoreSectContents ']]>' Ignore)*

-ignoreSectContents = ({Ignore}(<\!\[{ignoreSectContents}\]\]>{Ignore})*)

-

-// [65] Ignore ::= Char* - (Char* ('<![' | ']]>') Char*)

-Ignore =  ([^(\<\!\[|\]\]\>)]*)

-

-// [66] CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';'

-CharRef = (&#[0-9]+;|&#x[0-9a-fA-F]+;)

-

-// [67] Reference ::= EntityRef | CharRef

-Reference = ({EntityRef} | {CharRef})

-

-// [68] EntityRef = '&' Name ';'

-EntityRef = (&{Name};)

-

-// [69] PEReference ::= '%' Name ';'

-PEReference = (%{Name};)

-

-// [70] EntityDecl ::= GEDecl | PEDecl

-EntityDecl = ({GEDecl} | {PEDecl})

-

-// [71] GEDecl ::= '<!ENTITY' S Name S EntityDef S? '>'

-GEDecl = (<\!ENTITY{S}{Name}{S}{EntityDef}{S}?>)

-

-// [72] PEDecl ::= '<!ENTITY' S '%' S Name S PEDef S? '>'

-PEDecl = (<\!ENTITY{S}\%{S}{Name}{S}{PEDef}{S}?>)

-

-// [73] EntityDef ::= EntityValue | (ExternalID NDataDecl?)

-EntityDef = ({EntityValue} | ({ExternalID}{NDataDecl}?))

-

-// [74] PEDef ::= EntityValue | ExternalID

-PEDef = ({EntityValue} | {ExternalID})

-

-// [75] ExternalID ::= 'SYSTEM' S SystemLiteral | 'PUBLIC' S PubidLiteral S SystemLiteral 

-ExternalID = (SYSTEM{S}{SystemLiteral}|PUBLIC{S}{PubidLiteral}{S}{SystemLiteral} )

-

-// [76] NDataDecl ::= S 'NDATA' S Name

-NDataDecl = ({S}NDATA{S}{Name})

-

-// [77] TextDecl ::= '<?xml' VersionInfo? EncodingDecl S? '?>'

-TextDecl = (<\?xml{VersionInfo}?{EncodingDecl}{S}?\?>)

-

-// [78] extParsedEnt ::= TextDecl? content

-extParsedEnt = ({TextDecl}?{content})

-

-// [79] extPE ::= TextDecl? extSubsetDecl

-extPE = ({TextDecl}?{extSubsetDecl})

-

-// [80] EncodingDecl ::= S 'encoding' Eq ('"' EncName '"' |  "'" EncName "'" ) 

-EncodingDecl = ({S}encoding{S}*{Eq}{S}*(\"{EncName}\"|\'{EncName}\'))

-

-// [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')*

-EncName = ([A-Za-z]([A-Za-z0-9._]|\-)*)

-

-// [82] NotationDecl ::= '<!NOTATION' S Name S (ExternalID |  PublicID) S? '>'

-NotationDecl = (<\!NOTATION{S}{Name}{S}({ExternalID}|{PublicID}){S}?>)

-

-// [83] PublicID ::= 'PUBLIC' S PubidLiteral

-PublicID = (PUBLIC{S}{PubidLiteral})

-

-// [84]  Letter ::= BaseChar | Ideographic

-Letter = ({BaseChar} | {Ideographic})

-

-// [85]  BaseChar ::= [#x0041-#x005A] | [#x0061-#x007A] | [#x00C0-#x00D6]

-// | [#x00D8-#x00F6] | [#x00F8-#x00FF] | [#x0100-#x0131]

-// | [#x0134-#x013E] | [#x0141-#x0148] | [#x014A-#x017E]

-// | [#x0180-#x01C3] | [#x01CD-#x01F0] | [#x01F4-#x01F5]

-// | [#x01FA-#x0217] | [#x0250-#x02A8] | [#x02BB-#x02C1] | #x0386

-// | [#x0388-#x038A] | #x038C | [#x038E-#x03A1] | [#x03A3-#x03CE]

-// | [#x03D0-#x03D6] | #x03DA | #x03DC | #x03DE | #x03E0

-// | [#x03E2-#x03F3] | [#x0401-#x040C] | [#x040E-#x044F]

-// | [#x0451-#x045C] | [#x045E-#x0481] | [#x0490-#x04C4]

-// | [#x04C7-#x04C8] | [#x04CB-#x04CC] | [#x04D0-#x04EB]

-// | [#x04EE-#x04F5] | [#x04F8-#x04F9] | [#x0531-#x0556] | #x0559

-// | [#x0561-#x0586] | [#x05D0-#x05EA] | [#x05F0-#x05F2]

-// | [#x0621-#x063A] | [#x0641-#x064A] | [#x0671-#x06B7]

-// | [#x06BA-#x06BE] | [#x06C0-#x06CE] | [#x06D0-#x06D3] | #x06D5

-// | [#x06E5-#x06E6] | [#x0905-#x0939] | #x093D | [#x0958-#x0961]

-// | [#x0985-#x098C] | [#x098F-#x0990] | [#x0993-#x09A8]

-// | [#x09AA-#x09B0] | #x09B2 | [#x09B6-#x09B9] | [#x09DC-#x09DD]

-// | [#x09DF-#x09E1] | [#x09F0-#x09F1] | [#x0A05-#x0A0A]

-// | [#x0A0F-#x0A10] | [#x0A13-#x0A28] | [#x0A2A-#x0A30]

-// | [#x0A32-#x0A33] | [#x0A35-#x0A36] | [#x0A38-#x0A39]

-// | [#x0A59-#x0A5C] | #x0A5E | [#x0A72-#x0A74] | [#x0A85-#x0A8B]

-// | #x0A8D | [#x0A8F-#x0A91] | [#x0A93-#x0AA8] | [#x0AAA-#x0AB0]

-// | [#x0AB2-#x0AB3] | [#x0AB5-#x0AB9] | #x0ABD | #x0AE0

-// | [#x0B05-#x0B0C] | [#x0B0F-#x0B10] | [#x0B13-#x0B28]

-// | [#x0B2A-#x0B30] | [#x0B32-#x0B33] | [#x0B36-#x0B39] | #x0B3D

-// | [#x0B5C-#x0B5D] | [#x0B5F-#x0B61] | [#x0B85-#x0B8A]

-// | [#x0B8E-#x0B90] | [#x0B92-#x0B95] | [#x0B99-#x0B9A] | #x0B9C

-// | [#x0B9E-#x0B9F] | [#x0BA3-#x0BA4] | [#x0BA8-#x0BAA]

-// | [#x0BAE-#x0BB5] | [#x0BB7-#x0BB9] | [#x0C05-#x0C0C]

-// | [#x0C0E-#x0C10] | [#x0C12-#x0C28] | [#x0C2A-#x0C33]

-// | [#x0C35-#x0C39] | [#x0C60-#x0C61] | [#x0C85-#x0C8C]

-// | [#x0C8E-#x0C90] | [#x0C92-#x0CA8] | [#x0CAA-#x0CB3]

-// | [#x0CB5-#x0CB9] | #x0CDE | [#x0CE0-#x0CE1] | [#x0D05-#x0D0C]

-// | [#x0D0E-#x0D10] | [#x0D12-#x0D28] | [#x0D2A-#x0D39]

-// | [#x0D60-#x0D61] | [#x0E01-#x0E2E] | #x0E30 | [#x0E32-#x0E33]

-// | [#x0E40-#x0E45] | [#x0E81-#x0E82] | #x0E84 | [#x0E87-#x0E88]

-// | #x0E8A | #x0E8D | [#x0E94-#x0E97] | [#x0E99-#x0E9F]

-// | [#x0EA1-#x0EA3] | #x0EA5 | #x0EA7 | [#x0EAA-#x0EAB]

-// | [#x0EAD-#x0EAE] | #x0EB0 | [#x0EB2-#x0EB3] | #x0EBD

-// | [#x0EC0-#x0EC4] | [#x0F40-#x0F47] | [#x0F49-#x0F69]

-// | [#x10A0-#x10C5] | [#x10D0-#x10F6] | #x1100 | [#x1102-#x1103]

-// | [#x1105-#x1107] | #x1109 | [#x110B-#x110C] | [#x110E-#x1112]

-// | #x113C | #x113E | #x1140 | #x114C | #x114E | #x1150

-// | [#x1154-#x1155] | #x1159 | [#x115F-#x1161] | #x1163 | #x1165

-// | #x1167 | #x1169 | [#x116D-#x116E] | [#x1172-#x1173] | #x1175

-// | #x119E | #x11A8 | #x11AB | [#x11AE-#x11AF] | [#x11B7-#x11B8]

-// | #x11BA | [#x11BC-#x11C2] | #x11EB | #x11F0 | #x11F9

-// | [#x1E00-#x1E9B] | [#x1EA0-#x1EF9] | [#x1F00-#x1F15]

-// | [#x1F18-#x1F1D] | [#x1F20-#x1F45] | [#x1F48-#x1F4D]

-// | [#x1F50-#x1F57] | #x1F59 | #x1F5B | #x1F5D | [#x1F5F-#x1F7D]

-// | [#x1F80-#x1FB4] | [#x1FB6-#x1FBC] | #x1FBE | [#x1FC2-#x1FC4]

-// | [#x1FC6-#x1FCC] | [#x1FD0-#x1FD3] | [#x1FD6-#x1FDB]

-// | [#x1FE0-#x1FEC] | [#x1FF2-#x1FF4] | [#x1FF6-#x1FFC] | #x2126

-// | [#x212A-#x212B] | #x212E | [#x2180-#x2182] | [#x3041-#x3094]

-// | [#x30A1-#x30FA] | [#x3105-#x312C] | [#xAC00-#xD7A3]

-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]

-

-// [86]  Ideographic ::= [#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029]

-Ideographic = [\u4E00-\u9FA5\u3007\u3021-\u3029]

-

-// [87]      CombiningChar    ::=    [#x0300-#x0345]    | [#x0360-#x0361]

-// | [#x0483-#x0486]          | [#x0591-#x05A1]         | [#x05A3-#x05B9]

-// | [#x05BB-#x05BD]       | #x05BF       | [#x05C1-#x05C2]	 | #x05C4

-// | [#x064B-#x0652]    | #x0670    | [#x06D6-#x06DC]   | [#x06DD-#x06DF]

-// | [#x06E0-#x06E4]          | [#x06E7-#x06E8]         | [#x06EA-#x06ED]

-// | [#x0901-#x0903]       | #x093C       | [#x093E-#x094C]      | #x094D

-// | [#x0951-#x0954]    | [#x0962-#x0963]    | [#x0981-#x0983]   | #x09BC

-// | #x09BE       | #x09BF       | [#x09C0-#x09C4]      | [#x09C7-#x09C8]

-// | [#x09CB-#x09CD]   | #x09D7   | [#x09E2-#x09E3]   | #x0A02   | #x0A3C

-// | #x0A3E       | #x0A3F       | [#x0A40-#x0A42]      | [#x0A47-#x0A48]

-// | [#x0A4B-#x0A4D]    | [#x0A70-#x0A71]    | [#x0A81-#x0A83]   | #x0ABC

-// | [#x0ABE-#x0AC5]          | [#x0AC7-#x0AC9]         | [#x0ACB-#x0ACD]

-// | [#x0B01-#x0B03]    | #x0B3C    | [#x0B3E-#x0B43]   | [#x0B47-#x0B48]

-// | [#x0B4B-#x0B4D]          | [#x0B56-#x0B57]         | [#x0B82-#x0B83]

-// | [#x0BBE-#x0BC2]    | [#x0BC6-#x0BC8]    | [#x0BCA-#x0BCD]   | #x0BD7

-// | [#x0C01-#x0C03]          | [#x0C3E-#x0C44]         | [#x0C46-#x0C48]

-// | [#x0C4A-#x0C4D]          | [#x0C55-#x0C56]         | [#x0C82-#x0C83]

-// | [#x0CBE-#x0CC4]          | [#x0CC6-#x0CC8]         | [#x0CCA-#x0CCD]

-// | [#x0CD5-#x0CD6]          | [#x0D02-#x0D03]         | [#x0D3E-#x0D43]

-// | [#x0D46-#x0D48]       | [#x0D4A-#x0D4D]       | #x0D57      | #x0E31

-// | [#x0E34-#x0E3A]    | [#x0E47-#x0E4E]    | #x0EB1   | [#x0EB4-#x0EB9]

-// | [#x0EBB-#x0EBC]    | [#x0EC8-#x0ECD]    | [#x0F18-#x0F19]   | #x0F35

-// | #x0F37      | #x0F39     | #x0F3E     | #x0F3F     | [#x0F71-#x0F84]

-// | [#x0F86-#x0F8B]    | [#x0F90-#x0F95]    | #x0F97   | [#x0F99-#x0FAD]

-// | [#x0FB1-#x0FB7]       | #x0FB9       | [#x20D0-#x20DC]      | #x20E1

-// | [#x302A-#x302F] | #x3099 | #x309A

-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]

-

-// [88]   Digit  ::=  [#x0030-#x0039] | [#x0660-#x0669] | [#x06F0-#x06F9]

-// | [#x0966-#x096F]          | [#x09E6-#x09EF]         | [#x0A66-#x0A6F]

-// | [#x0AE6-#x0AEF]          | [#x0B66-#x0B6F]         | [#x0BE7-#x0BEF]

-// | [#x0C66-#x0C6F]          | [#x0CE6-#x0CEF]         | [#x0D66-#x0D6F]

-// | [#x0E50-#x0E59] | [#x0ED0-#x0ED9] | [#x0F20-#x0F29]

-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]

-

-// [89]  Extender ::= #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | #x0E46

-// | #x0EC6       | #x3005       | [#x3031-#x3035]      | [#x309D-#x309E]

-// | [#x30FC-#x30FE]

-Extender = [\u00B7\u02D0\u02D1\u0387\u0640\u0E46\u0EC6\u3005\u3031-\u3035\u309D-\u309E\u30FC-\u30FE]

-

-%%

-

-

-/* white space within a tag */

-<ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE, ST_PI, ST_XML_PI_EQUALS, ST_XML_PI_ATTRIBUTE_NAME, ST_XML_PI_ATTRIBUTE_VALUE, ST_XML_DECLARATION, ST_XML_DOCTYPE_DECLARATION, ST_XML_ELEMENT_DECLARATION, ST_XML_ATTLIST_DECLARATION, ST_XML_DECLARATION_CLOSE, ST_XML_DOCTYPE_ID_PUBLIC, ST_XML_DOCTYPE_ID_SYSTEM, ST_XML_DOCTYPE_EXTERNAL_ID,ST_DHTML_ATTRIBUTE_NAME,ST_DHTML_EQUALS,ST_DHTML_ATTRIBUTE_VALUE,ST_DHTML_TAG_CLOSE> {S}* {

-	if(Debug.debugTokenizer)

-		dump("white space");//$NON-NLS-1$

-        return WHITE_SPACE;

-}

-

-// BEGIN REGULAR XML

-/* handle opening a new tag almost anywhere */

-<YYINITIAL, ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_DECLARATION, ST_XML_ATTRIBUTE_VALUE> {genericTagOpen} {

-	if(Debug.debugTokenizer)

-		dump("\nstart tag open");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_NAME;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-        yybegin(ST_XML_TAG_NAME);

-        return XML_TAG_OPEN;

-}

-

-/* unquoted */

-

-<YYINITIAL, ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE, ST_XML_DECLARATION> {genericEndTagOpen} {

-	if(Debug.debugTokenizer)

-		dump("\nend tag open");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_NAME;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-        yybegin(ST_XML_TAG_NAME);

-        return XML_END_TAG_OPEN;

-}

-/* the tag's name was found, start scanning for attributes */

-<ST_XML_TAG_NAME> {Name} {

-	if(Debug.debugTokenizer)

-		dump("tag name");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_EQUALS;

-        yybegin(ST_XML_ATTRIBUTE_NAME);

-        return XML_TAG_NAME;

-}

-/* another attribute name was found, resume looking for the equals sign */

-<ST_XML_ATTRIBUTE_NAME, ST_XML_EQUALS> {Name} {

-	if(Debug.debugTokenizer)

-		dump("attr name");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-        yybegin(ST_XML_EQUALS);

-        return XML_TAG_ATTRIBUTE_NAME;

-}

-/* an equal sign was found, what's next is the value */

-<ST_XML_EQUALS> {Eq} {

-	if(Debug.debugTokenizer)

-		dump("equals");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-        yybegin(ST_XML_ATTRIBUTE_VALUE);

-        return XML_TAG_ATTRIBUTE_EQUALS;

-}

-/* the value was found, look for the next name */

-/* allow for unbalanced quotes, mostly a duplicate of the AttValue rule */

-<ST_XML_ATTRIBUTE_VALUE> {AttValue} | ([\'\"]([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )* ) {

-	if(Debug.debugTokenizer)

-		dump("attr value");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_EQUALS;

-        yybegin(ST_XML_ATTRIBUTE_NAME);

-        return XML_TAG_ATTRIBUTE_VALUE;

-}

-

-

-/* the tag's close was found */

-<ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE> {genericTagClose} {

-	if(Debug.debugTokenizer)

-		dump("tag close");//$NON-NLS-1$

-	fEmbeddedHint = UNDEFINED;

-	if(isBlockMarker()) {

-		fEmbeddedHint = getBlockMarkerContext();

-		fEmbeddedPostState = ST_BLOCK_TAG_SCAN;

-        	yybegin(ST_BLOCK_TAG_SCAN);

-	}

-	else

-        	yybegin(YYINITIAL);

-        return XML_TAG_CLOSE;

-}

-/* the tag's close was found, but the tag doesn't need a matching end tag */

-<ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE> {genericEmptyTagClose} {

-        yybegin(YYINITIAL);

-	fEmbeddedHint = UNDEFINED;

-	if(Debug.debugTokenizer)

-		dump("empty tag close");//$NON-NLS-1$

-        return XML_EMPTY_TAG_CLOSE;

-}

-

-<ST_XML_TAG_NAME> [^</>\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\u4E00-\u9FA5\u3007\u3021-\u3029]* {

-	if(Debug.debugTokenizer)

-		dump("inappropriate tag name");//$NON-NLS-1$

-	yybegin(YYINITIAL);

-        return XML_CONTENT;

-}

-

-// END REGULAR XML

-

-

-// XML Comments

-

-<YYINITIAL, ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE, ST_XML_DECLARATION> {CommentStart} {

-	if(Debug.debugTokenizer)

-		dump("\ncomment start");//$NON-NLS-1$

-	fEmbeddedHint = XML_COMMENT_TEXT;

-	fEmbeddedPostState = ST_XML_COMMENT;

-	yybegin(ST_XML_COMMENT);

-	return XML_COMMENT_OPEN;

-}

-<ST_XML_COMMENT> .|\r|\n {

-	if(Debug.debugTokenizer)

-		dump("comment content");//$NON-NLS-1$

-	return scanXMLCommentText();

-}

-

-<ST_XML_COMMENT_END> {CommentEnd} {

-	if(Debug.debugTokenizer)

-		dump("comment end");//$NON-NLS-1$

-	fEmbeddedHint = UNDEFINED;

-	yybegin(YYINITIAL);

-	return XML_COMMENT_CLOSE;

-}

-

-// XML misc

-

-{CDStart} {

-	if(Debug.debugTokenizer)

-		dump("\nCDATA start");//$NON-NLS-1$

-	fStateStack.push(yystate());

-	yybegin(ST_CDATA_TEXT);

-	return XML_CDATA_OPEN;

-}

-<ST_CDATA_TEXT> .|\r|\n {

-	if(Debug.debugTokenizer)

-		dump("CDATA text");//$NON-NLS-1$

-	fEmbeddedHint = XML_CDATA_TEXT;

-	fEmbeddedPostState = ST_CDATA_TEXT;

-	String blockContext = doBlockScan("]]>", XML_CDATA_TEXT, ST_CDATA_END);//$NON-NLS-1$

-	if(blockContext == XML_CDATA_TEXT)

-		yybegin(ST_CDATA_END);

-	return blockContext;

-}

-<ST_CDATA_END> {CDEnd} {

-	if(Debug.debugTokenizer)

-		dump("CDATA end");//$NON-NLS-1$

-	yybegin(fStateStack.pop());

-	return XML_CDATA_CLOSE;

-}

-

-<YYINITIAL> {PEReference} {

-	if(Debug.debugTokenizer)

-		dump("\nPEReference");//$NON-NLS-1$

-	return XML_PE_REFERENCE;

-}

-<YYINITIAL> {CharRef} {

-	if(Debug.debugTokenizer)

-		dump("\nCharRef");//$NON-NLS-1$

-	return XML_CHAR_REFERENCE;

-}

-<YYINITIAL> {EntityRef} {

-	if(Debug.debugTokenizer)

-		dump("\nEntityRef");//$NON-NLS-1$

-	return XML_ENTITY_REFERENCE;

-}

-

-<YYINITIAL> {PIstart} {

-	if(Debug.debugTokenizer)

-		dump("\nprocessing instruction start");//$NON-NLS-1$

-	yybegin(ST_PI);

-        return XML_PI_OPEN;

-}

-// the next three are order dependent

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

-	if(Debug.debugTokenizer)

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

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_EQUALS;

-        yybegin(ST_XML_PI_ATTRIBUTE_NAME);

-        return XML_TAG_NAME;

-}

-<ST_PI> ([iI][mM][pP][oO][rR][tT]{S}*) {

-	if(Debug.debugTokenizer)

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

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_EQUALS;

-        yybegin(ST_DHTML_ATTRIBUTE_NAME);

-        return XML_TAG_NAME;

-}

-<ST_PI> {Name} {

-	if(Debug.debugTokenizer)

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

-	fEmbeddedHint = XML_CONTENT;

-        yybegin(ST_PI_WS);

-        return XML_TAG_NAME;

-}

-<ST_PI_WS> {S}+ {

-        yybegin(ST_PI_CONTENT);

-        return WHITE_SPACE;

-}

-<ST_PI, ST_PI_WS> \?> {

-	if(Debug.debugTokenizer)

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

-	fEmbeddedHint = UNDEFINED;

-        yybegin(YYINITIAL);

-        return XML_PI_CLOSE;

-}

-<ST_PI_CONTENT> . {

-	// block scan until close is found

-	return doScan("?>", false, XML_PI_CONTENT, ST_XML_PI_TAG_CLOSE, ST_XML_PI_TAG_CLOSE);

-}

-<ST_PI_CONTENT,ST_XML_PI_TAG_CLOSE> \?> {

-		// ended with nothing inside

-		fEmbeddedHint = UNDEFINED;

-        yybegin(YYINITIAL);

-        return XML_PI_CLOSE;

-}

-<ST_XML_PI_ATTRIBUTE_NAME, ST_XML_PI_EQUALS> {Name} {

-	if(Debug.debugTokenizer)

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

-        yybegin(ST_XML_PI_EQUALS);

-        return XML_TAG_ATTRIBUTE_NAME;

-}

-<ST_XML_PI_EQUALS> {Eq} {

-	if(Debug.debugTokenizer)

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

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-        yybegin(ST_XML_PI_ATTRIBUTE_VALUE);

-        return XML_TAG_ATTRIBUTE_EQUALS;

-}

-/* the value was found, look for the next name */

-<ST_XML_PI_ATTRIBUTE_VALUE> {AttValue} | ([\'\"]([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )* ) {

-	if(Debug.debugTokenizer)

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

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_EQUALS;

-        yybegin(ST_XML_PI_ATTRIBUTE_NAME);

-        return XML_TAG_ATTRIBUTE_VALUE;

-}

-/* the PI's close was found */

-<ST_XML_PI_EQUALS, ST_XML_PI_ATTRIBUTE_NAME, ST_XML_PI_ATTRIBUTE_VALUE> {PIend} {

-	if(Debug.debugTokenizer)

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

-	fEmbeddedHint = UNDEFINED;

-        yybegin(YYINITIAL);

-        return XML_PI_CLOSE;

-}

-// DHTML

-<ST_DHTML_ATTRIBUTE_NAME, ST_DHTML_EQUALS> {Name} {

-	if(Debug.debugTokenizer)

-		dump("DHTML processing instruction attribute name");//$NON-NLS-1$

-        yybegin(ST_DHTML_EQUALS);

-        return XML_TAG_ATTRIBUTE_NAME;

-}

-<ST_DHTML_EQUALS> {Eq} {

-	if(Debug.debugTokenizer)

-		dump("DHTML processing instruction '='");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;

-	fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;

-        yybegin(ST_DHTML_ATTRIBUTE_VALUE);

-        return XML_TAG_ATTRIBUTE_EQUALS;

-}

-/* the value was found, look for the next name */

-<ST_DHTML_ATTRIBUTE_VALUE> {AttValue} | ([\'\"]([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )* ) {

-	if(Debug.debugTokenizer)

-		dump("DHTML processing instruction attribute value");//$NON-NLS-1$

-	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;

-	fEmbeddedPostState = ST_XML_EQUALS;

-        yybegin(ST_DHTML_ATTRIBUTE_NAME);

-        return XML_TAG_ATTRIBUTE_VALUE;

-}

-/* The DHTML PI's close was found */

-<ST_DHTML_EQUALS, ST_DHTML_ATTRIBUTE_NAME, ST_DHTML_ATTRIBUTE_VALUE> [/]*> {

-	if(Debug.debugTokenizer)

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

-	fEmbeddedHint = UNDEFINED;

-        yybegin(YYINITIAL);

-        return XML_PI_CLOSE;

-}

-

-// XML declarations

-

-<YYINITIAL, ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE> {genericTagOpen}! {

-	fStateStack.push(yystate());

-	if(Debug.debugTokenizer)

-		dump("\ndeclaration start");//$NON-NLS-1$

-        yybegin(ST_XML_DECLARATION);

-	return XML_DECLARATION_OPEN;

-}

-<ST_XML_DECLARATION> [Ee][Ll][Ee][Mm][Ee][Nn][Tt] {

-	if(Debug.debugTokenizer)

-		dump("element");//$NON-NLS-1$

-	yybegin(ST_XML_ELEMENT_DECLARATION);

-	return XML_ELEMENT_DECLARATION;

-}

-<ST_XML_DECLARATION> [Dd][Oo][Cc][Tt][Yy][Pp][Ee] {

-	if(Debug.debugTokenizer)

-		dump("doctype");//$NON-NLS-1$

-	yybegin(ST_XML_DOCTYPE_DECLARATION);

-	return XML_DOCTYPE_DECLARATION;

-}

-<ST_XML_DECLARATION> [Aa][Tt][Tt][Ll][Ii][Ss][Tt] {

-	if(Debug.debugTokenizer)

-		dump("attlist");//$NON-NLS-1$

-	yybegin(ST_XML_ATTLIST_DECLARATION);

-	return XML_ATTLIST_DECLARATION;

-}

-

-// begin DOCTYPE handling procedure

-<ST_XML_DOCTYPE_DECLARATION, ST_XML_DOCTYPE_EXTERNAL_ID, ST_XML_DOCTYPE_ID_SYSTEM, ST_XML_DOCTYPE_ID_PUBLIC, ST_XML_DECLARATION_CLOSE> \[[^\]]*\] {

-	return XML_DOCTYPE_INTERNAL_SUBSET;

-}

-

-<ST_XML_DOCTYPE_DECLARATION> {Name} {

-	if(Debug.debugTokenizer)

-		dump("doctype type");//$NON-NLS-1$

-	yybegin(ST_XML_DOCTYPE_EXTERNAL_ID);

-	return XML_DOCTYPE_NAME;

-}

-<ST_XML_DOCTYPE_EXTERNAL_ID> [Pp][Uu][Bb][Ll][Ii][Cc] {

-	if(Debug.debugTokenizer)

-		dump("doctype external id");//$NON-NLS-1$

-	fEmbeddedHint = XML_DOCTYPE_EXTERNAL_ID_PUBREF;

-	yybegin(ST_XML_DOCTYPE_ID_PUBLIC);

-	return XML_DOCTYPE_EXTERNAL_ID_PUBLIC;

-}

-<ST_XML_DOCTYPE_EXTERNAL_ID> [Ss][Yy][Ss][Tt][Ee][Mm] {

-	if(Debug.debugTokenizer)

-		dump("doctype external id");//$NON-NLS-1$

-	fEmbeddedHint = XML_DOCTYPE_EXTERNAL_ID_SYSREF;

-	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);

-	return XML_DOCTYPE_EXTERNAL_ID_SYSTEM;

-}

-<ST_XML_DOCTYPE_ID_PUBLIC> {AttValue}|{PubidLiteral}|([\'\"]([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )* ) {

-	if(Debug.debugTokenizer)

-		dump("doctype public reference");//$NON-NLS-1$

-	fEmbeddedHint = UNDEFINED;

-	fEmbeddedPostState = YYINITIAL;

-	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);

-	return XML_DOCTYPE_EXTERNAL_ID_PUBREF;

-}

-<ST_XML_DOCTYPE_ID_SYSTEM> {AttValue}|{SystemLiteral}|([\'\"]([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )* ) {

-	if(Debug.debugTokenizer)

-		dump("doctype system reference");//$NON-NLS-1$

-	fEmbeddedHint = UNDEFINED;

-	fEmbeddedPostState = YYINITIAL;

-	yybegin(ST_XML_DECLARATION_CLOSE);

-	return XML_DOCTYPE_EXTERNAL_ID_SYSREF;

-}

-// end DOCTYPE handling

-

-// begin ELEMENT handling procedure

-<ST_XML_ELEMENT_DECLARATION> {AttValue}|{PubidLiteral}|([\'\"]([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )* ) {

-	if(Debug.debugTokenizer)

-		dump("elementdecl name");//$NON-NLS-1$

-	fEmbeddedHint = UNDEFINED;

-	fEmbeddedPostState = YYINITIAL;

-	yybegin(ST_XML_ELEMENT_DECLARATION_CONTENT);

-	return XML_ELEMENT_DECL_NAME;

-}

-<ST_XML_ELEMENT_DECLARATION_CONTENT> [^>]* {

-	if(Debug.debugTokenizer)

-		dump("elementdecl contentspec");//$NON-NLS-1$

-	return XML_ELEMENT_DECL_CONTENT;

-}

-

-<ST_XML_ELEMENT_DECLARATION_CONTENT> {genericTagClose} {

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

-}

-// end ELEMENT handling

-

-// begin ATTLIST handling procedure

-<ST_XML_ATTLIST_DECLARATION> {AttValue}|{PubidLiteral}|([\'\"]([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )* ) {

-	if(Debug.debugTokenizer)

-		dump("attlist name");//$NON-NLS-1$

-	fEmbeddedHint = UNDEFINED;

-	fEmbeddedPostState = YYINITIAL;

-	yybegin(ST_XML_ATTLIST_DECLARATION_CONTENT);

-	return XML_ATTLIST_DECL_NAME;

-}

-<ST_XML_ATTLIST_DECLARATION_CONTENT> [^>]* {

-	if(Debug.debugTokenizer)

-		dump("attlist contentspec");//$NON-NLS-1$

-	return XML_ATTLIST_DECL_CONTENT;

-}

-

-<ST_XML_ATTLIST_DECLARATION_CONTENT> {genericTagClose} {

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

-}

-// end ATTLIST handling

-

-<ST_XML_DECLARATION, ST_XML_DOCTYPE_DECLARATION, ST_XML_DOCTYPE_EXTERNAL_ID, ST_XML_ATTLIST_DECLARATION, ST_XML_ELEMENT_DECLARATION, ST_XML_DECLARATION_CLOSE, ST_XML_DOCTYPE_ID_PUBLIC, ST_XML_DOCTYPE_ID_SYSTEM, ST_XML_DOCTYPE_EXTERNAL_ID> {genericTagClose} {

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

-}

-// end DECLARATION handling

-

-<YYINITIAL> [^<&%]*|[&%]{S}+{Name}[^&%<]*|[&%]{Name}([^;&%<]*|{S}+;*) {

-	if(Debug.debugTokenizer)

-		dump("\nXML content");//$NON-NLS-1$

-	return XML_CONTENT;

-}

-

-

-<ST_BLOCK_TAG_SCAN> .|\r|\n {

-		return doBlockTagScan();

-	}

-

-. {

-	if (Debug.debugTokenizer)

-		System.out.println("!!!unexpected!!!: \"" + yytext() + "\":" + //$NON-NLS-2$//$NON-NLS-1$

-			yychar + "-" + (yychar + yylength()));//$NON-NLS-1$

-	return UNDEFINED;

-}

-

-\040 {

-	if(Debug.debugTokenizer)

-		dump("SPACE");//$NON-NLS-1$

-	return WHITE_SPACE;

-}

-\011 {

-	if(Debug.debugTokenizer)

-		dump("0x9");//$NON-NLS-1$

-	return WHITE_SPACE;

-}

-\015 

-{

-	if(Debug.debugTokenizer)

-		dump("CARRIAGE RETURN");//$NON-NLS-1$

-	return WHITE_SPACE;

-}

-\012 {

-	if(Debug.debugTokenizer)

-		dump("LINE FEED");//$NON-NLS-1$

-	return WHITE_SPACE;

-}

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flex.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flex.cmd
deleted file mode 100644
index 59e811c..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flex.cmd
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo off

-cmd /c flexx.cmd

-cmd /c flexj.cmd

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

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

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

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

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

-cp -v XMLTokenizer.java ../../../../sedmodel/com/ibm/sed/parser/internal

-cp -v JSPTokenizer.java ../../../../sedmodel/com/ibm/sed/parser/internal

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexj.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexj.cmd
deleted file mode 100644
index 22ca1d0..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexj.cmd
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo off

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

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

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexx.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexx.cmd
deleted file mode 100644
index f593622..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexx.cmd
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo off

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

-java -Xmx470000000 -cp d:\JFlex\lib\JFlex.jar;. JFlex.Main XMLTokenizer.jflex -skel skeleton.sse && rm -f XMLTokenizer.java~ XMLTokenizer~ && copy XMLTokenizer.java ..\..\..\..\..\org.eclipse.wst.sse.core.xml\src\com\ibm\sse\model\xml\internal\parser\XMLTokenizer.java

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/skeleton.sse b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/skeleton.sse
deleted file mode 100644
index 32f5285..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/skeleton.sse
+++ /dev/null
@@ -1,351 +0,0 @@
-

-  /** this character denotes the end of file */

-  final public static int YYEOF = -1;

-

-  /** lexical states */

----  lexical states, charmap

-

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

-  };

-

---- isFinal list

-  /** the input device */

-  private java.io.Reader yy_reader;

-

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

-  private int yy_state;

-

-  /** the current lexical state */

-  private int yy_lexical_state = YYINITIAL;

-

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

-      the source of the yytext() string */

-  private char yy_buffer[] = new char[16384];

-

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

-  private int yy_markedPos;

-

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

-  private int yy_pushbackPos;

-

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

-  private int yy_currentPos;

-

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

-  private int yy_startRead;

-

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

-      from input */

-  private int yy_endRead;

-

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

-  private int yyline;

-

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

-  private int yychar;

-

-  /**

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

-   * matched text

-   */

-  // private int yycolumn; 

-

-  /** 

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

-   */

-  // private boolean yy_atBOL;

-

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

-  private boolean yy_atEOF;

-

---- user class code

-

-  /**

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

-   */

---- constructor declaration

-

-

-  /**

-   * 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()!

-   */

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

-}

-

---- yy_doEof

-  /**

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

-   */

---- yylex declaration

-    int yy_input;

-    int yy_action;

-

---- local declarations

-

-    while (true) {

-

---- start admin (line, char, col count)

-      yy_action = -1;

-

-      yy_currentPos = yy_startRead = yy_markedPos;

-

---- start admin (lexstate etc)

-

-      yy_forAction: {

-        while (true) {

-    

-          yy_input = yy_advance();

-

-          if ( yy_input == YYEOF ) break yy_forAction;

-

---- line, col, char count, next transition, isFinal action

-            yy_action = yy_state; 

-            yy_markedPos = yy_currentPos; 

---- line count update

-          }

-

-        }

-      }

-

---- char count update

-

-      switch (yy_action) {    

-

---- actions

-        default: 

-          if (yy_input == YYEOF && yy_startRead == yy_currentPos) {

-            yy_atEOF = true;

---- eofvalue

-          } 

-          else {

---- no match

-          }

-      }

-    }

-  }    

-

---- main

-

-}

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/skeleton.sse.readme b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/skeleton.sse.readme
deleted file mode 100644
index eb89700..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/skeleton.sse.readme
+++ /dev/null
@@ -1,6 +0,0 @@
-The skeleton.sed file contains the modified JFlex 1.2.2 skeleton file with

-changes for use with the tokenizers within the org.eclipse.wst.sse.core.xml and

-org.eclipse.wst.sse.core.jsp plugins.

-

-The skeleton file's method definitions are copied into the generated output

-directly.

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/resources/REC-xml-19980210.zip b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/resources/REC-xml-19980210.zip
deleted file mode 100644
index db14839..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/resources/REC-xml-19980210.zip
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/resources/java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/resources/java
deleted file mode 100644
index 1c33dfc..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/resources/java
+++ /dev/null
@@ -1 +0,0 @@
-nice /opt/IBMJava2-13/bin/java -classpath . $*
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/resources/javac b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/resources/javac
deleted file mode 100644
index d74da77..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/resources/javac
+++ /dev/null
@@ -1 +0,0 @@
-nice /opt/IBMJava2-13/bin/javac -classpath . $*
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/build.xml b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/build.xml
deleted file mode 100644
index 03fc4fe..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/build.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="tokenizer" default="CSSTokenizer">
-	<target name="init" depends="properties">
-		<property name="workspace.dir" value="../.."/>
-		<property name="jflex.jar" value="SedModel/HTMLTokenizer/devel/JFlex/lib/sed-jflex.jar"/>
-		<property name="jflex.maxmemory" value="470000000"/>
-		<property name="jflex.opt" value="-skel SedModel/HTMLTokenizer/devel/skeleton.sse"/>
-	</target>
-
-	<target name="properties" if="eclipse.running">
-		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
-	</target>
-
-	<target name="CSSTokenizer" depends="init">
-		<property name="src.dir" value="SedModel/CSSTokenizer/devel"/>
-		<property name="src.file" value="CSSTokenizer.jflex"/>			
-		<property name="dest.dir" value="org.eclipse.wst.sse.core.css/src/com/ibm/sse/model/css/internal/parser"/>
-		<antcall target="build-tokenizer">
-			<param name="jflex.opt" value=""/>
-		</antcall>
-	</target>
-
-	<target name="XMLTokenizer" depends="init">
-		<property name="src.dir" value="SedModel/HTMLTokenizer/devel"/>
-		<property name="src.file" value="XMLTokenizer"/>			
-		<property name="dest.dir" value="org.eclipse.wst.sse.core.xml/src/com/ibm/sse/model/xml/internal/parser"/>
-		<antcall target="build-tokenizer"/>
-	</target>
-
-	<target name="JSPTokenizer" depends="init">
-		<property name="src.dir" value="SedModel/HTMLTokenizer/devel"/>
-		<property name="src.file" value="JSPTokenizer.jflex"/>			
-		<property name="dest.dir" value="org.eclipse.wst.sse.core.jsp/src/com/ibm/sse/model/jsp/parser/internal"/>
-		<antcall target="build-tokenizer"/>
-	</target>
-
-	<target name="build-tokenizer" depends="init">
-		<antcall target="run-jflex"/>
-		<antcall target="copy"/>
-		<antcall target="clean"/>
-	</target>
-
-	<target name="run-jflex" depends="init">
-		<java classname="JFlex.Main" maxmemory="${jflex.maxmemory}" fork="yes" >
-			<arg line="${src.dir}/${src.file} ${jflex.opt}"/>
-			<classpath>
-				<pathelement location="${jflex.jar}"/>
-			</classpath>
-		</java>
-	</target>
-	
-	<target name="copy" depends="init">
-		<copy todir="${workspace.dir}/${dest.dir}" overwrite="true" verbose="true">
-			<fileset dir="${src.dir}">
-				<include name="*.java"/>
-			</fileset>
-		</copy>
-	</target>
-	
-	<target name="clean" depends="init">
-		<delete verbose="true">
-			<fileset dir="${src.dir}" defaultexcludes="no">
-				<include name="*~"/>
-			</fileset>
-		</delete>
-	</target>
-	
-
-</project>
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.sse.core/README.txt b/bundles/org.eclipse.wst.sse.core/README.txt
deleted file mode 100644
index 4eb3ccf..0000000
--- a/bundles/org.eclipse.wst.sse.core/README.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-The core model of the sse framework. It provides the base document classes,
-builders and parsers.
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.sse.core/build.properties b/bundles/org.eclipse.wst.sse.core/build.properties
deleted file mode 100644
index b57b1fe..0000000
--- a/bundles/org.eclipse.wst.sse.core/build.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-#     Jens Lukowski/Innoopract - initial renaming/restructuring
-#     
-###############################################################################
-source.model.jar = src/
-bin.includes = plugin.xml,\
-               plugin.properties,\
-               model.jar,\
-               .options
-src.includes = DevTimeSupport/,\
-               plugin.properties,\
-               plugin.xml,\
-               model.jar,\
-               .options
diff --git a/bundles/org.eclipse.wst.sse.core/doc/book.css b/bundles/org.eclipse.wst.sse.core/doc/book.css
deleted file mode 100644
index 9278cd8..0000000
--- a/bundles/org.eclipse.wst.sse.core/doc/book.css
+++ /dev/null
@@ -1,106 +0,0 @@
-P.Code {

-	display: block;

-	text-align: left;

-	text-indent: 0.00pt;

-	margin-top: 0.000000pt;

-	margin-bottom: 0.000000pt;

-	margin-right: 0.000000pt;

-	margin-left: 15pt;

-	font-size: 10.000000pt;

-	font-weight: medium;

-	font-style: Regular;

-	color: #4444CC;

-	text-decoration: none;

-	vertical-align: baseline;

-	text-transform: none;

-	font-family: "Courier New";

-}

-H6.CaptionFigColumn {

-	display: block;

-	text-align: left;

-	text-indent: 0.000000pt;

-	margin-top: 3.000000pt;

-	margin-bottom: 11.000000pt;

-	margin-right: 0.000000pt;

-	margin-left: 0.000000pt;

-	font-size: 9.000000pt;

-	font-weight: medium;

-	font-style: Italic;

-	color: #000000;

-	text-decoration: none;

-	vertical-align: baseline;

-	text-transform: none;

-	font-family: "Arial";

-}

-P.Note {

-	display: block;

-	text-align: left;

-	text-indent: 0pt;

-	margin-top: 19.500000pt;

-	margin-bottom: 19.500000pt;

-	margin-right: 0.000000pt;

-	margin-left: 30pt;

-	font-size: 11.000000pt;

-	font-weight: medium;

-	font-style: Italic;

-	color: #000000;

-	text-decoration: none;

-	vertical-align: baseline;

-	text-transform: none;

-	font-family: "Arial";

-}

-EM.UILabel {

-	font-weight: Bold;

-	font-style: Regular;

-	text-decoration: none;

-	vertical-align: baseline;

-	text-transform: none;

-}

-EM.CodeName {

-	font-weight: Bold;

-	font-style: Regular;

-	text-decoration: none;

-	vertical-align: baseline;

-	text-transform: none;

-	font-family:"Courier New";

-}

-

-

-

-

-/* following font face declarations need to be removed for DBCS */

-

-body, h1, h2, h3, h4, h5, h6, p, table, td, caption, th, ul, ol, dl, li, dd, dt {font-family: Arial, Helvetica, sans-serif; color: #000000}

-pre				{ font-family: Courier, monospace}

-

-/* end font face declarations */

-

-/* following font size declarations should be OK for DBCS */

-body, h1, h2, h3, h4, h5, h6, p, table, td, caption, th, ul, ol, dl, li, dd, dt {font-size: 10pt; }

-pre				{ font-size: 10pt}

-

-/* end font size declarations */

-

-body	     { background: #FFFFFF}

-h1           { font-size: 18pt; margin-top: 5; margin-bottom: 1 }	

-h2           { font-size: 14pt; margin-top: 25; margin-bottom: 3 }

-h3           { font-size: 11pt; margin-top: 20; margin-bottom: 3 }

-h4           { font-size: 10pt; margin-top: 20; margin-bottom: 3; font-style: italic }

-p            { margin-top: 10px; margin-bottom: 10px }

-pre	     { margin-left: 6; font-size: 9pt }

-a:link	     { color: #0000FF }

-a:hover	     { color: #000080 }

-a:visited    { text-decoration: underline }

-ul	     { margin-top: 0; margin-bottom: 10 }

-li	     { margin-top: 0; margin-bottom: 0 } 

-li p	     { margin-top: 0; margin-bottom: 0 } 

-ol	     { margin-top: 0; margin-bottom: 10 }

-dl	     { margin-top: 0; margin-bottom: 10 }

-dt	     { margin-top: 0; margin-bottom: 0; font-weight: bold }

-dd	     { margin-top: 0; margin-bottom: 0 }

-strong	     { font-weight: bold}

-em	     { font-style: italic}

-var	     { font-style: italic}

-div.revision { border-left-style: solid; border-left-width: thin; 

-				   border-left-color: #7B68EE; padding-left:5 }

-th	     { font-weight: bold }

diff --git a/bundles/org.eclipse.wst.sse.core/doc/com_ibm_sse_model_builderparticipant.html b/bundles/org.eclipse.wst.sse.core/doc/com_ibm_sse_model_builderparticipant.html
deleted file mode 100644
index 75ad54f..0000000
--- a/bundles/org.eclipse.wst.sse.core/doc/com_ibm_sse_model_builderparticipant.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<!-- default platform documentation stylesheets -->
-<style>@import url("book.css");</style>
-<!-- default schema documentation stylesheets -->
-<style>@import url("schema.css");</style>
-</HEAD>
-<HTML>
-<BODY>
-<H1><CENTER>Structured Builder Participant</CENTER></H1>
-<p></p>
-<h6 class=CaptionFigColumn id=header>Identifier: </h6>org.eclipse.wst.sse.core.builderparticipant<p></p>
-<h6 class=CaptionFigColumn id=header>Since: </h6>3.0
-<p></p>
-
-<p>
-<h6 class=CaptionFigColumn id=header>Description: </h6>Allows for the contribution of participants to the Structured building process.</p>
-<p><h6 class=CaptionFigColumn id=header>Configuration Markup:</h6></p>
-<p class=code id=dtd>&lt;!ELEMENT <a name="e.extension">extension</a> EMPTY&gt;</p>
-<p class=code id=dtd>&lt;!ATTLIST extension</p>
-<p class=code id=dtdAttlist>point&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
-<p></p>
-<ul class=ConfigMarkup id=attlistDesc>
-</ul>
-<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.participant">participant</a> EMPTY&gt;</p>
-<p class=code id=dtd>&lt;!ATTLIST participant</p>
-<p class=code id=dtdAttlist>class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>contentType&nbsp;CDATA #REQUIRED&gt;</p>
-<p></p>
-<p class=ConfigMarkup id=elementDesc>
-A participant to be called during the build process.  Participants are notified before and after the Structured Builder runs on a project, given the resource deltas during incremental builds and told which resources to build during a full rebuild.</p>
-<br>
-<ul class=ConfigMarkup id=attlistDesc>
-<li><b>class</b> - Classname of the participant.  Must implement org.eclipse.wst.sse.core.builder.IBuilderParticipant.</li>
-<li><b>contentType</b> - A Content Type Identifier ID.  The participant will only be called for resources and deltas with this content type.  More than one may be specified per element, but there is no guarantee about the relationship between the number of instances and the content types.</li>
-</ul>
-<br><h6 class=CaptionFigColumn id=header>Examples: </h6><pre>
-<p class=code id=tag>&lt;extension point=<p class=code id=cstring>&quot;org.eclipse.wst.sse.core.builderparticipant&quot;</p><p class=code id=tag> id=<p class=code id=cstring>&quot;com.example.doctypeFinder&quot;</p><p class=code id=tag> name=<p class=code id=cstring>&quot;XML DOCTYPE reference tracker&quot;</p><p class=code id=tag> &gt;</p>
- <p class=code id=tag>&lt;participant contentType=<p class=code id=cstring>&quot;contenttype.xml&quot;</p><p class=code id=tag> class=<p class=code id=cstring>&quot;com.example.builder.DoctypeParticipant&quot;</p><p class=code id=tag>/&gt;</p>
-<p class=code id=tag>&lt;/extension&gt;</p>
-</pre>
-<p></p>
-
-<br>
-<p class=note id=copyright>
-</p>
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.wst.sse.core/doc/schema.css b/bundles/org.eclipse.wst.sse.core/doc/schema.css
deleted file mode 100644
index 4efbf26..0000000
--- a/bundles/org.eclipse.wst.sse.core/doc/schema.css
+++ /dev/null
@@ -1,66 +0,0 @@
-H6.CaptionFigColumn#header {

-	font-size:16px; 

-	display:inline

-}

-

-P.Note#copyright {

-	font-size: smaller; 

-	font-style: normal;

-	color: #336699; 

-	display:inline;

-	margin-top: 3.000000pt;

-	margin-bottom: 11.000000pt;

-	margin-right: 0.000000pt;

-	margin-left: 0.000000pt;

-}

-

-P.Code#dtd {

-	color: #800000; 

-	margin-top: 0.000000pt;

-	margin-bottom: 0.000000pt;

-	margin-right: 0.000000pt;

-	margin-left: 10.000000pt;

-}

-

-P.Code#dtdAttlist {

-	color: #800000; 

-	margin-top: 0.000000pt;

-	margin-bottom: 0.000000pt;

-	margin-right: 0.000000pt;

-	margin-left: 20.000000pt;

-}

-

-P.Code#tag {

-	color: #000080; 

-	display:inline;

-	margin-top: 0.000000pt;

-	margin-bottom: 0.000000pt;

-	margin-right: 0.000000pt;

-	margin-left: 0.000000pt;

-}

-

-P.Code#cstring {

-	color: #008000; 

-	display:inline;

-	margin-top: 0.000000pt;

-	margin-bottom: 0.000000pt;

-	margin-right: 0.000000pt;

-	margin-left: 0.000000pt;	

-}

-

-.ConfigMarkup#elementDesc {

-	color: black;

-	margin-top: 0.000000pt;

-	margin-bottom: 0.000000pt;

-	margin-right: 0.000000pt;

-	margin-left: 10.000000pt;

-}

-

-.ConfigMarkup#attlistDesc {

-	color: black;

-	margin-top: 0.000000pt;

-	margin-bottom: 0.000000pt;

-	margin-right: 0.000000pt;

-	margin-left: 32.000000pt;

-}

-

diff --git a/bundles/org.eclipse.wst.sse.core/plugin.properties b/bundles/org.eclipse.wst.sse.core/plugin.properties
deleted file mode 100644
index 5ea54cc..0000000
--- a/bundles/org.eclipse.wst.sse.core/plugin.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-#     Jens Lukowski/Innoopract - initial renaming/restructuring
-#     
-###############################################################################
-providerName=Eclipse.org
-pluginName=Structured Text Model
-nlFeatureName=Structured Text Model NL Support
-# extension names
-Adapt_On_Create_Factory_Extension.name=Adapt On Create Factory Extension
-Document_Types_Extension.name=Document Types Extension
-JSP_Embedded_Content_Type_Handler_Extension.name=JSP Embedded Content Type Handler Extension
-Content_Type_Factory_Contribution_Extension.name=Content Type Factory Contribution Extension
-CSS_Profile_Extension.name=CSS Profile Extension
-Comment_Element_Handler_Extension.name=Comment Element Handler Extension
-Model_Handler_Extension.name=Model Handler Extension
-SDMB.name=Structured Document and Model Builder
-Format_Processors_Extension_Point.name=Format Processors Extension Point
-Structured_Builder_Delegate_Extension_Point.name=Structured Builder Delegate Extension Point
-Structured_Sources_Task_Extension.name=Structured Sources Task
-###############################################################################
-# The following property keys maybe unused. Commented out on 12/7/2004. Uncomment if needed.
-#JSP_Embedded_Content_Type_Handler_Extension_Point.name=JSP Embedded Content Type Handler Extension Point
-#Structured_Builder_Participant_Extension.name=Structured Builder Participant Extension
diff --git a/bundles/org.eclipse.wst.sse.core/plugin.xml b/bundles/org.eclipse.wst.sse.core/plugin.xml
deleted file mode 100644
index f62c25e..0000000
--- a/bundles/org.eclipse.wst.sse.core/plugin.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.wst.sse.core"
-   name="%pluginName"
-   version="1.0.0"
-   provider-name="%providerName"
-   class="org.eclipse.wst.sse.core.internal.SSECorePlugin">
-
-   <runtime>
-      <library name="model.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.core.resources"/>
-      
-		<!-- need to re-export org.eclipse.text since our API depends on it, 
-			such as IStructuredDocument extends IDocument 
-		-->
-      <import plugin="org.eclipse.text" export="true"/>
-
-		<!-- need to re-export emf.common since our API depends on it, 
-			such as StructuredTextUndoManager's getCommmand method returns an 
-			emf.common.Command
-		-->
-      <import plugin="org.eclipse.emf.common" export="true"/>
-      
-      <import plugin="org.eclipse.wst.common.contentmodel"/>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.eclipse.wst.common.encoding"/>
-      <import plugin="org.eclipse.core.filebuffers"/>
-      <import plugin="org.eclipse.wst.xml.uriresolver"/>
-   </requires>
-
-
-<!-- deprecated -->
-   <extension-point id="adaptOnCreateFactory" name="%Adapt_On_Create_Factory_Extension.name"/>
-   <extension-point id="documentTypes" name="%Document_Types_Extension.name"/>
-   <extension-point id="embeddedTypeHandler" name="%JSP_Embedded_Content_Type_Handler_Extension.name"/>
-   <extension-point id="contentTypeFactoryContribution" name="%Content_Type_Factory_Contribution_Extension.name"/>
-<!-- I commented out ... clients should just use the normal platform way of registering these 
-		adapterFactories. At worst, they'd need a small plugin with 'startup' specified ... but that's 
-		better than us getting hit with the performance impact (of loading plugins and pre-reqs, etc.). 
-		<extension-point id="uriResolverAdapterFactory" name="Resource Adapter Factory for Creating URIResolvers"/>
-	-->
-   <extension-point id="cssprofile" name="%CSS_Profile_Extension.name"/>
-   <extension-point id="commentElementHandler" name="%Comment_Element_Handler_Extension.name"/>
-<!-- this plug-in provides support for this extension point -->
-   <extension-point id="modelHandler" name="%Model_Handler_Extension.name"/>
-   <extension-point id="formatProcessors" name="%Format_Processors_Extension_Point.name" schema="schema/formatProcessors.exsd"/>
-
-<!-- not for use by clients -->
-   <extension-point id="builderdelegate" name="%Structured_Builder_Delegate_Extension_Point.name"/>
-
-   <extension point="org.eclipse.core.resources.builders"
-       id="structuredbuilder"
-       name="%SDMB.name">
-      <builder
-           hasNature="false">
-         <run
-            class="org.eclipse.wst.sse.core.internal.builder.StructuredDocumentBuilder"
-			>
-         </run>
-      </builder>
-   </extension>
-<!-- define our task marker type -->
-	<extension id="task" name="%Structured_Sources_Task_Extension.name" point="org.eclipse.core.resources.markers">
-    	<super type="org.eclipse.core.resources.taskmarker"/> 
-    	<persistent value="true"/>
-	</extension>
-</plugin>
diff --git a/bundles/org.eclipse.wst.sse.core/schema/builderparticipant.exsd b/bundles/org.eclipse.wst.sse.core/schema/builderparticipant.exsd
deleted file mode 100644
index 80635dd..0000000
--- a/bundles/org.eclipse.wst.sse.core/schema/builderparticipant.exsd
+++ /dev/null
@@ -1,118 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>

-<!-- Schema file written by PDE -->

-<schema targetNamespace="org.eclipse.wst.sse.core">

-<annotation>

-      <appInfo>

-         <meta.schema plugin="org.eclipse.wst.sse.core" id="builderparticipant" name="Structured Builder Participant"/>

-      </appInfo>

-      <documentation>

-         Allows for the contribution of participants to the Structured building process.

-      </documentation>

-   </annotation>

-

-   <element name="extension">

-      <complexType>

-         <sequence>

-            <element ref="participant"/>

-         </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="participant">

-      <annotation>

-         <documentation>

-            A participant to be called during the build process.  Participants are notified before and after the Structured Builder runs on a project, given the resource deltas during incremental builds and told which resources to build during a full rebuild.

-         </documentation>

-      </annotation>

-      <complexType>

-         <attribute name="class" type="string" use="required">

-            <annotation>

-               <documentation>

-                  Classname of the participant.  Must implement org.eclipse.wst.sse.core.builder.IBuilderParticipant.

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="contentType" type="string" use="required">

-            <annotation>

-               <documentation>

-                  A Content Type Identifier ID.  The participant will only be called for resources and deltas with this content type.  More than one may be specified per element, but there is no guarantee about the relationship between the number of instances and the content types.

-               </documentation>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <annotation>

-      <appInfo>

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

-      </appInfo>

-      <documentation>

-         3.0

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

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

-      </appInfo>

-      <documentation>

-         &lt;pre&gt;

-&lt;extension point=&quot;org.eclipse.wst.sse.core.builderparticipant&quot; id=&quot;com.example.doctypeFinder&quot; name=&quot;XML DOCTYPE reference tracker&quot; &gt;

- &lt;participant contentType=&quot;contenttype.xml&quot; class=&quot;com.example.builder.DoctypeParticipant&quot;/&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>

-         

-      </documentation>

-   </annotation>

-

-</schema>

diff --git a/bundles/org.eclipse.wst.sse.core/schema/formatProcessors.exsd b/bundles/org.eclipse.wst.sse.core/schema/formatProcessors.exsd
deleted file mode 100644
index 9756416..0000000
--- a/bundles/org.eclipse.wst.sse.core/schema/formatProcessors.exsd
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>

-<!-- Schema file written by PDE -->

-<schema targetNamespace="org.eclipse.wst.sse.core">

-<annotation>

-      <appInfo>

-         <meta.schema plugin="org.eclipse.wst.sse.core" id="formatProcessors" name="%Format_Processors_Extension.name"/>

-      </appInfo>

-      <documentation>

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

-      </documentation>

-   </annotation>

-

-   <element name="extension">

-      <complexType>

-         <sequence>

-            <element ref="processor"/>

-         </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="processor">

-      <complexType>

-         <attribute name="class" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="contentTypeId" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <annotation>

-      <appInfo>

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

-      </appInfo>

-      <documentation>

-         [Enter the first release in which this extension point appears.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

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

-      </appInfo>

-      <documentation>

-         &lt;extension point=&quot;org.eclipse.wst.sse.core.formatProcessors&quot;&gt;

-    &lt;processor

-        class=&quot;org.eclipse.wst.sse.core.xml.format.FormatProcessorXML&quot;

-        contentTypeId=&quot;org.eclipse.core.runtime.xml&quot;&gt;

-    &lt;/processor&gt;

-&lt;/extension&gt;

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

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

-      </appInfo>

-      <documentation>

-         [Enter API information here.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

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

-      </appInfo>

-      <documentation>

-         [Enter information about supplied implementation of this extension point.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

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

-      </appInfo>

-      <documentation>

-         

-      </documentation>

-   </annotation>

-

-</schema>

diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/AbstractAdapterFactory.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/AbstractAdapterFactory.java
deleted file mode 100644
index 4aa3d3e..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/AbstractAdapterFactory.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-/**
- * An abstract implementation of AdapterFactory that uses itself as the key.
- * Subclass to override behavior.
- */
-abstract public class AbstractAdapterFactory implements AdapterFactory {
-
-	protected Object adapterKey;
-	protected boolean shouldRegisterAdapter = true;
-
-	public AbstractAdapterFactory() {
-		// default constructor sets the adapterKey to the adapter factory
-		// itself (i.e. "this")
-		adapterKey = this;
-	}
-
-	public AbstractAdapterFactory(Object adapterKey, boolean registerAdapters) {
-		this.adapterKey = adapterKey;
-		this.shouldRegisterAdapter = registerAdapters;
-	}
-
-	public INodeAdapter adapt(INodeNotifier target) {
-		// target was null when all text deleted?
-		if (target == null)
-			return null;
-		INodeAdapter adapter = target.getExistingAdapter(adapterKey);
-		return adapter != null ? adapter : adaptNew(target);
-	}
-
-	public INodeAdapter adaptNew(INodeNotifier target) {
-		INodeAdapter adapter = createAdapter(target);
-		if (adapter == null)
-			return adapter;
-		if (shouldRegisterAdapter)
-			target.addAdapter(adapter);
-		return adapter;
-	}
-
-	/**
-	 * Subclasses should normally implement their own 'copy' method. By
-	 * default, we'll return the same instance, for convenience of those using
-	 * singleton factories.
-	 */
-	public AdapterFactory copy() {
-		return this;
-	}
-
-	abstract protected INodeAdapter createAdapter(INodeNotifier target);
-
-	public boolean isFactoryForType(Object type) {
-		return type.equals(adapterKey);
-	}
-
-	public void release() {
-		// default is to do nothing
-	}
-
-	public void setAdapterKey(Object key) {
-		if (adapterKey != null)
-			throw new IllegalAccessError("INodeAdapter Key cannot be set more than once."); //$NON-NLS-1$
-		adapterKey = key;
-	}
-
-	public void setRegisterAdapters(boolean flag) {
-		shouldRegisterAdapter = flag;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/AbstractModelLoader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/AbstractModelLoader.java
deleted file mode 100644
index bdd70dc..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/AbstractModelLoader.java
+++ /dev/null
@@ -1,479 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.encoding.EncodingMemento;
-import org.eclipse.wst.common.encoding.EncodingRule;
-import org.eclipse.wst.sse.core.document.IDocumentLoader;
-import org.eclipse.wst.sse.core.document.IEncodedDocument;
-import org.eclipse.wst.sse.core.internal.Logger;
-import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument;
-import org.eclipse.wst.sse.core.parser.BlockMarker;
-import org.eclipse.wst.sse.core.parser.BlockTagParser;
-import org.eclipse.wst.sse.core.parser.RegionParser;
-import org.eclipse.wst.sse.core.parser.StructuredDocumentRegionHandler;
-import org.eclipse.wst.sse.core.parser.StructuredDocumentRegionHandlerExtension;
-import org.eclipse.wst.sse.core.parser.StructuredDocumentRegionParser;
-import org.eclipse.wst.sse.core.parser.StructuredDocumentRegionParserExtension;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.rules.StructuredTextPartitioner;
-import org.eclipse.wst.sse.core.util.Assert;
-
-
-/**
- * This class reads a file and creates an Structured Model.
- */
-public abstract class AbstractModelLoader implements ModelLoader, IModelLoaderExtension {
-	protected static final int encodingNameSearchLimit = 1000;
-
-	private static long computeMem() {
-		for (int i = 0; i < 5; i++) {
-			System.gc();
-			System.runFinalization();
-		}
-		return Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
-	}
-
-	private boolean DEBUG = false;
-	protected IDocumentLoader documentLoaderInstance;
-
-	/**
-	 * AbstractLoader constructor also initializes encoding converter/mapper
-	 */
-	public AbstractModelLoader() {
-		super();
-	}
-
-	protected void addFactories(IStructuredModel model, List factoryList) {
-		Assert.isNotNull(model);
-		IFactoryRegistry registry = model.getFactoryRegistry();
-		Assert.isNotNull(registry);
-		if (factoryList != null) {
-			Iterator iterator = factoryList.iterator();
-			while (iterator.hasNext()) {
-				AdapterFactory factory = (AdapterFactory) iterator.next();
-				registry.addFactory(factory);
-			}
-		}
-	}
-
-	/**
-	 * This method should perform all the model initialization required before
-	 * it contains content, namely, it should call newModel, the
-	 * createNewStructuredDocument(), then add those adapter factories which
-	 * must be set before content is applied. This method should be called by
-	 * "load" method. (this is tentative API)
-	 */
-	public IStructuredModel createModel() {
-		documentLoaderInstance = null;
-		IStructuredModel model = newModel();
-		IEncodedDocument structuredDocument = getDocumentLoader().createNewStructuredDocument();
-		if (structuredDocument instanceof IStructuredDocument) {
-			model.setStructuredDocument((IStructuredDocument) structuredDocument);
-			addFactories(model, getAdapterFactories());
-			//
-			initEmbeddedType(model);
-			// For types with propagating adapters, its important
-			// that the propagating adapter be in place before the contents
-			// are set.
-			preLoadAdapt(model);
-		}
-		return model;
-	}
-
-	public IStructuredModel createModel(IStructuredDocument structuredDocument, String baseLocation) {
-		documentLoaderInstance = null;
-		IStructuredModel model = newModel();
-		model.setBaseLocation(baseLocation);
-		
-		addFactories(model, getAdapterFactories());
-		// For types with propagating adapters, it's important
-		// that the propagating adapter be in place before the contents
-		// are set.
-		preLoadAdapt(model);
-
-		model.setStructuredDocument(structuredDocument);
-		//
-		initEmbeddedType(model);
-
-		return model;
-	}
-
-	/**
-	 * This method is used for cloning models.
-	 */
-	public IStructuredModel createModel(IStructuredModel oldModel) {
-		documentLoaderInstance = null;
-		IStructuredModel newModel = newModel();
-		IStructuredDocument oldStructuredDocument = oldModel.getStructuredDocument();
-		IStructuredDocument newStructuredDocument = oldStructuredDocument.newInstance();
-		newModel.setStructuredDocument(newStructuredDocument);
-		// NOTE: we DO NOT simply add the standard ones to the new model
-		// addFactories(newModel, getAdapterFactories());
-		// Now, we take the opportunity to add Factories from the oldModel's
-		// registry to the new model's registry .. if they do not already
-		// exist there.
-		duplicateFactoryRegistry(newModel, oldModel);
-		//addFactories(newModel, oldModel);
-		initEmbeddedType(oldModel, newModel);
-		// For types with propagating adapters, its important
-		// that the propagating adapter be in place before the contents
-		// are set.
-		preLoadAdapt(newModel);
-		return newModel;
-	}
-
-	private void duplicateFactoryRegistry(IStructuredModel newModel, IStructuredModel oldModel) {
-		List oldAdapterFactories = oldModel.getFactoryRegistry().getFactories();
-		List newAdapterFactories = new ArrayList();
-		Iterator oldListIterator = oldAdapterFactories.iterator();
-		while (oldListIterator.hasNext()) {
-			AdapterFactory oldAdapterFactory = (AdapterFactory) oldListIterator.next();
-			// now "clone" the adapterfactory
-			newAdapterFactories.add(oldAdapterFactory.copy());
-		}
-		// now that we have the "cloned" list, add to new model
-		addFactories(newModel, newAdapterFactories);
-	}
-
-	/**
-	 * This method must return those factories which must be attached to the
-	 * structuredModel before content is applied.
-	 */
-	public List getAdapterFactories() {
-		// abstract method returns none
-		return new ArrayList(0);
-	}
-
-	abstract public IDocumentLoader getDocumentLoader();
-
-	/**
-	 * Method initEmbeddedType. Nothing to do here in super class.
-	 * 
-	 * @param model
-	 */
-	protected void initEmbeddedType(IStructuredModel model) {
-	}
-
-	/**
-	 * Method initEmbeddedType. Nothing to do here in super class.
-	 * 
-	 * @param oldModel
-	 * @param newModel
-	 */
-	protected void initEmbeddedType(IStructuredModel oldModel, IStructuredModel newModel) {
-	}
-
-	public void load(IFile file, IStructuredModel model) throws IOException, CoreException {
-		IEncodedDocument structuredDocument = model.getStructuredDocument();
-		if (file == null)
-			structuredDocument = getDocumentLoader().createNewStructuredDocument();
-		else
-			structuredDocument = getDocumentLoader().createNewStructuredDocument(file);
-
-		// TODO: need to straighten out IEncodedDocument mess
-		if (structuredDocument instanceof IStructuredDocument)
-			transformInstance(model.getStructuredDocument(), (IStructuredDocument) structuredDocument);
-		else
-			model.getStructuredDocument().set(structuredDocument.get());
-
-		// original hack
-		//model.setStructuredDocument((IStructuredDocument)
-		// structuredDocument);
-		//((IStructuredDocument) structuredDocument).fireNewDocument(this);
-		documentLoaderInstance = null;
-		//technicq of future
-		//model.setStructuredDocument((IStructuredDocument)
-		// structuredDocument);
-		//documentLoaderInstance = null;
-	}
-
-	public void load(InputStream inputStream, IStructuredModel model, EncodingRule encodingRule) throws UnsupportedEncodingException, java.io.IOException {
-		// note we don't open the stream, so we don't close it
-		IEncodedDocument structuredDocument = model.getStructuredDocument();
-		if (inputStream == null) {
-			structuredDocument = getDocumentLoader().createNewStructuredDocument();
-		} else {
-			// assume's model has been initialized already with base location
-			structuredDocument = getDocumentLoader().createNewStructuredDocument(model.getBaseLocation(), inputStream, encodingRule);
-			// TODO: model's not designed for this!
-			// we want to move to this "set" method, but the 'fire' was needed
-			// as
-			// a work around for strucutredModel not handling 'set' right, but
-			// that 'fireNewDocument' method was causing unbalance
-			// "aboutToChange" and "changed"
-			// events.
-			//			model.setStructuredDocument((IStructuredDocument)
-			// structuredDocument);
-			//			((IStructuredDocument)
-			// structuredDocument).fireNewDocument(this);
-			model.getStructuredDocument().set(structuredDocument.get());
-
-		}
-		documentLoaderInstance = null;
-
-	}
-
-	/**
-	 * deprecated -- use EncodingRule form
-	 */
-	synchronized public void load(InputStream inputStream, IStructuredModel model, String encodingName, String lineDelimiter) throws UnsupportedEncodingException, java.io.IOException {
-		// note we don't open the stream, so we don't close it
-		// TEMP work around to maintain previous function,
-		// until everyone can change to EncodingRule.FORCE_DEFAULT
-		if (encodingName != null && encodingName.trim().length() == 0) {
-			// redirect to new method
-			load(inputStream, model, EncodingRule.FORCE_DEFAULT);
-		} else {
-			load(inputStream, model, EncodingRule.CONTENT_BASED);
-		}
-	}
-
-	public void load(String filename, InputStream inputStream, IStructuredModel model, String junk, String dummy) throws UnsupportedEncodingException, java.io.IOException {
-
-		long memoryUsed = 0;
-		if (DEBUG) {
-			memoryUsed = computeMem();
-			System.out.println("measuring heap memory for " + filename);
-			//System.out.println("heap memory used before load: " +
-			// memoryUsed);
-		}
-
-		// during an initial load, we expect the olddocument to be empty
-		// during re-load, however, it would be full.
-		IEncodedDocument newstructuredDocument = null;
-		IEncodedDocument oldStructuredDocument = model.getStructuredDocument();
-
-		// get new document
-		if (inputStream == null) {
-			newstructuredDocument = getDocumentLoader().createNewStructuredDocument();
-		} else {
-			newstructuredDocument = getDocumentLoader().createNewStructuredDocument(filename, inputStream);
-		}
-		if (DEBUG) {
-			long memoryAtEnd = computeMem();
-			//System.out.println("heap memory used after loading new
-			// document: " + memoryAtEnd);
-			System.out.println("    heap memory implied used by document: " + (memoryAtEnd - memoryUsed));
-		}
-
-
-		// TODO: need to straighten out IEncodedDocument mess
-		if (newstructuredDocument instanceof IStructuredDocument) {
-			transformInstance((IStructuredDocument) oldStructuredDocument, (IStructuredDocument) newstructuredDocument);
-		} else {
-			// we don't really expect this case, just included for safety
-			oldStructuredDocument.set(newstructuredDocument.get());
-		}
-		// original hack
-		//model.setStructuredDocument((IStructuredDocument)
-		// structuredDocument);
-		//((IStructuredDocument) structuredDocument).fireNewDocument(this);
-		documentLoaderInstance = null;
-		//technicq of future
-		//model.setStructuredDocument((IStructuredDocument)
-		// structuredDocument);
-		//documentLoaderInstance = null;
-		if (DEBUG) {
-			long memoryAtEnd = computeMem();
-			//System.out.println("heap memory used after setting to model: "
-			// + memoryAtEnd);
-			System.out.println("    heap memory implied used by document and model: " + (memoryAtEnd - memoryUsed));
-		}
-
-	}
-
-	/**
-	 * required by interface, being declared here abstractly just as another
-	 * reminder.
-	 */
-	abstract public IStructuredModel newModel();
-
-	/**
-	 * There's nothing to do here in abstract class for initializing adapters.
-	 * Subclasses can and should override this method and provide proper
-	 * intialization (For example, to get DOM document and 'getAdapter' on it,
-	 * so that the first node/notifier has the adapter on it.)
-	 */
-	protected void preLoadAdapt(IStructuredModel structuredModel) {
-
-
-	}
-
-	/**
-	 * Normally, here in the abstact class, there's nothing to do, but we will
-	 * reset text, since this MIGHT end up being called to recover from error
-	 * conditions (e.g. IStructuredDocument exceptions) And, can be called by
-	 * subclasses.
-	 */
-	public IStructuredModel reinitialize(IStructuredModel model) {
-		// Note: the "minimumization" routines
-		// of 'replaceText' allow many old nodes to pass through, when
-		// really its assumed they are created anew.
-		// so we need to use 'setText' (I think "setText' ends up
-		// throwing a 'newModel' event though, that may have some
-		// implications.
-		model.getStructuredDocument().setText(this, model.getStructuredDocument().get());
-		return model;
-	}
-
-	/**
-	 * This method gets a fresh copy of the data, and repopulates the models
-	 * ... by a call to setText on the structuredDocument. This method is
-	 * needed in some cases where clients are sharing a model and then changes
-	 * canceled. Say for example, one editor and several "displays" are
-	 * sharing a model, if the editor is closed without saving changes, then
-	 * the displays still need a model, but they should revert to the original
-	 * unsaved version.
-	 */
-	synchronized public void reload(InputStream inputStream, IStructuredModel structuredModel) {
-		documentLoaderInstance = null;
-		try {
-			// temp solution ... we should be able to do better (more
-			// efficient) in future.
-			// Adapters will (probably) need to be sensitive to the fact that
-			// the document instance changed
-			// (by being life cycle listeners)
-			load(inputStream, structuredModel, EncodingRule.CONTENT_BASED);
-
-			//			// Note: we apparently read the data (and encoding) correctly
-			//			// before, we just need to make sure we followed the same rule
-			// as
-			//			// before.
-			//			EncodingMemento previousMemento =
-			// structuredModel.getStructuredDocument().getEncodingMemento();
-			//			EncodingRule previousRule = previousMemento.getEncodingRule();
-			//			//IFile file = ResourceUtil.getFileFor(structuredModel);
-			//			// Note: there's opportunity here for some odd behavior, if the
-			//			// settings have changed from the first load to the reload.
-			// But,
-			//			// hopefully,
-			//			// will result in the intended behavior.
-			//			Reader allTextReader =
-			// getDocumentLoader().readInputStream(inputStream, previousRule);
-			//
-			//			// TODO: avoid use of String instance
-			//			getDocumentLoader().reload(structuredModel.getStructuredDocument(),
-			// allTextReader);
-			//			// and now "reset" encoding memento to keep it current with the
-			//			// one
-			//			// that was just determined.
-			//			structuredModel.getStructuredDocument().setEncodingMemento(getDocumentLoader().getEncodingMemento());
-			//			structuredModel.setDirtyState(false);
-			//			StructuredTextUndoManager undoMgr =
-			// structuredModel.getUndoManager();
-			//			if (undoMgr != null) {
-			//				undoMgr.reset();
-			//			}
-		} catch (UnsupportedEncodingException e) {
-			// couldn't happen. The program has apparently
-			// read the model once, and there'd be no reason the encoding
-			// could not be used again.
-			Logger.logException("Warning:  XMLLoader::reload.  This exception really should not have happened!! But will attemp to continue after dumping stack trace", e); //$NON-NLS-1$
-			throw new Error("Program Error", e); //$NON-NLS-1$
-		} catch (IOException e) {
-			// couldn't happen. The program has apparently
-			// read the model once, and there'd be no (common) reason it
-			// couldn't be loaded again.
-			Logger.logException("Warning:  XMLLoader::reload.  This exception really should not have happened!! But will attemp to continue after dumping stack trace", e); //$NON-NLS-1$
-			throw new Error("Program Error", e); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * this work is done better elsewhere, but done here for this version to
-	 * reduce changes. especially since the need for it should go away once we
-	 * no longer need to re-use old document instance.
-	 */
-	private void transformInstance(IStructuredDocument oldInstance, IStructuredDocument newInstance) {
-		/**
-		 * https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=4920
-		 * 
-		 * JSP taglib support broken, correct by duplicating extended setup
-		 * information (BlockTagParser extension,
-		 * StructuredDocumentRegionParser extensions)
-		 */
-		RegionParser oldParser = oldInstance.getParser();
-		RegionParser newParser = newInstance.getParser().newInstance();
-		// Register all of the old StructuredDocumentRegionHandlers on the new
-		// parser
-		if (oldParser instanceof StructuredDocumentRegionParserExtension && newParser instanceof StructuredDocumentRegionParserExtension) {
-			List oldHandlers = ((StructuredDocumentRegionParserExtension) oldParser).getStructuredDocumentRegionHandlers();
-			for (int i = 0; i < oldHandlers.size(); i++) {
-				StructuredDocumentRegionHandler handler = ((StructuredDocumentRegionHandler) oldHandlers.get(i));
-				if (handler instanceof StructuredDocumentRegionHandlerExtension) {
-					/**
-					 * Skip the transferring here, the handler will do this
-					 * after everything else but the source is transferred.
-					 */
-				} else {
-					((StructuredDocumentRegionParser) oldParser).removeStructuredDocumentRegionHandler(handler);
-					((StructuredDocumentRegionParser) newParser).addStructuredDocumentRegionHandler(handler);
-					handler.resetNodes();
-				}
-			}
-		}
-		// Add any global BlockMarkers to the new parser
-		if (oldParser instanceof BlockTagParser && newParser instanceof BlockTagParser) {
-			List oldBlockMarkers = ((BlockTagParser) oldParser).getBlockMarkers();
-			for (int i = 0; i < oldBlockMarkers.size(); i++) {
-				BlockMarker blockMarker = ((BlockMarker) oldBlockMarkers.get(i));
-				if (blockMarker.isGlobal()) {
-					((BlockTagParser) newParser).addBlockMarker(blockMarker);
-				}
-			}
-		}
-
-		((BasicStructuredDocument) oldInstance).setParser(newParser);
-
-		((BasicStructuredDocument) oldInstance).setReParser(newInstance.getReParser().newInstance());
-		if (newInstance.getDocumentPartitioner() instanceof StructuredTextPartitioner) {
-			oldInstance.setDocumentPartitioner(((StructuredTextPartitioner) newInstance.getDocumentPartitioner()).newInstance());
-		}
-		oldInstance.setLineDelimiter(newInstance.getLineDelimiter());
-		if (newInstance.getEncodingMemento() != null) {
-			oldInstance.setEncodingMemento((EncodingMemento) newInstance.getEncodingMemento().clone());
-		}
-
-		/**
-		 * https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=4920
-		 * 
-		 * JSP taglib support broken, correct by duplicating extended setup
-		 * information (BlockTagParser extension,
-		 * StructuredDocumentRegionParser extensions)
-		 */
-		if (oldParser instanceof StructuredDocumentRegionParserExtension && newParser instanceof StructuredDocumentRegionParserExtension) {
-			List oldHandlers = ((StructuredDocumentRegionParserExtension) oldParser).getStructuredDocumentRegionHandlers();
-			for (int i = 0; i < oldHandlers.size(); i++) {
-				StructuredDocumentRegionHandler handler = ((StructuredDocumentRegionHandler) oldHandlers.get(i));
-				if (handler instanceof StructuredDocumentRegionHandlerExtension) {
-					StructuredDocumentRegionHandlerExtension handlerExtension = (StructuredDocumentRegionHandlerExtension) handler;
-					handlerExtension.setStructuredDocument(oldInstance);
-				}
-			}
-		}
-		String holdString = newInstance.get();
-		newInstance = null;
-		oldInstance.set(holdString);
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/AbstractNotifier.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/AbstractNotifier.java
deleted file mode 100644
index b8a691e..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/AbstractNotifier.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.sse.core.internal.Logger;
-
-
-
-/**
- * AbstractNotifier is similar to (and based on) the EMF NotifierImpl class.
- * This class is simpler (that is, not as many functions).
- */
-public abstract class AbstractNotifier implements INodeNotifier {
-	private final static boolean debugAdapterNotificationTime = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.core/dom/adapter/notification/time")); //$NON-NLS-1$ //$NON-NLS-2$
-	private final static int growthConstant = 3;
-	private int adapterCount = 0;
-
-	private INodeAdapter[] fAdapters;
-
-	/**
-	 * AbstractNotifier constructor comment.
-	 */
-	public AbstractNotifier() {
-		super();
-	}
-
-	/**
-	 * addAdapter method comment.
-	 */
-	public synchronized void addAdapter(INodeAdapter adapter) {
-
-		if (adapter == null)
-			return;
-		ensureCapacity(adapterCount + 1);
-		fAdapters[adapterCount++] = adapter;
-	}
-
-	private void ensureCapacity(int needed) {
-		if (fAdapters == null) {
-			// first time
-			fAdapters = new INodeAdapter[needed + growthConstant];
-			return;
-		}
-		int oldLength = fAdapters.length;
-		if (oldLength < needed) {
-			INodeAdapter[] oldAdapters = fAdapters;
-			INodeAdapter[] newAdapters = new INodeAdapter[needed + growthConstant];
-			System.arraycopy(oldAdapters, 0, newAdapters, 0, adapterCount);
-			fAdapters = newAdapters;
-		}
-	}
-
-	/**
-	 * Returns the adapterCount. Equivilent to, but faster than,
-	 * getAdapters().size();
-	 * 
-	 * @return int
-	 */
-	public int getAdapterCount() {
-		return adapterCount;
-	}
-
-	/**
-	 * Default behavior for getting an adapter.
-	 */
-	public INodeAdapter getAdapterFor(Object type) {
-		// first, we'll see if we already have one
-		INodeAdapter result = getExistingAdapter(type);
-		// if we didn't find one in our list already,
-		// let's create it
-		if (result == null) {
-			IFactoryRegistry reg = getFactoryRegistry();
-			if (reg != null) {
-				AdapterFactory factory = reg.getFactoryFor(type);
-				if (factory != null) {
-					result = factory.adapt(this);
-				}
-			}
-			// We won't prevent null from being returned, but it would be
-			// unusual.
-			// It might be because Factory is not working correctly, or
-			// not installed, so we'll allow warning message.
-			if ((result == null) && (org.eclipse.wst.sse.core.util.Debug.displayWarnings)) {
-				System.out.println("Warning: no adapter was found or created for " + type); //$NON-NLS-1$
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Returns a shallow clone of list, since clients should not manipulate
-	 * our list directly. Instead, they should use add/removeAdapter.
-	 */
-	public Collection getAdapters() {
-		if (fAdapters != null) {
-			if (adapterCount == 0) {
-				fAdapters = null;
-				return Collections.EMPTY_LIST;
-			} else {
-				// we need to make a new array, to be sure
-				// it doesn't contain nulls at end, which may be
-				// present there for "growth".
-				INodeAdapter[] tempAdapters = new INodeAdapter[adapterCount];
-				System.arraycopy(fAdapters, 0, tempAdapters, 0, adapterCount);
-				// EMF uses the unmodifiableCollection. Its a bit of a
-				// performance
-				// drain, but may want to leave in since
-				// it would "fail fast" if someone was trying to modify the
-				// list.
-				return Collections.unmodifiableCollection(Arrays.asList(tempAdapters));
-				//return Arrays.asList(newAdapters);
-			}
-		} else
-			return Collections.EMPTY_LIST;
-	}
-
-	private long getAdapterTimeCriteria() {
-		// to "re-get" the property each time is a little awkward, but we
-		// do it that way to avoid adding instance variable just for
-		// debugging.
-		// This method should only be called if debugAdapterNotifcationTime
-		// is true.
-		final String criteriaStr = Platform.getDebugOption("org.eclipse.wst.sse.core/dom/adapter/notification/time/criteria"); //$NON-NLS-1$
-		long criteria = -1;
-		if (criteriaStr != null) {
-			try {
-				criteria = Long.parseLong(criteriaStr);
-			} catch (NumberFormatException e) {
-				// catch to be sure we don't burb in notification loop,
-				// but ignore, since just a debug aid
-			}
-		}
-		return criteria;
-	}
-
-	public INodeAdapter getExistingAdapter(Object type) {
-		INodeAdapter result = null;
-		for (int i = 0; i < adapterCount; i++) {
-			INodeAdapter a = fAdapters[i];
-			if (a.isAdapterForType(type)) {
-				result = a;
-				break;
-			}
-		}
-		// if we didn't find one in our list,
-		// return the null result
-		return result;
-	}
-
-	abstract public IFactoryRegistry getFactoryRegistry();
-
-	public void notify(int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-
-		if (fAdapters != null) {
-			int localAdapterCount = 0;
-			INodeAdapter[] localAdapters = null;
-
-			// lock object while making local assignments
-			synchronized (this) {
-				localAdapterCount = adapterCount;
-				localAdapters = new INodeAdapter[localAdapterCount];
-				System.arraycopy(fAdapters, 0, localAdapters, 0, localAdapterCount);
-			}
-
-			for (int i = 0; i < localAdapterCount; i++) {
-				INodeAdapter a = localAdapters[i];
-
-				if (debugAdapterNotificationTime) {
-					long getAdapterTimeCriteria = getAdapterTimeCriteria();
-					long startTime = System.currentTimeMillis();
-					// ** keep this line identical with non-debug version!!
-					a.notifyChanged(this, eventType, changedFeature, oldValue, newValue, pos);
-					long notifyDuration = System.currentTimeMillis() - startTime;
-					if (getAdapterTimeCriteria >= 0 && notifyDuration > getAdapterTimeCriteria) {
-						System.out.println("adapter notifyDuration: " + notifyDuration + "  class: " + a.getClass()); //$NON-NLS-1$ //$NON-NLS-2$
-					}
-				} else {
-					try {
-						// ** keep this line identical with debug version!!
-						a.notifyChanged(this, eventType, changedFeature, oldValue, newValue, pos);
-					} catch (Exception e) {
-						// Its important to "keep going", since notifications
-						// occur between an
-						// aboutToChange event and a changed event -- the
-						// changed event typically being require
-						// to restore state, etc. So, we just log message, do
-						// not re-throw it, but
-						// typically the exception does indicate a serious
-						// program error.
-						Logger.logException("A structured model client, " + a + " threw following exception during adapter notification (" + INodeNotifier.EVENT_TYPE_STRINGS[eventType] + " )", e); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					}
-				}
-
-			}
-		}
-	}
-
-	public synchronized void removeAdapter(INodeAdapter a) {
-		if (fAdapters == null || a == null)
-			return;
-		int newIndex = 0;
-		INodeAdapter[] newAdapters = new INodeAdapter[fAdapters.length];
-		int oldAdapterCount = adapterCount;
-		boolean found = false;
-		for (int oldIndex = 0; oldIndex < oldAdapterCount; oldIndex++) {
-			INodeAdapter candidate = fAdapters[oldIndex];
-			if (a == candidate) {
-				adapterCount--;
-				found = true;
-			} else
-				newAdapters[newIndex++] = fAdapters[oldIndex];
-		}
-		if (found)
-			fAdapters = newAdapters;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/AbstractStructuredModel.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/AbstractStructuredModel.java
deleted file mode 100644
index 711f9f1..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/AbstractStructuredModel.java
+++ /dev/null
@@ -1,1589 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-import java.io.File;
-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.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.jobs.ILock;
-import org.eclipse.wst.common.encoding.EncodingRule;
-import org.eclipse.wst.sse.core.document.ILockable;
-import org.eclipse.wst.sse.core.events.AboutToBeChangeEvent;
-import org.eclipse.wst.sse.core.events.IModelAboutToBeChangedListener;
-import org.eclipse.wst.sse.core.events.IStructuredDocumentListener;
-import org.eclipse.wst.sse.core.events.NewDocumentEvent;
-import org.eclipse.wst.sse.core.events.NoChangeEvent;
-import org.eclipse.wst.sse.core.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.events.RegionsReplacedEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentRegionsReplacedEvent;
-import org.eclipse.wst.sse.core.exceptions.ResourceInUse;
-import org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException;
-import org.eclipse.wst.sse.core.internal.Logger;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.eclipse.wst.sse.core.modelhandler.IModelHandler;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.undo.IStructuredTextUndoManager;
-import org.eclipse.wst.sse.core.util.URIResolver;
-import org.eclipse.wst.sse.core.util.Utilities;
-
-
-public abstract class AbstractStructuredModel implements IStructuredModel {
-
-	class DirtyStateWatcher implements IStructuredDocumentListener {
-
-		public void newModel(NewDocumentEvent structuredDocumentEvent) {
-
-			// I don't think its safe to assume a new model
-			// is always "fresh", so we'll leave dirty state
-			// unchanged;
-			// but we'll tell everyone about it.
-			setDirtyState(fDirtyState);
-		}
-
-		public void noChange(NoChangeEvent structuredDocumentEvent) {
-
-			// don't change dirty state
-		}
-
-		public void nodesReplaced(StructuredDocumentRegionsReplacedEvent structuredDocumentEvent) {
-
-			setDirtyState(true);
-			// no need to listen any more
-			if (fStructuredDocument != null) {
-				fStructuredDocument.removeDocumentChangedListener(fDirtyStateWatcher);
-			}
-		}
-
-		public void regionChanged(RegionChangedEvent structuredDocumentEvent) {
-
-			setDirtyState(true);
-			// no need to listen any more
-			if (fStructuredDocument != null) {
-				fStructuredDocument.removeDocumentChangedListener(fDirtyStateWatcher);
-			}
-		}
-
-		public void regionsReplaced(RegionsReplacedEvent structuredDocumentEvent) {
-
-			setDirtyState(true);
-			// no need to listen any more
-			if (fStructuredDocument != null) {
-				fStructuredDocument.removeDocumentChangedListener(fDirtyStateWatcher);
-			}
-		}
-	}
-
-	class DocumentToModelNotifier implements IStructuredDocumentListener, IModelAboutToBeChangedListener {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.core.events.IModelAboutToBeChangedListener#modelAboutToBeChanged(org.eclipse.wst.sse.core.events.AboutToBeChangeEvent)
-		 */
-		public void modelAboutToBeChanged(AboutToBeChangeEvent structuredDocumentEvent) {
-			// If we didn't originate the change, take note we are about to
-			// change based on our underlying document changing.
-			// If we did originate the change, we, or client, should have
-			// already called aboutToChangeModel.
-			if (structuredDocumentEvent.getOriginalSource() != this) {
-				aboutToChangeModel();
-			}
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.core.events.IStructuredDocumentListener#newModel(org.eclipse.wst.sse.core.events.NewDocumentEvent)
-		 */
-		public void newModel(NewDocumentEvent structuredDocumentEvent) {
-			// if we didn't originate the change, take note we have changed
-			if (structuredDocumentEvent.getOriginalSource() != this) {
-				changedModel();
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.core.events.IStructuredDocumentListener#noChange(org.eclipse.wst.sse.core.events.NoChangeEvent)
-		 */
-		public void noChange(NoChangeEvent structuredDocumentEvent) {
-			// if we didn't originate the change, take note we have changed
-			if (structuredDocumentEvent.getOriginalSource() != this) {
-				changedModel();
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.core.events.IStructuredDocumentListener#nodesReplaced(org.eclipse.wst.sse.core.events.StructuredDocumentRegionsReplacedEvent)
-		 */
-		public void nodesReplaced(StructuredDocumentRegionsReplacedEvent structuredDocumentEvent) {
-			// if we didn't originate the change, take note we have changed
-			if (structuredDocumentEvent.getOriginalSource() != this) {
-				changedModel();
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.core.events.IStructuredDocumentListener#regionChanged(org.eclipse.wst.sse.core.events.RegionChangedEvent)
-		 */
-		public void regionChanged(RegionChangedEvent structuredDocumentEvent) {
-			// if we didn't originate the change, take note we have changed
-			if (structuredDocumentEvent.getOriginalSource() != this) {
-				changedModel();
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.core.events.IStructuredDocumentListener#regionsReplaced(org.eclipse.wst.sse.core.events.RegionsReplacedEvent)
-		 */
-		public void regionsReplaced(RegionsReplacedEvent structuredDocumentEvent) {
-			// if we didn't originate the change, take note we have changed
-			if (structuredDocumentEvent.getOriginalSource() != this) {
-				changedModel();
-			}
-		}
-
-	}
-
-	static final String DEBUG_STATE_TRACE_CATEGORY = "org.eclipse.wst.sse.core/structuredmodel/state";
-	static final boolean DEBUG_STATE = "true".equalsIgnoreCase(Platform.getDebugOption(DEBUG_STATE_TRACE_CATEGORY));
-
-	private IFactoryRegistry factoryRegistry;
-	private String fBaseLocation;
-	boolean fDirtyState;
-	DirtyStateWatcher fDirtyStateWatcher;
-	DocumentToModelNotifier fDocumentToModelNotifier;
-	private String fId;
-
-	private LifecycleNotificationManager fLifecycleNotificationManager;
-
-	private final Object fListenerLock = new byte[0];
-	private ILock fLockObject;
-	//	private String fLineDelimiter;
-	//	private Object fType;
-	private IModelHandler fModelHandler;
-	private IModelManager fModelManager;
-	private int fModelStateChanging;
-	private Object[] fModelStateListeners;
-	private boolean fNewState = false;
-	private URIResolver fResolver;
-	IStructuredDocument fStructuredDocument;
-	/**
-	 * The time stamp of the underlying resource's modification date, at the
-	 * time this model was created, or the last time it was saved. Note: for
-	 * this version, this variable is not set automatically, be needs to be
-	 * managed by client. The FileModelProvider does this for most cases, but
-	 * if client do not use FileModelProvider, they must set this variable
-	 */
-	public long fSynchronizationStamp = IResource.NULL_STAMP;
-	private boolean reinitializationNeeded;
-	private Object reinitializeStateData;
-
-	/**
-	 * AbstractStructuredModel constructor comment.
-	 */
-	public AbstractStructuredModel() {
-
-		super();
-		fDirtyStateWatcher = new DirtyStateWatcher();
-		fDocumentToModelNotifier = new DocumentToModelNotifier();
-	}
-
-
-	private void _commonRelease() {
-
-		if (factoryRegistry != null) {
-			factoryRegistry.release();
-		}
-		// if document as not been changed, we'll still be listening for
-		// first change. This is not a critical clean up, since presumanly
-		// whole model and document are "going away", but can make
-		// other memory leaks harder to find if we stay attached.
-		// (Note: my first thought was to set fStructuredDocument to null
-		// also,
-		// but there's others in shutdown process that still need to
-		// get it, in order to disconnect from it.)
-		if (fStructuredDocument != null) {
-			fStructuredDocument.removeDocumentChangedListener(fDirtyStateWatcher);
-		}
-	}
-
-	/**
-	 * This method is just for getting an instance of the model manager of the
-	 * right Impl type, to be used "internally" for making protected calls
-	 * directly to the impl class.
-	 */
-	private ModelManagerImpl _getModelManager() {
-		// TODO_future: redesign so we don't need this 'Impl' version
-		if (fModelManager == null) {
-			fModelManager = StructuredModelManager.getModelManager();
-		}
-
-		return (ModelManagerImpl) fModelManager;
-	}
-
-	/**
-	 * 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() {
-
-
-		// notice this is just a public avenue to our protected method
-		internalAboutToBeChanged();
-	}
-
-
-	public void aboutToReinitializeModel() {
-
-
-
-		// notice this is just a public avenue to our protected method
-		fireModelAboutToBeReinitialized();
-	}
-
-
-	public void addModelLifecycleListener(IModelLifecycleListener listener) {
-
-		synchronized (fListenerLock) {
-
-			if (fLifecycleNotificationManager == null) {
-				fLifecycleNotificationManager = new LifecycleNotificationManager();
-			}
-			fLifecycleNotificationManager.addListener(listener);
-		}
-	}
-
-	public void addModelStateListener(IModelStateListener listener) {
-
-		synchronized (fListenerLock) {
-
-			if (!Utilities.contains(fModelStateListeners, listener)) {
-				int oldSize = 0;
-				if (fModelStateListeners != null) {
-					// normally won't be null, but we need to be sure, for
-					// first
-					// time through
-					oldSize = fModelStateListeners.length;
-				}
-				int newSize = oldSize + 1;
-				Object[] newListeners = new Object[newSize];
-				if (fModelStateListeners != null) {
-					System.arraycopy(fModelStateListeners, 0, newListeners, 0, oldSize);
-				}
-				// add listener to last position
-				newListeners[newSize - 1] = listener;
-				//
-				// now switch new for old
-				fModelStateListeners = newListeners;
-			}
-		}
-	}
-
-	/**
-	 *  
-	 */
-	private void beginLock() {
-		fLockObject = getLockObject();
-		if (fLockObject != null)
-			fLockObject.acquire();
-	}
-
-	public void beginRecording(Object requester) {
-
-		beginRecording(requester, null, null);
-	}
-
-	public void beginRecording(Object requester, int cursorPosition, int selectionLength) {
-
-		beginRecording(requester, null, null, cursorPosition, selectionLength);
-	}
-
-	public void beginRecording(Object requester, String label) {
-
-		beginRecording(requester, label, null);
-	}
-
-	public void beginRecording(Object requester, String label, int cursorPosition, int selectionLength) {
-
-		beginRecording(requester, label, null, cursorPosition, selectionLength);
-	}
-
-	public void beginRecording(Object requester, String label, String description) {
-
-		if (getUndoManager() != null)
-			getUndoManager().beginRecording(requester, label, description);
-	}
-
-	public void beginRecording(Object requester, String label, String description, int cursorPosition, int selectionLength) {
-
-		if (getUndoManager() != null)
-			getUndoManager().beginRecording(requester, label, description, cursorPosition, selectionLength);
-	}
-
-	/**
-	 * 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() {
-
-
-		// notice this is just a public avenue to our protected method
-		internalModelChanged();
-		// also note!
-		// if we've been "changed" by a client, we might still need
-		// to be re-initialized, so we'll check and handle that here.
-		// Note only does this provide a solution to some "missed"
-		// re-inits, in provides a built in way for clients to
-		// "force" the model to handle itself, by bracketing any
-		// changes with aboutToChange and changed, the model itself
-		// will check. But only call re-init if all other pending
-		// modelChanged states have been handled.
-		if (fModelStateChanging == 0 && isReinitializationNeeded()) {
-			reinit();
-		}
-	}
-
-
-	/**
-	 * Based on similar method in FileDocumentProvider. It will provide what
-	 * the modificationStamp would be if resetSynchronzationStamp(resource)
-	 * were used, although for this 'compute' API, no changes to the instance
-	 * are made.
-	 */
-	public long computeModificationStamp(IResource resource) {
-
-
-		long modificationStamp = resource.getModificationStamp();
-		IPath path = resource.getLocation();
-		if (path == null) {
-			return modificationStamp;
-		}
-		// Note: checking existence of file is a little different than
-		// impl in
-		// the FileDocumentProvider. See defect number 223790.
-		File file = path.toFile();
-		if (!file.exists()) {
-			return modificationStamp;
-		}
-		modificationStamp = file.lastModified();
-		return modificationStamp;
-	}
-
-
-	/**
-	 * Provides a copy of the model, but a new ID must be provided. The
-	 * principle of this copy is not to copy fields, etc., as is typically
-	 * done in a clone method, but to return a model with the same content in
-	 * the structuredDocument. Note: It is the callers responsibility to
-	 * setBaseLocation, listners, etc., as appropriate. Type and Encoding are
-	 * the only fields set by this method. If the newId provided already exist
-	 * in the model manager, a ResourceInUse exception is thrown.
-	 */
-	public IStructuredModel copy(String newId) throws ResourceInUse {
-
-
-		IStructuredModel newModel = null;
-		// this first one should fail, if not, its treated as an error
-		// If the caller wants to use an existing one, they can call
-		// getExisting
-		// after this failure
-		newModel = getModelManager().getExistingModelForEdit(newId);
-		if (newModel != null) {
-			// be sure to release the reference we got "by accident" (and
-			// no
-			// longer need)
-			newModel.releaseFromEdit();
-			throw new ResourceInUse();
-		}
-		newModel = getModelManager().copyModelForEdit(getId(), newId);
-		return newModel;
-	}
-
-
-	/**
-	 * Disable undo management.
-	 */
-	public void disableUndoManagement() {
-
-		if (getUndoManager() != null)
-			getUndoManager().disableUndoManagement();
-	}
-
-	/**
-	 * Enable undo management.
-	 */
-	public void enableUndoManagement() {
-
-		if (getUndoManager() != null)
-			getUndoManager().enableUndoManagement();
-	}
-
-	/**
-	 * endLock is protected only for a very special purpose. So subclasses can
-	 * call it to end the lock after updates have been made, but before
-	 * notifications are sent
-	 *  
-	 */
-	protected final void endLock() {
-		if (fLockObject != null) {
-			fLockObject.release();
-		}
-		// fLock being null is used as an indicator that
-		// we are not locked (and used in logic to decide
-		// acquire/release.
-		fLockObject = null;
-
-	}
-
-	public void endRecording(Object requester) {
-
-		if (getUndoManager() != null)
-			getUndoManager().endRecording(requester);
-	}
-
-	public void endRecording(Object requester, int cursorPosition, int selectionLength) {
-
-		if (getUndoManager() != null)
-			getUndoManager().endRecording(requester, cursorPosition, selectionLength);
-	}
-
-	/**
-	 * Informs all registered model state listeners that the the model is
-	 * about to under go a change. This change might be in terms of contents
-	 * or might be in terms of the model's id or base location.
-	 */
-	private void fireModelAboutToBeChanged() {
-
-		// we must assign listeners to local variable, since the add and
-		// remove listner
-		// methods can change the actual instance of the listener array
-		// from another thread
-		if (fModelStateListeners != null) {
-			Object[] holdListeners = fModelStateListeners;
-			for (int i = 0; i < holdListeners.length; i++) {
-				((IModelStateListener) holdListeners[i]).modelAboutToBeChanged(this);
-			}
-		}
-
-	}
-
-	protected void fireModelAboutToBeReinitialized() {
-
-		// we must assign listeners to local variable, since the add and
-		// remove
-		// listner
-		// methods can change the actual instance of the listener array from
-		// another thread
-		if (fModelStateListeners != null) {
-			if (DEBUG_STATE) {
-				System.out.println("IModelStateListener event for " + getId() + " : modelAboutToBeReinitialized");
-			}
-			Object[] holdListeners = fModelStateListeners;
-			for (int i = 0; i < holdListeners.length; i++) {
-				// NOTE: trick for transition. We actual use the same
-				// listeners
-				// as modelState, but only send this to those that have
-				// implemented ModelStateExtended.
-				IModelStateListener listener = (IModelStateListener) holdListeners[i];
-				if (listener instanceof IModelStateListenerExtended) {
-					IModelStateListenerExtended extendedListner = (IModelStateListenerExtended) listener;
-					extendedListner.modelAboutToBeReinitialized(this);
-				}
-			}
-		}
-	}
-
-	private void fireModelChanged() {
-		// we must assign listeners
-		// to local variable, since the add
-		// and remove listner
-		// methods can change the actual instance of the listener
-		// array from another thread
-		if (fModelStateListeners != null) {
-			Object[] holdListeners = fModelStateListeners;
-			for (int i = 0; i < holdListeners.length; i++) {
-				try {
-					((IModelStateListener) holdListeners[i]).modelChanged(this);
-				}
-				// its so criticial that the begin/end arrive in
-				// pairs,
-				// if there happends to be an error in one of the
-				// modelChanged,
-				// they we want to be sure rest complete ok.
-				catch (Exception e) {
-					Logger.logException(e);
-				}
-			}
-
-		}
-	}
-
-	/**
-	 * Informs all registered model state listeners about a change in the
-	 * dirty state of the model. The dirty state is entirely about changes in
-	 * the content of the model (not, for example, about changes to id, or
-	 * base location -- see modelMoved).
-	 */
-	protected void fireModelDirtyStateChanged(IStructuredModel element, boolean isDirty) {
-
-		// we must assign listeners to local variable, since the add and
-		// remove
-		// listner
-		// methods can change the actual instance of the listener array from
-		// another thread
-		if (fModelStateListeners != null) {
-			if (DEBUG_STATE) {
-				System.out.println("IModelStateListener event for " + getId() + " : modelDirtyStateChanged");
-			}
-			Object[] holdListeners = fModelStateListeners;
-			for (int i = 0; i < holdListeners.length; i++) {
-				((IModelStateListener) holdListeners[i]).modelDirtyStateChanged(element, isDirty);
-			}
-		}
-	}
-
-	protected void fireModelReinitialized() {
-
-		// we must assign listeners to local variable, since the add and
-		// remove
-		// listner
-		// methods can change the actual instance of the listener array from
-		// another thread
-		if (fModelStateListeners != null) {
-			if (DEBUG_STATE) {
-				System.out.println("IModelStateListener event for " + getId() + " : modelReinitialized");
-			}
-			Object[] holdListeners = fModelStateListeners;
-			for (int i = 0; i < holdListeners.length; i++) {
-				// NOTE: trick for transition. We actual use the same
-				// listeners
-				// as modelState, but only send this to those that have
-				// implemented ModelStateExtended.
-				IModelStateListener listener = (IModelStateListener) holdListeners[i];
-				if (listener instanceof IModelStateListenerExtended) {
-					IModelStateListenerExtended extendedListner = (IModelStateListenerExtended) listener;
-					extendedListner.modelReinitialized(this);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Informs all registered model state listeners about the deletion of a
-	 * model's underlying resource.
-	 */
-	protected void fireModelResourceDeleted(IStructuredModel element) {
-
-		// we must assign listeners to local variable, since the add and
-		// remove
-		// listner
-		// methods can change the actual instance of the listener array from
-		// another thread
-		if (fModelStateListeners != null) {
-			if (DEBUG_STATE) {
-				System.out.println("IModelStateListener event for " + getId() + " : modelResourceDeleted");
-			}
-			Object[] holdListeners = fModelStateListeners;
-			for (int i = 0; i < holdListeners.length; i++) {
-				((IModelStateListener) holdListeners[i]).modelResourceDeleted(element);
-			}
-		}
-	}
-
-	/**
-	 * Informs all registered model state listeners that the resource
-	 * underlying a model has been moved. This is typically reflected in a
-	 * change to the id, baseLocation, or both.
-	 */
-	protected void fireModelResourceMoved(IStructuredModel originalElement, IStructuredModel movedElement) {
-
-		// we must assign listeners to local variable, since the add and
-		// remove
-		// listner
-		// methods can change the actual instance of the listener array from
-		// another thread
-		if (fModelStateListeners != null) {
-			if (DEBUG_STATE) {
-				System.out.println("IModelStateListener event for " + getId() + " : modelResourceMoved");
-			}
-			Object[] holdListeners = fModelStateListeners;
-			for (int i = 0; i < holdListeners.length; i++) {
-				((IModelStateListener) holdListeners[i]).modelResourceMoved(originalElement, movedElement);
-			}
-		}
-	}
-
-	public Object getAdapter(Class adapter) {
-
-		return Platform.getAdapterManager().getAdapter(this, adapter);
-	}
-
-	/**
-	 * @return java.lang.String
-	 */
-	public java.lang.String getBaseLocation() {
-
-		return fBaseLocation;
-	}
-
-	/**
-	 * @see org.eclipse.wst.sse.core.IStructuredModel#getContentTypeIdentifier()
-	 */
-	public String getContentTypeIdentifier() {
-
-		return getModelHandler().getAssociatedContentTypeId();
-	}
-
-	/**
-	 *  
-	 */
-	public IFactoryRegistry getFactoryRegistry() {
-		if (factoryRegistry == null) {
-			factoryRegistry = new FactoryRegistry();
-		}
-		return factoryRegistry;
-	}
-
-	/**
-	 * The id is the id that the model manager uses to identify this model
-	 */
-	public String getId() {
-
-
-		return fId;
-	}
-
-	public abstract IndexedRegion getIndexedRegion(int offset);
-
-	/**
-	 * @return
-	 */
-	private ILock getLockObject() {
-
-		// we always "get afresh" the lock object from our document,
-		// just in case the instance of the document changes.
-		ILock result = null;
-		IStructuredDocument doc = getStructuredDocument();
-		if (doc instanceof ILockable) {
-			// remember, more than one client can get the
-			// lock object, its during the aquire that the
-			// lock on the thread is obtained.
-			result = ((ILockable) doc).getLockObject();
-		}
-		return result;
-	}
-
-
-	/**
-	 * This method returns a mememto that can later be used to restore the
-	 * state at this point. A model's state, in this sense, does not relate to
-	 * its content, or Ids, etc., just its dirty state, and its
-	 * synchronization state with its underlying resource. The 'resource'
-	 * argument must be the resource that underlies the instance of the model
-	 * this method is sent to. Note: this parameter will not be required in
-	 * future versions of 'strucutured model'.
-	 */
-	public IStateMemento getMemento(IResource resource) {
-
-		ModelStateMemento memento = new ModelStateMemento();
-		memento.setUnderlyingResource(resource);
-		memento.setDirtyState(isDirty());
-		long modDate = computeModificationStamp(resource);
-		memento.setDatesInSync(fSynchronizationStamp == modDate);
-		return memento;
-	}
-
-	/**
-	 * Gets the contentTypeDescription.
-	 * 
-	 * @return Returns a ContentTypeDescription
-	 */
-	public IModelHandler getModelHandler() {
-
-		return fModelHandler;
-	}
-
-	/**
-	 * @return com.ibm.sed.model.IModelManager
-	 */
-	public IModelManager getModelManager() {
-
-		return _getModelManager();
-	}
-
-	/**
-	 * This function returns the reference count of underlying model.
-	 */
-	// TODO: try to refine the design not to use this function
-	public int getReferenceCount() {
-
-
-		if (getModelManager() == null)
-			return 0;
-		return getModelManager().getReferenceCount(getId());
-	}
-
-
-	/**
-	 * This function returns the reference count of underlying model.
-	 */
-	// TODO: try to refine the design not to use this function
-	public int getReferenceCountForEdit() {
-
-
-
-		if (getModelManager() == null)
-			return 0;
-		return getModelManager().getReferenceCountForEdit(getId());
-	}
-
-
-	/**
-	 * This function returns the reference count of underlying model.
-	 */
-	// TODO: try to refine the design not to use this function
-	public int getReferenceCountForRead() {
-
-
-
-		if (getModelManager() == null)
-			return 0;
-		return getModelManager().getReferenceCountForRead(getId());
-	}
-
-	public Object getReinitializeStateData() {
-
-		return reinitializeStateData;
-	}
-
-
-	/**
-	 * @return com.ibm.sed.util.URIResolver
-	 */
-	public URIResolver getResolver() {
-
-		return fResolver;
-	}
-
-	/**
-	 * @return com.ibm.sed.structuredDocument.IStructuredDocument
-	 */
-	public IStructuredDocument getStructuredDocument() {
-
-		return fStructuredDocument;
-	}
-
-	/**
-	 * Insert the method's description here. Creation date: (9/7/2001 2:30:26
-	 * PM)
-	 * 
-	 * @return long
-	 */
-	public long getSynchronizationStamp() {
-
-		return fSynchronizationStamp;
-	}
-
-	public IStructuredTextUndoManager getUndoManager() {
-
-		IStructuredTextUndoManager structuredTextUndoManager = null;
-		IStructuredDocument structuredDocument = getStructuredDocument();
-		if (structuredDocument == null) {
-			structuredTextUndoManager = null;
-		} else {
-			structuredTextUndoManager = structuredDocument.getUndoManager();
-		}
-		return structuredTextUndoManager;
-	}
-
-	public void initId(String id) {
-		fId = id;
-	}
-
-	protected void internalAboutToBeChanged() {
-
-		// notice we only fire this event if we are not
-		// already in a model state changing sequence
-		if (fModelStateChanging == 0) {
-
-			if (DEBUG_STATE) {
-				System.out.println("IModelStateListener event for " + getId() + " : modelAboutToBeChanged"); //$NON-NLS-1$
-			}
-
-			fireModelAboutToBeChanged();
-			// begin lock after listeners notified, otherwise
-			// deadlock could occur if they call us back.
-			beginLock();
-
-		}
-		// we always increment counter, for every request (so *must* receive
-		// corresponding number of 'changedModel' requests)
-		fModelStateChanging++;
-	}
-
-	/**
-	 * Informs all registered model state listeners that an impending change
-	 * is now complete. This method must only be called by 'modelChanged'
-	 * since it keeps track of counts.
-	 */
-	protected void internalModelChanged() {
-
-		// always decrement
-		fModelStateChanging--;
-
-
-		// Check integrity
-		// to be less than zero is a programming error,
-		// but we'll reset to zero
-		// and try to continue
-		if (fModelStateChanging < 0) {
-			fModelStateChanging = 0;
-			Logger.log(Logger.ERROR, "Program Error: modelStateChanging was less than zero");
-		}
-
-
-		// We only fire this event if all pending requests are done.
-		// That is, if we've received the same number of modelChanged as
-		// we have aboutToChangeModel.
-		if (fModelStateChanging == 0) {
-			if (DEBUG_STATE) {
-				System.out.println("IModelStateListener event for " + getId() + " : modelChanged"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-
-			endLock();
-			// notifify listeners outline locked state (or deadlock
-			// can occur if one of them calls us back.
-			fireModelChanged();
-		}
-	}
-
-	public boolean isDirty() {
-
-		return fDirtyState;
-	}
-
-	/**
-	 * This method has very special purpose, its used in subclass
-	 * 'changedModel' to know when to do "ending" sorts of things, right
-	 * before a call to super.ChangedModel would in deed put the model in
-	 * 'end' state. Put another way, at the beginning of the subclasses's
-	 * changedModel, the isModelStateChanging is true, but at end, it will be
-	 * false. So, this method allows a small "peek ahead".
-	 */
-	protected boolean isModelChangeStateOnVergeOfEnding() {
-
-
-		return fModelStateChanging == 1;
-	}
-
-	/**
-	 * This method can be called to determine if the model is within a
-	 * "aboutToChange" and "changed" sequence.
-	 */
-	public boolean isModelStateChanging() {
-
-
-		return fModelStateChanging > 0;
-	}
-
-	public boolean isNew() {
-
-		return fNewState;
-	}
-
-	public boolean isReinitializationNeeded() {
-
-		return reinitializationNeeded;
-	}
-
-	public boolean isSaveNeeded() {
-
-
-		if (!isSharedForEdit())
-			return isDirty();
-		else
-			return false;
-	}
-
-
-	/**
-	 * This function returns true if there are other references to the
-	 * underlying model.
-	 */
-	public boolean isShared() {
-		if (getModelManager() == null)
-			return false;
-		return getModelManager().isShared(getId());
-	}
-
-
-	/**
-	 * This function returns true if there are other references to the
-	 * underlying model.
-	 */
-	public boolean isSharedForEdit() {
-
-
-		if (getModelManager() == null)
-			return false;
-		return getModelManager().isSharedForEdit(getId());
-	}
-
-
-	/**
-	 * This function returns true if there are other references to the
-	 * underlying model.
-	 */
-	public boolean isSharedForRead() {
-
-
-		if (getModelManager() == null)
-			return false;
-		return getModelManager().isSharedForRead(getId());
-	}
-
-
-	public void modelReinitialized() {
-
-
-		// notice this is just a public avenue to our protected method
-		fireModelReinitialized();
-	}
-
-	public IStructuredModel newInstance() throws IOException {
-
-		IStructuredModel newModel = null;
-		// we delegate to the model manager, so loader, etc., can be
-		// used.
-		newModel = getModelManager().createNewInstance(this);
-		return newModel;
-	}
-
-	public IStructuredModel reinit() {
-
-
-		IStructuredModel result = null;
-		if (fModelStateChanging == 0) {
-			try {
-				aboutToChangeModel();
-				aboutToReinitializeModel();
-				result = _getModelManager().reinitialize(this);
-			} finally {
-				setReinitializeNeeded(false);
-				setReinitializeStateData(null);
-				modelReinitialized();
-				changedModel();
-			}
-		} else {
-			System.out.println("indeed!!!"); //$NON-NLS-1$
-		}
-		return result;
-	}
-
-
-	/**
-	 * This function allows the model to free up any resources it might be
-	 * using. In particular, itself, as stored in the IModelManager.
-	 */
-	public void releaseFromEdit() {
-
-
-		if (getModelManager() == null) {
-			throw new SourceEditingRuntimeException("Warning: AbstractStructuredModel::close:  model manager was null during a close of a model (which should be impossible)"); //$NON-NLS-1$
-		} else {
-			// be sure to check the shared state before releasing. (Since
-			// isShared assumes a count
-			// of 1 means not shared ... and we want our '1' to be that
-			// one.)
-			boolean isShared = isShared();
-
-			if (!isShared) {
-				signalPreLifeCycleEventRelease(this);
-			}
-
-			_getModelManager().releaseFromEdit(getId());
-			// if no one else is using us, free up
-			// an resources
-			if (!isShared) {
-				_commonRelease();
-				signalPostLifeCycleListenerRelease(this);
-			}
-		}
-	}
-
-	/**
-	 * This function allows the model to free up any resources it might be
-	 * using. In particular, itself, as stored in the IModelManager.
-	 */
-	public void releaseFromRead() {
-
-
-		if (getModelManager() == null) {
-			throw new SourceEditingRuntimeException("Warning: AbstractStructuredModel::close:  model manager was null during a close of a model (which should be impossible)"); //$NON-NLS-1$
-		} else {
-			// be sure to check the shared state before
-			// releasing. (Since isShared assumes a count
-			// of 1 means not shared ... and we want
-			// our '1' to be that one.)
-			boolean isShared = isShared();
-
-			if (!isShared) {
-				signalPreLifeCycleEventRelease(this);
-			}
-
-			_getModelManager().releaseFromRead(getId());
-			// if no one else is using us, free up
-			// an resources
-			if (!isShared) {
-				// factoryRegistry.release();
-				_commonRelease();
-				signalPostLifeCycleListenerRelease(this);
-			}
-		}
-	}
-
-
-	/**
-	 * This function replenishes the model with the resource without saving
-	 * any possible changes. It is used when one editor may be closing, and
-	 * specifially says not to save the model, but another "display" of the
-	 * model still needs to hang on to some model, so needs a fresh copy.
-	 */
-	public IStructuredModel reload(InputStream inputStream) throws IOException {
-		IStructuredModel result = null;
-		try {
-			aboutToChangeModel();
-			result = _getModelManager().reloadModel(getId(), inputStream);
-		} catch (UnsupportedEncodingException e) {
-			// its a very serious error to get an unsupported encoding
-			// exception,
-			// since we've presumable loaded it once already, so won't
-			// bother
-			// with a checked exception.
-			throw new SourceEditingRuntimeException(e);
-		} finally {
-			changedModel();
-		}
-		return result;
-	}
-
-	public void removeModelLifecycleListener(IModelLifecycleListener listener) {
-
-		// if manager is null, then none have been added, so
-		// no need to remove it.
-		if (fLifecycleNotificationManager == null)
-			return;
-		synchronized (fListenerLock) {
-			fLifecycleNotificationManager.removeListener(listener);
-		}
-	}
-
-
-	public void removeModelStateListener(IModelStateListener listener) {
-
-		if (listener == null)
-			return;
-		if (fModelStateListeners == null)
-			return;
-		// if its not in the listeners, we'll ignore the request
-		synchronized (fListenerLock) {
-			if (Utilities.contains(fModelStateListeners, listener)) {
-				int oldSize = fModelStateListeners.length;
-				int newSize = oldSize - 1;
-				Object[] newListeners = new Object[newSize];
-				int index = 0;
-				for (int i = 0; i < oldSize; i++) {
-					if (fModelStateListeners[i] == listener) { // ignore
-					} else {
-						// copy old to new if its not the one we are
-						// removing
-						newListeners[index++] = fModelStateListeners[i];
-					}
-				}
-				// now that we have a new array, let's switch it for the
-				// old
-				// one
-				fModelStateListeners = newListeners;
-			}
-		}
-	}
-
-
-	/**
-	 * A method that modififies the model's synchonization stamp to match the
-	 * resource. Turns out there's several ways of doing it, so this ensures a
-	 * common algorithm.
-	 */
-	public void resetSynchronizationStamp(IResource resource) {
-
-
-		setSynchronizationStamp(computeModificationStamp(resource));
-	}
-
-
-	/**
-	 * This API allows a client to initiate notification to all interested
-	 * parties that a model's underlying resource has been deleted.
-	 */
-	public void resourceDeleted() {
-
-
-		// notice this is just a public avenue to our protected method
-		fireModelResourceDeleted(this);
-	}
-
-
-	/**
-	 * This method allows a model client to initiate notification to all
-	 * interested parties that a model's underlying resource location has
-	 * changed. Note: we assume caller has already changed baseLocation, Id,
-	 * etc., since its really up to the client to determine what's "new" about
-	 * a moved model. Caution: 'this' and 'newModel' may be the same object.
-	 * This is the case for current working with FileModelProvider, but have
-	 * left the dual argument for future possiblities.
-	 */
-	public void resourceMoved(IStructuredModel newModel) {
-
-
-		// notice this is just a public avenue to our protected method
-		fireModelResourceMoved(this, newModel);
-	}
-
-
-	public void restoreState(IStateMemento memento) {
-
-
-		ModelStateMemento mMemento = (ModelStateMemento) memento;
-		// be sure to use setter, so side effects take place.
-		setDirtyState(mMemento.isDirtyState());
-		if (mMemento.isDatesInSync()) {
-			IResource resource = mMemento.getUnderlyingResource();
-			setSynchronizationStamp(computeModificationStamp(resource));
-		}
-	}
-
-
-	public void save() throws UnsupportedEncodingException, IOException, CoreException {
-
-		int type = ModelLifecycleEvent.MODEL_SAVED | ModelLifecycleEvent.PRE_EVENT;
-		ModelLifecycleEvent modelLifecycleEvent = new ModelLifecycleEvent(this, type);
-		signalLifecycleEvent(modelLifecycleEvent);
-
-		try {
-			String stringId = getId();
-			_getModelManager().saveModel(stringId, EncodingRule.CONTENT_BASED);
-		}
-
-		finally {
-			// we put end notificatin in finally block, so even if
-			// error occurs during save, listeners are still notified,
-			// since their code could depend on receiving, to clean up
-			// some state, or coordinate other resources.
-			type = ModelLifecycleEvent.MODEL_SAVED | ModelLifecycleEvent.POST_EVENT;
-			modelLifecycleEvent = new ModelLifecycleEvent(this, type);
-			signalLifecycleEvent(modelLifecycleEvent);
-		}
-	}
-
-
-	public void save(EncodingRule encodingRule) throws UnsupportedEncodingException, IOException, CoreException {
-
-		int type = ModelLifecycleEvent.MODEL_SAVED | ModelLifecycleEvent.PRE_EVENT;
-		ModelLifecycleEvent modelLifecycleEvent = new ModelLifecycleEvent(this, type);
-		signalLifecycleEvent(modelLifecycleEvent);
-
-		try {
-			String stringId = getId();
-			_getModelManager().saveModel(stringId, encodingRule);
-		} finally {
-			// we put end notificatin in finally block, so even if
-			// error occurs during save, listeners are still notified,
-			// since their code could depend on receiving, to clean up
-			// some state, or coordinate other resources.
-			type = ModelLifecycleEvent.MODEL_SAVED | ModelLifecycleEvent.POST_EVENT;
-			modelLifecycleEvent = new ModelLifecycleEvent(this, type);
-			signalLifecycleEvent(modelLifecycleEvent);
-		}
-	}
-
-
-	public void save(IFile iFile) throws UnsupportedEncodingException, IOException, CoreException {
-
-		int type = ModelLifecycleEvent.MODEL_SAVED | ModelLifecycleEvent.PRE_EVENT;
-		ModelLifecycleEvent modelLifecycleEvent = new ModelLifecycleEvent(this, type);
-		signalLifecycleEvent(modelLifecycleEvent);
-
-		try {
-			String stringId = getId();
-			_getModelManager().saveModel(iFile, stringId, EncodingRule.CONTENT_BASED);
-		}
-
-		finally {
-			// we put end notificatin in finally block, so even if
-			// error occurs during save, listeners are still notified,
-			// since their code could depend on receiving, to clean up
-			// some state, or coordinate other resources.
-			type = ModelLifecycleEvent.MODEL_SAVED | ModelLifecycleEvent.POST_EVENT;
-			modelLifecycleEvent = new ModelLifecycleEvent(this, type);
-			signalLifecycleEvent(modelLifecycleEvent);
-		}
-	}
-
-
-	public void save(IFile iFile, EncodingRule encodingRule) throws UnsupportedEncodingException, IOException, CoreException {
-
-		int type = ModelLifecycleEvent.MODEL_SAVED | ModelLifecycleEvent.PRE_EVENT;
-		ModelLifecycleEvent modelLifecycleEvent = new ModelLifecycleEvent(this, type);
-		signalLifecycleEvent(modelLifecycleEvent);
-
-		try {
-			String stringId = getId();
-			_getModelManager().saveModel(iFile, stringId, encodingRule);
-		} finally {
-			// we put end notificatin in finally block, so even if
-			// error occurs during save, listeners are still notified,
-			// since their code could depend on receiving, to clean up
-			// some state, or coordinate other resources.
-			type = ModelLifecycleEvent.MODEL_SAVED | ModelLifecycleEvent.POST_EVENT;
-			modelLifecycleEvent = new ModelLifecycleEvent(this, type);
-			signalLifecycleEvent(modelLifecycleEvent);
-		}
-	}
-
-
-	public void save(OutputStream outputStream) throws UnsupportedEncodingException, CoreException, IOException {
-
-		int type = ModelLifecycleEvent.MODEL_SAVED | ModelLifecycleEvent.PRE_EVENT;
-		ModelLifecycleEvent modelLifecycleEvent = new ModelLifecycleEvent(this, type);
-		signalLifecycleEvent(modelLifecycleEvent);
-
-		try {
-			String stringId = getId();
-			_getModelManager().saveModel(stringId, outputStream, EncodingRule.CONTENT_BASED);
-		}
-
-		finally {
-			// we put end notificatin in finally block, so even if
-			// error occurs during save, listeners are still notified,
-			// since their code could depend on receiving, to clean up
-			// some state, or coordinate other resources.
-			type = ModelLifecycleEvent.MODEL_SAVED | ModelLifecycleEvent.POST_EVENT;
-			modelLifecycleEvent = new ModelLifecycleEvent(this, type);
-			signalLifecycleEvent(modelLifecycleEvent);
-		}
-	}
-
-
-	/**
-	 * This attribute is typically used to denote the model's underlying
-	 * resource.
-	 */
-	public void setBaseLocation(java.lang.String newBaseLocation) {
-
-		fBaseLocation = newBaseLocation;
-	}
-
-	/**
-	 *  
-	 */
-	public void setDirtyState(boolean dirtyState) {
-
-		// no need to process (set or fire event), if same value
-		if (fDirtyState != dirtyState) {
-			// prechange notificaiton
-			int type = ModelLifecycleEvent.MODEL_DIRTY_STATE | ModelLifecycleEvent.PRE_EVENT;
-			ModelLifecycleEvent modelLifecycleEvent = new ModelLifecycleEvent(this, type);
-			signalLifecycleEvent(modelLifecycleEvent);
-
-
-			// the actual change
-			fDirtyState = dirtyState;
-
-			// old notification
-			// TODO: C3 remove old notification
-			if (fDirtyState == false) {
-				// if we are being set to not dirty (such as just been saved)
-				// then we need to start listening for changes
-				// again to know when to set state to true;
-				getStructuredDocument().addDocumentChangedListener(fDirtyStateWatcher);
-			}
-			fireModelDirtyStateChanged(this, dirtyState);
-
-
-			// post change notification
-			type = ModelLifecycleEvent.MODEL_DIRTY_STATE | ModelLifecycleEvent.POST_EVENT;
-			modelLifecycleEvent = new ModelLifecycleEvent(this, type);
-			signalLifecycleEvent(modelLifecycleEvent);
-		}
-	}
-
-	/**
-	 * @deprecated - will likely be deprecated soon, in favor of direct 'adds'
-	 *             ... but takes some redesign.
-	 */
-	public void setFactoryRegistry(IFactoryRegistry factoryRegistry) {
-		this.factoryRegistry = factoryRegistry;
-	}
-
-	/**
-	 * The id is the id that the model manager uses to identify this model. If
-	 * it is being set here, it means the model manger is already managing the
-	 * model with another id, so we have to keep it in sync. This method calls
-	 * notifies listners, if they haven't been notified already, that a "model
-	 * state change" is about to occur.
-	 */
-	public void setId(String newId) throws ResourceInUse {
-
-
-		// It makes no sense, I don't think, to have an id of null, so
-		// we'll throw an illegal argument exception if someone trys. Note:
-		// the IModelManager could not manage a model with an id of null,
-		// since it uses hashtables, and you can't have a null id for a
-		// hashtable.
-		if (newId == null)
-			throw new IllegalArgumentException(SSECorePlugin.getResourceString("%A_model's_id_can_not_be_nu_EXC_")); //$NON-NLS-1$ = "A model's id can not be null"
-		// To gaurd againt throwing a spurious ResourceInUse exception,
-		// which can occur when two pieces of code both want to change the id,
-		// so the second request is spurious, we'll ignore any requests that
-		// attempt to change the id to what it already is ... note, we use
-		// 'equals', not identity ('==') so that things like
-		// strings can be used. This is the same criteria that ids are
-		// found in model manager -- well, actually, I just checked, and for
-		// the hashtable impl, the criteria uses .equals AND the condition
-		// that the hash values be identical (I'm assuming this is always
-		// true, if equals is true, for now, I'm not sure
-		// we can assume that hashtable will always be used, but in
-		// general, should match.)
-		//
-		if (newId.equals(fId))
-			return;
-		// we must gaurd against reassigning an id to one that we already
-		// are managing.
-		if (getModelManager() != null) {
-			IStructuredModel newModel = getModelManager().getExistingModelForEdit(newId);
-			if (newModel != null) {
-				// be sure to release the reference we got unexepectantly
-				// (and no longer need)
-				newModel.releaseFromEdit();
-				throw new ResourceInUse();
-			}
-		}
-		try {
-			// normal code path
-			aboutToChangeModel();
-			String oldId = fId;
-			fId = newId;
-			if (getModelManager() != null) {
-				// if managed and the id has changed, notify to
-				// IModelManager
-				// TODO: try to refine the design not to do that
-				if (oldId != null && newId != null && !newId.equals(oldId)) {
-					getModelManager().moveModel(oldId, newId);
-				}
-			}
-		} finally {
-			// make sure this finally is only executed if 'about to Change
-			// model' has
-			// ben executed.
-			changedModel();
-		}
-	}
-
-	/**
-	 * Sets the contentTypeDescription.
-	 * 
-	 * @param contentTypeDescription
-	 *            The contentTypeDescription to set
-	 */
-	public void setModelHandler(IModelHandler modelHandler) {
-
-		// no need to fire events if modelHandler has been null
-		// for this model --
-		// this is an attempt at initialization optimization and may need
-		// to change in future.
-		boolean trueChange = false;
-		if (fModelHandler != null)
-			trueChange = true;
-		if (trueChange) {
-			internalAboutToBeChanged();
-		}
-		fModelHandler = modelHandler;
-		if (trueChange) {
-			internalModelChanged();
-		}
-	}
-
-
-
-	/**
-	 * @param newModelManager
-	 *            com.ibm.sed.model.IModelManager
-	 */
-	public void setModelManager(IModelManager newModelManager) {
-
-		fModelManager = newModelManager;
-	}
-
-	/**
-	 *  
-	 */
-	public void setNewState(boolean newState) {
-
-		fNewState = newState;
-	}
-
-	/**
-	 * Sets a "flag" that reinitialization is needed.
-	 */
-	public void setReinitializeNeeded(boolean needed) {
-
-		reinitializationNeeded = needed;
-	}
-
-	/**
-	 * Holds any data that the reinit procedure might find useful in
-	 * reinitializing the model. This is handy, since the reinitialization may
-	 * not take place at once, and some "old" data may be needed to properly
-	 * undo previous settings. Note: the parameter was intentially made to be
-	 * of type 'Object' so different models can use in different ways.
-	 */
-	public void setReinitializeStateData(Object object) {
-
-		reinitializeStateData = object;
-	}
-
-	/**
-	 * @param newResolver
-	 *            com.ibm.sed.util.URIResolver
-	 */
-	public void setResolver(URIResolver newResolver) {
-
-		fResolver = newResolver;
-	}
-
-	/**
-	 * @param newStructuredDocument
-	 *            com.ibm.sed.structuredDocument.IStructuredDocument
-	 */
-	public void setStructuredDocument(IStructuredDocument newStructuredDocument) {
-
-		boolean lifeCycleNotification = false;
-		if (fStructuredDocument != null) {
-			fStructuredDocument.removeDocumentChangedListener(fDirtyStateWatcher);
-			fStructuredDocument.removeDocumentAboutToChangeListener(fDocumentToModelNotifier);
-			fStructuredDocument.removeDocumentChangedListener(fDocumentToModelNotifier);
-			// prechange notificaiton
-			lifeCycleNotification = true;
-			ModelLifecycleEvent modelLifecycleEvent = new DocumentChanged(ModelLifecycleEvent.PRE_EVENT, this, fStructuredDocument, newStructuredDocument);
-			signalLifecycleEvent(modelLifecycleEvent);
-		}
-
-		// hold for life cycle notification
-		IStructuredDocument previousDocument = fStructuredDocument;
-		// the actual change
-		fStructuredDocument = newStructuredDocument;
-
-
-		// at the super class level, we'll listen for structuredDocument
-		// changes
-		// so we can set our dirty state flag
-		if (fStructuredDocument != null) {
-			fStructuredDocument.addDocumentChangedListener(fDirtyStateWatcher);
-			fStructuredDocument.addDocumentAboutToChangeListener(fDocumentToModelNotifier);
-			fStructuredDocument.addDocumentChangedListener(fDocumentToModelNotifier);
-		}
-
-		if (lifeCycleNotification) {
-			// post change notification
-			ModelLifecycleEvent modelLifecycleEvent = new DocumentChanged(ModelLifecycleEvent.POST_EVENT, this, previousDocument, newStructuredDocument);
-			signalLifecycleEvent(modelLifecycleEvent);
-		}
-
-	}
-
-	/**
-	 * Insert the method's description here. Creation date: (9/7/2001 2:30:26
-	 * PM)
-	 * 
-	 * @param newSynchronizationStamp
-	 *            long
-	 */
-	protected void setSynchronizationStamp(long newSynchronizationStamp) {
-
-		fSynchronizationStamp = newSynchronizationStamp;
-	}
-
-	public void setUndoManager(IStructuredTextUndoManager undoManager) {
-
-		IStructuredDocument structuredDocument = getStructuredDocument();
-		if (structuredDocument == null) {
-			throw new IllegalStateException("document was null when undo manager set on model"); //$NON-NLS-1$
-		}
-		structuredDocument.setUndoManager(undoManager);
-	}
-
-	/**
-	 * to be called only be "friendly" classes, such as ModelManger, and
-	 * subclasses.
-	 */
-	protected void signalLifecycleEvent(ModelLifecycleEvent event) {
-
-		if (fLifecycleNotificationManager == null)
-			return;
-		fLifecycleNotificationManager.signalLifecycleEvent(event);
-	}
-
-	private void signalPostLifeCycleListenerRelease(IStructuredModel structuredModel) {
-		int type = ModelLifecycleEvent.MODEL_RELEASED | ModelLifecycleEvent.POST_EVENT;
-		// what's wrong with this design that a cast is needed here!?
-		ModelLifecycleEvent event = new ModelLifecycleEvent(structuredModel, type);
-		((AbstractStructuredModel) structuredModel).signalLifecycleEvent(event);
-	}
-
-	private void signalPreLifeCycleEventRelease(IStructuredModel structuredModel) {
-		int type = ModelLifecycleEvent.MODEL_RELEASED | ModelLifecycleEvent.PRE_EVENT;
-		// what's wrong with this design that a cast is needed here!?
-		ModelLifecycleEvent event = new ModelLifecycleEvent(structuredModel, type);
-		((AbstractStructuredModel) structuredModel).signalLifecycleEvent(event);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/AdapterFactory.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/AdapterFactory.java
deleted file mode 100644
index 720f5e7..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/AdapterFactory.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-
-
-public interface AdapterFactory {
-
-	/**
-	 * 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.
-	 */
-	INodeAdapter adapt(INodeNotifier object);
-
-	/**
-	 * returns an instance of the adapter factory. Unlike clone, this method
-	 * may return the same instance, such as in the case where the
-	 * AdapterFactory is intended to be a singleton.
-	 */
-	public AdapterFactory copy();
-
-	boolean isFactoryForType(Object type);
-
-	/**
-	 *  
-	 */
-	public void release();
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/DocumentChanged.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/DocumentChanged.java
deleted file mode 100644
index 4a61dfa..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/DocumentChanged.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-
-public class DocumentChanged extends ModelLifecycleEvent {
-	private IStructuredDocument fNewDocument;
-
-	private IStructuredDocument fOldDocument;
-
-	protected DocumentChanged() {
-
-		super(ModelLifecycleEvent.MODEL_DOCUMENT_CHANGED);
-
-	}
-
-	protected DocumentChanged(int additionalType, IStructuredModel model) {
-
-		super(model, ModelLifecycleEvent.MODEL_DOCUMENT_CHANGED | additionalType);
-
-	}
-
-	public DocumentChanged(int additionalType, IStructuredModel model, IStructuredDocument oldDocument, IStructuredDocument newDocument) {
-
-		this(additionalType, model);
-		fOldDocument = oldDocument;
-		fNewDocument = newDocument;
-	}
-
-	public IStructuredDocument getNewDocument() {
-
-		return fNewDocument;
-	}
-
-	public IStructuredDocument getOldDocument() {
-
-		return fOldDocument;
-	}
-
-	void setNewDocument(IStructuredDocument newDocument) {
-
-		fNewDocument = newDocument;
-	}
-
-	void setOldDocument(IStructuredDocument oldDocument) {
-
-		fOldDocument = oldDocument;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/FactoryRegistry.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/FactoryRegistry.java
deleted file mode 100644
index f7e745e..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/FactoryRegistry.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.sse.core.internal.Logger;
-
-
-/**
- * This class simply maintains the list of factories and returns singleton
- * instances of them. Some "built in" types are automatically created form
- * FactoryConfig, if not found registerd, but normally clients can/should
- * register their own factories.
- *  
- */
-public class FactoryRegistry implements IFactoryRegistry {
-
-	private List factories;
-
-	/**
-	 *  
-	 */
-	public FactoryRegistry() {
-		super();
-
-	}
-
-	protected List _getFactories() {
-
-		if (factories == null) {
-			// may need to use java.util.Collections.synchronizedList() if
-			// syncronization becomes
-			// necessary (and if so, remember to synchronize on factories)
-			factories = new ArrayList();
-		}
-		return factories;
-
-	}
-
-	public void addFactory(AdapterFactory factory) {
-		_getFactories().add(factory);
-	}
-
-	public void clearFactories() {
-		factories.clear();
-	}
-
-	/*
-	 * @see IFactoryRegistry#contains(Object)
-	 */
-	public boolean contains(Object type) {
-		boolean result = false;
-		// note: we're not using cloned list, so strictly speaking
-		// is not thread safe.
-		List internalList = _getFactories();
-		for (int i = 0; i < internalList.size(); i++) {
-			AdapterFactory factory = (AdapterFactory) internalList.get(i);
-			if (factory.isFactoryForType(type)) {
-				result = true;
-				break;
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Returns a shallow copy of the list of factories in the registry. Note:
-	 * this can not be used to add/remove factories. Its primarily provided
-	 * for those few cases where a list of factories must be copied from one
-	 * model and added to another.
-	 */
-	public List getFactories() {
-		// note: for object integrity, we don't let anyone get
-		// our main list (so they have to add through addFactory),
-		// but we will return a shallow "cloned" list.
-		List factoryList = new ArrayList(_getFactories());
-		return factoryList;
-	}
-
-	/**
-	 * This method is a not a pure resistry. Factories retrieved based on
-	 * their response to "isFactoryForType(type)". Note that if there is more
-	 * than one factory that can answer 'true' that the most recently added
-	 * factory is used.
-	 */
-	public AdapterFactory getFactoryFor(Object type) {
-
-		AdapterFactory result = null;
-		if (factories == null)
-			return null;
-		int listSize = factories.size();
-		for (int i = listSize - 1; i >= 0; i--) {
-			// It is the adapter factories responsibility to answer
-			// isFactoryForType so it gets choosen.
-			// Notice we are going through the list backwards to get the
-			// factory added last.
-			AdapterFactory a = (AdapterFactory) factories.get(i);
-			if (a.isFactoryForType(type)) {
-				result = a;
-				break;
-			}
-		}
-		return result;
-
-	}
-
-	/**
-	 *  
-	 */
-	public void release() {
-		// modified to work on copy of list, for V5PTF1
-		// send release to local copy of list
-		// of factories, since some factories, during
-		// their release function, may remove
-		// themselves from the registry.
-		List localList = getFactories();
-		for (int i = 0; i < localList.size(); i++) {
-			AdapterFactory a = (AdapterFactory) localList.get(i);
-			// To help bullet proof code, we'll catch and log
-			// any messages thrown by factories during release,
-			// but we'll attempt to keep going.
-			// In nearly all cases, though, such errors are
-			// severe for product/client, and need to be fixed.
-			try {
-				a.release();
-			} catch (Exception e) {
-				Logger.logException("Program problem releasing factory" + a, e); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * Removes a factory if it can be retrieved by getFactoryFor(type). If
-	 * there is more than one, all are removed. If there is none, the call
-	 * simply returns (that is, it is not considered an error).
-	 */
-	public void removeFactoriesFor(java.lang.Object type) {
-		if (factories != null) {
-			int listSize = factories.size();
-			// we'll go backwards through list, since we're removing, so
-			// 'size' change won't matter.
-			// Note: I'm assuming other items in the collection do not change
-			// position
-			// simply because another was removed.
-			for (int i = listSize - 1; i >= 0; i--) {
-				// It is the adapter factories responsibility to answer
-				// isFactoryForType so it gets choosen.
-				AdapterFactory a = (AdapterFactory) factories.get(i);
-				if (a.isFactoryForType(type)) {
-					factories.remove(a);
-				}
-			}
-		}
-	}
-
-	public void removeFactory(AdapterFactory factory) {
-		_getFactories().remove(factory);
-
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IFactoryRegistry.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IFactoryRegistry.java
deleted file mode 100644
index 2bf4052..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IFactoryRegistry.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-
-
-import java.util.List;
-
-public interface IFactoryRegistry {
-
-	void addFactory(AdapterFactory factory);
-
-	void clearFactories();
-
-	/**
-	 * returns true if already contains a factory for the given type. This is
-	 * purely a convenience method for those few cases that want to avoid
-	 * adding a factory if it is already in the registry.
-	 */
-	boolean contains(Object type);
-
-	/**
-	 * Returns a shallow cloned list of the factories in the registry.
-	 */
-	List getFactories();
-
-	/**
-	 * This method is a not a pure resistry. Factories retrieved based on
-	 * their response to "isFactoryForType(type)". Note that if there is more
-	 * than one factory that can answer 'true' that the most recently added
-	 * factory is used.
-	 */
-	AdapterFactory getFactoryFor(Object type);
-
-	/**
-	 *  
-	 */
-	void release();
-
-	/**
-	 * Removes a factory if it can be retrieved by getFactoryFor(type). If
-	 * there is more than one, all are removed. If there is none, the call
-	 * simply returns (that is, it is not considered an error).
-	 */
-	void removeFactoriesFor(Object type);
-
-	void removeFactory(AdapterFactory factory);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelLifecycleListener.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelLifecycleListener.java
deleted file mode 100644
index 1be20b7..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelLifecycleListener.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-/**
- * This is an early version of a class that may change over the next few
- * milestones.
- */
-
-public interface IModelLifecycleListener {
-
-	void processPostModelEvent(ModelLifecycleEvent event);
-
-	void processPreModelEvent(ModelLifecycleEvent event);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelLoaderExtension.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelLoaderExtension.java
deleted file mode 100644
index 2d6e2be..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelLoaderExtension.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-
-/**
- * @author nsd
- */
-public interface IModelLoaderExtension {
-	/**
-	 * Create a Structured Model with the given StructuredDocument instance as
-	 * its document (instead of a new document instance as well)
-	 */
-	IStructuredModel createModel(IStructuredDocument document, String baseLocation);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelManager.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelManager.java
deleted file mode 100644
index 31c83e2..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelManager.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.Enumeration;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.common.encoding.EncodingRule;
-import org.eclipse.wst.sse.core.exceptions.ResourceAlreadyExists;
-import org.eclipse.wst.sse.core.exceptions.ResourceInUse;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.util.URIResolver;
-
-
-/**
- * Responsible for providing a set of APIs for creating a new model manager,
- * for managing (add or remove) model loaders and model dumpers, and for
- * managing (get, release, save, and save as) models.
- * 
- * Clients should not implement.
- */
-public interface IModelManager {
-
-	public final static String DUPLICATED_MODEL = "org.eclipse.wst.sse.core.IModelManager.DUPLICATED_MODEL"; //$NON-NLS-1$
-	public final static String UNMANAGED_MODEL = "org.eclipse.wst.sse.core.IModelManager.UNMANAGED_MODEL"; //$NON-NLS-1$
-
-	/**
-	 * 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.
-	 * 
-	 * The method isModelStateChanging can be used by a client to determin if
-	 * the model is already in a change sequence.
-	 */
-	void aboutToChangeModels();
-
-	void addModelManagerListener(IModelManagerListener listener);
-
-	/**
-	 * Calculate id provides a common way to determine the id from the input
-	 * ... needed to get and save the model. It is a simple class utility, but
-	 * is an instance method so can be accessed via interface.
-	 */
-	public String calculateId(IFile file);
-
-	/**
-	 * 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.
-	 *  
-	 */
-	void changedModels();
-
-	IStructuredModel copyModelForEdit(String oldId, String newId) throws ResourceInUse;
-
-	/**
-	 * createNewInstance is similar to clone, except the new instance has no
-	 * content. Note: this produces an unmanaged model, for temporary use. If
-	 * a true shared model is desired, use "copy".
-	 */
-	public IStructuredModel createNewInstance(IStructuredModel model) throws IOException;
-
-	/**
-	 * Factory method, since a proper IStructuredDocument must have a proper
-	 * parser assigned. Note: its assume that IFile does not actually exist as
-	 * a resource yet. If it does, ResourceAlreadyExists exception is thrown.
-	 * If the resource does already exist, then createStructuredDocumentFor is
-	 * the right API to use.
-	 *  
-	 */
-	IStructuredDocument createNewStructuredDocumentFor(IFile iFile) throws ResourceAlreadyExists, IOException, CoreException;
-
-	/**
-	 * Factory method, since a proper IStructuredDocument must have a proper
-	 * parser assigned. Note: clients should verify IFile exists before using
-	 * this method. If this IFile does not exist, then
-	 * createNewStructuredDocument is the correct API to use.
-	 */
-	IStructuredDocument createStructuredDocumentFor(IFile iFile) throws IOException, CoreException;
-
-	/**
-	 * Conveience method, since a proper IStructuredDocument must have a
-	 * proper parser assigned. It should only be used when an empty
-	 * structuredDocument is needed. Otherwise, use IFile form.
-	 */
-	IStructuredDocument createStructuredDocumentFor(String contentTypeId);
-
-	/**
-	 * @deprecated -- I marked as deprecated to discouage use of this method.
-	 *             It does not really work for JSP fragments, since JSP
-	 *             Fragments need an IFile to correctly look up the content
-	 *             settings. Use IFile form instead. Note: some confustion
-	 *             with it and the form for HTPP encoding, so once a null arg
-	 *             is allowed in that API ... we can remove this one. (after
-	 *             verifying again with Tom/Linksbuild)
-	 */
-	IStructuredDocument createStructuredDocumentFor(String filename, InputStream inputStream, URIResolver resolver) throws IOException;
-
-	IStructuredDocument createStructuredDocumentFor(String filename, InputStream inputStream, URIResolver resolver, String ianaEncodingName) throws IOException;
-
-	IStructuredDocument createStructuredDocumentFor(String filename, String content, URIResolver resolver) throws IOException;
-
-	/**
-	 * Conveience method. It depends on the loaders newModel method to return
-	 * an appropriate StrucuturedModel appropriately initialized.
-	 */
-	IStructuredModel createUnManagedStructuredModelFor(IFile iFile) throws IOException, CoreException;
-
-	/**
-	 * Conveience method. It depends on the loaders newModel method to return
-	 * an appropriate StrucuturedModel appropriately initialized.
-	 */
-	IStructuredModel createUnManagedStructuredModelFor(String contentTypeId);
-
-	IStructuredModel createUnManagedStructuredModelFor(String contentTypeId, URIResolver resolver);
-
-	/**
-	 * Note: users of this 'model' must still release it when finished.
-	 * Returns null if there's not a model corresponding to document.
-	 */
-	IStructuredModel getExistingModelForEdit(IDocument document);
-
-	public IStructuredModel getExistingModelForEdit(IFile iFile);
-
-	/**
-	 * This is similar to the getModel method, except this method does not
-	 * create a model. This method does increment the reference count (if it
-	 * exists). If the model does not already exist in the cache of models,
-	 * null is returned.
-	 */
-	public IStructuredModel getExistingModelForEdit(Object id);
-
-	/**
-	 * Note: users of this 'model' must still release it when finished.
-	 * Returns null if there's not a model corresponding to document.
-	 */
-	IStructuredModel getExistingModelForRead(IDocument document);
-
-	public IStructuredModel getExistingModelForRead(IFile iFile);
-
-	/**
-	 * This is similar to the getModel method, except this method does not
-	 * create a model. This method does increment the reference count (if it
-	 * exists). If the model does not already exist in the cache of models,
-	 * null is returned.
-	 */
-	public IStructuredModel getExistingModelForRead(Object id);
-
-	public Enumeration getExistingModelIds();
-
-	public IStructuredModel getModelForEdit(IFile iFile) throws IOException, CoreException;
-
-	/*
-	 * @deprecated - encoding is handled automatically
-	 */
-	public IStructuredModel getModelForEdit(IFile iFile, EncodingRule encodingRule) throws UnsupportedEncodingException, IOException, CoreException;
-
-	public IStructuredModel getModelForEdit(IFile iFile, String encoding, String lineDelimiter) throws UnsupportedEncodingException, IOException, CoreException;
-
-	public IStructuredModel getModelForEdit(IStructuredDocument textFileBufferDocument);
-
-	/*
-	 * @deprecated - a URI resolver should be automatically created when
-	 *             needed
-	 */
-	public IStructuredModel getModelForEdit(String id, InputStream inStream, URIResolver resolver) throws UnsupportedEncodingException, IOException;
-
-	public IStructuredModel getModelForRead(IFile iFile) throws IOException, CoreException;
-
-	/*
-	 * @deprecated - encoding is handled automatically
-	 */
-	public IStructuredModel getModelForRead(IFile iFile, EncodingRule encodingRule) throws UnsupportedEncodingException, IOException, CoreException;
-
-	/*
-	 * @deprecated - encoding and line delimiters are handled automatically
-	 */
-	public IStructuredModel getModelForRead(IFile iFile, String encoding, String lineDelimiter) throws UnsupportedEncodingException, IOException, CoreException;
-
-	public IStructuredModel getModelForRead(IStructuredDocument textFileBufferDocument);
-
-	/*
-	 * @deprecated - a URI resolver should be automatically created when
-	 *             needed
-	 */
-	public IStructuredModel getModelForRead(String filename, InputStream inStream, URIResolver resolver) throws UnsupportedEncodingException, IOException;
-
-	/**
-	 * This method will not create a new model if it already exists ... if
-	 * force is false. The idea is that a client should call this method once
-	 * with force set to false. If the exception is thrown, then prompt client
-	 * if they want to overwrite.
-	 */
-	IStructuredModel getNewModelForEdit(IFile iFile, boolean force) throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException;
-
-	/**
-	 * This method will not create a new model if it already exists ... if
-	 * force is false. The idea is that a client should call this method once
-	 * with force set to false. If the exception is thrown, then prompt client
-	 * if they want to overwrite.
-	 */
-	IStructuredModel getNewModelForRead(IFile iFile, boolean force) throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException;
-
-	/**
-	 * This function returns the reference count of underlying model.
-	 * 
-	 * @param id
-	 *            Object The id of the model TODO: try to refine the design
-	 *            not to use this function
-	 * @deprecated
-	 */
-	int getReferenceCount(Object id);
-
-	/**
-	 * This function returns the reference count of underlying model.
-	 * 
-	 * @param id
-	 *            Object The id of the model TODO: try to refine the design
-	 *            not to use this function
-	 * @deprecated
-	 */
-	int getReferenceCountForEdit(Object id);
-
-	/**
-	 * This function returns the reference count of underlying model.
-	 * 
-	 * @param id
-	 *            Object The id of the model TODO: try to refine the design
-	 *            not to use this function
-	 * @deprecated
-	 */
-	int getReferenceCountForRead(Object id);
-
-	/**
-	 * This function returns true if there are other references to the
-	 * underlying model.
-	 * 
-	 * @param id
-	 *            Object The id of the model
-	 */
-	boolean isShared(Object id);
-
-	/**
-	 * This function returns true if there are other references to the
-	 * underlying model.
-	 * 
-	 * @param id
-	 *            Object The id of the model
-	 */
-	boolean isSharedForEdit(Object id);
-
-	/**
-	 * This function returns true if there are other references to the
-	 * underlying model.
-	 * 
-	 * @param id
-	 *            Object The id of the model
-	 */
-	boolean isSharedForRead(Object id);
-
-	/**
-	 * This method can be called to determine if the model manager is within a
-	 * "aboutToChange" and "changed" sequence.
-	 */
-	public boolean isStateChanging();
-
-	/**
-	 * This method changes the id of the model. TODO: try to refine the design
-	 * not to use this function
-	 * 
-	 * @deprecated
-	 */
-	void moveModel(Object oldId, Object newId);
-
-	/**
-	 * This method can be called when the content type of a model changes. Its
-	 * assumed the contentType has already been changed, and this method uses
-	 * the text of the old one, to repopulate the text of the new one. In
-	 * theory, the actual instance could change, (e.g. using 'saveAs' to go
-	 * from xml to dtd), but in practice, the intent of this API is to return
-	 * the same instance, just using different handlers, adapter factories,
-	 * etc.
-	 */
-	IStructuredModel reinitialize(IStructuredModel model) throws IOException;
-
-	/**
-	 * This is similar to the getModel method, except this method does not use
-	 * the cached version, but forces the cached version to be replaced with a
-	 * fresh, unchanged version. Note: this method does not change any
-	 * reference counts. Also, if there is not already a cached version of the
-	 * model, then this call is essentially ignored (that is, it does not put
-	 * a model in the cache) and returns null.
-	 * 
-	 * @deprecated
-	 */
-	IStructuredModel reloadModel(Object id, InputStream inStream) throws UnsupportedEncodingException;
-
-	void removeModelManagerListener(IModelManagerListener listener);
-
-	void saveStructuredDocument(IStructuredDocument structuredDocument, IFile iFile) throws UnsupportedEncodingException, IOException, CoreException;
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelManagerListener.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelManagerListener.java
deleted file mode 100644
index bb7a3ee..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelManagerListener.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-
-
-/**
- * Interface for those wanting to listen to events fired by the model manager.
- */
-public interface IModelManagerListener {
-
-	/**
-	 * One or more models are about to be changed. This typically is initiated
-	 * by one client of the model (such as LinksBuilder), to signal that
-	 * several models are about to be changed. These models might be
-	 * interrelated, so a listener (such as FrameManger) will know to a
-	 * "massive" change is about to take place.
-	 */
-	void modelsAboutToBeChanged();
-
-	/**
-	 * Signals that the changes foretold by modelsAboutToBeChanged have been
-	 * made. A typical use might be to refresh, or to resume processing that
-	 * was suspended as a result of modelsAboutToBeChanged.
-	 */
-	void modelsChanged();
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelManagerPlugin.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelManagerPlugin.java
deleted file mode 100644
index 7df2c0c..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelManagerPlugin.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.sse.core;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.sse.core.internal.modelhandler.ModelHandlerRegistry;
-
-
-/**
- * @deprecated use StructuredModelManager instead
- */
-public interface IModelManagerPlugin {
-	//  private static ModelManagerPlugin instance;
-	public final static String ID = "org.eclipse.wst.sse.core"; //$NON-NLS-1$
-
-	/**
-	 * @deprecated use ModelHandlerRegistry.getInstance() instead
-	 */
-	public abstract ModelHandlerRegistry getModelHandlerRegistry();
-
-	/**
-	 * @deprecated use StructuredModelManager.getInstance().getModelManager() instead
-	 */
-	public abstract IModelManager getModelManager();
-
-	public Preferences getPluginPreferences();
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelStateListener.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelStateListener.java
deleted file mode 100644
index 0659752..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelStateListener.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-
-
-/**
- * Interface for those wanting to listen to a model's state changing.
- */
-public interface IModelStateListener {
-
-	/**
-	 * A model is about to be changed. This typically is initiated by one
-	 * client of the model, to signal a large change and/or a change to the
-	 * model's ID or base Location. A typical use might be if a client might
-	 * want to suspend processing until all changes have been made.
-	 */
-	void modelAboutToBeChanged(IStructuredModel model);
-
-	/**
-	 * Signals that the changes foretold by modelAboutToBeChanged have been
-	 * made. A typical use might be to refresh, or to resume processing that
-	 * was suspended as a result of modelAboutToBeChanged.
-	 */
-	void modelChanged(IStructuredModel model);
-
-	/**
-	 * Notifies that a model's dirty state has changed, and passes that state
-	 * in isDirty. A model becomes dirty when any change is made, and becomes
-	 * not-dirty when the model is saved.
-	 */
-	void modelDirtyStateChanged(IStructuredModel model, boolean isDirty);
-
-	/**
-	 * A modelDeleted means the underlying resource has been deleted. The
-	 * model itself is not removed from model management until all have
-	 * released it. Note: baseLocation is not (necessarily) changed in this
-	 * event, but may not be accurate.
-	 */
-	void modelResourceDeleted(IStructuredModel model);
-
-	/**
-	 * A model has been renamed or copied (as in saveAs..). In the renamed
-	 * case, the two paramenters are the same instance, and only contain the
-	 * new info for id and base location.
-	 */
-	void modelResourceMoved(IStructuredModel oldModel, IStructuredModel newModel);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelStateListenerExtended.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelStateListenerExtended.java
deleted file mode 100644
index 4d5e026..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IModelStateListenerExtended.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-
-
-/**
- * This interface defines two new model level events. In order to avoid
- * unnecessary last minute changes from clients, this interface was created as
- * a "stop gap" measure. Eventually, it will become part of the normal
- * ModelStateListener interface.
- */
-public interface IModelStateListenerExtended extends IModelStateListener {
-
-
-	void modelAboutToBeReinitialized(IStructuredModel structuredModel);
-
-	void modelReinitialized(IStructuredModel structuredModel);
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/INodeAdapter.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/INodeAdapter.java
deleted file mode 100644
index 644f46c..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/INodeAdapter.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-
-
-public interface INodeAdapter {
-
-	/**
-	 * Allowing the INodeAdapter to compare itself against the type allows it
-	 * to return true in more than one case.
-	 */
-	boolean isAdapterForType(Object type);
-
-	/**
-	 */
-	void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/INodeNotifier.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/INodeNotifier.java
deleted file mode 100644
index 0900799..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/INodeNotifier.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-
-
-import java.util.Collection;
-
-public interface INodeNotifier {
-	static final int ADD = 2;
-
-	// Possible values for eventType
-	static final int CHANGE = 1; // update - non structural
-	// removed
-	// when large changes are made to a sub-tree
-	static final int CONTENT_CHANGED = 5; // sent to the parent notifier
-	// these strings are for printing, such as during debuging
-	static final String[] EVENT_TYPE_STRINGS = new String[]{"undefined", "CHANGE", "ADD", "REMOVE", "STRUCUTRED_CHANGED", "CONTENT_CHANGED"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-	static final int REMOVE = 3;
-	static final int STRUCTURE_CHANGED = 4; // sent in addition to adds and
-
-	// when the child value changed
-
-	/**
-	 * Add an adapter of this notifier.
-	 * 
-	 * @param o
-	 *            com.ibm.etools.emf.notify.INodeAdapter
-	 */
-	void addAdapter(INodeAdapter o);
-
-	/**
-	 * Return an exisiting adapter of type "type" or if none found create a
-	 * new adapter using a registered adapter factory
-	 */
-	INodeAdapter getAdapterFor(Object type);
-
-	/**
-	 * Return a read-only Collection of the Adapters to this notifier.
-	 * 
-	 * @return com.ibm.etools.emf.notify.INodeAdapter
-	 */
-	Collection getAdapters();
-
-	/**
-	 * Return an exisiting adapter of type "type" or null if none found
-	 */
-	INodeAdapter getExistingAdapter(Object type);
-
-	/**
-	 */
-	void notify(int eventType, Object changedFeature, Object oldValue, Object newValue, int pos);
-
-	/**
-	 * Remove an adapter of this notifier.
-	 * 
-	 * @param o
-	 *            com.ibm.etools.emf.notify.INodeAdapter
-	 */
-	void removeAdapter(INodeAdapter o);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IStateMemento.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IStateMemento.java
deleted file mode 100644
index ae5373e..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IStateMemento.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-
-
-/**
- * Marker-only interface, at this point.
- */
-public interface IStateMemento {
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IStructuredModel.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IStructuredModel.java
deleted file mode 100644
index 2cc0af5..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IStructuredModel.java
+++ /dev/null
@@ -1,395 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-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.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.wst.common.encoding.EncodingRule;
-import org.eclipse.wst.sse.core.exceptions.ResourceAlreadyExists;
-import org.eclipse.wst.sse.core.exceptions.ResourceInUse;
-import org.eclipse.wst.sse.core.modelhandler.IModelHandler;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.undo.IStructuredTextUndoManager;
-import org.eclipse.wst.sse.core.util.URIResolver;
-
-
-/**
- */
-public interface IStructuredModel extends IAdaptable {
-
-
-	/**
-	 * 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 listeners is
-	 * sent only once.
-	 * 
-	 * Note that the client who is making these changes has the responsibility
-	 * to restore the model's 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.
-	 * 
-	 * This method is a matched pair to changedModel, and must be called
-	 * before changedModel. A client should never call changedModel without
-	 * calling aboutToChangeModel first nor call aboutToChangeModel without
-	 * calling changedModel later from the same Thread.
-	 */
-	void aboutToChangeModel();
-
-	void addModelLifecycleListener(IModelLifecycleListener listener);
-
-	void addModelStateListener(IModelStateListener listener);
-
-	/**
-	 * Begin recording undo transactions.
-	 */
-	void beginRecording(Object requester);
-
-	/**
-	 * Begin recording undo transactions.
-	 */
-	void beginRecording(Object requester, int cursorPosition, int selectionLength);
-
-	/**
-	 * Begin recording undo transactions.
-	 */
-	void beginRecording(Object requester, String label);
-
-	/**
-	 * Begin recording undo transactions.
-	 */
-	void beginRecording(Object requester, String label, int cursorPosition, int selectionLength);
-
-	/**
-	 * Begin recording undo transactions.
-	 */
-	void beginRecording(Object requester, String label, String description);
-
-	/**
-	 * Begin recording undo transactions.
-	 */
-	void beginRecording(Object requester, String label, String description, int cursorPosition, int selectionLength);
-
-	/**
-	 * 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.
-	 *  
-	 */
-	void changedModel();
-
-	long computeModificationStamp(IResource resource);
-
-	/**
-	 * @deprecated
-	 * @return com.ibm.sed.model.IStructuredModel
-	 */
-	IStructuredModel copy(String id) throws ResourceInUse, ResourceAlreadyExists;
-
-	/**
-	 * Disable undo management.
-	 */
-	void disableUndoManagement();
-
-	/**
-	 * Enable undo management.
-	 */
-	void enableUndoManagement();
-
-	/**
-	 * End recording undo transactions.
-	 */
-	void endRecording(Object requester);
-
-	/**
-	 * End recording undo transactions.
-	 */
-	void endRecording(Object requester, int cursorPosition, int selectionLength);
-
-	/**
-	 * This is a client-defined value for what that client (and/or loader)
-	 * considers the "base" of the structured model. Frequently the location
-	 * is either a workspace root-relative path of a workspace resource or an
-	 * absolute path in the local file system.
-	 */
-	String getBaseLocation();
-
-	/**
-	 * @return The associated content type identifier (String) for this model.
-	 */
-	String getContentTypeIdentifier();
-
-	/**
-	 * 
-	 * @return The model's IFactoryRegistry. A model is not valid without one.
-	 */
-	IFactoryRegistry getFactoryRegistry();
-
-	/**
-	 * The id is the id that the model manager uses to identify this model
-	 */
-	String getId();
-
-	/**
-	 *  
-	 */
-	IndexedRegion getIndexedRegion(int offset);
-
-	/**
-	 * This method returns a mememto that can later be used to restore the
-	 * state at this point. A model's state, in this sense, does not relate to
-	 * its content, or Ids, etc., just its dirty state, and its
-	 * synchronization state with its underlying resource.
-	 * 
-	 * The 'resource' argument must be the resource that underlies the
-	 * instance of the model this method is sent to. Note: this parameter will
-	 * not be required in future versions of 'strucutured model'.
-	 */
-	IStateMemento getMemento(IResource resource);
-
-	/**
-	 * ContentTypeDescription provides an object that describes what the
-	 * content of the file is, e.g. HTML, XML, etc. Compare with
-	 * getExternalFileTypeDescription. Though they both return objects of type
-	 * ContentTypeDescription, the external file type is intended to denote
-	 * JSP, regardless of what the content of that JSP file is. Even for a JSP
-	 * file, the ContentTypeDescription will be set according to that file's
-	 * "internal" contents.
-	 * 
-	 * @return ContentTypeDescription
-	 */
-	IModelHandler getModelHandler();
-
-	IModelManager getModelManager();
-
-	/**
-	 * This function returns the reference count of underlying model.
-	 * 
-	 * @param id
-	 *            Object The id of the model TODO: try to refine the design
-	 *            not to use this function
-	 */
-	int getReferenceCount();
-
-	/**
-	 * This function returns the reference count of underlying model.
-	 * 
-	 * @param id
-	 *            Object The id of the model TODO: try to refine the design
-	 *            not to use this function
-	 */
-	int getReferenceCountForEdit();
-
-	/**
-	 * This function returns the reference count of underlying model.
-	 * 
-	 * @param id
-	 *            Object The id of the model TODO: try to refine the design
-	 *            not to use this function
-	 */
-	int getReferenceCountForRead();
-
-	Object getReinitializeStateData();
-
-	/**
-	 * Get URI resolution helper
-	 */
-	URIResolver getResolver();
-
-	IStructuredDocument getStructuredDocument();
-
-	/**
-	 * modification date of underlying resource, when this model was open, or
-	 * last saved. (Note: for this version, the client must manage the
-	 * accuracy of this data)
-	 */
-	long getSynchronizationStamp();
-
-	/**
-	 * Get undo manager.
-	 */
-	IStructuredTextUndoManager getUndoManager();
-
-	/**
-	 *  
-	 */
-	boolean isDirty();
-
-	/**
-	 * This method can be called to determine if the model is within a
-	 * "aboutToChange" and "changed" sequence.
-	 */
-	public boolean isModelStateChanging();
-
-	/**
-	 *  
-	 */
-	boolean isNew();
-
-	boolean isReinitializationNeeded();
-
-	/**
-	 * This is a combination of if the model is dirty and if the model is
-	 * shared for write access. The last writer as the responsibility to be
-	 * sure the user is prompted to save.
-	 */
-	public boolean isSaveNeeded();
-
-	/**
-	 * This function returns true if either isSharedForRead or isSharedForEdit
-	 * is true.
-	 */
-	boolean isShared();
-
-	/**
-	 * This function returns true if there are other references to the
-	 * underlying model.
-	 */
-	boolean isSharedForEdit();
-
-	/**
-	 * This function returns true if there are other references to the
-	 * underlying model.
-	 */
-	boolean isSharedForRead();
-
-	/**
-	 * newInstance is similar to clone, except that the newInstance contains
-	 * no content. Its purpose is so clients can get a temporary, unmanaged,
-	 * model of the same "type" as the original. Note: the client may still
-	 * need to do some intialization of the model returned by newInstance,
-	 * depending on desired use. For example, the only factories in the
-	 * newInstance are those that would be normally be created for a model of
-	 * the given contentType. Others are not copied automatically, and if
-	 * desired, should be added by client.
-	 */
-	IStructuredModel newInstance() throws IOException;
-
-	/**
-	 * Performs a reinit procedure. For this model. Note for future: there may
-	 * be a day where the model returned from this method is a different
-	 * instance than the instance it was called on. This will occur when there
-	 * is full support for "save as" type functions, where the model could
-	 * theoretically change completely.
-	 */
-	IStructuredModel reinit() throws IOException;
-
-	/**
-	 * This function allows the model to free up any resources it might be
-	 * using. In particular, itself, as stored in the IModelManager.
-	 *  
-	 */
-	void releaseFromEdit();
-
-	/**
-	 * This function allows the model to free up any resources it might be
-	 * using. In particular, itself, as stored in the IModelManager.
-	 *  
-	 */
-	void releaseFromRead();
-
-	/**
-	 * This function replenishes the model with the resource without saving
-	 * any possible changes. It is used when one editor may be closing, and
-	 * specifially says not to save the model, but another "display" of the
-	 * model still needs to hang on to some model, so needs a fresh copy.
-	 */
-	IStructuredModel reload(InputStream inputStream) throws IOException;
-
-	void removeModelLifecycleListener(IModelLifecycleListener listener);
-
-	void removeModelStateListener(IModelStateListener listener);
-
-	/**
-	 * A method that modififies the model's synchonization stamp to match the
-	 * resource. Turns out there's several ways of doing it, so this ensures a
-	 * common algorithm.
-	 */
-	void resetSynchronizationStamp(IResource resource);
-
-	void resourceDeleted();
-
-	void resourceMoved(IStructuredModel newModel);
-
-	void restoreState(IStateMemento memento);
-
-	void save() throws UnsupportedEncodingException, IOException, CoreException;
-
-	void save(EncodingRule encodingRule) throws UnsupportedEncodingException, IOException, CoreException;
-
-	void save(IFile iFile) throws UnsupportedEncodingException, IOException, CoreException;
-
-	void save(IFile iFile, EncodingRule encodingRule) throws UnsupportedEncodingException, IOException, CoreException;
-
-	void save(OutputStream outputStream) throws UnsupportedEncodingException, IOException, CoreException;
-
-	void setBaseLocation(String newBaseLocation);
-
-	public void setDirtyState(boolean dirtyState);
-
-	void setFactoryRegistry(IFactoryRegistry registry);
-
-	/**
-	 * The id is the id that the model manager uses to identify this model
-	 */
-	void setId(String id) throws ResourceInUse;
-
-	void setModelHandler(IModelHandler modelHandler);
-
-	void setModelManager(IModelManager modelManager);
-
-	public void setNewState(boolean newState);
-
-	/**
-	 * Sets a "flag" that reinitialization is needed.
-	 */
-	void setReinitializeNeeded(boolean b);
-
-	/**
-	 * Holds any data that the reinit procedure might find useful in
-	 * reinitializing the model. This is handy, since the reinitialization may
-	 * not take place at once, and some "old" data may be needed to properly
-	 * undo previous settings. Note: the parameter was intentially made to be
-	 * of type 'Object' so different models can use in different ways.
-	 */
-	void setReinitializeStateData(Object object);
-
-	/**
-	 * Set the URI resolution helper
-	 */
-	void setResolver(URIResolver uriResolver);
-
-	void setStructuredDocument(IStructuredDocument structuredDocument);
-
-	/**
-	 * Set undo manager.
-	 */
-	void setUndoManager(IStructuredTextUndoManager undoManager);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IndexedRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IndexedRegion.java
deleted file mode 100644
index 6785a0b..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/IndexedRegion.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-
-
-/**
- * These are APIs found to be needed in our tree outline viewer, that go
- * beyond the standard DOM Node Interface.
- */
-public interface IndexedRegion {
-
-	boolean contains(int testPosition);
-
-	int getEndOffset();
-
-	int getStartOffset();
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/LifecycleNotificationManager.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/LifecycleNotificationManager.java
deleted file mode 100644
index 5976905..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/LifecycleNotificationManager.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.sse.core.internal.Logger;
-import org.eclipse.wst.sse.core.util.Utilities;
-
-
-/**
- * For "internal use" only by AbstractStructuredModel
- */
-
-class LifecycleNotificationManager {
-	static final String DEFAULT_TRACE_CATEGORY = "org.eclipse.wst.sse.core/structuredmodel/lifecycle";
-	static final boolean DEBUG = "true".equalsIgnoreCase(Platform.getDebugOption(DEFAULT_TRACE_CATEGORY));
-
-
-	private Object[] fListeners;
-
-	LifecycleNotificationManager() {
-		super();
-	}
-
-	/**
-	 * Adds a new copy of the given listener to the list of Life Cycle
-	 * Listeners.
-	 * 
-	 * Multiple copies of the same listener are allowed. This is required to
-	 * support threaded listener management properly and for model-driven move
-	 * to work. For example, two adds and a single remove should result in the
-	 * listener still listening for events.
-	 * 
-	 * @param listener
-	 */
-	void addListener(IModelLifecycleListener listener) {
-		if (Utilities.contains(fListeners, listener)) {
-			Logger.log(Logger.WARNING_DEBUG, "IModelLifecycleListener " + listener + " listening more than once");
-		}
-		int oldSize = 0;
-		if (fListeners != null) {
-			// normally won't be null, but we need to be sure, for first
-			// time through
-			oldSize = fListeners.length;
-		}
-		int newSize = oldSize + 1;
-		Object[] newListeners = new Object[newSize];
-		if (fListeners != null) {
-			System.arraycopy(fListeners, 0, newListeners, 0, oldSize);
-		}
-		// add listener to last position
-		newListeners[newSize - 1] = listener;
-		//
-		// now switch new for old
-		fListeners = newListeners;
-	}
-
-	/**
-	 * Removes a single copy of the given listener from the list of Life Cycle
-	 * Listeners.
-	 * 
-	 * @param listener
-	 */
-	void removeListener(IModelLifecycleListener listener) {
-		if (Utilities.contains(fListeners, listener)) {
-			// if its not in the listeners, we'll ignore the request
-			int oldSize = fListeners.length;
-			int newSize = oldSize - 1;
-			Object[] newListeners = new Object[newSize];
-			int index = 0;
-			boolean removedOnce = false;
-			for (int i = 0; i < oldSize; i++) {
-				if (fListeners[i] == listener && !removedOnce) {
-					// ignore on the first match
-					removedOnce = true;
-				} else {
-					// copy old to new if it's not the one we are removing
-					newListeners[index++] = fListeners[i];
-				}
-			}
-			// now that we have a new array, let's switch it for the old
-			// one
-			fListeners = newListeners;
-		}
-		if (Utilities.contains(fListeners, listener)) {
-			Logger.log(Logger.WARNING_DEBUG, "IModelLifecycleListener " + listener + " removed once but still listening");
-		}
-	}
-
-	void signalLifecycleEvent(ModelLifecycleEvent event) {
-		if (DEBUG) {
-			Logger.trace(DEFAULT_TRACE_CATEGORY, "ModelLifecycleEvent fired for " + event.getModel().getId() + ": " + event.toString());
-			System.out.println("ModelLifecycleEvent fired for " + event.getModel().getId() + ": " + event.toString());
-		}
-		// We must assign listeners to local variable, since the add and
-		// remove listener methods can change the actual instance of the
-		// listener array from another thread
-		if (fListeners != null) {
-			Object[] holdListeners = fListeners;
-			for (int i = 0; i < holdListeners.length; i++) {
-				IModelLifecycleListener listener = (IModelLifecycleListener) holdListeners[i];
-				// only one type of listener for now ... this could become
-				// more complex
-				if ((event.getInternalType() & ModelLifecycleEvent.PRE_EVENT) == ModelLifecycleEvent.PRE_EVENT) {
-					listener.processPreModelEvent(event);
-				}
-				if ((event.getInternalType() & ModelLifecycleEvent.POST_EVENT) == ModelLifecycleEvent.POST_EVENT) {
-					listener.processPostModelEvent(event);
-				}
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/ModelDumper.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/ModelDumper.java
deleted file mode 100644
index 7cf9cae..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/ModelDumper.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.encoding.EncodingRule;
-
-
-/**
- * Classes that implement this interface are responsible for saving the model
- * to the file system (or wherever the dumpter wants).
- *  
- */
-public interface ModelDumper {
-
-	void dump(IStructuredModel model, OutputStream outputStream, EncodingRule encodingRule, IFile iFile) throws UnsupportedEncodingException, IOException, CoreException;
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/ModelLifecycleEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/ModelLifecycleEvent.java
deleted file mode 100644
index 82e2e11..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/ModelLifecycleEvent.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-/**
- * This is an early version of a class that may change over the next few
- * milestones.
- */
-
-
-public class ModelLifecycleEvent {
-
-
-	private final static int MASK = 0x00FF;
-	public static final int MODEL_DIRTY_STATE = 0x0004;
-	public static final int MODEL_DOCUMENT_CHANGED = 0x0003;
-	public static final int MODEL_RELEASED = 0x00002;
-	// this list is for "public" consumption
-	public static final int MODEL_SAVED = 0x0001;
-	protected static final int POST_EVENT = 0x0200;
-
-	// TODO: finish support for these
-	// following not implemented yet
-	//public static final int MODEL_REINITIALIZED = 0x0005;
-	//public static final int MODEL_RELOADED = 0x0006;
-	//public static final int ADAPTERS_NOTIFIED = 0x0007;
-	//public static final int MODEL_RESOURCE_MOVED = 0x0008;
-	//public static final int MODEL_RESOURCE_DELETED = 0x0009;
-
-	// This list (upper two bytes) is for only internal mechanisms and
-	// subclasses
-	// For simplicity they are "masked out" when client calls getType()
-	protected static final int PRE_EVENT = 0x0100;
-
-
-	private IStructuredModel fModel;
-	private int fType;
-
-	public ModelLifecycleEvent() {
-		super();
-	}
-
-	public ModelLifecycleEvent(int type) {
-		this();
-		fType = type;
-	}
-
-	public ModelLifecycleEvent(IStructuredModel structuredModel, int type) {
-		this(type);
-		fModel = structuredModel;
-	}
-
-	private String debugString(int type) {
-		String result = null;
-		switch (type & MASK) {
-			case MODEL_SAVED :
-				result = "MODEL_SAVED"; //$NON-NLS-1$
-				break;
-			case MODEL_RELEASED :
-				result = "MODEL_RELEASED"; //$NON-NLS-1$
-				break;
-			case MODEL_DOCUMENT_CHANGED :
-				result = "MODEL_DOCUMENT_CHANGED"; //$NON-NLS-1$
-				break;
-			case MODEL_DIRTY_STATE :
-				result = "MODEL_DIRTY_STATE"; //$NON-NLS-1$
-				break;
-			/*
-			 * case MODEL_REINITIALIZED : result = "MODEL_REINITIALIZED";
-			 * break; case MODEL_RELOADED : result = "MODEL_RELOADED"; break;
-			 * case ADAPTERS_NOTIFIED : result = "ADAPTERS_NOTIFIED"; break;
-			 * case MODEL_RESOURCE_MOVED : result = "MODEL_RESOURCE_MOVED";
-			 * break; case MODEL_RESOURCE_DELETED : result =
-			 * "MODEL_RESOURCE_DELETED"; break;
-			 */
-			default :
-				throw new IllegalStateException("ModelLifecycleEvent did not have valid type"); //$NON-NLS-1$
-		}
-		return result;
-	}
-
-	protected int getInternalType() {
-
-		return fType;
-	}
-
-	public IStructuredModel getModel() {
-
-		return fModel;
-	}
-
-	public int getType() {
-
-		// for now, we'll mask type to "public" ones this easy
-		// way ... but I know there must be a better way
-		return fType & MASK;
-	}
-
-	public String toString() {
-		String result = null;
-		result = "ModelLifecycleEvent: " + debugString(fType); //$NON-NLS-1$
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/ModelLoader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/ModelLoader.java
deleted file mode 100644
index b44c521..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/ModelLoader.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.encoding.EncodingRule;
-
-
-/**
- * Responsible for creating a new Model from a resource, or as a new, empty
- * instance.
- *  
- */
-public interface ModelLoader {
-	/**
-	 * This method should perform all the model initialization required before
-	 * it contains content, namely, it should call newModel, the
-	 * createNewStructuredDocument(), then setAdapterFactories. (this is
-	 * tentative)
-	 */
-	IStructuredModel createModel();
-
-	/**
-	 * Method createModel. Creates a new model based on old one.
-	 * 
-	 * @param oldModel
-	 * @return IStructuredModel
-	 */
-	IStructuredModel createModel(IStructuredModel oldModel);
-
-	/**
-	 * This method must return those factories which must be attached to the
-	 * structuredModel before content is applied.
-	 */
-	List getAdapterFactories();
-
-	void load(IFile file, IStructuredModel model) throws IOException, CoreException;
-
-	void load(InputStream inputStream, IStructuredModel model, EncodingRule encodingRule) throws IOException;
-
-	void load(InputStream inputStream, IStructuredModel model, String encodingName, String lineDelimiter) throws IOException;
-
-	void load(String filename, InputStream inputStream, IStructuredModel model, String encodingName, String lineDelimiter) throws IOException;
-
-	ModelLoader newInstance();
-
-	/**
-	 * This method should always return an new, empty Structured Model
-	 * appropriate for itself.
-	 */
-	IStructuredModel newModel();
-
-	IStructuredModel reinitialize(IStructuredModel model);
-
-	/**
-	 * This method should get a fresh copy of the data, and repopulate the
-	 * models ... normally by a call to setText on the structuredDocument, for
-	 * StructuredModels. This method is needed in some cases where clients are
-	 * sharing a model and then changes canceled. Say for example, one editor
-	 * and several "displays" are sharing a model, if the editor is closed
-	 * without saving changes, then the displays still need a model, but they
-	 * should revert to the original unsaved version.
-	 */
-	void reload(InputStream inputStream, IStructuredModel model);
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/ModelManagerImpl.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/ModelManagerImpl.java
deleted file mode 100644
index 71435c4..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/ModelManagerImpl.java
+++ /dev/null
@@ -1,1749 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.Reader;
-import java.io.UnsupportedEncodingException;
-import java.util.Dictionary;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.NoSuchElementException;
-
-import org.eclipse.core.filebuffers.ITextFileBuffer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.text.edits.MultiTextEdit;
-import org.eclipse.text.edits.ReplaceEdit;
-import org.eclipse.text.edits.TextEdit;
-import org.eclipse.wst.common.encoding.CodedIO;
-import org.eclipse.wst.common.encoding.CodedStreamCreator;
-import org.eclipse.wst.common.encoding.CommonEncodingPreferenceNames;
-import org.eclipse.wst.common.encoding.ContentBasedPreferenceGateway;
-import org.eclipse.wst.common.encoding.EncodingMemento;
-import org.eclipse.wst.common.encoding.EncodingRule;
-import org.eclipse.wst.common.encoding.NullMemento;
-import org.eclipse.wst.common.encoding.exceptions.MalformedOutputExceptionWithDetail;
-import org.eclipse.wst.sse.core.document.DocumentReader;
-import org.eclipse.wst.sse.core.document.IDocumentLoader;
-import org.eclipse.wst.sse.core.document.IEncodedDocument;
-import org.eclipse.wst.sse.core.exceptions.ResourceAlreadyExists;
-import org.eclipse.wst.sse.core.exceptions.ResourceInUse;
-import org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException;
-import org.eclipse.wst.sse.core.internal.FileBufferModelManager;
-import org.eclipse.wst.sse.core.internal.Logger;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.eclipse.wst.sse.core.internal.modelhandler.ModelHandlerRegistry;
-import org.eclipse.wst.sse.core.modelhandler.IModelHandler;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.util.Assert;
-import org.eclipse.wst.sse.core.util.ProjectResolver;
-import org.eclipse.wst.sse.core.util.URIResolver;
-import org.eclipse.wst.sse.core.util.Utilities;
-
-/**
- * Not intended to be subclassed.
- * 
- * This class is responsible for creating, retriving, and caching
- * StructuredModels It retrieves the cached objects by an id which is
- * typically a String representing the resources URI. Note: Its important that
- * all clients that share a resource do so using <b>identical </b>
- * identifiers, or else different instances will be created and retrieved,
- * even if they all technically point to the same resource on the file system.
- * This class also provides a convenient place to register Model Loaders and
- * Dumpers based on 'type'.
- */
-class ModelManagerImpl implements IModelManager {
-
-	static class EnumeratedModelIds implements Enumeration {
-
-		Enumeration fSharedObjectKeys;
-
-		protected EnumeratedModelIds(Dictionary sharedObjects) {
-
-			if (sharedObjects == null) {
-				// if no shared objects yet, return empty enumeration
-				fSharedObjectKeys = null;
-			} else {
-				fSharedObjectKeys = sharedObjects.keys();
-			}
-		}
-
-		public boolean hasMoreElements() {
-
-			boolean result = false;
-			if (fSharedObjectKeys != null)
-				result = fSharedObjectKeys.hasMoreElements();
-			return result;
-		}
-
-		public Object nextElement() {
-
-			if (fSharedObjectKeys == null)
-				throw new NoSuchElementException();
-			return fSharedObjectKeys.nextElement();
-		}
-	}
-
-	static class ReadEditType {
-
-		//private String fType;
-
-		ReadEditType(String type) {
-
-			//fType = type;
-		}
-	}
-
-	/**
-	 * A Data class to track our shared objects
-	 */
-	static class SharedObject {
-
-		int referenceCountForEdit;
-		int referenceCountForRead;
-		IStructuredModel theSharedObject;
-
-		SharedObject(IStructuredModel sharedObject) {
-
-			theSharedObject = sharedObject;
-			referenceCountForRead = 0;
-			referenceCountForEdit = 0;
-		}
-	}
-
-	private static final String IMODELMANAGER_TRACE_CATEGORY = "IModelManager"; //$NON-NLS-1$
-
-	/**
-	 * Our singleton instance
-	 */
-	private static ModelManagerImpl instance;
-	private final static int READ_BUFFER_SIZE = 4096;
-
-	synchronized static IModelManager getInstance() {
-
-		if (instance == null) {
-			instance = new ModelManagerImpl();
-		}
-		return instance;
-	}
-
-	private final ReadEditType EDIT = new ReadEditType("edit"); //$NON-NLS-1$
-	/**
-	 * Our cache of managed objects
-	 */
-	private Dictionary fManagedObjects;
-
-	private ModelHandlerRegistry fModelHandlerRegistry;
-	private Object[] fModelManagerListeners;
-	private int modelManagerStateChanging;
-	private final ReadEditType READ = new ReadEditType("read"); //$NON-NLS-1$
-
-	ModelManagerImpl() {
-
-		super();
-		fManagedObjects = new Hashtable();
-	}
-
-	private IStructuredModel _commonCreateModel(InputStream inputStream, String id, IModelHandler handler, URIResolver resolver, ReadEditType rwType, EncodingRule encodingRule) throws IOException {
-
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		IStructuredModel model = null;
-		if (sharedObject == null) {
-			try {
-				model = _commonCreateModel(id, handler, resolver);
-				ModelLoader loader = handler.getModelLoader();
-				loader.load(Utilities.getMarkSupportedStream(inputStream), model, encodingRule);
-			} catch (ResourceInUse e) {
-				// impossible, since we've already found
-				handleProgramError(e);
-			}
-			if (model != null) {
-				// add to our cache
-				sharedObject = new SharedObject(model);
-				_initCount(sharedObject, rwType);
-				fManagedObjects.put(id, sharedObject);
-			}
-		} else {
-			// if shared object is initially in our cache, then simply
-			// increment its ref count,
-			// and return the object.
-			_incrCount(sharedObject, rwType);
-		}
-		// we expect to always return something
-		Assert.isNotNull(sharedObject, "Program Error: no model recorded for id " + id); //$NON-NLS-1$
-		// note: clients must call release for each time they call get.
-		return sharedObject.theSharedObject;
-	}
-
-	private IStructuredModel _commonCreateModel(InputStream inputStream, String id, IModelHandler handler, URIResolver resolver, ReadEditType rwType, String encoding, String lineDelimiter) throws IOException {
-
-		if (id == null) {
-			throw new IllegalArgumentException("Program Error: id may not be null"); //$NON-NLS-1$
-		}
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		IStructuredModel model = null;
-		if (sharedObject == null) {
-			try {
-				model = _commonCreateModel(id, handler, resolver);
-				ModelLoader loader = handler.getModelLoader();
-				if(inputStream == null) {
-					Logger.log(Logger.WARNING, "model was requested for id " + id + " without a content InputStream");
-				}
-				loader.load(id, Utilities.getMarkSupportedStream(inputStream), model, encoding, lineDelimiter);
-			} catch (ResourceInUse e) {
-				// impossible, since we've already found
-				handleProgramError(e);
-			}
-			if (model != null) {
-				// add to our cache
-				sharedObject = new SharedObject(model);
-				_initCount(sharedObject, rwType);
-				fManagedObjects.put(id, sharedObject);
-			}
-		} else {
-			// if shared object is initially in our cache, then simply
-			// increment its ref count,
-			// and return the object.
-			_incrCount(sharedObject, rwType);
-		}
-		// we expect to always return something
-		Assert.isNotNull(sharedObject, "Program Error: no model recorded for id " + id); //$NON-NLS-1$
-		// note: clients must call release for each time they call get.
-		return sharedObject.theSharedObject;
-	}
-
-	private IStructuredModel _commonCreateModel(String id, IModelHandler handler, URIResolver resolver) throws ResourceInUse {
-
-		Assert.isNotNull(handler, "model handler can not be null"); //$NON-NLS-1$
-		ModelLoader loader = handler.getModelLoader();
-		IStructuredModel result = loader.createModel();
-		// in the past, id was null for "unmanaged" case, so we won't
-		// try and set it
-		if (id != null) {
-			result.setId(id);
-		}
-		result.setModelHandler(handler);
-		result.setResolver(resolver);
-		// some obvious redunancy here that maybe could be improved
-		// in future, but is necessary for now
-		result.setBaseLocation(id);
-		if (resolver != null) {
-			resolver.setFileBaseLocation(id);
-		}
-		addFactories(result, handler);
-		return result;
-	}
-
-	private IStructuredModel _commonGetModel(IFile iFile, ReadEditType rwType, EncodingRule encodingRule) throws UnsupportedEncodingException, IOException, CoreException {
-		IStructuredModel model = null;
-
-		if (iFile != null && iFile.exists()) {
-			String id = calculateId(iFile);
-			IModelHandler handler = calculateType(iFile);
-			URIResolver resolver = calculateURIResolver(iFile);
-			InputStream inputStream = Utilities.getMarkSupportedStream(iFile.getContents(true));
-			try {
-				model = _commonCreateModel(inputStream, id, handler, resolver, rwType, encodingRule);
-			} finally {
-				if (inputStream != null) {
-					inputStream.close();
-				}
-			}
-		}
-
-		return model;
-	}
-
-	private IStructuredModel _commonGetModel(IFile iFile, ReadEditType rwType, String encoding, String lineDelimiter) throws UnsupportedEncodingException, IOException, CoreException {
-		String id = calculateId(iFile);
-		IModelHandler handler = calculateType(iFile);
-		URIResolver resolver = calculateURIResolver(iFile);
-		IStructuredModel model = _commonGetModel(iFile, id, handler, resolver, rwType, encoding, lineDelimiter);
-
-		return model;
-	}
-
-	private IStructuredModel _commonGetModel(IFile file, String id, IModelHandler handler, URIResolver resolver, ReadEditType rwType, String encoding, String lineDelimiter) throws IOException, CoreException {
-		if (id == null)
-			throw new IllegalArgumentException("Program Error: id may not be null"); //$NON-NLS-1$
-
-		IStructuredModel model = null;
-
-		if (file != null && file.exists()) {
-			SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-			if (sharedObject == null) {
-				model = FileBufferModelManager.getInstance().getModel(file);
-				if (model != null) {
-					// add to our cache
-					sharedObject = new SharedObject(model);
-					_initCount(sharedObject, rwType);
-					fManagedObjects.put(id, sharedObject);
-				}
-			} else {
-				// if shared object is initially in our cache, then simply
-				// increment its ref count,
-				// and return the object.
-				_incrCount(sharedObject, rwType);
-			}
-
-			// we expect to always return something
-			Assert.isNotNull(sharedObject, "Program Error: no model recorded for id " + id); //$NON-NLS-1$
-
-			// note: clients must call release for each time they call get.
-			model = sharedObject.theSharedObject;
-		}
-
-		return model;
-	}
-
-	private SharedObject _commonNewModel(IFile iFile, boolean force) throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
-		// let's check to see if resource already exists, either in our cache,
-		// or on the system
-		String id = calculateId(iFile);
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		IStructuredModel aSharedModel = null;
-		// if shared object is null, then we do not have it already, which is
-		// as normally expected.
-		if (sharedObject == null) {
-			// if not in cache, see if we can retrieve it
-			aSharedModel = FileBufferModelManager.getInstance().getModel(iFile);
-		} else {
-			// if sharedObject is not null, then
-			// someone has asked us to create a new model for a given id, but
-			// it in fact
-			// is already in our cache with that id. In this case we will
-			// throw
-			// an "in use" exception,
-			// (unless force is set to true). Because, to do otherwise we will
-			// basically be
-			// over writing a model that another client is already using. Not
-			// nice.
-			if (!force) {
-				throw new ResourceInUse();
-			}
-		}
-		// if we get here, and result (and shared object) are still null,
-		// then all is ok, and we can create it,
-		if (aSharedModel == null) {
-			aSharedModel = FileBufferModelManager.getInstance().getModel(iFile);
-			// rembember, don't set 'true' in model init, since that's always
-			// used,
-			// even when not new. 'new' is intended to mean "there is not yet
-			// a
-			// file" for the model.
-			aSharedModel.setNewState(true);
-			sharedObject = addToCache(id, aSharedModel);
-			// when resource is provided, we can set
-			// synchronization stamp ... otherwise client should
-			// Note: one client which does this is FileModelProvider.
-			aSharedModel.resetSynchronizationStamp(iFile);
-		} else {
-			// if result is not null, then we have to check
-			// if 'force' was false before deciding to
-			// throw an already exists exception.
-			if (force) {
-				sharedObject = addToCache(id, aSharedModel);
-				// when resource is provided, we can set
-				// synchronization stamp ... otherwise client should
-				// Note: one client which does this is FileModelProvider.
-				aSharedModel.resetSynchronizationStamp(iFile);
-			} else {
-				throw new ResourceAlreadyExists();
-			}
-		}
-		return sharedObject;
-	}
-
-	public IStructuredModel _getModelFor(IStructuredDocument document, ReadEditType accessType) {
-		IStructuredModel model = null;
-		String id = FileBufferModelManager.getInstance().calculateId(document);
-		Assert.isNotNull(id, "unknown IStructuredDocument " + document);
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		if (sharedObject != null) {
-			sharedObject = (SharedObject) fManagedObjects.get(id);
-			_incrCount(sharedObject, accessType);
-			model = sharedObject.theSharedObject;
-		} else {
-			model = FileBufferModelManager.getInstance().getModel(document);
-			sharedObject = new SharedObject(model);
-			_initCount(sharedObject, accessType);
-			fManagedObjects.put(id, sharedObject);
-		}
-		return model;
-	}
-
-	private void _incrCount(SharedObject sharedObject, ReadEditType type) {
-		if (type == READ) {
-			sharedObject.referenceCountForRead++;
-		} else if (type == EDIT) {
-			sharedObject.referenceCountForEdit++;
-		} else
-			throw new IllegalArgumentException();
-	}
-
-	private void _initCount(SharedObject sharedObject, ReadEditType type) {
-		if (type == READ) {
-			sharedObject.referenceCountForRead = 1;
-		} else if (type == EDIT) {
-			sharedObject.referenceCountForEdit = 1;
-		} else
-			throw new IllegalArgumentException();
-	}
-
-	/**
-	 * This API allows clients to declare that they are about to make a
-	 * "massive" change one or more models. 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. The method isModelStateChanging can be used by a client to
-	 * determine if the model is already in a change sequence.
-	 */
-	public synchronized void aboutToChangeModels() {
-		// notice this is just a public avenue to our protected method
-		fireModelsAboutToBeChanged();
-	}
-
-	protected void addFactories(IStructuredModel model, IModelHandler handler) {
-		Assert.isNotNull(model, "model can not be null"); //$NON-NLS-1$
-		Assert.isNotNull(handler, "model handler can not be null"); //$NON-NLS-1$
-		IFactoryRegistry registry = model.getFactoryRegistry();
-		Assert.isNotNull(registry, "Factory Registry can not be null"); //$NON-NLS-1$
-		List factoryList = handler.getAdapterFactories();
-		addFactories(model, factoryList);
-	}
-
-	protected void addFactories(IStructuredModel model, List factoryList) {
-		Assert.isNotNull(model, "model can not be null"); //$NON-NLS-1$
-		IFactoryRegistry registry = model.getFactoryRegistry();
-		Assert.isNotNull(registry, "Factory Registry can not be null"); //$NON-NLS-1$
-		// Note: we add all of them from handler, even if
-		// already exists. May need to reconsider this.
-		if (factoryList != null) {
-			Iterator iterator = factoryList.iterator();
-			while (iterator.hasNext()) {
-				AdapterFactory factory = (AdapterFactory) iterator.next();
-				registry.addFactory(factory);
-			}
-		}
-	}
-
-	public synchronized void addModelManagerListener(IModelManagerListener listener) {
-
-		if (!Utilities.contains(fModelManagerListeners, listener)) {
-			int oldSize = 0;
-			if (fModelManagerListeners != null) {
-				// normally won't be null, but we need to be sure, for first
-				// time through
-				oldSize = fModelManagerListeners.length;
-			}
-			int newSize = oldSize + 1;
-			Object[] newListeners = new Object[newSize];
-			if (fModelManagerListeners != null) {
-				System.arraycopy(fModelManagerListeners, 0, newListeners, 0, oldSize);
-			}
-			// add listener to last position
-			newListeners[newSize - 1] = listener;
-			//
-			// now switch new for old
-			fModelManagerListeners = newListeners;
-			//
-		}
-	}
-
-	private SharedObject addToCache(String id, IStructuredModel aSharedModel) {
-
-		SharedObject sharedObject;
-		sharedObject = new SharedObject(aSharedModel);
-		fManagedObjects.put(id, sharedObject);
-		return sharedObject;
-	}
-
-	/**
-	 * Calculate id provides a common way to determine the id from the input
-	 * ... needed to get and save the model. It is a simple class utility, but
-	 * is an instance method so can be accessed via interface.
-	 */
-	public String calculateId(IFile file) {
-		return FileBufferModelManager.getInstance().calculateId(file);
-	}
-
-	/**
-	 * CalculateId provides a common way to determine the id from the provided
-	 * filename.
-	 */
-	public String calculateId(String filename) {
-
-		// providing common method for consistency.
-		// May eventually need to "clean up"
-		// any initial "file://" protocols, etc., but currently don't
-		// know of anyone doing that.
-		String id = filename;
-		return id;
-	}
-
-	protected IModelHandler calculateType(IFile iFile) throws CoreException {
-
-		// IModelManager mm = ((ModelManagerPlugin)
-		// Platform.getPlugin(ModelManagerPlugin.ID)).getModelManager();
-		ModelHandlerRegistry cr = getModelHandlerRegistry();
-		IModelHandler cd = cr.getHandlerFor(iFile);
-		return cd;
-	}
-
-	private IModelHandler calculateType(String filename, InputStream inputStream) throws IOException {
-
-		ModelHandlerRegistry cr = getModelHandlerRegistry();
-		IModelHandler cd = cr.getHandlerFor(filename, inputStream);
-		return cd;
-	}
-
-	/**
-	 *  
-	 */
-	private URIResolver calculateURIResolver(IFile file) {
-
-		// Note: see comment in plugin.xml for potentially
-		// breaking change in behavior.
-
-		IProject project = file.getProject();
-		URIResolver resolver = (URIResolver) project.getAdapter(URIResolver.class);
-		if (resolver == null)
-			resolver = new ProjectResolver(project);
-		resolver.setFileBaseLocation(file.getLocation().toString());
-		return resolver;
-	}
-
-	/**
-	 * This API allows a client controlled way of notifying all
-	 * IModelManagerEvent listners that several models have changed. This
-	 * method is a matched pair to aboutToChangeModels, and must be called
-	 * after aboutToChangeModel ... or some listeners could be left waiting
-	 * indefinitely for the changed event. So, its suggested that
-	 * changedModels 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 synchronized void changedModels() {
-
-		// notice this is just a public avenue to our protected method
-		fireModelsChanged();
-	}
-
-	/*
-	 * Note: This method appears in both ModelManagerImpl and JSEditor (with
-	 * just a minor difference). They should be kept the same.
-	 * 
-	 * @deprecated - handled by platform
-	 */
-	private void convertLineDelimiters(IDocument document, IFile iFile) throws CoreException {
-		// Note: calculateType(iFile) returns a default xml model handler if
-		// content type is null.
-		String contentTypeId = calculateType(iFile).getAssociatedContentTypeId();
-		String endOfLineCode = ContentBasedPreferenceGateway.getPreferencesString(contentTypeId, CommonEncodingPreferenceNames.END_OF_LINE_CODE);
-		// endOfLineCode == null means the content type does not support this
-		// function (e.g. DTD)
-		// endOfLineCode == "" means no translation
-		if (endOfLineCode != null && endOfLineCode.length() > 0) {
-			String lineDelimiterToUse = System.getProperty("line.separator"); //$NON-NLS-1$
-			if (endOfLineCode.equals(CommonEncodingPreferenceNames.CR))
-				lineDelimiterToUse = CommonEncodingPreferenceNames.STRING_CR;
-			else if (endOfLineCode.equals(CommonEncodingPreferenceNames.LF))
-				lineDelimiterToUse = CommonEncodingPreferenceNames.STRING_LF;
-			else if (endOfLineCode.equals(CommonEncodingPreferenceNames.CRLF))
-				lineDelimiterToUse = CommonEncodingPreferenceNames.STRING_CRLF;
-
-			TextEdit multiTextEdit = new MultiTextEdit();
-			int lineCount = document.getNumberOfLines();
-			try {
-				for (int i = 0; i < lineCount; i++) {
-					IRegion lineInfo = document.getLineInformation(i);
-					int lineStartOffset = lineInfo.getOffset();
-					int lineLength = lineInfo.getLength();
-					int lineEndOffset = lineStartOffset + lineLength;
-
-					if (i < lineCount - 1) {
-						String currentLineDelimiter = document.getLineDelimiter(i);
-						if (currentLineDelimiter != null && currentLineDelimiter.compareTo(lineDelimiterToUse) != 0)
-							multiTextEdit.addChild(new ReplaceEdit(lineEndOffset, currentLineDelimiter.length(), lineDelimiterToUse));
-					}
-				}
-
-				if (multiTextEdit.getChildrenSize() > 0)
-					multiTextEdit.apply(document);
-			} catch (BadLocationException exception) {
-				throw new SourceEditingRuntimeException(exception);
-			}
-		}
-	}
-
-	/**
-	 * this used to be in loader, but has been moved here
-	 */
-	protected IStructuredModel copy(IStructuredModel model, String newId) throws ResourceInUse {
-
-		IStructuredModel newModel = null;
-		IStructuredModel oldModel = model;
-		IModelHandler modelHandler = oldModel.getModelHandler();
-		ModelLoader loader = modelHandler.getModelLoader();
-		//		newModel = loader.newModel();
-		newModel = loader.createModel(oldModel);
-		//newId, oldModel.getResolver(), oldModel.getModelManager());
-		newModel.setModelHandler(modelHandler);
-		//		IStructuredDocument oldStructuredDocument =
-		// oldModel.getStructuredDocument();
-		//		IStructuredDocument newStructuredDocument =
-		// oldStructuredDocument.newInstance();
-		//		newModel.setStructuredDocument(newStructuredDocument);
-		newModel.setResolver(oldModel.getResolver());
-		newModel.setModelManager(oldModel.getModelManager());
-		//duplicateFactoryRegistry(newModel, oldModel);
-		newModel.setId(newId);
-		// set text of new one after all initialization is done
-		String contents = oldModel.getStructuredDocument().getText();
-		newModel.getStructuredDocument().setText(this, contents);
-		return newModel;
-	}
-
-	/**
-	 */
-	public synchronized IStructuredModel copyModelForEdit(String oldId, String newId) throws ResourceInUse {
-
-		IStructuredModel newModel = null;
-		// get the existing model associated with this id
-		IStructuredModel model = getExistingModel(oldId);
-		// if it doesn't exist, ignore request (though this would normally
-		// be a programming error.
-		if (model == null)
-			return null;
-		// now be sure newModel does not exist
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(newId);
-		if (sharedObject != null) {
-			throw new ResourceInUse();
-		}
-		// get loader based on existing type (note the type assumption)
-		//Object type = ((IStructuredModel) model).getType();
-		//IModelHandler type = model.getModelHandler();
-		//ModelLoader loader = (ModelLoader) getModelLoaders().get(type);
-		// ModelLoader loader = (ModelLoader) getModelLoaders().get(type);
-		// ask the loader to copy
-		newModel = copy(model, newId);
-		if (newModel != null) {
-			// add to our cache
-			sharedObject = new SharedObject(newModel);
-			sharedObject.referenceCountForEdit = 1;
-			fManagedObjects.put(newId, sharedObject);
-			trace("copied model", newId, sharedObject.referenceCountForEdit); //$NON-NLS-1$
-		}
-		return newModel;
-	}
-
-	/**
-	 * Similar to clone, except the new instance has no content. Note: this
-	 * produces an unmanaged model, for temporary use. If a true shared model
-	 * is desired, use "copy".
-	 */
-	public synchronized IStructuredModel createNewInstance(IStructuredModel oldModel) throws IOException {
-
-		IModelHandler handler = oldModel.getModelHandler();
-		ModelLoader loader = handler.getModelLoader();
-		IStructuredModel newModel = loader.createModel(oldModel);
-		newModel.setModelHandler(handler);
-		URIResolver oldResolver = oldModel.getResolver();
-		newModel.setResolver(oldResolver);
-		try {
-			newModel.setId(DUPLICATED_MODEL);
-		} catch (ResourceInUse e) {
-			// impossible, since this is an unmanaged model
-		}
-		// base location should be null, but we'll set to
-		// null to be sure.
-		newModel.setBaseLocation(null);
-		return newModel;
-	}
-
-	/**
-	 * Factory method, since a proper IStructuredDocument must have a proper
-	 * parser assigned. Note: its assume that IFile does not actually exist as
-	 * a resource yet. If it does, ResourceAlreadyExists exception is thrown.
-	 * If the resource does already exist, then createStructuredDocumentFor is
-	 * the right API to use.
-	 * 
-	 * @throws ResourceInUse
-	 *  
-	 */
-	public synchronized IStructuredDocument createNewStructuredDocumentFor(IFile iFile) throws ResourceAlreadyExists, IOException, CoreException {
-		if (iFile.exists()) {
-			throw new ResourceAlreadyExists(iFile.getFullPath().toOSString());
-		}
-		//      Will reconsider in future version
-		//		String id = calculateId(iFile);
-		//		if (isResourceInUse(id)) {
-		//			throw new ResourceInUse(iFile.getFullPath().toOSString());
-		//		}
-		IDocumentLoader loader = null;
-		IModelHandler handler = calculateType(iFile);
-		loader = handler.getDocumentLoader();
-		// for this API, "createNew" we assume the IFile does not exist yet
-		// as checked above, so just create empty document.
-		IStructuredDocument result = (IStructuredDocument) loader.createNewStructuredDocument();
-		return result;
-	}
-
-	/**
-	 * Factory method, since a proper IStructuredDocument must have a proper
-	 * parser assigned. Note: clients should verify IFile exists before using
-	 * this method. If this IFile does not exist, then
-	 * createNewStructuredDocument is the correct API to use.
-	 * 
-	 * @throws ResourceInUse
-	 */
-	public synchronized IStructuredDocument createStructuredDocumentFor(IFile iFile) throws IOException, CoreException {
-
-		if (!iFile.exists()) {
-			throw new FileNotFoundException(iFile.getFullPath().toOSString());
-		}
-		//		Will reconsider in future version
-		//		String id = calculateId(iFile);
-		//		if (isResourceInUse(id)) {
-		//			throw new ResourceInUse(iFile.getFullPath().toOSString());
-		//		}
-		IDocumentLoader loader = null;
-		IModelHandler handler = calculateType(iFile);
-		loader = handler.getDocumentLoader();
-		IStructuredDocument result = (IStructuredDocument) loader.createNewStructuredDocument(iFile);
-		return result;
-	}
-
-	/**
-	 * Conveience method, since a proper IStructuredDocument must have a
-	 * proper parser assigned. It should only be used when an empty
-	 * structuredDocument is needed. Otherwise, use IFile form.
-	 * 
-	 * @deprecated - TODO: to be removed by C4 do we really need this? I
-	 *             recommend to - use createStructuredDocumentFor(filename,
-	 *             null, null) - the filename does not need to represent a
-	 *             real - file, but can take for form of dummy.jsp, test.xml,
-	 *             etc. - That way we don't hard code the handler, but specify
-	 *             we - want the handler that "goes with" a certain type of -
-	 *             file.
-	 */
-	public synchronized IStructuredDocument createStructuredDocumentFor(String contentTypeId) {
-		IDocumentLoader loader = null;
-		ModelHandlerRegistry cr = getModelHandlerRegistry();
-		IModelHandler handler = cr.getHandlerForContentTypeId(contentTypeId);
-		if(handler == null)
-			Logger.log(Logger.ERROR, "Program error: no model handler found for " + contentTypeId);
-		loader = handler.getDocumentLoader();
-		IStructuredDocument result = (IStructuredDocument) loader.createNewStructuredDocument();
-		return result;
-	}
-
-	/**
-	 * Conveience method, since a proper IStructuredDocument must have a
-	 * proper parser assigned.
-	 * 
-	 * @deprecated -- - TODO: to be removed by C4 I marked as deprecated to
-	 *             discouage use of this method. It does not really work for
-	 *             JSP fragments, since JSP Fragments need an IFile to
-	 *             correctly look up the content settings. Use IFile form
-	 *             instead.
-	 */
-	public IStructuredDocument createStructuredDocumentFor(String filename, InputStream inputStream, URIResolver resolver) throws IOException {
-		IDocumentLoader loader = null;
-		InputStream istream = Utilities.getMarkSupportedStream(inputStream);
-		if (istream != null) {
-			istream.reset();
-		}
-		IModelHandler handler = calculateType(filename, istream);
-		loader = handler.getDocumentLoader();
-		IStructuredDocument result = null;
-		if (inputStream == null) {
-			result = (IStructuredDocument) loader.createNewStructuredDocument();
-		} else {
-			result = (IStructuredDocument) loader.createNewStructuredDocument(filename, istream);
-		}
-		return result;
-	}
-
-	/**
-	 * Special case method. This method was created for the special case where
-	 * there is an encoding for input stream that should override all the
-	 * normal rules for encoding. For example, if there is an encoding
-	 * (charset) specified in HTTP response header, then that encoding is used
-	 * to translate the input stream to a string, but then the normal encoding
-	 * rules are ignored, so that the string is not translated twice (for
-	 * example, if its an HTML "file", then even if it contains a charset in
-	 * meta tag, its ignored since its assumed its all correctly decoded by
-	 * the HTTP charset.
-	 */
-	public synchronized IStructuredDocument createStructuredDocumentFor(String filename, InputStream inputStream, URIResolver resolver, String encoding) throws IOException {
-		String content = readInputStream(inputStream, encoding);
-		IStructuredDocument result = createStructuredDocumentFor(filename, content, resolver);
-		return result;
-	}
-
-	/**
-	 * Convenience method. This method can be used when the resource does not
-	 * really exist (e.g. when content is being created, but hasn't been
-	 * written to disk yet). Note that since the content is being provided as
-	 * a String, it is assumed to already be decoded correctly so no
-	 * transformation is done.
-	 */
-	public synchronized IStructuredDocument createStructuredDocumentFor(String filename, String content, URIResolver resolver) throws IOException {
-		// TODO: avoid all these String instances
-		StringBuffer contentBuffer = new StringBuffer(content);
-		IDocumentLoader loader = null;
-		IModelHandler handler = calculateType(filename, null);
-		loader = handler.getDocumentLoader();
-		IStructuredDocument result = (IStructuredDocument) loader.createNewStructuredDocument();
-		StringBuffer convertedContent = loader.handleLineDelimiter(contentBuffer, result);
-		result.setEncodingMemento(new NullMemento());
-		result.setText(this, convertedContent.toString());
-		return result;
-	}
-
-	/**
-	 * @param iFile
-	 * @param result
-	 * @return
-	 * @throws CoreException
-	 */
-	private IStructuredModel createUnManagedEmptyModelFor(IFile iFile) throws CoreException {
-
-		IStructuredModel result = null;
-		IModelHandler handler = calculateType(iFile);
-		String id = calculateId(iFile);
-		URIResolver resolver = calculateURIResolver(iFile);
-
-		try {
-			result = _commonCreateModel(id, handler, resolver);
-		} catch (ResourceInUse e) {
-			// impossible, since we're not sharing
-			// (even if it really is in use ... we don't care)
-			// this may need to be re-examined.
-			Logger.trace(IMODELMANAGER_TRACE_CATEGORY, "ModelMangerImpl::createUnManagedStructuredModelFor. Model unexpectedly in use."); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		return result;
-	}
-
-	/**
-	 * Conveience method. It depends on the loaders newModel method to return
-	 * an appropriate StrucuturedModel appropriately initialized.
-	 */
-	public synchronized IStructuredModel createUnManagedStructuredModelFor(IFile iFile) throws IOException, CoreException {
-
-		IStructuredModel result = null;
-		result = createUnManagedEmptyModelFor(iFile);
-
-		IDocumentLoader loader = result.getModelHandler().getDocumentLoader();
-		IEncodedDocument document = loader.createNewStructuredDocument(iFile);
-
-		result.getStructuredDocument().setText(this, document.get());
-
-		return result;
-	}
-
-	/**
-	 * Conveience method. It depends on the loaders newModel method to return
-	 * an appropriate StrucuturedModel appropriately initialized.
-	 */
-	public synchronized IStructuredModel createUnManagedStructuredModelFor(String contentTypeId) {
-
-		return createUnManagedStructuredModelFor(contentTypeId, null);
-	}
-
-	/**
-	 * Conveience method. It depends on the loaders newModel method to return
-	 * an appropriate StrucuturedModel appropriately initialized.
-	 */
-	public synchronized IStructuredModel createUnManagedStructuredModelFor(String contentTypeId, URIResolver resolver) {
-
-		IStructuredModel result = null;
-		ModelHandlerRegistry cr = getModelHandlerRegistry();
-		IModelHandler handler = cr.getHandlerForContentTypeId(contentTypeId);
-		try {
-			result = _commonCreateModel(UNMANAGED_MODEL, handler, resolver); //$NON-NLS-1$
-		} catch (ResourceInUse e) {
-			// impossible, since we're not sharing
-			// (even if it really is in use ... we don't care)
-			// this may need to be re-examined.
-			Logger.trace(IMODELMANAGER_TRACE_CATEGORY, "ModelMangerImpl::createUnManagedStructuredModelFor. Model unexpectedly in use."); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return result;
-	}
-
-	void dump(IStructuredModel model, OutputStream outputStream, EncodingRule encodingRule, IFile iFile) throws UnsupportedEncodingException, IOException, CoreException {
-
-		//IFile iFile = getFileFor(model);
-
-		IStructuredDocument structuredDocument = model.getStructuredDocument();
-		CodedStreamCreator codedStreamCreator = new CodedStreamCreator();
-		Reader reader = new DocumentReader(structuredDocument);
-		codedStreamCreator.set(iFile, reader);
-		codedStreamCreator.setPreviousEncodingMemento(structuredDocument.getEncodingMemento());
-		ByteArrayOutputStream codedByteStream = codedStreamCreator.getCodedByteArrayOutputStream(EncodingRule.CONTENT_BASED);
-		InputStream codedStream = new ByteArrayInputStream(codedByteStream.toByteArray());
-		iFile.setContents(codedStream, true, true, null);
-
-		//getDocumentDumper().dump(outputStream, structuredDocument,
-		// encodingRule, use3ByteBOM, file);
-		model.setDirtyState(false);
-		model.setNewState(false);
-	}
-
-	/**
-	 * Informs all registered model state listeners that the the model is
-	 * about to under go a "large" change. This change might be interms of
-	 * contents, in might be in terms of the model id or base location.
-	 */
-	protected void fireModelsAboutToBeChanged() {
-
-		// notice we only fire this event if we are not already in a model
-		// state changing sequence
-		if (modelManagerStateChanging == 0) {
-			// we must assign listeners to local variable, since the add and
-			// remove listner
-			// methods can change the actual instance of the listener array
-			// from another thread
-			if (fModelManagerListeners != null) {
-				Object[] holdListeners = fModelManagerListeners;
-				for (int i = 0; i < holdListeners.length; i++) {
-					((IModelManagerListener) holdListeners[i]).modelsAboutToBeChanged();
-				}
-			}
-		}
-		// we always increment counter, for every request (so must receive
-		// corresponding number of 'changedModel' requests)
-		modelManagerStateChanging++;
-	}
-
-	/**
-	 * Informs all registered model state listeners that an impending change
-	 * is now complete. This method must only be called by 'modelChanged'
-	 * since it keeps track of counts.
-	 */
-	protected void fireModelsChanged() {
-
-		// always decrement
-		modelManagerStateChanging--;
-		// to be less than zero is a programming error, but we'll reset to
-		// zero
-		// with no error messages.
-		if (modelManagerStateChanging < 0)
-			modelManagerStateChanging = 0;
-		// We only fire this event if all pending requests are done.
-		// That is, if we've received the same number of fireModelChanged as
-		// we
-		// have fireModelAboutToBeChanged.
-		if (modelManagerStateChanging == 0) {
-			// we must assign listeners to local variable, since the add and
-			// remove listner
-			// methods can change the actual instance of the listener array
-			// from another thread
-			if (fModelManagerListeners != null) {
-				Object[] holdListeners = fModelManagerListeners;
-				for (int i = 0; i < holdListeners.length; i++) {
-					((IModelManagerListener) holdListeners[i]).modelsChanged();
-				}
-			}
-		}
-	}
-
-	private EnumeratedModelIds getEnumeratedModelIds() {
-		// return new instance each time so will "act like" proper enumeration
-		// to client
-		// (if we cached, may not be at beginning).
-		return new EnumeratedModelIds(fManagedObjects);
-	}
-
-	private IStructuredModel getExistingModel(Object id) {
-
-		IStructuredModel result = null;
-		// let's see if we already have it in our cache
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		// if not, then we'll simply return null
-		if (sharedObject != null) {
-			result = sharedObject.theSharedObject;
-		}
-		return result;
-	}
-
-	/**
-	 * Note: users of this 'model' must still release it when finished.
-	 * Returns null if there's not a model corresponding to document.
-	 */
-	public synchronized IStructuredModel getExistingModelForEdit(IDocument document) {
-		IStructuredModel result = null;
-		Enumeration ids = getEnumeratedModelIds();
-		while (ids.hasMoreElements()) {
-			Object potentialId = ids.nextElement();
-			IStructuredModel tempResult = getExistingModel(potentialId);
-			if (document == tempResult.getStructuredDocument()) {
-				result = getExistingModelForEdit(potentialId);
-				break;
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * This is similar to the getModel method, except this method does not
-	 * create a model. This method does increment the reference count (if it
-	 * exists). If the model does not already exist in the cache of models,
-	 * null is returned.
-	 */
-	public synchronized IStructuredModel getExistingModelForEdit(IFile iFile) {
-
-		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
-		Object id = calculateId(iFile);
-		IStructuredModel result = getExistingModelForEdit(id);
-		return result;
-	}
-
-	/**
-	 * This is similar to the getModel method, except this method does not
-	 * create a model. This method does increment the reference count (if it
-	 * exists). If the model does not already exist in the cache of models,
-	 * null is returned.
-	 * 
-	 * @deprecated use IFile form - this one will become protected or private
-	 */
-	public synchronized IStructuredModel getExistingModelForEdit(Object id) {
-
-		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
-		IStructuredModel result = null;
-		// let's see if we already have it in our cache
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		// if not, then we'll simply return null
-		if (sharedObject != null) {
-			// if shared object is in our cache, then simply increment its ref
-			// count,
-			// and return the object.
-			sharedObject.referenceCountForEdit++;
-			result = sharedObject.theSharedObject;
-			trace("got existing model for Edit: ", id); //$NON-NLS-1$
-			trace("   incremented referenceCountForEdit ", id, sharedObject.referenceCountForEdit); //$NON-NLS-1$
-		}
-		return result;
-	}
-
-	/**
-	 * Note: users of this 'model' must still release it when finished.
-	 * Returns null if there's not a model corresponding to document.
-	 */
-	public synchronized IStructuredModel getExistingModelForRead(IDocument document) {
-		IStructuredModel result = null;
-		Enumeration ids = getEnumeratedModelIds();
-		while (ids.hasMoreElements()) {
-			Object potentialId = ids.nextElement();
-			IStructuredModel tempResult = getExistingModel(potentialId);
-			if (document == tempResult.getStructuredDocument()) {
-				result = getExistingModelForRead(potentialId);
-				break;
-			}
-		}
-		return result;
-	}
-
-	public synchronized IStructuredModel getExistingModelForRead(IFile iFile) {
-
-		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
-		Object id = calculateId(iFile);
-		IStructuredModel result = getExistingModelForRead(id);
-		return result;
-	}
-
-	/**
-	 * This is similar to the getModel method, except this method does not
-	 * create a model. This method does increment the reference count (if it
-	 * exists). If the model does not already exist in the cache of models,
-	 * null is returned.
-	 * 
-	 * @deprecated use IFile form - this one will become protected or private
-	 */
-	public synchronized IStructuredModel getExistingModelForRead(Object id) {
-
-		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
-		IStructuredModel result = null;
-		// let's see if we already have it in our cache
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		// if not, then we'll simply return null
-		if (sharedObject != null) {
-			// if shared object is in our cache, then simply increment its ref
-			// count,
-			// and return the object.
-			sharedObject.referenceCountForRead++;
-			result = sharedObject.theSharedObject;
-		}
-		return result;
-	}
-
-	/**
-	 * @deprecated DMW: Tom, this is "special" for links builder Assuming its
-	 *             still needed, wouldn't it be better to change to
-	 *             getExistingModels()? -- will be removed. Its not thread
-	 *             safe for one thread to get the Enumeration, when underlying
-	 *             data could be changed in another thread.
-	 */
-	public synchronized Enumeration getExistingModelIds() {
-
-		Enumeration result = getEnumeratedModelIds();
-		return result;
-	}
-
-	// TODO: replace (or suplement) this is a "model info" association to the
-	// IFile that created the model
-	protected IFile getFileFor(IStructuredModel model) {
-		if (model == null)
-			return null;
-		String path = model.getBaseLocation();
-		if (path == null || path.length() == 0) {
-			Object id = model.getId();
-			if (id == null)
-				return null;
-			path = id.toString();
-		}
-		// TOODO needs rework for linked resources
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		IFile file = root.getFileForLocation(new Path(path));
-		return file;
-	}
-
-	/**
-	 * One of the primary forms to get a managed model
-	 */
-	public synchronized IStructuredModel getModelForEdit(IFile iFile) throws IOException, CoreException {
-		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
-		return _commonGetModel(iFile, EDIT, null, null);
-	}
-
-	/**
-	 * @see com.ibm.sed.model.IModelManager#getModelForEdit(IFile,
-	 *      EncodingRule)
-	 */
-	public synchronized IStructuredModel getModelForEdit(IFile iFile, EncodingRule encodingRule) throws UnsupportedEncodingException, IOException, CoreException {
-
-		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
-		return _commonGetModel(iFile, EDIT, encodingRule);
-	}
-
-	public synchronized IStructuredModel getModelForEdit(IFile iFile, String encoding, String lineDelimiter) throws java.io.UnsupportedEncodingException, IOException, CoreException {
-
-		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
-		return _commonGetModel(iFile, EDIT, encoding, lineDelimiter);
-	}
-
-	public synchronized IStructuredModel getModelForEdit(IStructuredDocument document) {
-		return _getModelFor(document, EDIT);
-	}
-
-	/**
-	 * @see IModelManager
-	 * @deprecated use IFile or String form
-	 */
-	public synchronized IStructuredModel getModelForEdit(Object id, InputStream inputStream, URIResolver resolver) throws java.io.UnsupportedEncodingException, IOException {
-
-		Assert.isNotNull(id, "IFile parameter can not be null"); //$NON-NLS-1$
-		String stringId = id.toString();
-		return getModelForEdit(stringId, Utilities.getMarkSupportedStream(inputStream), resolver);
-	}
-
-	/**
-	 * @see IModelManager
-	 * @deprecated - use IFile or String form
-	 */
-	public synchronized IStructuredModel getModelForEdit(Object id, Object modelType, String encodingName, String lineDelimiter, InputStream inputStream, URIResolver resolver) throws java.io.UnsupportedEncodingException, IOException {
-
-		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
-		String stringId = id.toString();
-		return getModelForEdit(stringId, Utilities.getMarkSupportedStream(inputStream), resolver);
-	}
-
-	public synchronized IStructuredModel getModelForEdit(String id, InputStream inputStream, URIResolver resolver) throws IOException {
-		if (id == null) {
-			throw new IllegalArgumentException("Program Error: id may not be null"); //$NON-NLS-1$
-		}
-
-		InputStream istream = Utilities.getMarkSupportedStream(inputStream);
-		IModelHandler handler = calculateType(id, istream);
-		Assert.isNotNull(handler, "model handler can not be null"); //$NON-NLS-1$
-		IStructuredModel result = null;
-		result = _commonCreateModel(istream, id, handler, resolver, EDIT, null, null);
-		return result;
-	}
-
-	/**
-	 * One of the primary forms to get a managed model
-	 */
-	public synchronized IStructuredModel getModelForRead(IFile iFile) throws IOException, CoreException {
-
-		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
-		return _commonGetModel(iFile, READ, null, null);
-	}
-
-	public synchronized IStructuredModel getModelForRead(IFile iFile, EncodingRule encodingRule) throws UnsupportedEncodingException, IOException, CoreException {
-		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
-		return _commonGetModel(iFile, READ, encodingRule);
-	}
-
-	public synchronized IStructuredModel getModelForRead(IFile iFile, String encodingName, String lineDelimiter) throws java.io.UnsupportedEncodingException, IOException, CoreException {
-		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
-		return _commonGetModel(iFile, READ, encodingName, lineDelimiter);
-	}
-
-	public synchronized IStructuredModel getModelForRead(IStructuredDocument document) {
-		return _getModelFor(document, READ);
-	}
-
-	/**
-	 * @see IModelManager
-	 * @deprecated use IFile or String form
-	 */
-	public synchronized IStructuredModel getModelForRead(Object id, InputStream inputStream, URIResolver resolver) throws java.io.UnsupportedEncodingException, IOException {
-		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
-		String stringId = id.toString();
-		return getModelForRead(stringId, Utilities.getMarkSupportedStream(inputStream), resolver);
-	}
-
-	/**
-	 * @see IModelManager
-	 * @deprecated use IFile form
-	 */
-	public synchronized IStructuredModel getModelForRead(Object id, Object modelType, String encodingName, String lineDelimiter, InputStream inputStream, URIResolver resolver) throws java.io.UnsupportedEncodingException, IOException {
-		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
-		String stringId = id.toString();
-		return getModelForRead(stringId, Utilities.getMarkSupportedStream(inputStream), resolver);
-	}
-
-	public synchronized IStructuredModel getModelForRead(String id, InputStream inputStream, URIResolver resolver) throws IOException {
-		InputStream istream = Utilities.getMarkSupportedStream(inputStream);
-		IModelHandler handler = calculateType(id, istream);
-		IStructuredModel result = null;
-		result = _commonCreateModel(istream, id, handler, resolver, READ, null, null);
-		return result;
-	}
-
-	/**
-	 * @deprecated - only temporarily visible
-	 */
-	public ModelHandlerRegistry getModelHandlerRegistry() {
-		if (fModelHandlerRegistry == null) {
-			fModelHandlerRegistry = ModelHandlerRegistry.getInstance();
-		}
-		return fModelHandlerRegistry;
-	}
-
-	/**
-	 * @see IModelManager#getNewModelForEdit(IFile, boolean)
-	 */
-	public synchronized IStructuredModel getNewModelForEdit(IFile iFile, boolean force) throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
-		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
-		SharedObject sharedObject = _commonNewModel(iFile, force);
-		sharedObject.referenceCountForEdit = 1;
-		return sharedObject.theSharedObject;
-	}
-
-	/**
-	 * @see IModelManager#getNewModelForRead(IFile, boolean)
-	 */
-	public synchronized IStructuredModel getNewModelForRead(IFile iFile, boolean force) throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
-
-		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
-		SharedObject sharedObject = _commonNewModel(iFile, force);
-		sharedObject.referenceCountForRead = 1;
-		return sharedObject.theSharedObject;
-	}
-
-	/**
-	 * This function returns the reference count of underlying model.
-	 * 
-	 * @param id
-	 *            Object The id of the model TODO: try to refine the design
-	 *            not to use this function
-	 */
-	public synchronized int getReferenceCount(Object id) {
-		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
-		int count = 0;
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		if (sharedObject != null)
-			count = sharedObject.referenceCountForRead + sharedObject.referenceCountForEdit;
-		return count;
-	}
-
-	/**
-	 * This function returns the reference count of underlying model.
-	 * 
-	 * @param id
-	 *            Object The id of the model TODO: try to refine the design
-	 *            not to use this function
-	 */
-	public synchronized int getReferenceCountForEdit(Object id) {
-		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
-		int count = 0;
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		if (sharedObject != null)
-			count = sharedObject.referenceCountForEdit;
-		return count;
-	}
-
-	/**
-	 * This function returns the reference count of underlying model.
-	 * 
-	 * @param id
-	 *            Object The id of the model TODO: try to refine the design
-	 *            not to use this function
-	 */
-	public synchronized int getReferenceCountForRead(Object id) {
-		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
-		int count = 0;
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		if (sharedObject != null)
-			count = sharedObject.referenceCountForRead;
-		return count;
-	}
-
-	private void handleConvertLineDelimiters(IStructuredDocument structuredDocument, IFile iFile, EncodingRule encodingRule, EncodingMemento encodingMemento) throws CoreException, MalformedOutputExceptionWithDetail, UnsupportedEncodingException {
-		if (structuredDocument.getNumberOfLines() > 1) {
-			String originalText = structuredDocument.get();
-			convertLineDelimiters(structuredDocument, iFile);
-		}
-	}
-
-	private void handleProgramError(Throwable t) {
-
-		Logger.logException("Impossible Program Error", t); //$NON-NLS-1$
-	}
-
-	/**
-	 * Register adapters for resources using an extension point. Required to
-	 * ensure that calculateURIResolver has the necessary factories registered
-	 * before any models are loaded.
-	 * 
-	 * @deprecated - wrong place to do this
-	 */
-	protected void initResourceAdapters() {
-
-		// Note: see comment in plugin.xml for potentially
-		// breaking change in behavior.
-
-		// new URIResolverAdapterFactoryRegistryReader().loadRegistry();
-	}
-
-//	private boolean isResourceInUse(String id) {
-//
-//		boolean result = false;
-//		IStructuredModel model = null;
-//		Enumeration ids = getEnumeratedModelIds();
-//		while (ids.hasMoreElements()) {
-//			Object inUseID = ids.nextElement();
-//			if (id.equals(inUseID)) {
-//				result = true;
-//				break;
-//			}
-//		}
-//		return result;
-//	}
-
-	/**
-	 * This function returns true if there are other references to the
-	 * underlying model.
-	 */
-	public synchronized boolean isShared(Object id) {
-		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
-		int count = 0;
-		boolean result = false;
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		if (sharedObject != null)
-			count = sharedObject.referenceCountForRead + sharedObject.referenceCountForEdit;
-		result = count > 1;
-		return result;
-	}
-
-	/**
-	 * This function returns true if there are other references to the
-	 * underlying model.
-	 * 
-	 * @param id
-	 *            Object The id of the model
-	 */
-	public synchronized boolean isSharedForEdit(Object id) {
-		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
-		int count = 0;
-		boolean result = false;
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		if (sharedObject != null)
-			count = sharedObject.referenceCountForEdit;
-		result = count > 1;
-		return result;
-	}
-
-	/**
-	 * This function returns true if there are other references to the
-	 * underlying model.
-	 * 
-	 * @param id
-	 *            Object The id of the model
-	 */
-	public synchronized boolean isSharedForRead(Object id) {
-		Assert.isNotNull(id);
-		int count = 0;
-		boolean result = false;
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		if (sharedObject != null)
-			count = sharedObject.referenceCountForRead;
-		result = count > 1;
-		return result;
-	}
-
-	/**
-	 * This method can be called to determine if the model manager is within a
-	 * "aboutToChange" and "changed" sequence.
-	 */
-	public synchronized boolean isStateChanging() {
-
-		return modelManagerStateChanging > 0;
-	}
-
-	/**
-	 * This method changes the id of the model. TODO: try to refine the design
-	 * not to use this function
-	 */
-	public synchronized void moveModel(Object oldId, Object newId) {
-		org.eclipse.wst.sse.core.util.Assert.isNotNull(oldId, "id parameter can not be null"); //$NON-NLS-1$
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(oldId);
-		// if not found in cache, ignore request.
-		// this would normally be a program error
-		if (sharedObject != null) {
-			fManagedObjects.remove(oldId);
-			fManagedObjects.put(newId, sharedObject);
-		}
-	}
-
-	private String readInputStream(InputStream inputStream, String ianaEncodingName) throws UnsupportedEncodingException, IOException {
-
-		String allText = null;
-		if ((ianaEncodingName != null) && (ianaEncodingName.length() != 0)) {
-			String enc = CodedIO.getAppropriateJavaCharset(ianaEncodingName);
-			if (enc == null) {
-				// if no conversion was possible, let's assume that
-				// the encoding is already a java encoding name, so we'll
-				// proceed with that assumption. This is the case, for
-				// example,
-				// for the reload() procedure.
-				// If in fact it is not a valid java encoding, then
-				// the "allText=" line will cause an
-				// UnsupportedEncodingException
-				enc = ianaEncodingName;
-			}
-			allText = readInputStream(new InputStreamReader(inputStream, enc));
-		} else {
-			// we normally assume encoding is provided for this method, but if
-			// not,
-			// we'll use platform default
-			allText = readInputStream(new InputStreamReader(inputStream));
-		}
-		return allText;
-	}
-
-	private String readInputStream(InputStreamReader inputStream) throws IOException {
-
-		int numRead = 0;
-		StringBuffer buffer = new StringBuffer();
-		char tBuff[] = new char[READ_BUFFER_SIZE];
-		while ((numRead = inputStream.read(tBuff, 0, tBuff.length)) != -1) {
-			buffer.append(tBuff, 0, numRead);
-		}
-		// remember -- we didn't open stream ... so we don't close it
-		return buffer.toString();
-	}
-
-	/*
-	 * @see IModelManager#reinitialize(IStructuredModel)
-	 */
-	public synchronized IStructuredModel reinitialize(IStructuredModel model) {
-
-		// getHandler (assume its the "new one")
-		IModelHandler handler = model.getModelHandler();
-		// getLoader for that new one
-		ModelLoader loader = handler.getModelLoader();
-		// ask it to reinitialize
-		model = loader.reinitialize(model);
-		// the loader should check to see if the one it received
-		// is the same type it would normally create.
-		// if not, it must "start from scratch" and create a whole
-		// new one.
-		// if it is of the same type, it should just 'replace text'
-		// replacing all the existing text with the new text.
-		// the important one is the JSP loader ... it should go through
-		// its embedded content checking and initialization
-		return model;
-	}
-
-	/**
-	 * protected for use in same package, not subclasses
-	 *  
-	 */
-	protected synchronized void releaseFromEdit(Object id) {
-		Assert.isNotNull(id);
-		SharedObject sharedObject = null;
-
-		sharedObject = (SharedObject) fManagedObjects.get(id);
-		// if not found in cache, ignore request, for now.
-		// this would normally be a program error
-		// TODO: uncomment this assert in next version
-		// and remove if null check
-		//Assert.isNotNull(sharedObject);
-		if (sharedObject != null) {
-			sharedObject.referenceCountForEdit--;
-			if ((sharedObject.referenceCountForRead == 0) && (sharedObject.referenceCountForEdit == 0)) {
-				fManagedObjects.remove(id);
-				FileBufferModelManager.getInstance().releaseModel(sharedObject.theSharedObject.getStructuredDocument());
-			}
-		}
-	}
-
-	/**
-	 * protected for use in same package, not subclasses
-	 *  
-	 */
-	protected synchronized void releaseFromRead(Object id) {
-		Assert.isNotNull(id);
-		SharedObject sharedObject = null;
-
-		sharedObject = (SharedObject) fManagedObjects.get(id);
-		// if not found in cache, ignore request, for now.
-		// this would normally be a program error
-		// TODO: uncomment this assert in next version
-		// and remove if null check
-		//Assert.isNotNull(sharedObject);
-		if (sharedObject != null) {
-			sharedObject.referenceCountForRead--;
-			if ((sharedObject.referenceCountForRead == 0) && (sharedObject.referenceCountForEdit == 0)) {
-				fManagedObjects.remove(id);
-				FileBufferModelManager.getInstance().releaseModel(sharedObject.theSharedObject.getStructuredDocument());
-			}
-		}
-	}
-
-	/**
-	 * This is similar to the getModel method, except this method does not use
-	 * the cached version, but forces the cached version to be replaced with a
-	 * fresh, unchanged version. Note: this method does not change any
-	 * reference counts. Also, if there is not already a cached version of the
-	 * model, then this call is essentially ignored (that is, it does not put
-	 * a model in the cache) and returns null.
-	 * 
-	 * @deprecated - will become protected, use reload directly on model
-	 */
-	public synchronized IStructuredModel reloadModel(Object id, java.io.InputStream inputStream) throws java.io.UnsupportedEncodingException {
-
-		// get the existing model associated with this id
-		IStructuredModel structuredModel = getExistingModel(id);
-		// for the model to be null is probably an error (that is,
-		// reload should not have been called, but we'll guard against
-		// a null pointer example and return null if we are no longer managing
-		// that model.
-		if (structuredModel != null) {
-			// get loader based on existing type
-			// dmwTODO evaluate when reload should occur
-			// with potentially new type (e.g. html 'save as' jsp).
-			IModelHandler handler = structuredModel.getModelHandler();
-			ModelLoader loader = handler.getModelLoader();
-			// ask the loader to re-load
-			loader.reload(Utilities.getMarkSupportedStream(inputStream), structuredModel);
-			trace("re-loading model", id); //$NON-NLS-1$
-		}
-		return structuredModel;
-	}
-
-	public synchronized void removeModelManagerListener(IModelManagerListener listener) {
-
-		if ((fModelManagerListeners != null) && (listener != null)) {
-			// if its not in the listeners, we'll ignore the request
-			if (Utilities.contains(fModelManagerListeners, listener)) {
-				int oldSize = fModelManagerListeners.length;
-				int newSize = oldSize - 1;
-				Object[] newListeners = new Object[newSize];
-				int index = 0;
-				for (int i = 0; i < oldSize; i++) {
-					if (fModelManagerListeners[i] == listener) { // ignore
-					} else {
-						// copy old to new if its not the one we are removing
-						newListeners[index++] = fModelManagerListeners[i];
-					}
-				}
-				// now that we have a new array, let's switch it for the old
-				// one
-				fModelManagerListeners = newListeners;
-			}
-		}
-	}
-
-	public void saveModel(IFile iFile, String id, EncodingRule encodingRule) throws UnsupportedEncodingException, IOException, CoreException {
-		// let's see if we already have it in our cache
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		if (sharedObject == null || sharedObject.theSharedObject == null) {
-			throw new SourceEditingRuntimeException(SSECorePlugin.getResourceString("%Program_Error__ModelManage_EXC_")); //$NON-NLS-1$ = "Program Error: ModelManagerImpl::saveModel. Model should be in the cache"
-		} else {
-			boolean saved = false;
-			// if this model was based on a File Buffer and we're writing back
-			// to the same location, use the buffer to do the writing
-			if (FileBufferModelManager.getInstance().isExistingBuffer(sharedObject.theSharedObject.getStructuredDocument())) {
-				ITextFileBuffer buffer = FileBufferModelManager.getInstance().getBuffer(sharedObject.theSharedObject.getStructuredDocument());
-				if (iFile.getLocation().equals(buffer.getLocation())) {
-					buffer.commit(new NullProgressMonitor(), true);
-				}
-			}
-			if (!saved) {
-				IStructuredModel model = sharedObject.theSharedObject;
-				IStructuredDocument document = model.getStructuredDocument();
-				saveStructuredDocument(document, iFile, encodingRule);
-				trace("saving model", id); //$NON-NLS-1$
-			}
-			sharedObject.theSharedObject.setDirtyState(false);
-			sharedObject.theSharedObject.setNewState(false);
-		}
-	}
-
-	/**
-	 * Saving the model really just means to save it's structured document.
-	 * 
-	 * @param id
-	 * @param outputStream
-	 * @param encodingRule
-	 * @throws UnsupportedEncodingException
-	 * @throws IOException
-	 * @throws CoreException
-	 */
-	public void saveModel(String id, EncodingRule encodingRule) throws UnsupportedEncodingException, IOException, CoreException {
-		// let's see if we already have it in our cache
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		if (sharedObject == null) {
-			throw new SourceEditingRuntimeException(SSECorePlugin.getResourceString("%Program_Error__ModelManage_EXC_")); //$NON-NLS-1$ = "Program Error: ModelManagerImpl::saveModel. Model should be in the cache"
-		} else {
-			// if this model was based on a File Buffer and we're writing back
-			// to the same location, use the buffer to do the writing
-			if (FileBufferModelManager.getInstance().isExistingBuffer(sharedObject.theSharedObject.getStructuredDocument())) {
-				ITextFileBuffer buffer = FileBufferModelManager.getInstance().getBuffer(sharedObject.theSharedObject.getStructuredDocument());
-				buffer.commit(new NullProgressMonitor(), true);
-			} else {
-				IFile iFile = getFileFor(sharedObject.theSharedObject);
-				IStructuredModel model = sharedObject.theSharedObject;
-				IStructuredDocument document = model.getStructuredDocument();
-				saveStructuredDocument(document, iFile);
-				trace("saving model", id); //$NON-NLS-1$
-			}
-		}
-		sharedObject.theSharedObject.setDirtyState(false);
-		sharedObject.theSharedObject.setNewState(false);
-	}
-
-	/**
-	 * @deprecated - this method is less efficient than IFile form, since it
-	 *             requires an extra "copy" of byte array, and should be avoid
-	 *             in favor of the IFile form.
-	 */
-	public void saveModel(String id, OutputStream outputStream, EncodingRule encodingRule) throws UnsupportedEncodingException, CoreException, IOException {
-
-		// let's see if we already have it in our cache
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		if (sharedObject == null) {
-			throw new SourceEditingRuntimeException(SSECorePlugin.getResourceString("%Program_Error__ModelManage_EXC_")); //$NON-NLS-1$ = "Program Error: ModelManagerImpl::saveModel. Model should be in the cache"
-		} else {
-			CodedStreamCreator codedStreamCreator = new CodedStreamCreator();
-			codedStreamCreator.set(sharedObject.theSharedObject.getId(), new DocumentReader(sharedObject.theSharedObject.getStructuredDocument()));
-			codedStreamCreator.setPreviousEncodingMemento(sharedObject.theSharedObject.getStructuredDocument().getEncodingMemento());
-			ByteArrayOutputStream byteArrayOutputStream = codedStreamCreator.getCodedByteArrayOutputStream(encodingRule);
-			byte[] outputBytes = byteArrayOutputStream.toByteArray();
-			outputStream.write(outputBytes);
-			trace("saving model", id); //$NON-NLS-1$
-		}
-		sharedObject.theSharedObject.setDirtyState(false);
-		sharedObject.theSharedObject.setNewState(false);
-	}
-
-	public void saveStructuredDocument(IStructuredDocument structuredDocument, IFile iFile) throws UnsupportedEncodingException, CoreException, IOException {
-		saveStructuredDocument(structuredDocument, iFile, EncodingRule.CONTENT_BASED);
-	}
-
-	public void saveStructuredDocument(IStructuredDocument structuredDocument, IFile iFile, EncodingRule encodingRule) throws UnsupportedEncodingException, CoreException, IOException {
-		if (FileBufferModelManager.getInstance().isExistingBuffer(structuredDocument)) {
-			ITextFileBuffer buffer = FileBufferModelManager.getInstance().getBuffer(structuredDocument);
-			if (iFile.getLocation().equals(buffer.getLocation())) {
-				buffer.commit(new NullProgressMonitor(), true);
-			}
-		} else {
-			//IModelHandler handler = calculateType(iFile);
-			//IDocumentDumper dumper = handler.getDocumentDumper();
-			CodedStreamCreator codedStreamCreator = new CodedStreamCreator();
-			Reader reader = new DocumentReader(structuredDocument);
-			codedStreamCreator.set(iFile, reader);
-			codedStreamCreator.setPreviousEncodingMemento(structuredDocument.getEncodingMemento());
-			EncodingMemento encodingMemento = codedStreamCreator.getCurrentEncodingMemento();
-
-			// be sure document's is updated, in case exception is thrown in
-			// getCodedByteArrayOutputStream
-			structuredDocument.setEncodingMemento(encodingMemento);
-
-			// Convert line delimiters after encoding memento is figured out,
-			// but
-			// before writing to output stream.
-			handleConvertLineDelimiters(structuredDocument, iFile, encodingRule, encodingMemento);
-
-			ByteArrayOutputStream codedByteStream = codedStreamCreator.getCodedByteArrayOutputStream(encodingRule);
-			InputStream codedStream = new ByteArrayInputStream(codedByteStream.toByteArray());
-			if (iFile.exists())
-				iFile.setContents(codedStream, true, true, null);
-			else
-				iFile.create(codedStream, false, null);
-			codedByteStream.close();
-			codedStream.close();
-		}
-	}
-
-	/**
-	 * Common trace method
-	 */
-	private void trace(String msg, Object id) {
-		if (Logger.isTracing(IMODELMANAGER_TRACE_CATEGORY)) {
-			Logger.trace(IMODELMANAGER_TRACE_CATEGORY, msg + " " + Utilities.makeShortId(id)); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-	/**
-	 * Common trace method
-	 */
-	private void trace(String msg, Object id, int value) {
-		if (Logger.isTracing(IMODELMANAGER_TRACE_CATEGORY)) {
-			Logger.trace(IMODELMANAGER_TRACE_CATEGORY, msg + Utilities.makeShortId(id) + " (" + value + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/ModelPlugin.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/ModelPlugin.java
deleted file mode 100644
index 51d1faa..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/ModelPlugin.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-
-
-/**
- * @deprecated use internal SSECorePlugin class or StructuredModelManager instead
- */
-public class ModelPlugin extends SSECorePlugin {
-
-	public ModelPlugin() {
-		super();
-	}
-
-	public static String getID() {
-		return SSECorePlugin.ID;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/ModelStateMemento.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/ModelStateMemento.java
deleted file mode 100644
index 108be07..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/ModelStateMemento.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-
-
-import org.eclipse.core.resources.IResource;
-
-/**
- * Used my AbstractStructuredModel to keep track of what state it should be
- * in, when restoreState(memento) is called. See also getMemento.
- */
-class ModelStateMemento implements IStateMemento {
-	/**
-	 * datesInSynch records whether or not the resource modification date, and
-	 * synchronization date are the same when getMemento is called. If so,
-	 * they should be forced to be the same in restoreState
-	 */
-	private boolean datesInSync;
-	/**
-	 * dirty State when 'getMemento' called. restoreState should set it back
-	 * to this value.
-	 */
-	private boolean dirtyState;
-
-	/**
-	 * the resource used in 'getMemento'. Eventually (V2) will be part of the
-	 * Model itself
-	 */
-	private IResource underlyingResource;
-
-	/**
-	 * ModelStateMemento constructor comment.
-	 */
-	ModelStateMemento() {
-		super();
-	}
-
-	/**
-	 * Insert the method's description here. Creation date: (9/7/2001 1:15:06
-	 * PM)
-	 * 
-	 * @return org.eclipse.core.resources.IResource
-	 */
-	org.eclipse.core.resources.IResource getUnderlyingResource() {
-		return underlyingResource;
-	}
-
-	/**
-	 * Insert the method's description here. Creation date: (9/7/2001 2:18:03
-	 * PM)
-	 * 
-	 * @return boolean
-	 */
-	boolean isDatesInSync() {
-		return datesInSync;
-	}
-
-	/**
-	 * Insert the method's description here. Creation date: (9/7/2001 1:15:06
-	 * PM)
-	 * 
-	 * @return boolean
-	 */
-	boolean isDirtyState() {
-		return dirtyState;
-	}
-
-	/**
-	 * Insert the method's description here. Creation date: (9/7/2001 2:18:03
-	 * PM)
-	 * 
-	 * @param newDatesInSync
-	 *            boolean
-	 */
-	void setDatesInSync(boolean newDatesInSync) {
-		datesInSync = newDatesInSync;
-	}
-
-	/**
-	 * Insert the method's description here. Creation date: (9/7/2001 1:15:06
-	 * PM)
-	 * 
-	 * @param newDirtyState
-	 *            boolean
-	 */
-	void setDirtyState(boolean newDirtyState) {
-		dirtyState = newDirtyState;
-	}
-
-	/**
-	 * Insert the method's description here. Creation date: (9/7/2001 1:15:06
-	 * PM)
-	 * 
-	 * @param newUnderlyingResource
-	 *            org.eclipse.core.resources.IResource
-	 */
-	void setUnderlyingResource(org.eclipse.core.resources.IResource newUnderlyingResource) {
-		underlyingResource = newUnderlyingResource;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/NullModelManager.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/NullModelManager.java
deleted file mode 100644
index 5be0556..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/NullModelManager.java
+++ /dev/null
@@ -1,504 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.Enumeration;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.common.encoding.EncodingRule;
-import org.eclipse.wst.sse.core.exceptions.ResourceAlreadyExists;
-import org.eclipse.wst.sse.core.exceptions.ResourceInUse;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.util.URIResolver;
-
-
-/**
- * Simple "null" implementation, entirely to more easily handle case where
- * model manager can't be retrieved due to workspace shutting down. Its intent
- * is to help minimize null checks (especially new null checks :)
- */
-public class NullModelManager extends ModelManagerImpl implements IModelManager {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#aboutToChangeModels()
-	 */
-	public void aboutToChangeModels() {
-
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#addModelManagerListener(org.eclipse.wst.sse.core.IModelManagerListener)
-	 */
-	public void addModelManagerListener(IModelManagerListener listener) {
-
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#calculateBaseLocation(org.eclipse.core.resources.IFile)
-	 */
-	public String calculateBaseLocation(IFile file) {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#calculateId(org.eclipse.core.resources.IFile)
-	 */
-	public String calculateId(IFile file) {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#changedModels()
-	 */
-	public void changedModels() {
-
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#copyModelForEdit(java.lang.String,
-	 *      java.lang.String)
-	 */
-	public IStructuredModel copyModelForEdit(String oldId, String newId) throws ResourceInUse {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#createNewInstance(org.eclipse.wst.sse.core.IStructuredModel)
-	 */
-	public IStructuredModel createNewInstance(IStructuredModel model) throws IOException {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#createNewStructuredDocumentFor(org.eclipse.core.resources.IFile)
-	 */
-	public IStructuredDocument createNewStructuredDocumentFor(IFile iFile) throws ResourceAlreadyExists, IOException, CoreException {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#createStructuredDocumentFor(org.eclipse.core.resources.IFile)
-	 */
-	public IStructuredDocument createStructuredDocumentFor(IFile iFile) throws IOException, CoreException {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#createStructuredDocumentFor(java.lang.String)
-	 */
-	public IStructuredDocument createStructuredDocumentFor(String contentTypeId) {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#createStructuredDocumentFor(java.lang.String,
-	 *      java.io.InputStream, org.eclipse.wst.sse.core.util.URIResolver)
-	 */
-	public IStructuredDocument createStructuredDocumentFor(String filename, InputStream inputStream, URIResolver resolver) throws IOException {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#createStructuredDocumentFor(java.lang.String,
-	 *      java.io.InputStream, org.eclipse.wst.sse.core.util.URIResolver,
-	 *      java.lang.String)
-	 */
-	public IStructuredDocument createStructuredDocumentFor(String filename, InputStream inputStream, URIResolver resolver, String ianaEncodingName) throws IOException {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#createStructuredDocumentFor(java.lang.String,
-	 *      java.lang.String, org.eclipse.wst.sse.core.util.URIResolver)
-	 */
-	public IStructuredDocument createStructuredDocumentFor(String filename, String content, URIResolver resolver) throws IOException {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#createUnManagedStructuredModelFor(org.eclipse.core.resources.IFile)
-	 */
-	public IStructuredModel createUnManagedStructuredModelFor(IFile iFile) throws IOException, CoreException {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#createUnManagedStructuredModelFor(java.lang.String)
-	 */
-	public IStructuredModel createUnManagedStructuredModelFor(String contentTypeId) {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#createUnManagedStructuredModelFor(java.lang.String,
-	 *      org.eclipse.wst.sse.core.util.URIResolver)
-	 */
-	public IStructuredModel createUnManagedStructuredModelFor(String contentTypeId, URIResolver resolver) {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getExistingModelForEdit(org.eclipse.jface.text.IDocument)
-	 */
-	public IStructuredModel getExistingModelForEdit(IDocument document) {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getExistingModelForEdit(org.eclipse.core.resources.IFile)
-	 */
-	public IStructuredModel getExistingModelForEdit(IFile iFile) {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getExistingModelForEdit(java.lang.Object)
-	 */
-	public IStructuredModel getExistingModelForEdit(Object id) {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getExistingModelForRead(org.eclipse.jface.text.IDocument)
-	 */
-	public IStructuredModel getExistingModelForRead(IDocument document) {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getExistingModelForRead(org.eclipse.core.resources.IFile)
-	 */
-	public IStructuredModel getExistingModelForRead(IFile iFile) {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getExistingModelForRead(java.lang.Object)
-	 */
-	public IStructuredModel getExistingModelForRead(Object id) {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getExistingModelIds()
-	 */
-	public Enumeration getExistingModelIds() {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getModelForEdit(org.eclipse.core.resources.IFile)
-	 */
-	public IStructuredModel getModelForEdit(IFile iFile) throws IOException, CoreException {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getModelForEdit(org.eclipse.core.resources.IFile,
-	 *      org.eclipse.wst.common.encoding.EncodingRule)
-	 */
-	public IStructuredModel getModelForEdit(IFile iFile, EncodingRule encodingRule) throws UnsupportedEncodingException, IOException, CoreException {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getModelForEdit(org.eclipse.core.resources.IFile,
-	 *      java.lang.String, java.lang.String)
-	 */
-	public IStructuredModel getModelForEdit(IFile iFile, String encoding, String lineDelimiter) throws UnsupportedEncodingException, IOException, CoreException {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getModelForEdit(java.lang.String,
-	 *      java.io.InputStream, org.eclipse.wst.sse.core.util.URIResolver)
-	 */
-	public IStructuredModel getModelForEdit(String filename, InputStream inStream, URIResolver resolver) throws UnsupportedEncodingException, IOException {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getModelForRead(org.eclipse.core.resources.IFile)
-	 */
-	public IStructuredModel getModelForRead(IFile iFile) throws IOException, CoreException {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getModelForRead(org.eclipse.core.resources.IFile,
-	 *      org.eclipse.wst.common.encoding.EncodingRule)
-	 */
-	public IStructuredModel getModelForRead(IFile iFile, EncodingRule encodingRule) throws UnsupportedEncodingException, IOException, CoreException {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getModelForRead(org.eclipse.core.resources.IFile,
-	 *      java.lang.String, java.lang.String)
-	 */
-	public IStructuredModel getModelForRead(IFile iFile, String encoding, String lineDelimiter) throws UnsupportedEncodingException, IOException, CoreException {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getModelForRead(java.lang.String,
-	 *      java.io.InputStream, org.eclipse.wst.sse.core.util.URIResolver)
-	 */
-	public IStructuredModel getModelForRead(String filename, InputStream inStream, URIResolver resolver) throws UnsupportedEncodingException, IOException {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getNewModelForEdit(org.eclipse.core.resources.IFile,
-	 *      boolean)
-	 */
-	public IStructuredModel getNewModelForEdit(IFile iFile, boolean force) throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getNewModelForRead(org.eclipse.core.resources.IFile,
-	 *      boolean)
-	 */
-	public IStructuredModel getNewModelForRead(IFile iFile, boolean force) throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getReferenceCount(java.lang.Object)
-	 */
-	public int getReferenceCount(Object id) {
-
-		return 0;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getReferenceCountForEdit(java.lang.Object)
-	 */
-	public int getReferenceCountForEdit(Object id) {
-
-		return 0;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#getReferenceCountForRead(java.lang.Object)
-	 */
-	public int getReferenceCountForRead(Object id) {
-
-		return 0;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#isShared(java.lang.Object)
-	 */
-	public boolean isShared(Object id) {
-
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#isSharedForEdit(java.lang.Object)
-	 */
-	public boolean isSharedForEdit(Object id) {
-
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#isSharedForRead(java.lang.Object)
-	 */
-	public boolean isSharedForRead(Object id) {
-
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#isStateChanging()
-	 */
-	public boolean isStateChanging() {
-
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#moveModel(java.lang.Object,
-	 *      java.lang.Object)
-	 */
-	public void moveModel(Object oldId, Object newId) {
-
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#reinitialize(org.eclipse.wst.sse.core.IStructuredModel)
-	 */
-	public IStructuredModel reinitialize(IStructuredModel model) {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#reloadModel(java.lang.Object,
-	 *      java.io.InputStream)
-	 */
-	public IStructuredModel reloadModel(Object id, InputStream inStream) throws UnsupportedEncodingException {
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#removeModelManagerListener(org.eclipse.wst.sse.core.IModelManagerListener)
-	 */
-	public void removeModelManagerListener(IModelManagerListener listener) {
-
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.IModelManager#saveStructuredDocument(org.eclipse.wst.sse.core.text.IStructuredDocument,
-	 *      org.eclipse.core.resources.IFile)
-	 */
-	public void saveStructuredDocument(IStructuredDocument structuredDocument, IFile iFile) throws UnsupportedEncodingException, IOException, CoreException {
-
-
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/PropagatingAdapter.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/PropagatingAdapter.java
deleted file mode 100644
index bece75e..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/PropagatingAdapter.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-import java.util.List;
-
-public interface PropagatingAdapter extends INodeAdapter {
-
-	void addAdaptOnCreateFactory(AdapterFactory factory);
-
-	List getAdaptOnCreateFactories();
-
-	/**
-	 * This method should be called immediately after adding a factory,
-	 * typically on the document (top level) node, so all nodes can be
-	 * adapted, if needed. This is needed for those occasions when a factory
-	 * is addeded after some nodes may have already been created at the time
-	 * the factory is added.
-	 */
-	void initializeForFactory(AdapterFactory factory, INodeNotifier node);
-
-	// dmw: should have getFactoryFor?
-	void release();
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/PropagatingAdapterFactory.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/PropagatingAdapterFactory.java
deleted file mode 100644
index 7e53a13..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/PropagatingAdapterFactory.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-
-
-import java.util.ArrayList;
-
-
-
-public interface PropagatingAdapterFactory extends AdapterFactory {
-
-	void addContributedFactories(AdapterFactory factory);
-
-	void setContributedFactories(ArrayList list);
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/StructuredModelManager.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/StructuredModelManager.java
deleted file mode 100644
index 4055a41..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/StructuredModelManager.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.osgi.framework.Bundle;
-
-public class StructuredModelManager {
-	/**
-	 * @deprecated - call getModelManager directly
-	 * @return
-	 */
-	public static StructuredModelManager getInstance() {
-		return new StructuredModelManager();
-	}
-
-	public static IModelManager getModelManager() {
-		boolean isReady = false;
-		IModelManager modelManager = null;
-		while (!isReady) {
-			Bundle localBundle = Platform.getBundle(SSECorePlugin.ID);
-			int state = localBundle.getState();
-			if (state == Bundle.ACTIVE) {
-				isReady = true;
-				// getInstance is a synchronized static method.
-				modelManager = ModelManagerImpl.getInstance();
-			}
-			else if (state == Bundle.STARTING) {
-				try {
-					Thread.sleep(100);
-				}
-				catch (InterruptedException e) {
-					// ignore, just loop again
-				}
-			}
-			else if (state == Bundle.STOPPING || state == Bundle.UNINSTALLED) {
-				isReady = true;
-				modelManager = new NullModelManager();
-			}
-			else {
-				// not sure about other states, 'resolved', 'installed'
-				isReady = true;
-			}
-		}
-		return modelManager;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/builder/IBuilderDelegate.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/builder/IBuilderDelegate.java
deleted file mode 100644
index 86379ec..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/builder/IBuilderDelegate.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.builder;
-
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * Delegates for the Structured Builder. Delegates may be contributed using
- * the org.eclipse.wst.sse.core.builderdelegate extension point. For resources and
- * resource deltas with matching content types, the builder will first call
- * the startup() method, build(), and shutdown in sequence. Participant
- * instances will be reused across projects but are not shared per content
- * type. Participants should not hold on to references to models or resources
- * after shutdown().
- */
-public interface IBuilderDelegate {
-	IStatus build(IFile file, int kind, Map args, IProgressMonitor monitor);
-
-	/**
-	 * Notifies the participant that building is done for now. Resources held
-	 * from startup should now be released.
-	 */
-	void shutdown(IProject project);
-
-	/**
-	 * Notifies the participant that a sequence of builds is about to be
-	 * called. Ideally the time to load preferences and perform any expensive
-	 * configuration for the given project.
-	 * 
-	 * @param project -
-	 *            the project that's about to be built
-	 * @param kind -
-	 *            the kind of build being done; possible values are
-	 *            IncrementalProjectBuilder.AUTO_BUILD,
-	 *            IncrementalProjectBuilder.FULL_BUILD, or
-	 *            IncrementalProjectBuilder.INCREMENTAL_BUILD
-	 * @param args
-	 *            the table of builder-specific arguments sent to the
-	 *            Structured Document Builder, keyed by argument name (key
-	 *            type: <code>String</code>, value type:
-	 *            <code>String</code>);<code>null</code> is equivalent
-	 *            to an empty map
-	 */
-	void startup(IProject project, int kind, Map args);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/builder/IBuilderModelProvider.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/builder/IBuilderModelProvider.java
deleted file mode 100644
index e1c3f91..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/builder/IBuilderModelProvider.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.builder;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.sse.core.IStructuredModel;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-
-
-/**
- * Model provider for IBuilderParticipants - provides Structured Documents and
- * Models to participants. Clients should not implement. Models for any
- * resource may be requested, not just for the current delta. The same
- * document and model instances are NOT guaranteed to be returned with each
- * call.
- */
-
-public interface IBuilderModelProvider {
-	/**
-	 * @param file
-	 * @return an IStructuredDocument with the file's contents if the file's
-	 *         Content Type is supported, null if not
-	 */
-	IStructuredDocument getDocument(IFile file);
-
-	/**
-	 * @param file
-	 * @return an IStructuredModel with the file's contents if the file's
-	 *         Content Type is supported, null if not
-	 */
-	IStructuredModel getModel(IFile file);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/builder/IBuilderParticipant.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/builder/IBuilderParticipant.java
deleted file mode 100644
index fbc4316..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/builder/IBuilderParticipant.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.builder;
-
-import java.util.Map;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * Participants in the Structured building process. Participants may be
- * contributed using the org.eclipse.wst.sse.core.builderparticipant extension point.
- * For resources and resource deltas with matching content types, the builder
- * will first call the build() method and then the cleanup() method in
- * sequence. Participant instances will be reused across projects but are not
- * shared per content type. Participants should not hold on to references to
- * models or resources after cleanup().
- * 
- * @deprecated
- */
-public interface IBuilderParticipant {
-
-
-	/**
-	 * Perform a build for the given resources within this project. May be
-	 * called multiple times between startup and shutdown.
-	 * 
-	 * @param resources -
-	 *            an IResource list of resources in this project with the
-	 *            correct content type
-	 * @param project -
-	 *            the project on which this participant is operating
-	 * @param provider -
-	 *            a model provider for this project
-	 * @param monitor
-	 * @return
-	 */
-	boolean build(IResource[] resources, IProject project, IBuilderModelProvider provider, IProgressMonitor monitor);
-
-	/**
-	 * Perform an incremental build. May be called multiple times between
-	 * startup and shutdown.
-	 * 
-	 * @param delta -
-	 *            the IResourceDelta to examine for building
-	 * @param project -
-	 *            the project on which this participant is operating
-	 * @param provider -
-	 *            a model provider for this delta's resource
-	 * @param monitor
-	 * @return
-	 */
-	boolean build(IResourceDelta delta, IProject project, IBuilderModelProvider provider, IProgressMonitor monitor);
-
-	/**
-	 * Do any post-build cleanup from a full build for a project. Called once
-	 * for every matching build() call.
-	 * 
-	 * @param resources -
-	 *            the IResource list of resources in this project with the
-	 *            correct content type
-	 * @param project -
-	 *            the project on which this participant is operating
-	 * @param provider -
-	 *            a model provider for this delta's resource
-	 * @param monitor
-	 * @return
-	 */
-	boolean cleanup(IResource[] resources, IProject project, IBuilderModelProvider provider, IProgressMonitor monitor);
-
-	/**
-	 * Do any post-build cleanup from building a resource delta. Called once
-	 * for every matching build() call.
-	 * 
-	 * @param delta -
-	 *            the IResourceDelta to examine for building
-	 * @param project -
-	 *            the project on which this participant is operating
-	 * @param provider -
-	 *            a model provider for this delta's resource
-	 * @param monitor
-	 * @return
-	 */
-	boolean cleanup(IResourceDelta delta, IProject project, IBuilderModelProvider provider, IProgressMonitor monitor);
-
-	/**
-	 * Notifies the participant that building is done for now. Resources held
-	 * from startup should now be released.
-	 */
-	void shutdown(IProject project);
-
-	/**
-	 * Notifies the participant that a sequence of builds is about to be
-	 * called. Ideally the time to load preferences and perform any expensive
-	 * configuration for the given project.
-	 * 
-	 * @param project -
-	 *            the project that's about to be built
-	 * @param kind -
-	 *            the kind of build being done; possible values are
-	 *            IncrementalProjectBuilder.AUTO_BUILD,
-	 *            IncrementalProjectBuilder.FULL_BUILD, or
-	 *            IncrementalProjectBuilder.INCREMENTAL_BUILD
-	 * @param args
-	 *            the table of builder-specific arguments sent to the
-	 *            Structured Document Builder, keyed by argument name (key
-	 *            type: <code>String</code>, value type:
-	 *            <code>String</code>);<code>null</code> is equivalent
-	 *            to an empty map
-	 */
-	void startup(IProject project, int kind, Map args);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/AbstractCleanupProcessor.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/AbstractCleanupProcessor.java
deleted file mode 100644
index 0590b28..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/AbstractCleanupProcessor.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.cleanup;
-
-import java.io.ByteArrayInputStream;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-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.sse.core.IStructuredModel;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException;
-import org.eclipse.wst.sse.core.internal.Logger;
-
-
-/**
- * @deprecated renamed to AbstractStructuredCleanupProcessor
- * 
- * TODO will delete in C5
- */
-abstract public class AbstractCleanupProcessor implements CleanupProcessor {
-	public String cleanupContent(String input) {
-		IStructuredModel structuredModel = null;
-		InputStream inputStream = null;
-		try {
-			// setup structuredModel
-			inputStream = new ByteArrayInputStream(input.getBytes("UTF8")); //$NON-NLS-1$
-			String id = inputStream.toString() + getContentType();
-			structuredModel = StructuredModelManager.getModelManager().getModelForRead(id, inputStream, null);
-
-			// cleanup
-			cleanupModel(structuredModel, 0, structuredModel.getStructuredDocument().getLength());
-
-			// return output
-			return structuredModel.getStructuredDocument().get();
-		} catch (UnsupportedEncodingException exception) {
-			throw new SourceEditingRuntimeException(exception);
-		} catch (IOException exception) {
-			throw new SourceEditingRuntimeException(exception);
-		} finally {
-			ensureClosed(null, inputStream);
-			// release from model manager
-			if (structuredModel != null)
-				structuredModel.releaseFromRead();
-		}
-	}
-
-	public String cleanupContent(String input, int start, int length) {
-		IStructuredModel structuredModel = null;
-		InputStream inputStream = null;
-		try {
-			// setup structuredModel
-			inputStream = new ByteArrayInputStream(input.getBytes("UTF8")); //$NON-NLS-1$
-			String id = inputStream.toString() + getContentType();
-			structuredModel = StructuredModelManager.getModelManager().getModelForRead(id, inputStream, null);
-
-			// cleanup
-			cleanupModel(structuredModel, start, length);
-
-			// return output
-			return structuredModel.getStructuredDocument().get();
-		} catch (UnsupportedEncodingException exception) {
-			throw new SourceEditingRuntimeException(exception);
-		} catch (IOException exception) {
-			throw new SourceEditingRuntimeException(exception);
-		} finally {
-			ensureClosed(null, inputStream);
-			// release from model manager
-			if (structuredModel != null)
-				structuredModel.releaseFromRead();
-		}
-	}
-
-	public void cleanupFile(IFile file) {
-		IStructuredModel structuredModel = null;
-		//OutputStream outputStream = null;
-		try {
-			// setup structuredModel
-			structuredModel = StructuredModelManager.getModelManager().getModelForRead(file);
-
-			// cleanup
-			cleanupModel(structuredModel, 0, structuredModel.getStructuredDocument().getLength());
-
-			// save output to file
-			//outputStream = new
-			// FileOutputStream(file.getLocation().toString());
-			structuredModel.save(file);
-		} catch (CoreException exception) {
-			throw new SourceEditingRuntimeException(exception);
-		} catch (IOException exception) {
-			throw new SourceEditingRuntimeException(exception);
-		} finally {
-			//ensureClosed(outputStream, null);
-			// release from model manager
-			if (structuredModel != null)
-				structuredModel.releaseFromRead();
-		}
-	}
-
-	public void cleanupFile(IFile file, int start, int length) {
-		IStructuredModel structuredModel = null;
-		//OutputStream outputStream = null;
-		try {
-			// setup structuredModel
-			structuredModel = StructuredModelManager.getModelManager().getModelForRead(file);
-
-			// cleanup
-			cleanupModel(structuredModel, start, length);
-
-			// save output to file
-			//outputStream = new
-			// FileOutputStream(file.getLocation().toString());
-			structuredModel.save(file);
-		} catch (CoreException exception) {
-			throw new SourceEditingRuntimeException(exception);
-		} catch (IOException exception) {
-			throw new SourceEditingRuntimeException(exception);
-		} finally {
-			//ensureClosed(outputStream, null);
-			// release from model manager
-			if (structuredModel != null)
-				structuredModel.releaseFromRead();
-		}
-	}
-
-	public void cleanupFileName(String fileName) {
-		IStructuredModel structuredModel = null;
-		InputStream inputStream = null;
-		//OutputStream outputStream = null;
-		try {
-			// setup structuredModel
-			inputStream = new FileInputStream(fileName);
-			structuredModel = StructuredModelManager.getModelManager().getModelForRead(fileName, inputStream, null);
-
-			// cleanup
-			cleanupModel(structuredModel, 0, structuredModel.getStructuredDocument().getLength());
-
-			// save output to file
-			//outputStream = new FileOutputStream(fileName);
-			structuredModel.save();
-		}
-		//TODO I don't think we should be turning any of these into runtime
-		// exceptions
-		catch (CoreException exception) {
-			throw new SourceEditingRuntimeException(exception);
-		} catch (FileNotFoundException exception) {
-			throw new SourceEditingRuntimeException(exception);
-		} catch (UnsupportedEncodingException exception) {
-			throw new SourceEditingRuntimeException(exception);
-		} catch (IOException exception) {
-			throw new SourceEditingRuntimeException(exception);
-		} finally {
-			//ensureClosed(outputStream, inputStream);
-			// release from model manager
-			if (structuredModel != null)
-				structuredModel.releaseFromRead();
-		}
-	}
-
-	public void cleanupFileName(String fileName, int start, int length) {
-		IStructuredModel structuredModel = null;
-		InputStream inputStream = null;
-		//OutputStream outputStream = null;
-		try {
-			// setup structuredModel
-			inputStream = new FileInputStream(fileName);
-			structuredModel = StructuredModelManager.getModelManager().getModelForRead(fileName, inputStream, null);
-
-			// cleanup
-			cleanupModel(structuredModel, start, length);
-
-			// save output to file
-			//outputStream = new FileOutputStream(fileName);
-			structuredModel.save();
-		}
-		//TODO I don't think we should be turning any of these into runtime
-		// exceptions
-
-		catch (CoreException exception) {
-			throw new SourceEditingRuntimeException(exception);
-		} catch (FileNotFoundException exception) {
-			throw new SourceEditingRuntimeException(exception);
-		} catch (UnsupportedEncodingException exception) {
-			throw new SourceEditingRuntimeException(exception);
-		} catch (IOException exception) {
-			throw new SourceEditingRuntimeException(exception);
-		} finally {
-			//ensureClosed(outputStream, inputStream);
-			// release from model manager
-			if (structuredModel != null)
-				structuredModel.releaseFromRead();
-		}
-	}
-
-	abstract public void cleanupModel(IStructuredModel structuredModel);
-
-	abstract public void cleanupModel(IStructuredModel structuredModel, int start, int length);
-
-	protected void ensureClosed(OutputStream outputStream, InputStream inputStream) {
-		try {
-			if (inputStream != null) {
-				inputStream.close();
-			}
-		} catch (IOException e) {
-			Logger.logException(e); // hopeless
-		}
-		try {
-			if (outputStream != null) {
-				outputStream.close();
-			}
-		} catch (IOException e) {
-			Logger.logException(e); // hopeless
-		}
-	}
-
-	/**
-	 * The content type string is case insensitive. It may be "XML" for XML,
-	 * "CSS" for CSS, and "HTML", "JSP", "JHTML", "SHTML", "SHTM", "HTML-SS",
-	 * "XHTML", "HTM" for HTML.
-	 * <p>
-	 * This is needed for creating a temporary model when the
-	 * cleanupContent(String input) form of CleanupProcessor is called.
-	 */
-	protected abstract String getContentType();
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/AbstractStructuredCleanupProcessor.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/AbstractStructuredCleanupProcessor.java
deleted file mode 100644
index 4b70e2f..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/AbstractStructuredCleanupProcessor.java
+++ /dev/null
@@ -1,463 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.cleanup;
-
-import java.io.ByteArrayInputStream;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Vector;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.wst.common.encoding.CommonEncodingPreferenceNames;
-import org.eclipse.wst.sse.core.IStructuredModel;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.format.IStructuredFormatProcessor;
-import org.eclipse.wst.sse.core.internal.Logger;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Node;
-
-
-public abstract class AbstractStructuredCleanupProcessor implements IStructuredCleanupProcessor {
-	public boolean refreshCleanupPreferences = true; // special flag for JUnit
-
-	// tests to skip refresh
-	// of cleanup preferences
-	// when it's set to false
-
-	public String cleanupContent(String input) throws IOException, CoreException {
-		IStructuredModel structuredModel = null;
-		InputStream inputStream = null;
-		try {
-			// setup structuredModel
-			inputStream = new ByteArrayInputStream(input.getBytes("UTF8")); //$NON-NLS-1$
-			String id = inputStream.toString() + getContentType();
-			structuredModel = StructuredModelManager.getModelManager().getModelForRead(id, inputStream, null);
-
-			// cleanup
-			cleanupModel(structuredModel, 0, structuredModel.getStructuredDocument().getLength());
-
-			// return output
-			return structuredModel.getStructuredDocument().get();
-		} finally {
-			ensureClosed(null, inputStream);
-			// release from model manager
-			if (structuredModel != null)
-				structuredModel.releaseFromRead();
-		}
-	}
-
-	public String cleanupContent(String input, int start, int length) throws IOException, CoreException {
-		IStructuredModel structuredModel = null;
-		InputStream inputStream = null;
-		try {
-			// setup structuredModel
-			inputStream = new ByteArrayInputStream(input.getBytes("UTF8")); //$NON-NLS-1$
-			String id = inputStream.toString() + getContentType();
-			structuredModel = StructuredModelManager.getModelManager().getModelForRead(id, inputStream, null);
-
-			// cleanup
-			cleanupModel(structuredModel, start, length);
-
-			// return output
-			return structuredModel.getStructuredDocument().get();
-		} finally {
-			ensureClosed(null, inputStream);
-			// release from model manager
-			if (structuredModel != null)
-				structuredModel.releaseFromRead();
-		}
-	}
-
-	public void cleanupDocument(IDocument document) throws IOException, CoreException {
-		if (document == 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().getExistingModelForEdit(document);
-
-			// cleanup
-			cleanupModel(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 cleanupDocument(IDocument document, int start, int length) throws IOException, CoreException {
-		if (document == null)
-			return;
-
-		if (start >= 0 && length >= 0 && start + length <= document.getLength()) {
-			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().getExistingModelForEdit(document);
-
-				// cleanup
-				cleanupModel(structuredModel, start, length);
-
-				// 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 cleanupFile(IFile file) throws IOException, CoreException {
-		IStructuredModel structuredModel = null;
-		//OutputStream outputStream = null;
-		try {
-			// setup structuredModel
-			structuredModel = StructuredModelManager.getModelManager().getModelForRead(file);
-
-			// cleanup
-			cleanupModel(structuredModel, 0, structuredModel.getStructuredDocument().getLength());
-
-			// save output to file
-			//outputStream = new
-			// FileOutputStream(file.getLocation().toString());
-			structuredModel.save(file);
-		} finally {
-			//ensureClosed(outputStream, null);
-			// release from model manager
-			if (structuredModel != null)
-				structuredModel.releaseFromRead();
-		}
-	}
-
-	public void cleanupFile(IFile file, int start, int length) throws IOException, CoreException {
-		IStructuredModel structuredModel = null;
-		//OutputStream outputStream = null;
-		try {
-			// setup structuredModel
-			structuredModel = StructuredModelManager.getModelManager().getModelForRead(file);
-
-			// cleanup
-			cleanupModel(structuredModel, start, length);
-
-			// save output to file
-			//outputStream = new
-			// FileOutputStream(file.getLocation().toString());
-			structuredModel.save(file);
-		} finally {
-			//ensureClosed(outputStream, null);
-			// release from model manager
-			if (structuredModel != null)
-				structuredModel.releaseFromRead();
-		}
-	}
-
-	public void cleanupFileName(String fileName) throws IOException, CoreException {
-		IStructuredModel structuredModel = null;
-		InputStream inputStream = null;
-		//OutputStream outputStream = null;
-		try {
-			// setup structuredModel
-			inputStream = new FileInputStream(fileName);
-			structuredModel = StructuredModelManager.getModelManager().getModelForRead(fileName, inputStream, null);
-
-			// cleanup
-			cleanupModel(structuredModel, 0, structuredModel.getStructuredDocument().getLength());
-
-			// save output to file
-			//outputStream = new FileOutputStream(fileName);
-			structuredModel.save();
-		} finally {
-			//ensureClosed(outputStream, inputStream);
-			// release from model manager
-			if (structuredModel != null)
-				structuredModel.releaseFromRead();
-		}
-	}
-
-	public void cleanupFileName(String fileName, int start, int length) throws IOException, CoreException {
-		IStructuredModel structuredModel = null;
-		InputStream inputStream = null;
-		//OutputStream outputStream = null;
-		try {
-			// setup structuredModel
-			inputStream = new FileInputStream(fileName);
-			structuredModel = StructuredModelManager.getModelManager().getModelForRead(fileName, inputStream, null);
-
-			// cleanup
-			cleanupModel(structuredModel, start, length);
-
-			// save output to file
-			//outputStream = new FileOutputStream(fileName);
-			structuredModel.save();
-		} finally {
-			//ensureClosed(outputStream, inputStream);
-			// release from model manager
-			if (structuredModel != null)
-				structuredModel.releaseFromRead();
-		}
-	}
-
-	public void cleanupModel(IStructuredModel structuredModel) {
-
-		int start = 0;
-		int length = structuredModel.getStructuredDocument().getLength();
-		cleanupModel(structuredModel, start, length);
-	}
-
-	public void cleanupModel(IStructuredModel structuredModel, int start, int length) {
-
-		if (structuredModel != null) {
-			if ((start >= 0) && (length <= structuredModel.getStructuredDocument().getLength())) {
-				Vector activeNodes = getActiveNodes(structuredModel, start, length);
-				if (activeNodes.size() > 0) {
-					Node firstNode = (Node) activeNodes.firstElement();
-					Node lastNode = (Node) activeNodes.lastElement();
-					boolean done = false;
-					Node eachNode = firstNode;
-					Node nextNode = null;
-					while (!done) {
-						// update "done"
-						done = (eachNode == lastNode);
-
-						// get next sibling before cleanup because eachNode
-						// may
-						// be deleted,
-						// for example when it's an empty text node
-						nextNode = eachNode.getNextSibling();
-
-						// cleanup selected node(s)
-						cleanupNode(eachNode);
-
-						// update each node
-						if (nextNode != null && nextNode.getParentNode() == null)
-							// nextNode is deleted during cleanup
-							eachNode = eachNode.getNextSibling();
-						else
-							eachNode = nextNode;
-
-						// This should not be needed, but just in case
-						// something went wrong with with eachNode.
-						// We don't want an infinite loop here.
-						if (eachNode == null)
-							done = true;
-					}
-
-					// format source
-					if (getFormatSourcePreference(structuredModel)) {
-						// format the document
-						IStructuredFormatProcessor formatProcessor = getFormatProcessor();
-						formatProcessor.formatModel(structuredModel);
-					}
-
-					// convert EOL codes
-					if (getConvertEOLCodesPreference(structuredModel)) {
-						IDocument document = structuredModel.getStructuredDocument();
-						String endOfLineCode = getEOLCodePreference(structuredModel);
-						String endOfLineCodeString = null;
-						if (endOfLineCode.compareTo(CommonEncodingPreferenceNames.LF) == 0)
-							endOfLineCodeString = CommonEncodingPreferenceNames.STRING_LF;
-						else if (endOfLineCode.compareTo(CommonEncodingPreferenceNames.CR) == 0)
-							endOfLineCodeString = CommonEncodingPreferenceNames.STRING_CR;
-						else if (endOfLineCode.compareTo(CommonEncodingPreferenceNames.CRLF) == 0)
-							endOfLineCodeString = CommonEncodingPreferenceNames.STRING_CRLF;
-						if (endOfLineCodeString != null) {
-							convertLineDelimiters(document, endOfLineCodeString);
-							// DMW: 8/24/2002 setting line delimiter in
-							// document allows
-							// subsequent editing to insert the same line
-							// delimiter.
-							if (document instanceof IStructuredDocument) {
-								((IStructuredDocument) document).setLineDelimiter(endOfLineCodeString);
-							}
-							structuredModel.setDirtyState(true);
-						}
-					}
-				}
-			}
-		}
-	}
-
-	public void cleanupNode(Node node) {
-		if (node != null) {
-			Node cleanupNode = node;
-
-			// cleanup the owner node if it's an attribute node
-			if (cleanupNode.getNodeType() == Node.ATTRIBUTE_NODE)
-				cleanupNode = ((Attr) cleanupNode).getOwnerElement();
-
-			// refresh cleanup preferences before getting cleanup handler
-			if (refreshCleanupPreferences)
-				refreshCleanupPreferences();
-
-			// get cleanup handler
-			IStructuredCleanupHandler cleanupHandler = getCleanupHandler(cleanupNode);
-			if (cleanupHandler != null) {
-				// cleanup each node
-				cleanupHandler.cleanup(cleanupNode);
-			}
-		}
-	}
-
-	protected void convertLineDelimiters(IDocument document, String newDelimiter) {
-
-		final int lineCount = document.getNumberOfLines();
-		IDocumentPartitioner partitioner = document.getDocumentPartitioner();
-		if (partitioner != null) {
-			partitioner.disconnect();
-			document.setDocumentPartitioner(null);
-		}
-		try {
-			for (int i = 0; i < lineCount; i++) {
-				final String delimiter = document.getLineDelimiter(i);
-				if (delimiter != null && delimiter.length() > 0 && !delimiter.equals(newDelimiter)) {
-					IRegion region = document.getLineInformation(i);
-					document.replace(region.getOffset() + region.getLength(), delimiter.length(), newDelimiter);
-				}
-			}
-		} catch (BadLocationException e) {
-			Logger.logException(e);
-		} finally {
-			if (partitioner != null) {
-				partitioner.connect(document);
-				document.setDocumentPartitioner(partitioner);
-			}
-		}
-	}
-
-	protected void ensureClosed(OutputStream outputStream, InputStream inputStream) {
-		try {
-			if (inputStream != null) {
-				inputStream.close();
-			}
-		} catch (IOException e) {
-			Logger.logException(e); // hopeless
-		}
-		try {
-			if (outputStream != null) {
-				outputStream.close();
-			}
-		} catch (IOException e) {
-			Logger.logException(e); // hopeless
-		}
-	}
-
-	protected Vector getActiveNodes(IStructuredModel structuredModel, int startNodeOffset, int length) {
-		Vector activeNodes = new Vector();
-
-		if (structuredModel != null) {
-			Node startNode = (Node) structuredModel.getIndexedRegion(startNodeOffset);
-			Node endNode = (Node) structuredModel.getIndexedRegion(startNodeOffset + length);
-
-			// make sure it's an non-empty document
-			if (startNode != null) {
-				while (isSiblingOf(startNode, endNode) == false) {
-					if (endNode != null)
-						endNode = endNode.getParentNode();
-					if (endNode == null) {
-						startNode = startNode.getParentNode();
-						endNode = (Node) structuredModel.getIndexedRegion(startNodeOffset + length);
-					}
-				}
-
-				while (startNode != endNode) {
-					activeNodes.addElement(startNode);
-					startNode = startNode.getNextSibling();
-				}
-				if (startNode != null)
-					activeNodes.addElement(startNode);
-			}
-		}
-
-		return activeNodes;
-	}
-
-	abstract protected IStructuredCleanupHandler getCleanupHandler(Node node);
-
-	abstract protected String getContentType();
-
-	protected boolean getConvertEOLCodesPreference(IStructuredModel structuredModel) {
-
-		boolean convertEOLCodes = true;
-		IStructuredCleanupHandler cleanupHandler = getCleanupHandler((Node) structuredModel.getIndexedRegion(0));
-		if (cleanupHandler != null) {
-			IStructuredCleanupPreferences cleanupPreferences = cleanupHandler.getCleanupPreferences();
-			convertEOLCodes = cleanupPreferences.getConvertEOLCodes();
-		}
-		return convertEOLCodes;
-	}
-
-	protected String getEOLCodePreference(IStructuredModel structuredModel) {
-
-		String eolCode = System.getProperty("line.separator"); //$NON-NLS-1$
-
-		IStructuredCleanupHandler cleanupHandler = getCleanupHandler((Node) structuredModel.getIndexedRegion(0));
-		if (cleanupHandler != null) {
-			IStructuredCleanupPreferences cleanupPreferences = cleanupHandler.getCleanupPreferences();
-			eolCode = cleanupPreferences.getEOLCode();
-		}
-		return eolCode;
-	}
-
-	abstract protected IStructuredFormatProcessor getFormatProcessor();
-
-	protected boolean getFormatSourcePreference(IStructuredModel structuredModel) {
-
-		boolean formatSource = true;
-		IStructuredCleanupHandler cleanupHandler = getCleanupHandler((Node) structuredModel.getIndexedRegion(0));
-		if (cleanupHandler != null) {
-			IStructuredCleanupPreferences cleanupPreferences = cleanupHandler.getCleanupPreferences();
-			formatSource = cleanupPreferences.getFormatSource();
-		}
-		return formatSource;
-	}
-
-	protected boolean isSiblingOf(Node node, Node endNode) {
-		if (endNode == null) {
-			return true;
-		} else {
-			Node siblingNode = node;
-			while (siblingNode != null) {
-				if (siblingNode == endNode)
-					return true;
-				else
-					siblingNode = siblingNode.getNextSibling();
-			}
-			return false;
-		}
-	}
-
-	abstract protected void refreshCleanupPreferences();
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/CleanupProcessor.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/CleanupProcessor.java
deleted file mode 100644
index 6db0d68..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/CleanupProcessor.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.cleanup;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.sse.core.IStructuredModel;
-
-
-/**
- * @deprecated renamed to IStructuredCleanupProcessor
- * 
- * TODO will delete in C5
- */
-public interface CleanupProcessor {
-	/**
-	 * This form of the CleanupProcessor takes an input string as input,
-	 * creates an InputStream from the input string, create a temporary model
-	 * of the content type specified, cleanups the whole model, then returns
-	 * the cleaned up input string.
-	 */
-	String cleanupContent(String content);
-
-	/**
-	 * This form of the CleanupProcessor takes an input string as input,
-	 * creates an InputStream from the input string, create a temporary model
-	 * of the content type specified, cleanups the model within start and
-	 * length, then returns the cleaned up input string.
-	 */
-	String cleanupContent(String content, int start, int length);
-
-	/**
-	 * This form of the CleanupProcessor takes an IFile as input, creates a
-	 * temporary model of content type calculated using the IFile's file
-	 * extension, cleanups the whole model, then releases the model. The IFile
-	 * is updated when the last reference of the model is released in the
-	 * model manager.
-	 */
-	void cleanupFile(IFile file);
-
-	/**
-	 * This form of the CleanupProcessor takes an IFile as input, creates a
-	 * temporary model of content type calculated using the IFile's file
-	 * extension, cleanups the model within start and length, then releases
-	 * the model. The IFile is updated when the last reference of the model is
-	 * released in the model manager.
-	 */
-	void cleanupFile(IFile file, int start, int length);
-
-	/**
-	 * This form of the CleanupProcessor takes a file name as input,creates an
-	 * InputStream from the file, create a temporary model of content type
-	 * calculated using the file name's file extension, cleanups the whole
-	 * model, then releases the model. The file is updated when the last
-	 * reference of the model is released in the model manager.
-	 */
-	void cleanupFileName(String fileName);
-
-	/**
-	 * This form of the CleanupProcessor takes a file name as input,creates an
-	 * InputStream from the file, create a temporary model of content type
-	 * calculated using the file name's file extension, cleanups the model
-	 * within start and length, then releases the model. The file is updated
-	 * when the last reference of the model is released in the model manager.
-	 */
-	void cleanupFileName(String fileName, int start, int length);
-
-	/**
-	 * This form of the CleanupProcessor takes a model as input, and cleanups
-	 * the whole model.
-	 */
-	void cleanupModel(IStructuredModel structuredModel);
-
-	/**
-	 * This form of the CleanupProcessor takes a model as input, and cleanups
-	 * the model within start and length.
-	 */
-	void cleanupModel(IStructuredModel structuredModel, int start, int length);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/IStructuredCleanupHandler.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/IStructuredCleanupHandler.java
deleted file mode 100644
index 6b80eec..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/IStructuredCleanupHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.cleanup;
-
-import org.w3c.dom.Node;
-
-public interface IStructuredCleanupHandler {
-	Node cleanup(Node node);
-
-	IStructuredCleanupPreferences getCleanupPreferences();
-
-	void setCleanupPreferences(IStructuredCleanupPreferences cleanupPreferences);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/IStructuredCleanupPreferences.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/IStructuredCleanupPreferences.java
deleted file mode 100644
index 3581499..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/IStructuredCleanupPreferences.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.cleanup;
-
-import org.eclipse.core.runtime.Preferences;
-
-public interface IStructuredCleanupPreferences {
-
-	int getAttrNameCase();
-
-	boolean getCompressEmptyElementTags();
-
-	boolean getConvertEOLCodes();
-
-	String getEOLCode();
-
-	boolean getFormatSource();
-
-	boolean getInsertMissingTags();
-
-	boolean getInsertRequiredAttrs();
-
-	boolean getQuoteAttrValues();
-
-	int getTagNameCase();
-
-	void setAttrNameCase(int attrNameCase);
-
-	void setCompressEmptyElementTags(boolean compressEmptyElementTags);
-
-	void setConvertEOLCodes(boolean convertEOLCodes);
-
-	void setEOLCode(String EOLCode);
-
-	void setFormatSource(boolean formatSource);
-
-	void setInsertMissingTags(boolean insertMissingTags);
-
-	void setInsertRequiredAttrs(boolean insertRequiredAttrs);
-
-	void setPreferences(Preferences preferences);
-
-	void setQuoteAttrValues(boolean quoteAttrValues);
-
-	void setTagNameCase(int tagNameCase);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/IStructuredCleanupProcessor.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/IStructuredCleanupProcessor.java
deleted file mode 100644
index e7a5c95..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/IStructuredCleanupProcessor.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.cleanup;
-
-import java.io.IOException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.sse.core.IStructuredModel;
-import org.w3c.dom.Node;
-
-
-public interface IStructuredCleanupProcessor {
-	/**
-	 * This form of the CleanupProcessor takes an input string as input,
-	 * creates an InputStream from the input string, create a temporary model
-	 * of the content type specified, cleanups the whole model, then returns
-	 * the cleaned up input string.
-	 */
-	String cleanupContent(String content) throws IOException, CoreException;
-
-	/**
-	 * This form of the CleanupProcessor takes an input string as input,
-	 * creates an InputStream from the input string, create a temporary model
-	 * of the content type specified, cleanups the model within start and
-	 * length, then returns the cleaned up input string.
-	 */
-	String cleanupContent(String content, int start, int length) throws IOException, CoreException;
-
-	/**
-	 * This form of the CleanupProcessor takes an IDocument as input, creates
-	 * a temporary model of content type calculated using the IDocument's file
-	 * extension, cleanups the whole model, then releases the model.
-	 */
-	void cleanupDocument(IDocument document) throws IOException, CoreException;
-
-	/**
-	 * This form of the CleanupProcessor takes an IDocument as input, creates
-	 * a temporary model of content type calculated using the IDocument's file
-	 * extension, cleanups the model within start and length, then releases
-	 * the model.
-	 */
-	void cleanupDocument(IDocument document, int start, int length) throws IOException, CoreException;
-
-	/**
-	 * This form of the CleanupProcessor takes an IFile as input, creates a
-	 * temporary model of content type calculated using the IFile's file
-	 * extension, cleanups the whole model, then releases the model. The IFile
-	 * is updated when the last reference of the model is released in the
-	 * model manager.
-	 */
-	void cleanupFile(IFile file) throws IOException, CoreException;
-
-	/**
-	 * This form of the CleanupProcessor takes an IFile as input, creates a
-	 * temporary model of content type calculated using the IFile's file
-	 * extension, cleanups the model within start and length, then releases
-	 * the model. The IFile is updated when the last reference of the model is
-	 * released in the model manager.
-	 */
-	void cleanupFile(IFile file, int start, int length) throws IOException, CoreException;
-
-	/**
-	 * This form of the CleanupProcessor takes a file name as input,creates an
-	 * InputStream from the file, create a temporary model of content type
-	 * calculated using the file name's file extension, cleanups the whole
-	 * model, then releases the model. The file is updated when the last
-	 * reference of the model is released in the model manager.
-	 */
-	void cleanupFileName(String fileName) throws IOException, CoreException;
-
-	/**
-	 * This form of the CleanupProcessor takes a file name as input,creates an
-	 * InputStream from the file, create a temporary model of content type
-	 * calculated using the file name's file extension, cleanups the model
-	 * within start and length, then releases the model. The file is updated
-	 * when the last reference of the model is released in the model manager.
-	 */
-	void cleanupFileName(String fileName, int start, int length) throws IOException, CoreException;
-
-	/**
-	 * This form of the CleanupProcessor takes a model as input, and cleanups
-	 * the whole model.
-	 */
-	void cleanupModel(IStructuredModel structuredModel);
-
-	/**
-	 * This form of the CleanupProcessor takes a model as input, and cleanups
-	 * the model within start and length.
-	 */
-	void cleanupModel(IStructuredModel structuredModel, int start, int length);
-
-	/**
-	 * This form of the CleanupProcessor takes a node as input, and formats
-	 * the node and all its children.
-	 */
-	void cleanupNode(Node node);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/StructuredCleanupPreferences.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/StructuredCleanupPreferences.java
deleted file mode 100644
index b236b69..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/StructuredCleanupPreferences.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.cleanup;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-
-
-public class StructuredCleanupPreferences implements IStructuredCleanupPreferences {
-	private int fAttrNameCase;
-	private boolean fCompressEmptyElementTags;
-	private boolean fConvertEOLCodes;
-	private String fEOLCode;
-	private boolean fFormatSource;
-	private boolean fInsertMissingTags;
-	private boolean fInsertRequiredAttrs;
-	//private IPreferenceStore fPreferenceStore = null;
-	private Preferences fPreferences = null;
-	private boolean fQuoteAttrValues;
-
-	private int fTagNameCase;
-
-	public int getAttrNameCase() {
-
-		return fAttrNameCase;
-	}
-
-	public boolean getCompressEmptyElementTags() {
-
-		return fCompressEmptyElementTags;
-	}
-
-	public boolean getConvertEOLCodes() {
-
-		return fConvertEOLCodes;
-	}
-
-	public String getEOLCode() {
-
-		return fEOLCode;
-	}
-
-	public boolean getFormatSource() {
-
-		return fFormatSource;
-	}
-
-	public boolean getInsertMissingTags() {
-
-		return fInsertMissingTags;
-	}
-
-	public boolean getInsertRequiredAttrs() {
-
-		return fInsertRequiredAttrs;
-	}
-
-	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 setCompressEmptyElementTags(boolean compressEmptyElementTags) {
-
-		fCompressEmptyElementTags = compressEmptyElementTags;
-	}
-
-	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 setInsertRequiredAttrs(boolean insertRequiredAttrs) {
-
-		fInsertRequiredAttrs = insertRequiredAttrs;
-	}
-
-	public void setPreferences(Preferences prefs) {
-
-		fPreferences = prefs;
-	}
-
-	public void setQuoteAttrValues(boolean quoteAttrValues) {
-
-		fQuoteAttrValues = quoteAttrValues;
-	}
-
-	public void setTagNameCase(int tagNameCase) {
-
-		fTagNameCase = tagNameCase;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/StructuredContentCleanupHandler.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/StructuredContentCleanupHandler.java
deleted file mode 100644
index f55b7d6..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/StructuredContentCleanupHandler.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.cleanup;
-
-public interface StructuredContentCleanupHandler {
-
-	IStructuredCleanupProcessor getCleanupProcessor(String contentType);
-
-	void setCleanupProcessor(IStructuredCleanupProcessor cleanupProcessor, String contentType);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/StructuredContentCleanupHandlerImpl.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/StructuredContentCleanupHandlerImpl.java
deleted file mode 100644
index e9a7f5e..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/cleanup/StructuredContentCleanupHandlerImpl.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.cleanup;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jface.text.Assert;
-
-public class StructuredContentCleanupHandlerImpl implements StructuredContentCleanupHandler {
-	protected Map fCleanupProcessors;
-
-	/**
-	 * @see com.ibm.sed.partitionCleanup.StructuredContentCleanupHandler#getCleanupProcessor(java.lang.String)
-	 */
-	public IStructuredCleanupProcessor getCleanupProcessor(String contentType) {
-		Assert.isNotNull(contentType);
-
-		if (fCleanupProcessors == null)
-			return null;
-
-		return (IStructuredCleanupProcessor) fCleanupProcessors.get(contentType);
-	}
-
-	/**
-	 * @see com.ibm.sed.partitionCleanup.StructuredContentCleanupHandler#setCleanupProcessor(com.ibm.sed.partitionCleanup.CleanupProcessor,
-	 *      java.lang.String)
-	 */
-	public void setCleanupProcessor(IStructuredCleanupProcessor cleanupProcessor, String contentType) {
-		Assert.isNotNull(contentType);
-
-		if (fCleanupProcessors == null)
-			fCleanupProcessors = new HashMap();
-
-		if (fCleanupProcessors == null)
-			fCleanupProcessors.remove(contentType);
-		else
-			fCleanupProcessors.put(contentType, cleanupProcessor);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/contentmodel/CMDocType.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/contentmodel/CMDocType.java
deleted file mode 100644
index 07bd3ab..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/contentmodel/CMDocType.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.contentmodel;
-
-
-public interface CMDocType {
-	public final static String CHTML_DOC_TYPE = "CHTML";//$NON-NLS-1$
-	public final static String HTML_DOC_TYPE = "HTML";//$NON-NLS-1$
-	public final static String JSP11_DOC_TYPE = "JSP11";//$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/contentmodel/CMDocumentTracker.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/contentmodel/CMDocumentTracker.java
deleted file mode 100644
index 8b862bb..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/contentmodel/CMDocumentTracker.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.contentmodel;
-
-
-
-import org.eclipse.wst.common.contentmodel.CMDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-
-
-/**
- * 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.sse.core/src/org/eclipse/wst/sse/core/contentmodel/CMNodeWrapper.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/contentmodel/CMNodeWrapper.java
deleted file mode 100644
index 1e36639..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/contentmodel/CMNodeWrapper.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.contentmodel;
-
-
-
-import org.eclipse.wst.common.contentmodel.CMNode;
-
-public interface CMNodeWrapper extends CMNode {
-	CMNode getOriginNode();
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/contentmodel/ContentModelAdapter.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/contentmodel/ContentModelAdapter.java
deleted file mode 100644
index f8b968b..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/contentmodel/ContentModelAdapter.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.contentmodel;
-
-
-
-import org.eclipse.wst.common.contentmodel.CMDocument;
-import org.eclipse.wst.common.contentmodel.CMNode;
-
-/**
- * ContentModelAdapter interface
- */
-public interface ContentModelAdapter extends org.eclipse.wst.sse.core.INodeAdapter {
-
-	/**
-	 * getCMDocument method
-	 * 
-	 * @return CMDocument
-	 * @param notifer
-	 *            com.ibm.sed.model.INodeNotifier
-	 * 
-	 * 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.INodeNotifier notifier);
-
-	/**
-	 * getDeclaration method
-	 * 
-	 * @return CMNode
-	 * @param notifer
-	 *            com.ibm.sed.model.INodeNotifier
-	 * 
-	 * Returns ElementDefinition or AttributeDefinition for the adapting node.
-	 * 
-	 * INodeNotifier is passed for stateless (singleton) INodeAdapter
-	 * implementation.
-	 */
-	CMNode getDeclaration(org.eclipse.wst.sse.core.INodeNotifier notifier);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/contentmodel/NullContentModel.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/contentmodel/NullContentModel.java
deleted file mode 100644
index 9a72bf5..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/contentmodel/NullContentModel.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.contentmodel;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-import org.eclipse.wst.common.contentmodel.CMDocument;
-import org.eclipse.wst.common.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.common.contentmodel.CMNamespace;
-import org.eclipse.wst.common.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.sse.core/src/org/eclipse/wst/sse/core/document/AbstractDocumentLoader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/AbstractDocumentLoader.java
deleted file mode 100644
index 2f1a126..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/AbstractDocumentLoader.java
+++ /dev/null
@@ -1,385 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.document;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.io.UnsupportedEncodingException;
-import java.nio.charset.MalformedInputException;
-import java.nio.charset.UnmappableCharacterException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.wst.common.encoding.CodedIO;
-import org.eclipse.wst.common.encoding.CodedReaderCreator;
-import org.eclipse.wst.common.encoding.ContentTypeEncodingPreferences;
-import org.eclipse.wst.common.encoding.EncodingMemento;
-import org.eclipse.wst.common.encoding.EncodingRule;
-import org.eclipse.wst.common.encoding.exceptions.MalformedInputExceptionWithDetail;
-import org.eclipse.wst.sse.core.internal.document.NullStructuredDocumentPartitioner;
-import org.eclipse.wst.sse.core.internal.document.TextUtilities;
-
-
-
-/**
- * This class reads a file and creates an Structured Model.
- */
-public abstract class AbstractDocumentLoader implements IDocumentLoader {
-
-	private CodedReaderCreator fCodedReaderCreator;
-	protected IDocumentCharsetDetector fDocumentEncodingDetector;
-	//private boolean fPropertiesObtained;
-
-	protected EncodingMemento fEncodingMemento;
-	protected Reader fFullPreparedReader;
-
-	/**
-	 * AbstractLoader constructor also initializes encoding converter/mapper
-	 */
-	public AbstractDocumentLoader() {
-		super();
-	}
-
-	protected final StringBuffer convertLineDelimiters(StringBuffer allTextBuffer, String lineDelimiterToUse) {
-		// TODO: avoid use of String instance
-		String allText = allTextBuffer.toString();
-		IDocument tempDoc = new Document(allText);
-		if (lineDelimiterToUse == null)
-			lineDelimiterToUse = System.getProperty("line.separator"); //$NON-NLS-1$
-		StringBuffer newText = new StringBuffer();
-		int lineCount = tempDoc.getNumberOfLines();
-		for (int i = 0; i < lineCount; i++) {
-			try {
-				org.eclipse.jface.text.IRegion lineInfo = tempDoc.getLineInformation(i);
-				int lineStartOffset = lineInfo.getOffset();
-				int lineLength = lineInfo.getLength();
-				int lineEndOffset = lineStartOffset + lineLength;
-				newText.append(allText.substring(lineStartOffset, lineEndOffset));
-				if ((i < lineCount - 1) && (tempDoc.getLineDelimiter(i) != null))
-					newText.append(lineDelimiterToUse);
-			} catch (org.eclipse.jface.text.BadLocationException exception) {
-				// should fix up to either throw nothing, or the right thing,
-				// but
-				// in the course of refactoring, this was easiest "quick fix".
-				throw new RuntimeException(exception);
-			}
-		}
-		return newText;
-	}
-
-	/**
-	 * This method must return a new instance of IEncodedDocument, that has
-	 * been initialized with appropriate parser. For many loaders, the
-	 * (default) parser used is known for any input. For others, the correct
-	 * parser (and its initialization) is normally dependent on the content of
-	 * the file. This no-argument method should assume "empty input" and would
-	 * therefore return the default parser for the default contentType.
-	 */
-	public IEncodedDocument createNewStructuredDocument() {
-		IEncodedDocument structuredDocument = newEncodedDocument();
-		// make sure every structuredDocument has an encodoing memento,
-		// which is the default one for "empty" structuredDocuments
-		String charset = ContentTypeEncodingPreferences.useDefaultNameRules(getDocumentEncodingDetector());
-		String specDefaultCharset = getDocumentEncodingDetector().getSpecDefaultEncoding();
-		structuredDocument.setEncodingMemento(CodedIO.createEncodingMemento(charset, EncodingMemento.DEFAULTS_ASSUMED_FOR_EMPTY_INPUT, specDefaultCharset));
-		structuredDocument.setDocumentPartitioner(getDefaultDocumentPartitioner());
-		return structuredDocument;
-	}
-
-	/**
-	 * This abstract version should handle most cases, but won't if
-	 * contentType is sensitive to encoding, and/or embedded types
-	 */
-	public IEncodedDocument createNewStructuredDocument(IFile iFile) throws IOException, CoreException {
-		IEncodedDocument structuredDocument = createNewStructuredDocument();
-		try {
-
-			CodedReaderCreator creator = getCodedReaderCreator();
-			creator.set(iFile);
-			fEncodingMemento = creator.getEncodingMemento();
-			structuredDocument.setEncodingMemento(fEncodingMemento);
-			fFullPreparedReader = getCodedReaderCreator().getCodedReader();
-
-			setDocumentContentsFromReader(structuredDocument, fFullPreparedReader);
-		} finally {
-			if (fFullPreparedReader != null) {
-				fFullPreparedReader.close();
-			}
-		}
-		return structuredDocument;
-	}
-
-	public IEncodedDocument createNewStructuredDocument(Reader reader) throws UnsupportedEncodingException, IOException {
-		IEncodedDocument structuredDocument = createNewStructuredDocument();
-		StringBuffer allText = readInputStream(fFullPreparedReader);
-		structuredDocument.set(allText.toString());
-		return structuredDocument;
-	}
-
-	public IEncodedDocument createNewStructuredDocument(String filename, InputStream inputStream) throws UnsupportedEncodingException, IOException {
-		return createNewStructuredDocument(filename, inputStream, EncodingRule.CONTENT_BASED);
-	}
-
-	public IEncodedDocument createNewStructuredDocument(String filename, InputStream inputStream, EncodingRule encodingRule) throws UnsupportedEncodingException, IOException {
-		if (filename == null && inputStream == null) {
-			throw new IllegalArgumentException("can not have both null filename and inputstream"); //$NON-NLS-1$
-		}
-		IEncodedDocument structuredDocument = createNewStructuredDocument();
-		CodedReaderCreator codedReaderCreator = getCodedReaderCreator();
-		try {
-			codedReaderCreator.set(filename, inputStream);
-			codedReaderCreator.setEncodingRule(encodingRule);
-			fEncodingMemento = codedReaderCreator.getEncodingMemento();
-			fFullPreparedReader = codedReaderCreator.getCodedReader();
-			structuredDocument.setEncodingMemento(fEncodingMemento);
-			setDocumentContentsFromReader(structuredDocument, fFullPreparedReader);
-		} catch (CoreException e) {
-			// impossible in this context
-			throw new Error(e);
-		} finally {
-			if (fFullPreparedReader != null) {
-				fFullPreparedReader.close();
-			}
-		}
-
-		return structuredDocument;
-	}
-
-	private int getCharPostionOfFailure(BufferedReader inputStream) {
-		int charPosition = 1;
-		int charRead = -1;
-		boolean errorFound = false;
-		do {
-			try {
-				charRead = inputStream.read();
-				charPosition++;
-			} catch (IOException e) {
-				// this is expected, since we're expecting failure,
-				// so no need to do anything.
-				errorFound = true;
-				break;
-			}
-		} while (!(charRead == -1 || errorFound));
-
-		if (errorFound)
-			// dmw, blindly modified to +1 to get unit tests to work, moving
-			// from Java 1.3, to 1.4
-			// not sure how/why this behavior would have changed. (Its as if
-			// 'read' is reporting error
-			// one character early).
-			return charPosition + 1;
-		else
-			return -1;
-	}
-
-	/**
-	 * @return Returns the codedReaderCreator.
-	 */
-	protected CodedReaderCreator getCodedReaderCreator() {
-		if (fCodedReaderCreator == null) {
-			fCodedReaderCreator = new CodedReaderCreator();
-		}
-		return fCodedReaderCreator;
-	}
-
-	/**
-	 * Method getDefaultDocumentPartitioner.
-	 * 
-	 * @return IDocumentPartitioner
-	 */
-	public IDocumentPartitioner getDefaultDocumentPartitioner() {
-		// be default, we'll provide XML (though could be NOOP?
-		// 7/2003 .... changed during re-org ... to be Null instead of XML,
-		// so there would be no minor dependancies from higher plugins.
-		return new NullStructuredDocumentPartitioner();
-	}
-
-	/**
-	 * Returns the encodingMemento.
-	 * 
-	 * @return EncodingMemento
-	 */
-	public EncodingMemento getEncodingMemento() {
-		if (fEncodingMemento == null) {
-			throw new IllegalStateException("Program Error: encodingMemento was accessed before it was set"); //$NON-NLS-1$
-		}
-		return fEncodingMemento;
-	}
-
-	/**
-	 * @return Returns the fullPreparedReader.
-	 */
-	protected Reader getFullPreparedReader() throws UnsupportedEncodingException, CoreException, IOException {
-		if (fFullPreparedReader == null) {
-			fFullPreparedReader = getCodedReaderCreator().getCodedReader();
-		}
-		return fFullPreparedReader;
-	}
-
-	/**
-	 * If subclass doesn't implement, return null
-	 */
-	protected String getPreferredNewLineDelimiter() {
-		return null;
-	}
-
-	/**
-	 * A utility method, but depends on subclasses to impliment the preferred
-	 * end of line for a particular content type. Note: subclasses should not
-	 * re-implement this method (there's no reason to, even though its part of
-	 * interface). This method not only converts end-of-line characters, if
-	 * needed, but sets the correct end-of-line delimiter in
-	 * structuredDocument. Minor note: can't use this exact method in dumpers,
-	 * since the decision to change or not is a little different, and since
-	 * there we have to change text of structuredDocument if found to need
-	 * conversion. (Where as for loading, we assume we haven't yet set text in
-	 * structuredDocument, but will be done by other method just a tiny biy
-	 * later). Needs to be public to handle interface. It is in the interface
-	 * just so ModelManagerImpl can use it in a special circumstance.
-	 */
-	public StringBuffer handleLineDelimiter(StringBuffer originalString, IEncodedDocument theFlatModel) {
-		// TODO: need to handle line delimiters so Marker Positions are
-		// updated
-		StringBuffer convertedText = null;
-		// based on text, make a guess on what's being used as
-		// line delimiter
-		String probableLineDelimiter = TextUtilities.determineLineDelimiter(originalString, theFlatModel.getLegalLineDelimiters(), System.getProperty("line.separator")); //$NON-NLS-1$
-		String preferredLineDelimiter = getPreferredNewLineDelimiter();
-		if (preferredLineDelimiter == null) {
-			// when preferredLineDelimiter is null, it means "leave alone"
-			// so no conversion needed.
-			// set here, only if null (should already be set, but if not,
-			// we'll set so any subsequent editing inserts what we're
-			// assuming)
-			if (!theFlatModel.getLineDelimiter().equals(probableLineDelimiter)) {
-				theFlatModel.setLineDelimiter(probableLineDelimiter);
-			}
-			convertedText = originalString;
-		} else {
-			if (!preferredLineDelimiter.equals(probableLineDelimiter)) {
-				// technically, wouldn't have to convert line delimiters
-				// here at beginning, but when we save, if the preferred
-				// line delimter is "leave alone" then we do leave alone,
-				// so best to be right from beginning.
-				convertedText = convertLineDelimiters(originalString, preferredLineDelimiter);
-				theFlatModel.setLineDelimiter(preferredLineDelimiter);
-			} else {
-				// they are already the same, no conversion needed
-				theFlatModel.setLineDelimiter(preferredLineDelimiter);
-				convertedText = originalString;
-			}
-		}
-		return convertedText;
-	}
-
-	protected abstract IEncodedDocument newEncodedDocument();
-
-	/**
-	 * Very mechanical method, just to read the characters, once the reader is
-	 * correctly created. Can throw MalFormedInputException.
-	 */
-	private StringBuffer readInputStream(Reader reader) throws IOException {
-
-		int fBlocksRead = 0;
-		StringBuffer buffer = new StringBuffer();
-		int numRead = 0;
-		try {
-			char tBuff[] = new char[CodedIO.MAX_BUF_SIZE];
-			while (numRead != -1) {
-				numRead = reader.read(tBuff, 0, tBuff.length);
-				if (numRead > 0) {
-					buffer.append(tBuff, 0, numRead);
-					fBlocksRead++;
-				}
-			}
-		} catch (MalformedInputException e) {
-			throw new MalformedInputExceptionWithDetail(fEncodingMemento.getJavaCharsetName(), fBlocksRead * CodedIO.MAX_BUF_SIZE + numRead + e.getInputLength());
-		} catch (UnmappableCharacterException e) {
-			throw new MalformedInputExceptionWithDetail(fEncodingMemento.getJavaCharsetName(), fBlocksRead * CodedIO.MAX_BUF_SIZE + numRead + e.getInputLength());
-
-		}
-		return buffer;
-	}
-
-	public void reload(IEncodedDocument encodedDocument, Reader inputStreamReader) throws IOException {
-		if (inputStreamReader == null) {
-			throw new IllegalArgumentException("stream reader can not be null"); //$NON-NLS-1$
-		}
-		int READ_BUFFER_SIZE = 8192;
-		int MAX_BUFFERED_SIZE_FOR_RESET_MARK = 200000;
-		// temp .... eventually we'lll only read as needed
-		BufferedReader bufferedReader = new BufferedReader(inputStreamReader, MAX_BUFFERED_SIZE_FOR_RESET_MARK);
-		bufferedReader.mark(MAX_BUFFERED_SIZE_FOR_RESET_MARK);
-		StringBuffer buffer = new StringBuffer();
-		try {
-			int numRead = 0;
-			char tBuff[] = new char[READ_BUFFER_SIZE];
-			while ((numRead = bufferedReader.read(tBuff, 0, tBuff.length)) != -1) {
-				buffer.append(tBuff, 0, numRead);
-			}
-			// remember -- we didn't open stream ... so we don't close it
-		} catch (MalformedInputException e) {
-			int pos = e.getInputLength();
-			EncodingMemento localEncodingMemento = getEncodingMemento();
-			boolean couldReset = true;
-			String encodingNameInError = localEncodingMemento.getJavaCharsetName();
-			if (encodingNameInError == null) {
-				encodingNameInError = localEncodingMemento.getDetectedCharsetName();
-			}
-			try {
-				bufferedReader.reset();
-			} catch (IOException resetException) {
-				// the only errro that can occur during reset is an
-				// IOException
-				// due to already being past the rest mark. In that case, we
-				// throw more generic message
-				couldReset = false;
-			}
-			// -1 can be used by UI layer as a code that "position could not
-			// be
-			// determined"
-			int charPostion = -1;
-			if (couldReset) {
-
-				charPostion = getCharPostionOfFailure(bufferedReader);
-				//getCharPostionOfFailure(new InputStreamReader(inStream,
-				// javaEncodingNameInError));
-			}
-			// all of that just to throw more accurate error
-			// note: we do the conversion to ianaName, instead of using the
-			// local
-			// variable,
-			// because this is ultimately only for the user error message
-			// (that
-			// is,
-			// the error occurred
-			// in context of javaEncodingName no matter what ianaEncodingName
-			// is
-			throw new MalformedInputExceptionWithDetail(encodingNameInError, CodedIO.getAppropriateJavaCharset(encodingNameInError), charPostion, !couldReset, MAX_BUFFERED_SIZE_FOR_RESET_MARK);
-		}
-		StringBuffer stringbuffer = buffer;
-		encodedDocument.set(stringbuffer.toString());
-
-	}
-
-	protected void setDocumentContentsFromReader(IEncodedDocument structuredDocument, Reader reader) throws IOException {
-
-		StringBuffer allText = readInputStream(reader);
-		structuredDocument.set(allText.toString());
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/DocumentReader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/DocumentReader.java
deleted file mode 100644
index 75071b5..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/DocumentReader.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.document;
-
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.jface.text.IDocument;
-
-/**
- * A java.io.Reader that can operate off of an IDocument.
- */
-public class DocumentReader extends Reader {
-	private IDocument fDocument = null;
-	private int mark = 0;
-	private int position = 0;
-
-	public DocumentReader() {
-		super();
-	}
-
-	public DocumentReader(IDocument document) {
-		this(document, 0);
-	}
-
-	public DocumentReader(IDocument document, int initialPosition) {
-		super();
-		fDocument = document;
-		position = initialPosition;
-	}
-
-	public void close() throws IOException {
-		// do nothing
-	}
-
-	/**
-	 * @return
-	 */
-	public IDocument getDocument() {
-		return fDocument;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.io.Reader#mark(int)
-	 */
-	public void mark(int readAheadLimit) throws IOException {
-		mark = position;
-	}
-
-	public boolean markSupported() {
-		return true;
-	}
-
-	public int read(char[] cbuf, int off, int len) throws IOException {
-		char[] readChars = null;
-		try {
-			if (position >= fDocument.getLength())
-				return -1;
-			// the IDocument is likely using a GapTextStore, so we can't
-			// retrieve a char[] directly
-			if (position + len > fDocument.getLength())
-				readChars = fDocument.get(position, fDocument.getLength() - position).toCharArray();
-			else
-				readChars = fDocument.get(position, len).toCharArray();
-			System.arraycopy(readChars, 0, cbuf, off, readChars.length);
-			//				System.out.println("" + position + ":" + readChars.length + " "
-			// + StringUtils.escape(new String(readChars)));
-			position += readChars.length;
-			return readChars.length;
-		} catch (Exception e) {
-			throw new IOException("Exception while reading from IDocument: " + e); //$NON-NLS-1$
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.io.Reader#reset()
-	 */
-	public void reset() throws IOException {
-		position = mark;
-	}
-
-	public void reset(IDocument document, int initialPosition) {
-		fDocument = document;
-		position = initialPosition;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.io.Reader#reset()
-	 */
-	public void reset(int pos) throws IOException {
-		position = pos;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.io.Reader#skip(long)
-	 */
-	public long skip(long n) throws IOException {
-		long skipped = n;
-		if (position + n > fDocument.getLength()) {
-			skipped = fDocument.getLength() - position;
-			position = fDocument.getLength();
-		} else {
-			position += n;
-		}
-		return skipped;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/IDocumentCharsetDetector.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/IDocumentCharsetDetector.java
deleted file mode 100644
index fcd1ce6..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/IDocumentCharsetDetector.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.document;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.common.encoding.IResourceCharsetDetector;
-
-
-
-public interface IDocumentCharsetDetector extends IResourceCharsetDetector {
-	void set(IDocument document);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/IDocumentLoader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/IDocumentLoader.java
deleted file mode 100644
index 3d73a04..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/IDocumentLoader.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.document;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.io.UnsupportedEncodingException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.wst.common.encoding.EncodingRule;
-
-
-public interface IDocumentLoader {
-
-	IEncodedDocument createNewStructuredDocument();
-
-	/**
-	 * This API is like createNewStructuredDocument, except it should populate
-	 * the structuredDocument with the contents of IFile. Also, those
-	 * StructuredDocuments which are sensitive to the input (that is, the
-	 * parser or parser initialization my require the input) should
-	 * additionally initialize the parser, etc., appropriate to the input.
-	 * 
-	 * As always, the appropriate decoding should be used.
-	 */
-	IEncodedDocument createNewStructuredDocument(IFile iFile) throws java.io.IOException, CoreException;
-
-	IEncodedDocument createNewStructuredDocument(Reader reader) throws UnsupportedEncodingException, IOException;
-
-	/**
-	 * This method must return a new instance of IEncodedDocument, that has
-	 * been initialized with appropriate parser. For many loaders, the
-	 * (default) parser used is known for any input. For others, the correct
-	 * parser (and its initialization) is normally dependent on the content of
-	 * the file. This no-argument method should assume "empty input" and would
-	 * therefore return the default parser for the default contentType.
-	 */
-	IEncodedDocument createNewStructuredDocument(String filename, InputStream istream) throws java.io.IOException;
-
-	IEncodedDocument createNewStructuredDocument(String filename, InputStream istream, EncodingRule encodingRule) throws java.io.IOException;
-
-	IDocumentPartitioner getDefaultDocumentPartitioner();
-
-	IDocumentCharsetDetector getDocumentEncodingDetector();
-
-	/**
-	 * A utility method, but depends on subclasses to impliment the preferred
-	 * end of line for a particular content type. Note: subclasses should not
-	 * re-implement this method (there's no reason to, even though its part of
-	 * interface). This method not only converts end-of-line characters, if
-	 * needed, but sets the correct end-of-line delimiter in
-	 * structuredDocument. The returned value is either the original string,
-	 * if no conversion is needed, or a new string with end-of-lines
-	 * converted.
-	 */
-	StringBuffer handleLineDelimiter(StringBuffer originalString, IEncodedDocument theStructuredDocument);
-
-	void reload(IEncodedDocument document, Reader reader) throws IOException;
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/IDocumentLoaderForFileBuffers.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/IDocumentLoaderForFileBuffers.java
deleted file mode 100644
index 1eff6e2..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/IDocumentLoaderForFileBuffers.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.document;
-
-import java.io.IOException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-public interface IDocumentLoaderForFileBuffers extends IDocumentLoader {
-
-	IEncodedDocument createNewStructuredDocument(IFile iFile, IProgressMonitor monitor) throws IOException, CoreException;
-
-
-	void release(IFile iFile, IProgressMonitor monitor) throws CoreException;
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/IEncodedDocument.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/IEncodedDocument.java
deleted file mode 100644
index 95da1bb..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/IEncodedDocument.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.document;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.common.encoding.EncodingMemento;
-
-
-
-
-public interface IEncodedDocument extends IDocument {
-
-	EncodingMemento getEncodingMemento();
-
-	String getLineDelimiter();
-
-	void setEncodingMemento(EncodingMemento localEncodingMemento);
-
-	void setLineDelimiter(String probableLineDelimiter);
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/IExecutionDelegate.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/IExecutionDelegate.java
deleted file mode 100644
index c18fe9b..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/IExecutionDelegate.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.sse.core.document;
-
-
-public interface IExecutionDelegate {
-
-	void execute(Runnable runnable);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/ILockable.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/ILockable.java
deleted file mode 100644
index 01957b5..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/ILockable.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.sse.core.document;
-
-import org.eclipse.core.runtime.jobs.ILock;
-
-/**
- * 
- * Not API: not to be used or implemented by clients. This is a special
- * purpose interface to help guard some threading issues betweeen model and
- * document. Will be changed soon.
- *  
- */
-
-public interface ILockable {
-
-	ILock getLockObject();
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/StructuredDocumentFactory.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/StructuredDocumentFactory.java
deleted file mode 100644
index a8cc654..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/StructuredDocumentFactory.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.document;
-
-import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument;
-import org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument;
-import org.eclipse.wst.sse.core.internal.text.SynchronizedStructuredDocument;
-import org.eclipse.wst.sse.core.parser.RegionParser;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-
-
-/**
- * At the moment, this is primarily intended as a convenience to help switch
- * between various types of threading models in the document, all in a central
- * piece of code.
- */
-public class StructuredDocumentFactory {
-	public static final int WRITE_SYNCHRONIZED = 3;
-	public static final int DEFAULT = WRITE_SYNCHRONIZED;
-	public static final int SYNCHRONIZED = 2;
-
-	public static final int UNSYNCHRONIZED = 1;
-
-	public static IStructuredDocument getNewStructuredDocumentInstance() {
-		// be default, use thread safe one
-		return getNewStructuredDocumentInstance(DEFAULT);
-	}
-
-	public static IStructuredDocument getNewStructuredDocumentInstance(int type) {
-		IStructuredDocument result = null;
-		switch (type) {
-			case UNSYNCHRONIZED :
-				result = new BasicStructuredDocument();
-				break;
-			case SYNCHRONIZED :
-				result = new SynchronizedStructuredDocument();
-				break;
-			case WRITE_SYNCHRONIZED :
-				result = new JobSafeStructuredDocument();
-				break;
-
-			default :
-				throw new IllegalArgumentException("request document type was not known");
-
-		}
-		return result;
-	}
-
-	public static IStructuredDocument getNewStructuredDocumentInstance(int type, RegionParser parser) {
-		IStructuredDocument result = null;
-		switch (type) {
-			case UNSYNCHRONIZED :
-				result = new BasicStructuredDocument(parser);
-				break;
-			case SYNCHRONIZED :
-				result = new SynchronizedStructuredDocument(parser);
-				break;
-			case WRITE_SYNCHRONIZED :
-				result = new JobSafeStructuredDocument(parser);
-				break;
-
-			default :
-				throw new IllegalArgumentException("request document type was not known");
-
-		}
-		return result;
-	}
-
-	public static IStructuredDocument getNewStructuredDocumentInstance(RegionParser parser) {
-		// be default, use thread safe one
-		return getNewStructuredDocumentInstance(DEFAULT, parser);
-	}
-
-	/**
-	 * Not intended to be instantiated
-	 *  
-	 */
-	protected StructuredDocumentFactory() {
-		super();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/StructuredDocumentLoader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/StructuredDocumentLoader.java
deleted file mode 100644
index 61308b3..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/document/StructuredDocumentLoader.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.sse.core.document;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.Reader;
-import java.nio.charset.MalformedInputException;
-
-import org.eclipse.core.filebuffers.FileBuffers;
-import org.eclipse.core.filebuffers.ITextFileBuffer;
-import org.eclipse.core.filebuffers.ITextFileBufferManager;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.common.encoding.CodedIO;
-import org.eclipse.wst.common.encoding.EncodingMemento;
-import org.eclipse.wst.common.encoding.IContentDescriptionExtended;
-import org.eclipse.wst.common.encoding.exceptions.MalformedInputExceptionWithDetail;
-
-
-public class StructuredDocumentLoader {
-
-	private ITextFileBufferManager fBufferManager;
-
-	/**
-	 * @see org.eclipse.wst.sse.core.document.IDocumentLoader#createNewStructuredDocument(org.eclipse.core.resources.IFile)
-	 * @deprecated - use form with progress monitor
-	 */
-	public IEncodedDocument createNewStructuredDocument(IFile iFile) throws IOException, CoreException {
-		return createNewStructuredDocument(iFile, null);
-	}
-
-	public IEncodedDocument createNewStructuredDocument(IFile iFile, IProgressMonitor monitor) throws IOException, CoreException {
-		IDocument document = null;
-		IPath locationPath = iFile.getFullPath();
-
-		if (iFile.exists()) {
-
-			getBufferManager().connect(locationPath, monitor);
-			ITextFileBuffer buffer = getBufferManager().getTextFileBuffer(locationPath);
-			document = buffer.getDocument();
-		} else {
-			document = getBufferManager().createEmptyDocument(locationPath);
-		}
-
-		return (IEncodedDocument) document;
-	}
-
-	public IEncodedDocument createNewStructuredDocument(IPath locationPath, IProgressMonitor monitor) throws IOException, CoreException {
-		IDocument document = null;
-		File file = null;
-		file = FileBuffers.getSystemFileAtLocation(locationPath);
-		if (file.exists()) {
-			getBufferManager().connect(locationPath, monitor);
-			ITextFileBuffer buffer = getBufferManager().getTextFileBuffer(locationPath);
-			document = buffer.getDocument();
-		} else {
-			document = getBufferManager().createEmptyDocument(locationPath);
-		}
-		return (IEncodedDocument) document;
-	}
-
-	/**
-	 * @return
-	 */
-	protected ITextFileBufferManager getBufferManager() {
-		if (fBufferManager == null) {
-			fBufferManager = FileBuffers.getTextFileBufferManager();
-		}
-		return fBufferManager;
-	}
-
-	private String getCharset(Reader reader) throws IOException {
-		String result = null;
-		IContentDescription description = Platform.getContentTypeManager().getDescriptionFor(reader, null, new QualifiedName[]{IContentDescription.CHARSET, IContentDescriptionExtended.DETECTED_CHARSET});
-		String javaCharset = (String) description.getProperty(IContentDescription.CHARSET);
-		String detectedCharset = (String) description.getProperty(IContentDescriptionExtended.DETECTED_CHARSET);
-		EncodingMemento encodingMemento = (EncodingMemento) description.getProperty(IContentDescriptionExtended.ENCODING_MEMENTO);
-		if (javaCharset != null) {
-			result = javaCharset;
-		} else {
-			if (encodingMemento != null) {
-				result = encodingMemento.getDetectedCharsetName();
-			} else {
-				result = detectedCharset;
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Very mechanical method, just to read the characters, once the reader is
-	 * correctly created. Can throw MalFormedInputException.
-	 */
-	protected StringBuffer readInputStream(Reader reader) throws IOException {
-
-		int fBlocksRead = 0;
-		StringBuffer buffer = new StringBuffer();
-		int numRead = 0;
-		try {
-			char tBuff[] = new char[CodedIO.MAX_BUF_SIZE];
-			while ((numRead = reader.read(tBuff, 0, tBuff.length)) != -1) {
-				buffer.append(tBuff, 0, numRead);
-				fBlocksRead++;
-			}
-		} catch (MalformedInputException e) {
-			String charset = getCharset(reader);
-			throw new MalformedInputExceptionWithDetail(charset, fBlocksRead * CodedIO.MAX_BUF_SIZE + e.getInputLength());
-		}
-		return buffer;
-	}
-
-	public void release(IFile iFile, IProgressMonitor monitor) throws CoreException {
-		IPath locationPath = iFile.getFullPath();
-		getBufferManager().disconnect(locationPath, monitor);
-
-	}
-
-	public void reload(IEncodedDocument document, Reader reader) throws IOException {
-		setDocumentContentsFromReader(document, reader);
-
-	}
-
-	protected void setDocumentContentsFromReader(IEncodedDocument structuredDocument, Reader reader) throws IOException {
-
-		StringBuffer allText = readInputStream(reader);
-		structuredDocument.set(allText.toString());
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/AboutToBeChangeEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/AboutToBeChangeEvent.java
deleted file mode 100644
index ad41aa5..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/AboutToBeChangeEvent.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.events;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-
-/**
- * This event is send to "StructuredDocumentAboutToChange listners". Its
- * perfectly analagous to the jface DocumentEvent and is provided simply to
- * allow clients to take a pure model point of view, instead of using the
- * document event.
- */
-public class AboutToBeChangeEvent extends StructuredDocumentEvent {
-
-
-	public AboutToBeChangeEvent(IStructuredDocument source, Object originalSource, String changes, int offset, int lengthToReplace) {
-		super(source, originalSource, changes, offset, lengthToReplace);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/IModelAboutToBeChangedListener.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/IModelAboutToBeChangedListener.java
deleted file mode 100644
index 8306e4e..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/IModelAboutToBeChangedListener.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.events;
-
-
-
-/**
- * Clients can implement this interface, and register with the
- * structuredDocument using addAboutToBeChangedListner to be notified that the
- * structuredDocument is about to be changed, but hasn't been changed at the
- * time this event is fired.
- */
-public interface IModelAboutToBeChangedListener {
-
-	void modelAboutToBeChanged(AboutToBeChangeEvent structuredDocumentEvent);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/IStructuredDocumentListener.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/IStructuredDocumentListener.java
deleted file mode 100644
index e1d9a5c..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/IStructuredDocumentListener.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.events;
-
-
-
-public interface IStructuredDocumentListener {
-
-	public void newModel(NewDocumentEvent structuredDocumentEvent);
-
-	public void noChange(NoChangeEvent structuredDocumentEvent);
-
-	public void nodesReplaced(StructuredDocumentRegionsReplacedEvent structuredDocumentEvent);
-
-	public void regionChanged(RegionChangedEvent structuredDocumentEvent);
-
-	public void regionsReplaced(RegionsReplacedEvent structuredDocumentEvent);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/NewDocumentContentEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/NewDocumentContentEvent.java
deleted file mode 100644
index 8500b85..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/NewDocumentContentEvent.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.events;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-
-/**
- * The NewModelEvent is fired when an instance of a IStructuredDocument sets
- * or replaces all of its text. So, in the case of replacement, its a new
- * model, conceptually and practically, even though it is technically the same
- * instance of the IStructuredDocument.
- */
-public class NewDocumentContentEvent extends NewDocumentEvent {
-	public NewDocumentContentEvent(IStructuredDocument source, Object originalSource) {
-		super(source, originalSource);
-	}
-
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/NewDocumentEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/NewDocumentEvent.java
deleted file mode 100644
index 25dfd03..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/NewDocumentEvent.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.events;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-
-
-public class NewDocumentEvent extends NewModelEvent {
-
-	/**
-	 * @param source
-	 * @param originalSource
-	 */
-	public NewDocumentEvent(IStructuredDocument source, Object originalSource) {
-		super(source, originalSource);
-	}
-
-	/**
-	 * This doesn't mean quite the same thing as the IStructuredDocument
-	 * Events in the super class.
-	 */
-	public int getLength() {
-		return fLength;
-	}
-
-	/**
-	 * This doesn't mean quite the same thing as the IStructuredDocument
-	 * Events in the super class. It always will return zero.
-	 */
-	public int getOffset() {
-		return 0;
-	}
-
-	/**
-	 * This doesn't mean quite the same thing as the IStructuredDocument
-	 * Events in the super class. All the text of the new model is returned.
-	 * 
-	 * @deprecated - use getText()
-	 */
-	public String getOriginalChanges() {
-		String results = null;
-		results = getStructuredDocument().getText();
-		return results;
-	}
-
-	/**
-	 * This doesn't mean quite the same thing as the IStructuredDocument
-	 * Events in the super class. Since we have, basically no knowledge of
-	 * what we are replacing ... so we'll return zero.
-	 * 
-	 * @deprecated
-	 */
-	public int getOriginalLength() {
-		return fLength;
-	}
-
-	/**
-	 * This doesn't mean quite the same thing as the IStructuredDocument
-	 * Events in the super class. It always will return zero.
-	 * 
-	 * @deprecated
-	 */
-	public int getOriginalStart() {
-		return 0;
-	}
-
-	public String getText() {
-		String results = getStructuredDocument().getText();
-		return results;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/NewModelEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/NewModelEvent.java
deleted file mode 100644
index d408042..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/NewModelEvent.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.events;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-
-/**
- * @deprecated - use NewDocumentEvent or NewDocumentContentEvent (this class
- *             will simply be deleted in next version, moving its subclass
- *             "up" to take its place.
- */
-public class NewModelEvent extends StructuredDocumentEvent {
-	public NewModelEvent(IStructuredDocument source, Object originalSource) {
-		super(source, originalSource);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/NoChangeEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/NoChangeEvent.java
deleted file mode 100644
index 22bafe5..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/NoChangeEvent.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.events;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-
-/**
- * this event is thrown if, after analysis, it is found there is no reason to
- * change the structuredDocument. This might occur, for example, if someone
- * pastes in the exact same text that they are replacing, or if someone tries
- * to change a read-only region.
- * 
- * This might be important, for example, if some state variables are set on an
- * "about the change" event. then if there is no change (i.e.no other event is
- * fired), those state variables could reset, or whatever, upon receiving this
- * event.
- */
-public class NoChangeEvent extends StructuredDocumentEvent {
-	/**
-	 * NO_CONTENT_CHANGE means that a some text was requested to be replaced
-	 * with identical text, so no change is actually done.
-	 */
-	public final static int NO_CONTENT_CHANGE = 2;
-	/**
-	 * NO_EVENT is used in rare error conditions, when, basically, a request
-	 * to change the document is made before the previous request has
-	 * completed. This event to used so aboutToChange/Changed cycles can
-	 * complete as required, but the document is most likely not modified as
-	 * expected.
-	 */
-	public final static int NO_EVENT = 8;
-	/**
-	 * READ_ONLY_STATE_CHANGE means that the "read only" state of the text was
-	 * changed, not the content itself.
-	 */
-	public final static int READ_ONLY_STATE_CHANGE = 4;
-
-	/**
-	 * set to one of the above detailed reasons for why no change was done.
-	 */
-	public int reason = 0;
-
-	/**
-	 * NoChangeEvent constructor comment. This event can occur if there was a
-	 * request to modify a document or its properties, but there as not really
-	 * is no change to a document's content.
-	 * 
-	 * @param source
-	 *            com.ibm.sed.structuredDocument.IStructuredDocument
-	 * @param originalSource
-	 *            java.lang.Object
-	 * @param changes
-	 *            java.lang.String
-	 * @param offset
-	 *            int
-	 * @param lengthToReplace
-	 *            int
-	 */
-	public NoChangeEvent(IStructuredDocument source, Object originalSource, String changes, int offset, int lengthToReplace) {
-		super(source, originalSource, changes, offset, lengthToReplace);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/RegionChangedEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/RegionChangedEvent.java
deleted file mode 100644
index b663fdd..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/RegionChangedEvent.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.events;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-/**
- * This event is used when a node changes in a non-structural way.
- * Non-structural, that is, as far as the IStructuredDocument is concerned.
- * The whole node, along with the new text is sent, just in case a listener
- * (e.g. a tree model) might make its own determination of what to do, and
- * need the whole node to act appropriately.
- * 
- * Note: users should not make assumptions about whether the node is literally
- * the same instance or not -- it is currently a different instance that is
- * identical to the old except for the changed region, but this implementation
- * may change.
- */
-public class RegionChangedEvent extends StructuredDocumentEvent {
-	private ITextRegion fChangedRegion;
-	private IStructuredDocumentRegion fStructuredDocumentRegion;
-
-	public RegionChangedEvent(IStructuredDocument source, Object originalSource, IStructuredDocumentRegion flatNode, ITextRegion changedRegion, String changes, int offset, int lengthToReplace) {
-		super(source, originalSource, changes, offset, lengthToReplace);
-		fStructuredDocumentRegion = flatNode;
-		fChangedRegion = changedRegion;
-	}
-
-	public ITextRegion getRegion() {
-		return fChangedRegion;
-	}
-
-	public IStructuredDocumentRegion getStructuredDocumentRegion() {
-		return fStructuredDocumentRegion;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/RegionsReplacedEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/RegionsReplacedEvent.java
deleted file mode 100644
index 7954b25..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/RegionsReplacedEvent.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.events;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-
-/**
- * This event is used when a node's regions change, but the node itself
- * doesn't. This says nothing about the semantics of the node, that may still
- * have changed. Also, its assumed/required that ALL the regions are replaced
- * (even those that may not have changed).
- */
-public class RegionsReplacedEvent extends StructuredDocumentEvent {
-	private ITextRegionList fNewRegions;
-	private ITextRegionList fOldRegions;
-	private IStructuredDocumentRegion fStructuredDocumentRegion;
-
-	public RegionsReplacedEvent(IStructuredDocument source, Object originalSource, IStructuredDocumentRegion flatNode, ITextRegionList oldRegions, ITextRegionList newRegions, String changes, int offset, int lengthToReplace) {
-		super(source, originalSource, changes, offset, lengthToReplace);
-		fStructuredDocumentRegion = flatNode;
-		fOldRegions = oldRegions;
-		fNewRegions = newRegions;
-	}
-
-	public ITextRegionList getNewRegions() {
-		return fNewRegions;
-	}
-
-	public ITextRegionList getOldRegions() {
-		return fOldRegions;
-	}
-
-	public IStructuredDocumentRegion getStructuredDocumentRegion() {
-		return fStructuredDocumentRegion;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/StructuredDocumentEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/StructuredDocumentEvent.java
deleted file mode 100644
index f6f643a..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/StructuredDocumentEvent.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.events;
-
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-
-
-/**
- * IStructuredDocument events are generated by the IStructuredDocument, after
- * the IStructuredDocument acts on a request.
- */
-public abstract class StructuredDocumentEvent extends DocumentEvent {
-	protected String fDeletedText;
-	protected Object fOriginalRequester;
-
-	public IStructuredDocument fStructuredDocument;
-
-	//public int fOffset;
-	//public int fLength;
-	//public String fText;
-	/**
-	 * We assume that IStructuredDocument's are ALWAYS the source of
-	 * IStructuredDocument events
-	 */
-	protected StructuredDocumentEvent(IStructuredDocument source) {
-		super();
-		if (source == null)
-			throw new IllegalArgumentException("null source"); //$NON-NLS-1$
-		fDocument = source;
-		fStructuredDocument = source;
-	}
-
-	protected StructuredDocumentEvent(IStructuredDocument source, Object originalSource) {
-		this(source);
-		fOriginalRequester = originalSource;
-	}
-
-	protected StructuredDocumentEvent(IStructuredDocument source, Object originalSource, String changes, int offset, int lengthToReplace) {
-		this(source);
-		fOriginalRequester = originalSource;
-		fText = changes;
-		fOffset = offset;
-		fLength = lengthToReplace;
-	}
-
-	/**
-	 * @return java.lang.String
-	 */
-	public java.lang.String getDeletedText() {
-		return fDeletedText;
-	}
-
-	public IDocument getDocument() {
-
-		return fStructuredDocument;
-	}
-
-	public int getLength() {
-
-		return fLength;
-	}
-
-	public int getOffset() {
-
-		return getOriginalStart();
-	}
-
-	/**
-	 * This method returns the object that originally caused the event to
-	 * fire. This is typically not the object that created the event (the
-	 * IStructuredDocument) but instead the object object that made a request
-	 * to the IStructuredDocument.
-	 * 
-	 * @return java.lang.Object
-	 */
-	public java.lang.Object getOriginalSource() {
-		return fOriginalRequester;
-	}
-
-	public int getOriginalStart() {
-		return fOffset;
-	}
-
-	/**
-	 * This method is equivalent to 'getSource' except it returns an object of
-	 * the appropriate type (namely, a IStructuredDocument, instead of
-	 * Object).
-	 */
-	public IStructuredDocument getStructuredDocument() {
-		// a safe case, since constructor can only be called with a
-		// IStructuredDocument
-		return fStructuredDocument;
-	}
-
-	public String getText() {
-
-		return fText;
-	}
-
-	/**
-	 * @param newDeletedText
-	 *            java.lang.String
-	 */
-	public void setDeletedText(java.lang.String newDeletedText) {
-		fDeletedText = newDeletedText;
-	}
-
-	/**
-	 * returns the classname, but not the 'source=' (as super does).
-	 */
-	public String toString() {
-		//return getClass().getName() + "[source=" + source + "]";
-		return getClass().getName();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/StructuredDocumentRegionsReplacedEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/StructuredDocumentRegionsReplacedEvent.java
deleted file mode 100644
index 59969b6..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/events/StructuredDocumentRegionsReplacedEvent.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.events;
-
-
-
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegionList;
-
-/**
- * This event is used when a IStructuredDocumentRegion is deleted, or replaced
- * with more than one IStructuredDocumentRegion, or when simply more than one
- * IStructuredDocumentRegion changes.
- */
-
-public class StructuredDocumentRegionsReplacedEvent extends StructuredDocumentEvent {
-
-	private IStructuredDocumentRegionList fNewStructuredDocumentRegions;
-	private IStructuredDocumentRegionList fOldStructuredDocumentRegions;
-
-	public StructuredDocumentRegionsReplacedEvent(IStructuredDocument source, Object originalSource, IStructuredDocumentRegionList oldStructuredDocumentRegions, IStructuredDocumentRegionList newStructuredDocumentRegions, String changes, int offset, int lengthToReplace) {
-		super(source, originalSource, changes, offset, lengthToReplace);
-		fOldStructuredDocumentRegions = oldStructuredDocumentRegions;
-		fNewStructuredDocumentRegions = newStructuredDocumentRegions;
-	}
-
-	public IStructuredDocumentRegionList getNewStructuredDocumentRegions() {
-		return fNewStructuredDocumentRegions;
-	}
-
-	public IStructuredDocumentRegionList getOldStructuredDocumentRegions() {
-		return fOldStructuredDocumentRegions;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/exceptions/ResourceAlreadyExists.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/exceptions/ResourceAlreadyExists.java
deleted file mode 100644
index a48bb02..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/exceptions/ResourceAlreadyExists.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.exceptions;
-
-
-
-public class ResourceAlreadyExists extends Exception {
-
-	/**
-	 * Comment for <code>serialVersionUID</code>
-	 */
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * ResourceAlreadyExists constructor comment.
-	 */
-	public ResourceAlreadyExists() {
-		super();
-	}
-
-	/**
-	 * ResourceAlreadyExists constructor comment.
-	 * 
-	 * @param s
-	 *            java.lang.String
-	 */
-	public ResourceAlreadyExists(String s) {
-		super(s);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/exceptions/ResourceInUse.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/exceptions/ResourceInUse.java
deleted file mode 100644
index 24f1c8c..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/exceptions/ResourceInUse.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.exceptions;
-
-
-
-public class ResourceInUse extends Exception {
-
-	/**
-	 * Comment for <code>serialVersionUID</code>
-	 */
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * ResourceAlreadyExists constructor comment.
-	 */
-	public ResourceInUse() {
-		super();
-	}
-
-	/**
-	 * ResourceAlreadyExists constructor comment.
-	 * 
-	 * @param s
-	 *            java.lang.String
-	 */
-	public ResourceInUse(String s) {
-		super(s);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/exceptions/SourceEditingException.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/exceptions/SourceEditingException.java
deleted file mode 100644
index 4f14749..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/exceptions/SourceEditingException.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.exceptions;
-
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-
-/**
- * The SourceEditingException is often thrown by Source Editor methods in
- * order to have a predictable, uniform interface to the Source Editing APIs.
- * If the OriginalException is not null, then it must be examined to determine
- * the true cause of the exception.
- */
-public class SourceEditingException extends Exception {
-
-	/**
-	 * Comment for <code>serialVersionUID</code>
-	 */
-	private static final long serialVersionUID = 1L;
-	private Throwable originalException;
-
-	public SourceEditingException() {
-		super();
-	}
-
-	public SourceEditingException(String s) {
-		super(s);
-	}
-
-	/**
-	 * This form of the constructor is used to wrapper another exception.
-	 */
-	public SourceEditingException(Throwable t) {
-		super();
-		originalException = t;
-	}
-
-	/**
-	 * This form of the constructor is used to wrapper another exception, but
-	 * still provide a new descriptive message.
-	 */
-	public SourceEditingException(Throwable t, String s) {
-		super(s);
-		originalException = t;
-	}
-
-	/**
-	 * The message depends on if this is a case that has an embedded
-	 * exception.
-	 */
-	public String getMessage() {
-		String result = null;
-		if (originalException != null) {
-			result = originalException.getMessage();
-		} else {
-			result = super.getMessage();
-		}
-		return result;
-	}
-
-	public Throwable getOriginalException() {
-		return originalException;
-	}
-
-	public String toString() {
-		// we don't put super.toString to "hide" that it was a
-		// sourceEditing exception
-		String s = null; //super.toString();
-		String originalError = SSECorePlugin.getResourceString("%Original_Error__UI_"); //$NON-NLS-1$ = "Original Error:"
-
-		if (originalException != null) {
-			s = originalError + " " + originalException.toString(); //$NON-NLS-1$ 
-		}
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/exceptions/SourceEditingRuntimeException.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/exceptions/SourceEditingRuntimeException.java
deleted file mode 100644
index 8b09a61..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/exceptions/SourceEditingRuntimeException.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.exceptions;
-
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-
-/**
- * The SourceEditingRuntimeException is often thrown by Source Editor methods
- * when a service we use throws a checked exception, but we want to convert
- * and treat as a runtime exception. (Such as BadLocationException is a common
- * example).
- */
-public class SourceEditingRuntimeException extends RuntimeException {
-
-	/**
-	 * Comment for <code>serialVersionUID</code>
-	 */
-	private static final long serialVersionUID = 1L;
-	private Throwable originalException;
-
-	public SourceEditingRuntimeException() {
-		super();
-	}
-
-	public SourceEditingRuntimeException(String s) {
-		super(s);
-	}
-
-	/**
-	 * This form of the constructor is used to wrapper another exception.
-	 */
-	public SourceEditingRuntimeException(Throwable t) {
-		super();
-		originalException = t;
-	}
-
-	/**
-	 * This form of the constructor is used to wrapper another exception, but
-	 * still provide a new descriptive message.
-	 */
-	public SourceEditingRuntimeException(Throwable t, String s) {
-		super(s);
-		originalException = t;
-	}
-
-	public String getMessage() {
-		String result = super.getMessage();
-		if ((result != null) && (!result.endsWith("."))) //$NON-NLS-1$
-			result = result + "."; //$NON-NLS-1$
-		if (originalException != null) {
-			String embeddedMessage = originalException.getMessage();
-			embeddedMessage = originalException.getClass().getName() + ": " + originalException.getMessage(); //$NON-NLS-1$
-			// not all exceptions have messages (e.g. many
-			// NullPointerException)
-			String originalError = SSECorePlugin.getResourceString("%Original_Error__UI_"); //$NON-NLS-1$ = "Original Error:"
-			if (result == null)
-				result = ""; //$NON-NLS-1$
-			if (embeddedMessage != null)
-				result = result + "  " + originalError + " " + embeddedMessage;//$NON-NLS-2$//$NON-NLS-1$
-			else
-				result = result + "  " + originalError + " " + originalException.toString();//$NON-NLS-2$//$NON-NLS-1$
-		}
-		return result;
-	}
-
-	public Throwable getOriginalException() {
-		return originalException;
-	}
-
-	public String toString() {
-		// we don't put super.toString or getClass to "hide" that it was a
-		// SourceEditing exception (otherwise, focus goes on that,
-		// instead of original exception.
-		String message = getMessage();
-		// message should never be null ... but just in case
-		return (message != null) ? message : super.toString();
-
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/filebuffers/BasicStructuredDocumentFactory.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/filebuffers/BasicStructuredDocumentFactory.java
deleted file mode 100644
index a47dda9..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/filebuffers/BasicStructuredDocumentFactory.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.filebuffers;
-
-import org.eclipse.core.filebuffers.IDocumentFactory;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.sse.core.internal.modelhandler.ModelHandlerRegistry;
-import org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument;
-import org.eclipse.wst.sse.core.modelhandler.IModelHandler;
-
-
-public class BasicStructuredDocumentFactory implements IDocumentFactory, IExecutableExtension {
-
-	// The content type ID used to declare this factory; it is used to find
-	// the corresponding ModelHandler
-	private String fContentTypeIdentifier = null;
-
-	public BasicStructuredDocumentFactory() {
-		super();
-	}
-
-	public IDocument createDocument() {
-		IDocument document = null;
-		IModelHandler handler = ModelHandlerRegistry.getInstance().getHandlerForContentTypeId(getContentTypeIdentifier());
-		if (handler != null) {
-			document = handler.getDocumentLoader().createNewStructuredDocument();
-		}
-		else {
-			document = new JobSafeStructuredDocument();
-		}
-		return document;
-	}
-
-	protected String getContentTypeIdentifier() {
-		return fContentTypeIdentifier;
-	}
-
-	public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException {
-		fContentTypeIdentifier = config.getAttribute("contentTypeId");
-		if (data != null) {
-			if (data instanceof String && data.toString().length() > 0) {
-				fContentTypeIdentifier = (String) data;
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/AbstractStructuredFormatProcessor.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/AbstractStructuredFormatProcessor.java
deleted file mode 100644
index d2c990f..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/AbstractStructuredFormatProcessor.java
+++ /dev/null
@@ -1,479 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.format;
-
-import java.io.ByteArrayInputStream;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Vector;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.sse.core.IStructuredModel;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.Logger;
-import org.eclipse.wst.sse.core.util.Assert;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Node;
-
-
-public abstract class AbstractStructuredFormatProcessor implements IStructuredFormatProcessor {
-	protected IStructuredFormatContraints fFormatContraints = null;
-	protected IProgressMonitor fProgressMonitor = null;
-	public boolean refreshFormatPreferences = true; // special flag for JUnit
-
-	protected void ensureClosed(OutputStream outputStream, InputStream inputStream) {
-
-		try {
-			if (inputStream != null) {
-				inputStream.close();
-			}
-		} catch (IOException e) {
-			Logger.logException(e); // hopeless
-		}
-		try {
-			if (outputStream != null) {
-				outputStream.close();
-			}
-		} catch (IOException e) {
-			Logger.logException(e); // hopeless
-		}
-	}
-
-	public String formatContent(String input) throws IOException, CoreException {
-		if (input == null)
-			return input;
-
-		IStructuredModel structuredModel = null;
-		InputStream inputStream = null;
-		try {
-			// setup structuredModel
-			// Note: We are getting model for read. Will return formatted
-			// string and NOT save model.
-			inputStream = new ByteArrayInputStream(input.getBytes("UTF8")); //$NON-NLS-1$
-			String id = inputStream.toString() + "." + getFileExtension(); //$NON-NLS-1$
-			structuredModel = StructuredModelManager.getModelManager().getModelForRead(id, inputStream, null);
-
-			// format
-			formatModel(structuredModel);
-
-			// return output
-			return structuredModel.getStructuredDocument().get();
-		} finally {
-			ensureClosed(null, inputStream);
-			// release from model manager
-			if (structuredModel != null)
-				structuredModel.releaseFromRead();
-		}
-	}
-
-	public String formatContent(String input, int start, int length) throws IOException, CoreException {
-		if (input == null)
-			return input;
-
-		if (start >= 0 && length >= 0 && start + length <= input.length()) {
-			IStructuredModel structuredModel = null;
-			InputStream inputStream = null;
-			try {
-				// setup structuredModel
-				// Note: We are getting model for read. Will return formatted
-				// string and NOT save model.
-				inputStream = new ByteArrayInputStream(input.getBytes("UTF8")); //$NON-NLS-1$
-				String id = inputStream.toString() + "." + getFileExtension(); //$NON-NLS-1$
-				structuredModel = StructuredModelManager.getModelManager().getModelForRead(id, inputStream, null);
-
-				// format
-				formatModel(structuredModel, start, length);
-
-				// return output
-				return structuredModel.getStructuredDocument().get();
-			} finally {
-				ensureClosed(null, inputStream);
-				// release from model manager
-				if (structuredModel != null)
-					structuredModel.releaseFromRead();
-			}
-		} else
-			return input;
-	}
-
-	public void formatDocument(IDocument document) throws IOException, CoreException {
-		if (document == 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().getExistingModelForEdit(document);
-
-			// 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 formatDocument(IDocument document, int start, int length) throws IOException, CoreException {
-		if (document == null)
-			return;
-
-		if (start >= 0 && length >= 0 && start + length <= document.getLength()) {
-			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().getExistingModelForEdit(document);
-
-				// format
-				formatModel(structuredModel, start, length);
-
-				// 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 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);
-
-			structuredModel.aboutToChangeModel();
-
-			// format
-			formatModel(structuredModel);
-
-			// save model if needed
-			if (!structuredModel.isSharedForEdit() && structuredModel.isSaveNeeded())
-				structuredModel.save();
-		} finally {
-			//ensureClosed(outputStream, null);
-			// release from model manager
-			structuredModel.changedModel();
-			if (structuredModel != null) {
-				structuredModel.releaseFromEdit();
-			}
-
-		}
-	}
-
-	public void formatFile(IFile file, int start, int length) 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, start, length);
-
-			// 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 formatFileName(String fileName) throws IOException, CoreException {
-		if (fileName == null)
-			return;
-
-		IStructuredModel structuredModel = null;
-		InputStream inputStream = null;
-		//OutputStream outputStream = null;
-		try {
-			// setup structuredModel
-			// Note: We are getting model for edit. Will save model if model
-			// changed.
-			inputStream = new FileInputStream(fileName);
-			structuredModel = StructuredModelManager.getModelManager().getModelForEdit(fileName, inputStream, null);
-
-			// format
-			formatModel(structuredModel);
-
-			// save model if needed
-			if (!structuredModel.isSharedForEdit() && structuredModel.isSaveNeeded())
-				structuredModel.save();
-		} finally {
-			//ensureClosed(outputStream, inputStream);
-			// release from model manager
-			if (structuredModel != null)
-				structuredModel.releaseFromEdit();
-		}
-	}
-
-	public void formatFileName(String fileName, int start, int length) throws IOException, CoreException {
-		if (fileName == null)
-			return;
-
-		IStructuredModel structuredModel = null;
-		InputStream inputStream = null;
-		//OutputStream outputStream = null;
-		try {
-			// setup structuredModel
-			// Note: We are getting model for edit. Will save model if model
-			// changed.
-			inputStream = new FileInputStream(fileName);
-			structuredModel = StructuredModelManager.getModelManager().getModelForEdit(fileName, inputStream, null);
-
-			// format
-			formatModel(structuredModel, start, length);
-
-			// save model if needed
-			if (!structuredModel.isSharedForEdit() && structuredModel.isSaveNeeded())
-				structuredModel.save();
-		} finally {
-			//ensureClosed(outputStream, inputStream);
-			// 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 (structuredModel != null) {
-			if (start == 0 && length == structuredModel.getStructuredDocument().getLength())
-				setFormatWithSiblingIndent(structuredModel, false);
-			else
-				setFormatWithSiblingIndent(structuredModel, true);
-
-			if (start >= 0 && length >= 0 && start + length <= structuredModel.getStructuredDocument().getLength()) {
-				Vector activeNodes = getActiveNodes(structuredModel, start, length);
-				if (activeNodes.size() > 0) {
-					Node firstNode = (Node) activeNodes.firstElement();
-					Node lastNode = (Node) activeNodes.lastElement();
-
-					boolean done = false;
-					Node eachNode = firstNode;
-					Node nextNode = null;
-					// TODO: we should be able to call something like
-					// sequentialRewrite, but
-					// doesn't work for
-					// our case, since we do "gets" during reparsing, so makes
-					// sequential rewrite
-					// store actually
-					// less efficient than gap store. Someday we need our own
-					// gap store, that
-					// handles
-					// structured text more efficiently. I thought I'd leave
-					// this commented out
-					// code here
-					// as a reminder.
-					//					try {
-					//						structuredModel.getStructuredDocument().startSequentialRewrite(false);
-					while (!done) {
-						// update "done"
-						done = (eachNode == lastNode);
-
-						// get next sibling before format because eachNode
-						// may
-						// be deleted,
-						// for example when it's an empty text node
-						nextNode = eachNode.getNextSibling();
-
-						// format each node
-						formatNode(eachNode);
-
-						// update each node
-						if (nextNode != null && nextNode.getParentNode() == null)
-							// nextNode is deleted during format
-							eachNode = eachNode.getNextSibling();
-						else
-							eachNode = nextNode;
-
-						// This should not be needed, but just in case
-						// something went wrong with with eachNode.
-						// We don't want an infinite loop here.
-						if (eachNode == null)
-							done = true;
-					}
-					//					}
-					//					finally {
-					//						structuredModel.getStructuredDocument().stopSequentialRewrite();
-					//					}
-				}
-			}
-		}
-	}
-
-	public void formatNode(Node node) {
-		if (node != null) {
-			Node newNode = node;
-
-			// format the owner node if it's an attribute node
-			if (node.getNodeType() == Node.ATTRIBUTE_NODE)
-				newNode = ((Attr) node).getOwnerElement();
-
-			// refresh format preferences before getting formatter
-			if (refreshFormatPreferences)
-				refreshFormatPreferences();
-
-			// get formatter and format contraints
-			IStructuredFormatter formatter = getFormatter(newNode);
-			// TODO_future: added assert to replace "redundant null check".
-			// if formatter is ever null, we should provide some
-			// default formatter to serve as place holder.
-			Assert.isNotNull(formatter, "formatter was null for a node, "); //$NON-NLS-1$
-			IStructuredFormatContraints formatContraints = formatter.getFormatContraints();
-			formatContraints.setFormatWithSiblingIndent(true);
-			// format each node
-			formatter.format(newNode, formatContraints);
-		}
-	}
-
-	protected Vector getActiveNodes(IStructuredModel structuredModel, int startNodeOffset, int length) {
-		Vector activeNodes = new Vector();
-
-		if (structuredModel != null) {
-			Node startNode = (Node) structuredModel.getIndexedRegion(startNodeOffset);
-			// see https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=4711
-			//
-			// We have to watch for selection boundary conditions. Use this as
-			// an example: <a>text</a><b>text</b>,
-			// If the whole <a> node is selected, like:
-			// |<a>text</a>|<b>text</b>, we need to substract the length by 1
-			// to find
-			// the node at the end of the selection:
-			// structuredModel.getIndexedRegion(startNodeOffset + length - 1),
-			// or else
-			// we'd find the next adjacent node.
-			//
-			// However, when the selection length is 0 (meaning no text is
-			// selected), the cursor is at the beginning
-			// of the node we want to format: |<a>text</a><b>text</b>, the
-			// node at the end of the selection is:
-			// structuredModel.getIndexedRegion(startNodeOffset + length).
-			int endNodeOffset = length > 0 ? startNodeOffset + length - 1 : startNodeOffset + length;
-			Node endNode = (Node) structuredModel.getIndexedRegion(endNodeOffset);
-
-			// make sure it's an non-empty document
-			if (startNode != null) {
-				while (isSiblingOf(startNode, endNode) == false) {
-					if (endNode != null)
-						endNode = endNode.getParentNode();
-					if (endNode == null) {
-						startNode = startNode.getParentNode();
-						// see
-						// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=4711
-						// and notes above
-						endNodeOffset = length > 0 ? startNodeOffset + length - 1 : startNodeOffset + length;
-						endNode = (Node) structuredModel.getIndexedRegion(endNodeOffset);
-					}
-				}
-
-				while (startNode != endNode) {
-					activeNodes.addElement(startNode);
-					startNode = startNode.getNextSibling();
-				}
-				if (startNode != null)
-					activeNodes.addElement(startNode);
-			}
-		}
-
-		return activeNodes;
-	}
-
-	abstract protected String getFileExtension();
-
-	protected IStructuredFormatContraints getFormatContraints(IStructuredModel structuredModel) {
-		// 262135 - NPE during format of empty document
-		if (fFormatContraints == null && structuredModel != null) {
-			Node node = (Node) structuredModel.getIndexedRegion(0);
-
-			if (node != null) {
-				IStructuredFormatter formatter = getFormatter(node);
-				if (formatter != null) {
-					fFormatContraints = formatter.getFormatContraints();
-				}
-			}
-		}
-
-		return fFormatContraints;
-	}
-
-	abstract protected IStructuredFormatter getFormatter(Node node);
-
-	protected boolean isSiblingOf(Node node, Node endNode) {
-		if (endNode == null) {
-			return true;
-		} else {
-			Node siblingNode = node;
-			while (siblingNode != null) {
-				if (siblingNode == endNode)
-					return true;
-				else
-					siblingNode = siblingNode.getNextSibling();
-			}
-			return false;
-		}
-	}
-
-	abstract protected void refreshFormatPreferences();
-
-	protected void setFormatWithSiblingIndent(IStructuredModel structuredModel, boolean formatWithSiblingIndent) {
-		// 262135 - NPE during format of empty document
-		IStructuredFormatContraints formatContraints = getFormatContraints(structuredModel);
-
-		if (formatContraints != null)
-			formatContraints.setFormatWithSiblingIndent(formatWithSiblingIndent);
-	}
-
-	public void setProgressMonitor(IProgressMonitor monitor) {
-		fProgressMonitor = monitor;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/IStructuredContentFormatter.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/IStructuredContentFormatter.java
deleted file mode 100644
index 729b416..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/IStructuredContentFormatter.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.format;
-
-import org.eclipse.wst.sse.core.IStructuredModel;
-
-public interface IStructuredContentFormatter {
-	void setModel(IStructuredModel model);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/IStructuredFormatContraints.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/IStructuredFormatContraints.java
deleted file mode 100644
index f3bcbd6..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/IStructuredFormatContraints.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.format;
-
-public interface IStructuredFormatContraints {
-	boolean getClearAllBlankLines();
-
-	String getCurrentIndent();
-
-	boolean getFormatWithSiblingIndent();
-
-	void setClearAllBlankLines(boolean clearAllBlankLines);
-
-	void setCurrentIndent(String currentIndent);
-
-	void setFormatWithSiblingIndent(boolean formatWithSiblingIndent);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/IStructuredFormatPreferences.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/IStructuredFormatPreferences.java
deleted file mode 100644
index 3329cb6..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/IStructuredFormatPreferences.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.format;
-
-public interface IStructuredFormatPreferences {
-	boolean getClearAllBlankLines();
-
-	String getIndent();
-
-	int getLineWidth();
-
-	void setClearAllBlankLines(boolean clearAllBlankLines);
-
-	void setIndent(String indent);
-
-	void setLineWidth(int lineWidth);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/IStructuredFormatProcessor.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/IStructuredFormatProcessor.java
deleted file mode 100644
index e279a67..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/IStructuredFormatProcessor.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.format;
-
-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.jface.text.IDocument;
-import org.eclipse.wst.sse.core.IStructuredModel;
-import org.w3c.dom.Node;
-
-
-public interface IStructuredFormatProcessor {
-	/**
-	 * This form of the FormatProcessor takes an input string as input,
-	 * creates an InputStream from the input string, create a temporary model
-	 * of the content type specified, formats the whole model, then returns
-	 * the formatted input string.
-	 */
-	String formatContent(String content) throws IOException, CoreException;
-
-	/**
-	 * This form of the FormatProcessor takes an input string as input,
-	 * creates an InputStream from the input string, create a temporary model
-	 * of the content type specified, formats the model within start and
-	 * length, then returns the formatted input string.
-	 */
-	String formatContent(String content, int start, int length) throws IOException, CoreException;
-
-	/**
-	 * This form of the FormatProcessor takes an IDocument as input, creates a
-	 * temporary model of content type calculated using the IDocument's file
-	 * extension, formats the whole model, then releases the model.
-	 */
-	void formatDocument(IDocument document) throws IOException, CoreException;
-
-	/**
-	 * This form of the FormatProcessor takes an IDocument as input, creates a
-	 * temporary model of content type calculated using the IDocument's file
-	 * extension, formats the model within start and length, then releases the
-	 * model.
-	 */
-	void formatDocument(IDocument document, int start, int length) throws IOException, CoreException;
-
-	/**
-	 * This form of the FormatProcessor takes an IFile as input, creates a
-	 * temporary model of content type calculated using the IFile's file
-	 * extension, formats the whole model, then releases the model.
-	 */
-	void formatFile(IFile file) throws IOException, CoreException;
-
-	/**
-	 * This form of the FormatProcessor takes an IFile as input, creates a
-	 * temporary model of content type calculated using the IFile's file
-	 * extension, formats the model within start and length, then releases the
-	 * model.
-	 */
-	void formatFile(IFile file, int start, int length) throws IOException, CoreException;
-
-	/**
-	 * This form of the FormatProcessor takes a file name as input,creates an
-	 * InputStream from the file, create a temporary model of content type
-	 * calculated using the file name's file extension, formats the whole
-	 * model, then releases the model.
-	 */
-	void formatFileName(String fileName) throws IOException, CoreException;
-
-	/**
-	 * This form of the FormatProcessor takes a file name as input,creates an
-	 * InputStream from the file, create a temporary model of content type
-	 * calculated using the file name's file extension, formats the model
-	 * within start and length, then releases the model.
-	 */
-	void formatFileName(String fileName, int start, int length) throws IOException, CoreException;
-
-	/**
-	 * This form of the FormatProcessor takes a model as input, and formats
-	 * the whole model.
-	 */
-	void formatModel(IStructuredModel structuredModel);
-
-	/**
-	 * This form of the FormatProcessor takes a model as input, and formats
-	 * the model within start and length.
-	 */
-	void formatModel(IStructuredModel structuredModel, int start, int length);
-
-	/**
-	 * This form of the FormatProcessor takes a node as input, and formats the
-	 * node and all its children.
-	 */
-	void formatNode(Node node);
-
-	void setProgressMonitor(IProgressMonitor monitor);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/IStructuredFormatter.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/IStructuredFormatter.java
deleted file mode 100644
index 59cb989..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/IStructuredFormatter.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.format;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.w3c.dom.Node;
-
-public interface IStructuredFormatter {
-	void format(Node node);
-
-	void format(Node node, IStructuredFormatContraints formatContraints);
-
-	IStructuredFormatContraints getFormatContraints();
-
-	IStructuredFormatPreferences getFormatPreferences();
-
-	void setFormatPreferences(IStructuredFormatPreferences formatPreferences);
-
-	void setProgressMonitor(IProgressMonitor monitor);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/StructuredFormatContraints.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/StructuredFormatContraints.java
deleted file mode 100644
index 8dcf98c..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/StructuredFormatContraints.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.format;
-
-public class StructuredFormatContraints implements IStructuredFormatContraints {
-	protected int fAvailableLineWidth;
-	protected boolean fClearAllBlankLines;
-	protected String fCurrentIndent = ""; //$NON-NLS-1$
-	protected boolean fFormatWithSiblingIndent = false;
-
-	public boolean getClearAllBlankLines() {
-		return fClearAllBlankLines;
-	}
-
-	public String getCurrentIndent() {
-		return fCurrentIndent;
-	}
-
-	public boolean getFormatWithSiblingIndent() {
-		return fFormatWithSiblingIndent;
-	}
-
-	public void setClearAllBlankLines(boolean clearAllBlankLines) {
-		fClearAllBlankLines = clearAllBlankLines;
-	}
-
-	public void setCurrentIndent(String currentIndent) {
-		fCurrentIndent = currentIndent;
-	}
-
-	public void setFormatWithSiblingIndent(boolean formatWithSiblingIndent) {
-		fFormatWithSiblingIndent = formatWithSiblingIndent;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/StructuredFormatPreferences.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/StructuredFormatPreferences.java
deleted file mode 100644
index b41d11b..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/format/StructuredFormatPreferences.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.format;
-
-public class StructuredFormatPreferences implements IStructuredFormatPreferences {
-	private boolean fClearAllBlankLines;
-	private String fIndent;
-	private int fLineWidth;
-
-	public boolean getClearAllBlankLines() {
-		return fClearAllBlankLines;
-	}
-
-	public String getIndent() {
-		return fIndent;
-	}
-
-	public int getLineWidth() {
-		return fLineWidth;
-	}
-
-	public void setClearAllBlankLines(boolean clearAllBlankLines) {
-		fClearAllBlankLines = clearAllBlankLines;
-	}
-
-	public void setIndent(String indent) {
-		fIndent = indent;
-	}
-
-	public void setLineWidth(int lineWidth) {
-		fLineWidth = lineWidth;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/FileBufferModelManager.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/FileBufferModelManager.java
deleted file mode 100644
index 8379a24..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/FileBufferModelManager.java
+++ /dev/null
@@ -1,509 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Hashtable;
-import java.util.Map;
-
-import org.eclipse.core.filebuffers.FileBuffers;
-import org.eclipse.core.filebuffers.IFileBuffer;
-import org.eclipse.core.filebuffers.IFileBufferListener;
-import org.eclipse.core.filebuffers.ITextFileBuffer;
-import org.eclipse.core.filebuffers.ITextFileBufferManager;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.content.IContentTypeManager;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.sse.core.IModelLoaderExtension;
-import org.eclipse.wst.sse.core.IStructuredModel;
-import org.eclipse.wst.sse.core.ModelLoader;
-import org.eclipse.wst.sse.core.exceptions.ResourceInUse;
-import org.eclipse.wst.sse.core.internal.modelhandler.ModelHandlerRegistry;
-import org.eclipse.wst.sse.core.modelhandler.IModelHandler;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.util.ProjectResolver;
-import org.eclipse.wst.sse.core.util.URIResolver;
-import org.eclipse.wst.xml.uriresolver.util.URIHelper;
-
-
-public class FileBufferModelManager {
-
-	static class DocumentInfo {
-		ITextFileBuffer buffer = null;
-		String contentTypeID = null;
-		IStructuredModel model = null;
-		boolean selfConnected = false;
-		int bufferReferenceCount = 0;
-		int modelReferenceCount = 0;
-	}
-
-	/**
-	 * A URIResolver instance of models built on java.io.Files
-	 */
-	class ExternalURIResolver implements URIResolver {
-		IPath fLocation;
-
-		ExternalURIResolver(IPath location) {
-			fLocation = location;
-		}
-
-		public String getFileBaseLocation() {
-			return fLocation.toString();
-		}
-
-		public String getLocationByURI(String uri) {
-			return getLocationByURI(uri, getFileBaseLocation(), false);
-		}
-
-		public String getLocationByURI(String uri, boolean resolveCrossProjectLinks) {
-			return getLocationByURI(uri, getFileBaseLocation(), resolveCrossProjectLinks);
-		}
-
-		public String getLocationByURI(String uri, String baseReference) {
-			return getLocationByURI(uri, baseReference, false);
-		}
-
-		public String getLocationByURI(String uri, String baseReference, boolean resolveCrossProjectLinks) {
-			// ignore resolveCrossProjectLinks value
-			if (uri == null)
-				return null;
-			if (uri.startsWith("file:")) {
-				try {
-					URL url = new URL(uri);
-					return url.getFile();
-				}
-				catch (MalformedURLException e) {
-				}
-			}
-			return URIHelper.normalize(uri, baseReference, Path.ROOT.toString());
-		}
-
-		public IProject getProject() {
-			return null;
-		}
-
-		public IContainer getRootLocation() {
-			return ResourcesPlugin.getWorkspace().getRoot();
-		}
-
-		public InputStream getURIStream(String uri) {
-			return null;
-		}
-
-		public void setFileBaseLocation(String newLocation) {
-		}
-
-		public void setProject(IProject newProject) {
-		}
-	}
-
-	/**
-	 * Maps interesting documents in file buffers to those file buffers.
-	 * Required to allows us to go from documents to complete models.
-	 */
-	class FileBufferMapper implements IFileBufferListener {
-		public void bufferContentAboutToBeReplaced(IFileBuffer buffer) {
-		}
-
-		public void bufferContentReplaced(IFileBuffer buffer) {
-		}
-
-		public void bufferCreated(IFileBuffer buffer) {
-			if (buffer instanceof ITextFileBuffer) {
-				ITextFileBuffer textBuffer = (ITextFileBuffer) buffer;
-				if (!(textBuffer.getDocument() instanceof IStructuredDocument))
-					return;
-				if (debugTextBufferLifeCycle) {
-					System.out.println("Learned new buffer: " + buffer.getLocation().toString() + " " + buffer + " " + ((ITextFileBuffer) buffer).getDocument());
-				}
-				DocumentInfo info = new DocumentInfo();
-				info.buffer = textBuffer;
-				info.contentTypeID = detectContentType(buffer.getLocation()).getId();
-				info.bufferReferenceCount++;
-				fDocumentMap.put(textBuffer.getDocument(), info);
-			}
-		}
-
-		public void bufferDisposed(IFileBuffer buffer) {
-			if (buffer instanceof ITextFileBuffer) {
-				ITextFileBuffer textBuffer = (ITextFileBuffer) buffer;
-				if (!(textBuffer.getDocument() instanceof IStructuredDocument))
-					return;
-				if (debugTextBufferLifeCycle) {
-					System.out.println("Discarded buffer: " + buffer.getLocation().toString() + " " + buffer + " " + ((ITextFileBuffer) buffer).getDocument());
-				}
-				DocumentInfo info = (DocumentInfo) fDocumentMap.get(textBuffer.getDocument());
-				if (info != null) {
-					info.bufferReferenceCount--;
-					if (info.bufferReferenceCount == 0 && info.modelReferenceCount == 0)
-						fDocumentMap.remove(textBuffer.getDocument());
-				}
-			}
-		}
-
-		public void dirtyStateChanged(IFileBuffer buffer, boolean isDirty) {
-			if (buffer instanceof ITextFileBuffer) {
-				if (debugTextBufferLifeCycle) {
-					System.out.println("Buffer dirty state changed: (" + isDirty + ") " + buffer.getLocation().toString() + " " + buffer + " " + ((ITextFileBuffer) buffer).getDocument());
-				}
-				ITextFileBuffer textBuffer = (ITextFileBuffer) buffer;
-				if (!(textBuffer.getDocument() instanceof IStructuredDocument))
-					return;
-				DocumentInfo info = (DocumentInfo) fDocumentMap.get(textBuffer.getDocument());
-				if (info != null && info.model != null) {
-					String msg = "Updating model dirty state for" + info.buffer.getLocation();
-					if (debugFileBufferModelManagement || debugTextBufferLifeCycle) {
-						System.out.println(msg);
-					}
-					info.model.setDirtyState(isDirty);
-
-					IFile workspaceFile = FileBuffers.getWorkspaceFileAtLocation(info.buffer.getLocation());
-					if (!isDirty && workspaceFile != null) {
-						info.model.resetSynchronizationStamp(workspaceFile);
-					}
-				}
-			}
-		}
-
-		public void stateChangeFailed(IFileBuffer buffer) {
-		}
-
-		public void stateChanging(IFileBuffer buffer) {
-		}
-
-		public void stateValidationChanged(IFileBuffer buffer, boolean isStateValidated) {
-		}
-
-		public void underlyingFileDeleted(IFileBuffer buffer) {
-			if (buffer instanceof ITextFileBuffer) {
-				if (debugTextBufferLifeCycle) {
-					System.out.println("Deleted buffer: " + buffer.getLocation().toOSString() + " " + buffer);
-				}
-			}
-		}
-
-		public void underlyingFileMoved(IFileBuffer buffer, IPath path) {
-			if (buffer instanceof ITextFileBuffer) {
-				if (debugTextBufferLifeCycle) {
-					System.out.println("Moved buffer from: " + buffer.getLocation().toOSString() + " " + buffer);
-					System.out.println("Moved buffer to: " + path.toOSString() + " " + buffer);
-				}
-			}
-		}
-	}
-
-	static final boolean debugFileBufferModelManagement = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.core/filebuffers/modelmanagement"));
-
-	static final boolean debugTextBufferLifeCycle = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.core/filebuffers/lifecycle"));
-
-	private static FileBufferModelManager instance;
-
-	public static FileBufferModelManager getInstance() {
-		if (instance == null) {
-			instance = new FileBufferModelManager();
-		}
-		return instance;
-	}
-
-	static final void shutdown() {
-		if (instance != null) {
-			if (debugFileBufferModelManagement) {
-				IDocument[] danglingDocuments = (IDocument[]) instance.fDocumentMap.keySet().toArray(new IDocument[0]);
-				for (int i = 0; i < danglingDocuments.length; i++) {
-					DocumentInfo info = (DocumentInfo) instance.fDocumentMap.get(danglingDocuments[i]);
-					if (info.modelReferenceCount > 0)
-						System.err.println("LEAKED MODEL: " + info.buffer.getLocation() + " " + info.buffer.getDocument());
-					if (info.bufferReferenceCount > 0)
-						System.err.println("LEAKED BUFFER: " + info.buffer.getLocation() + " " + info.buffer.getDocument());
-				}
-			}
-			FileBuffers.getTextFileBufferManager().removeFileBufferListener(instance.fFileBufferListener);
-			instance = null;
-		}
-	}
-
-	static final void startup() {
-		getInstance();
-	}
-
-	// a map of IStructuredDocuments to DocumentInfo objects
-	Map fDocumentMap = null;
-
-	IFileBufferListener fFileBufferListener = null;
-
-	FileBufferModelManager() {
-		super();
-		fDocumentMap = new Hashtable(4);
-		FileBuffers.getTextFileBufferManager().addFileBufferListener(fFileBufferListener = new FileBufferMapper());
-	}
-
-	public String calculateId(IFile file) {
-		String id = null;
-		IPath path = file.getLocation();
-		if (path != null) {
-			/*
-			 * The ID of models must be the same as the normalized paths
-			 * stored in the underlying FileBuffers to retrieve them by common
-			 * ID later on. We chose the FileBuffer normalized path over the
-			 * previously used absolute IFile path because the buffers should
-			 * already exist before we build a model and we can't retrieve a
-			 * FileBuffer using the ID of a model that doesn't yet exist.
-			 */
-			id = FileBuffers.normalizeLocation(path).toString();
-		}
-		return id;
-
-	}
-
-	public String calculateId(IStructuredDocument document) {
-		String id = null;
-		ITextFileBuffer buffer = getBuffer(document);
-		if (buffer != null) {
-			id = buffer.getLocation().toString();
-		}
-		return id;
-	}
-
-	URIResolver createURIResolver(ITextFileBuffer buffer) {
-		IPath location = buffer.getLocation();
-		IFile workspaceFile = FileBuffers.getWorkspaceFileAtLocation(location);
-		URIResolver resolver = null;
-		if (workspaceFile != null) {
-			IProject project = workspaceFile.getProject();
-			resolver = (URIResolver) project.getAdapter(URIResolver.class);
-			if (resolver == null) {
-				resolver = new ProjectResolver(project);
-			}
-			resolver.setFileBaseLocation(workspaceFile.getLocation().toString());
-		}
-		else {
-			resolver = new ExternalURIResolver(location);
-		}
-		return resolver;
-	}
-
-
-	IContentType detectContentType(IPath location) {
-		IContentType type = null;
-
-		IResource resource = FileBuffers.getWorkspaceFileAtLocation(location);
-		if (resource != null) {
-			if (resource.getType() == IResource.FILE && resource.isAccessible()) {
-				IContentDescription d = null;
-				try {
-					// Optimized description lookup, might not succeed
-					d = ((IFile) resource).getContentDescription();
-					if (d != null) {
-						type = d.getContentType();
-					}
-				}
-				catch (CoreException e) {
-					// Should not be possible given the accessible and file
-					// type check above
-				}
-				if (type == null) {
-					type = Platform.getContentTypeManager().findContentTypeFor(resource.getName());
-				}
-			}
-		}
-		else {
-			File file = FileBuffers.getSystemFileAtLocation(location);
-			if (file != null) {
-				InputStream input = null;
-				try {
-					input = new FileInputStream(file);
-					type = Platform.getContentTypeManager().findContentTypeFor(input, location.toOSString());
-				}
-				catch (FileNotFoundException e) {
-				}
-				catch (IOException e) {
-				}
-				finally {
-					if (input != null) {
-						try {
-							input.close();
-						}
-						catch (IOException e1) {
-						}
-					}
-				}
-				if (type == null) {
-					type = Platform.getContentTypeManager().findContentTypeFor(file.getName());
-				}
-			}
-		}
-		if (type == null) {
-			type = Platform.getContentTypeManager().getContentType(IContentTypeManager.CT_TEXT);
-		}
-		return type;
-	}
-
-	public ITextFileBuffer getBuffer(IDocument document) {
-		DocumentInfo info = (DocumentInfo) fDocumentMap.get(document);
-		if (info != null)
-			return info.buffer;
-		return null;
-	}
-
-	String getContentTypeID(IDocument document) {
-		DocumentInfo info = (DocumentInfo) fDocumentMap.get(document);
-		if (info != null)
-			return info.contentTypeID;
-		return null;
-	}
-
-	IStructuredModel getModel(File file) {
-		IStructuredModel model = null;
-		ITextFileBufferManager bufferManager = FileBuffers.getTextFileBufferManager();
-		try {
-			IPath location = new Path(file.getAbsolutePath());
-			if (debugFileBufferModelManagement) {
-				System.out.println("FileBufferModelManager connecting to File " + location);
-			}
-			bufferManager.connect(location, getProgressMonitor());
-			ITextFileBuffer buffer = bufferManager.getTextFileBuffer(location);
-			if (buffer != null) {
-				DocumentInfo info = (DocumentInfo) fDocumentMap.get(buffer.getDocument());
-				info.selfConnected = true;
-				model = getModel((IStructuredDocument) buffer.getDocument());
-			}
-		}
-		catch (CoreException e) {
-			Logger.log(Logger.ERROR, "Error getting model for " + file.getPath(), e);
-		}
-		return model;
-	}
-
-	public IStructuredModel getModel(IFile file) {
-		IStructuredModel model = null;
-		ITextFileBufferManager bufferManager = FileBuffers.getTextFileBufferManager();
-		try {
-			if (debugFileBufferModelManagement) {
-				System.out.println("FileBufferModelManager connecting to IFile " + file.getLocation());
-			}
-			bufferManager.connect(file.getLocation(), getProgressMonitor());
-			ITextFileBuffer buffer = bufferManager.getTextFileBuffer(file.getLocation());
-			if (buffer != null) {
-				DocumentInfo info = (DocumentInfo) fDocumentMap.get(buffer.getDocument());
-				info.selfConnected = true;
-				model = getModel((IStructuredDocument) buffer.getDocument());
-			}
-		}
-		catch (CoreException e) {
-			Logger.log(Logger.ERROR, "Error getting model for " + file.getLocation(), e);
-		}
-		return model;
-	}
-
-	public IStructuredModel getModel(IStructuredDocument document) {
-		if (document == null)
-			return null;
-
-		DocumentInfo info = (DocumentInfo) fDocumentMap.get(document);
-		if (info != null && info.model == null) {
-			if (debugFileBufferModelManagement) {
-				System.out.println("FileBufferModelManager creating model for " + info.buffer.getLocation() + " " + info.buffer.getDocument());
-			}
-			info.modelReferenceCount++;
-
-			IStructuredModel model = null;
-			IModelHandler handler = ModelHandlerRegistry.getInstance().getHandlerForContentTypeId(info.contentTypeID);
-			ModelLoader loader = handler.getModelLoader();
-			boolean mustSetDocument = true;
-			if (loader instanceof IModelLoaderExtension) {
-				mustSetDocument = false;
-				model = ((IModelLoaderExtension) loader).createModel(document, info.buffer.getLocation().toString());
-			}
-			else {
-				model = loader.createModel();
-				model.setBaseLocation(info.buffer.getLocation().toString());
-			}
-			try {
-				info.model = model;
-				model.setId(info.buffer.getLocation().toString());
-				model.setModelHandler(handler);
-				model.setResolver(createURIResolver(getBuffer(document)));
-				if (mustSetDocument) {
-					model.setStructuredDocument(document);
-				}
-				if (info.buffer.isDirty()) {
-					model.setDirtyState(true);
-				}
-			}
-			catch (ResourceInUse e) {
-				Logger.log(Logger.ERROR, "attempted to create new model with existing ID", e);
-				model = null;
-			}
-		}
-		if (info != null) {
-			return info.model;
-		}
-		return null;
-	}
-
-	/**
-	 * @return
-	 */
-	private IProgressMonitor getProgressMonitor() {
-		return new NullProgressMonitor();
-	}
-
-	public boolean isExistingBuffer(IDocument document) {
-		if (document == null)
-			return false;
-
-		DocumentInfo info = (DocumentInfo) fDocumentMap.get(document);
-		return info != null;
-	}
-
-	public void releaseModel(IStructuredDocument document) {
-		DocumentInfo info = (DocumentInfo) fDocumentMap.get(document);
-		if (info != null) {
-			if (debugFileBufferModelManagement) {
-				System.out.println("FileBufferModelManager noticed full release of model for " + info.buffer.getLocation() + " " + info.buffer.getDocument());
-			}
-			info.model = null;
-			info.modelReferenceCount--;
-			if (info.selfConnected) {
-				if (debugFileBufferModelManagement) {
-					System.out.println("FileBufferModelManager disconnecting from " + info.buffer.getLocation() + " " + info.buffer.getDocument());
-				}
-				IPath location = info.buffer.getLocation();
-				try {
-					FileBuffers.getTextFileBufferManager().disconnect(info.buffer.getLocation(), getProgressMonitor());
-				}
-				catch (CoreException e) {
-					Logger.log(Logger.ERROR, "Error releasing model for " + location, e);
-				}
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/JSPAwareAdapterFactory.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/JSPAwareAdapterFactory.java
deleted file mode 100644
index 0f9efdb..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/JSPAwareAdapterFactory.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal;
-
-import org.eclipse.wst.sse.core.AdapterFactory;
-import org.eclipse.wst.sse.core.modelhandler.EmbeddedTypeHandler;
-
-
-public interface JSPAwareAdapterFactory extends AdapterFactory {
-
-	void initializeWith(EmbeddedTypeHandler embeddedContentType);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/Logger.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/Logger.java
deleted file mode 100644
index 064a37f..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/Logger.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal;
-
-
-
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-import org.osgi.framework.Bundle;
-
-/**
- * Small convenience class to log messages to plugin's log file and also, if
- * desired, the console. This class should only be used by classes in this
- * plugin. Other plugins should make their own copy, with appropriate ID.
- */
-public class Logger {
-	private static final String PLUGIN_ID = "org.eclipse.wst.sse.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);
-		}
-	}
-
-	/**
-	 * @deprecated Logger is not responsible for returning plugin
-	 */
-	public static Plugin getPlugin() {
-		return SSECorePlugin.getDefault();
-	}
-
-	/**
-	 * @deprecated Logger is not responsible for returning plugin id
-	 * @return
-	 */
-	public static String getPluginId() {
-		return PLUGIN_ID;
-	}
-
-	/**
-	 * @return true if the platform is debugging
-	 */
-	public static boolean isDebugging() {
-		return Platform.inDebugMode();
-	}
-
-	/**
-	 * Determines if currently tracing a category
-	 * 
-	 * @param category
-	 * @return true if tracing category, false otherwise
-	 */
-	public static boolean isTracing(String category) {
-		if (!isDebugging())
-			return false;
-
-		String traceFilter = Platform.getDebugOption(PLUGIN_ID + TRACEFILTER_LOCATION);
-		if (traceFilter != null) {
-			StringTokenizer tokenizer = new StringTokenizer(traceFilter, ","); //$NON-NLS-1$
-			while (tokenizer.hasMoreTokens()) {
-				String cat = tokenizer.nextToken().trim();
-				if (category.equals(cat)) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	public static void log(int level, String message) {
-		_log(level, message, null);
-	}
-
-	public static void log(int level, String message, Throwable exception) {
-		_log(level, message, exception);
-	}
-
-	public static void logException(String message, Throwable exception) {
-		_log(ERROR, message, exception);
-	}
-
-	public static void logException(Throwable exception) {
-		_log(ERROR, exception.getMessage(), exception);
-	}
-
-	public static void trace(String category, String message) {
-		_trace(category, message, null);
-	}
-
-	public static void traceException(String category, String message, Throwable exception) {
-		_trace(category, message, exception);
-	}
-
-	public static void traceException(String category, Throwable exception) {
-		_trace(category, exception.getMessage(), exception);
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ModelManagerPluginRegistryReader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ModelManagerPluginRegistryReader.java
deleted file mode 100644
index da7d491..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ModelManagerPluginRegistryReader.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.sse.core.AdapterFactory;
-import org.eclipse.wst.sse.core.modelhandler.IDocumentTypeHandler;
-import org.osgi.framework.Bundle;
-
-
-public class ModelManagerPluginRegistryReader {
-	private static ModelManagerPluginRegistryReader reader = null;
-
-	public synchronized static ModelManagerPluginRegistryReader getInstance() {
-		if (reader == null) {
-			reader = new ModelManagerPluginRegistryReader();
-		}
-		return reader;
-	}
-
-	protected final String ATTR_ADAPTERKEY = "adapterKeyClass"; //$NON-NLS-1$
-	protected final String ATTR_CLASS = "class"; //$NON-NLS-1$
-	protected final String ATTR_CONTENTTYPE = "type"; //$NON-NLS-1$
-	protected final String ATTR_REGISTERADAPTER = "registerAdapters"; //$NON-NLS-1$
-
-	protected final String EXTENSION_POINT_ID = "adaptOnCreateFactory"; //$NON-NLS-1$
-	protected final String TAG_NAME = "AdaptOnCreateFactory"; //$NON-NLS-1$
-
-	/**
-	 * XMLEditorPluginRegistryReader constructor comment.
-	 */
-	protected ModelManagerPluginRegistryReader() {
-		super();
-	}
-
-	public List getFactories(IDocumentTypeHandler handler) {
-		return loadRegistry(handler.getId());
-	}
-
-	public List getFactories(String type) {
-		return loadRegistry(type);
-	}
-
-	protected AdapterFactory loadFactoryFromConfigurationElement(IConfigurationElement element, Object requesterType) {
-		AdapterFactory factory = null;
-		if (element.getName().equals(TAG_NAME)) {
-			String contentType = element.getAttribute(ATTR_CONTENTTYPE);
-			if (!contentType.equals(requesterType))
-				return null;
-			String className = element.getAttribute(ATTR_CLASS);
-			String adapterKeyClass = element.getAttribute(ATTR_ADAPTERKEY);
-			String registerAdapters = element.getAttribute(ATTR_REGISTERADAPTER);
-
-			// if className is null, then no one defined the extension point
-			// for adapter factories
-			if (className != null) {
-				String name = element.getDeclaringExtension().getNamespace();
-				Bundle bundle = null;
-				try {
-					bundle = Platform.getBundle(name);
-				} catch (Exception e) {
-					// if an error occurs here, its probably that the plugin
-					// could not be found/loaded
-					Logger.logException("Could not find bundle: " + name, e); //$NON-NLS-1$
-
-				}
-				if (bundle != null) {
-					boolean useExtendedConstructor = false;
-					boolean doRegisterAdapters = false;
-					Object adapterKey = null;
-
-					if (registerAdapters != null && registerAdapters.length() > 0 && Boolean.valueOf(registerAdapters).booleanValue()) {
-						doRegisterAdapters = true;
-					}
-					if (adapterKeyClass != null) {
-						try {
-							Class aClass = null;
-//							aClass = classLoader != null ? classLoader.loadClass(adapterKeyClass) : Class.forName(adapterKeyClass);
-							if (bundle.getState() != Bundle.UNINSTALLED) {
-								aClass = bundle.loadClass(adapterKeyClass);
-							} else {
-								aClass = Class.forName(adapterKeyClass);
-							}
-							if (aClass != null) {
-								useExtendedConstructor = true;
-								adapterKey = aClass;
-							} else {
-								adapterKey = adapterKeyClass;
-							}
-						} catch (Exception anyErrors) {
-							adapterKey = adapterKeyClass;
-						}
-					}
-
-					try {
-						Class theClass = null;
-//						Class theClass = classLoader != null ? classLoader.loadClass(className) : Class.forName(className);
-						if (bundle.getState() != Bundle.UNINSTALLED) {
-							theClass = bundle.loadClass(className);
-						} else {
-							theClass = Class.forName(className);
-						}
-						if (useExtendedConstructor) {
-							java.lang.reflect.Constructor[] ctors = theClass.getConstructors();
-							for (int i = 0; i < ctors.length; i++) {
-								Class[] paramTypes = ctors[i].getParameterTypes();
-								if (ctors[i].isAccessible() && paramTypes.length == 2 && paramTypes[0].equals(Object.class) && paramTypes[1].equals(boolean.class)) {
-									try {
-										factory = (AdapterFactory) ctors[i].newInstance(new Object[]{adapterKey, new Boolean(doRegisterAdapters)});
-									} catch (IllegalAccessException e) {
-										throw new org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException(e);
-									} catch (IllegalArgumentException e) {
-										throw new org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException(e);
-									} catch (InstantiationException e) {
-										throw new org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException(e);
-									} catch (InvocationTargetException e) {
-										throw new org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException(e);
-									} catch (ExceptionInInitializerError e) {
-										throw new org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException(e);
-									}
-								}
-							}
-						}
-						if (factory == null) {
-							factory = (AdapterFactory) element.createExecutableExtension(ATTR_CLASS);
-						}
-					} catch (ClassNotFoundException e) {
-						throw new org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException(e);
-					} catch (CoreException e) {
-						throw new org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException(e);
-					}
-				}
-			}
-		}
-		return factory;
-	}
-
-	protected List loadRegistry(Object contentType) {
-		List factoryList = new Vector();
-		IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
-		IExtensionPoint point = extensionRegistry.getExtensionPoint(SSECorePlugin.ID, EXTENSION_POINT_ID);
-		if (point != null) {
-			IConfigurationElement[] elements = point.getConfigurationElements();
-			for (int i = 0; i < elements.length; i++) {
-				AdapterFactory factory = loadFactoryFromConfigurationElement(elements[i], contentType);
-				if (factory != null)
-					factoryList.add(factory);
-			}
-		}
-		return factoryList;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/NoCancelProgressMonitor.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/NoCancelProgressMonitor.java
deleted file mode 100644
index c9f129f..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/NoCancelProgressMonitor.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.sse.core.internal;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-
-
-public class NoCancelProgressMonitor extends NullProgressMonitor {
-
-
-	public NoCancelProgressMonitor() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IProgressMonitor#isCanceled()
-	 */
-	public boolean isCanceled() {
-
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/NotImplementedException.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/NotImplementedException.java
deleted file mode 100644
index 3a0b985..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/NotImplementedException.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal;
-
-
-public class NotImplementedException extends RuntimeException {
-	/**
-	 * Comment for <code>serialVersionUID</code>
-	 */
-	private static final long serialVersionUID = 1L;
-
-	public NotImplementedException() {
-		super();
-	}
-
-	public NotImplementedException(String message) {
-		super(message);
-	}
-
-	public NotImplementedException(String message, Throwable cause) {
-		super(message, cause);
-	}
-
-	public NotImplementedException(Throwable cause) {
-		super(cause);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePlugin.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePlugin.java
deleted file mode 100644
index 058c54e..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePlugin.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal;
-
-import java.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.common.encoding.CommonEncodingPreferenceNames;
-import org.eclipse.wst.sse.core.IModelManager;
-import org.eclipse.wst.sse.core.IModelManagerPlugin;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.builder.StructuredDocumentBuilder;
-import org.eclipse.wst.sse.core.internal.modelhandler.ModelHandlerRegistry;
-import org.eclipse.wst.sse.core.preferences.CommonModelPreferenceNames;
-import org.osgi.framework.BundleContext;
-
-
-/**
- * This model manager plugin helper is used to return the model manager
- * desired to be used for creating a new model manager, for managing (add or
- * remove) model loaders and model dumpers, and for managing (get, release,
- * save, and save as) models. Here is an example on on how to use it. Under
- * the subdirectory named after your package which contains your
- * implementation of the model manager (e.g. "org.eclipse.wst.sse.core") in
- * the "project_resources\plugins" directory, create a "plugin.xml" file. In
- * this file ("projectproject_resources\plugins\com.ibm.sed.model\plugin.xml")
- * enter: <?xml version="1.0"?> <plugin name="IBM Web Tooling Model Manager
- * Plugin" id="org.eclipse.wst.sse.core" version="1.0" vendor-name="RTP"
- * class="org.eclipse.wst.sse.core.ModelManagerPlugin"> <!-- The XML package:
- * com.ibm.etools.b2bxmlrt, is required before the others to give precedence
- * to DOM2 APIs, instead of the DOM1 (used by others, such as the desktop
- * ("com.ibm.eclipse.*")) --> <requires><import
- * plugin="com.ibm.etools.b2bxmlrt" export="true"/> <import
- * plugin="org.eclipse.wst.common.contentmodel" export="true"/> </requires>
- * <runtime><library name="runtime/sedmodel.jar"> <export name="*"/>
- * </library> </runtime> </plugin> to tell the workbench the model manager
- * plugin ID and where to find this model manager plugin class. Then in the
- * getModelManager method of this model manager plugin class, create and
- * return the model manager desired to be used. In the client code that
- * requests the model manager, the following code should be used to access the
- * model manager 
- * // get the model manager from the StructuredModelManager
- * StructuredModelManager.getInstance().getModelManager();
- */
-public class SSECorePlugin extends Plugin implements IModelManagerPlugin {
-	static SSECorePlugin instance = null;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-	private static final String KEY_PREFIX = "%"; //$NON-NLS-1$
-	private static final String KEY_DOUBLE_PREFIX = "%%"; //$NON-NLS-1$	
-
-	private static final String OFF = "off"; //$NON-NLS-1$
-	public static final String STRUCTURED_BUILDER = "org.eclipse.wst.sse.core.structuredbuilder"; //$NON-NLS-1$
-	public static final String ID = "org.eclipse.wst.sse.core"; //$NON-NLS-1$
-	
-	public static SSECorePlugin getDefault() {
-		return instance;
-	}
-
-	public SSECorePlugin() {
-		super();
-		instance = this;
-	}
-
-	/**
-	 * Set default non-UI
-	 */
-	protected void initializeDefaultPluginPreferences() {
-		Preferences prefs = getDefault().getPluginPreferences();
-		// set model preference defaults
-		prefs.setDefault(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE, CommonModelPreferenceNames.ASIS);
-		prefs.setDefault(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE, CommonModelPreferenceNames.ASIS);
-		prefs.setDefault(CommonModelPreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS, true);
-		prefs.setDefault(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS, true);
-		prefs.setDefault(CommonModelPreferenceNames.INSERT_MISSING_TAGS, true);
-		prefs.setDefault(CommonModelPreferenceNames.QUOTE_ATTR_VALUES, true);
-		prefs.setDefault(CommonModelPreferenceNames.FORMAT_SOURCE, true);
-		prefs.setDefault(CommonModelPreferenceNames.CONVERT_EOL_CODES, false);
-		prefs.setDefault(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$
-		prefs.setDefault(CommonEncodingPreferenceNames.OUTPUT_CODESET, CommonModelPreferenceNames.UTF_8);
-		prefs.setDefault(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$
-		prefs.setDefault(CommonModelPreferenceNames.TAB_WIDTH, CommonModelPreferenceNames.DEFAULT_TAB_WIDTH);
-		prefs.setDefault(CommonModelPreferenceNames.FORMATTING_SUPPORTED, false);
-		prefs.setDefault(CommonModelPreferenceNames.LINE_WIDTH, 72);
-		prefs.setDefault(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS, false);
-		prefs.setDefault(CommonModelPreferenceNames.INDENT_USING_TABS, true);
-		prefs.setDefault(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES, false);
-		prefs.setDefault(CommonModelPreferenceNames.PREFERRED_MARKUP_CASE_SUPPORTED, false);
-		prefs.setDefault(CommonModelPreferenceNames.TAG_NAME_CASE, CommonModelPreferenceNames.UPPER);
-		prefs.setDefault(CommonModelPreferenceNames.ATTR_NAME_CASE, CommonModelPreferenceNames.LOWER);
-		prefs.setDefault(CommonModelPreferenceNames.TASK_TAG_ENABLE, false);
-		prefs.setDefault(CommonModelPreferenceNames.TASK_TAG_TAGS, "TODO,FIXME,XXX"); //$NON-NLS-1$
-		prefs.setDefault(CommonModelPreferenceNames.TASK_TAG_PRIORITIES, "1,2,1"); //$NON-NLS-1$
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		savePluginPreferences();
-		StructuredDocumentBuilder.shutdown();
-		FileBufferModelManager.shutdown();
-		
-		super.stop(context);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		
-		String build = System.getProperty(STRUCTURED_BUILDER);
-		if (build == null || !build.equalsIgnoreCase(OFF)) {
-			StructuredDocumentBuilder.startup();
-		}
-		// initialize FileBuffer handling
-		FileBufferModelManager.startup();
-	}
-
-	/**
-	 * @deprecated
-	 */
-	public ModelHandlerRegistry getModelHandlerRegistry() {
-		return ModelHandlerRegistry.getInstance();
-	}
-
-	/**
-	 * @deprecated - use StructuredModelManager.getModelManager();
-	 */
-	public IModelManager getModelManager() {
-		return StructuredModelManager.getModelManager();
-	}
-
-	/**
-	 * Returns the string from the plugin's resource bundle,
-	 * or 'key' if not found.
-	 */
-	public static String getResourceString(String value) {
-		String s = value.trim();
-		if (!s.startsWith(KEY_PREFIX, 0))
-			return s;
-		if (s.startsWith(KEY_DOUBLE_PREFIX, 0))
-			return s.substring(1);
-
-		int ix = s.indexOf(' ');
-		String key = ix == -1 ? s : s.substring(0, ix);
-
-		ResourceBundle bundle = getDefault().getResourceBundle();
-		try {
-			return (bundle != null) ? bundle.getString(key.substring(1)) : key;
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-
-	public static String getResourceString(String key, Object[] args) {
-
-		try {
-			return MessageFormat.format(getResourceString(key), args);
-		} catch (IllegalArgumentException e) {
-			return getResourceString(key);
-		}
-
-	}
-
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		try {
-			if (resourceBundle == null)
-				resourceBundle = ResourceBundle.getBundle("org.eclipse.wst.sse.core.internal.SSECorePluginResources");
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-		return resourceBundle;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePluginResources.properties b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePluginResources.properties
deleted file mode 100644
index a956704..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePluginResources.properties
+++ /dev/null
@@ -1,69 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-#     Jens Lukowski/Innoopract - initial renaming/restructuring
-#     
-###############################################################################
-A_model's_id_can_not_be_nu_EXC_=A model's id can not be null
-Program_Error__ModelManage_EXC_=Program Error: ModelManagerImpl::saveModel. Model should be in the cache
-Original_Error__UI_=Original Error:
-ModelPlugin.0=Structured Builder
-StructuredDocumentBuilder.0=Updating builders
-Text_Change_UI_=Text Change
-###############################################################################
-Unkown_internal_scanner_er_ERROR_=Unkown internal scanner error
-Internal_error__unknown_st_ERROR_=Internal error: unknown state
-Error__could_not_match_inp_ERROR_=Error: could not match input
-Error__pushback_value_was__ERROR_=Error: pushback value was too large
-An_I/O_error_occured_while_EXC_=An I/O error occured while scanning :
-3concat=File not found : \"{0}\"
-5concat=Error opening file \"{0}\"
-ul_____(template)_UI_=ul     (template)
-<ul>_n__<li>_Item_one_</li_UI_=<ul>\n  <li> Item one </li>\n  <li> Item two </li>\n</ul>\n
-dl_____(template)_UI_=dl     (template)
-<dl>_n__<dt>_First_definit_UI_=<dl>\n  <dt> First definition  <dd>  First explanation\n  <dt> Second definition <dd> Second explanation\n</dl>\n
-table_____(template)_UI_=table     (template)
-<table_border>_n__<tr>_n___UI_=<table border>\n  <tr>\n    <th>Column 1 Heading</th>\n    <th>Column 2 Heading</th>\n  </tr>\n  <tr>\n    <td>Row 1: Col 1</td>\n    <td>Row 1: Col 2</td>\n  </tr>\n</table>\n
-ol_____(template)_UI_=ol     (template)
-<ol>_n__<li>_Item_one_</li_UI_=<ol>\n  <li> Item one </li>\n  <li> Item two </li>\n</ol>\n
-html____(template)_UI_=html    (template)
-<html>_n<head>_n<title>Ins_UI_=<html>\n<head>\n<title>Insert title here</title>\n</head>\n<body>\n<|c>\n</body>\n</html>
-script_____(commented)_UI_=script     (commented)
-style_____(commented)_UI_=style     (commented)
-img_____(map)_UI=img     (map)
-Usage___java_HTMLTokenizer_EXC_=Usage : java HTMLTokenizer <inputfile>
-## on the following line, just translate: "place title here" and "place content here"
-__>_n_t_t<TITLE><|c>place__UI_=\">\n\t\t<TITLE><|c>place title here</TITLE>\n\t</HEAD>\n\t<BODY>\n\t\tplace content here\n\t</BODY>\n</HTML>
-Flatmodel_constructor_doesn__t_know_how_to_deal_with_non-string_4=Flatmodel constructor doesn\'t know how to deal with non-string
-unexpected_ModelManager_Impl_1=unexpected ModelManager Impl
-continuous_1=continuous
-paged_2=paged
-visual_3=visual
-aural_4=aural
-tactile_5=tactile
-grid_6=grid
-bitmap_7=bitmap
-interactive_8=interactive
-static_9=static
-all_10=all
-Cleaning_up_element_{0}=Cleaning up element \"{0}\"
-Uppercasing_attribute_name_{0}=Uppercasing attribute name \"{0}\"
-Lowercasing_attribute_name_{0}=Lowercasing attribute name \"{0}\"
-Uppercasing_tag_name_{0}=Uppercasing tag name \"{0}\"
-Lowercasing_tag_name_{0}=Lowercasing tag name \"{0}\"
-Inserting_missing_end_tag_{0}=Inserting missing end tag \"{0}\"
-Inserting_missing_start_tag_{0}=Inserting missing start tag \"{0}\"
-Inserting_default_attribute_value_{0}=Inserting default attribute value \"{0}\"
-Quoting_attribute_value_{0}=Quoting attribute value \"{0}\"
-Formatting_start_tag_of_element_{0}=Formatting start tag of element \"{0}\"
-Formatting_end_tag_of_element_{0}=Formatting end tag of element \"{0}\"
-Formatting_element_{0}=Formatting element \"{0}\"
-Formatting_indentation_before_element_{0}=Formatting indentation before element \"{0}\"
-Formatting_indentation_after_element_{0}=Formatting indentation after element \"{0}\"
-Formatting_element_{0}=Formatting element \"{0}\"
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/builder/BuilderModelProvider.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/builder/BuilderModelProvider.java
deleted file mode 100644
index d6f24e2..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/builder/BuilderModelProvider.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.builder;
-
-import java.util.Map;
-import java.util.WeakHashMap;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.sse.core.IModelManager;
-import org.eclipse.wst.sse.core.IStructuredModel;
-import org.eclipse.wst.sse.core.builder.IBuilderModelProvider;
-import org.eclipse.wst.sse.core.internal.Logger;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-
-
-public class BuilderModelProvider implements IBuilderModelProvider {
-	private static final boolean _debug = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.core/builder/modelprovider")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	private Map fDocuments = null;
-	private IModelManager fModelManager;
-	private Map fModels = null;
-
-	public BuilderModelProvider(IModelManager manager) {
-
-		super();
-		fModelManager = manager;
-	}
-
-	/**
-	 * Creates the document for this file; current done by retrieving it from
-	 * an IStructuredModel
-	 * 
-	 * @param file
-	 * @return
-	 * @todo Generated comment
-	 */
-	private IStructuredDocument createDocument(IFile file) {
-
-		// For now, we have to retrieve the IStructuredDocument from the
-		// IStructuredModel.
-		IStructuredModel model = getModel(file);
-		if (model != null) {
-			if (_debug) {
-				System.out.println(getClass().getName() + " created IStructuredDocument for " + file.getFullPath().toString()); //$NON-NLS-1$
-			}
-			return model.getStructuredDocument();
-		}
-		return null;
-	}
-
-
-	/**
-	 * Creates the model for this file. Currently, does it using the
-	 * IModelManager from scratch. TODO: C4, create the model using the
-	 * document (creating the document if needed, first)
-	 * 
-	 * @param file
-	 * @return
-	 * @todo Generated comment
-	 */
-	private IStructuredModel createModel(IFile file) {
-		try {
-			IStructuredModel model = null;
-			if (_debug) {
-				System.out.println(getClass().getName() + " created IStructuredModel for " + file.getFullPath().toString()); //$NON-NLS-1$
-			}
-			model = getModelManager().getExistingModelForRead(file);
-			if (model != null) {
-				// we have our reference, allow the
-				// IModelManager to dispose if needed
-				model.releaseFromRead();
-			} else {
-				model = getModelManager().createUnManagedStructuredModelFor(file);
-			}
-			return model;
-		}
-		// catch 'em all
-		catch (Exception t) {
-			Logger.log(Logger.WARNING, "Exception caught creating IStructuredModel for file " + file.getFullPath().toOSString() + ":" + t); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.builder.IBuilderModelProvider#getDocument(org.eclipse.core.resources.IFile)
-	 */
-	public IStructuredDocument getDocument(IFile file) {
-
-		if (file == null) {
-			return null;
-		}
-		IStructuredDocument document = (IStructuredDocument) getDocuments().get(file);
-		if (document == null) {
-			document = createDocument(file);
-			if (document != null) {
-				getDocuments().put(file, document);
-			}
-		}
-		return document;
-	}
-
-	/**
-	 * @return Returns the documents.
-	 */
-	public Map getDocuments() {
-
-		if (fDocuments == null) {
-			fDocuments = new WeakHashMap();
-		}
-		return fDocuments;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.builder.IBuilderModelProvider#getModel(org.eclipse.core.resources.IFile)
-	 */
-	public IStructuredModel getModel(IFile file) {
-
-		if (file == null) {
-			return null;
-		}
-		IStructuredModel model = (IStructuredModel) getModels().get(file);
-		if (model == null) {
-			model = createModel(file);
-			if (model != null) {
-				getModels().put(file, model);
-			}
-		}
-		return model;
-	}
-
-	protected IModelManager getModelManager() {
-
-		return fModelManager;
-	}
-
-	/**
-	 * @return Returns the models.
-	 */
-	public Map getModels() {
-
-		if (fModels == null) {
-			fModels = new WeakHashMap();
-		}
-		return fModels;
-	}
-
-	public void release(IFile file) {
-
-		if (_debug) {
-			System.out.println(getClass().getName() + " released resources for " + file.getProjectRelativePath().toString()); //$NON-NLS-1$
-		}
-		getDocuments().remove(file);
-		getModels().remove(file);
-	}
-
-	public void releaseAll() {
-
-		if (_debug) {
-			System.out.println(getClass().getName() + " released all resources"); //$NON-NLS-1$
-		}
-		getDocuments().clear();
-		getModels().clear();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/builder/BuilderParticipantRegistryReader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/builder/BuilderParticipantRegistryReader.java
deleted file mode 100644
index e4e19c1..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/builder/BuilderParticipantRegistryReader.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.builder;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.sse.core.builder.IBuilderDelegate;
-import org.eclipse.wst.sse.core.builder.IBuilderParticipant;
-import org.eclipse.wst.sse.core.internal.Logger;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.eclipse.wst.sse.core.util.StringUtils;
-
-
-class BuilderParticipantRegistryReader {
-
-	private static final boolean _debugReader = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.core/participantregistry")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	private final static String CONTENTTYPE_WILDCARD = "*"; //$NON-NLS-1$
-	private String ATT_CLASS = "class"; //$NON-NLS-1$
-	private String ATT_CONTENT_TYPE = "contentType"; //$NON-NLS-1$
-
-	private String DELEGATE_EXTENSION_POINT_ID = SSECorePlugin.ID + ".builderdelegate"; //$NON-NLS-1$
-	private IConfigurationElement[] fDelegateElements;
-	// a mapping of content types to IBuilderDelegate instances
-	private Map fDelegateMap = null;
-
-	// all of the configuration elements for our extension point
-	private IConfigurationElement[] fParticipantElements;
-
-	// a mapping of content types to IBuilderParticipant instances
-	private Map fParticipantMap = null;
-
-	private String PARTICIPANT_EXTENSION_POINT_ID = SSECorePlugin.ID + ".builderparticipant"; //$NON-NLS-1$
-
-	BuilderParticipantRegistryReader() {
-		super();
-	}
-
-	public IBuilderDelegate[] getBuilderDelegates(Object contentTypeID) {
-		if (fDelegateElements == null) {
-			readRegistry();
-		}
-		IBuilderDelegate[] delegates = (IBuilderDelegate[]) fDelegateMap.get(contentTypeID);
-		if (delegates == null) {
-			// fine the relevant extensions
-			List elements = new ArrayList(0);
-			IConfigurationElement[] delegateElements = fDelegateElements;
-			for (int j = 0; j < delegateElements.length; j++) {
-				String contentTypes = delegateElements[j].getAttribute(ATT_CONTENT_TYPE);
-				String[] contentType = StringUtils.unpack(contentTypes);
-				for (int k = 0; k < contentType.length; k++) {
-					// allow wildcards to be returned as well
-					if (contentType[k].equals(contentTypeID)) {
-						elements.add(delegateElements[j]);
-					}
-				}
-			}
-			// instantiate and save them
-			List delegateList = new ArrayList(elements.size());
-			for (int i = 0; i < elements.size(); i++) {
-				try {
-					IBuilderDelegate delegate = (IBuilderDelegate) ((IConfigurationElement) elements.get(i)).createExecutableExtension(ATT_CLASS);
-					if (delegate != null) {
-						delegateList.add(delegate);
-					}
-				} catch (CoreException e) {
-					Logger.logException("Exception creating builder participant for " + contentTypeID, e); //$NON-NLS-1$
-				}
-			}
-			delegates = (IBuilderDelegate[]) delegateList.toArray(new IBuilderDelegate[0]);
-			fDelegateMap.put(contentTypeID, delegates);
-			if (_debugReader) {
-				System.out.println("Created " + delegates.length + " build participants for " + contentTypeID); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-		return delegates;
-	}
-
-	public IBuilderParticipant[] getBuildParticipants(Object contentTypeID) {
-		if (fParticipantElements == null) {
-			readRegistry();
-		}
-		IBuilderParticipant[] participants = (IBuilderParticipant[]) fParticipantMap.get(contentTypeID);
-		if (participants == null) {
-			// fine the relevant extensions
-			List elements = new ArrayList(0);
-			IConfigurationElement[] participantElements = fParticipantElements;
-			for (int j = 0; j < participantElements.length; j++) {
-				String participantContentTypes = participantElements[j].getAttribute(ATT_CONTENT_TYPE);
-				String[] participantContentType = StringUtils.unpack(participantContentTypes);
-				for (int k = 0; k < participantContentType.length; k++) {
-					// allow wildcards to be returned as well
-					if (participantContentType[k].equals(contentTypeID) || CONTENTTYPE_WILDCARD.equals(participantContentType[k])) {
-						elements.add(participantElements[j]);
-					}
-				}
-			}
-			// instantiate and save them
-			List participantsList = new ArrayList(elements.size());
-			for (int i = 0; i < elements.size(); i++) {
-				try {
-					IBuilderParticipant participant = (IBuilderParticipant) ((IConfigurationElement) elements.get(i)).createExecutableExtension(ATT_CLASS);
-					if (participant != null) {
-						participantsList.add(participant);
-					}
-				} catch (CoreException e) {
-					Logger.logException("Exception creating builder participant for " + contentTypeID, e); //$NON-NLS-1$
-				}
-			}
-			participants = (IBuilderParticipant[]) participantsList.toArray(new IBuilderParticipant[0]);
-			fParticipantMap.put(contentTypeID, participants);
-			if (_debugReader) {
-				System.out.println("Created " + participants.length + " build participants for " + contentTypeID); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-		return participants;
-	}
-
-	private void readRegistry() {
-		fParticipantMap = new HashMap();
-		fDelegateMap = new HashMap();
-		// Just remember the elements, so plugins don't have to be activated,
-		// unless extension attributes match those of interest
-		IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(PARTICIPANT_EXTENSION_POINT_ID);
-		if (point != null) {
-			fParticipantElements = point.getConfigurationElements();
-		}
-		point = Platform.getExtensionRegistry().getExtensionPoint(DELEGATE_EXTENSION_POINT_ID);
-		if (point != null) {
-			fDelegateElements = point.getConfigurationElements();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/builder/StructuredDocumentBuilder.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/builder/StructuredDocumentBuilder.java
deleted file mode 100644
index 84cd0e2..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/builder/StructuredDocumentBuilder.java
+++ /dev/null
@@ -1,575 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.builder;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.IResourceVisitor;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.WorkspaceJob;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.wst.sse.core.builder.IBuilderDelegate;
-import org.eclipse.wst.sse.core.internal.Logger;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.eclipse.wst.sse.core.preferences.CommonModelPreferenceNames;
-
-public class StructuredDocumentBuilder extends IncrementalProjectBuilder implements IExecutableExtension {
-
-	protected static final boolean _debugBuilder = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.core/builder")); //$NON-NLS-1$ //$NON-NLS-2$
-	protected static final boolean _debugBuilderContentTypeDetection = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.core/builder/detection")); //$NON-NLS-1$ //$NON-NLS-2$
-	protected static final boolean _debugBuilderPerf = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.core/builder/time")); //$NON-NLS-1$ //$NON-NLS-2$
-	private static final boolean performValidateEdit = false;
-
-	private static boolean isGloballyEnabled = true;
-	private static final String OFF = "off"; //$NON-NLS-1$
-	static final boolean _debugResourceChangeListener = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.core/resourcechangehandling")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	protected static class ProjectChangeListener implements IResourceChangeListener, IResourceDeltaVisitor {
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.resources.IResourceChangeListener#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)
-		 */
-		public void resourceChanged(IResourceChangeEvent event) {
-			IResourceDelta delta = event.getDelta();
-			if (delta.getResource() != null) {
-				int resourceType = delta.getResource().getType();
-				if (resourceType == IResource.PROJECT || resourceType == IResource.ROOT) {
-					try {
-						delta.accept(this);
-					}
-					catch (CoreException e) {
-						Logger.logException("Exception managing buildspec list", e); //$NON-NLS-1$
-					}
-				}
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.resources.IResourceDeltaVisitor#visit(org.eclipse.core.resources.IResourceDelta)
-		 */
-		public boolean visit(IResourceDelta delta) throws CoreException {
-			IResource resource = delta.getResource();
-			if (resource != null) {
-				if (resource.getType() == IResource.ROOT)
-					return true;
-				else if (resource.getType() == IResource.PROJECT) {
-					if (delta.getKind() == IResourceDelta.ADDED) {
-						if (_debugResourceChangeListener) {
-							System.out.println("Project " + delta.getResource().getName() + " added to workspace and registering with SDMB");//$NON-NLS-2$//$NON-NLS-1$
-						}
-						add(new NullProgressMonitor(), (IProject) resource, null);
-					}
-					return false;
-				}
-			}
-			return false;
-		}
-	}
-
-	static {
-		String build = System.getProperty(SSECorePlugin.STRUCTURED_BUILDER);
-		isGloballyEnabled = (build == null || !build.equalsIgnoreCase(OFF));
-	}
-
-	/**
-	 * Add the StructuredBuilder to the build spec of a single IProject
-	 * 
-	 * @param project -
-	 *            the IProject to add to, when needed
-	 */
-	public static void add(IProgressMonitor monitor, IProject project, Object validateEditContext) {
-		if (project == null || !project.isAccessible()) {
-			return;
-		}
-		boolean isBuilderPresent = false;
-		try {
-			IFile descriptionFile = project.getFile(IProjectDescription.DESCRIPTION_FILE_NAME);
-			if (descriptionFile.exists() && descriptionFile.isAccessible()) {
-				IProjectDescription description = project.getDescription();
-				ICommand[] commands = description.getBuildSpec();
-				if (commands != null) {
-					for (int i = 0; i < commands.length; i++) {
-						String builderName = commands[i].getBuilderName();
-						// builder name will be null if it has not been set
-						if (builderName != null && builderName.equals(getBuilderId())) {
-							isBuilderPresent = true;
-							break;
-						}
-					}
-				}
-				if (!isBuilderPresent && !monitor.isCanceled()) {
-					// validate for edit
-					IStatus status = null;
-					if (performValidateEdit) {
-						ISchedulingRule validateEditRule = null;
-						try {
-							if (_debugBuilder) {
-								System.out.println("Attempting validateEdit for " + descriptionFile.getFullPath().toString()); //$NON-NLS-1$
-							}
-							IFile[] validateFiles = new IFile[]{descriptionFile};
-							IWorkspace workspace = descriptionFile.getWorkspace();
-							validateEditRule = workspace.getRuleFactory().validateEditRule(validateFiles);
-							Platform.getJobManager().beginRule(validateEditRule, monitor);
-							status = workspace.validateEdit(validateFiles, null);
-							if (_debugBuilder) {
-								if (status.isOK()) {
-									System.out.println("ValidateEdit completed for " + descriptionFile.getFullPath().toString()); //$NON-NLS-1$
-								}
-								else {
-									System.out.println("ValidateEdit failed for " + descriptionFile.getFullPath().toString() + " " + status.getMessage()); //$NON-NLS-2$//$NON-NLS-1$
-								}
-							}
-						}
-						finally {
-							if (validateEditRule != null) {
-								Platform.getJobManager().endRule(validateEditRule);
-							}
-						}
-					}
-					if (status == null || status.isOK()) {
-						// add the builder
-						ICommand newCommand = description.newCommand();
-						newCommand.setBuilderName(getBuilderId());
-						ICommand[] newCommands = null;
-						if (commands != null) {
-							newCommands = new ICommand[commands.length + 1];
-							System.arraycopy(commands, 0, newCommands, 0, commands.length);
-							newCommands[commands.length] = newCommand;
-						}
-						else {
-							newCommands = new ICommand[1];
-							newCommands[0] = newCommand;
-						}
-						description.setBuildSpec(newCommands);
-						/*
-						 * This 'refresh' was added since unit tests were
-						 * throwing exceptions about being out of sync. That
-						 * may indicate a "deeper" problem such as needing to
-						 * use scheduling rules, (although there don't appear
-						 * to be examples of that) or something similar.
-						 */
-						// project.refreshLocal(IResource.DEPTH_ZERO,
-						// subMonitorFor(monitor, 1,
-						// IProgressMonitor.UNKNOWN));
-						try {
-							project.setDescription(description, subMonitorFor(monitor, 1, IProgressMonitor.UNKNOWN));
-						}
-						catch (CoreException e) {
-							if (_debugBuilder) {
-								if (performValidateEdit) {
-									System.out.println("Description for project \"" + project.getName() + "\" could not be updated despite successful validateEdit"); //$NON-NLS-2$//$NON-NLS-1$
-								}
-								else {
-									System.out.println("Description for project \"" + project.getName() + "\" could not be updated"); //$NON-NLS-2$//$NON-NLS-1$
-								}
-							}
-							if (performValidateEdit) {
-								Logger.log(Logger.WARNING, "Description for project \"" + project.getName() + "\" could not be updated despite successful validateEdit"); //$NON-NLS-2$//$NON-NLS-1$					
-							}
-							else {
-								Logger.log(Logger.WARNING, "Description for project \"" + project.getName() + "\" could not be updated"); //$NON-NLS-2$//$NON-NLS-1$					
-							}
-						}
-					}
-				}
-			}
-			else {
-				if (_debugBuilder) {
-					System.out.println("Description for project \"" + project.getName() + "\" could not be updated"); //$NON-NLS-2$//$NON-NLS-1$
-				}
-				Logger.log(Logger.WARNING, "Description for project \"" + project.getName() + "\" could not be updated"); //$NON-NLS-2$//$NON-NLS-1$
-			}
-		}
-		catch (Exception e) {
-			// if we can't read the information, the project isn't open,
-			// so it can't run auto-validate
-			Logger.logException("Exception caught when adding Model Builder", e); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Adds the StructuredBuilder to every project in the Workspace
-	 * 
-	 * @param root
-	 */
-	public synchronized static void add(IProgressMonitor monitor, IWorkspaceRoot root, Object validateEditContext) {
-		if (!isGloballyEnabled) {
-			return;
-		}
-		IProject[] allProjects = root.getProjects();
-		IProgressMonitor localMonitor = subMonitorFor(monitor, allProjects.length);
-		localMonitor.beginTask(SSECorePlugin.getResourceString("%StructuredDocumentBuilder.0"), 1); //$NON-NLS-1$
-		for (int i = 0; i < allProjects.length && !monitor.isCanceled(); i++) {
-			add(localMonitor, allProjects[i], validateEditContext);
-			localMonitor.worked(1);
-		}
-		localMonitor.done();
-	}
-
-	private static String getBuilderId() {
-		return "org.eclipse.wst.sse.core.structuredbuilder"; //$NON-NLS-1$
-	}
-
-	public static IProgressMonitor monitorFor(IProgressMonitor monitor) {
-		if (monitor == null)
-			return new NullProgressMonitor();
-		return monitor;
-	}
-
-	public static IProgressMonitor subMonitorFor(IProgressMonitor monitor, int ticks) {
-		if (monitor == null)
-			return new NullProgressMonitor();
-		if (monitor instanceof NullProgressMonitor)
-			return monitor;
-		return new SubProgressMonitor(monitor, ticks);
-	}
-
-	public static IProgressMonitor subMonitorFor(IProgressMonitor monitor, int ticks, int style) {
-		if (monitor == null)
-			return new NullProgressMonitor();
-		if (monitor instanceof NullProgressMonitor)
-			return monitor;
-		return new SubProgressMonitor(monitor, ticks, style);
-	}
-
-	protected List fActiveDelegates = null;
-	private String fName = "Structured Document Builder"; //$NON-NLS-1$
-	protected BuilderParticipantRegistryReader registry = null;
-
-	private long time0;
-	private IResourceChangeListener changeListener;
-
-	/**
-	 * 
-	 */
-	public StructuredDocumentBuilder() {
-		super();
-		if (isGloballyEnabled) {
-			registry = new BuilderParticipantRegistryReader();
-			fActiveDelegates = new ArrayList();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.internal.events.InternalBuilder#build(int,
-	 *      java.util.Map, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	protected IProject[] build(int kind, Map args, IProgressMonitor monitor) throws CoreException {
-		IProject currentProject = getProject();
-		// Currently, just use the Task Tags preference
-		boolean locallyEnabled = isGloballyEnabled && SSECorePlugin.getDefault().getPluginPreferences().getBoolean(CommonModelPreferenceNames.TASK_TAG_ENABLE);
-		if (!locallyEnabled || currentProject == null || !currentProject.isAccessible()) {
-			if (_debugBuilderPerf || _debugBuilder) {
-				System.out.println(getClass().getName() + " skipping build of " + currentProject.getName()); //$NON-NLS-1$
-			}
-			return new IProject[]{currentProject};
-		}
-
-		if (_debugBuilderPerf || _debugBuilder) {
-			time0 = System.currentTimeMillis();
-		}
-		IResourceDelta delta = getDelta(currentProject);
-		IProgressMonitor localMonitor = subMonitorFor(monitor, 1);
-		localMonitor.beginTask(getDisplayName(), 1);
-
-		if (!localMonitor.isCanceled()) {
-			// check the kind of delta if one was given
-			if (kind == FULL_BUILD || kind == CLEAN_BUILD || delta == null) {
-				doFullBuild(kind, args, localMonitor, getProject());
-			}
-			else {
-				doIncrementalBuild(kind, args, localMonitor);
-			}
-		}
-		localMonitor.worked(1);
-		shutdownDelegates();
-		localMonitor.done();
-		if (_debugBuilderPerf || _debugBuilder) {
-			if (kind == FULL_BUILD || delta == null) {
-				System.out.println(getClass().getName() + " finished FULL build of " + currentProject.getName() //$NON-NLS-1$
-							+ " in " + (System.currentTimeMillis() - time0) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			else {
-				System.out.println(getClass().getName() + " finished INCREMENTAL/CLEAN/AUTO build of " + currentProject.getName() //$NON-NLS-1$
-							+ " in " + (System.currentTimeMillis() - time0) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-		return new IProject[]{getProject()};
-	}
-
-	void build(int kind, Map args, IResource resource, IContentType[] types, IProgressMonitor monitor) {
-		if (!monitor.isCanceled() && resource.getType() == IResource.FILE) {
-			IBuilderDelegate[] delegates = null;
-			List allDelegates = new ArrayList();
-			for (int i = 0; i < types.length; i++) {
-				IBuilderDelegate[] typeDelegates = registry.getBuilderDelegates(types[i].getId());
-				if (typeDelegates != null && typeDelegates.length > 0) {
-					allDelegates.addAll(Arrays.asList(typeDelegates));
-				}
-			}
-			delegates = (IBuilderDelegate[]) allDelegates.toArray(new IBuilderDelegate[0]);
-			for (int j = 0; delegates != null && j < delegates.length; j++) {
-				if (kind != IncrementalProjectBuilder.CLEAN_BUILD) {
-					monitor.subTask(getDisplayName() + " building " + resource.getFullPath()); //$NON-NLS-1$
-				}
-				try {
-					if (!fActiveDelegates.contains(delegates[j]) && !monitor.isCanceled()) {
-						delegates[j].startup(getProject(), kind, args);
-						fActiveDelegates.add(delegates[j]);
-					}
-					delegates[j].build((IFile) resource, kind, args, subMonitorFor(monitor, 100));
-				}
-				catch (Exception e) {
-					Logger.logException(e);
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.resources.IncrementalProjectBuilder#clean(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	protected void clean(IProgressMonitor monitor) throws CoreException {
-		if (_debugBuilderPerf || _debugBuilder) {
-			time0 = System.currentTimeMillis();
-		}
-		super.clean(monitor);
-		IProject currentProject = getProject();
-		if (!isGloballyEnabled || currentProject == null || !currentProject.isAccessible()) {
-			return;
-		}
-		doFullBuild(IncrementalProjectBuilder.CLEAN_BUILD, new HashMap(0), monitor, getProject());
-		if (_debugBuilderPerf || _debugBuilder) {
-			System.out.println(getClass().getName() + " finished CLEAN build of " + currentProject.getName() //$NON-NLS-1$
-						+ " in " + (System.currentTimeMillis() - time0) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-	IContentType[] detectContentTypes(IResource resource) {
-		IContentType[] types = null;
-		if (resource.getType() == IResource.FILE && resource.isAccessible()) {
-			IContentDescription d = null;
-			try {
-				// optimized description lookup, might not succeed
-				d = ((IFile) resource).getContentDescription();
-				if (d != null) {
-					types = new IContentType[]{d.getContentType()};
-				}
-			}
-			catch (CoreException e) {
-				// should not be possible given the accessible and file type
-				// check above
-			}
-			if (types == null) {
-				types = Platform.getContentTypeManager().findContentTypesFor(resource.getName());
-			}
-			if (_debugBuilderContentTypeDetection) {
-				if (types.length > 0) {
-					if (types.length > 1) {
-						System.out.println(resource.getFullPath() + ": " + "multiple based on name (probably hierarchical)"); //$NON-NLS-1$ //$NON-NLS-2$
-					}
-					for (int i = 0; i < types.length; i++) {
-						System.out.println(resource.getFullPath() + " matched: " + types[i].getId()); //$NON-NLS-1$
-					}
-				}
-			}
-		}
-		return types;
-	}
-
-	/**
-	 * Iterate through the list of resources and build each one
-	 * 
-	 * @param monitor
-	 * @param resources
-	 */
-	protected void doFullBuild(int kind, Map args, IProgressMonitor monitor, IProject project) {
-		if (_debugBuilder) {
-			System.out.println(getClass().getName() + " building project " + project.getName()); //$NON-NLS-1$
-		}
-
-		final IProgressMonitor subMonitor = subMonitorFor(monitor, IProgressMonitor.UNKNOWN);
-		final int localKind = kind;
-		final Map localArgs = args;
-
-		final IProgressMonitor visitorMonitor = monitor;
-		IResourceVisitor internalBuilder = new IResourceVisitor() {
-			public boolean visit(IResource resource) throws CoreException {
-				if (resource.getType() == IResource.FILE) {
-					// for any supported file type, record the resource
-					IContentType[] contentTypes = detectContentTypes(resource);
-					if (contentTypes != null) {
-						build(localKind, localArgs, resource, contentTypes, subMonitor);
-						visitorMonitor.worked(1);
-					}
-					return false;
-				}
-				else {
-					return true;
-				}
-			}
-
-		};
-		try {
-			project.accept(internalBuilder);
-		}
-		catch (CoreException e) {
-			Logger.logException(e);
-		}
-	}
-
-	/**
-	 * 
-	 */
-	protected void doIncrementalBuild(int kind, Map args, IProgressMonitor monitor) {
-		IResourceDelta projectDelta = getDelta(getProject());
-		if (projectDelta == null) {
-			throw new IllegalArgumentException("delta is null, should do a full build"); //$NON-NLS-1$
-		}
-		if (_debugBuilder) {
-			if (projectDelta != null && projectDelta.getResource() != null) {
-				System.out.println(getClass().getName() + " building " + projectDelta.getResource().getFullPath()); //$NON-NLS-1$
-			}
-			else {
-				System.out.println(getClass().getName() + " building project " + getProject().getName()); //$NON-NLS-1$
-			}
-		}
-
-		final Map localArgs = args;
-		final int localKind = kind;
-		final IProgressMonitor localMonitor = subMonitorFor(monitor, IProgressMonitor.UNKNOWN, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK);
-		IResourceDeltaVisitor participantVisitor = new IResourceDeltaVisitor() {
-			public boolean visit(IResourceDelta delta) throws CoreException {
-				if (!localMonitor.isCanceled() && delta.getResource().getType() == IResource.FILE) {
-					IContentType[] contentTypes = detectContentTypes(delta.getResource());
-					if (contentTypes != null)
-						build(localKind, localArgs, delta.getResource(), contentTypes, localMonitor);
-				}
-				return delta.getAffectedChildren().length > 0;
-			}
-		};
-		try {
-			projectDelta.accept(participantVisitor);
-		}
-		catch (CoreException e) {
-			Logger.logException(e);
-		}
-		monitor.worked(1);
-	}
-
-	private String getDisplayName() {
-		return fName;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement,
-	 *      java.lang.String, java.lang.Object)
-	 */
-	public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException {
-		if (config != null) {
-			fName = config.getDeclaringExtension().getLabel();
-		}
-	}
-
-	/**
-	 * 
-	 */
-	private void shutdownDelegates() {
-		for (int j = 0; j < fActiveDelegates.size(); j++) {
-			try {
-				((IBuilderDelegate) fActiveDelegates.get(j)).shutdown(getProject());
-			}
-			catch (Exception e) {
-				Logger.logException(e);
-			}
-		}
-		fActiveDelegates = new ArrayList(1);
-	}
-
-	// make private if ever used again
-	void doTaskTagProcessing() {
-		// Must make sure the builder is registered for projects which may
-		// have been created before this plugin was activated.
-		Job adder = new WorkspaceJob(SSECorePlugin.getResourceString("%ModelPlugin.0")) { //$NON-NLS-1$
-			public IStatus runInWorkspace(IProgressMonitor monitor) {
-				add(monitor, ResourcesPlugin.getWorkspace().getRoot(), null);
-				return Status.OK_STATUS;
-			}
-		};
-		adder.setSystem(true);
-		// use SHORT, since once executing, this job should be quick
-		adder.setPriority(Job.SHORT);
-		// since we have potential to change several .project files,
-		// we should wait until we can get exclusive access to
-		// whole workspace.
-		// TODO: future re-design should not require this.
-		adder.setRule(ResourcesPlugin.getWorkspace().getRoot());
-		adder.schedule();
-
-		// Register the ProjectChangeListener so that it can add the
-		// builder
-		// to projects as needed
-		changeListener = new ProjectChangeListener();
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(changeListener, IResourceChangeEvent.PRE_BUILD);
-	}
-
-	/**
-	 * Only for use by ModelPlugin class
-	 */
-	public static void shutdown() {
-	}
-
-	/**
-	 * Only for use by ModelPlugin class
-	 */
-	public static void startup() {
-		// TODO:disabled for now
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/NullStructuredDocumentPartitioner.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/NullStructuredDocumentPartitioner.java
deleted file mode 100644
index 79a22b6..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/NullStructuredDocumentPartitioner.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.document;
-
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.TypedRegion;
-
-/**
- * To be used when no known partitioner is available. Always returns the
- * unknown type.
- */
-public class NullStructuredDocumentPartitioner implements IDocumentPartitioner {
-
-	public class NullStructuredTypedRegion implements ITypedRegion {
-
-		private int fLength;
-
-		private int fOffset;
-
-		private String fType;
-
-		public int getLength() {
-			return fLength;
-		}
-
-		public int getOffset() {
-			return fOffset;
-		}
-
-		public String getType() {
-			return fType;
-		}
-
-		public void setLength(int length) {
-			fLength = length;
-
-		}
-
-		public void setOffset(int offset) {
-			fOffset = offset;
-		}
-
-		public void setType(String type) {
-			fType = type;
-		}
-
-	}
-
-	public final static String ST_UNKNOWN_PARTITION = "org.eclipse.wst.sse.core.UNKNOWN_PARTITION_TYPE"; //$NON-NLS-1$
-	private final String[] legalTypes = new String[]{ST_UNKNOWN_PARTITION};
-
-	public NullStructuredDocumentPartitioner() {
-		super();
-	}
-
-	public ITypedRegion[] computePartitioning(int offset, int length) {
-		ITypedRegion[] alwaysOne = new ITypedRegion[]{createPartition(offset, length, ST_UNKNOWN_PARTITION)};
-		return alwaysOne;
-	}
-
-	public void connect(IDocument document) {
-		// nothing to do
-	}
-
-	public ITypedRegion createPartition(int offset, int length, String type) {
-		ITypedRegion result = new TypedRegion(offset, length, type);
-		return result;
-	}
-
-	public void disconnect() {
-		// nothing to do
-	}
-
-	public void documentAboutToBeChanged(DocumentEvent event) {
-	}
-
-	public boolean documentChanged(DocumentEvent event) {
-		return false;
-	}
-
-	public String getContentType(int offset) {
-		return getDefault();
-	}
-
-	public String getDefault() {
-		return ST_UNKNOWN_PARTITION;
-	}
-
-	public String[] getLegalContentTypes() {
-		return legalTypes;
-	}
-
-	public ITypedRegion getPartition(int offset) {
-		return createPartition(offset, 1, getDefault());
-	}
-
-	public String getPartitionType(IRegion region, int offset) {
-		return ST_UNKNOWN_PARTITION;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/TextUtilities.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/TextUtilities.java
deleted file mode 100644
index 91ec598..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/TextUtilities.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.document;
-
-
-/**
- * Collection of text functions.
- * 
- * @deprecated - marked as deprecated to remind us to phase this out (and/or
- *             move to "finished" version).
- */
-public class TextUtilities {
-
-	/**
-	 * @deprecated if possible, its best to use
-	 *             IDocument.getLegalLineDelimiters()
-	 */
-	public final static String[] fgDelimiters = new String[]{"\n", "\r", "\r\n"};//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-
-	/**
-	 * Determines which one of fgDelimiters appears first in the text. If none
-	 * of them the hint is returned.
-	 */
-	public static String determineLineDelimiter(StringBuffer textBuffer, String[] possibles, String hint) {
-		try {
-			// TODO: avoid use of String instance
-			String text = textBuffer.toString();
-			int[] info = indexOf(possibles, text, 0);
-			return possibles[info[1]];
-		} catch (ArrayIndexOutOfBoundsException x) {
-		}
-		return hint;
-	}
-
-	/**
-	 * Returns the position in the string greater than offset of the longest
-	 * matching search string.
-	 */
-	private static int[] indexOf(String[] searchStrings, String text, int offset) {
-
-		int[] result = {-1, -1};
-
-		for (int i = 0; i < searchStrings.length; i++) {
-			int index = text.indexOf(searchStrings[i], offset);
-			if (index >= 0) {
-
-				if (result[0] == -1) {
-					result[0] = index;
-					result[1] = i;
-				} else if (index < result[0]) {
-					result[0] = index;
-					result[1] = i;
-				} else if (index == result[0] && searchStrings[i].length() > searchStrings[result[1]].length()) {
-					result[0] = index;
-					result[1] = i;
-				}
-			}
-		}
-
-		return result;
-
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistry.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistry.java
deleted file mode 100644
index 8fab43b..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistry.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.modelhandler;
-
-import org.eclipse.wst.sse.core.modelhandler.EmbeddedTypeHandler;
-
-/**
- * The entries in this registry are, conceptually, singleton's Since only one
- * instance is created in the registry, and then that instance returned when
- * required.
- * 
- * Note that there is intentionally no 'remove' method, Since the registry
- * itself is read it when once, from the platform's plugin registry, and is
- * not intended to be modified after that. A change in an extenstion in a
- * plugin.xml will only take effect when the workbench is re-started.
- *  
- */
-public interface EmbeddedTypeRegistry {
-
-	/**
-	 * Method to return the specific type for the specific mimetype.
-	 */
-	public EmbeddedTypeHandler getTypeFor(String mimeType);
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistryImpl.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistryImpl.java
deleted file mode 100644
index f8d6426..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistryImpl.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.modelhandler;
-
-import java.util.HashSet;
-import java.util.Iterator;
-
-import org.eclipse.wst.sse.core.modelhandler.EmbeddedTypeHandler;
-import org.eclipse.wst.sse.core.modelhandler.IDocumentTypeHandler;
-
-
-/**
- *  
- */
-public class EmbeddedTypeRegistryImpl implements EmbeddedTypeRegistry {
-
-	private static EmbeddedTypeRegistry instance = null;
-
-	public synchronized static EmbeddedTypeRegistry getInstance() {
-		if (instance == null) {
-			instance = new EmbeddedTypeRegistryImpl();
-		}
-		return instance;
-	}
-
-	private HashSet hashSet = null;
-	private EmbeddedTypeHandler registryDefaultHandler = null;
-
-	/*
-	 * @see ContentTypeRegistry#getTypeFor(String)
-	 */
-	/**
-	 * Constructor for ContentTypeRegistryImpl.
-	 */
-	private EmbeddedTypeRegistryImpl() {
-		super();
-		hashSet = new HashSet();
-		new EmbeddedTypeRegistryReader().readRegistry(hashSet);
-	}
-
-	/**
-	 * @see ContentTypeRegistry#add(ContentTypeDescription)
-	 */
-	void add(IDocumentTypeHandler contentTypeDescription) {
-		hashSet.add(contentTypeDescription);
-	}
-
-	private EmbeddedTypeHandler getJSPDefaultEmbeddedType() {
-		return getTypeFor("text/html"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Method getRegistryDefault. We cache the default handler, since can't
-	 * change once plugin descriptors are loaded.
-	 * 
-	 * @return EmbeddedTypeHandler
-	 */
-	private EmbeddedTypeHandler getRegistryDefault() {
-		if (registryDefaultHandler == null) {
-			Iterator it = hashSet.iterator();
-			while ((registryDefaultHandler == null) && (it.hasNext())) { // safe
-				// cast
-				// since
-				// 'add'
-				// requires
-				// EmbeddedContentTypeDescription
-				EmbeddedTypeHandler item = (EmbeddedTypeHandler) it.next();
-				if ((item != null) && (item.isDefault())) {
-					registryDefaultHandler = item;
-					break;
-				}
-			}
-		}
-		return registryDefaultHandler;
-	}
-
-	/**
-	 * Finds the contentTypeDescription based on literal id. Its basically a
-	 * "first found first returned". Note the order is fairly unpredictable,
-	 * so non-unique ids would cause problems.
-	 */
-	public EmbeddedTypeHandler getTypeFor(String mimeType) {
-		// Note: the reason we have this precondition is that the
-		// default is different inside the registry than when called,
-		// for example, from the JSPLoader. For the JSPLoader, if there
-		// is no mimetype, the default should be HTML. Here, if there is
-		// some mimetype, but it is not recognized, we return a default
-		// for XML. This is required for various voice xml types, etc.
-		EmbeddedTypeHandler found = null;
-		if (mimeType == null || mimeType.trim().length() == 0) {
-			found = getJSPDefaultEmbeddedType();
-		} else {
-			Iterator it = hashSet.iterator();
-			while ((found == null) && (it.hasNext())) { // safe cast since
-				// 'add' requires
-				// EmbeddedContentTypeDescription
-				EmbeddedTypeHandler item = (EmbeddedTypeHandler) it.next();
-				if ((item != null) && (item.getSupportedMimeTypes().contains(mimeType))) {
-					found = item;
-					break;
-				}
-			}
-		}
-		if (found == null) {
-			found = getRegistryDefault();
-		}
-		return found;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistryReader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistryReader.java
deleted file mode 100644
index 6d6c1f9..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistryReader.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.modelhandler;
-
-import java.util.Set;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.sse.core.internal.Logger;
-import org.eclipse.wst.sse.core.modelhandler.EmbeddedTypeHandler;
-import org.eclipse.wst.sse.core.util.Assert;
-
-
-public class EmbeddedTypeRegistryReader {
-	protected String ATT_CLASS = "class"; //$NON-NLS-1$
-	protected String EXTENSION_POINT_ID = "embeddedTypeHandler"; //$NON-NLS-1$
-
-
-	protected String PLUGIN_ID = "org.eclipse.wst.sse.core"; //$NON-NLS-1$
-	protected String TAG_NAME = "embeddedTypeHandler"; //$NON-NLS-1$
-
-	EmbeddedTypeRegistryReader() {
-		super();
-	}
-
-	protected EmbeddedTypeHandler readElement(IConfigurationElement element) {
-
-		EmbeddedTypeHandler contentTypeDescription = null;
-		if (element.getName().equals(TAG_NAME)) {
-			try {
-				contentTypeDescription = (EmbeddedTypeHandler) element.createExecutableExtension(ATT_CLASS);
-			} catch (Exception e) {
-				Logger.logException(e);
-			}
-		}
-		Assert.isNotNull(contentTypeDescription, "Error reading content type description"); //$NON-NLS-1$
-		return contentTypeDescription;
-	}
-
-	/**
-	 * We simply require an 'add' method, of what ever it is we are to read
-	 * into
-	 */
-	void readRegistry(Set set) {
-		IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
-		IExtensionPoint point = extensionRegistry.getExtensionPoint(PLUGIN_ID, EXTENSION_POINT_ID);
-		if (point != null) {
-			IConfigurationElement[] elements = point.getConfigurationElements();
-			for (int i = 0; i < elements.length; i++) {
-				EmbeddedTypeHandler embeddedContentType = readElement(elements[i]);
-				// null can be returned if there's an error reading the
-				// element
-				if (embeddedContentType != null) {
-					set.add(embeddedContentType);
-				}
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerRegistry.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerRegistry.java
deleted file mode 100644
index 383af34..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerRegistry.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.modelhandler;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.content.IContentTypeManager;
-import org.eclipse.wst.common.encoding.CodedIO;
-import org.eclipse.wst.sse.core.internal.Logger;
-import org.eclipse.wst.sse.core.modelhandler.IModelHandler;
-import org.eclipse.wst.sse.core.util.Utilities;
-
-
-public class ModelHandlerRegistry {
-	private static ModelHandlerRegistry instance = null;
-
-	private static IContentTypeManager getContentTypeRegistry() {
-		IContentTypeManager registry = Platform.getContentTypeManager();
-		return registry;
-	}
-
-	/**
-	 */
-	public synchronized static ModelHandlerRegistry getInstance() {
-		if (instance == null) {
-			instance = new ModelHandlerRegistry();
-		}
-		return instance;
-	}
-
-	private IModelHandler defaultHandler = null;
-	private ModelHandlerRegistryReader reader = new ModelHandlerRegistryReader();
-
-	/*
-	 * @see ContentTypeRegistry#getTypeFor(String)
-	 */
-	/**
-	 * Constructor for ContentTypeRegistryImpl.
-	 */
-	protected ModelHandlerRegistry() {
-		super();
-		reader = new ModelHandlerRegistryReader().readRegistry();
-	}
-
-	/**
-	 * Finds the default model handler. Note: we still go through the registry
-	 * to be sure to get the existing instance, but then we do remember it, so
-	 * subsequent requests will be faster. The first time through, we do check
-	 * the whole list, to be sure there is only one.
-	 *  
-	 */
-	final public IModelHandler getDefault() {
-		if (defaultHandler == null) {
-			IConfigurationElement[] elements = reader.elements;
-			for (int i = 0; i < elements.length; i++) {
-				boolean ofInterest = reader.isElementDefault(elements[i]);
-				if (ofInterest) {
-					// if, here within the search loop we've already found
-					// one defaultHandler, then something is wrong!
-					if (defaultHandler == null) {
-						defaultHandler = reader.getInstance(elements[i]);
-					} else {
-						String errorString = "Program or configuration error. More than one default content handler found"; //$NON-NLS-1$
-						Logger.log(Logger.ERROR, errorString);
-						throw new IllegalStateException(errorString);
-					}
-				}
-			}
-		}
-		if (defaultHandler == null) {
-			String errorString = "Program or configuration error. No default content type handler found."; //$NON-NLS-1$
-			Logger.log(Logger.ERROR, errorString);
-			throw new IllegalStateException(errorString);
-		}
-		return defaultHandler;
-	}
-
-	/**
-	 * Finds the contentTypeDescription based on outcome of the
-	 * ContentTypeDescription's canHandle(IResource) method.
-	 * 
-	 * @throws CoreException
-	 */
-	public IModelHandler getHandlerFor(IFile iFile) throws CoreException {
-		IModelHandler modelHandler = null;
-		IContentDescription contentDescription = null;
-		IContentType contentType = null;
-		boolean exists = iFile.exists();
-		if (exists) {
-			// try the optimized method first as the description may be cached
-			contentDescription = iFile.getContentDescription();
-			if (contentDescription != null) {
-				// use the provided description
-				contentType = contentDescription.getContentType();
-			} else {
-				// use the more thorough discovery method to get a description
-				InputStream contents = null;
-				try {
-					contents = iFile.getContents(true);
-					contentDescription = Platform.getContentTypeManager().getDescriptionFor(contents, iFile.getName(), IContentDescription.ALL);
-					if (contentDescription != null) {
-						contentType = contentDescription.getContentType();
-					}
-				} catch (IOException e) {
-					// nothing further can be done, but will log for debugging
-					Logger.logException(e);
-				} finally {
-					if (contents != null) {
-						try {
-							contents.close();
-						} catch (IOException e1) {
-							// nothing can be done
-						}
-					}
-				}
-			}
-		}
-
-		// if we couldn't get the content type from a description, try basing
-		// it on the filename
-		if (contentType == null) {
-			contentType = Platform.getContentTypeManager().findContentTypeFor(iFile.getName());
-		}
-
-		if (contentType != null) {
-			modelHandler = getHandlerForContentType(contentType);
-		} else {
-			// temp hard coding for null content type
-			modelHandler = getHandlerForID("org.eclipse.wst.sse.core.handler.xml"); //$NON-NLS-1$
-		}
-
-		return modelHandler;
-	}
-
-	/**
-	 * @see ContentTypeRegistry#add(ContentTypeDescription)
-	 */
-	//	void add(IModelHandler contentTypeDescription) {
-	//		arrayList.add(contentTypeDescription);
-	//	}
-	/*
-	 * @see ContentTypeRegistry#getModelFor(String)
-	 */
-	/**
-	 * @throws IOException
-	 * @see ContentTypeRegistry#getTypeFor(String, InputStream)
-	 */
-	public IModelHandler getHandlerFor(String filename, InputStream inputStream) throws IOException {
-		InputStream iStream = Utilities.getMarkSupportedStream(inputStream);
-		IModelHandler modelHandler = null;
-		IContentType contentType = null;
-		if (inputStream != null) {
-			try {
-				iStream.mark(CodedIO.MAX_MARK_SIZE);
-				contentType = getContentTypeRegistry().findContentTypeFor(Utilities.getLimitedStream(iStream), filename);
-			}
-			// XXX: Remove when we build with the fix for Eclipse bug #63625
-			catch (FileNotFoundException fnfe) {
-				Logger.logException(fnfe);
-			} finally {
-				if (iStream != null && iStream.markSupported()) {
-					iStream.reset();
-				}
-			}
-
-		}
-		if (contentType == null) {
-			contentType = getContentTypeRegistry().findContentTypeFor(filename);
-		}
-		// if all else failed, try to detect solely on contents; done last for performance reasons
-		if (contentType == null) {
-			contentType = getContentTypeRegistry().findContentTypeFor(Utilities.getLimitedStream(iStream), null);
-		}
-		modelHandler = getHandlerForContentType(contentType);
-		return modelHandler;
-	}
-
-
-	/**
-	 * Gets registered modelHandlers for given content type. TODO: eventually
-	 * need to look at contentType's parent types to see if more general type
-	 * can handle (e.g. if we got xsl which was a subtype of xml).
-	 * 
-	 * @param contentType
-	 * @return
-	 */
-	private IModelHandler getHandlerForContentType(IContentType contentType) {
-
-		IModelHandler found = null;
-		// temp hard coding for null content type
-		if (contentType == null) {
-			found = getHandlerForID("org.eclipse.wst.sse.core.handler.xml"); //$NON-NLS-1$
-		} else {
-			//String associatedContentTypeId = contentType.getId();
-			IConfigurationElement[] elements = reader.elements;
-			if (elements != null) {
-				for (int i = 0; i < elements.length; i++) {
-					String currentId = reader.getAssociatedContentTypeId(elements[i]);
-					IContentType modelContentType = Platform.getContentTypeManager().getContentType(currentId);
-					if (contentType.isKindOf(modelContentType)) {
-						IModelHandler item = reader.getInstance(elements[i]);
-						found = item;
-					}
-				}
-			} else {
-				Logger.log(Logger.WARNING_DEBUG, "There were no Model Handler found in registry"); //$NON-NLS-1$
-			}
-		}
-		return found;
-	}
-
-	/**
-	 * Finds the ModelHandler based on literal content type id. This should
-	 * not normally be needed, in is in cases when a model needs to be
-	 * created, and there is no resource. Its basically a "first found first
-	 * returned". Note the order is fairly unpredictable, so non-unique ids
-	 * would cause problems, and are not checked.
-	 */
-	public IModelHandler getHandlerForContentTypeId(String contentTypeId) {
-		IContentType contentType = Platform.getContentTypeManager().getContentType(contentTypeId);
-		return getHandlerForContentType(contentType);
-		//		IModelHandler found = null;
-		//		IConfigurationElement[] elements = reader.elements;
-		//		if (elements != null) {
-		//			for (int i = 0; i < elements.length; i++) {
-		//				String currentId = reader.getAssociatedContentTypeId(elements[i]);
-		//				if (contentTypeId.equals(currentId)) {
-		//					IModelHandler item = reader.getInstance(elements[i]);
-		//					found = item;
-		//				}
-		//			}
-		//		}
-		//		else {
-		//			Logger.log(Logger.WARNING_DEBUG, "There were no Model Handler found
-		// in registry");
-		//		}
-		//		return found;
-	}
-
-	/**
-	 * Finds the ModelHandler based on literal id. Its basically a "first
-	 * found first returned". Note the order is fairly unpredictable, so
-	 * non-unique ids would cause problems, and are not checked.
-	 */
-	private IModelHandler getHandlerForID(String modelId) {
-		IModelHandler found = null;
-		IConfigurationElement[] elements = reader.elements;
-		if (elements != null) {
-			for (int i = 0; i < elements.length; i++) {
-				String currentId = reader.getId(elements[i]);
-				if (modelId.equals(currentId)) {
-					IModelHandler item = reader.getInstance(elements[i]);
-					found = item;
-				}
-			}
-		} else {
-			Logger.log(Logger.WARNING_DEBUG, "There were no Model Handler found in registry"); //$NON-NLS-1$
-		}
-		return found;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerRegistryReader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerRegistryReader.java
deleted file mode 100644
index c2c49d5..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerRegistryReader.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.modelhandler;
-
-import java.util.HashMap;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.sse.core.modelhandler.AbstractModelHandler;
-import org.eclipse.wst.sse.core.modelhandler.IModelHandler;
-
-
-/**
- * This class just converts what's in the plugins registry into a form more
- * easily useable by others, the ContentTypeRegistry.
- */
-class ModelHandlerRegistryReader {
-	private HashMap allReadyCreateInstances = new HashMap();
-	protected String ATT_ASSOCIATED_CONTENT_TYPE = "associatedContentTypeId"; //$NON-NLS-1$
-	protected String ATT_CLASS = "class"; //$NON-NLS-1$
-	protected String ATT_DEFAULT = "default"; //$NON-NLS-1$
-	protected String ATT_ID = "id"; //$NON-NLS-1$
-	IConfigurationElement[] elements;
-	protected String EXTENSION_POINT_ID = "modelHandler"; //$NON-NLS-1$
-	//
-	protected String PLUGIN_ID = "org.eclipse.wst.sse.core"; //$NON-NLS-1$
-	protected String TAG_NAME = "modelHandler"; //$NON-NLS-1$
-
-	//
-	/**
-	 * ContentTypeRegistryReader constructor comment.
-	 */
-	ModelHandlerRegistryReader() {
-		super();
-	}
-
-	String getAssociatedContentTypeId(IConfigurationElement element) {
-		String value = element.getAttribute(ATT_ASSOCIATED_CONTENT_TYPE);
-		return value;
-	}
-
-	String getId(IConfigurationElement element) {
-		String idValue = element.getAttribute(ATT_ID);
-		return idValue;
-	}
-
-	synchronized IModelHandler getInstance(IConfigurationElement element) {
-		// May need to reconsider, but for now, we'll assume all clients must
-		// subclass AbstractContentTypeIdentifier. Its easier and safer, for
-		// this
-		// low level "system" object. (That is, we can check and set "package
-		// protected"
-		// attributes.
-		AbstractModelHandler modelHandler = (AbstractModelHandler) allReadyCreateInstances.get(getId(element));
-		if (modelHandler == null) {
-			try {
-				modelHandler = (AbstractModelHandler) element.createExecutableExtension(ATT_CLASS);
-				if (modelHandler != null) {
-					allReadyCreateInstances.put(getId(element), modelHandler);
-					String defaultValue = element.getAttribute(ATT_DEFAULT);
-					if (defaultValue != null && "true".equals(defaultValue)) //$NON-NLS-1$
-						modelHandler.setDefault(true);
-					else
-						modelHandler.setDefault(false);
-					// TODO -- set and check attributes vs. created instance
-					//contentTypeIdentifier.setOrCheckId(element.getAttribute(ATT_ID));
-				}
-			} catch (CoreException e) {
-				org.eclipse.wst.sse.core.internal.Logger.logException(e);
-			}
-		}
-		return modelHandler;
-	}
-
-	public boolean isElementDefault(IConfigurationElement element) {
-		String defaultValue = element.getAttribute(ATT_DEFAULT);
-		if (defaultValue != null && "true".equals(defaultValue)) //$NON-NLS-1$
-			return true;
-		else
-			return false;
-	}
-
-	ModelHandlerRegistryReader readRegistry() {
-		IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
-		IExtensionPoint point = extensionRegistry.getExtensionPoint(PLUGIN_ID, EXTENSION_POINT_ID);
-		if (point != null) {
-			// just remember the elements, so plugins don't have to
-			// be activated, unless extension matches those "of interest".
-			elements = point.getConfigurationElements();
-		}
-		return this;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerUtility.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerUtility.java
deleted file mode 100644
index 58fb94f..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerUtility.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.modelhandler;
-
-import org.eclipse.wst.sse.core.modelhandler.EmbeddedTypeHandler;
-import org.eclipse.wst.sse.core.modelhandler.IDocumentTypeHandler;
-
-/**
- * 
- * Likely a temporary class to be replaced by plugin, eventually.
- */
-public class ModelHandlerUtility {
-
-	private static ModelHandlerRegistry contentTypeRegistry;
-
-	public static IDocumentTypeHandler getContentTypeFor(String string) {
-		return getContentTypeRegistry().getHandlerForContentTypeId(string);
-	}
-
-	private static ModelHandlerRegistry getContentTypeRegistry() {
-		if (contentTypeRegistry == null) {
-			contentTypeRegistry = ModelHandlerRegistry.getInstance();
-		}
-		return contentTypeRegistry;
-	}
-
-	public static EmbeddedTypeHandler getDefaultEmbeddedType() {
-		return getEmbeddedContentTypeFor("text/html"); //$NON-NLS-1$
-	}
-
-	public static EmbeddedTypeHandler getEmbeddedContentTypeFor(String string) {
-		EmbeddedTypeHandler instance = null;
-		instance = EmbeddedTypeRegistryImpl.getInstance().getTypeFor(string);
-		return instance;
-	}
-
-	public ModelHandlerUtility() {
-		super();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/PluginContributedFactoryReader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/PluginContributedFactoryReader.java
deleted file mode 100644
index 475cbd6..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/PluginContributedFactoryReader.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.modelhandler;
-
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.sse.core.AdapterFactory;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.eclipse.wst.sse.core.modelhandler.IDocumentTypeHandler;
-
-
-/**
- * 
- * Clients can make use of IExecutableExtension to handle the optional adapter
- * class and key. Typically, many clients use a typical pattern of providing
- * an adapter class and key in their null argument constructor anyway, so
- * they'd only have to use IExecutableExtension if the factory was for more
- * than one.
- */
-public class PluginContributedFactoryReader {
-	//	protected final String ATTR_ADAPTERKEY = "adapterKeyClass";
-	// //$NON-NLS-1$
-	//	protected final String ATTR_REGISTERADAPTER = "registerAdapters";
-	// //$NON-NLS-1$
-	private static PluginContributedFactoryReader reader = null;
-
-	public synchronized static PluginContributedFactoryReader getInstance() {
-		if (reader == null) {
-			reader = new PluginContributedFactoryReader();
-		}
-		return reader;
-	}
-
-	protected final String ATTR_CLASS = "class"; //$NON-NLS-1$
-	protected final String ATTR_CONTENTTYPE = "contentTypeIdentiferId"; //$NON-NLS-1$
-
-	protected final String EXTENSION_POINT_ID = "contentTypeFactoryContribution"; //$NON-NLS-1$
-	protected final String TAG_NAME = "factory"; //$NON-NLS-1$
-
-	protected PluginContributedFactoryReader() {
-		super();
-	}
-
-	public List getFactories(IDocumentTypeHandler handler) {
-		return loadRegistry(handler.getId());
-	}
-
-	public List getFactories(String type) {
-		return loadRegistry(type);
-	}
-
-	protected AdapterFactory loadFactoryFromConfigurationElement(IConfigurationElement element, Object requesterType) {
-		AdapterFactory factory = null;
-		if (element.getName().equals(TAG_NAME)) {
-			String contentType = element.getAttribute(ATTR_CONTENTTYPE);
-			if (!requesterType.equals(contentType))
-				return null;
-			String className = element.getAttribute(ATTR_CLASS);
-			//			String adapterKeyClass = element.getAttribute(ATTR_ADAPTERKEY);
-			//			String registerAdapters =
-			// element.getAttribute(ATTR_REGISTERADAPTER);
-
-			// if className is null, then no one defined the extension point
-			// for adapter factories
-			if (className != null) {
-				try {
-					factory = (AdapterFactory) element.createExecutableExtension(ATTR_CLASS);
-				} catch (CoreException e) {
-					// if an error occurs here, its probably that the plugin
-					// could not be found/loaded
-					org.eclipse.wst.sse.core.internal.Logger.logException("Could not find class: " + className, e); //$NON-NLS-1$
-				} catch (Exception e) {
-					// if an error occurs here, its probably that the plugin
-					// could not be found/loaded -- but in any case we just
-					// want
-					// to log the error and continue running and best we can.
-					org.eclipse.wst.sse.core.internal.Logger.logException("Could not find class: " + className, e); //$NON-NLS-1$
-				}
-				//				if (plugin != null) {
-				//					factory = oldAttributesCode(element, factory, className,
-				// plugin);
-				//
-			}
-		}
-
-		return factory;
-	}
-
-	protected List loadRegistry(Object contentType) {
-		List factoryList = null; // new Vector();
-		IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
-		IExtensionPoint point = extensionRegistry.getExtensionPoint(SSECorePlugin.ID, EXTENSION_POINT_ID);
-		if (point != null) {
-			IConfigurationElement[] elements = point.getConfigurationElements();
-			if (elements.length > 0) {
-				// this is called a lot, so don't create vector unless really
-				// needed
-				// TODO: could eventually cache in a hashtable, or something,
-				// to avoid repeat processing
-				factoryList = new Vector();
-				for (int i = 0; i < elements.length; i++) {
-					AdapterFactory factory = loadFactoryFromConfigurationElement(elements[i], contentType);
-					if (factory != null)
-						factoryList.add(factory);
-				}
-			}
-		}
-		return factoryList;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/parser/ContextRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/parser/ContextRegion.java
deleted file mode 100644
index 7fc2641..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/parser/ContextRegion.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.parser;
-
-
-
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-
-/**
- * Regions of this class are intended specifically for XML/HTML/JSPs. Other
- * languages may need their own subclasses. (See the updateModel method).
- */
-public class ContextRegion implements ITextRegion {
-	protected int fLength;
-
-	protected int fStart;
-	protected int fTextLength;
-	protected String fType;
-
-	protected ContextRegion() {
-		super();
-	}
-
-	public ContextRegion(String newContext, int newStart, int newTextLength, int newLength) {
-		fType = newContext;
-		fStart = newStart;
-		fTextLength = newTextLength;
-		fLength = newLength;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.core.ITextRegionCore#adjust(int)
-	 */
-	public void adjust(int i) {
-		fStart += i;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.core.ITextRegionCore#adjustLengthWith(int)
-	 */
-	public void adjustLengthWith(int i) {
-		fLength += i;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.core.ITextRegionCore#adjustStart(int)
-	 */
-	public void adjustStart(int i) {
-		fStart += i;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjustTextLength(int)
-	 */
-	public void adjustTextLength(int i) {
-		fTextLength += i;
-
-	}
-
-	protected 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;
-	}
-
-	protected 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;
-	}
-
-	protected boolean canHandleAsLetterOrDigit(String changes, int requestStart, int lengthToReplace) {
-		boolean result = false;
-		// Make sure we are in a non-white space area
-		if ((requestStart <= (getTextEnd())) && (allLetterOrDigit(changes))) {
-			result = true;
-		}
-		return result;
-	}
-
-	protected boolean canHandleAsWhiteSpace(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 (getEnd() > getTextEnd()) {
-			// no need to add one to end of text, as we used to, since we
-			// change definition of length to equate to offset plus one.
-			if (requestStart > 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;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.core.ITextRegionCore#contains(int)
-	 */
-	public boolean contains(int position) {
-
-		return fStart <= position && position < fStart + fLength;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.core.ITextRegionCore#equatePositions(com.ibm.sed.structured.text.ITextRegion)
-	 */
-	public void equatePositions(ITextRegion region) {
-		fStart = region.getStart();
-		fLength = region.getLength();
-		fTextLength = region.getTextLength();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#getEnd()
-	 */
-	public int getEnd() {
-		return fStart + fLength;
-	}
-
-	public int getLength() {
-		return fLength;
-	}
-
-	public int getStart() {
-		return fStart;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#getTextEnd()
-	 */
-	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(int i) {
-		fTextLength = i;
-	}
-
-	public void setType(String string) {
-		fType = string;
-	}
-
-	public String toString() {
-		String className = getClass().getName();
-		String shortClassName = className.substring(className.lastIndexOf(".") + 1); //$NON-NLS-1$
-		// ==> // String resultText = null;
-		String result = shortClassName + "--> " + getType() + ": " + getStart() + "-" + getTextEnd() + (getTextEnd() != getEnd() ? ("/" + 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 com.ibm.sed.util.StringUtils.escape("('"+(getFirstRegion()
-		// == null || document == null? "" :
-		// getText(getFirstRegion()))+"'"+getStart()+" -
-		// "+getEnd()+"'"+(getClose() == null || document == null ||
-		// getRegions().size()<2 ? "" : getText(getClose()))+"')
-		// "+getRegions());
-		return result;
-	}
-
-	public StructuredDocumentEvent updateModel(Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
-		// the four types we used to handle here, have all been moved to
-		// specific region classes.
-		// XML_TAG_ATTRIBUTE_VALUE
-		// XML_TAG_ATTRIBUTE_NAME
-		// XML_CONTENT
-		// XML_CDATA_TEXT
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/parser/ForeignRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/parser/ForeignRegion.java
deleted file mode 100644
index 57233dc..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/parser/ForeignRegion.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.parser;
-
-
-
-import org.eclipse.wst.sse.core.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-
-
-public class ForeignRegion extends ContextRegion {
-
-	protected String language = null;
-	protected String surroundingTag = null;
-
-	/**
-	 * ForeignRegion constructor comment.
-	 */
-	public ForeignRegion() {
-		super();
-	}
-
-	public ForeignRegion(String newContext, int newStart, int newTextLength, int newLength) {
-		super(newContext, newStart, newTextLength, newLength);
-	}
-
-	public ForeignRegion(String newContext, int newStart, int newTextLength, int newLength, String newLanguage) {
-		super(newContext, newStart, newTextLength, newLength);
-		setLanguage(newLanguage);
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public java.lang.String getLanguage() {
-		return language;
-	}
-
-	/**
-	 * @return java.lang.String
-	 */
-	public java.lang.String getSurroundingTag() {
-		return surroundingTag;
-	}
-
-	/**
-	 * 
-	 * @param newLanguage
-	 *            java.lang.String
-	 */
-	public void setLanguage(java.lang.String newLanguage) {
-		language = newLanguage;
-	}
-
-	/**
-	 * @param newSurroundingTag
-	 *            java.lang.String
-	 */
-	public void setSurroundingTag(java.lang.String newSurroundingTag) {
-		surroundingTag = newSurroundingTag;
-	}
-
-	public String toString() {
-		return "FOREIGN: " + super.toString();//$NON-NLS-1$
-	}
-
-	public StructuredDocumentEvent updateModel(Object requester, IStructuredDocumentRegion flatnode, String changes, int requestStart, int lengthToReplace) {
-		org.eclipse.wst.sse.core.events.RegionChangedEvent result = null;
-		int lengthDifference = org.eclipse.wst.sse.core.util.Utilities.calculateLengthDifference(changes, lengthToReplace);
-		fLength += lengthDifference;
-		fTextLength += lengthDifference;
-		result = new RegionChangedEvent(flatnode.getParentDocument(), requester, flatnode, this, changes, requestStart, lengthToReplace);
-
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/BasicStructuredDocument.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/BasicStructuredDocument.java
deleted file mode 100644
index 81e27ff..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/BasicStructuredDocument.java
+++ /dev/null
@@ -1,2603 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.text;
-
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.BadPartitioningException;
-import org.eclipse.jface.text.BadPositionCategoryException;
-import org.eclipse.jface.text.DefaultLineTracker;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.DocumentPartitioningChangedEvent;
-import org.eclipse.jface.text.FindReplaceDocumentAdapter;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentExtension;
-import org.eclipse.jface.text.IDocumentExtension3;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.jface.text.IDocumentPartitionerExtension2;
-import org.eclipse.jface.text.IDocumentPartitioningListener;
-import org.eclipse.jface.text.IDocumentPartitioningListenerExtension;
-import org.eclipse.jface.text.IDocumentPartitioningListenerExtension2;
-import org.eclipse.jface.text.ILineTracker;
-import org.eclipse.jface.text.IPositionUpdater;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextStore;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.SequentialRewriteTextStore;
-import org.eclipse.jface.text.TypedRegion;
-import org.eclipse.wst.common.encoding.EncodingMemento;
-import org.eclipse.wst.sse.core.document.StructuredDocumentFactory;
-import org.eclipse.wst.sse.core.events.AboutToBeChangeEvent;
-import org.eclipse.wst.sse.core.events.IModelAboutToBeChangedListener;
-import org.eclipse.wst.sse.core.events.IStructuredDocumentListener;
-import org.eclipse.wst.sse.core.events.NewDocumentEvent;
-import org.eclipse.wst.sse.core.events.NewModelEvent;
-import org.eclipse.wst.sse.core.events.NoChangeEvent;
-import org.eclipse.wst.sse.core.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.events.RegionsReplacedEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentRegionsReplacedEvent;
-import org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException;
-import org.eclipse.wst.sse.core.internal.Logger;
-import org.eclipse.wst.sse.core.internal.undo.StructuredTextUndoManager;
-import org.eclipse.wst.sse.core.parser.RegionParser;
-import org.eclipse.wst.sse.core.text.DeleteEqualPositionUpdater;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegionList;
-import org.eclipse.wst.sse.core.text.IStructuredTextReParser;
-import org.eclipse.wst.sse.core.text.rules.StructuredTextPartitioner;
-import org.eclipse.wst.sse.core.undo.IStructuredTextUndoManager;
-import org.eclipse.wst.sse.core.util.Assert;
-import org.eclipse.wst.sse.core.util.Debug;
-import org.eclipse.wst.sse.core.util.Utilities;
-
-
-/**
- * The standard implementation of structured document.
- */
-public class BasicStructuredDocument implements IStructuredDocument, IDocumentExtension, IDocumentExtension3, CharSequence, IRegionComparible {
-
-	/**
-	 * This ThreadLocal construct is used so each thread can maintain its only
-	 * pointer to the double linked list that manages the documents regions.
-	 * The only thing we "gaurd" for is that a previously cached region has
-	 * been deleted.
-	 * 
-	 * The object that is kept in the thread local's map, is just a pointer to
-	 * an array position. That's because the object there needs to be "free"
-	 * from references to other objects, or it will not be garbage collected.
-	 */
-	private class CurrentDocumentRegionCache {
-		// I'm assuming for now there would never be so many threads that
-		// this arrayList needs to be bounded, or 'cleaned up'.
-		// this assumption should be tested in practice and long running
-		// jobs -- found not to be a good assumption. See below.
-		private List cachedRegionPositionArray = Collections.synchronizedList(new ArrayList());
-		private final boolean DEBUG = false;
-		private final int MAX_SIZE = 50;
-
-
-		private ThreadLocal threadLocalCachePosition = new ThreadLocal();
-
-		IStructuredDocumentRegion get() {
-			IStructuredDocumentRegion region = null;
-			int pos = getThreadLocalPosition();
-			try {
-				region = (IStructuredDocumentRegion) cachedRegionPositionArray.get(pos);
-			} catch (IndexOutOfBoundsException e) {
-				// even though the cachedRegionPosition is synchronized,
-				// that just means each access is syncronized, its
-				// still possible for another thread to cause it to
-				// be cleared, after this thread gets it position.
-				// So, if that happens, all we can do is reset to beginning.
-				// This should be extremely rare (in other words, probably
-				// not worth using synchronized blocks
-				// to access cachedRegionPositionArray.
-				reinitThreadLocalPosition();
-				resetToInitialState();
-			}
-			if (region == null) {
-				region = resetToInitialState();
-			} else
-			// region not null
-			if (region.isDeleted()) {
-				region = resetToInitialState();
-			}
-			return region;
-		}
-
-		private int getThreadLocalPosition() {
-			Object threadLocalObject = threadLocalCachePosition.get();
-			int pos = -1;
-			if (threadLocalObject == null) {
-
-				pos = reinitThreadLocalPosition();
-			} else {
-				pos = ((Integer) threadLocalObject).intValue();
-			}
-			return pos;
-		}
-
-		/**
-		 * @return
-		 */
-		private int reinitThreadLocalPosition() {
-			Integer position;
-			int pos;
-			// TODO_future: think of a better solution that doesn't
-			// require this kludge. This is especially required because
-			// some infrasture, such as reconciler, actually null out
-			// their thread object and recreate it, 500 msecs later
-			// (approximately).
-			// Note: the likely solution in future is to clear after every
-			// heavy use of getCachedRegion, such as in creating node
-			// lists, or reparsing or partioning.
-			if (cachedRegionPositionArray.size() > MAX_SIZE) {
-				cachedRegionPositionArray.clear();
-				if (DEBUG) {
-					System.out.println("cachedRegionPositionArray cleared at size " + MAX_SIZE);
-				}
-			}
-			position = new Integer(cachedRegionPositionArray.size());
-			threadLocalCachePosition.set(position);
-			cachedRegionPositionArray.add(position.intValue(), null);
-			pos = position.intValue();
-			return pos;
-		}
-
-		private IStructuredDocumentRegion resetToInitialState() {
-			IStructuredDocumentRegion region;
-			region = getFirstStructuredDocumentRegion();
-			set(region);
-			return region;
-		}
-
-		// TODO: make privite if used, else delete
-		void set(int pos, IStructuredDocumentRegion region) {
-			cachedRegionPositionArray.set(pos, region);
-		}
-
-		void set(IStructuredDocumentRegion region) {
-			try {
-				int pos = getThreadLocalPosition();
-				cachedRegionPositionArray.set(pos, region);
-			} catch (IndexOutOfBoundsException e) {
-				// even though the cachedRegionPosition is synchronized,
-				// that just means each access is syncronized, its
-				// still possible for another thread to cause it to
-				// be cleared, after this thread gets it position.
-				// So, if that happens, all we can do is reset to beginning.
-				// This should be extremely rare (in other words, probably
-				// not worth using synchronized blocks
-				// to access cachedRegionPositionArray.
-				reinitThreadLocalPosition();
-				resetToInitialState();
-			}
-		}
-	}
-
-	/**
-	 * This NullDocumentEvent is used to complete the "aboutToChange" and
-	 * "changed" cycle, when in fact the original change is no longer valid.
-	 * The only known (valid) case of this is when a model re-initialize takes
-	 * place, which causes setText to be called in the middle of some previous
-	 * change. [This architecture will be improved in future].
-	 */
-	public class NullDocumentEvent extends DocumentEvent {
-		public NullDocumentEvent() {
-			this(BasicStructuredDocument.this, 0, 0, ""); //$NON-NLS-1$
-		}
-
-		private NullDocumentEvent(IDocument doc, int offset, int length, String text) {
-			super(doc, offset, length, text);
-		}
-	}
-
-	class RegisteredReplace {
-		/** The owner of this replace operation. */
-		IDocumentListener fOwner;
-		/** The replace operation */
-		IDocumentExtension.IReplace fReplace;
-
-		/**
-		 * Creates a new bundle object.
-		 * 
-		 * @param owner
-		 *            the document listener owning the replace operation
-		 * @param replace
-		 *            the replace operation
-		 */
-		RegisteredReplace(IDocumentListener owner, IDocumentExtension.IReplace replace) {
-			fOwner = owner;
-			fReplace = replace;
-		}
-	}
-
-	/**
-	 * these control variable isn't mark as 'final' since there's some unit
-	 * tests that manipulate it. For final product, it should be.
-	 */
-
-	private static boolean USE_LOCAL_THREAD = true;
-
-	/**
-	 * purely for debugging/performance measurements In practice, would always
-	 * be 'true'. (and should never be called by called by clients). Its not
-	 * 'final' or private just so it can be varied during
-	 * debugging/performance measurement runs.
-	 * 
-	 * @param use_local_thread
-	 */
-	public static void setUSE_LOCAL_THREAD(final boolean use_local_thread) {
-		USE_LOCAL_THREAD = use_local_thread;
-	}
-
-	private IStructuredDocumentRegion cachedDocumentRegion;
-	private EncodingMemento encodingMemento;
-	private boolean fAcceptPostNotificationReplaces = true;
-	private CurrentDocumentRegionCache fCurrentDocumnetRegionCache;
-	private DocumentEvent fDocumentEvent;
-	private IDocumentListener[] fDocumentListeners;
-
-	/**
-	 * The registered document partitioners.
-	 * 
-	 * @since 3.0
-	 */
-	private Map fDocumentPartitioners;
-	/** The registered document partitioning listeners */
-	private List fDocumentPartitioningListeners;
-	private IStructuredDocumentRegion firstDocumentRegion;
-	private RegionParser fParser;
-	private GenericPositionManager fPositionManager;
-	private List fPostNotificationChanges;
-	private IDocumentListener[] fPrenotifiedDocumentListeners;
-	private int fReentranceCount = 0;
-	private IStructuredTextReParser fReParser;
-	private int fStoppedCount = 0;
-
-	private ITextStore fStore;
-	private Object[] fStructuredDocumentAboutToChangeListeners;
-	private Object[] fStructuredDocumentChangedListeners;
-	private Object[] fStructuredDocumentChangingListeners;
-
-	private ILineTracker fTracker;
-	private IStructuredTextUndoManager fUndoManager;
-	private IStructuredDocumentRegion lastDocumentRegion;
-
-	private byte[] listenerLock = new byte[0];
-	private NullDocumentEvent NULL_DOCUMENT_EVENT;
-
-	//
-	/**
-	 * in case preferred delimiter is not set, we'll assume the platform
-	 * default Note: it is not final static to make sure it won't be inlined
-	 * by compiler.
-	 */
-	private final String PlatformLineDelimiter = System.getProperty("line.separator"); //$NON-NLS-1$
-	/**
-	 * theoretically, a document can contain mixed line delimiters
-	 */
-	private String preferedDelimiter;
-	private final String READ_ONLY_REGIONS_CATEGORY = "_READ_ONLY_REGIONS_CATEGORY_"; //$NON-NLS-1$
-	/**
-	 * debug variable only
-	 * 
-	 * @param parser
-	 */
-	private long startStreamTime;
-	/**
-	 * debug variable only
-	 * 
-	 * @param parser
-	 */
-	private long startTime;
-
-	public BasicStructuredDocument() {
-		super();
-		fCurrentDocumnetRegionCache = new CurrentDocumentRegionCache();
-		fStore = new StructuredDocumentTextStore(50, 300);
-		setLineTracker(new DefaultLineTracker());
-		NULL_DOCUMENT_EVENT = new NullDocumentEvent();
-
-		internal_addPositionCategory(READ_ONLY_REGIONS_CATEGORY);
-		internal_addPositionUpdater(new DeleteEqualPositionUpdater(READ_ONLY_REGIONS_CATEGORY));
-
-	}
-
-	/**
-	 * This is the primary way to get a new structuredDocument. Its best to
-	 * use the factory methods in ModelManger to create a new
-	 * IStructuredDocument, since it will get and initialize the parser
-	 * according to the desired content type.
-	 */
-	public BasicStructuredDocument(RegionParser parser) {
-		this();
-		Assert.isNotNull(parser, "Program Error: IStructuredDocument can not be created with null parser"); //$NON-NLS-1$
-		// go through setter in case there is side effects
-		internal_setParser(parser);
-	}
-
-	private void _clearDocumentEvent() {
-		// no hard and fast requirement to null out ... just seems like
-		// a good idea, since we are done with it.
-		fDocumentEvent = null;
-	}
-
-	private void _fireDocumentAboutToChange(Object[] listeners) {
-		// most DocumentAboutToBeChanged listeners do not anticipate
-		// DocumentEvent == null. So make sure documentEvent is not
-		// null. (this should never happen, yet it does sometimes)
-		if (fDocumentEvent == null) {
-			fDocumentEvent = new NullDocumentEvent();
-		}
-		if (fDocumentPartitioners != null) {
-			Iterator e = fDocumentPartitioners.values().iterator();
-			while (e.hasNext()) {
-				IDocumentPartitioner p = (IDocumentPartitioner) e.next();
-				// safeguard from listeners that throw exceptions
-				try {
-					p.documentAboutToBeChanged(fDocumentEvent);
-				} catch (Exception exception) {
-					Logger.logException(exception);
-				}
-			}
-		}
-		// we must assign listeners to local variable, since the add and
-		// remove
-		// listner
-		// methods can change the actual instance of the listener array from
-		// another thread
-		if (listeners != null) {
-			Object[] holdListeners = listeners;
-			// Note: the docEvent is created in replaceText API
-			// fire
-			for (int i = 0; i < holdListeners.length; i++) {
-				if (Debug.perfTest || Debug.perfTestStructuredDocumentEventOnly) {
-					startTime = System.currentTimeMillis();
-				}
-				// safeguard from listeners that throw exceptions
-				try {
-					// this is a safe cast, since addListners requires a
-					// IStructuredDocumentListener
-					((IDocumentListener) holdListeners[i]).documentAboutToBeChanged(fDocumentEvent);
-				} catch (Exception exception) {
-					Logger.logException(exception);
-				}
-				if (Debug.perfTest || Debug.perfTestStructuredDocumentEventOnly) {
-					long stopTime = System.currentTimeMillis();
-					System.out.println("\n\t\t\t\t IStructuredDocument::fireStructuredDocumentEvent. Time was " + (stopTime - startTime) + " msecs to fire NewModelEvent to instance of " + holdListeners[i].getClass()); //$NON-NLS-2$//$NON-NLS-1$
-				}
-			}
-		}
-	}
-
-	private void _fireDocumentChanged(Object[] listeners, StructuredDocumentEvent event) {
-		if (fDocumentPartitioners != null) {
-			Iterator e = fDocumentPartitioners.values().iterator();
-			while (e.hasNext()) {
-				IDocumentPartitioner p = (IDocumentPartitioner) e.next();
-				// safeguard from listeners that throw exceptions
-				try {
-					p.documentChanged(fDocumentEvent);
-				} catch (Exception exception) {
-					Logger.logException(exception);
-				}
-			}
-		}
-
-		// we must assign listeners to local variable, since the add and
-		// remove
-		// listner
-		// methods can change the actual instance of the listener array from
-		// another thread
-		if (listeners != null) {
-			Object[] holdListeners = listeners;
-			// NOTE: document event is created in replace Text API and setText
-			// API
-			// now fire
-			for (int i = 0; i < holdListeners.length; i++) {
-				if (Debug.perfTest || Debug.perfTestStructuredDocumentEventOnly) {
-					startTime = System.currentTimeMillis();
-				}
-
-				// safeguard from listeners that throw exceptions
-				try {
-					// this is a safe cast, since addListners requires a
-					// IStructuredDocumentListener
-					// Notes: fDocumentEvent can be "suddenly" null, if one of
-					// the
-					// previous changes
-					// caused a "setText" to be called. The only known case of
-					// this
-					// is a model reset
-					// due to page directive changing. Eventually we should
-					// change
-					// archetecture to have
-					// event que and be able to "cancel" pending events, but
-					// for
-					// now, we'll just pass a
-					// NullDocumentEvent. By the way, it is important to send
-					// something, since clients might
-					// have indeterminant state due to "aboutToChange" being
-					// sent
-					// earlier.
-					if (fDocumentEvent == null) {
-						((IDocumentListener) holdListeners[i]).documentChanged(NULL_DOCUMENT_EVENT);
-					} else {
-						((IDocumentListener) holdListeners[i]).documentChanged(fDocumentEvent);
-					}
-				} catch (Exception exception) {
-					Logger.logException(exception);
-				}
-				if (Debug.perfTest || Debug.perfTestStructuredDocumentEventOnly) {
-					long stopTime = System.currentTimeMillis();
-					System.out.println("\n\t\t\t\t IStructuredDocument::fireStructuredDocumentEvent. Time was " + (stopTime - startTime) + " msecs to fire NewModelEvent to instance of " + holdListeners[i].getClass()); //$NON-NLS-2$//$NON-NLS-1$
-				}
-			}
-		}
-	}
-
-	private void _fireEvent(Object[] listeners, NewDocumentEvent event) {
-		// we must assign listeners to local variable, since the add and
-		// remove
-		// listner
-		// methods can change the actual instance of the listener array from
-		// another thread
-		if (listeners != null) {
-			Object[] holdListeners = listeners;
-			for (int i = 0; i < holdListeners.length; i++) {
-				if (Debug.perfTest || Debug.perfTestStructuredDocumentEventOnly) {
-					startTime = System.currentTimeMillis();
-				}
-				// safeguard from listeners that throw exceptions
-				try {
-					// this is a safe cast, since addListners requires a
-					// IStructuredDocumentListener
-					((IStructuredDocumentListener) holdListeners[i]).newModel(event);
-				} catch (Exception exception) {
-					Logger.logException(exception);
-				}
-				if (Debug.perfTest || Debug.perfTestStructuredDocumentEventOnly) {
-					long stopTime = System.currentTimeMillis();
-					System.out.println("\n\t\t\t\t IStructuredDocument::fireStructuredDocumentEvent. Time was " + (stopTime - startTime) + " msecs to fire NewModelEvent to instance of " + holdListeners[i].getClass()); //$NON-NLS-2$//$NON-NLS-1$
-				}
-			}
-		}
-	}
-
-	private void _fireEvent(Object[] listeners, NoChangeEvent event) {
-		// we must assign listeners to local variable, since the add and
-		// remove
-		// listner
-		// methods can change the actual instance of the listener array from
-		// another thread
-		if (listeners != null) {
-			Object[] holdListeners = listeners;
-			for (int i = 0; i < holdListeners.length; i++) {
-				if (Debug.perfTest || Debug.perfTestStructuredDocumentEventOnly) {
-					startTime = System.currentTimeMillis();
-				}
-				// safeguard from listeners that throw exceptions
-				try {
-					// this is a safe cast, since addListners requires a
-					// IStructuredDocumentListener
-					((IStructuredDocumentListener) holdListeners[i]).noChange(event);
-				} catch (Exception exception) {
-					Logger.logException(exception);
-				}
-				if (Debug.perfTest || Debug.perfTestStructuredDocumentEventOnly) {
-					long stopTime = System.currentTimeMillis();
-					System.out.println("\n\t\t\t\t IStructuredDocument::fireStructuredDocumentEvent. Time was " + (stopTime - startTime) + " msecs to fire NewModelEvent to instance of " + holdListeners[i].getClass()); //$NON-NLS-2$//$NON-NLS-1$
-				}
-			}
-		}
-	}
-
-	private void _fireEvent(Object[] listeners, RegionChangedEvent event) {
-		// we must assign listeners to local variable, since the add and
-		// remove
-		// listner
-		// methods can change the actual instance of the listener array from
-		// another thread
-		if (listeners != null) {
-			Object[] holdListeners = listeners;
-			for (int i = 0; i < holdListeners.length; i++) {
-				if (Debug.perfTest || Debug.perfTestStructuredDocumentEventOnly) {
-					startTime = System.currentTimeMillis();
-				}
-				// safeguard from listeners that throw exceptions
-				try {
-					// this is a safe cast, since addListners requires a
-					// IStructuredDocumentListener
-					((IStructuredDocumentListener) holdListeners[i]).regionChanged(event);
-				} catch (Exception exception) {
-					Logger.logException(exception);
-				}
-				if (Debug.perfTest || Debug.perfTestStructuredDocumentEventOnly) {
-					long stopTime = System.currentTimeMillis();
-					System.out.println("\n\t\t\t\t IStructuredDocument::fireStructuredDocumentEvent. Time was " + (stopTime - startTime) + " msecs to fire NewModelEvent to instance of " + holdListeners[i].getClass()); //$NON-NLS-2$//$NON-NLS-1$
-				}
-			}
-		}
-	}
-
-	private void _fireEvent(Object[] listeners, RegionsReplacedEvent event) {
-		// we must assign listeners to local variable, since the add and
-		// remove
-		// listner
-		// methods can change the actual instance of the listener array from
-		// another thread
-		if (listeners != null) {
-			Object[] holdListeners = listeners;
-			for (int i = 0; i < holdListeners.length; i++) {
-				if (Debug.perfTest || Debug.perfTestStructuredDocumentEventOnly) {
-					startTime = System.currentTimeMillis();
-				}
-				// safeguard from listeners that throw exceptions
-				try {
-					// this is a safe cast, since addListners requires a
-					// IStructuredDocumentListener
-					((IStructuredDocumentListener) holdListeners[i]).regionsReplaced(event);
-				} catch (Exception exception) {
-					Logger.logException(exception);
-				}
-				if (Debug.perfTest || Debug.perfTestStructuredDocumentEventOnly) {
-					long stopTime = System.currentTimeMillis();
-					System.out.println("\n\t\t\t\t IStructuredDocument::fireStructuredDocumentEvent. Time was " + (stopTime - startTime) + " msecs to fire NewModelEvent to instance of " + holdListeners[i].getClass()); //$NON-NLS-2$//$NON-NLS-1$
-				}
-			}
-		}
-	}
-
-	private void _fireEvent(Object[] listeners, StructuredDocumentRegionsReplacedEvent event) {
-		// we must assign listeners to local variable, since the add and
-		// remove
-		// listner
-		// methods can change the actual instance of the listener array from
-		// another thread
-		if (listeners != null) {
-			Object[] holdListeners = listeners;
-			for (int i = 0; i < holdListeners.length; i++) {
-				if (Debug.perfTest || Debug.perfTestStructuredDocumentEventOnly) {
-					startTime = System.currentTimeMillis();
-				}
-				// safeguard from listeners that throw exceptions
-				try {
-					// this is a safe cast, since addListners requires a
-					// IStructuredDocumentListener
-					((IStructuredDocumentListener) holdListeners[i]).nodesReplaced(event);
-				} catch (Exception exception) {
-					Logger.logException(exception);
-				}
-				if (Debug.perfTest || Debug.perfTestStructuredDocumentEventOnly) {
-					long stopTime = System.currentTimeMillis();
-					System.out.println("\n\t\t\t\t IStructuredDocument::fireStructuredDocumentEvent. Time was " + (stopTime - startTime) + " msecs to fire NewModelEvent to instance of " + holdListeners[i].getClass()); //$NON-NLS-2$//$NON-NLS-1$
-				}
-			}
-		}
-	}
-
-	private void _fireStructuredDocumentAboutToChange(Object[] listeners) {
-		// we must assign listeners to local variable, since the add and
-		// remove
-		// listner
-		// methods can change the actual instance of the listener array from
-		// another thread
-		if (listeners != null) {
-			Object[] holdListeners = listeners;
-			// Note: the docEvent is created in replaceText API
-			// fire
-			for (int i = 0; i < holdListeners.length; i++) {
-				if (Debug.perfTest || Debug.perfTestStructuredDocumentEventOnly) {
-					startTime = System.currentTimeMillis();
-				}
-				// safeguard from listeners that throw exceptions
-				try {
-					// notice the AboutToBeChangedEvent is created from the
-					// DocumentEvent, since it is (nearly)
-					// the same information. ?What to do about
-					// originalRequester?
-					if (fDocumentEvent == null) {
-						fDocumentEvent = new NullDocumentEvent();
-					}
-					AboutToBeChangeEvent aboutToBeChangedEvent = new AboutToBeChangeEvent(this, null, fDocumentEvent.getText(), fDocumentEvent.getOffset(), fDocumentEvent.getLength());
-					// this is a safe cast, since addListners requires a
-					// IStructuredDocumentListener
-					((IModelAboutToBeChangedListener) holdListeners[i]).modelAboutToBeChanged(aboutToBeChangedEvent);
-				} catch (Exception exception) {
-					Logger.logException(exception);
-				}
-				if (Debug.perfTest || Debug.perfTestStructuredDocumentEventOnly) {
-					long stopTime = System.currentTimeMillis();
-					System.out.println("\n\t\t\t\t IStructuredDocument::fireStructuredDocumentEvent. Time was " + (stopTime - startTime) + " msecs to fire NewModelEvent to instance of " + holdListeners[i].getClass()); //$NON-NLS-2$//$NON-NLS-1$
-				}
-			}
-		}
-	}
-
-	protected void acquireLock() {
-		// do nothing here in super class
-	}
-
-	/**
-	 * addModelAboutToBeChangedListener method comment.
-	 */
-	public void addDocumentAboutToChangeListener(IModelAboutToBeChangedListener listener) {
-		synchronized (listenerLock) {
-
-			// make sure listener is not already in listening
-			// (and if it is, print a warning to aid debugging, if needed)
-			if (!Utilities.contains(fStructuredDocumentAboutToChangeListeners, listener)) {
-				int oldSize = 0;
-				if (fStructuredDocumentAboutToChangeListeners != null) {
-					// normally won't be null, but we need to be sure, for
-					// first
-					// time through
-					oldSize = fStructuredDocumentAboutToChangeListeners.length;
-				}
-				int newSize = oldSize + 1;
-				Object[] newListeners = new Object[newSize];
-				if (fStructuredDocumentAboutToChangeListeners != null) {
-					System.arraycopy(fStructuredDocumentAboutToChangeListeners, 0, newListeners, 0, oldSize);
-				}
-				// add listener to last position
-				newListeners[newSize - 1] = listener;
-				//
-				// now switch new for old
-				fStructuredDocumentAboutToChangeListeners = newListeners;
-				//
-			}
-		}
-	}
-
-	/**
-	 * The StructuredDocumentListners and ModelChagnedListeners are very
-	 * similar. They both receive identical events. The difference is the
-	 * timing. The "pure" StructuredDocumentListners are notified after the
-	 * structuredDocument has been changed, but before other, related models
-	 * may have been changed such as the Structural Model. The Structural
-	 * model is in fact itself a "pure" StructuredDocumentListner. The
-	 * ModelChangedListeners can rest assured that all models and data have
-	 * been updated from the change by the tiem they are notified. This is
-	 * especially important for the text widget, for example, which may rely
-	 * on both structuredDocument and structural model information.
-	 */
-	public void addDocumentChangedListener(IStructuredDocumentListener listener) {
-		synchronized (listenerLock) {
-
-			if (Debug.debugStructuredDocument) {
-				System.out.println("IStructuredDocument::addModelChangedListener. Request to add an instance of " + listener.getClass() + " as a listener on structuredDocument."); //$NON-NLS-2$//$NON-NLS-1$
-			}
-			// make sure listener is not already in listening
-			// (and if it is, print a warning to aid debugging, if needed)
-			if (Utilities.contains(fStructuredDocumentChangedListeners, listener)) {
-				if (Debug.displayWarnings) {
-					System.out.println("IStructuredDocument::addModelChangedListener. listener " + listener + " was addeded more than once. "); //$NON-NLS-2$//$NON-NLS-1$
-				}
-			} else {
-				if (Debug.debugStructuredDocument) {
-					System.out.println("IStructuredDocument::addModelChangedListener. Adding an instance of " + listener.getClass() + " as a listener on structuredDocument."); //$NON-NLS-2$//$NON-NLS-1$
-				}
-				int oldSize = 0;
-				if (fStructuredDocumentChangedListeners != null) {
-					// normally won't be null, but we need to be sure, for
-					// first
-					// time through
-					oldSize = fStructuredDocumentChangedListeners.length;
-				}
-				int newSize = oldSize + 1;
-				Object[] newListeners = new Object[newSize];
-				if (fStructuredDocumentChangedListeners != null) {
-					System.arraycopy(fStructuredDocumentChangedListeners, 0, newListeners, 0, oldSize);
-				}
-				// add listener to last position
-				newListeners[newSize - 1] = listener;
-				//
-				// now switch new for old
-				fStructuredDocumentChangedListeners = newListeners;
-				//
-				// when a listener is added,
-				// send the new model event to that one particular listener,
-				// so it
-				// can initialize itself with the current state of the model
-				// listener.newModel(new NewModelEvent(this, listener));
-			}
-		}
-	}
-
-	public void addDocumentChangingListener(IStructuredDocumentListener listener) {
-		synchronized (listenerLock) {
-
-			if (Debug.debugStructuredDocument) {
-				System.out.println("IStructuredDocument::addStructuredDocumentListener. Request to add an instance of " + listener.getClass() + " as a listener on structuredDocument."); //$NON-NLS-2$//$NON-NLS-1$
-			}
-			// make sure listener is not already in listening
-			// (and if it is, print a warning to aid debugging, if needed)
-			if (Utilities.contains(fStructuredDocumentChangingListeners, listener)) {
-				if (Debug.displayWarnings) {
-					System.out.println("IStructuredDocument::addStructuredDocumentListener. listener " + listener + " was addeded more than once. "); //$NON-NLS-2$//$NON-NLS-1$
-				}
-			} else {
-				if (Debug.debugStructuredDocument) {
-					System.out.println("IStructuredDocument::addStructuredDocumentListener. Adding an instance of " + listener.getClass() + " as a listener on structuredDocument."); //$NON-NLS-2$//$NON-NLS-1$
-				}
-				int oldSize = 0;
-				if (fStructuredDocumentChangingListeners != null) {
-					// normally won't be null, but we need to be sure, for
-					// first
-					// time through
-					oldSize = fStructuredDocumentChangingListeners.length;
-				}
-				int newSize = oldSize + 1;
-				Object[] newListeners = new Object[newSize];
-				if (fStructuredDocumentChangingListeners != null) {
-					System.arraycopy(fStructuredDocumentChangingListeners, 0, newListeners, 0, oldSize);
-				}
-				// add listener to last position
-				newListeners[newSize - 1] = listener;
-				//
-				// now switch new for old
-				fStructuredDocumentChangingListeners = newListeners;
-				//
-				// when a listener is added,
-				// send the new model event to that one particular listener,
-				// so it
-				// can initialize itself with the current state of the model
-				// listener.newModel(new NewModelEvent(this, listener));
-			}
-		}
-	}
-
-	/**
-	 * We manage our own document listners, instead of delegating to our
-	 * parentDocument, so we can fire at very end (and not when the
-	 * parentDocument changes).
-	 * 
-	 */
-	public void addDocumentListener(IDocumentListener listener) {
-		synchronized (listenerLock) {
-
-			// make sure listener is not already in listening
-			// (and if it is, print a warning to aid debugging, if needed)
-			if (!Utilities.contains(fDocumentListeners, listener)) {
-				int oldSize = 0;
-				if (fDocumentListeners != null) {
-					// normally won't be null, but we need to be sure, for
-					// first
-					// time through
-					oldSize = fDocumentListeners.length;
-				}
-				int newSize = oldSize + 1;
-				IDocumentListener[] newListeners = null;
-				newListeners = new IDocumentListener[newSize];
-				if (fDocumentListeners != null) {
-					System.arraycopy(fDocumentListeners, 0, newListeners, 0, oldSize);
-				}
-				// add listener to last position
-				newListeners[newSize - 1] = listener;
-				// now switch new for old
-				fDocumentListeners = newListeners;
-			}
-		}
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocument#addDocumentPartitioningListener(org.eclipse.jface.text.IDocumentPartitioningListener)
-	 * 
-	 * Registers the document partitioning listener with the document. After
-	 * registration the IDocumentPartitioningListener is informed about each
-	 * partition change cause by a document manipulation. If a document
-	 * partitioning listener is also a document listener, the following
-	 * notification sequence is guaranteed if a document manipulation changes
-	 * the document partitioning: 1)
-	 * listener.documentAboutToBeChanged(DocumentEvent); 2)
-	 * listener.documentPartitioningChanged(); 3)
-	 * listener.documentChanged(DocumentEvent); If the listener is already
-	 * registered nothing happens.
-	 * 
-	 * @see IDocumentPartitioningListener
-	 */
-
-	public void addDocumentPartitioningListener(IDocumentPartitioningListener listener) {
-		synchronized (listenerLock) {
-
-			Assert.isNotNull(listener);
-			if (fDocumentPartitioningListeners == null) {
-				fDocumentPartitioningListeners = new ArrayList(1);
-			}
-			if (!fDocumentPartitioningListeners.contains(listener))
-				fDocumentPartitioningListeners.add(listener);
-		}
-	}
-
-	/**
-	 * Adds the position to the document's default position category. The
-	 * default category must be specified by the implementer. A position that
-	 * has been added to a position category is updated at each change applied
-	 * to the document.
-	 * 
-	 * @exception BadLocationException
-	 *                If position is not a valid range in the document
-	 */
-	public void addPosition(Position position) throws BadLocationException {
-		getPositionManager().addPosition(position);
-	}
-
-	/**
-	 * @see IDocument#addPosition
-	 * @exception BadLocationException
-	 *                If position is not a valid range in the document
-	 * @exception BadPositionCategoryException
-	 *                If the category is not defined for the document
-	 */
-	public void addPosition(String category, Position position) throws BadLocationException, BadPositionCategoryException {
-		getPositionManager().addPosition(category, position);
-	}
-
-	/**
-	 * @see IDocument#addPositionCategory
-	 */
-	public void addPositionCategory(String category) {
-		internal_addPositionCategory(category);
-	}
-
-	/**
-	 * @see IDocument#addPositionUpdater
-	 */
-	public void addPositionUpdater(IPositionUpdater updater) {
-		internal_addPositionUpdater(updater);
-	}
-
-	/**
-	 * Adds the given document listener as one which is notified before those
-	 * document listeners added with <code>addDocumentListener</code> are
-	 * notified. If the given listener is also registered using
-	 * <code>addDocumentListener</code> it will be notified twice. If the
-	 * listener is already registered nothing happens.
-	 * <p>
-	 * 
-	 * This method is not for public use, it may only be called by
-	 * implementers of <code>IDocumentAdapter</code> and only if those
-	 * implementers need to implement <code>IDocumentListener</code>.
-	 * 
-	 * @param documentAdapter
-	 *            the listener to be added as prenotified document listener
-	 */
-	public void addPrenotifiedDocumentListener(IDocumentListener documentAdapter) {
-		synchronized (listenerLock) {
-
-			if (fPrenotifiedDocumentListeners != null) {
-				int previousSize = fPrenotifiedDocumentListeners.length;
-				IDocumentListener[] listeners = new IDocumentListener[previousSize + 1];
-				System.arraycopy(fPrenotifiedDocumentListeners, 0, listeners, 0, previousSize);
-				listeners[previousSize] = documentAdapter;
-				fPrenotifiedDocumentListeners = listeners;
-			} else {
-				fPrenotifiedDocumentListeners = new IDocumentListener[1];
-				fPrenotifiedDocumentListeners[0] = documentAdapter;
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.CharSequence#charAt(int)
-	 */
-	public char charAt(int arg0) {
-		try {
-			return getChar(0);
-		} catch (BadLocationException e) {
-			throw new IndexOutOfBoundsException();
-		}
-	}
-
-	/**
-	 * This form of the API removes all read only positions, as should be done
-	 * we 'setText' is called. Note: an alternative algorithm may simply
-	 * remove the category (and it would get added back in later, if/when
-	 * readonly regions added.
-	 */
-	private void clearReadOnly() {
-		Position[] positions = null;
-		try {
-			positions = getPositions(READ_ONLY_REGIONS_CATEGORY);
-		} catch (BadPositionCategoryException e) {
-			Logger.logException("program error: should never occur", e); //$NON-NLS-1$
-		}
-		for (int i = 0; i < positions.length; i++) {
-			Position position = positions[i];
-			// note we don't fire the "about to change" or "changed" events,
-			// since presumably, text is all going away and being replaced
-			// anyway.
-			position.delete();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocument#clearReadOnly(int,
-	 *      int)
-	 */
-	public void clearReadOnly(int startOffset, int length) {
-		// TODO DW I still need to implement smarter algorithm that
-		// adust existing RO regions, if needed. For now, I'll just
-		// remove any that overlap.
-		try {
-			Position[] positions = getPositions(READ_ONLY_REGIONS_CATEGORY);
-			for (int i = 0; i < positions.length; i++) {
-				Position position = positions[i];
-				if (position.overlapsWith(startOffset, length)) {
-					String effectedText = this.get(startOffset, length);
-					// fDocumentEvent = new DocumentEvent(this, startOffset,
-					// length, effectedText);
-					fireReadOnlyAboutToBeChanged();
-					position.delete();
-					NoChangeEvent noChangeEvent = new NoChangeEvent(this, null, effectedText, startOffset, length);
-					noChangeEvent.reason = NoChangeEvent.READ_ONLY_STATE_CHANGE;
-					fireReadOnlyStructuredDocumentEvent(noChangeEvent);
-				}
-			}
-		} catch (BadPositionCategoryException e) {
-			// just means no readonly regions been defined yet
-			// so nothing to do.
-		}
-	}
-
-	/**
-	 * Computes the index at which a <code>Position</code> with the
-	 * specified offset would be inserted into the given category. As the
-	 * ordering inside a category only depends on the offset, the index must
-	 * be choosen to be the first of all positions with the same offset.
-	 * 
-	 * @param category
-	 *            the category in which would be added
-	 * @param offset
-	 *            the position offset to be considered
-	 * @return the index into the category
-	 * @exception BadLocationException
-	 *                if offset is invalid in this document
-	 * @exception BadPositionCategoryException
-	 *                if category is undefined in this document
-	 */
-	public int computeIndexInCategory(String category, int offset) throws org.eclipse.jface.text.BadPositionCategoryException, org.eclipse.jface.text.BadLocationException {
-		return getPositionManager().computeIndexInCategory(category, offset);
-	}
-
-	/**
-	 * Computes the number of lines in the given text. For a given implementer
-	 * of this interface this method returns the same result as
-	 * <code>set(text); getNumberOfLines()</code>.
-	 * 
-	 * @param text
-	 *            the text whose number of lines should be computed
-	 * @return the number of lines in the given text
-	 */
-	public int computeNumberOfLines(String text) {
-		return getTracker().computeNumberOfLines(text);
-	}
-
-	/**
-	 * Computes the partitioning of the given document range using the
-	 * document's partitioner.
-	 * 
-	 * @param offset
-	 *            the document offset at which the range starts
-	 * @param length
-	 *            the length of the document range
-	 * @return a specification of the range's partitioning
-	 * @throws BadLocationException
-	 * @throws BadPartitioningException
-	 */
-	public ITypedRegion[] computePartitioning(int offset, int length) throws BadLocationException {
-		ITypedRegion[] typedRegions = null;
-		try {
-			typedRegions = computePartitioning(IStructuredDocument.DEFAULT_STRUCTURED_PARTITIONING, offset, length, false);
-		} catch (BadPartitioningException e) {
-			// impossible in this context
-			throw new Error(e);
-		}
-		if (typedRegions == null) {
-			typedRegions = new ITypedRegion[0];
-		}
-		return typedRegions;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocumentExtension3#computeZeroLengthPartitioning(java.lang.String,
-	 *      int, int)
-	 * @since 3.0
-	 */
-	public ITypedRegion[] computePartitioning(String partitioning, int offset, int length, boolean includeZeroLengthPartitions) throws BadLocationException, BadPartitioningException {
-		if ((0 > offset) || (0 > length) || (offset + length > getLength()))
-			throw new BadLocationException();
-
-		IDocumentPartitioner partitioner = getDocumentPartitioner(partitioning);
-
-		if (partitioner instanceof IDocumentPartitionerExtension2)
-			return ((IDocumentPartitionerExtension2) partitioner).computePartitioning(offset, length, includeZeroLengthPartitions);
-		else if (partitioner != null)
-			return partitioner.computePartitioning(offset, length);
-		else if (IStructuredDocument.DEFAULT_STRUCTURED_PARTITIONING.equals(partitioning))
-			return new TypedRegion[]{new TypedRegion(offset, length, DEFAULT_CONTENT_TYPE)};
-		else
-			throw new BadPartitioningException();
-	}
-
-	/**
-	 * @see IDocument#containsPosition
-	 */
-	public boolean containsPosition(String category, int offset, int length) {
-		return getPositionManager().containsPosition(category, offset, length);
-	}
-
-	/**
-	 * @see IDocument#containsPositionCategory
-	 */
-	public boolean containsPositionCategory(String category) {
-		return getPositionManager().containsPositionCategory(category);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocument#containsReadOnly(int,
-	 *      int)
-	 */
-	public boolean containsReadOnly(int startOffset, int length) {
-		boolean result = false;
-		try {
-			Position[] positions = getPositions(READ_ONLY_REGIONS_CATEGORY);
-			for (int i = 0; i < positions.length; i++) {
-				Position position = positions[i];
-				if (position.overlapsWith(startOffset, length)) {
-					result = true;
-					break;
-				}
-			}
-		} catch (BadPositionCategoryException e) {
-			// just means no readonly regions been defined yet
-			// so obviously false
-			result = false;
-		}
-		return result;
-	}
-
-	private void executePostNotificationChanges() {
-		if (fStoppedCount > 0)
-			return;
-		while (fPostNotificationChanges != null) {
-			List changes = fPostNotificationChanges;
-			fPostNotificationChanges = null;
-			Iterator e = changes.iterator();
-			while (e.hasNext()) {
-				RegisteredReplace replace = (RegisteredReplace) e.next();
-				replace.fReplace.perform(this, replace.fOwner);
-			}
-		}
-	}
-
-	private void fireDocumentAboutToChanged() {
-		_fireStructuredDocumentAboutToChange(fStructuredDocumentAboutToChangeListeners);
-		// Note: the docEvent is created in replaceText API! (or set Text)
-		_fireDocumentAboutToChange(fPrenotifiedDocumentListeners);
-		_fireDocumentAboutToChange(fDocumentListeners);
-	}
-
-	/**
-	 * Fires the document partitioning changed notification to all registered
-	 * document partitioning listeners. Uses a robust iterator.
-	 * 
-	 * @param event
-	 *            the document partitioning changed event
-	 * 
-	 * @see IDocumentPartitioningListenerExtension2
-	 * @since 3.0
-	 */
-	protected void fireDocumentPartitioningChanged(DocumentPartitioningChangedEvent event) {
-		if (fDocumentPartitioningListeners == null || fDocumentPartitioningListeners.size() == 0)
-			return;
-
-		List list = new ArrayList(fDocumentPartitioningListeners);
-		Iterator e = list.iterator();
-		while (e.hasNext()) {
-			IDocumentPartitioningListener l = (IDocumentPartitioningListener) e.next();
-			if (l instanceof IDocumentPartitioningListenerExtension2) {
-				IDocumentPartitioningListenerExtension2 extension2 = (IDocumentPartitioningListenerExtension2) l;
-				extension2.documentPartitioningChanged(event);
-			} else if (l instanceof IDocumentPartitioningListenerExtension) {
-				IDocumentPartitioningListenerExtension extension = (IDocumentPartitioningListenerExtension) l;
-				extension.documentPartitioningChanged(this, event.getCoverage());
-			} else {
-				l.documentPartitioningChanged(this);
-			}
-		}
-
-	}
-
-	private void fireReadOnlyAboutToBeChanged() {
-		_fireStructuredDocumentAboutToChange(fStructuredDocumentAboutToChangeListeners);
-		// Note: the docEvent is created in replaceText API! (or set Text)
-		// _fireDocumentAboutToChange(fPrenotifiedDocumentListeners);
-		// _fireDocumentAboutToChange(fDocumentListeners);
-	}
-
-	private void fireReadOnlyStructuredDocumentEvent(NoChangeEvent event) {
-		_fireEvent(fStructuredDocumentChangingListeners, event);
-		_fireEvent(fStructuredDocumentChangedListeners, event);
-		// _fireDocumentChanged(fPrenotifiedDocumentListeners, event);
-		// _fireDocumentChanged(fDocumentListeners, event);
-		// _clearDocumentEvent();
-	}
-
-	private void fireStructuredDocumentEvent(NewDocumentEvent event) {
-		_fireEvent(fStructuredDocumentChangingListeners, event);
-		_fireEvent(fStructuredDocumentChangedListeners, event);
-		_fireDocumentChanged(fPrenotifiedDocumentListeners, event);
-		_fireDocumentChanged(fDocumentListeners, event);
-		_clearDocumentEvent();
-	}
-
-	private void fireStructuredDocumentEvent(NoChangeEvent event) {
-		_fireEvent(fStructuredDocumentChangingListeners, event);
-		_fireEvent(fStructuredDocumentChangedListeners, event);
-		_fireDocumentChanged(fPrenotifiedDocumentListeners, event);
-		_fireDocumentChanged(fDocumentListeners, event);
-		_clearDocumentEvent();
-	}
-
-	private void fireStructuredDocumentEvent(RegionChangedEvent event) {
-		_fireEvent(fStructuredDocumentChangingListeners, event);
-		_fireEvent(fStructuredDocumentChangedListeners, event);
-		_fireDocumentChanged(fPrenotifiedDocumentListeners, event);
-		_fireDocumentChanged(fDocumentListeners, event);
-		_clearDocumentEvent();
-	}
-
-	private void fireStructuredDocumentEvent(RegionsReplacedEvent event) {
-		_fireEvent(fStructuredDocumentChangingListeners, event);
-		_fireEvent(fStructuredDocumentChangedListeners, event);
-		_fireDocumentChanged(fPrenotifiedDocumentListeners, event);
-		_fireDocumentChanged(fDocumentListeners, event);
-		_clearDocumentEvent();
-	}
-
-	private void fireStructuredDocumentEvent(StructuredDocumentRegionsReplacedEvent event) {
-		_fireEvent(fStructuredDocumentChangingListeners, event);
-		_fireEvent(fStructuredDocumentChangedListeners, event);
-		_fireDocumentChanged(fPrenotifiedDocumentListeners, event);
-		_fireDocumentChanged(fDocumentListeners, event);
-		_clearDocumentEvent();
-	}
-
-	/**
-	 * Returns the document's complete text.
-	 */
-	public String get() {
-		return getStore().get(0, getLength());
-	}
-
-	/**
-	 * Returns length characters from the document's text starting from the
-	 * specified position.
-	 * 
-	 * @throws BadLocationException
-	 * 
-	 * @exception BadLocationException
-	 *                If the range is not valid in the document
-	 */
-	public String get(int offset, int length) {
-		String result = null;
-		int myLength = getLength();
-		if (0 > offset)
-			offset = 0;
-		if (0 > length)
-			length = 0;
-		if (offset + length > myLength) {
-			// first try adjusting length to fit
-			int lessLength = myLength - offset;
-			if ((lessLength >= 0) && (offset + lessLength == myLength)) {
-				length = lessLength;
-			} else {
-				// second, try offset
-				int moreOffset = myLength - length;
-				if ((moreOffset >= 0) && (moreOffset + length == myLength)) {
-					offset = moreOffset;
-				} else {
-					// should never happen
-					throw new Error();
-				}
-			}
-
-		}
-		// if ((0 > offset) || (0 > length) || (offset + length > myLength))
-		// throw new BadLocationException();
-		result = getStore().get(offset, length);
-		return result;
-	}
-
-	public Object getAdapter(Class adapter) {
-		return Platform.getAdapterManager().getAdapter(this, adapter);
-	}
-
-	/**
-	 * @return com.ibm.sed.structuredDocument.core.IStructuredDocumentRegion
-	 */
-	IStructuredDocumentRegion getCachedDocumentRegion() {
-		IStructuredDocumentRegion result = null;
-		if (USE_LOCAL_THREAD) {
-			result = fCurrentDocumnetRegionCache.get();
-		} else {
-			result = cachedDocumentRegion;
-		}
-		return result;
-	}
-
-	/**
-	 * @see IDocument#getChar
-	 * @exception BadLocationException
-	 *                If position is not a valid range in the document
-	 */
-	public char getChar(int pos) throws BadLocationException {
-		char result = 0x00;
-		try {
-			result = getStore().get(pos);
-		} catch (IndexOutOfBoundsException e) {
-			throw new BadLocationException(e.getLocalizedMessage());
-		}
-		return result;
-	}
-
-	/**
-	 * Returns the type of the document partition containing the given
-	 * character position.
-	 */
-	public String getContentType(int offset) throws BadLocationException {
-		return getDocumentPartitioner().getContentType(offset);
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocumentExtension3#getZeroLengthContentType(java.lang.String,
-	 *      int)
-	 * @since 3.0
-	 */
-	public String getContentType(String partitioning, int offset, boolean preferOpenPartitions) throws BadLocationException, BadPartitioningException {
-		if ((0 > offset) || (offset > getLength()))
-			throw new BadLocationException();
-
-		IDocumentPartitioner partitioner = getDocumentPartitioner(partitioning);
-
-		if (partitioner instanceof IDocumentPartitionerExtension2)
-			return ((IDocumentPartitionerExtension2) partitioner).getContentType(offset, preferOpenPartitions);
-		else if (partitioner != null)
-			return partitioner.getContentType(offset);
-		else if (IStructuredDocument.DEFAULT_STRUCTURED_PARTITIONING.equals(partitioning))
-			return DEFAULT_CONTENT_TYPE;
-		else
-			throw new BadPartitioningException();
-	}
-
-	/**
-	 * Returns the document's partitioner.
-	 * 
-	 * @see IDocumentPartitioner
-	 */
-	public IDocumentPartitioner getDocumentPartitioner() {
-		return getDocumentPartitioner(IStructuredDocument.DEFAULT_STRUCTURED_PARTITIONING);
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocumentExtension3#getDocumentPartitioner(java.lang.String)
-	 * @since 3.0
-	 */
-	public IDocumentPartitioner getDocumentPartitioner(String partitioning) {
-
-		IDocumentPartitioner documentPartitioner = null;
-		if (fDocumentPartitioners != null) {
-			documentPartitioner = (IDocumentPartitioner) fDocumentPartitioners.get(partitioning);
-		}
-		return documentPartitioner;
-	}
-
-	/**
-	 * @see com.ibm.sed.structuredDocument.IStructuredDocument#getEncodingMemento()
-	 */
-	public EncodingMemento getEncodingMemento() {
-		return encodingMemento;
-	}
-
-	public IStructuredDocumentRegion getFirstStructuredDocumentRegion() {
-		// should we update cachedNode?
-		// We should to keep consistent philosophy of remembering last
-		// requested position,
-		// for efficiency.
-		setCachedDocumentRegion(firstDocumentRegion);
-		return firstDocumentRegion;
-	}
-
-	public IStructuredDocumentRegion getLastStructuredDocumentRegion() {
-		// should we update cachedNode?
-		// We should to keep consistent philosophy of remembering last
-		// requested position,
-		// for efficiency.
-		setCachedDocumentRegion(lastDocumentRegion);
-		return lastDocumentRegion;
-	}
-
-	/*
-	 * -------------------------- partitions
-	 * ----------------------------------
-	 */
-	public String[] getLegalContentTypes() {
-		String[] result = null;
-		try {
-			result = getLegalContentTypes(IStructuredDocument.DEFAULT_STRUCTURED_PARTITIONING);
-		} catch (BadPartitioningException e) {
-			// impossible in this context
-			throw new Error(e);
-		}
-		return result;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocumentExtension3#getLegalContentTypes(java.lang.String)
-	 * @since 3.0
-	 */
-	public String[] getLegalContentTypes(String partitioning) throws BadPartitioningException {
-		IDocumentPartitioner partitioner = getDocumentPartitioner(partitioning);
-		if (partitioner != null)
-			return partitioner.getLegalContentTypes();
-		if (IStructuredDocument.DEFAULT_STRUCTURED_PARTITIONING.equals(partitioning))
-			return new String[]{DEFAULT_CONTENT_TYPE};
-		throw new BadPartitioningException();
-	}
-
-	/*
-	 * ------------------ line delimiter conversion
-	 * ---------------------------
-	 */
-	public String[] getLegalLineDelimiters() {
-		return getTracker().getLegalLineDelimiters();
-	}
-
-	/**
-	 * @see IDocument#getLength
-	 */
-	public int getLength() {
-		return getStore().getLength();
-	}
-
-	public String getLineDelimiter() {
-		if (preferedDelimiter == null) {
-			preferedDelimiter = PlatformLineDelimiter;
-		}
-		return preferedDelimiter;
-	}
-
-	/**
-	 * Returns the line delimiter of that line
-	 * 
-	 * @exception BadLocationException
-	 *                If the line number is invalid in the document
-	 */
-	public String getLineDelimiter(int line) throws org.eclipse.jface.text.BadLocationException {
-		return getTracker().getLineDelimiter(line);
-	}
-
-	/**
-	 * Returns a description of the specified line. The line is described by
-	 * its offset and its length excluding the line's delimiter.
-	 * 
-	 * @param line
-	 *            the line of interest
-	 * @return a line description
-	 * @exception BadLocationException
-	 *                if the line number is invalid in this document
-	 */
-	public org.eclipse.jface.text.IRegion getLineInformation(int line) throws org.eclipse.jface.text.BadLocationException {
-		return getTracker().getLineInformation(line);
-	}
-
-	/**
-	 * Returns a description of the line at the given offset. The description
-	 * contains the offset and the length of the line excluding the line's
-	 * delimiter.
-	 * 
-	 * @param offset
-	 *            the offset whose line should be described
-	 * @return a region describing the line
-	 * @exception BadLocationException
-	 *                if offset is invalid in this document
-	 */
-	public org.eclipse.jface.text.IRegion getLineInformationOfOffset(int offset) throws org.eclipse.jface.text.BadLocationException {
-		return getTracker().getLineInformationOfOffset(offset);
-	}
-
-	/*
-	 * ---------------------- line information
-	 * --------------------------------
-	 */
-	public int getLineLength(int line) throws org.eclipse.jface.text.BadLocationException {
-		return getTracker().getLineLength(line);
-	}
-
-	/**
-	 * Determines the offset of the first character of the given line.
-	 * 
-	 * @param line
-	 *            the line of interest
-	 * @return the document offset
-	 * @exception BadLocationException
-	 *                if the line number is invalid in this document
-	 */
-	public int getLineOffset(int line) throws org.eclipse.jface.text.BadLocationException {
-		return getTracker().getLineOffset(line);
-	}
-
-	public int getLineOfOffset(int offset) {
-		int result = -1;
-		try {
-			result = getTracker().getLineNumberOfOffset(offset);
-		} catch (BadLocationException e) {
-			Logger.traceException("IStructuredDocument", "Dev. Program Info Only: IStructuredDocument::getLineOfOffset: offset out of range, zero assumed. offset = " + offset, e); //$NON-NLS-1$ //$NON-NLS-2$
-			result = 0;
-		}
-		return result;
-	}
-
-	/**
-	 * Returns the number of lines in this document
-	 * 
-	 * @return the number of lines in this document
-	 */
-	public int getNumberOfLines() {
-		return getTracker().getNumberOfLines();
-	}
-
-	/**
-	 * Returns the number of lines which are occupied by a given text range.
-	 * 
-	 * @param offset
-	 *            the offset of the specified text range
-	 * @param length
-	 *            the length of the specified text range
-	 * @return the number of lines occupied by the specified range
-	 * @exception BadLocationException
-	 *                if specified range is invalid in this tracker
-	 */
-	public int getNumberOfLines(int offset, int length) throws org.eclipse.jface.text.BadLocationException {
-		return getTracker().getNumberOfLines(offset, length);
-	}
-
-	/**
-	 * This is public, for use by tag lib classes.
-	 */
-	public RegionParser getParser() {
-		if (fParser == null) {
-			throw new SourceEditingRuntimeException("IStructuredDocument::getParser. Parser needs to be set before use"); //$NON-NLS-1$
-			// fParser = getParserFactory().createParser(fType);
-			// System.out.println("Information:
-			// IStructuredDocument::getParser.
-			// XML Parser assumed.");
-			// fParser = new XMLSourceParser();
-		}
-		return fParser;
-	}
-
-	/**
-	 * Returns the document partition in which the position is located. The
-	 * partition is specified as typed region.
-	 */
-	public ITypedRegion getPartition(int offset) throws BadLocationException {
-		ITypedRegion partition = null;
-		try {
-			partition = getPartition(IStructuredDocument.DEFAULT_STRUCTURED_PARTITIONING, offset, false);
-		} catch (BadPartitioningException e) {
-			throw new Error(e);
-		}
-		if (partition == null) {
-			throw new Error();
-		}
-		return partition;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocumentExtension3#getZeroLengthPartition(java.lang.String,
-	 *      int)
-	 * @since 3.0
-	 */
-	public ITypedRegion getPartition(String partitioning, int offset, boolean preferOpenPartitions) throws BadLocationException, BadPartitioningException {
-		if ((0 > offset) || (offset > getLength()))
-			throw new BadLocationException();
-		ITypedRegion result = null;
-
-		IDocumentPartitioner partitioner = getDocumentPartitioner(partitioning);
-
-		if (partitioner instanceof IDocumentPartitionerExtension2) {
-			result = ((IDocumentPartitionerExtension2) partitioner).getPartition(offset, preferOpenPartitions);
-		} else if (partitioner != null) {
-			result = partitioner.getPartition(offset);
-		} else if (IStructuredDocument.DEFAULT_STRUCTURED_PARTITIONING.equals(partitioning)) {
-			result = new TypedRegion(0, getLength(), DEFAULT_CONTENT_TYPE);
-		} else
-			throw new BadPartitioningException();
-		return result;
-	}
-
-
-	/*
-	 * @see org.eclipse.jface.text.IDocumentExtension3#getPartitionings()
-	 * @since 3.0
-	 */
-	public String[] getPartitionings() {
-		if (fDocumentPartitioners == null)
-			return new String[0];
-		String[] partitionings = new String[fDocumentPartitioners.size()];
-		fDocumentPartitioners.keySet().toArray(partitionings);
-		return partitionings;
-	}
-
-	/**
-	 * Returns all position categories added to this document.
-	 */
-	public String[] getPositionCategories() {
-		return getPositionManager().getPositionCategories();
-	}
-
-	/**
-	 * @return Returns the positionManager.
-	 */
-	private GenericPositionManager getPositionManager() {
-		if (fPositionManager == null) {
-			fPositionManager = new GenericPositionManager(this);
-		}
-		return fPositionManager;
-	}
-
-	/**
-	 * Returns all Positions of the given position category.
-	 * 
-	 * @exception BadPositionCategoryException
-	 *                If category is not defined for the document
-	 */
-	public Position[] getPositions(String category) throws org.eclipse.jface.text.BadPositionCategoryException {
-		return getPositionManager().getPositions(category);
-	}
-
-	/**
-	 * @see IDocument#getPositionUpdaters
-	 */
-	public IPositionUpdater[] getPositionUpdaters() {
-		return getPositionManager().getPositionUpdaters();
-	}
-
-	/**
-	 * This method can return null, which is the case if the offset is just
-	 * before or just after the existing text. Compare with
-	 * getNodeAtCharacterOffset.
-	 */
-	public IStructuredDocumentRegion getRegionAtCharacterOffset(int offset) {
-		IStructuredDocumentRegion result = null;
-
-		// FIXME: need to synch on 'cachedRegion' (but since that's a
-		// constantly changing object, we
-		// can't, so need to add a "region_lock" object, and use it here, and
-		// in re-parser.
-		// Oh, and need to make sure, after synch, that the region is not
-		// deleted, and if so, I guess go back
-		// to the beginning!
-
-		// cached node can be null when document is empty
-		IStructuredDocumentRegion potentialCachedRegion = getCachedDocumentRegion();
-		if (potentialCachedRegion != null) {
-
-			// 
-
-			// if we already have the right node, return that.
-			if (potentialCachedRegion.containsOffset(offset)) {
-				result = potentialCachedRegion;
-			} else {
-				// first, find out what direction to go, relative to
-				// cachedNode.
-				// negative means "towards the front" of the file,
-				// postitive
-				// means
-				// towards the end.
-				int direction = offset - potentialCachedRegion.getStart();
-				if (direction < 0) {
-					// search towards beginning
-					while (!potentialCachedRegion.containsOffset(offset)) {
-						IStructuredDocumentRegion tempNode = potentialCachedRegion.getPrevious();
-						if (tempNode == null) {
-							break;
-						} else {
-							potentialCachedRegion = tempNode;
-						}
-					}
-				} else {
-					// search towards end
-					// There is a legitamat condition where the
-					// offset will not be contained in any node,
-					// which is if the offset is just past the last
-					// character of text.
-					// And, we must gaurd against setting cachedNode to
-					// null!
-					while (!potentialCachedRegion.containsOffset(offset)) {
-						IStructuredDocumentRegion tempNode = potentialCachedRegion.getNext();
-						if (tempNode == null)
-							break;
-						else
-							potentialCachedRegion = tempNode;
-					}
-				}
-			}
-			result = potentialCachedRegion;
-		}
-		// just to be doubly sure we never assign null to an already valid
-		// cachedRegion.
-		// I believe any time 'result' is null at this point, that just means
-		// we have an
-		// empty document, and the cachedRegion is already null, but we check
-		// and print
-		// warning, just so during development we be sure we never accidently
-		// break this assumption.
-		if (result != null)
-			setCachedDocumentRegion(result);
-		else if (getCachedDocumentRegion() != null) {
-			throw new IllegalStateException("Program Error: no region could be found to cache, but cache was non null. Indicates corrupted model or region list"); //$NON-NLS-1$
-		}
-
-		return result;
-	}
-
-	public IStructuredDocumentRegionList getRegionList() {
-		CoreNodeList result = null;
-		if (getCachedDocumentRegion() == null)
-			result = new CoreNodeList(null);
-		else
-			result = new CoreNodeList(getFirstStructuredDocumentRegion());
-
-		return result;
-	}
-
-	/**
-	 * was made public for easier testing. Normally should never be used by
-	 * client codes.
-	 */
-	public IStructuredTextReParser getReParser() {
-		if (fReParser == null) {
-			fReParser = new StructuredDocumentReParser();
-			fReParser.setStructuredDocument(this);
-		}
-		return fReParser;
-	}
-
-	private ITextStore getStore() {
-		Assert.isNotNull(fStore);
-		return fStore;
-	}
-
-	public String getText() {
-		String result = get();
-		return result;
-	}
-
-	/**
-	 * Returns the document's line tracker. Assumes that the document has been
-	 * initialized with a line tracker.
-	 * 
-	 * @return the document's line tracker
-	 */
-	private ILineTracker getTracker() {
-		Assert.isNotNull(fTracker);
-		return fTracker;
-	}
-
-	public IStructuredTextUndoManager getUndoManager() {
-		if (fUndoManager == null) {
-			fUndoManager = new StructuredTextUndoManager();
-		}
-		return fUndoManager;
-	}
-
-	void initializeFirstAndLastDocumentRegion() {
-		// cached Node must also be first, at the initial point. Only
-		// valid
-		// to call this method right after the first parse.
-		// 
-		// when starting afresh, our cachedNode should be our firstNode,
-		// so be sure to initialize the firstNode
-		firstDocumentRegion = getCachedDocumentRegion();
-		// be sure to use 'getNext' for this initial finding of the last
-		// node,
-		// since the implementation of node.getLastNode may simply call
-		// structuredDocument.getLastStructuredDocumentRegion!
-		IStructuredDocumentRegion aNode = firstDocumentRegion;
-		if (aNode == null) {
-			// defect 254607: to handle empty documents right, if
-			// firstnode is
-			// null, make sure last node is null too
-			lastDocumentRegion = null;
-		} else {
-			while (aNode != null) {
-				lastDocumentRegion = aNode;
-				aNode = aNode.getNext();
-			}
-		}
-	}
-
-	/**
-	 * @see IDocument#insertPositionUpdater
-	 */
-	public void insertPositionUpdater(IPositionUpdater updater, int index) {
-		getPositionManager().insertPositionUpdater(updater, index);
-	}
-
-	private void internal_addPositionCategory(String category) {
-		getPositionManager().addPositionCategory(category);
-	}
-
-	private void internal_addPositionUpdater(IPositionUpdater updater) {
-		getPositionManager().addPositionUpdater(updater);
-	}
-
-	private void internal_setParser(RegionParser newParser) {
-		fParser = newParser;
-	}
-
-	String internalGet(int offset, int length) {
-		String result = null;
-		int myLength = getLength();
-		// if ((0 > offset) || (0 > length) || (offset + length > myLength))
-		// throw new BadLocationException();
-		result = getStore().get(offset, length);
-		return result;
-	}
-
-	/**
-	 * @param requester
-	 * @param start
-	 * @param replacementLength
-	 * @param changes
-	 * @return
-	 */
-	private StructuredDocumentEvent internalReplaceText(Object requester, int start, int replacementLength, String changes, boolean ignoreReadOnlySettings) {
-		StructuredDocumentEvent result = null;
-
-		stopPostNotificationProcessing();
-		if (changes == null)
-			changes = ""; //$NON-NLS-1$
-		// 
-		if (Debug.debugStructuredDocument)
-			System.out.println(getClass().getName() + "::replaceText(" + start + "," + replacementLength + "," + changes + ")"); //$NON-NLS-4$//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-		if (Debug.perfTestStructuredDocumentOnly || Debug.perfTest || Debug.perfTestRawStructuredDocumentOnly) {
-			startStreamTime = System.currentTimeMillis();
-		}
-		try {
-			// Note: event must be computed before 'fire' method called
-			fDocumentEvent = new DocumentEvent(this, start, replacementLength, changes);
-			fireDocumentAboutToChanged();
-
-			try {
-				acquireLock();
-
-				if (!ignoreReadOnlySettings && (containsReadOnly(start, replacementLength))) {
-					NoChangeEvent noChangeEvent = new NoChangeEvent(this, requester, changes, start, replacementLength);
-					noChangeEvent.reason = NoChangeEvent.READ_ONLY_STATE_CHANGE;
-					result = noChangeEvent;
-				} else {
-					result = updateModel(requester, start, replacementLength, changes);
-				}
-			} finally {
-				releaseLock();
-			}
-
-
-			if (Debug.perfTestRawStructuredDocumentOnly || Debug.perfTest) {
-				long stopStreamTime = System.currentTimeMillis();
-				System.out.println("\n\t\t\t\t Time for IStructuredDocument raw replaceText: " + (stopStreamTime - startStreamTime)); //$NON-NLS-1$
-			}
-			if (Debug.debugStructuredDocument) {
-				System.out.println("event type returned by replaceTextWithNoDebuggingThread: " + result); //$NON-NLS-1$
-			}
-		} finally {
-			// FUTURE_TO_DO: implement callback mechanism? to avoid instanceof
-			// and casting
-			// fireStructuredDocumentEvent must be called in order to end
-			// documentAboutToBeChanged state
-			if (result == null) {
-				// result should not be null, but if an exception was thrown,
-				// it will be
-				// so send a noChangeEvent and log the problem
-				NoChangeEvent noChangeEvent = new NoChangeEvent(this, requester, changes, start, replacementLength);
-				noChangeEvent.reason = NoChangeEvent.NO_EVENT;
-				fireStructuredDocumentEvent(noChangeEvent);
-				Logger.log(Logger.ERROR, "Program Error: invalid structured document event"); //$NON-NLS-1$
-			} else {
-				if (result instanceof RegionChangedEvent) {
-					fireStructuredDocumentEvent((RegionChangedEvent) result);
-				} else {
-					if (result instanceof RegionsReplacedEvent) {
-						fireStructuredDocumentEvent((RegionsReplacedEvent) result);
-					} else {
-						if (result instanceof StructuredDocumentRegionsReplacedEvent) {
-							// probably more efficient to mark old regions as
-							// 'deleted' at the time
-							// that are determined to be deleted, but I'll do
-							// here
-							// in then central spot
-							// for programming ease.
-							updateDeletedFields((StructuredDocumentRegionsReplacedEvent) result);
-							fireStructuredDocumentEvent((StructuredDocumentRegionsReplacedEvent) result);
-						} else {
-							if (result instanceof NoChangeEvent) {
-								fireStructuredDocumentEvent((NoChangeEvent) result);
-							} else {
-								// if here, this means a new event was created
-								// and not handled here
-								// just send a no event until this issue is
-								// resolved.
-								NoChangeEvent noChangeEvent = new NoChangeEvent(this, requester, changes, start, replacementLength);
-								noChangeEvent.reason = NoChangeEvent.NO_EVENT;
-								fireStructuredDocumentEvent(noChangeEvent);
-								throw new SourceEditingRuntimeException("Program Error: unexpected structured document event: " + result); //$NON-NLS-1$
-							}
-						}
-					}
-				}
-			}
-			if (Debug.perfTest || Debug.perfTestStructuredDocumentOnly) {
-				long stopStreamTime = System.currentTimeMillis();
-				System.out.println("\n\t\t\t\t Total Time for IStructuredDocument event signaling/processing in replaceText: " + (stopStreamTime - startStreamTime)); //$NON-NLS-1$
-			}
-			resumePostNotificationProcessing();
-		}
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.CharSequence#length()
-	 */
-	public int length() {
-
-		return getLength();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocument#makeReadOnly(int,
-	 *      int)
-	 */
-	public void makeReadOnly(int startOffset, int length) {
-
-		// doesn't make sense to have a readonly region of 0 length,
-		// so we'll ignore those requests
-		if (length <= 0)
-			return;
-		String affectedText = this.get(startOffset, length);
-		// a document event for "read only" change ... must
-		// be followed by "no change" structuredDocument event
-		// fDocumentEvent = new DocumentEvent(this, startOffset, length,
-		// affectedText);
-		fireReadOnlyAboutToBeChanged();
-		// if (containsReadOnly(startOffset, length)) {
-		// adjustReadOnlyRegions(startOffset, length);
-		// } else {
-		// we can blindly add category, since no harm done if already
-		// exists.
-		addPositionCategory(READ_ONLY_REGIONS_CATEGORY);
-		Position newPosition = new Position(startOffset, length);
-		try {
-			addPosition(READ_ONLY_REGIONS_CATEGORY, newPosition);
-			// FIXME: need to change API to pass in requester, so this event
-			// can be
-			// created correctly, instead of using null.
-			NoChangeEvent noChangeEvent = new NoChangeEvent(this, null, affectedText, startOffset, length);
-			noChangeEvent.reason = NoChangeEvent.READ_ONLY_STATE_CHANGE;
-			fireReadOnlyStructuredDocumentEvent(noChangeEvent);
-		} catch (BadLocationException e) {
-			// for now, log and ignore. Perhaps later we
-			// could adjust to handle some cases?
-			Logger.logException(("could not create readonly region at " + startOffset + " to " + length), e); //$NON-NLS-1$ //$NON-NLS-2$
-		} catch (BadPositionCategoryException e) {
-			// should never occur, since we add category
-			Logger.logException(e);
-		}
-	}
-
-	/**
-	 * @see com.ibm.sed.structuredDocument.IStructuredDocument#newInstance()
-	 */
-	public IStructuredDocument newInstance() {
-		IStructuredDocument newInstance = StructuredDocumentFactory.getNewStructuredDocumentInstance(getParser().newInstance());
-		((BasicStructuredDocument) newInstance).setReParser(getReParser().newInstance());
-		if (getDocumentPartitioner() instanceof StructuredTextPartitioner) {
-			newInstance.setDocumentPartitioner(((StructuredTextPartitioner) getDocumentPartitioner()).newInstance());
-		}
-		newInstance.setLineDelimiter(getLineDelimiter());
-		if (getEncodingMemento() != null) {
-			newInstance.setEncodingMemento((EncodingMemento) getEncodingMemento().clone());
-		}
-		return newInstance;
-	}
-
-	/*
-	 * (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) {
-		boolean result = false;
-		ITextStore store = getStore();
-		if (store instanceof IRegionComparible) {
-			result = ((IRegionComparible) store).regionMatches(offset, length, stringToCompare);
-		} else {
-			result = get(offset, length).equals(stringToCompare);
-		}
-		return result;
-	}
-
-	public boolean regionMatchesIgnoreCase(int offset, int length, String stringToCompare) {
-		boolean result = false;
-		ITextStore store = getStore();
-		if (store instanceof IRegionComparible) {
-			result = ((IRegionComparible) store).regionMatchesIgnoreCase(offset, length, stringToCompare);
-		} else {
-			result = get(offset, length).equalsIgnoreCase(stringToCompare);
-		}
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension#registerPostNotificationReplace(org.eclipse.jface.text.IDocumentListener,
-	 *      org.eclipse.jface.text.IDocumentExtension.IReplace)
-	 */
-	public void registerPostNotificationReplace(IDocumentListener owner, IDocumentExtension.IReplace replace) {
-		if (fAcceptPostNotificationReplaces) {
-			if (fPostNotificationChanges == null)
-				fPostNotificationChanges = new ArrayList(1);
-			fPostNotificationChanges.add(new RegisteredReplace(owner, replace));
-		}
-	}
-
-	protected void releaseLock() {
-		// do nothing here in super class
-	}
-
-	public void removeDocumentAboutToChangeListener(IModelAboutToBeChangedListener listener) {
-		synchronized (listenerLock) {
-
-			if ((fStructuredDocumentAboutToChangeListeners != null) && (listener != null)) {
-				// if its not in the listeners, we'll ignore the request
-				if (Utilities.contains(fStructuredDocumentAboutToChangeListeners, listener)) {
-					int oldSize = fStructuredDocumentAboutToChangeListeners.length;
-					int newSize = oldSize - 1;
-					Object[] newListeners = new Object[newSize];
-					int index = 0;
-					for (int i = 0; i < oldSize; i++) {
-						if (fStructuredDocumentAboutToChangeListeners[i] == listener) { // ignore
-						} else {
-							// copy old to new if its not the one we are
-							// removing
-							newListeners[index++] = fStructuredDocumentAboutToChangeListeners[i];
-						}
-					}
-					// now that we have a new array, let's switch it for the
-					// old
-					// one
-					fStructuredDocumentAboutToChangeListeners = newListeners;
-				}
-			}
-		}
-	}
-
-	/**
-	 * removeModelChangedListener method comment.
-	 */
-	public void removeDocumentChangedListener(IStructuredDocumentListener listener) {
-		synchronized (listenerLock) {
-
-			if ((fStructuredDocumentChangedListeners != null) && (listener != null)) {
-				// if its not in the listeners, we'll ignore the request
-				if (Utilities.contains(fStructuredDocumentChangedListeners, listener)) {
-					int oldSize = fStructuredDocumentChangedListeners.length;
-					int newSize = oldSize - 1;
-					Object[] newListeners = new Object[newSize];
-					int index = 0;
-					for (int i = 0; i < oldSize; i++) {
-						if (fStructuredDocumentChangedListeners[i] == listener) { // ignore
-						} else {
-							// copy old to new if its not the one we are
-							// removing
-							newListeners[index++] = fStructuredDocumentChangedListeners[i];
-						}
-					}
-					// now that we have a new array, let's switch it for the
-					// old
-					// one
-					fStructuredDocumentChangedListeners = newListeners;
-				}
-			}
-		}
-	}
-
-	public void removeDocumentChangingListener(IStructuredDocumentListener listener) {
-		synchronized (listenerLock) {
-
-			if ((fStructuredDocumentChangingListeners != null) && (listener != null)) {
-				// if its not in the listeners, we'll ignore the request
-				if (Utilities.contains(fStructuredDocumentChangingListeners, listener)) {
-					int oldSize = fStructuredDocumentChangingListeners.length;
-					int newSize = oldSize - 1;
-					Object[] newListeners = new Object[newSize];
-					int index = 0;
-					for (int i = 0; i < oldSize; i++) {
-						if (fStructuredDocumentChangingListeners[i] == listener) { // ignore
-						} else {
-							// copy old to new if its not the one we are
-							// removing
-							newListeners[index++] = fStructuredDocumentChangingListeners[i];
-						}
-					}
-					// now that we have a new array, let's switch it for the
-					// old
-					// one
-					fStructuredDocumentChangingListeners = newListeners;
-				}
-			}
-		}
-	}
-
-	public void removeDocumentListener(IDocumentListener listener) {
-		synchronized (listenerLock) {
-
-			if ((fDocumentListeners != null) && (listener != null)) {
-				// if its not in the listeners, we'll ignore the request
-				if (Utilities.contains(fDocumentListeners, listener)) {
-					int oldSize = fDocumentListeners.length;
-					int newSize = oldSize - 1;
-					IDocumentListener[] newListeners = new IDocumentListener[newSize];
-					int index = 0;
-					for (int i = 0; i < oldSize; i++) {
-						if (fDocumentListeners[i] == listener) { // ignore
-						} else {
-							// copy old to new if its not the one we are
-							// removing
-							newListeners[index++] = fDocumentListeners[i];
-						}
-					}
-					// now that we have a new array, let's switch it for the
-					// old
-					// one
-					fDocumentListeners = newListeners;
-				}
-			}
-		}
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocument#removeDocumentPartitioningListener(org.eclipse.jface.text.IDocumentPartitioningListener)
-	 */
-	public void removeDocumentPartitioningListener(IDocumentPartitioningListener listener) {
-		synchronized (listenerLock) {
-
-			Assert.isNotNull(listener);
-			if (fDocumentPartitioningListeners != null)
-				fDocumentPartitioningListeners.remove(listener);
-		}
-	}
-
-	/**
-	 * Removes the given <code>Position</code> from the document's default
-	 * position category. The default position category is to be defined by
-	 * the implementers. If the position is not part of the document's default
-	 * category nothing happens.
-	 */
-	public void removePosition(Position position) {
-		getPositionManager().removePosition(position);
-	}
-
-	/**
-	 * @see IDocument#removePosition
-	 * @exception BadPositionCategoryException
-	 *                If the category is not defined for the document
-	 */
-	public void removePosition(String category, Position position) throws BadPositionCategoryException {
-		getPositionManager().removePosition(category, position);
-	}
-
-	/**
-	 * @see IDocument#removePositionCategory
-	 * @exception BadPositionCategoryException
-	 *                If the category is not defined for the document
-	 */
-	public void removePositionCategory(String category) throws BadPositionCategoryException {
-		getPositionManager().removePositionCategory(category);
-	}
-
-	/**
-	 * @see IDocument#removePositionUpdater
-	 */
-	public void removePositionUpdater(IPositionUpdater updater) {
-		getPositionManager().removePositionUpdater(updater);
-	}
-
-	/**
-	 * Removes the given document listener from teh document's list of
-	 * prenotified document listeners. If the listener is not registered with
-	 * the document nothing happens.
-	 * <p>
-	 * 
-	 * This method is not for public use, it may only be called by
-	 * implementers of <code>IDocumentAdapter</code> and only if those
-	 * implementers need to implement <code>IDocumentListener</code>.
-	 * 
-	 * @param documentAdapter
-	 *            the listener to be removed
-	 * 
-	 * @see #addPrenotifiedDocumentListener(IDocumentListener)
-	 */
-	public void removePrenotifiedDocumentListener(org.eclipse.jface.text.IDocumentListener documentAdapter) {
-		synchronized (listenerLock) {
-
-			if (Utilities.contains(fPrenotifiedDocumentListeners, documentAdapter)) {
-				int previousSize = fPrenotifiedDocumentListeners.length;
-				if (previousSize > 1) {
-					IDocumentListener[] listeners = new IDocumentListener[previousSize - 1];
-					int previousIndex = 0;
-					int newIndex = 0;
-					while (previousIndex < previousSize) {
-						if (fPrenotifiedDocumentListeners[previousIndex] != documentAdapter)
-							listeners[newIndex++] = fPrenotifiedDocumentListeners[previousIndex];
-						previousIndex++;
-					}
-					fPrenotifiedDocumentListeners = listeners;
-				} else {
-					fPrenotifiedDocumentListeners = null;
-				}
-			}
-		}
-	}
-
-	/**
-	 * This method is for INTERNAL USE ONLY and is NOT API.
-	 * 
-	 * Rebuilds the StructuredDocumentRegion chain from the existing text.
-	 * FileBuffer support does not allow clients to know the document's
-	 * location before the text contents are set.
-	 * 
-	 * @see set(String)
-	 */
-	public void reparse(Object requester) {
-		NewDocumentEvent result = null;
-		stopPostNotificationProcessing();
-		clearReadOnly();
-
-		acquireLock();
-		try {
-			CharSequenceReader subSetTextStoreReader = new CharSequenceReader((CharSequence) getStore(), 0, getStore().getLength());
-			resetParser(subSetTextStoreReader, 0);
-			//
-			setCachedDocumentRegion(getParser().getDocumentRegions());
-			// when starting afresh, our cachedNode should be our firstNode,
-			// so be sure to initialize the firstNode and lastNode
-			initializeFirstAndLastDocumentRegion();
-			StructuredDocumentRegionIterator.setParentDocument(getCachedDocumentRegion(), this);
-		} finally {
-			releaseLock();
-		}
-
-		resumePostNotificationProcessing();
-	}
-
-	/**
-	 * @see IDocument#replace
-	 * @exception BadLocationException
-	 *                If position is not a valid range in the document
-	 */
-	public void replace(int pos, int length, String string) throws BadLocationException {
-		if (Debug.displayWarnings) {
-			System.out.println("Note: IStructuredDocument::replace(int, int, String) .... its better to use replaceText(source, string, int, int) API for structuredDocument updates"); //$NON-NLS-1$
-		}
-		replaceText(this, pos, length, string);
-	}
-
-	/**
-	 * Replace the text with "newText" starting at position "start" for a
-	 * length of "replaceLength".
-	 * <p>
-	 * 
-	 * @param start
-	 *            start offset of text to replace None of the offsets include
-	 *            delimiters of preceeding lines. Offset 0 is the first
-	 *            character of the document.
-	 * @param replaceLength
-	 *            start offset of text to replace
-	 * @param newText
-	 *            start offset of text to replace
-	 *            <p>
-	 *            Implementors have to notify TextChanged listeners after the
-	 *            content has been updated. The TextChangedEvent should be set
-	 *            as follows:
-	 * 
-	 * event.type = SWT.TextReplaced event.start = start of the replaced text
-	 * event.numReplacedLines = number of replaced lines event.numNewLines =
-	 * number of new lines event.replacedLength = length of the replaced text
-	 * event.newLength = length of the new text
-	 * 
-	 * NOTE: numNewLines is the number of inserted lines and numReplacedLines
-	 * is the number of deleted lines based on the change that occurs
-	 * visually. For example:
-	 * 
-	 * replacedText newText numReplacedLines numNewLines "" "\n" 0 1 "\n\n"
-	 * "a" 2 0 "a" "\n\n" 0 2
-	 */
-	/**
-	 * One of the APIs to manipulate the IStructuredDocument in terms of text.
-	 */
-	public StructuredDocumentEvent replaceText(Object requester, int start, int replacementLength, String changes) {
-		return replaceText(requester, start, replacementLength, changes, false);
-	}
-
-	public StructuredDocumentEvent replaceText(Object requester, int start, int replacementLength, String changes, boolean ignoreReadOnlySettings) {
-		return internalReplaceText(requester, start, replacementLength, changes, ignoreReadOnlySettings);
-	}
-
-	void resetParser(int startOffset, int endOffset) {
-
-		RegionParser parser = getParser();
-		ITextStore textStore = getStore();
-		if (textStore instanceof CharSequence) {
-			CharSequenceReader subSetTextStoreReader = new CharSequenceReader((CharSequence) textStore, startOffset, endOffset - startOffset);
-			parser.reset(subSetTextStoreReader, startOffset);
-		} else {
-			String newNodeText = get(startOffset, endOffset - startOffset);
-			parser.reset(newNodeText, startOffset);
-
-		}
-
-	}
-
-	void resetParser(Reader reader, int startOffset) {
-		RegionParser parser = getParser();
-		parser.reset(reader, startOffset);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension#resumePostNotificationProcessing()
-	 */
-	public void resumePostNotificationProcessing() {
-		--fStoppedCount;
-		if (fStoppedCount == 0 && fReentranceCount == 0)
-			executePostNotificationChanges();
-	}
-
-	/**
-	 * @deprecated in superclass in 3.0 - use a FindReplaceDocumentAdapter
-	 *             directly
-	 * @see IDocument#search
-	 */
-	public int search(int startPosition, String findString, boolean forwardSearch, boolean caseSensitive, boolean wholeWord) throws BadLocationException {
-		// (dmw) I added this warning, to know if still being used. I'm not
-		// sure it
-		// works as expected any longer.
-		// but the warning should be removed, once know.
-		Logger.log(Logger.INFO, "WARNING: using unsupported deprecated method 'search'"); //$NON-NLS-1$
-		int offset = -1;
-		IRegion match = new FindReplaceDocumentAdapter(this).find(startPosition, findString, forwardSearch, caseSensitive, wholeWord, false);
-		if (match != null) {
-			offset = match.getOffset();
-		}
-		return offset;
-	}
-
-	/**
-	 * @see IDocument#setText
-	 */
-	public void set(String string) {
-		if (Debug.displayInfo) {
-			System.out.println("Note: IStructuredDocument::setText(String) .... its better to use setText(source, string) API for structuredDocument updates"); //$NON-NLS-1$
-		}
-		setText(null, string);
-	}
-
-	/**
-	 * This may be marked public, but should be packaged protected, once
-	 * refactoring is complete (in other words, not for client use).
-	 */
-	public void setCachedDocumentRegion(IStructuredDocumentRegion structuredRegion) {
-		if (USE_LOCAL_THREAD) {
-			fCurrentDocumnetRegionCache.set(structuredRegion);
-		} else {
-			cachedDocumentRegion = structuredRegion;
-		}
-	}
-
-	/**
-	 * Sets the document's partitioner.
-	 * 
-	 * @see IDocumentPartitioner
-	 */
-	public void setDocumentPartitioner(IDocumentPartitioner partitioner) {
-		Assert.isNotNull(getStore(), "text store must be set before document partitioner"); //$NON-NLS-1$
-		IDocumentPartitioner oldPartioner = null;
-		oldPartioner = getDocumentPartitioner(IStructuredDocument.DEFAULT_STRUCTURED_PARTITIONING);
-		if (oldPartioner != null) {
-			oldPartioner.disconnect();
-		}
-		// some operations, such as convert line delimters, sets the partioner
-		// to null
-		// then resets it when done.
-		if (partitioner != null) {
-			partitioner.connect(this);
-		}
-		setDocumentPartitioner(IStructuredDocument.DEFAULT_STRUCTURED_PARTITIONING, partitioner);
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocumentExtension3#setDocumentPartitioner(java.lang.String,
-	 *      org.eclipse.jface.text.IDocumentPartitioner)
-	 * @since 3.0
-	 */
-	public void setDocumentPartitioner(String partitioning, IDocumentPartitioner partitioner) {
-		if (partitioner == null) {
-			if (fDocumentPartitioners != null) {
-				fDocumentPartitioners.remove(partitioning);
-				if (fDocumentPartitioners.size() == 0)
-					fDocumentPartitioners = null;
-			}
-		} else {
-			if (fDocumentPartitioners == null)
-				fDocumentPartitioners = new HashMap();
-			fDocumentPartitioners.put(partitioning, partitioner);
-		}
-		DocumentPartitioningChangedEvent event = new DocumentPartitioningChangedEvent(this);
-		event.setPartitionChange(partitioning, 0, getLength());
-		fireDocumentPartitioningChanged(event);
-	}
-
-	/**
-	 * @see com.ibm.sed.structuredDocument.IStructuredDocument#setEncodingMemento(EncodingMemento)
-	 */
-	public void setEncodingMemento(EncodingMemento encodingMemento) {
-		this.encodingMemento = encodingMemento;
-	}
-
-	void setFirstDocumentRegion(IStructuredDocumentRegion region) {
-		firstDocumentRegion = region;
-
-	}
-
-	void setLastDocumentRegion(IStructuredDocumentRegion region) {
-		lastDocumentRegion = region;
-
-	}
-
-	/**
-	 * @see IStructuredDocument#setLineDelimiter(String)
-	 */
-	public void setLineDelimiter(String delimiter) {
-		// make sure our preferred delimiter is
-		// one of the legal ones
-		if (Utilities.containsString(getLegalLineDelimiters(), delimiter)) {
-			preferedDelimiter = delimiter;
-		} else {
-			Logger.trace("IStructuredDocument", "Attempt to set linedelimiter to non-legal delimiter"); //$NON-NLS-1$ //$NON-NLS-2$
-			preferedDelimiter = PlatformLineDelimiter;
-		}
-	}
-
-	/**
-	 * Sets the document's line tracker. Must be called at the beginning of
-	 * the constructor.
-	 * 
-	 * @param tracker
-	 *            the document's line tracker
-	 */
-	private void setLineTracker(ILineTracker tracker) {
-		fTracker = tracker;
-	}
-
-	public void setParser(RegionParser newParser) {
-		internal_setParser(newParser);
-	}
-
-	/**
-	 * @param positionManager
-	 *            The positionManager to set.
-	 */
-	// TODO: make private is needed, else remove
-	void setPositionManager(GenericPositionManager positionManager) {
-		fPositionManager = positionManager;
-	}
-
-	/**
-	 * 
-	 */
-	public void setReParser(IStructuredTextReParser newReParser) {
-		fReParser = newReParser;
-		if (fReParser != null) {
-			fReParser.setStructuredDocument(this);
-		}
-	}
-
-	/**
-	 * One of the APIs to manipulate the IStructuredDocument in terms of text.
-	 */
-	public NewModelEvent setText(Object requester, String theString) {
-
-		NewDocumentEvent result = null;
-		stopPostNotificationProcessing();
-		clearReadOnly();
-		// Note: event must be computed before 'fire' method called
-		fDocumentEvent = new DocumentEvent(this, 0, getLength(), theString);
-		fireDocumentAboutToChanged();
-
-		acquireLock();
-
-		try {
-			getStore().set(theString);
-			getTracker().set(theString);
-			//
-			CharSequenceReader subSetTextStoreReader = new CharSequenceReader((CharSequence) getStore(), 0, getStore().getLength());
-			resetParser(subSetTextStoreReader, 0);
-			//
-			setCachedDocumentRegion(getParser().getDocumentRegions());
-			// when starting afresh, our cachedNode should be our firstNode,
-			// so be sure to initialize the firstNode and lastNode
-			initializeFirstAndLastDocumentRegion();
-			StructuredDocumentRegionIterator.setParentDocument(getCachedDocumentRegion(), this);
-		} finally {
-			releaseLock();
-		}
-
-		result = new NewDocumentEvent(this, requester);
-		fireStructuredDocumentEvent(result);
-		resumePostNotificationProcessing();
-		return result;
-	}
-
-	/**
-	 * Sets the document's text store. Must be called at the beginning of the
-	 * constructor.
-	 * 
-	 * @param store
-	 *            the document's text store
-	 */
-	private void setTextStore(ITextStore store) {
-		fStore = store;
-	}
-
-	public void setUndoManager(IStructuredTextUndoManager undoManager) {
-
-		// if the undo manager has already been set, then
-		// fail fast, since changing the undo manager will lead
-		// to unusual results (or at least loss of undo stack).
-		if (fUndoManager != null && fUndoManager != undoManager) {
-			throw new IllegalArgumentException("can not change undo manager once its been set"); //$NON-NLS-1$
-		} else {
-			fUndoManager = undoManager;
-		}
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocumentExtension#startSequentialRewrite(boolean)
-	 * @since 2.0
-	 */
-	public void startSequentialRewrite(boolean normalized) {
-		ITextStore store = new SequentialRewriteTextStore(getStore());
-		setTextStore(store);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension#stopPostNotificationProcessing()
-	 */
-	public void stopPostNotificationProcessing() {
-		++fStoppedCount;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocumentExtension#stopSequentialRewrite()
-	 * @since 2.0
-	 */
-	public void stopSequentialRewrite() {
-		if (getStore() instanceof SequentialRewriteTextStore) {
-			SequentialRewriteTextStore srws = (SequentialRewriteTextStore) getStore();
-			ITextStore source = srws.getSourceStore();
-			setTextStore(source);
-			srws.dispose();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.CharSequence#subSequence(int, int)
-	 */
-	public CharSequence subSequence(int arg0, int arg1) {
-		return get(arg0, arg1);
-	}
-
-	/**
-	 * @param result
-	 */
-	private void updateDeletedFields(StructuredDocumentRegionsReplacedEvent event) {
-		IStructuredDocumentRegionList oldRegions = event.getOldStructuredDocumentRegions();
-		for (int i = 0; i < oldRegions.getLength(); i++) {
-			IStructuredDocumentRegion structuredDocumentRegion = oldRegions.item(i);
-			structuredDocumentRegion.setDeleted(true);
-		}
-
-	}
-
-	/**
-	 * Called by re-parser. Note: this method may be "public" but should only
-	 * be called by re-parsers in the right circumstances.
-	 */
-	public void updateDocumentData(int start, int lengthToReplace, String changes) {
-		stopPostNotificationProcessing();
-		getStore().replace(start, lengthToReplace, changes);
-		try {
-			getTracker().replace(start, lengthToReplace, changes);
-		}
-
-		catch (BadLocationException e) {
-			// should be impossible here, but will log for now
-			Logger.logException(e);
-		}
-		if (fPositionManager != null) {
-			fPositionManager.updatePositions(new DocumentEvent(this, start, lengthToReplace, changes));
-		}
-		resumePostNotificationProcessing();
-	}
-
-	private StructuredDocumentEvent updateModel(Object requester, int start, int lengthToReplace, String changes) {
-		StructuredDocumentEvent result = null;
-		IStructuredTextReParser reParser = getReParser();
-		// initialize the IStructuredTextReParser with the standard data
-		// that's
-		// always needed
-		reParser.initialize(requester, start, lengthToReplace, changes);
-		result = reParser.reparse();
-		// if result is null at this point, then there must be an error, since
-		// even if there
-		// was no change (either disallow due to readonly, or a person pasted
-		// the same thing
-		// they had selected) then a "NoChange" event should have been fired.
-		Assert.isNotNull(result, "no structuredDocument event was created in IStructuredDocument::updateStructuredDocument"); //$NON-NLS-1$
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/BasicStructuredDocumentRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/BasicStructuredDocumentRegion.java
deleted file mode 100644
index a31192c..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/BasicStructuredDocumentRegion.java
+++ /dev/null
@@ -1,688 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.text;
-
-
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.wst.sse.core.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException;
-import org.eclipse.wst.sse.core.internal.Logger;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-import org.eclipse.wst.sse.core.util.Assert;
-import org.eclipse.wst.sse.core.util.Debug;
-import org.eclipse.wst.sse.core.util.Utilities;
-
-
-public class BasicStructuredDocumentRegion extends Object implements IStructuredDocumentRegion {
-	private static final String TEXT_STORE_NOT_ASSIGNED = "text store not assigned yet"; //$NON-NLS-1$
-	private static final String UNDEFINED = "org.eclipse.wst.sse.core.structuredDocument.UNDEFINED"; //$NON-NLS-1$
-
-	private ITextRegionList _regions;
-	private boolean fIsDeleted = false;
-	//private String fType;
-	/**
-	 * allow a pointer back to this nodes model
-	 */
-	private IStructuredDocument fParentDocument;
-	/**
-	 * was this node terminated normally
-	 */
-	// 0 == false, 1 == true
-	private byte hasEnd = 0;
-	protected int length;
-	private IStructuredDocumentRegion next = null;
-	private IStructuredDocumentRegion previous = null;
-	protected int start;
-
-	public BasicStructuredDocumentRegion() {
-		super();
-		_regions = new TextRegionListImpl();
-
-	}
-
-	/**
-	 * Even inside-this class uses of 'regions' should use this method, as
-	 * this is where (soft) memory management/reparsing, etc., will be
-	 * centralized.
-	 */
-	private ITextRegionList _getRegions() {
-
-		return _regions;
-	}
-
-	public void addRegion(ITextRegion aRegion) {
-		_getRegions().add(aRegion);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjust(int)
-	 */
-	public void adjust(int i) {
-		start += i;
-	}
-
-	public void adjustLengthWith(int i) {
-		length += i;
-	}
-
-	public void adjustStart(int i) {
-		start += i;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjustTextLength(int)
-	 */
-	public void adjustTextLength(int i) {
-		// not supported
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#containsOffset(int)
-	 */
-	public boolean containsOffset(int i) {
-
-		return getStartOffset() <= i && i < getEndOffset();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#containsOffset(com.ibm.sed.structured.text.ITextRegion,
-	 *      int)
-	 */
-	public boolean containsOffset(ITextRegion containedRegion, int offset) {
-		return getStartOffset(containedRegion) <= offset && offset < getEndOffset(containedRegion);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#equatePositions(com.ibm.sed.structured.text.ITextRegion)
-	 */
-	public void equatePositions(ITextRegion region) {
-		start = region.getStart();
-		length = region.getLength();
-		//textLength = region.getTextLength();
-
-	}
-
-	/**
-	 * getEnd and getEndOffset are the same only for
-	 * IStructuredDocumentRegions
-	 */
-	public int getEnd() {
-		return start + length;
-	}
-
-	/**
-	 * getEnd and getEndOffset are the same only for
-	 * IStructuredDocumentRegions
-	 */
-	public int getEndOffset() {
-		return getEnd();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getEndOffset(com.ibm.sed.structured.text.ITextRegion)
-	 */
-	public int getEndOffset(ITextRegion containedRegion) {
-		return getStartOffset(containedRegion) + containedRegion.getLength();
-	}
-
-	//	public IStructuredDocumentRegion getFirstNode() {
-	//		IStructuredDocumentRegion aNode = (IStructuredDocumentRegion)
-	// fOwningDocument.getFirstStructuredDocumentRegion();
-	//		return aNode;
-	//	}
-	public ITextRegion getFirstRegion() {
-		if (_getRegions() == null)
-			return null;
-		return _getRegions().get(0);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getFullText()
-	 */
-	public String getFullText() {
-		try {
-			return getParentDocument().get(start, length);
-		} catch (BadLocationException e) {
-			// program error
-			throw new SourceEditingRuntimeException(e);
-		}
-	}
-
-	public String getFullText(ITextRegion aRegion) {
-		String result = null;
-		try {
-			int regionStart = aRegion.getStart();
-			int regionLength = aRegion.getLength();
-			result = fParentDocument.get(start + regionStart, regionLength);
-		} catch (BadLocationException e) {
-			throw new SourceEditingRuntimeException(e);
-		}
-		return result;
-	}
-
-	public String getFullText(String context) {
-		// DMW: looping is faster than enumeration,
-		// so switched around 2/12/03
-		//Enumeration e = getRegions().elements();
-		ITextRegion region = null;
-		String result = ""; //$NON-NLS-1$
-		int length = getRegions().size();
-		for (int i = 0; i < length; i++) {
-			region = getRegions().get(i);
-			if (region.getType() == context)
-				result += getFullText(region);
-		}
-		return result;
-	}
-
-	public ITextRegion getLastRegion() {
-		if (_getRegions() == null)
-			return null;
-		return _getRegions().get(_getRegions().size() - 1);
-	}
-
-	public int getLength() {
-		return length;
-	}
-
-	public IStructuredDocumentRegion getNext() {
-		return next;
-	}
-
-	public int getNumberOfRegions() {
-		return _getRegions().size();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#getDocument()
-	 */
-	public IStructuredDocument getParentDocument() {
-
-		return fParentDocument;
-	}
-
-	public IStructuredDocumentRegion getPrevious() {
-		return previous;
-	}
-
-	/**
-	 * The parameter offset refers to the overall offset in the document.
-	 */
-	public ITextRegion getRegionAtCharacterOffset(int offset) {
-		ITextRegion result = null;
-		if (_getRegions() != 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 (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 _getRegions();
-	}
-
-	/**
-	 * getStart and getStartOffset are the same only for
-	 * IStrucutredDocumentRegions
-	 */
-	public int getStart() {
-		return start;
-	}
-
-	/**
-	 * getStart and getStartOffset are the same only for
-	 * IStrucutredDocumentRegions
-	 */
-	public int getStartOffset() {
-		return getStart();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getStartOffset(com.ibm.sed.structured.text.ITextRegion)
-	 */
-	public int getStartOffset(ITextRegion containedRegion) {
-		// assert: containedRegion can not be null
-		// (might be performance hit if literally put in assert call,
-		// but containedRegion can not be null). Needs to be checked
-		// by calling code.
-		return getStartOffset() + containedRegion.getStart();
-	}
-
-	public String getText() {
-		String result = null;
-		try {
-			if (fParentDocument == null) {
-				// likely to happen during inspecting
-				result = TEXT_STORE_NOT_ASSIGNED;
-			} else {
-				result = fParentDocument.get(start, length);
-			}
-		} catch (BadLocationException e) {
-			throw new SourceEditingRuntimeException(e);
-		}
-		return result;
-	}
-
-	public String getText(ITextRegion aRegion) {
-		// assert: aRegion can not be null
-		// (might be performance hit if literally put in assert call,
-		// but aRegion can not be null). Needs to be checked
-		// by calling code.
-		try {
-			return fParentDocument.get(this.getStartOffset(aRegion), aRegion.getTextLength());
-		} catch (BadLocationException e) {
-			Logger.logException(e);
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns the text of the first region with the matching context type
-	 */
-	public String getText(String context) {
-		// DMW: looping is faster than enumeration,
-		// so switched around 2/12/03
-		//Enumeration e = getRegions().elements();
-		ITextRegion region = null;
-		String result = ""; //$NON-NLS-1$
-		int length = getRegions().size();
-		for (int i = 0; i < length; i++) {
-			region = getRegions().get(i);
-			if (region.getType() == context) {
-				result = getText(region);
-				break;
-			}
-		}
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#getTextEnd()
-	 */
-	public int getTextEnd() {
-
-		//return start + textLength;
-		return start + length;
-	}
-
-	/**
-	 * @return int
-	 */
-	public int getTextEndOffset() {
-		ITextRegion region = _getRegions().get(_getRegions().size() - 1);
-		return getStartOffset() + region.getTextEnd();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getTextEndOffset(com.ibm.sed.structured.text.ITextRegion)
-	 */
-	public int getTextEndOffset(ITextRegion containedRegion) {
-		return getStartOffset(containedRegion) + containedRegion.getTextLength();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#getTextLength()
-	 */
-	public int getTextLength() {
-		//return textLength;
-		return length;
-	}
-
-	/**
-	 * Provides the type of IStructuredDocumentRegion ... not to be confused
-	 * with type of XML node!
-	 */
-	// For now return a String.
-	public String getType() {
-		// for a "named" XML node (e.g. start tag), but type of
-		// flatnode is "named xml node" (which is always the second region).
-		// Therefore, if there's two or more regions, the type for the
-		// flatnode
-		// will be the type of the second region. Otherwise it will be the
-		// type
-		// of the first region.
-		// Note: this can be refined as needed.
-		String result = UNDEFINED; //"IStructuredDocumentRegion.UNDEFINED";
-		// //$NON-NLS-1$
-		// we are assume there is always at least one region in a flatnode!
-		result = getRegions().get(0).getType();
-		// typcially subclassed, if something other than first region is
-		// desired
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocumentRegion#isDeleted()
-	 */
-	public boolean isDeleted() {
-		return fIsDeleted;
-	}
-
-	/**
-	 * 
-	 * @return boolean
-	 */
-	public boolean isEnded() {
-		return (hasEnd == 1);
-	}
-
-	public boolean sameAs(IStructuredDocumentRegion region, int shift) {
-		boolean result = false;
-		// if region == null, we return false;
-		if (region != null) {
-			// if the regions are the same instance, they are equal
-			if (this == region) {
-				result = true;
-			} else {
-				// this is the non-trivial part
-				// note: we change for type first, then start offset and end
-				// offset,
-				// since that would decide many cases right away and avoid the
-				// text comparison
-				if (getType() == region.getType()) {
-					if (sameOffsetsAs(region, shift) && sameTextAs(region, shift)) {
-						result = true;
-					}
-				}
-
-			}
-		}
-		return result;
-	}
-
-	public boolean sameAs(ITextRegion oldRegion, IStructuredDocumentRegion newDocumentRegion, ITextRegion newRegion, int shift) {
-		boolean result = false;
-		// if any region is null, we return false (even if both are!)
-		if ((oldRegion != null) && (newRegion != null)) {
-			// if the regions are the same instance, they are equal
-			if (oldRegion == newRegion) {
-				result = true;
-			} else {
-				// this is the non-trivial part
-				// note: we change for type first, then start offset and end
-				// offset,
-				// since that would decide many cases right away and avoid the
-				// text comparison
-				if (oldRegion.getType() == newRegion.getType()) {
-					if (sameOffsetsAs(oldRegion, newDocumentRegion, newRegion, shift)) {
-						if (sameTextAs(oldRegion, newDocumentRegion, newRegion, shift)) {
-							result = true;
-						}
-					}
-				}
-			}
-
-		}
-
-		return result;
-	}
-
-	private boolean sameOffsetsAs(IStructuredDocumentRegion region, int shift) {
-		if (getStartOffset() == region.getStartOffset() - shift) {
-			if (getEndOffset() == region.getEndOffset() - shift) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	private boolean sameOffsetsAs(ITextRegion oldRegion, IStructuredDocumentRegion documentRegion, ITextRegion newRegion, int shift) {
-		if (getStartOffset(oldRegion) == documentRegion.getStartOffset(newRegion) - shift) {
-			if (getEndOffset(oldRegion) == documentRegion.getEndOffset(newRegion) - shift) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	private boolean sameTextAs(IStructuredDocumentRegion region, int shift) {
-		boolean result = false;
-		try {
-			if (getText().equals(region.getText())) {
-				result = true;
-			}
-		} catch (SourceEditingRuntimeException e) {
-			if (e.getOriginalException() instanceof BadLocationException || e.getOriginalException() instanceof StringIndexOutOfBoundsException) {
-				// this happens normally if document has been deleted from
-				// and therefore regions are not equal
-				result = false;
-			} else {
-				throw e;
-			}
-		}
-
-		return result;
-	}
-
-	private boolean sameTextAs(ITextRegion oldRegion, IStructuredDocumentRegion documentRegion, ITextRegion newRegion, int shift) {
-		boolean result = false;
-		try {
-			if (getText(oldRegion).equals(documentRegion.getText(newRegion))) {
-				result = true;
-			}
-		} catch (SourceEditingRuntimeException e) {
-			if (e.getOriginalException() instanceof BadLocationException) {
-				// this happens normally if document has been deleted from
-				// and therefore regions are not equal
-				result = false;
-			} else {
-				throw e;
-			}
-		}
-
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocumentRegion#setDelete(boolean)
-	 */
-	public void setDeleted(boolean isDeleted) {
-		fIsDeleted = isDeleted;
-
-	}
-
-	/**
-	 * 
-	 * @param newHasEnd
-	 *            boolean
-	 */
-	public void setEnded(boolean newHasEnd) {
-		if (newHasEnd) {
-			hasEnd = 1;
-		} else {
-			hasEnd = 0;
-		}
-	}
-
-	public void setLength(int newLength) {
-		//textLength = newLength;
-		length = newLength;
-	}
-
-	public void setNext(IStructuredDocumentRegion newNext) {
-		next = newNext;
-	}
-
-	public void setParentDocument(IStructuredDocument document) {
-		fParentDocument = document;
-
-	}
-
-	public void setPrevious(IStructuredDocumentRegion newPrevious) {
-		previous = newPrevious;
-	}
-
-	public void setRegions(ITextRegionList containedRegions) {
-		_regions = containedRegions;
-	}
-
-	public void setStart(int newStart) {
-		start = newStart;
-	}
-
-	public String toString() {
-		// 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.
-		// Also note, this method can not be changed, without "breaking"
-		// unit tests, since some of them compare current results to previous
-		// results.
-		String result = null;
-		result = "[" + getStart() + ", " + getEnd() + "] (" + getText() + ")"; //$NON-NLS-4$//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-		return result;
-	}
-
-	private void updateDownStreamRegions(ITextRegion changedRegion, int lengthDifference) {
-		int listLength = _getRegions().size();
-		int startIndex = 0;
-		// first, loop through to find index of where to start
-		for (int i = 0; i < listLength; i++) {
-			ITextRegion region = _getRegions().get(i);
-			if (region == changedRegion) {
-				startIndex = i;
-				break;
-			}
-		}
-		// now, beginning one past the one that was changed, loop
-		// through to end of list, adjusting the start postions.
-		startIndex++;
-		for (int j = startIndex; j < listLength; j++) {
-			ITextRegion region = _getRegions().get(j);
-			region.adjustStart(lengthDifference);
-		}
-	}
-
-	// This is a language specific method (e.g. HTML, Java, Prolog, etc.) so
-	// could/should be made configurable.
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#updateModel(java.lang.Object,
-	 *      com.ibm.sed.structured.text.IStructuredDocumentRegion,
-	 *      java.lang.String, int, int)
-	 */
-	//	public StructuredDocumentEvent updateModel(Object requester, String
-	// changes, int start, int end, IStructuredDocumentRegion flatnode) {
-	public StructuredDocumentEvent updateModel(Object requester, IStructuredDocumentRegion structuredDocumentRegion, String changes, int requestStart, int lengthToReplace) {
-		StructuredDocumentEvent result = null;
-		int lengthDifference = Utilities.calculateLengthDifference(changes, lengthToReplace);
-		// Get the region pointed to by the requestStart postion, and give
-		// that region a chance to effect
-		// the update.
-		ITextRegion region = getRegionAtCharacterOffset(requestStart);
-		// if there is no region, then the requested changes must come right
-		// after the
-		// node (and right after the last region). This happens, for example,
-		// when someone
-		// types something at the end of the document, or more commonly, when
-		// they are right
-		// at the beginning of one node, and the dirty start is therefore
-		// calculated to be the
-		// previous node.
-		// So, in this case, we'll give the last region a chance to see if it
-		// wants to
-		// swallow the requested changes -- but only for inserts -- deletes
-		// and "replaces"
-		// should be reparsed if they are in these border regions, and only if
-		// the
-		if ((region == null) && (lengthToReplace == 0)) {
-			region = _getRegions().get(_getRegions().size() - 1);
-			// make sure the region is contiguous
-			if (getEndOffset(region) == requestStart) {
-				result = region.updateModel(requester, this, changes, requestStart, lengthToReplace);
-			}
-		} else {
-			if (region != null) {
-				//
-				// If the requested change spans more than one region, then
-				// we don't give the region a chance to update.
-				if ((containsOffset(region, requestStart)) && (containsOffset(region, requestStart + lengthToReplace))) {
-					result = region.updateModel(requester, this, changes, requestStart, lengthToReplace);
-				}
-			}
-		}
-		// if result is not null, then we need to update the start and end
-		// postions of the regions that follow this one
-		// if result is null, then apply the flatnode specific checks on what
-		// it can change
-		// (i.e. more than one region, but no change to the node itself)
-		if (result != null) {
-			// That is, a region decided it could handle the change and
-			// created
-			// a region changed event.
-			Assert.isTrue(result instanceof RegionChangedEvent, "Program Error"); //$NON-NLS-1$
-			updateDownStreamRegions(((RegionChangedEvent) result).getRegion(), lengthDifference);
-			// PLUS, we need to update our own node end point (length)
-			setLength(getLength() + lengthDifference);
-		}
-
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/CharSequenceReader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/CharSequenceReader.java
deleted file mode 100644
index 081f630..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/CharSequenceReader.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.text;
-
-import java.io.IOException;
-import java.io.Reader;
-
-public class CharSequenceReader extends Reader {
-	private int fCurrentPosition;
-	private int fMaximumReadOffset;
-
-	private CharSequence fOriginalSource;
-
-	/**
-	 *  
-	 */
-	CharSequenceReader() {
-		super();
-	}
-
-
-	public CharSequenceReader(CharSequence originalSource, int offset, int length) {
-		// ISSUE: should we "fail fast" if requested length is more than there
-		// is?
-		fOriginalSource = originalSource;
-		int startOffset = offset;
-		int maxRequestedOffset = startOffset + length;
-		int maxPossibleOffset = 0 + originalSource.length();
-		fMaximumReadOffset = Math.min(maxRequestedOffset, maxPossibleOffset);
-
-		fCurrentPosition = startOffset;
-
-	}
-
-	/**
-	 * @param lock
-	 */
-	CharSequenceReader(Object lock) {
-		super(lock);
-		// for thread safety, may need to add back locking mechanism
-		// in our custom constructor. This constructor left here just
-		// for a reminder.
-	}
-
-	public void close() throws IOException {
-		// nothing to do when we close
-		// (may be to eventually "unlock" or null out some varibles
-		// just for hygene.
-		// or, perhaps if already closed once throw IOException? for
-		// consistency?
-	}
-
-	/**
-	 * @return Returns the originalSource.
-	 * @deprecated - only temporarily public, should be 'default' eventually
-	 *             or go away altogether.
-	 */
-	public CharSequence getOriginalSource() {
-		return fOriginalSource;
-	}
-
-	public int read() {
-		int result = -1;
-		if (fCurrentPosition < fMaximumReadOffset) {
-			result = fOriginalSource.charAt(fCurrentPosition++);
-		}
-		return result;
-	}
-
-	/**
-	 * Read characters into a portion of an array. This method will block
-	 * until some input is available, an I/O error occurs, or the end of the
-	 * stream is reached.
-	 * 
-	 * @param cbuf
-	 *            Destination buffer
-	 * @param off
-	 *            Offset at which to start storing characters
-	 * @param len
-	 *            Maximum number of characters to read
-	 * 
-	 * @return The number of characters read, or -1 if the end of the stream
-	 *         has been reached
-	 * 
-	 * @exception IOException
-	 *                If an I/O error occurs
-	 */
-
-	public int read(char[] cbuf, int off, int len) throws IOException {
-		int charsToRead = -1;
-		// if already over max, just return -1
-		// remember, currentPosition is what is getting ready to be read
-		// (that is, its already been incremented in read()).
-		if (fCurrentPosition < fMaximumReadOffset) {
-
-
-			int buffMaxToRead = cbuf.length - off;
-			int minRequested = Math.min(buffMaxToRead, len);
-			int lengthRemaining = fMaximumReadOffset - fCurrentPosition;
-			charsToRead = Math.min(minRequested, lengthRemaining);
-
-
-			CharSequence seq = fOriginalSource.subSequence(fCurrentPosition, fCurrentPosition + charsToRead);
-			// for now, hard assumption that original is a String since source
-			// is assumed to be document, or text store
-			String seqString = (String) seq;
-			seqString.getChars(0, seqString.length(), cbuf, off);
-
-
-
-			fCurrentPosition = fCurrentPosition + charsToRead;
-
-
-		}
-		return charsToRead;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/CoreNodeList.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/CoreNodeList.java
deleted file mode 100644
index c7b40e6..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/CoreNodeList.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.text;
-
-
-
-import java.util.Enumeration;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegionList;
-
-
-public class CoreNodeList implements IStructuredDocumentRegionList {
-	int countedLength;
-	int currentIndex = -1;
-
-	//com.ibm.sed.interfaces.core.Core
-	IStructuredDocumentRegion[] flatNodes;
-	//com.ibm.sed.interfaces.core.Core
-	IStructuredDocumentRegion head;
-
-	/**
-	 * CoreNodeList constructor comment.
-	 */
-	public CoreNodeList() {
-		super();
-		// create an array, even if zero length
-		flatNodes = new IStructuredDocumentRegion[0];
-	}
-
-	public CoreNodeList(IStructuredDocumentRegion newHead) {
-		super();
-		// save head
-		head = newHead;
-		int count = 0;
-		IStructuredDocumentRegion countNode = newHead;
-		// we have to go through the list once, to get its
-		// length in order to create the array
-		while (countNode != null) {
-			count++;
-			countNode = countNode.getNext();
-		}
-		// create an array, even if zero length
-		flatNodes = new IStructuredDocumentRegion[count];
-		// start countNode over again, so to speak.
-		countNode = newHead;
-		count = 0;
-		while (countNode != null) {
-			flatNodes[count++] = countNode;
-			countNode = countNode.getNext();
-		}
-		if (count > 0) {
-			currentIndex = 0;
-			// else it stays at -1 initialized at object creation
-			//
-			// save length
-			countedLength = count;
-		}
-	}
-
-	public CoreNodeList(IStructuredDocumentRegion start, IStructuredDocumentRegion end) {
-		super();
-		// save head
-		head = start;
-		int count = 0;
-		IStructuredDocumentRegion countNode = start;
-		if ((start == null) || (end == null)) {
-			// error condition
-			//throw new IllegalArgumentException("Must provide start and end
-			// nodes to construct CoreNodeList");
-		} else {
-			count = 1;
-			while ((countNode != null) && (countNode != end)) {
-				count++;
-				countNode = countNode.getNext();
-			}
-		}
-		// if we ended because the last one was null,
-		// backup one.
-		if (countNode == null)
-			count--;
-		if (count < 0) {
-			count = 0;
-		}
-		flatNodes = new IStructuredDocumentRegion[count];
-		if (count > 0) {
-			flatNodes[0] = countNode = start;
-			for (int i = 1; i < count; i++) {
-				flatNodes[i] = flatNodes[i - 1].getNext();
-			}
-
-		}
-		currentIndex = 0;
-		countedLength = count;
-	}
-
-	public Enumeration elements() {
-		StructuredDocumentRegionEnumeration result = null;
-		if ((flatNodes != null) && (flatNodes.length > 0))
-			result = new StructuredDocumentRegionEnumeration(flatNodes[0], flatNodes[flatNodes.length - 1]);
-		else
-			result = new StructuredDocumentRegionEnumeration(null);
-		return result;
-	}
-
-	public int getLength() {
-		return flatNodes.length;
-	}
-
-	public boolean includes(Object o) {
-		if (flatNodes == null)
-			return false;
-		for (int i = 0; i < flatNodes.length; i++)
-			if (flatNodes[i] == o)
-				return true;
-		return false;
-	}
-
-	public IStructuredDocumentRegion item(int i) {
-		return flatNodes[i];
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/DocumentInternalStateRule.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/DocumentInternalStateRule.java
deleted file mode 100644
index 76c4759..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/DocumentInternalStateRule.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.sse.core.internal.text;
-
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-
-
-public class DocumentInternalStateRule implements ISchedulingRule {
-
-	private final static int READ_STATE = 2;
-	public final static DocumentInternalStateRule READ_RULE = new DocumentInternalStateRule(READ_STATE);
-
-	private final static int WRITE_STATE = 1;
-	public final static DocumentInternalStateRule WRITE_RULE = new DocumentInternalStateRule(WRITE_STATE);
-	private int fState;
-
-	/**
-	 *  
-	 */
-	public DocumentInternalStateRule(int state) {
-		super();
-		fState = state;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.jobs.ISchedulingRule#contains(org.eclipse.core.runtime.jobs.ISchedulingRule)
-	 */
-	public boolean contains(ISchedulingRule rule) {
-		boolean result = (rule instanceof DocumentInternalStateRule);
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.jobs.ISchedulingRule#isConflicting(org.eclipse.core.runtime.jobs.ISchedulingRule)
-	 */
-	public boolean isConflicting(ISchedulingRule rule) {
-		boolean result = (fState == WRITE_STATE) && (rule instanceof DocumentInternalStateRule);
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/GenericPositionManager.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/GenericPositionManager.java
deleted file mode 100644
index da26c4c..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/GenericPositionManager.java
+++ /dev/null
@@ -1,401 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.sse.core.internal.text;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.BadPositionCategoryException;
-import org.eclipse.jface.text.DefaultPositionUpdater;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IPositionUpdater;
-import org.eclipse.jface.text.Position;
-import org.eclipse.wst.sse.core.util.Assert;
-
-
-
-public class GenericPositionManager {
-	private CharSequence fCharSequence;
-
-
-
-	private Map fPositions;
-	/** All registered document position updaters */
-	private List fPositionUpdaters;
-
-	/**
-	 * don't allow instantiation with out document pointer
-	 *  
-	 */
-	private GenericPositionManager() {
-		super();
-	}
-
-	/**
-	 *  
-	 */
-	public GenericPositionManager(CharSequence charSequence) {
-		this();
-		// we only use charSequence for "length", to
-		// made more generic than "document" even "text store"
-		fCharSequence = charSequence;
-		completeInitialization();
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocument#addPosition(org.eclipse.jface.text.Position)
-	 */
-	public void addPosition(Position position) throws BadLocationException {
-		try {
-			addPosition(IDocument.DEFAULT_CATEGORY, position);
-		} catch (BadPositionCategoryException e) {
-		}
-	}
-
-
-
-	/*
-	 * @see org.eclipse.jface.text.IDocument#addPosition(java.lang.String,
-	 *      org.eclipse.jface.text.Position)
-	 */
-	public void addPosition(String category, Position position) throws BadLocationException, BadPositionCategoryException {
-
-		if ((0 > position.offset) || (0 > position.length) || (position.offset + position.length > getDocumentLength()))
-			throw new BadLocationException();
-
-		if (category == null)
-			throw new BadPositionCategoryException();
-
-		List list = (List) fPositions.get(category);
-		if (list == null)
-			throw new BadPositionCategoryException();
-
-		list.add(computeIndexInPositionList(list, position.offset), position);
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocument#addPositionCategory(java.lang.String)
-	 */
-	public void addPositionCategory(String category) {
-
-		if (category == null)
-			return;
-
-		if (!containsPositionCategory(category))
-			fPositions.put(category, new ArrayList());
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocument#addPositionUpdater(org.eclipse.jface.text.IPositionUpdater)
-	 */
-	public void addPositionUpdater(IPositionUpdater updater) {
-		insertPositionUpdater(updater, fPositionUpdaters.size());
-	}
-
-
-	/**
-	 * Initializes document listeners, positions, and position updaters. Must
-	 * be called inside the constructor after the implementation plug-ins have
-	 * been set.
-	 */
-	protected void completeInitialization() {
-
-		fPositions = new HashMap();
-		fPositionUpdaters = new ArrayList();
-
-		addPositionCategory(IDocument.DEFAULT_CATEGORY);
-		addPositionUpdater(new DefaultPositionUpdater(IDocument.DEFAULT_CATEGORY));
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocument#computeIndexInCategory(java.lang.String,
-	 *      int)
-	 */
-	public int computeIndexInCategory(String category, int offset) throws BadLocationException, BadPositionCategoryException {
-
-		if (0 > offset || offset > getDocumentLength())
-			throw new BadLocationException();
-
-		List c = (List) fPositions.get(category);
-		if (c == null)
-			throw new BadPositionCategoryException();
-
-		return computeIndexInPositionList(c, offset);
-	}
-
-
-	/**
-	 * Computes the index in the list of positions at which a position with
-	 * the given offset would be inserted. The position is supposed to become
-	 * the first in this list of all positions with the same offset.
-	 * 
-	 * @param positions
-	 *            the list in which the index is computed
-	 * @param offset
-	 *            the offset for which the index is computed
-	 * @return the computed index
-	 * 
-	 * @see IDocument#computeIndexInCategory(String, int)
-	 */
-	protected int computeIndexInPositionList(List positions, int offset) {
-
-		if (positions.size() == 0)
-			return 0;
-
-		int left = 0;
-		int right = positions.size() - 1;
-		int mid = 0;
-		Position p = null;
-
-		while (left < right) {
-
-			mid = (left + right) / 2;
-
-			p = (Position) positions.get(mid);
-			if (offset < p.getOffset()) {
-				if (left == mid)
-					right = left;
-				else
-					right = mid - 1;
-			} else if (offset > p.getOffset()) {
-				if (right == mid)
-					left = right;
-				else
-					left = mid + 1;
-			} else if (offset == p.getOffset()) {
-				left = right = mid;
-			}
-
-		}
-
-		int pos = left;
-		p = (Position) positions.get(pos);
-		if (offset > p.getOffset()) {
-			// append to the end
-			pos++;
-		} else {
-			// entry will became the first of all entries with the same
-			// offset
-			do {
-				--pos;
-				if (pos < 0)
-					break;
-				p = (Position) positions.get(pos);
-			} while (offset == p.getOffset());
-			++pos;
-		}
-
-		Assert.isTrue(0 <= pos && pos <= positions.size());
-
-		return pos;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocument#containsPosition(java.lang.String,
-	 *      int, int)
-	 */
-	public boolean containsPosition(String category, int offset, int length) {
-
-		if (category == null)
-			return false;
-
-		List list = (List) fPositions.get(category);
-		if (list == null)
-			return false;
-
-		int size = list.size();
-		if (size == 0)
-			return false;
-
-		int index = computeIndexInPositionList(list, offset);
-		if (index < size) {
-			Position p = (Position) list.get(index);
-			while (p != null && p.offset == offset) {
-				if (p.length == length)
-					return true;
-				++index;
-				p = (index < size) ? (Position) list.get(index) : null;
-			}
-		}
-
-		return false;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocument#containsPositionCategory(java.lang.String)
-	 */
-	public boolean containsPositionCategory(String category) {
-		if (category != null)
-			return fPositions.containsKey(category);
-		return false;
-	}
-
-
-
-	public int getDocumentLength() {
-		return fCharSequence.length();
-	}
-
-	/**
-	 * Returns all positions managed by the document grouped by category.
-	 * 
-	 * @return the document's positions
-	 */
-	protected Map getDocumentManagedPositions() {
-		return fPositions;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocument#getPositionCategories()
-	 */
-	public String[] getPositionCategories() {
-		String[] categories = new String[fPositions.size()];
-		Iterator keys = fPositions.keySet().iterator();
-		for (int i = 0; i < categories.length; i++)
-			categories[i] = (String) keys.next();
-		return categories;
-	}
-
-
-	public Position[] getPositions(String category) throws BadPositionCategoryException {
-
-		if (category == null)
-			throw new BadPositionCategoryException();
-
-		List c = (List) fPositions.get(category);
-		if (c == null)
-			throw new BadPositionCategoryException();
-
-		Position[] positions = new Position[c.size()];
-		c.toArray(positions);
-		return positions;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocument#getPositionUpdaters()
-	 */
-	public IPositionUpdater[] getPositionUpdaters() {
-		IPositionUpdater[] updaters = new IPositionUpdater[fPositionUpdaters.size()];
-		fPositionUpdaters.toArray(updaters);
-		return updaters;
-	}
-
-
-
-	/*
-	 * @see org.eclipse.jface.text.IDocument#insertPositionUpdater(org.eclipse.jface.text.IPositionUpdater,
-	 *      int)
-	 */
-	public void insertPositionUpdater(IPositionUpdater updater, int index) {
-
-		for (int i = fPositionUpdaters.size() - 1; i >= 0; i--) {
-			if (fPositionUpdaters.get(i) == updater)
-				return;
-		}
-
-		if (index == fPositionUpdaters.size())
-			fPositionUpdaters.add(updater);
-		else
-			fPositionUpdaters.add(index, updater);
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocument#removePosition(org.eclipse.jface.text.Position)
-	 */
-	public void removePosition(Position position) {
-		try {
-			removePosition(IDocument.DEFAULT_CATEGORY, position);
-		} catch (BadPositionCategoryException e) {
-		}
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocument#removePosition(java.lang.String,
-	 *      org.eclipse.jface.text.Position)
-	 */
-	public void removePosition(String category, Position position) throws BadPositionCategoryException {
-
-		if (position == null)
-			return;
-
-		if (category == null)
-			throw new BadPositionCategoryException();
-
-		List c = (List) fPositions.get(category);
-		if (c == null)
-			throw new BadPositionCategoryException();
-
-		// remove based on identity not equality
-		int size = c.size();
-		for (int i = 0; i < size; i++) {
-			if (position == c.get(i)) {
-				c.remove(i);
-				return;
-			}
-		}
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocument#removePositionCategory(java.lang.String)
-	 */
-	public void removePositionCategory(String category) throws BadPositionCategoryException {
-
-		if (category == null)
-			return;
-
-		if (!containsPositionCategory(category))
-			throw new BadPositionCategoryException();
-
-		fPositions.remove(category);
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocument#removePositionUpdater(org.eclipse.jface.text.IPositionUpdater)
-	 */
-	public void removePositionUpdater(IPositionUpdater updater) {
-		for (int i = fPositionUpdaters.size() - 1; i >= 0; i--) {
-			if (fPositionUpdaters.get(i) == updater) {
-				fPositionUpdaters.remove(i);
-				return;
-			}
-		}
-	}
-
-
-	/**
-	 * Updates all positions of all categories to the change described by the
-	 * document event. All registered document updaters are called in the
-	 * sequence they have been arranged. Uses a robust iterator.
-	 * 
-	 * @param event
-	 *            the document event describing the change to which to adapt
-	 *            the positions
-	 */
-	protected void updatePositions(DocumentEvent event) {
-		List list = new ArrayList(fPositionUpdaters);
-		Iterator e = list.iterator();
-		while (e.hasNext()) {
-			IPositionUpdater u = (IPositionUpdater) e.next();
-			u.update(event);
-		}
-	}
-
-
-}
-
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/IExecutionDelegatable.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/IExecutionDelegatable.java
deleted file mode 100644
index 5e31410..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/IExecutionDelegatable.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.text;
-
-import org.eclipse.wst.sse.core.document.IExecutionDelegate;
-
-public interface IExecutionDelegatable {
-
-	void setExecutionDelegate(IExecutionDelegate executionDelegate);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/IRegionComparible.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/IRegionComparible.java
deleted file mode 100644
index 3230439..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/IRegionComparible.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.text;
-
-public interface IRegionComparible {
-	boolean regionMatches(int offset, int length, String stringToCompare);
-
-	boolean regionMatchesIgnoreCase(int offset, int length, String stringToCompare);
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/JobSafeStructuredDocument.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/JobSafeStructuredDocument.java
deleted file mode 100644
index 18bc4d2..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/JobSafeStructuredDocument.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.text;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.jobs.ILock;
-import org.eclipse.wst.sse.core.document.IExecutionDelegate;
-import org.eclipse.wst.sse.core.document.ILockable;
-import org.eclipse.wst.sse.core.events.NewModelEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.parser.RegionParser;
-
-
-
-public class JobSafeStructuredDocument extends BasicStructuredDocument implements IExecutionDelegatable, ILockable {
-
-	private IExecutionDelegate fExecutionDelegate;
-	private ILock fLockable = null;
-
-	public JobSafeStructuredDocument() {
-		super();
-	}
-
-
-	public JobSafeStructuredDocument(RegionParser parser) {
-		super(parser);
-	}
-
-
-	/**
-	 *  
-	 */
-	protected final void acquireLock() {
-		getLockObject().acquire();
-	}
-
-	private IExecutionDelegate getExecutionDelegate() {
-		return fExecutionDelegate;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.ILockable#getLock()
-	 */
-
-	public ILock getLockObject() {
-		if (fLockable == null) {
-			fLockable = Platform.getJobManager().newLock();
-		}
-		return fLockable;
-	}
-
-
-	/**
-	 *  
-	 */
-	protected final void releaseLock() {
-		getLockObject().release();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#replaceText(java.lang.Object,
-	 *      int, int, java.lang.String, boolean)
-	 */
-	public StructuredDocumentEvent replaceText(final Object requester, final int start, final int replacementLength, final String changes, final boolean ignoreReadOnlySettings) {
-		Object threadResult = null;
-		StructuredDocumentEvent event = null;
-		if (getExecutionDelegate() == null) {
-			// if the delegate has not been set, we execute on current
-			// thread, like "normal". This is the case for normal
-			// non-editor
-			// use (which should still, ultimately, be protected by
-			// a scheduling rule).
-			event = super.replaceText(requester, start, replacementLength, changes, ignoreReadOnlySettings);
-		} else {
-			// If document is being used by an editor, a runnable is
-			// created,
-			// even if later (in the execution delegate instance) it is
-			// decided
-			// nothing special is needed (that is, in fact being called
-			// from
-			// editor's display thread, in which case its just executed)
-			final Object[] resultSlot = new Object[1];
-			Runnable runnable = new Runnable() {
-				public void run() {
-					try {
-						resultSlot[0] = JobSafeStructuredDocument.super.replaceText(requester, start, replacementLength, changes, ignoreReadOnlySettings);
-					} catch (Throwable e) {
-						resultSlot[0] = e;
-					}
-				}
-			};
-			// strongly assumes synchronous call, to "wait" for
-			// results
-			// basically just routes to Display.synchExec(runnable),
-			// if not already running on display thread.
-			getExecutionDelegate().execute(runnable);
-
-			// this remembering and re-throwing of exception is just to
-			// get an
-			// exception that occurred on one thread, to be thrown on
-			// callers
-			// thread.
-			if (resultSlot[0] instanceof Throwable) {
-				throw new RuntimeException((Throwable) resultSlot[0]);
-			} else {
-				event = (StructuredDocumentEvent) resultSlot[0];
-			}
-		}
-		return event;
-	}
-
-	public void setExecutionDelegate(IExecutionDelegate delegate) {
-		fExecutionDelegate = delegate;
-	}
-
-
-	public NewModelEvent setText(final Object requester, final String theString) {
-		NewModelEvent event = null;
-		Object threadResult = null;
-		if (getExecutionDelegate() == null) {
-			// if the delegate has not been set, we execute on current
-			// thread, like "normal". This is the case for normal
-			// non-editor
-			// use (which should still, ultimately, be protected by
-			// a scheduling rule).
-			event = super.setText(requester, theString);
-		} else {
-			// If document is being used by an editor, a runnable is
-			// created,
-			// even if later (in the execution delegate instance) it is
-			// decided
-			// nothing special is needed (that is, in fact being called
-			// from
-			// editor's display thread, in which case its just executed)
-			final Object[] resultSlot = new Object[1];
-			Runnable runnable = new Runnable() {
-				public void run() {
-					try {
-						resultSlot[0] = JobSafeStructuredDocument.super.setText(requester, theString);
-					} catch (Throwable e) {
-						resultSlot[0] = e;
-					}
-				}
-			};
-			// strongly assumes synchronous call, to "wait" for
-			// results
-			// basically just routes to Display.synchExec(runnable),
-			// if not already running on display thread.
-			getExecutionDelegate().execute(runnable);
-
-			// this remembering and re-throwing of exception is just to
-			// get an
-			// exception that occurred on one thread, to be thrown on
-			// callers
-			// thread.
-			if (resultSlot[0] instanceof Throwable) {
-				throw new RuntimeException((Throwable) resultSlot[0]);
-			} else {
-				event = (NewModelEvent) resultSlot[0];
-			}
-		}
-		return event;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/MinimalDocument.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/MinimalDocument.java
deleted file mode 100644
index 95a2e20..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/MinimalDocument.java
+++ /dev/null
@@ -1,423 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.text;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.BadPositionCategoryException;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.jface.text.IDocumentPartitioningListener;
-import org.eclipse.jface.text.IPositionUpdater;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.Position;
-import org.eclipse.wst.common.encoding.EncodingMemento;
-import org.eclipse.wst.sse.core.events.IModelAboutToBeChangedListener;
-import org.eclipse.wst.sse.core.events.IStructuredDocumentListener;
-import org.eclipse.wst.sse.core.events.NewModelEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.NotImplementedException;
-import org.eclipse.wst.sse.core.internal.document.NullStructuredDocumentPartitioner;
-import org.eclipse.wst.sse.core.parser.RegionParser;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegionList;
-import org.eclipse.wst.sse.core.text.IStructuredTextReParser;
-import org.eclipse.wst.sse.core.undo.IStructuredTextUndoManager;
-
-
-/**
- * Purely a dummy "marker" instance for StructuredDocumentRegions which are
- * created temorarily in the course of re-parsing. Primarily a place holder,
- * but can be needed to get text from.
- */
-public class MinimalDocument implements IStructuredDocument {
-	private SubSetTextStore data;
-
-	/**
-	 * Marked private to be sure never created without data being initialized.
-	 *  
-	 */
-	private MinimalDocument() {
-		super();
-	}
-
-	public MinimalDocument(SubSetTextStore initialContents) {
-		this();
-		data = initialContents;
-	}
-
-	public void addDocumentAboutToChangeListener(IModelAboutToBeChangedListener listener) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void addDocumentChangedListener(IStructuredDocumentListener listener) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void addDocumentChangingListener(IStructuredDocumentListener listener) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void addDocumentListener(IDocumentListener listener) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void addDocumentPartitioningListener(IDocumentPartitioningListener listener) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void addPosition(Position position) throws BadLocationException {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void addPosition(String category, Position position) throws BadLocationException, BadPositionCategoryException {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void addPositionCategory(String category) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void addPositionUpdater(IPositionUpdater updater) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void addPrenotifiedDocumentListener(IDocumentListener documentAdapter) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void clearReadOnly(int startOffset, int length) {
-		// TODO: this is called from notifier loop inappropriately
-		//	throw new NotImplementedException("intentionally not implemented");
-	}
-
-	public int computeIndexInCategory(String category, int offset) throws BadLocationException, BadPositionCategoryException {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public int computeNumberOfLines(String text) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public ITypedRegion[] computePartitioning(int offset, int length) throws BadLocationException {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public boolean containsPosition(String category, int offset, int length) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public boolean containsPositionCategory(String category) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public boolean containsReadOnly(int startOffset, int length) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void fireNewDocument(Object requester) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public String get() {
-		String result = null;
-		result = data.get(0, data.getLength());
-		return result;
-	}
-
-	public String get(int offset, int length) throws BadLocationException {
-		String result = null;
-		try {
-			result = data.get(offset, length);
-		} catch (StringIndexOutOfBoundsException e) {
-			throw new BadLocationException();
-		}
-		return result;
-	}
-
-	public Object getAdapter(Class adapter) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public char getChar(int offset) throws BadLocationException {
-		return data.get(offset);
-	}
-
-	public String getContentType(int offset) throws BadLocationException {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public IDocumentPartitioner getDocumentPartitioner() {
-		// temp fix
-		return new NullStructuredDocumentPartitioner();
-		//		throw new NotImplementedException("intentionally not implemented");
-	}
-
-	public EncodingMemento getEncodingMemento() {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public IStructuredDocumentRegion getFirstStructuredDocumentRegion() {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public IStructuredDocumentRegion getLastStructuredDocumentRegion() {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public String[] getLegalContentTypes() {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public String[] getLegalLineDelimiters() {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public int getLength() {
-		return data.getLength();
-	}
-
-	public String getLineDelimiter() {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public String getLineDelimiter(int line) throws BadLocationException {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public IRegion getLineInformation(int line) throws BadLocationException {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public IRegion getLineInformationOfOffset(int offset) throws BadLocationException {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public int getLineLength(int line) throws BadLocationException {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public int getLineOffset(int line) throws BadLocationException {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public int getLineOfOffset(int offset) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public int getNumberOfLines() {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public int getNumberOfLines(int offset, int length) throws BadLocationException {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public RegionParser getParser() {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public ITypedRegion getPartition(int offset) throws BadLocationException {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public String[] getPositionCategories() {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public Position[] getPositions(String category) throws BadPositionCategoryException {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public IPositionUpdater[] getPositionUpdaters() {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public IStructuredDocumentRegion getRegionAtCharacterOffset(int offset) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public IStructuredDocumentRegionList getRegionList() {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public IStructuredTextReParser getReParser() {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public String getText() {
-		return data.get(0, data.getLength());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#getUndoManager()
-	 */
-	public IStructuredTextUndoManager getUndoManager() {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void insertPositionUpdater(IPositionUpdater updater, int index) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void makeReadOnly(int startOffset, int length) {
-		// TODO: this is called from notifier loop inappropriately
-		//	throw new NotImplementedException("intentionally not implemented");
-	}
-
-	public IStructuredDocument newInstance() {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension#registerPostNotificationReplace(org.eclipse.jface.text.IDocumentListener,
-	 *      org.eclipse.jface.text.IDocumentExtension.IReplace)
-	 */
-	public void registerPostNotificationReplace(IDocumentListener owner, IReplace replace) throws UnsupportedOperationException {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$		
-	}
-
-	public void removeDocumentAboutToChangeListener(IModelAboutToBeChangedListener listener) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void removeDocumentChangedListener(IStructuredDocumentListener listener) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void removeDocumentChangingListener(IStructuredDocumentListener listener) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void removeDocumentListener(IDocumentListener listener) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void removeDocumentPartitioningListener(IDocumentPartitioningListener listener) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void removePosition(Position position) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void removePosition(String category, Position position) throws BadPositionCategoryException {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void removePositionCategory(String category) throws BadPositionCategoryException {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void removePositionUpdater(IPositionUpdater updater) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void removePrenotifiedDocumentListener(IDocumentListener documentAdapter) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void replace(int offset, int length, String text) throws BadLocationException {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-		//		data.replace(offset, length, text);
-	}
-
-	public StructuredDocumentEvent replaceText(Object source, int oldStart, int replacementLength, String requestedChange) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#replaceText(java.lang.Object,
-	 *      int, int, java.lang.String, boolean)
-	 */
-	public StructuredDocumentEvent replaceText(Object source, int oldStart, int replacementLength, String requestedChange, boolean ignoreReadOnlySetting) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension#resumePostNotificationProcessing()
-	 */
-	public void resumePostNotificationProcessing() {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public int search(int startOffset, String findString, boolean forwardSearch, boolean caseSensitive, boolean wholeWord) throws BadLocationException {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void set(String text) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-		//		data.set(text);
-	}
-
-	public void setDocumentPartitioner(IDocumentPartitioner partitioner) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void setEncodingMemento(EncodingMemento encodingMemento) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public void setLineDelimiter(String delimiter) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	public NewModelEvent setText(Object requester, String allText) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#setUndoManager(org.eclipse.wst.sse.core.undo.StructuredTextUndoManager)
-	 */
-	public void setUndoManager(IStructuredTextUndoManager undoManager) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension#startSequentialRewrite(boolean)
-	 */
-	public void startSequentialRewrite(boolean normalize) {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension#stopPostNotificationProcessing()
-	 */
-	public void stopPostNotificationProcessing() {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension#stopSequentialRewrite()
-	 */
-	public void stopSequentialRewrite() {
-		throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentReParser.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentReParser.java
deleted file mode 100644
index fba1d08..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentReParser.java
+++ /dev/null
@@ -1,1660 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.text;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.FindReplaceDocumentAdapter;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.wst.sse.core.events.NoChangeEvent;
-import org.eclipse.wst.sse.core.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.events.RegionsReplacedEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentRegionsReplacedEvent;
-import org.eclipse.wst.sse.core.internal.Logger;
-import org.eclipse.wst.sse.core.parser.BlockTagParser;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.IStructuredTextReParser;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionCollection;
-import org.eclipse.wst.sse.core.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-import org.eclipse.wst.sse.core.util.Debug;
-import org.eclipse.wst.sse.core.util.StringUtils;
-import org.eclipse.wst.sse.core.util.Utilities;
-
-
-/**
- * This class provides a centralized place to put "reparsing" logic. This is
- * the logic that reparses the text incrementally, as a user types in new
- * characters, or DOM nodes are inserted or deleted. Note: it is not a thread
- * safe class.
- */
-public class StructuredDocumentReParser implements IStructuredTextReParser {
-	protected IStructuredDocumentRegion dirtyEnd = null;
-	protected IStructuredDocumentRegion dirtyStart = null;
-	final private String doubleQuote = new String(new char[]{'\"'});
-	protected final CoreNodeList EMPTY_LIST = new CoreNodeList();
-	protected String fChanges;
-	protected String fDeletedText;
-
-	private FindReplaceDocumentAdapter fFindReplaceDocumentAdapter = null;
-	protected int fLengthDifference;
-	protected int fLengthToReplace;
-	protected Object fRequester;
-	protected int fStart;
-	// note: this is the impl class of IStructuredDocument, not the interface
-	// FUTURE_TO_DO: I believe some of these can be made private now.?
-	protected BasicStructuredDocument fStructuredDocument;
-
-	/**
-	 * variable used in anticiapation of multithreading
-	 */
-	protected boolean isParsing;
-	final private String singleQuote = new String(new char[]{'\''});
-
-	public StructuredDocumentReParser() {
-		super();
-	}
-
-	public StructuredDocumentEvent _checkBlockNodeList(List blockTagList) {
-		StructuredDocumentEvent result = null;
-		if (blockTagList != null) {
-			for (int i = 0; i < blockTagList.size(); i++) {
-				org.eclipse.wst.sse.core.parser.BlockMarker blockTag = (org.eclipse.wst.sse.core.parser.BlockMarker) blockTagList.get(i);
-				String tagName = blockTag.getTagName();
-				result = checkForCriticalName("<" + tagName); //$NON-NLS-1$
-				if (result != null)
-					break;
-				result = checkForCriticalName("</" + tagName); //$NON-NLS-1$
-				if (result != null)
-					break;
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Common utility for checking for critical word such as " <SCRIPT>"
-	 */
-	private StructuredDocumentEvent _checkForCriticalWord(String criticalTarget, boolean checkEnd) {
-		StructuredDocumentEvent result = null;
-		int documentLength = fStructuredDocument.getLength();
-		int propLen = fLengthToReplace;
-		if (propLen > documentLength)
-			propLen = documentLength;
-		int startNeighborhood = fStart - criticalTarget.length();
-		int adjustInsert = 0;
-		if (startNeighborhood < 0) {
-			adjustInsert = 0 - startNeighborhood;
-			startNeighborhood = 0;
-		}
-		int endNeighborhood = fStart + fLengthToReplace + criticalTarget.length() - 1;
-		if (endNeighborhood > documentLength)
-			endNeighborhood = documentLength - 1;
-		int oldlen = endNeighborhood - startNeighborhood; // + 1;
-		if (oldlen + startNeighborhood > documentLength) {
-			oldlen = documentLength - startNeighborhood;
-		}
-		String oldText = fStructuredDocument.get(startNeighborhood, oldlen);
-		String peek = StringUtils.paste(oldText, fChanges, criticalTarget.length() - adjustInsert, fLengthToReplace);
-		boolean isCriticalString = checkTagNames(oldText, criticalTarget, checkEnd);
-		boolean toBeCriticalString = checkTagNames(peek, criticalTarget, checkEnd);
-		if ((isCriticalString != toBeCriticalString) || // OR if both are
-					// critical and there's
-					// a change in the end
-					// tag ('>')
-					((isCriticalString && toBeCriticalString) && (changeInIsEndedState(oldText, peek)))) {
-			// if it involves a change of a critical string (making one where
-			// there wasn't, or removing
-			// one where there was one) then reparse everthing.
-			result = reparse(0, documentLength - 1);
-		}
-		return result;
-	}
-
-	private int _computeStartOfDifferences(CoreNodeList oldNodes, CoreNodeList newNodes) {
-		int startOfDifferences = -1;
-		int newNodesLength = newNodes.getLength();
-		boolean foundDifference = false;
-		boolean done = false;
-		// we'll control our loop based on the old List length
-		int oldNodesLength = oldNodes.getLength();
-		// be sure to check 'done' first, so startOfDifferences isn't
-		// icremented if done is true
-		done : while ((!done) && (++startOfDifferences < oldNodesLength)) {
-			IStructuredDocumentRegion oldNode = oldNodes.item(startOfDifferences);
-			// this lessThanEffectedRegion is to check to be sure the node is
-			// infact a candidate
-			// to be considered as "old". This check is important for the case
-			// where some
-			// text is replaceing text that
-			// appears identical, but is a different instance. For example, if
-			// the text
-			// is <P><B></B></P> and <B></B> is inserted at postion 3,
-			// resulting in <P><B></B><B></B></P>
-			// we do not want the
-			// first <B> to be considered old ... it is the new one, the
-			// second
-			// <B> is the old one.
-			if (_lessThanEffectedRegion(oldNode)) {
-				// be sure to check that we have new nodes to compare against.
-				if (startOfDifferences > newNodesLength) {
-					foundDifference = false;
-					done = true;
-					continue done;
-				} else {
-					//
-					IStructuredDocumentRegion newNode = newNodes.item(startOfDifferences);
-					// note: shift is 0 while at beginning of list, before the
-					// insertion (or deletion) point. After that, it is
-					// fStart+fLengthDifference
-					if (!(oldNode.sameAs(newNode, 0))) {
-						foundDifference = true;
-						done = true;
-						continue done;
-					} else { // if they are equal, then we will be keeping the
-						// old one, so
-						// we need to be sure its parentDocument is set back
-						// to
-						// the right instance
-						oldNode.setParentDocument(fStructuredDocument);
-					}
-				}
-			} else {
-				// we didn't literally find a difference, but we count it as
-				// such by implication
-				foundDifference = true;
-				done = true;
-				continue done;
-			}
-		}
-		// if we literally found a difference, then all is ok and we can
-		// return
-		// it.
-		// if we did not literally find one, then we have to decide why.
-		if (!foundDifference) {
-			if (newNodesLength == oldNodesLength) { // then lists are
-				// identical
-				// (and may be of zero
-				// length)
-				startOfDifferences = -1;
-			} else {
-				if (newNodesLength > oldNodesLength) { // then lists are
-					// identical except for
-					// newNodes added
-					startOfDifferences = oldNodesLength;
-				} else {
-					if (newNodesLength < oldNodesLength) { // then lists are
-						// identical except
-						// for old Nodes
-						// deleted
-						startOfDifferences = newNodesLength;
-					}
-				}
-			}
-		}
-		return startOfDifferences;
-	}
-
-	private int _computeStartOfDifferences(IStructuredDocumentRegion oldNodeParam, ITextRegionList oldRegions, IStructuredDocumentRegion newNodeParam, ITextRegionList newRegions) {
-		int startOfDifferences = -1;
-		int newRegionsLength = newRegions.size();
-		boolean foundDifference = false;
-		boolean done = false;
-		// we'll control our loop based on the old List length
-		int oldRegionsLength = oldRegions.size();
-		// be sure to check 'done' first, so startOfDifferences isn't
-		// icremented if done is true
-		done : while ((!done) && (++startOfDifferences < oldRegionsLength)) {
-			ITextRegion oldRegion = oldRegions.get(startOfDifferences);
-			// this lessThanEffectedRegion is to check to be sure the node is
-			// infact a candidate
-			// to be considered as "old". This check is important for the case
-			// where some
-			// text is replaceing text that
-			// appears identical, but is a different instance. For example, if
-			// the text
-			// is <P><B></B></P> and <B></B> is inserted at postion 3,
-			// resulting in <P><B></B><B></B></P>
-			// we do not want the
-			// first <B> to be considered old ... it is the new one, the
-			// second
-			// <B> is the old one.
-			if (_lessThanEffectedRegion(oldNodeParam, oldRegion)) {
-				// be sure to check that we have new nodes to compare against.
-				if (startOfDifferences > newRegionsLength) {
-					foundDifference = false;
-					done = true;
-					continue done;
-				} else {
-					//
-					ITextRegion newRegion = newRegions.get(startOfDifferences);
-					// note: shift is 0 while at beginning of list, before the
-					// insertion (or deletion) point. After that, it is
-					// fStart+fLengthDifference
-					if (!(oldNodeParam.sameAs(oldRegion, newNodeParam, newRegion, 0))) {
-						foundDifference = true;
-						done = true;
-						continue done;
-					} else {
-						// if they are equal, then we will be keeping the old
-						// one.
-						// unlike the flatnode case, there is no reason to
-						// update
-						// the textstore, since its the same text store in
-						// either case
-						// (since its the same flatnode)
-						//oldRegion.setTextStore(fStructuredDocument.parentDocument);
-					}
-				}
-			} else {
-				// we didn't literally find a difference, but we count it as
-				// such by implication
-				foundDifference = true;
-				done = true;
-				continue done;
-			}
-		}
-		// if we literally found a difference, then all is ok and we can
-		// return
-		// it.
-		// if we did not literally find one, then we have to decide why.
-		if (!foundDifference) {
-			if (newRegionsLength == oldRegionsLength) { // then lists are
-				// identical (and may
-				// be of zero length)
-				startOfDifferences = -1;
-			} else {
-				if (newRegionsLength > oldRegionsLength) { // then lists are
-					// identical except
-					// for newRegions
-					// added
-					startOfDifferences = oldRegionsLength;
-				} else {
-					if (newRegionsLength < oldRegionsLength) { // then lists
-						// are identical
-						// except for
-						// old Nodes
-						// deleted
-						startOfDifferences = newRegionsLength;
-					}
-				}
-			}
-		}
-		return startOfDifferences;
-	}
-
-	/**
-	 * Part 1 of 2 steps to do a core_reparse
-	 * 
-	 * Parses a portion of the current text in the IStructuredDocument and
-	 * returns the raw result
-	 */
-	private IStructuredDocumentRegion _core_reparse_text(int rescanStart, int rescanEnd) {
-		fStructuredDocument.resetParser(rescanStart, rescanEnd);
-		return fStructuredDocument.getParser().getDocumentRegions();
-	}
-
-	/**
-	 * Part 2 of 2 steps to do a core_reparse
-	 * 
-	 * Integrates a list of StructuredDocumentRegions based on the current
-	 * text contents of the IStructuredDocument into the IStructuredDocument
-	 * data structure
-	 */
-	private StructuredDocumentEvent _core_reparse_update_model(IStructuredDocumentRegion newNodesHead, int rescanStart, int rescanEnd, CoreNodeList oldNodes, boolean firstTime) {
-		StructuredDocumentEvent result = null;
-		CoreNodeList newNodes = null;
-		// rescan
-		newNodes = new CoreNodeList(newNodesHead);
-		// adjust our newNode chain so the offset positions match
-		// our text store (not the simple string of text reparsed)
-		StructuredDocumentRegionIterator.adjustStart(newNodesHead, rescanStart);
-		// initialize the parentDocument variable of each instance in the new
-		// chain
-		StructuredDocumentRegionIterator.setParentDocument(newNodesHead, fStructuredDocument);
-		// initialize the structuredDocument variable of each instance in the
-		// new chain
-		//StructuredDocumentRegionIterator.setStructuredDocument(newNodesHead,
-		// fStructuredDocument);
-		//
-		if (firstTime) {
-			fStructuredDocument.setCachedDocumentRegion(newNodesHead);
-			fStructuredDocument.initializeFirstAndLastDocumentRegion();
-			// note: since we are inserting nodes, for the first time, there
-			// is
-			// no adjustments
-			// to downstream stuff necessary.
-			result = new StructuredDocumentRegionsReplacedEvent(fStructuredDocument, fRequester, oldNodes, newNodes, fChanges, fStart, fLengthToReplace);
-		} else {
-			// note: integrates changes into model as a side effect
-			result = minimumEvent(oldNodes, newNodes);
-		}
-		result.setDeletedText(fDeletedText);
-		return result;
-	}
-
-	private CoreNodeList _formMinimumList(CoreNodeList flatnodes, int startOfDifferences, int endOfDifferences) {
-		CoreNodeList minimalNodes = null;
-		// if startOfDifferces is still its initial value, then we have an
-		// empty document
-		if (startOfDifferences == -1) {
-			minimalNodes = EMPTY_LIST;
-		} else {
-			// if we do not have any flatnode in our flatnode list, then
-			// simply
-			// return our standard empty list
-			if (flatnodes.getLength() == 0) {
-				minimalNodes = EMPTY_LIST;
-			} else {
-				// if startOfDifferences is greater than endOfDifferences,
-				// then
-				// that means the calculations "crossed" each other, and
-				// hence,
-				// there really is no differences, so, again, return the empty
-				// list
-				if (startOfDifferences > endOfDifferences) {
-					minimalNodes = EMPTY_LIST;
-				} else {
-					// the last check be sure we have some differnces
-					if ((endOfDifferences > -1)) {
-						minimalNodes = new CoreNodeList(flatnodes.item(startOfDifferences), flatnodes.item(endOfDifferences));
-					} else {
-						// there were no differences, the list wasn't
-						// minimized, so simply return it.
-						minimalNodes = flatnodes;
-					}
-				}
-			}
-		}
-		return minimalNodes;
-	}
-
-	private boolean _greaterThanEffectedRegion(IStructuredDocumentRegion oldNode) {
-		boolean result = false;
-		int nodeStart = oldNode.getStartOffset();
-		int changedRegionEnd = fStart + fLengthToReplace - 1;
-		result = nodeStart > changedRegionEnd;
-		return result;
-	}
-
-	private boolean _greaterThanEffectedRegion(IStructuredDocumentRegion oldNode, ITextRegion oldRegion) {
-		boolean result = false;
-		int regionStartOffset = oldNode.getStartOffset(oldRegion);
-		int effectedRegionEnd = fStart + fLengthToReplace - 1;
-		result = regionStartOffset > effectedRegionEnd;
-		return result;
-	}
-
-	private boolean _lessThanEffectedRegion(IStructuredDocumentRegion oldNode) {
-		boolean result = false;
-		int nodeEnd = oldNode.getEndOffset() - 1;
-		result = nodeEnd < fStart;
-		return result;
-	}
-
-	private boolean _lessThanEffectedRegion(IStructuredDocumentRegion oldNode, ITextRegion oldRegion) {
-		boolean result = false;
-		int nodeEnd = oldNode.getEndOffset(oldRegion) - 1;
-		result = nodeEnd < fStart;
-		return result;
-	}
-
-	private boolean _regionsSameKind(ITextRegion newRegion, ITextRegion oldRegion) {
-		boolean result = false;
-		// if one region is a container region, and the other not, always
-		// return false
-		// else, just check their type.
-		//      DW druing refactoring, looks like a "typo" here, using 'old' in
-		// both.
-		//		if (isContainerRegion(oldRegion) != isContainerRegion(oldRegion))
-		if (isCollectionRegion(oldRegion) != isCollectionRegion(newRegion))
-			result = false;
-		else if (oldRegion.getType() == newRegion.getType())
-			result = true;
-		return result;
-	}
-
-	//	private boolean hasCollectionRegions(ITextRegion aRegion) {
-	//		boolean result = false;
-	//		if (aRegion instanceof ITextRegionCollection) {
-	//			ITextRegionCollection regionContainter = (ITextRegionCollection)
-	// aRegion;
-	//			ITextRegionList regions = regionContainter.getRegions();
-	//			Iterator iterator = regions.iterator();
-	//			while (iterator.hasNext()) {
-	//				if (aRegion instanceof ITextRegionCollection) {
-	//					result = true;
-	//					break;
-	//				}
-	//			}
-	//		}
-	//		return result;
-	//	}
-	/**
-	 * This method is specifically to detect changes in 'isEnded' state,
-	 * although it still does so with heuristics. If number of '>' changes,
-	 * assume the isEnded state has changed.
-	 */
-	private boolean changeInIsEndedState(String oldText, String newText) {
-		int nOld = StringUtils.occurrencesOf(oldText, '>');
-		int nNew = StringUtils.occurrencesOf(newText, '>');
-		return !(nOld == nNew);
-	}
-
-	private void checkAndAssignParent(IStructuredDocumentRegion oldNode, ITextRegion region) {
-		if (region instanceof ITextRegionContainer) {
-			((ITextRegionContainer) region).setParent(oldNode);
-			return;
-		}
-		if (region instanceof ITextRegionCollection) {
-			ITextRegionCollection textRegionCollection = (ITextRegionCollection) region;
-			ITextRegionList regionList = textRegionCollection.getRegions();
-			for (int i = 0; i < regionList.size(); i++) {
-				ITextRegion innerRegion = regionList.get(i);
-				checkAndAssignParent(oldNode, innerRegion);
-			}
-		}
-	}
-
-	/**
-	 * A change to a CDATA tag can result in all being reparsed.
-	 */
-	private StructuredDocumentEvent checkForCDATA() {
-		StructuredDocumentEvent result = null;
-		result = checkForCriticalKey("<![CDATA["); //$NON-NLS-1$
-		if (result == null)
-			result = checkForCriticalKey("]]>"); //$NON-NLS-1$
-		return result;
-	}
-
-	/**
-	 * If a comment start or end tag is being added or deleted, we'll rescan
-	 * the whole document. The reason is that content that is revealed or
-	 * commented out can effect the interpretation of the rest of the
-	 * document. Note: for now this is very XML specific, can refactor/improve
-	 * later.
-	 */
-	protected StructuredDocumentEvent checkForComments() {
-		StructuredDocumentEvent result = null;
-		result = checkForCriticalKey("<!--"); //$NON-NLS-1$
-		if (result == null)
-			result = checkForCriticalKey("-->"); //$NON-NLS-1$
-		// we'll also check for these degenerate cases
-		if (result == null)
-			result = checkForCriticalKey("<!--->"); //$NON-NLS-1$
-		return result;
-	}
-
-	/**
-	 * Common utility for checking for critical word such as " <SCRIPT>"
-	 */
-	protected StructuredDocumentEvent checkForCriticalKey(String criticalTarget) {
-		return _checkForCriticalWord(criticalTarget, false);
-	}
-
-	/**
-	 * Common utility for checking for critical word such as " <SCRIPT>"
-	 */
-	private StructuredDocumentEvent checkForCriticalName(String criticalTarget) {
-		return _checkForCriticalWord(criticalTarget, true);
-	}
-
-	//	/**
-	//	 * Currently this method is pretty specific to ?ML
-	//	 * @deprecated - not really deprecated, but plan to make
-	//	 * protected ... I'm not sure why its public or misspelled?
-	//	 */
-	protected StructuredDocumentEvent checkForCrossStructuredDocumentRegionBoundryCases() {
-		StructuredDocumentEvent result = null;
-		// Case 1: See if the language's syntax requires that multiple
-		// StructuredDocumentRegions be rescanned
-		if (result == null) {
-			result = checkForCrossStructuredDocumentRegionSyntax();
-		}
-		// Case 2: "block tags" whose content is left unparsed
-		if (result == null) {
-			Object parser = fStructuredDocument.getParser();
-			if (parser instanceof BlockTagParser) {
-				List blockTags = ((BlockTagParser) parser).getBlockMarkers();
-				result = _checkBlockNodeList(blockTags);
-			}
-		}
-		// FUTURE_TO_DO: is there a better place to do this?
-		// or! do we already do it some other more central place?
-		if (result != null) {
-			result.setDeletedText(fDeletedText);
-		}
-		return result;
-	}
-
-	/**
-	 * Allow a reparser to check for extra syntactic cases that require
-	 * parsing beyond the flatNode boundary.
-	 * 
-	 * This implementation is very XML-centric.
-	 */
-	protected StructuredDocumentEvent checkForCrossStructuredDocumentRegionSyntax() {
-		StructuredDocumentEvent result;
-		// Case 1: Quote characters are involved
-		result = checkForQuotes();
-		if (result == null) {
-			// Case 2: The input forms or undoes a comment beginning or
-			// comment
-			// end
-			result = checkForComments();
-		}
-		if (result == null) {
-			// Case 3: The input forms or undoes a processing instruction
-			result = checkForPI();
-		}
-		if (result == null) {
-			// Case 4: The input forms or undoes a CDATA section
-			result = checkForCDATA();
-		}
-		return result;
-	}
-
-	/**
-	 * Checks to see if change request exactly matches the text it would be
-	 * replacing. (In future, this, or similar method is where to check for
-	 * "read only" attempted change.)
-	 */
-	private StructuredDocumentEvent checkForNoChange() {
-		StructuredDocumentEvent result = null;
-		// don't check equals unless lengths match
-		// should be a tiny bit faster, since usually not
-		// of equal lengths (I'm surprised String's equals method
-		// doesn't do this.)
-		if ((fChanges != null) && (fDeletedText != null) && (fChanges.length() == fDeletedText.length()) && (fChanges.equals(fDeletedText))) {
-			result = new NoChangeEvent(fStructuredDocument, fRequester, fChanges, fStart, fLengthToReplace);
-		}
-		return result;
-	}
-
-	/**
-	 * A change to a PI tag can result in all being reparsed.
-	 */
-	private StructuredDocumentEvent checkForPI() {
-		StructuredDocumentEvent result = null;
-		result = checkForCriticalKey("<?"); //$NON-NLS-1$
-		if (result == null)
-			result = checkForCriticalKey("?>"); //$NON-NLS-1$
-		return result;
-	}
-
-	//  For simplicity, if either text to be deleted, or text to be inserted
-	// contains at least
-	//  one quote, we'll search for previous quote in document, if any, and use
-	// that flatnode as
-	//  a dirty start, and we'll use end of document as dirty end. We need to
-	// assume either \" or
-	//  \' is an exceptable quote. (NOTE: this is, loosely, an XML assumption
-	// --
-	// other languages
-	//  would differ, but we'll "hard code" for XML for now.
-	// future_TODO: this is a really bad heuristic ... we should be looking
-	// for
-	// odd number of quotes
-	// within a structuredDocumentRegion (or something!) This causes way too
-	// much reparsing on
-	// simple cases, like deleting a tag with a quoted attribute!
-	private StructuredDocumentEvent checkForQuotes() {
-		// routine is supported with null or empty string meaning the same
-		// thing: deletion
-		if (fChanges == null)
-			fChanges = ""; //$NON-NLS-1$
-		//
-		StructuredDocumentEvent result = null;
-		try {
-			int dirtyStartPos = -1;
-			String proposedDeletion = fStructuredDocument.get(fStart, fLengthToReplace);
-			if (fStart < fStructuredDocument.getLength()) {
-				if ((fChanges.indexOf(singleQuote) > -1) || (proposedDeletion.indexOf(singleQuote) > -1)) {
-					IRegion singleQuoteRegion = getFindReplaceDocumentAdapter().find(fStart, singleQuote, false, false, false, false);
-					if (singleQuoteRegion != null) {
-						dirtyStartPos = singleQuoteRegion.getOffset();
-					}
-				} else if ((fChanges.indexOf(doubleQuote) > -1) || (proposedDeletion.indexOf(doubleQuote) > -1)) {
-					IRegion doubleQuoteRegion = getFindReplaceDocumentAdapter().find(fStart, doubleQuote, false, false, false, false);
-					if (doubleQuoteRegion != null) {
-						dirtyStartPos = doubleQuoteRegion.getOffset();
-					}
-				}
-			}
-			if (dirtyStartPos > -1) {
-				// then we found one, do create new structuredDocument event
-				// based on the previous quote to end of document
-				// except, we need to be positive that the previous quote is
-				// in a "safe start" region (e.g. if in JSP content, we need
-				// to
-				// backup till we include the whole JSP region, in order for
-				// it
-				// to be correctly re-parsed. The backing up is done in the
-				// reparse/find dirty start from hint
-				// method.
-				result = reparse(dirtyStartPos, fStructuredDocument.getLength() - 1);
-			}
-		} catch (BadLocationException e) {
-			Logger.logException(e);
-		}
-		if (result != null) {
-			result.setDeletedText(fDeletedText);
-		}
-		return result;
-	}
-
-	private StructuredDocumentEvent checkHeuristics() {
-		StructuredDocumentEvent result = null;
-		result = checkForNoChange();
-		if (result == null) {
-			result = checkForCrossStructuredDocumentRegionBoundryCases();
-			if (result == null) {
-				result = quickCheck();
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Takes into account "tag name" rules for comparisons; case-insensitive.
-	 */
-	private boolean checkTagNames(String compareText, String criticalTarget, boolean checkEnd) {
-		boolean result = false;
-		if ((compareText == null) || (criticalTarget == null))
-			return false;
-		int posOfCriticalWord = compareText.toLowerCase().indexOf(criticalTarget.toLowerCase());
-		result = posOfCriticalWord > -1;
-		if (checkEnd && result) {
-			// instead of returning true right away, we'll only return true
-			// the
-			// potentially matched tag is indeed a tag, for example, if
-			// <SCRIPT
-			// becomes <SCRIPTS we don't want to say the latter is a critical
-			// tag
-			int lastPos = posOfCriticalWord + criticalTarget.length();
-			if (lastPos < compareText.length()) {
-				char lastChar = compareText.charAt(lastPos);
-				// Future: check formal definition of this java method, vs.
-				// XML
-				// parsing rules
-				result = (!Character.isLetterOrDigit(lastChar));
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * The core reparsing method ... after the dirty start and dirty end have
-	 * been calculated elsewhere, and the text updated.
-	 */
-	protected StructuredDocumentEvent core_reparse(int rescanStart, int rescanEnd, CoreNodeList oldNodes, boolean firstTime) {
-		IStructuredDocumentRegion newNodesHead = null;
-		StructuredDocumentEvent result = null;
-		newNodesHead = _core_reparse_text(rescanStart, rescanEnd);
-		result = _core_reparse_update_model(newNodesHead, rescanStart, rescanEnd, oldNodes, firstTime);
-		return result;
-	}
-
-	/**
-	 * Resets state to "not parsing"
-	 */
-	private synchronized void endReParse() {
-		isParsing = false;
-		dirtyStart = null;
-		dirtyEnd = null;
-	}
-
-	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();
-			}
-		}
-		// moved to subclass for quick transition
-		// 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;
-			// moved to subclass to speed transition
-			//			while (isPartOfBlockRegion(potential)) {
-			//				potential = potential.getPrevious();
-			//			}
-			if (potential != null) {
-				result = potential;
-				fStructuredDocument.setCachedDocumentRegion(result);
-			}
-		}
-		dirtyStart = result;
-	}
-
-	protected CoreNodeList formOldNodes(IStructuredDocumentRegion dirtyStart, IStructuredDocumentRegion dirtyEnd) {
-		CoreNodeList oldNodes = new CoreNodeList(dirtyStart, dirtyEnd);
-		// Now save the old text, that "goes with" the old nodes and regions.
-		// Notice we are getting it directly from the text store
-		String oldText = null;
-		int oldStart = -1;
-		int oldEnd = -1;
-		// make sure there is some text, if not, use empty string
-		// (if one node is not null, the other should ALWAYS be not null too,
-		// since it
-		// would at least be equal to it.)
-		if (dirtyStart != null) {
-			oldStart = dirtyStart.getStart();
-			oldEnd = dirtyEnd.getEnd();
-			oldText = fStructuredDocument.get(oldStart, oldEnd - oldStart);
-		} else {
-			oldStart = 0;
-			oldEnd = 0;
-			oldText = ""; //$NON-NLS-1$
-		}
-		// create a temporary text store for this text
-		SubSetTextStore subTextStore = new SubSetTextStore(oldText, oldStart, oldEnd, fStructuredDocument.getLength());
-		// Now update the text store of the oldNodes
-		StructuredDocumentRegionIterator.setParentDocument(oldNodes, new MinimalDocument(subTextStore));
-		return oldNodes;
-	}
-
-	/**
-	 * @return Returns the findReplaceDocumentAdapter.
-	 */
-	public FindReplaceDocumentAdapter getFindReplaceDocumentAdapter() {
-		if (fFindReplaceDocumentAdapter == null) {
-			fFindReplaceDocumentAdapter = new FindReplaceDocumentAdapter(fStructuredDocument);
-		}
-		return fFindReplaceDocumentAdapter;
-	}
-
-	// Note: if thead safety is needed, this and all the other public methods
-	// of this class
-	// should be synchronized.
-	public void initialize(Object requester, int start, int lengthToReplace, String changes) {
-		isParsing = true;
-		fRequester = requester;
-		fStart = start;
-		fLengthToReplace = lengthToReplace;
-		fChanges = changes;
-		// notice this one is derived
-		fLengthDifference = Utilities.calculateLengthDifference(fChanges, fLengthToReplace);
-		fDeletedText = fStructuredDocument.get(fStart, fLengthToReplace);
-	}
-
-	protected void insertNodes(IStructuredDocumentRegion previousOldNode, IStructuredDocumentRegion nextOldNode, CoreNodeList newNodes) {
-		//
-		IStructuredDocumentRegion firstNew = null;
-		IStructuredDocumentRegion lastNew = null;
-		//
-		IStructuredDocumentRegion oldPrevious = previousOldNode;
-		IStructuredDocumentRegion oldNext = nextOldNode;
-		//
-		if (newNodes.getLength() > 0) {
-			// get pointers
-			firstNew = newNodes.item(0);
-			lastNew = newNodes.item(newNodes.getLength() - 1);
-			// switch surrounding StructuredDocumentRegions' references to
-			// lists
-			if (oldPrevious != null)
-				oldPrevious.setNext(firstNew);
-			if (oldNext != null) {
-				oldNext.setPrevious(lastNew);
-			} else {
-				// SIDE EFFECT
-				// if oldNext is null, that means we are replaceing the
-				// lastNode in the chain,
-				// so we need to update the structuredDocuments lastNode as
-				// the
-				// last of the new nodes.
-				fStructuredDocument.setLastDocumentRegion(newNodes.item(newNodes.getLength() - 1));
-			}
-			if (firstNew != null)
-				firstNew.setPrevious(oldPrevious);
-			if (lastNew != null)
-				lastNew.setNext(oldNext);
-		}
-		// else nothing to insert
-	}
-
-	/**
-	 * @param oldRegion
-	 */
-	private boolean isCollectionRegion(ITextRegion aRegion) {
-		return (aRegion instanceof ITextRegionCollection);
-	}
-
-	/**
-	 * @return boolean
-	 */
-	public boolean isParsing() {
-		return isParsing;
-	}
-
-	/**
-	 * The minimization algorithm simply checks the old nodes to see if any of
-	 * them "survived" the rescan and are unchanged. If so, the instance of
-	 * the old node is used instead of the new node. Before the requested
-	 * change, need to check type, offsets, and text to determine if the same.
-	 * After the requested change, need to check type and text, but adjust the
-	 * offsets to what ever the change was.
-	 */
-	protected StructuredDocumentEvent minimumEvent(CoreNodeList oldNodes, CoreNodeList newNodes) {
-		StructuredDocumentEvent event = null;
-		CoreNodeList minimalOldNodes = null;
-		CoreNodeList minimalNewNodes = null;
-		// To minimize nodes, we'll collect all those
-		// that are not equal into old and new lists
-		// Note: we assume that old and new nodes
-		// are basically contiguous -- and we force it to be so,
-		// by starting at the beginning to
-		// find first difference, and then starting at the end to find
-		// last difference. Everything in between we assume is different.
-		//
-		//
-		//
-		// startOfDifferences is the index into the core node list where the
-		// first difference
-		// occurs. But it may point into the old or the new list.
-		int startOfDifferences = _computeStartOfDifferences(oldNodes, newNodes);
-		int endOfDifferencesOld = -1;
-		int endOfDifferencesNew = -1;
-		// if one of the lists are shorter than where the differences start,
-		// then
-		// then some portion of the lists are identical
-		if ((startOfDifferences >= oldNodes.getLength()) || (startOfDifferences >= newNodes.getLength())) {
-			if (oldNodes.getLength() < newNodes.getLength()) {
-				// Then there are new regions to add
-				//     these lengths will cause the vector of old ones to not
-				//     have any elements, and the vector of new regions to have
-				//     just the new ones not in common with the old ones
-				//startOfDifferences should equal oldNodes.getLength(),
-				// calculated above on _computeStartOfDifferences
-				minimalOldNodes = EMPTY_LIST;
-				endOfDifferencesNew = newNodes.getLength() - 1;
-				minimalNewNodes = _formMinimumList(newNodes, startOfDifferences, endOfDifferencesNew);
-			} else {
-				if (oldNodes.getLength() > newNodes.getLength()) {
-					// delete old
-					// then there are old regions to delete
-					//    these lengths will cause the vector of old regions to
-					//    contain the ones to delete, and the vector of new
-					// regions
-					//    not have any elements
-					//startOfDifferences should equal newNodes.getLength(),
-					// calculated above on _computeStartOfDifferences
-					endOfDifferencesOld = oldNodes.getLength() - 1;
-					minimalOldNodes = _formMinimumList(oldNodes, startOfDifferences, endOfDifferencesOld);
-					minimalNewNodes = EMPTY_LIST;
-				} else
-					// unlikely event
-					event = new NoChangeEvent(fStructuredDocument, fRequester, fChanges, fStart, fLengthToReplace);
-			}
-		} else {
-			// We found a normal startOfDiffernces, but have not yet found the
-			// ends.
-			// We'll look for the end of differences by going backwards down
-			// the two lists.
-			// Here we need a seperate index for each array, since they may be
-			// (and
-			// probably are) of different lengths.
-			int indexOld = oldNodes.getLength() - 1;
-			int indexNew = newNodes.getLength() - 1;
-			// The greaterThanEffectedRegion is important to gaurd against
-			// incorrect counting
-			// when something identical is inserted to what's already there
-			// (see minimization test case 5)
-			// Note: the indexOld > startOfDifferences keeps indexOld from
-			// getting too small,
-			// so that the subsequent oldNodes.item(indexOld) is always valid.
-			while ((indexOld >= startOfDifferences) && (_greaterThanEffectedRegion(oldNodes.item(indexOld)))) {
-				if (!(oldNodes.item(indexOld).sameAs(newNodes.item(indexNew), fLengthDifference))) {
-					break;
-				} else {
-					// if they are equal, then we will be keeping the old one,
-					// so
-					// we need to be sure its parentDocument is set back to
-					// the
-					// right instance
-					oldNodes.item(indexOld).setParentDocument(fStructuredDocument);
-				}
-				indexOld--;
-				indexNew--;
-			}
-			endOfDifferencesOld = indexOld;
-			endOfDifferencesNew = indexNew;
-			minimalOldNodes = _formMinimumList(oldNodes, startOfDifferences, endOfDifferencesOld);
-			minimalNewNodes = _formMinimumList(newNodes, startOfDifferences, endOfDifferencesNew);
-		} /////////////////////////////////////////
-		//
-		IStructuredDocumentRegion firstDownStreamNode = null;
-		event = regionCheck(minimalOldNodes, minimalNewNodes);
-		if (event != null) {
-			firstDownStreamNode = minimalOldNodes.item(0).getNext();
-			if (firstDownStreamNode != null && fLengthDifference != 0) { // if
-				// firstDownStream
-				// is
-				// null,
-				// then
-				// we're
-				// at
-				// the
-				// end
-				// of
-				// the
-				// document
-				StructuredDocumentRegionIterator.adjustStart(firstDownStreamNode, fLengthDifference);
-			} //
-		} else {
-			event = nodesReplacedCheck(minimalOldNodes, minimalNewNodes);
-			// now splice the new chain of nodes to where the old chain is (or
-			// was)
-			// the firstDownStreamNode (the first of those after the new
-			// nodes)
-			// is
-			// remembered as a tiny optimization.
-			if (minimalOldNodes.getLength() == 0 && minimalNewNodes.getLength() > 0) {
-				// if no old nodes are being deleted, then use the
-				// the newNodes offset (minus one) to find the point to
-				// update downstream nodes, and after updating downstream
-				// nodes postions, insert the new ones.
-				int insertOffset = minimalNewNodes.item(0).getStartOffset();
-				IStructuredDocumentRegion lastOldUnchangedNode = null;
-				if (insertOffset > 0) {
-					lastOldUnchangedNode = fStructuredDocument.getRegionAtCharacterOffset(insertOffset - 1);
-					firstDownStreamNode = lastOldUnchangedNode.getNext();
-				} else {
-					// we're inserting at very beginning
-					firstDownStreamNode = fStructuredDocument.getFirstStructuredDocumentRegion();
-					// SIDE EFFECT: change the firstNode pointer if we're
-					// inserting at beginning
-					fStructuredDocument.setFirstDocumentRegion(minimalNewNodes.item(0));
-				}
-				StructuredDocumentRegionIterator.adjustStart(firstDownStreamNode, fLengthDifference);
-				insertNodes(lastOldUnchangedNode, firstDownStreamNode, minimalNewNodes);
-				// this (nodes replaced) is the only case where we need to
-				// update the cached Node
-				reSetCachedNode(minimalOldNodes, minimalNewNodes);
-			} else {
-				firstDownStreamNode = switchNodeLists(minimalOldNodes, minimalNewNodes);
-				// no need to adjust the length of the new nodes themselves,
-				// they
-				// are already correct, but we do need to
-				// adjust all "down stream" nodes with the length of the
-				// insertion or deletion
-				// --- adjustment moved to calling method.
-				if (firstDownStreamNode != null) {
-					// && event != null
-					StructuredDocumentRegionIterator.adjustStart(firstDownStreamNode, fLengthDifference);
-				} //
-				// this (nodes replaced) is the only case where we need to
-				// update the cached Node
-				reSetCachedNode(minimalOldNodes, minimalNewNodes);
-			}
-		}
-		return event;
-	}
-
-	// TODO: This should be abstract.
-	public IStructuredTextReParser newInstance() {
-		return new StructuredDocumentReParser();
-	}
-
-	protected StructuredDocumentEvent nodesReplacedCheck(CoreNodeList oldNodes, CoreNodeList newNodes) {
-		// actually, nothing to check here, since (and assuming) we've already
-		// minimized the number of nodes, and ruled out mere region changes
-		StructuredDocumentEvent result = new StructuredDocumentRegionsReplacedEvent(fStructuredDocument, fRequester, oldNodes, newNodes, fChanges, fStart, fLengthToReplace);
-		return result;
-	}
-
-	/**
-	 * A method to allow any heuristic "quick checks" that might cover many
-	 * many cases, before expending the time on a full reparse.
-	 *  
-	 */
-	public StructuredDocumentEvent quickCheck() {
-		StructuredDocumentEvent result = null;
-		// if the dirty start is null, then we have an empty document.
-		// in which case we'll return null so everything can be
-		// reparsed "from scratch" . If its not null, we'll give the flatnode
-		// a
-		// chance
-		// to handle, but only if there is one flatnode involved.
-		if (dirtyStart != null && dirtyStart == dirtyEnd) {
-			IStructuredDocumentRegion targetNode = dirtyStart;
-			result = dirtyStart.updateModel(fRequester, targetNode, fChanges, fStart, fLengthToReplace);
-			if (result != null) {
-				// at this point only, we need to update the text store and
-				// and downstream nodes.
-				// FUTURE_TO_DO: can this dependency on structuredDocument
-				// method be eliminated?
-				fStructuredDocument.updateDocumentData(fStart, fLengthToReplace, fChanges);
-				IStructuredDocumentRegion firstDownStreamNode = targetNode.getNext();
-				// then flatnode must have been the last one, so need to
-				// update
-				// any downstream ones
-				if (firstDownStreamNode != null) {
-					StructuredDocumentRegionIterator.adjustStart(firstDownStreamNode, fLengthDifference);
-				}
-			}
-		}
-		if (result != null) {
-			result.setDeletedText(fDeletedText);
-		}
-		return result;
-	}
-
-	/**
-	 * If only one node is involved, sees how many regions are changed. If
-	 * only one, then its a 'regionChanged' event ... if more than one, its a
-	 * 'regionsReplaced' event.
-	 */
-	protected StructuredDocumentEvent regionCheck(CoreNodeList oldNodes, CoreNodeList newNodes) {
-		if (Debug.debugStructuredDocument)
-			System.out.println("IStructuredDocument::regionsReplacedCheck"); //$NON-NLS-1$
-		//$NON-NLS-1$
-		//$NON-NLS-1$
-		// the "regionsReplaced" event could only be true if and only if the
-		// nodelists
-		// are each only "1" in length.
-		StructuredDocumentEvent result = null;
-		int oldLength = oldNodes.getLength();
-		int newLength = newNodes.getLength();
-		if ((oldLength != 1) || (newLength != 1)) {
-			result = null;
-		} else {
-			IStructuredDocumentRegion oldNode = oldNodes.item(0);
-			IStructuredDocumentRegion newNode = newNodes.item(0);
-			result = regionCheck(oldNode, newNode);
-		}
-		return result;
-	}
-
-	/**
-	 * If only one node is involved, sees how many regions are changed. If
-	 * only one, then its a 'regionChanged' event ... if more than one, its a
-	 * 'regionsReplaced' event.
-	 */
-	protected StructuredDocumentEvent regionCheck(IStructuredDocumentRegion oldNode, IStructuredDocumentRegion newNode) {
-		//
-		StructuredDocumentEvent result = null;
-		ITextRegionList oldRegions = oldNode.getRegions();
-		ITextRegionList newRegions = newNode.getRegions();
-		// Also causes ArrayStoreExceptions when we encounter a container
-		//      ITextRegion[] oldRegionsArray = new
-		// com.ibm.sed.parser.ContextRegion[oldRegions.size()];
-		//      ITextRegion[] newRegionsArray = new
-		// com.ibm.sed.parser.ContextRegion[newRegions.size()];
-		ITextRegion[] oldRegionsArray = oldRegions.toArray();
-		ITextRegion[] newRegionsArray = newRegions.toArray();
-		//
-		// for the 'regionsReplaced' event, we don't care if
-		// the regions changed due to type, or text,
-		// we'll just collect all those that are not equal
-		// into the old and new region lists.
-		// Note: we, of course, assume that old and new regions
-		// are basically contiguous -- and we force it to be so,
-		// even if not literally so, by starting at beginning to
-		// find first difference, and then starting at end to find
-		// last difference. Everything in between we assume is different.
-		//
-		// going up is easy, we start at zero in each, and continue
-		// till regions are not the same.
-		int startOfDifferences = _computeStartOfDifferences(oldNode, oldRegions, newNode, newRegions);
-		int endOfDifferencesOld = -1;
-		int endOfDifferencesNew = -1;
-		//
-		//
-		// if one of the lists are shorter than where the differences start,
-		// then
-		// then some portion of the lists are identical
-		if ((startOfDifferences >= oldRegions.size()) || (startOfDifferences >= newRegions.size())) {
-			if (oldRegions.size() < newRegions.size()) {
-				// INSERT CASE
-				// then there are new regions to add
-				//     these lengths will cause the vector of old ones to not
-				//     have any elements, and the vector of new regions to have
-				//     just the new ones.
-				startOfDifferences = oldRegionsArray.length;
-				endOfDifferencesOld = oldRegionsArray.length - 1;
-				endOfDifferencesNew = newRegionsArray.length - 1;
-			} else {
-				if (oldRegions.size() > newRegions.size()) {
-					// DELETE CASE
-					// then there are old regions to delete
-					//    these lengths will cause the vector of old regions to
-					//    contain the ones to delete, and the vector of new
-					// regions
-					//    not have any elements
-					startOfDifferences = newRegionsArray.length;
-					endOfDifferencesOld = oldRegionsArray.length - 1;
-					endOfDifferencesNew = newRegionsArray.length - 1;
-				} else {
-					// else the lists are identical!
-					// unlikely event, probably error in current design, since
-					// we check for identity at the very beginning of
-					// reparsing.
-					result = new NoChangeEvent(fStructuredDocument, fRequester, fChanges, fStart, fLengthToReplace);
-				}
-			}
-		} else {
-			if ((startOfDifferences > -1) && (endOfDifferencesOld < 0) && (endOfDifferencesNew < 0)) {
-				// We found a normal startOfDiffernces, but have not yet found
-				// the ends.
-				// We'll look for the end of differences by going backwards
-				// down the two lists.
-				// Here we need a seperate index for each array, since they
-				// may
-				// be (and
-				// probably are) of different lengths.
-				int indexOld = oldRegionsArray.length - 1;
-				int indexNew = newRegionsArray.length - 1;
-				while ((indexOld >= startOfDifferences) && (_greaterThanEffectedRegion(oldNode, oldRegionsArray[indexOld]))) {
-					if ((!(oldNode.sameAs(oldRegionsArray[indexOld], newNode, newRegionsArray[indexNew], fLengthDifference)))) {
-						//endOfDifferencesOld = indexOne;
-						//endOfDifferencesNew = indexTwo;
-						break;
-					}
-					indexOld--;
-					indexNew--;
-				}
-				endOfDifferencesOld = indexOld;
-				endOfDifferencesNew = indexNew;
-			}
-		}
-		//
-		// result != null means the impossible case above occurred
-		if (result == null) {
-			// Now form the two vectors of different regions
-			ITextRegionList holdOldRegions = new TextRegionListImpl();
-			ITextRegionList holdNewRegions = new TextRegionListImpl();
-			if (startOfDifferences > -1 && endOfDifferencesOld > -1) {
-				for (int i = startOfDifferences; i <= endOfDifferencesOld; i++) {
-					holdOldRegions.add(oldRegionsArray[i]);
-				}
-			}
-			if (startOfDifferences > -1 && endOfDifferencesNew > -1) {
-				for (int i = startOfDifferences; i <= endOfDifferencesNew; i++) {
-					holdNewRegions.add(newRegionsArray[i]);
-				}
-			}
-			if (holdOldRegions.size() == 0 && holdNewRegions.size() == 0) {
-				// then this means the regions were identical, which means
-				// someone
-				// pasted exactly the same thing they had selected, or !!!
-				// someone deleted the end bracket of the tag. !!!?
-				result = new NoChangeEvent(fStructuredDocument, fRequester, fChanges, fStart, fLengthToReplace);
-			} else {
-				//If both holdOldRegions and holdNewRegions are of length 1,
-				// then its
-				// a "region changed" event, else a "regions replaced" event.
-				// so we want the new instance of region to become part of the
-				// old instance of old node
-				if ((holdOldRegions.size() == 1) && (holdNewRegions.size() == 1) && _regionsSameKind((holdNewRegions.get(0)), (holdOldRegions.get(0)))) {
-					ITextRegion newOldRegion = swapNewForOldRegion(oldNode, holdOldRegions.get(0), newNode, holdNewRegions.get(0));
-					// -- need to update any down stream regions, within this
-					// 'oldNode'
-					updateDownStreamRegions(oldNode, newOldRegion);
-					result = new RegionChangedEvent(fStructuredDocument, fRequester, oldNode, newOldRegion, fChanges, fStart, fLengthToReplace);
-				} else {
-					replaceRegions(oldNode, holdOldRegions, newNode, holdNewRegions);
-					// -- need to update any down stream regions, within this
-					// 'oldNode'
-					// don't need with the way replaceRegions is implemented.
-					// It handles.
-					//if(holdNewRegions.size() > 0)
-					//updateDownStreamRegions(oldNode, (ITextRegion)
-					// holdNewRegions.lastElement());
-					result = new RegionsReplacedEvent(fStructuredDocument, fRequester, oldNode, holdOldRegions, holdNewRegions, fChanges, fStart, fLengthToReplace);
-				}
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * An entry point for reparsing. It calculates the dirty start and dirty
-	 * end flatnodes based on the start point and length of the changes.
-	 *  
-	 */
-	public StructuredDocumentEvent reparse() {
-		StructuredDocumentEvent result = null;
-		// if we do not have a cachedNode, then the document
-		// must be empty, so simply use 'null' as the dirtyStart and dirtyEnd
-		// otherwise, find them.
-		if (fStructuredDocument.getCachedDocumentRegion() != null) {
-			findDirtyStart(fStart);
-			int end = fStart + fLengthToReplace;
-			findDirtyEnd(end);
-		}
-		if (fStructuredDocument.getCachedDocumentRegion() != null) {
-			result = checkHeuristics();
-		}
-		if (result == null) {
-			result = reparse(dirtyStart, dirtyEnd);
-		}
-		endReParse();
-		return result;
-	}
-
-	/**
-	 * An entry point for reparsing. It calculates the dirty start and dirty
-	 * end flatnodes based on suggested positions to begin and end. This is
-	 * needed for cases where parsing must go beyond the immediate node and
-	 * its direct neighbors.
-	 *  
-	 */
-	protected StructuredDocumentEvent reparse(int reScanStartHint, int reScanEndHint) {
-		StructuredDocumentEvent result = null;
-		// if we do not have a cachedNode, then the document
-		// must be empty, so simply use 'null' as the dirtyStart and dirtyEnd
-		if (fStructuredDocument.getCachedDocumentRegion() != null) {
-			findDirtyStart(reScanStartHint);
-			findDirtyEnd(reScanEndHint);
-		}
-		result = reparse(dirtyStart, dirtyEnd);
-		isParsing = false;
-		// debug
-		//verifyStructured(result);
-		return result;
-	}
-
-	/**
-	 * The core reparsing method ... after the dirty start and dirty end have
-	 * been calculated elsewhere.
-	 */
-	protected StructuredDocumentEvent reparse(IStructuredDocumentRegion dirtyStart, IStructuredDocumentRegion dirtyEnd) {
-		StructuredDocumentEvent result = null;
-		int rescanStart = -1;
-		int rescanEnd = -1;
-		boolean firstTime = false;
-		//
-		// "save" the oldNodes (that may be replaced) in a list
-		CoreNodeList oldNodes = formOldNodes(dirtyStart, dirtyEnd);
-		if (dirtyStart == null || dirtyEnd == null) {
-			// dirtyStart or dirty end are null, then that means we didn't
-			// have
-			// a
-			// cached node, which means we have an empty document, so we
-			// just need to rescan the changes
-			rescanStart = 0;
-			rescanEnd = fChanges.length();
-			firstTime = true;
-		} else {
-			// set the start of the text to rescan
-			rescanStart = dirtyStart.getStart();
-			//
-			// set the end of the text to rescan
-			// notice we use the same rationale as for the rescanStart,
-			// with the added caveat that length has to be added to it,
-			// to compensate for the new text which has been added or deleted.
-			// If changes has zero length, then "length" will be negative,
-			// since
-			// we are deleting text. Otherwise, use the difference between
-			// what's selected to be replaced and the length of the new text.
-			rescanEnd = dirtyEnd.getEnd() + fLengthDifference;
-		}
-		// now that we have the old stuff "saved" away, update the document
-		// with the changes.
-		// FUTURE_TO_DO -- don't fire "document changed" event till later
-		fStructuredDocument.updateDocumentData(fStart, fLengthToReplace, fChanges);
-		// ------------------ now the real work
-		result = core_reparse(rescanStart, rescanEnd, oldNodes, firstTime);
-		//
-		// event is returned to the caller, incase there is
-		// some opitmization they can do
-		return result;
-	}
-
-	protected void replaceRegions(IStructuredDocumentRegion oldNode, ITextRegionList oldRegions, IStructuredDocumentRegion newNode, ITextRegionList newRegions) {
-		int insertPos = -1;
-		ITextRegionList regions = oldNode.getRegions();
-		// make a fake flatnode to be new parent of oldRegions, so their text
-		// will be right.
-		//IStructuredDocumentRegion holdOldStructuredDocumentRegion = new
-		// BasicStructuredDocumentRegion(oldNode);
-		//
-		// need to reset the parent of the new to-be-inserted regions to be
-		// the
-		// same oldNode that is the one having its regions changed
-		// DW, 4/16/2003, removed since ITextRegion no longer has parent.
-		// 		ITextRegionContainer oldParent = oldNode;
-		//		for (int i = 0; i < newRegions.size(); i++) {
-		//			AbstractRegion region = (AbstractRegion) newRegions.elementAt(i);
-		//			region.setParent(oldParent);
-		//		}
-		// if there are no old regions, insert the new regions according to
-		// offset
-		if (oldRegions.size() == 0) {
-			ITextRegion firstNewRegion = newRegions.get(0);
-			int firstOffset = newNode.getStartOffset(firstNewRegion);
-			// if at beginning, insert there
-			if (firstOffset == 0) {
-				insertPos = 0;
-			} else {
-				//
-				ITextRegion regionAtOffset = oldNode.getRegionAtCharacterOffset(firstOffset);
-				if (regionAtOffset == null)
-					insertPos = regions.size();
-				else
-					insertPos = regions.indexOf(regionAtOffset);
-			}
-		} else {
-			// else, delete old ones before inserting new ones in their place
-			ITextRegion firstOldRegion = oldRegions.get(0);
-			insertPos = regions.indexOf(firstOldRegion);
-			regions.removeAll(oldRegions);
-		}
-		regions.addAll(insertPos, newRegions);
-		// now regions vector of each node should be of equal length,
-		// so go through each, and make sure the old regions
-		// offsets matches the new regions offsets
-		// (we'll just assign them all, but could be slightly more effiecient)
-		ITextRegionList allNewRegions = newNode.getRegions();
-		for (int i = 0; i < regions.size(); i++) {
-			ITextRegion nextOldishRegion = regions.get(i);
-			ITextRegion nextNewRegion = allNewRegions.get(i);
-			nextOldishRegion.equatePositions(nextNewRegion);
-			checkAndAssignParent(oldNode, nextOldishRegion);
-		}
-		oldNode.setLength(newNode.getLength());
-		oldNode.setEnded(newNode.isEnded());
-		oldNode.setParentDocument(newNode.getParentDocument());
-		// removed concept of part of these regions, so no longer need to do.
-		//		for (int i = 0; i < oldRegions.size(); i++) {
-		//			ITextRegion region = (ITextRegion) oldRegions.elementAt(i);
-		//			region.setParent(holdOldStructuredDocumentRegion);
-		//		}
-	}
-
-	private void reSetCachedNode(CoreNodeList oldNodes, CoreNodeList newNodes) {
-		// use the last newNode as the new cachedNode postion, unless its null
-		// (e.g. when nodes are deleted) in which case, assign
-		// it to a "safe" node so we don't lose reference to the
-		// structuredDocument!
-		if (newNodes.getLength() > 0) {
-			// use last new node as the cache
-			fStructuredDocument.setCachedDocumentRegion(newNodes.item(newNodes.getLength() - 1));
-		} else {
-			// if cachedNode is an old node, then we're in trouble:
-			// we can't leave it as the cached node! and its already
-			// been disconnected from the model, so we can't do getNext
-			// or getPrevious, so we'll get one that is right before
-			// (or right after) the offset of the old nodes that are being
-			// deleted.
-			// 
-			// if newNodesHead and cachedNode are both null, then
-			// it means we were asked to insert an empty string into
-			// an empty document. So we have nothing to do here
-			// (that is, we have no node to cache)
-			// similarly if there are no new nodes and no old nodes then
-			// nothing to do (but that should never happen ... we shouldn't
-			// get there if there is no event to generate).
-			if ((fStructuredDocument.getCachedDocumentRegion() != null) && (oldNodes.getLength() > 0)) {
-				// note: we can't simple use nodeAtCharacterOffset, since it
-				// depends on cachedNode.
-				if (oldNodes.includes(fStructuredDocument.getCachedDocumentRegion()))
-					fStructuredDocument.setCachedDocumentRegion(fStructuredDocument.getFirstStructuredDocumentRegion());
-			}
-			if ((fStructuredDocument.getCachedDocumentRegion() == null) && (Debug.displayWarnings)) {
-				// this will happen now legitamately when all text is deleted
-				// from a document
-				System.out.println("Warning: StructuredDocumentReParser::reSetCachedNode: could not find a node to cache! (its ok if all text deleted)"); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * @param newstructuredDocument
-	 *            com.ibm.sed.structuredDocument.impl.IStructuredDocument
-	 */
-	public void setStructuredDocument(IStructuredDocument newStructuredDocument) {
-		// NOTE: this method (and class) depend on being able to
-		// do the following cast (i.e. references some fields directly)
-		fStructuredDocument = (BasicStructuredDocument) newStructuredDocument;
-		fFindReplaceDocumentAdapter = null;
-	}
-
-	private IStructuredDocumentRegion splice(CoreNodeList oldNodes, CoreNodeList newNodes) {
-		//
-		IStructuredDocumentRegion firstOld = null;
-		IStructuredDocumentRegion firstNew = null;
-		IStructuredDocumentRegion lastOld = null;
-		IStructuredDocumentRegion lastNew = null;
-		//
-		IStructuredDocumentRegion oldPrevious = null;
-		IStructuredDocumentRegion oldNext = null;
-		IStructuredDocumentRegion newPrevious = null;
-		IStructuredDocumentRegion newNext = null;
-		//
-		// if called with both arguments empty lists, we can disregard.
-		// this happens, for example, when some text is replaced with the
-		// identical text.
-		if ((oldNodes.getLength() == 0) && (newNodes.getLength() == 0)) {
-			return null;
-		}
-		// get pointers
-		if (newNodes.getLength() > 0) {
-			firstNew = newNodes.item(0);
-			lastNew = newNodes.item(newNodes.getLength() - 1);
-		}
-		//
-		if (oldNodes.getLength() > 0) {
-			firstOld = oldNodes.item(0);
-			lastOld = oldNodes.item(oldNodes.getLength() - 1);
-			if (firstOld != null)
-				oldPrevious = firstOld.getPrevious();
-			if (lastOld != null)
-				oldNext = lastOld.getNext();
-		}
-		// handle switch
-		if (newNodes.getLength() > 0) {
-			// switch surrounding StructuredDocumentRegions' references to
-			// lists
-			if (oldPrevious != null)
-				oldPrevious.setNext(firstNew);
-			if (newPrevious != null)
-				newPrevious.setNext(firstOld);
-			if (oldNext != null)
-				oldNext.setPrevious(lastNew);
-			if (newNext != null)
-				newNext.setPrevious(lastOld);
-			// switch list pointers to surrounding StructuredDocumentRegions
-			if (firstOld != null)
-				firstOld.setPrevious(newPrevious);
-			if (lastOld != null)
-				lastOld.setNext(newNext);
-			if (firstNew != null)
-				firstNew.setPrevious(oldPrevious);
-			if (lastNew != null)
-				lastNew.setNext(oldNext);
-		} else {
-			// short circuit when there are no new nodes
-			if (oldPrevious != null)
-				oldPrevious.setNext(oldNext);
-			if (oldNext != null)
-				oldNext.setPrevious(oldPrevious);
-		}
-		//
-		// SIDE EFFECTs
-		// if we have oldNodes, and if oldNext or oldPrevious is null,
-		// that means we are replacing
-		// the lastNode or firstNode the structuredDocuments's chain of nodes,
-		// so we need to update the structuredDocuments last or first Node
-		// as the last or first of the new nodes.
-		// (and sometimes even these will be null! such as when deleting all
-		// text in a document).
-		if ((oldNext == null) && (oldNodes.getLength() > 0)) {
-			if (newNodes.getLength() > 0) {
-				fStructuredDocument.setLastDocumentRegion(lastNew);
-			} else {
-				// in this case, the last node is being deleted, but not
-				// replaced
-				// with anything. In this case, we can just back up one
-				// from the first old node
-				fStructuredDocument.setLastDocumentRegion(firstOld.getPrevious());
-			}
-		}
-		if ((oldPrevious == null) && (oldNodes.getLength() > 0)) {
-			if (newNodes.getLength() > 0) {
-				fStructuredDocument.setFirstDocumentRegion(firstNew);
-			} else {
-				// in this case the first node is being deleted, but not
-				// replaced
-				// with anything. So, we just go one forward past the last old
-				// node.
-				fStructuredDocument.setFirstDocumentRegion(lastOld.getNext());
-			}
-		}
-		// as a tiny optimization, we return the first of the downstream
-		// nodes,
-		// if any
-		return oldNext;
-	}
-
-	/**
-	 * The purpose of this method is to "reuse" the old container region, when
-	 * found to be same (so same instance doesn't change). The goal is to
-	 * "transform" the old region, so its equivelent to the newly parsed one.
-	 *  
-	 */
-	private ITextRegion swapNewForOldRegion(IStructuredDocumentRegion oldNode, ITextRegion oldRegion, IStructuredDocumentRegion newNode, ITextRegion newRegion) {
-		// makes the old region instance the correct size.
-		oldRegion.equatePositions(newRegion);
-		// adjusts old node instance appropriately
-		oldNode.setLength(newNode.getLength());
-		oldNode.setEnded(newNode.isEnded());
-		// we do have to set the parent document, since the oldNode's
-		// were set to a temporary one, then newNode's have the
-		// right one.
-		oldNode.setParentDocument(newNode.getParentDocument());
-		// if we're transforming a container region, we need to be sure to
-		// transfer the new embedded regions, to the old parent
-		// Note: if oldRegion hasEmbeddedRegions, then we know the
-		// newRegion does too, since we got here because they were the
-		// same type.
-		if (isCollectionRegion(oldRegion)) { // ||
-			// hasContainerRegions(oldRegion))
-			// {
-			transferEmbeddedRegions(oldNode, (ITextRegionContainer) oldRegion, (ITextRegionContainer) newRegion);
-		}
-		return oldRegion;
-	}
-
-	private IStructuredDocumentRegion switchNodeLists(CoreNodeList oldNodes, CoreNodeList newNodes) {
-		IStructuredDocumentRegion result = splice(oldNodes, newNodes);
-		// ensure that the old nodes hold no references to the existing model
-		if (oldNodes.getLength() > 0) {
-			IStructuredDocumentRegion firstItem = oldNodes.item(0);
-			firstItem.setPrevious(null);
-			IStructuredDocumentRegion lastItem = oldNodes.item(oldNodes.getLength() - 1);
-			lastItem.setNext(null);
-		}
-		return result;
-	}
-
-	/**
-	 * The purpose of this method is to "reuse" the old container region, when
-	 * found to be same (so same instance doesn't change). The goal is to
-	 * "transform" the old region, so its equivelent to the newly parsed one.
-	 *  
-	 */
-	private void transferEmbeddedRegions(IStructuredDocumentRegion oldNode, ITextRegionContainer oldRegion, ITextRegionContainer newRegion) {
-		// the oldRegion should already have the right parent, since
-		// we got here because all's equivelent except the region
-		// postions have changed.
-		//oldRegion.setParent(newRegion.getParent());
-		// but we should check if there's "nested" embedded regions, and if
-		// so, we can just move them over. setting their parent as this old
-		// region.
-		ITextRegionList newRegionsToTransfer = newRegion.getRegions();
-		oldRegion.setRegions(newRegionsToTransfer);
-		Iterator newRegionsInOldOne = newRegionsToTransfer.iterator();
-		while (newRegionsInOldOne.hasNext()) {
-			ITextRegion newOne = (ITextRegion) newRegionsInOldOne.next();
-			if (isCollectionRegion(newOne)) { // ||
-				// hasContainerRegions(newOne)) {
-				//((ITextRegionContainer) newOne).setParent(oldRegion);
-				oldRegion.setRegions(newRegion.getRegions());
-			}
-		}
-	}
-
-	private void updateDownStreamRegions(IStructuredDocumentRegion flatNode, ITextRegion lastKnownRegion) {
-		// so all regions after the last known region (last known to be ok)
-		// have to have their start and end values adjusted.
-		ITextRegionList regions = flatNode.getRegions();
-		int listLength = regions.size();
-		int startIndex = 0;
-		// first, loop through to find where to start
-		for (int i = 0; i < listLength; i++) {
-			ITextRegion region = regions.get(i);
-			if (region == lastKnownRegion) {
-				startIndex = i;
-				break;
-			}
-		}
-		// now, beginning one past the last known one, loop
-		// through to end of list, adjusting the start and end postions.
-		startIndex++;
-		for (int j = startIndex; j < listLength; j++) {
-			ITextRegion region = regions.get(j);
-			region.adjustStart(fLengthDifference);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentRegionEnumeration.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentRegionEnumeration.java
deleted file mode 100644
index ee75e6a..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentRegionEnumeration.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.text;
-
-
-
-import java.util.Enumeration;
-import java.util.NoSuchElementException;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.util.Debug;
-
-
-public class StructuredDocumentRegionEnumeration implements Enumeration {
-
-	private int count;
-	private IStructuredDocumentRegion head;
-	private IStructuredDocumentRegion oldHead;
-
-	/**
-	 * StructuredDocumentRegionEnumeration constructor comment.
-	 */
-	public StructuredDocumentRegionEnumeration(IStructuredDocumentRegion newHead) {
-		super();
-		IStructuredDocumentRegion countNode = head = newHead;
-		while (countNode != null) {
-			count++;
-			countNode = countNode.getNext();
-		}
-		if (Debug.DEBUG > 5) {
-			System.out.println("N Nodes in StructuredDocumentRegionEnumeration Contructor: " + count); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * StructuredDocumentRegionEnumeration constructor comment.
-	 */
-	public StructuredDocumentRegionEnumeration(IStructuredDocumentRegion start, IStructuredDocumentRegion end) {
-		super();
-		IStructuredDocumentRegion countNode = head = start;
-		if ((start == null) || (end == null)) {
-			// error condition
-			count = 0;
-			return;
-		}
-		//If both nodes are non-null, we assume there is always at least one
-		// item
-		count = 1;
-		while (countNode != end) {
-			count++;
-			countNode = countNode.getNext();
-		}
-		if (org.eclipse.wst.sse.core.util.Debug.DEBUG > 5) {
-			System.out.println("N Nodes in StructuredDocumentRegionEnumeration Contructor: " + count); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * hasMoreElements method comment.
-	 */
-	public synchronized boolean hasMoreElements() {
-		return count > 0;
-	}
-
-	/**
-	 * nextElement method comment.
-	 */
-	public synchronized Object nextElement() {
-		if (count > 0) {
-			count--;
-			oldHead = head;
-			head = head.getNext();
-			return oldHead;
-		}
-		throw new NoSuchElementException("StructuredDocumentRegionEnumeration"); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentRegionIterator.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentRegionIterator.java
deleted file mode 100644
index 6f1707e..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentRegionIterator.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.text;
-
-
-
-import java.util.Vector;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegionList;
-import org.eclipse.wst.sse.core.util.Assert;
-
-
-public class StructuredDocumentRegionIterator {
-
-	public final static IStructuredDocumentRegion adjustStart(IStructuredDocumentRegion headNode, int adjustment) {
-		IStructuredDocumentRegion aNode = headNode;
-		while (aNode != null) {
-			aNode.adjustStart(adjustment);
-			aNode = aNode.getNext();
-		}
-		return headNode;
-	}
-
-	public final static int countRegions(IStructuredDocumentRegionList flatNodes) {
-		int result = 0;
-		if (flatNodes != null) {
-			int length = flatNodes.getLength();
-			for (int i = 0; i < length; i++) {
-				IStructuredDocumentRegion node = flatNodes.item(i);
-				// don't know why, but we're getting null pointer exceptions
-				// in this method
-				if (node != null) {
-					result = result + node.getNumberOfRegions();
-				}
-			}
-		}
-		return result;
-	}
-
-	public final static String getText(CoreNodeList flatNodes) {
-		String result = null;
-		if (flatNodes == null) {
-			result = ""; //$NON-NLS-1$
-		} else {
-			StringBuffer buff = new StringBuffer();
-			//IStructuredDocumentRegion aNode = null;
-			int length = flatNodes.getLength();
-			for (int i = 0; i < length; i++) {
-				buff.append(flatNodes.item(i).getText());
-			}
-			result = buff.toString();
-		}
-		return result;
-	}
-
-	public final static CoreNodeList setParentDocument(CoreNodeList nodelist, IStructuredDocument textStore) {
-		Assert.isNotNull(nodelist, "nodelist was null in CoreNodeList::setTextStore(CoreNodeList, StructuredTextStore)"); //$NON-NLS-1$
-		int len = nodelist.getLength();
-		for (int i = 0; i < len; i++) {
-			IStructuredDocumentRegion node = nodelist.item(i);
-			//Assert.isNotNull(node, "who's putting null in the node list? in
-			// CoreNodeList::setTextStore(CoreNodeList,
-			// StructuredTextStore)"); //$NON-NLS-1$
-			node.setParentDocument(textStore);
-		}
-		return nodelist;
-	}
-
-	//	public final static IStructuredDocumentRegion
-	// setStructuredDocument(IStructuredDocumentRegion headNode,
-	// BasicStructuredDocument structuredDocument) {
-	//		IStructuredDocumentRegion aNode = headNode;
-	//		while (aNode != null) {
-	//			aNode.setParentDocument(structuredDocument);
-	//			aNode = (IStructuredDocumentRegion) aNode.getNext();
-	//		}
-	//		return headNode;
-	//	}
-	public final static IStructuredDocumentRegion setParentDocument(IStructuredDocumentRegion headNode, IStructuredDocument document) {
-		IStructuredDocumentRegion aNode = headNode;
-		while (aNode != null) {
-			aNode.setParentDocument(document);
-			aNode = aNode.getNext();
-		}
-		return headNode;
-	}
-
-	public final static Vector toVector(IStructuredDocumentRegion headNode) {
-		IStructuredDocumentRegion aNode = headNode;
-		Vector v = new Vector();
-		while (aNode != null) {
-			v.addElement(aNode);
-			aNode = aNode.getNext();
-		}
-		return v;
-	}
-
-	/**
-	 *  
-	 */
-	private StructuredDocumentRegionIterator() {
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentSequentialRewriteTextStore.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentSequentialRewriteTextStore.java
deleted file mode 100644
index 5c31aa8..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentSequentialRewriteTextStore.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.text;
-
-import org.eclipse.jface.text.ITextStore;
-import org.eclipse.jface.text.SequentialRewriteTextStore;
-
-public class StructuredDocumentSequentialRewriteTextStore extends SequentialRewriteTextStore implements CharSequence, IRegionComparible {
-
-	/**
-	 * @param source
-	 */
-	public StructuredDocumentSequentialRewriteTextStore(ITextStore source) {
-		super(source);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.CharSequence#charAt(int)
-	 */
-	public char charAt(int index) {
-		return get(index);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.CharSequence#length()
-	 */
-	public int length() {
-		return getLength();
-	}
-
-	/**
-	 * @param c
-	 * @param d
-	 * @return
-	 */
-	private boolean matchesIgnoreCase(char c1, char c2) {
-		// we check both case conversions to handle those few cases,
-		// in languages such as Turkish, which have some characters
-		// which sort of have 3 cases.
-		boolean result = false;
-		if (Character.toUpperCase(c1) == Character.toUpperCase(c2))
-			result = true;
-		else if (Character.toLowerCase(c1) == Character.toLowerCase(c2))
-			result = true;
-		return result;
-	}
-
-	public boolean regionMatches(int offset, int length, String stringToCompare) {
-		boolean result = false;
-		int compareLength = stringToCompare.length();
-		if (compareLength == length) {
-			int endOffset = offset + length;
-			if (endOffset <= length()) {
-				result = regionMatches(offset, stringToCompare);
-			}
-		}
-
-		return result;
-	}
-
-	/**
-	 * This method assumes all lengths have been checked and fall withint
-	 * exceptable limits
-	 * 
-	 * @param offset
-	 * @param stringToCompare
-	 * @return
-	 */
-	private boolean regionMatches(int offset, String stringToCompare) {
-		boolean result = true;
-		int stringOffset = 0;
-		int len = stringToCompare.length();
-		for (int i = offset; i < len; i++) {
-			if (charAt(i) != stringToCompare.charAt(stringOffset++)) {
-				result = false;
-				break;
-			}
-		}
-		return result;
-	}
-
-	public boolean regionMatchesIgnoreCase(int offset, int length, String stringToCompare) {
-		boolean result = false;
-		int compareLength = stringToCompare.length();
-		if (compareLength == length) {
-			int endOffset = offset + length;
-			if (endOffset <= length()) {
-				result = regionMatchesIgnoreCase(offset, stringToCompare);
-			}
-		}
-
-		return result;
-	}
-
-	private boolean regionMatchesIgnoreCase(int offset, String stringToCompare) {
-		boolean result = true;
-		int stringOffset = 0;
-		int len = stringToCompare.length();
-		for (int i = offset; i < len; i++) {
-			if (!matchesIgnoreCase(charAt(i), stringToCompare.charAt(stringOffset++))) {
-				result = false;
-				break;
-			}
-		}
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.CharSequence#subSequence(int, int)
-	 */
-	public CharSequence subSequence(int start, int end) {
-
-		return get(start, end - start);
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentTextStore.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentTextStore.java
deleted file mode 100644
index 2751cae..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentTextStore.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.text;
-
-import org.eclipse.jface.text.GapTextStore;
-import org.eclipse.jface.text.ITextStore;
-
-public class StructuredDocumentTextStore implements ITextStore, CharSequence, IRegionComparible {
-
-	private GapTextStore fInternalStore;
-
-	/**
-	 *  
-	 */
-	public StructuredDocumentTextStore() {
-		this(50, 300);
-	}
-
-	/**
-	 * @param lowWatermark
-	 * @param highWatermark
-	 */
-	public StructuredDocumentTextStore(int lowWatermark, int highWatermark) {
-		super();
-		fInternalStore = new GapTextStore(lowWatermark, highWatermark);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.CharSequence#charAt(int)
-	 */
-	public char charAt(int index) {
-		return fInternalStore.get(index);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.ITextStore#get(int)
-	 */
-	public char get(int offset) {
-
-		return fInternalStore.get(offset);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.ITextStore#get(int, int)
-	 */
-	public String get(int offset, int length) {
-
-		return fInternalStore.get(offset, length);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.ITextStore#getLength()
-	 */
-	public int getLength() {
-
-		return fInternalStore.getLength();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.CharSequence#length()
-	 */
-	public int length() {
-
-		return fInternalStore.getLength();
-	}
-
-	private boolean matchesIgnoreCase(char c1, char c2) {
-		// we check both case conversions to handle those few cases,
-		// in languages such as Turkish, which have some characters
-		// which sort of have 3 cases.
-		boolean result = false;
-		if (Character.toUpperCase(c1) == Character.toUpperCase(c2))
-			result = true;
-		else if (Character.toLowerCase(c1) == Character.toLowerCase(c2))
-			result = true;
-		return result;
-	}
-
-	public boolean regionMatches(int offset, int length, String stringToCompare) {
-		boolean result = false;
-		int compareLength = stringToCompare.length();
-		if (compareLength == length) {
-			int endOffset = offset + length;
-			if (endOffset <= length()) {
-				result = regionMatches(offset, stringToCompare);
-			}
-		}
-
-		return result;
-	}
-
-	/**
-	 * This method assumes all lengths have been checked and fall withint
-	 * exceptable limits
-	 * 
-	 * @param offset
-	 * @param stringToCompare
-	 * @return
-	 */
-	private boolean regionMatches(int offset, String stringToCompare) {
-		boolean result = true;
-		int stringOffset = 0;
-		int len = stringToCompare.length();
-		for (int i = offset; i < len; i++) {
-			if (charAt(i) != stringToCompare.charAt(stringOffset++)) {
-				result = false;
-				break;
-			}
-		}
-		return result;
-	}
-
-	public boolean regionMatchesIgnoreCase(int offset, int length, String stringToCompare) {
-		boolean result = false;
-		int compareLength = stringToCompare.length();
-		if (compareLength == length) {
-			int endOffset = offset + length;
-			if (endOffset <= length()) {
-				result = regionMatchesIgnoreCase(offset, stringToCompare);
-			}
-		}
-
-		return result;
-	}
-
-	private boolean regionMatchesIgnoreCase(int offset, String stringToCompare) {
-		boolean result = true;
-		int stringOffset = 0;
-		int len = stringToCompare.length();
-		for (int i = offset; i < len; i++) {
-			if (!matchesIgnoreCase(charAt(i), stringToCompare.charAt(stringOffset++))) {
-				result = false;
-				break;
-			}
-		}
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.ITextStore#replace(int, int,
-	 *      java.lang.String)
-	 */
-	public void replace(int offset, int length, String text) {
-		fInternalStore.replace(offset, length, text);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.ITextStore#set(java.lang.String)
-	 */
-	public void set(String text) {
-		fInternalStore.set(text);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.CharSequence#subSequence(int, int)
-	 */
-	public CharSequence subSequence(int start, int end) {
-		// convert 'end' to 'length'
-		return fInternalStore.get(start, end - start);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/SubSetTextStore.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/SubSetTextStore.java
deleted file mode 100644
index caca8b9..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/SubSetTextStore.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.text;
-
-/**
- * This is a convience or utility class that allows you to make a copy of a
- * part of a larger text store, but have the copy behave as if it was the
- * larger text store.
- * 
- * In other words, it provides a subset of a larger document, that "looks like"
- * the orginal document. That is, "looks like" in terms of offsets and lengths.
- * Valid access can only be made to data between the orignal offsets, even
- * though those offsets are in the same units at the original, and even though
- * the length appears to be long.
- * 
- * For example, if a subsettext store is created for the def part of abcdefgh,
- * then get(3,5) is valid, getLength is 8. Any other access, such as
- * getChar(2), would be invalid.
- */
-import org.eclipse.jface.text.ITextStore;
-
-/**
- * Similar to basics of IDocument, but the offsets are mapped from coordinates
- * of underlying storage to a "virtual" document.
- */
-public class SubSetTextStore implements ITextStore {
-	private int pseudoBeginOffset; // maps to "zero" postion of new text
-	//private int pseudoEndOffset;
-	private int pseudoLength; // length of old/original document
-	private StringBuffer stringBuffer = new StringBuffer();
-
-	/**
-	 * SubSetTextStore constructor comment.
-	 * 
-	 * @param initialContent
-	 *            java.lang.String
-	 */
-	public SubSetTextStore(String initialContent, int beginOffset, int endOffset, int originalDocumentLength) {
-		super();
-		pseudoBeginOffset = beginOffset;
-		//pseudoEndOffset = endOffset;
-		// used to be originalDocument.getLength ... not sure if used, or
-		// which
-		// is right
-		pseudoLength = originalDocumentLength;
-		stringBuffer = new StringBuffer(initialContent);
-		//set(initialContent);
-	}
-
-	// this is our "private" get, which methods in this class should
-	// use to get using "real" coordinates of underlying representation.
-	private String _get(int begin, int length) {
-		char[] chars = new char[length];
-		int srcEnd = begin + length;
-		stringBuffer.getChars(begin, srcEnd, chars, 0);
-		return new String(chars);
-	}
-
-	public char get(int offset) {
-		return stringBuffer.charAt(offset - pseudoBeginOffset);
-	}
-
-	/**
-	 * @return java.lang.String
-	 * @param begin
-	 *            int
-	 * @param end
-	 *            int
-	 */
-	public String get(int begin, int length) {
-		// remap the begin and end to "appear" to be in the
-		// same coordinates of the original parentDocument
-		return _get(begin - pseudoBeginOffset, length);
-	}
-
-	/**
-	 * @return java.lang.String
-	 * @param begin
-	 *            int
-	 * @param end
-	 *            int
-	 */
-	public char getChar(int pos) {
-		// remap the begin and end to "appear" to be in the
-		// same coordinates of the original parentDocument
-		return get(pos - pseudoBeginOffset);
-	}
-
-	/**
-	 * We redefine getLength so its not the true length of this sub-set
-	 * document, but the length of the original. This is needed, as a simple
-	 * example, if you want to see if the pseudo end is equal the last
-	 * position of the original document.
-	 */
-	public int getLength() {
-		return pseudoLength;
-	}
-
-	/**
-	 * Returns the length as if considered a true, standalone document
-	 */
-	public int getTrueLength() {
-		return stringBuffer.length();
-	}
-
-	public void replace(int begin, int length, String changes) {
-		// remap the begin and end to "appear" to be in the
-		// same coordinates of the original parentDocument
-		int end = begin + length;
-		stringBuffer.replace(begin - pseudoBeginOffset, end, changes);
-	}
-
-	public void set(String text) {
-		stringBuffer.setLength(0);
-		stringBuffer.append(text);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/SynchronizedStructuredDocument.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/SynchronizedStructuredDocument.java
deleted file mode 100644
index 4b62131..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/SynchronizedStructuredDocument.java
+++ /dev/null
@@ -1,1026 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.text;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.BadPartitioningException;
-import org.eclipse.jface.text.BadPositionCategoryException;
-import org.eclipse.jface.text.DocumentPartitioningChangedEvent;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.jface.text.IPositionUpdater;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ISynchronizable;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.Position;
-import org.eclipse.wst.common.encoding.EncodingMemento;
-import org.eclipse.wst.sse.core.events.NewModelEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.parser.RegionParser;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegionList;
-import org.eclipse.wst.sse.core.text.IStructuredTextReParser;
-import org.eclipse.wst.sse.core.undo.IStructuredTextUndoManager;
-
-
-/**
- * 
- * @deprecated to be removed
- */
-
-public class SynchronizedStructuredDocument extends BasicStructuredDocument implements ISynchronizable {
-	private final Object fInternalLockObject = new byte[0];
-	private Object fLockObject;
-
-	/**
-	 *  
-	 */
-	public SynchronizedStructuredDocument() {
-		super();
-	}
-
-	/**
-	 * @param parser
-	 */
-	public SynchronizedStructuredDocument(RegionParser parser) {
-		super(parser);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#addPosition(org.eclipse.jface.text.Position)
-	 */
-	public void addPosition(Position position) throws BadLocationException {
-		synchronized (getLockObject()) {
-			super.addPosition(position);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#addPosition(java.lang.String,
-	 *      org.eclipse.jface.text.Position)
-	 */
-	public void addPosition(String category, Position position) throws BadLocationException, BadPositionCategoryException {
-		synchronized (getLockObject()) {
-			super.addPosition(category, position);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#addPositionCategory(java.lang.String)
-	 */
-	public void addPositionCategory(String category) {
-		synchronized (getLockObject()) {
-			super.addPositionCategory(category);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#addPositionUpdater(org.eclipse.jface.text.IPositionUpdater)
-	 */
-	public void addPositionUpdater(IPositionUpdater updater) {
-		synchronized (getLockObject()) {
-			super.addPositionUpdater(updater);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.CharSequence#charAt(int)
-	 */
-	public char charAt(int arg0) {
-		synchronized (getLockObject()) {
-			return super.charAt(arg0);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#clearReadOnly(int, int)
-	 */
-	public void clearReadOnly(int startOffset, int length) {
-		synchronized (getLockObject()) {
-			super.clearReadOnly(startOffset, length);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#computeIndexInCategory(java.lang.String,
-	 *      int)
-	 */
-	public int computeIndexInCategory(String category, int offset) throws BadPositionCategoryException, BadLocationException {
-		synchronized (getLockObject()) {
-			return super.computeIndexInCategory(category, offset);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#computeNumberOfLines(java.lang.String)
-	 */
-	public int computeNumberOfLines(String text) {
-		synchronized (getLockObject()) {
-			return super.computeNumberOfLines(text);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#computePartitioning(int, int)
-	 */
-	public ITypedRegion[] computePartitioning(int offset, int length) throws BadLocationException {
-		synchronized (getLockObject()) {
-			return super.computePartitioning(offset, length);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension3#computePartitioning(java.lang.String,
-	 *      int, int, boolean)
-	 */
-	public ITypedRegion[] computePartitioning(String partitioning, int offset, int length, boolean includeZeroLengthPartitions) throws BadLocationException, BadPartitioningException {
-		synchronized (getLockObject()) {
-			return super.computePartitioning(partitioning, offset, length, includeZeroLengthPartitions);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#containsPosition(java.lang.String,
-	 *      int, int)
-	 */
-	public boolean containsPosition(String category, int offset, int length) {
-		synchronized (getLockObject()) {
-			return super.containsPosition(category, offset, length);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#containsPositionCategory(java.lang.String)
-	 */
-	public boolean containsPositionCategory(String category) {
-		synchronized (getLockObject()) {
-			return super.containsPositionCategory(category);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#containsReadOnly(int,
-	 *      int)
-	 */
-	public boolean containsReadOnly(int startOffset, int length) {
-		synchronized (getLockObject()) {
-			return super.containsReadOnly(startOffset, length);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument#fireDocumentPartitioningChanged(org.eclipse.jface.text.DocumentPartitioningChangedEvent)
-	 */
-	protected void fireDocumentPartitioningChanged(DocumentPartitioningChangedEvent event) {
-		synchronized (getLockObject()) {
-			super.fireDocumentPartitioningChanged(event);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#get()
-	 */
-	public String get() {
-		synchronized (getLockObject()) {
-			return super.get();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#get(int, int)
-	 */
-	public String get(int offset, int length) {
-		synchronized (getLockObject()) {
-			return super.get(offset, length);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class adapter) {
-		synchronized (getLockObject()) {
-			return super.getAdapter(adapter);
-		}
-	}
-
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument#getCachedDocumentRegion()
-	 */
-	IStructuredDocumentRegion getCachedDocumentRegion() {
-		synchronized (getLockObject()) {
-			return super.getCachedDocumentRegion();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#getChar(int)
-	 */
-	public char getChar(int pos) throws BadLocationException {
-		synchronized (getLockObject()) {
-			return super.getChar(pos);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#getContentType(int)
-	 */
-	public String getContentType(int offset) throws BadLocationException {
-		synchronized (getLockObject()) {
-			return super.getContentType(offset);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension3#getContentType(java.lang.String,
-	 *      int, boolean)
-	 */
-	public String getContentType(String partitioning, int offset, boolean preferOpenPartitions) throws BadLocationException, BadPartitioningException {
-		synchronized (getLockObject()) {
-			return super.getContentType(partitioning, offset, preferOpenPartitions);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#getDocumentPartitioner()
-	 */
-	public IDocumentPartitioner getDocumentPartitioner() {
-		synchronized (getLockObject()) {
-			return super.getDocumentPartitioner();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension3#getDocumentPartitioner(java.lang.String)
-	 */
-	public IDocumentPartitioner getDocumentPartitioner(String partitioning) {
-		synchronized (getLockObject()) {
-			return super.getDocumentPartitioner(partitioning);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.document.IEncodedDocument#getEncodingMemento()
-	 */
-	public EncodingMemento getEncodingMemento() {
-		synchronized (getLockObject()) {
-			return super.getEncodingMemento();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#getFirstStructuredDocumentRegion()
-	 */
-	public IStructuredDocumentRegion getFirstStructuredDocumentRegion() {
-		synchronized (getLockObject()) {
-			return super.getFirstStructuredDocumentRegion();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#getLastStructuredDocumentRegion()
-	 */
-	public IStructuredDocumentRegion getLastStructuredDocumentRegion() {
-		synchronized (getLockObject()) {
-			return super.getLastStructuredDocumentRegion();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#getLegalContentTypes()
-	 */
-	public String[] getLegalContentTypes() {
-		synchronized (getLockObject()) {
-			return super.getLegalContentTypes();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension3#getLegalContentTypes(java.lang.String)
-	 */
-	public String[] getLegalContentTypes(String partitioning) throws BadPartitioningException {
-		synchronized (getLockObject()) {
-			return super.getLegalContentTypes(partitioning);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#getLegalLineDelimiters()
-	 */
-	public String[] getLegalLineDelimiters() {
-		synchronized (getLockObject()) {
-			return super.getLegalLineDelimiters();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#getLength()
-	 */
-	public int getLength() {
-		synchronized (getLockObject()) {
-			return super.getLength();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.document.IEncodedDocument#getLineDelimiter()
-	 */
-	public String getLineDelimiter() {
-		synchronized (getLockObject()) {
-			return super.getLineDelimiter();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#getLineDelimiter(int)
-	 */
-	public String getLineDelimiter(int line) throws BadLocationException {
-		synchronized (getLockObject()) {
-			return super.getLineDelimiter(line);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#getLineInformation(int)
-	 */
-	public IRegion getLineInformation(int line) throws BadLocationException {
-		synchronized (getLockObject()) {
-			return super.getLineInformation(line);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#getLineInformationOfOffset(int)
-	 */
-	public IRegion getLineInformationOfOffset(int offset) throws BadLocationException {
-		synchronized (getLockObject()) {
-			return super.getLineInformationOfOffset(offset);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#getLineLength(int)
-	 */
-	public int getLineLength(int line) throws BadLocationException {
-		synchronized (getLockObject()) {
-			return super.getLineLength(line);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#getLineOffset(int)
-	 */
-	public int getLineOffset(int line) throws BadLocationException {
-		synchronized (getLockObject()) {
-			return super.getLineOffset(line);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#getLineOfOffset(int)
-	 */
-	public int getLineOfOffset(int offset) {
-		synchronized (getLockObject()) {
-			return super.getLineOfOffset(offset);
-		}
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.ISynchronizable#getLockObject()
-	 */
-	public synchronized Object getLockObject() {
-		return fLockObject == null ? fInternalLockObject : fLockObject;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#getNumberOfLines()
-	 */
-	public int getNumberOfLines() {
-		synchronized (getLockObject()) {
-			return super.getNumberOfLines();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#getNumberOfLines(int, int)
-	 */
-	public int getNumberOfLines(int offset, int length) throws BadLocationException {
-		synchronized (getLockObject()) {
-			return super.getNumberOfLines(offset, length);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#getParser()
-	 */
-	public RegionParser getParser() {
-		synchronized (getLockObject()) {
-			return super.getParser();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#getPartition(int)
-	 */
-	public ITypedRegion getPartition(int offset) throws BadLocationException {
-		synchronized (getLockObject()) {
-			return super.getPartition(offset);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension3#getPartition(java.lang.String,
-	 *      int, boolean)
-	 */
-	public ITypedRegion getPartition(String partitioning, int offset, boolean preferOpenPartitions) throws BadLocationException, BadPartitioningException {
-		synchronized (getLockObject()) {
-			return super.getPartition(partitioning, offset, preferOpenPartitions);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension3#getPartitionings()
-	 */
-	public String[] getPartitionings() {
-		synchronized (getLockObject()) {
-			return super.getPartitionings();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#getPositionCategories()
-	 */
-	public String[] getPositionCategories() {
-		synchronized (getLockObject()) {
-			return super.getPositionCategories();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#getPositions(java.lang.String)
-	 */
-	public Position[] getPositions(String category) throws BadPositionCategoryException {
-		synchronized (getLockObject()) {
-			return super.getPositions(category);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#getPositionUpdaters()
-	 */
-	public IPositionUpdater[] getPositionUpdaters() {
-		synchronized (getLockObject()) {
-			return super.getPositionUpdaters();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#getRegionAtCharacterOffset(int)
-	 */
-	public IStructuredDocumentRegion getRegionAtCharacterOffset(int offset) {
-		synchronized (getLockObject()) {
-			return super.getRegionAtCharacterOffset(offset);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#getRegionList()
-	 */
-	public IStructuredDocumentRegionList getRegionList() {
-		synchronized (getLockObject()) {
-			return super.getRegionList();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#getReParser()
-	 */
-	public IStructuredTextReParser getReParser() {
-		synchronized (getLockObject()) {
-			return super.getReParser();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#getText()
-	 */
-	public String getText() {
-		synchronized (getLockObject()) {
-			return super.getText();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#getUndoManager()
-	 */
-	public IStructuredTextUndoManager getUndoManager() {
-		synchronized (getLockObject()) {
-			return super.getUndoManager();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument#initializeFirstAndLastDocumentRegion()
-	 */
-	void initializeFirstAndLastDocumentRegion() {
-		synchronized (getLockObject()) {
-			super.initializeFirstAndLastDocumentRegion();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#insertPositionUpdater(org.eclipse.jface.text.IPositionUpdater,
-	 *      int)
-	 */
-	public void insertPositionUpdater(IPositionUpdater updater, int index) {
-		synchronized (getLockObject()) {
-			super.insertPositionUpdater(updater, index);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.CharSequence#length()
-	 */
-	public int length() {
-		synchronized (getLockObject()) {
-			return super.length();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#makeReadOnly(int, int)
-	 */
-	public void makeReadOnly(int startOffset, int length) {
-		synchronized (getLockObject()) {
-			super.makeReadOnly(startOffset, length);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#newInstance()
-	 */
-	public IStructuredDocument newInstance() {
-		synchronized (getLockObject()) {
-			return super.newInstance();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension#registerPostNotificationReplace(org.eclipse.jface.text.IDocumentListener,
-	 *      org.eclipse.jface.text.IDocumentExtension.IReplace)
-	 */
-	public void registerPostNotificationReplace(IDocumentListener owner, IReplace replace) {
-		synchronized (getLockObject()) {
-			super.registerPostNotificationReplace(owner, replace);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#removePosition(org.eclipse.jface.text.Position)
-	 */
-	public void removePosition(Position position) {
-		synchronized (getLockObject()) {
-			super.removePosition(position);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#removePosition(java.lang.String,
-	 *      org.eclipse.jface.text.Position)
-	 */
-	public void removePosition(String category, Position position) throws BadPositionCategoryException {
-		synchronized (getLockObject()) {
-			super.removePosition(category, position);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#removePositionCategory(java.lang.String)
-	 */
-	public void removePositionCategory(String category) throws BadPositionCategoryException {
-		synchronized (getLockObject()) {
-			super.removePositionCategory(category);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#replace(int, int,
-	 *      java.lang.String)
-	 */
-	public void replace(int pos, int length, String string) throws BadLocationException {
-		synchronized (getLockObject()) {
-			super.replace(pos, length, string);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#replaceText(java.lang.Object,
-	 *      int, int, java.lang.String)
-	 */
-	public StructuredDocumentEvent replaceText(Object requester, int start, int replacementLength, String changes) {
-		synchronized (getLockObject()) {
-			return super.replaceText(requester, start, replacementLength, changes);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#replaceText(java.lang.Object,
-	 *      int, int, java.lang.String, boolean)
-	 */
-	public StructuredDocumentEvent replaceText(Object requester, int start, int replacementLength, String changes, boolean ignoreReadOnlySettings) {
-		synchronized (getLockObject()) {
-			return super.replaceText(requester, start, replacementLength, changes, ignoreReadOnlySettings);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument#resetParser(int,
-	 *      int)
-	 */
-	void resetParser(int startOffset, int endOffset) {
-		synchronized (getLockObject()) {
-			super.resetParser(startOffset, endOffset);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension#resumePostNotificationProcessing()
-	 */
-	public void resumePostNotificationProcessing() {
-		synchronized (getLockObject()) {
-			super.resumePostNotificationProcessing();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#search(int, java.lang.String,
-	 *      boolean, boolean, boolean)
-	 */
-	public int search(int startPosition, String findString, boolean forwardSearch, boolean caseSensitive, boolean wholeWord) throws BadLocationException {
-		synchronized (getLockObject()) {
-			return super.search(startPosition, findString, forwardSearch, caseSensitive, wholeWord);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#set(java.lang.String)
-	 */
-	public void set(String string) {
-		synchronized (getLockObject()) {
-			super.set(string);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument#setCachedDocumentRegion(org.eclipse.wst.sse.core.text.IStructuredDocumentRegion)
-	 */
-	public void setCachedDocumentRegion(IStructuredDocumentRegion structuredRegion) {
-		synchronized (getLockObject()) {
-			super.setCachedDocumentRegion(structuredRegion);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocument#setDocumentPartitioner(org.eclipse.jface.text.IDocumentPartitioner)
-	 */
-	public void setDocumentPartitioner(IDocumentPartitioner partitioner) {
-		synchronized (getLockObject()) {
-			super.setDocumentPartitioner(partitioner);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension3#setDocumentPartitioner(java.lang.String,
-	 *      org.eclipse.jface.text.IDocumentPartitioner)
-	 */
-	public void setDocumentPartitioner(String partitioning, IDocumentPartitioner partitioner) {
-		synchronized (getLockObject()) {
-			super.setDocumentPartitioner(partitioning, partitioner);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.document.IEncodedDocument#setEncodingMemento(org.eclipse.wst.common.encoding.EncodingMemento)
-	 */
-	public void setEncodingMemento(EncodingMemento encodingMemento) {
-		synchronized (getLockObject()) {
-			super.setEncodingMemento(encodingMemento);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument#setFirstDocumentRegion(org.eclipse.wst.sse.core.text.IStructuredDocumentRegion)
-	 */
-	void setFirstDocumentRegion(IStructuredDocumentRegion region) {
-		synchronized (getLockObject()) {
-			super.setFirstDocumentRegion(region);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument#setLastDocumentRegion(org.eclipse.wst.sse.core.text.IStructuredDocumentRegion)
-	 */
-	void setLastDocumentRegion(IStructuredDocumentRegion region) {
-		synchronized (getLockObject()) {
-			super.setLastDocumentRegion(region);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.document.IEncodedDocument#setLineDelimiter(java.lang.String)
-	 */
-	public void setLineDelimiter(String delimiter) {
-		synchronized (getLockObject()) {
-			super.setLineDelimiter(delimiter);
-		}
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.ISynchronizable#setLockObject(java.lang.Object)
-	 */
-	public synchronized void setLockObject(Object lockObject) {
-		// TODO_future: Note, technically, we should have an array of "ordered
-		// lock objects",
-		// or some way for clients to add and remove. We're assuming once set,
-		// its
-		// permenant or nearly so, and or that clients know how to set one at
-		// a time. If a client tries to set the lock object, and its already
-		// set,
-		// a runtime exception is thrown, since this could prove "fatal" to
-		// clients
-		// thinking they had the lock, when they didn't.
-		if (fLockObject == null) {
-			// all is ok, can assign new one.
-			fLockObject = lockObject;
-		} else {
-			// lock object is in use, so throw execption,
-			// unless argument is null.
-			if (lockObject == null) {
-				fLockObject = lockObject;
-			} else {
-				throw new IllegalStateException("Program flow error: attempt to set structured document lock object when it was already set");
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument#setParser(org.eclipse.wst.sse.core.parser.RegionParser)
-	 */
-	public void setParser(RegionParser newParser) {
-		synchronized (getLockObject()) {
-			super.setParser(newParser);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument#setReParser(org.eclipse.wst.sse.core.text.IStructuredTextReParser)
-	 */
-	public void setReParser(IStructuredTextReParser newReParser) {
-		synchronized (getLockObject()) {
-			super.setReParser(newReParser);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#setText(java.lang.Object,
-	 *      java.lang.String)
-	 */
-	public NewModelEvent setText(Object requester, String theString) {
-		synchronized (getLockObject()) {
-			return super.setText(requester, theString);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.text.IStructuredDocument#setUndoManager(org.eclipse.wst.sse.core.undo.IStructuredTextUndoManager)
-	 */
-	public void setUndoManager(IStructuredTextUndoManager undoManager) {
-		synchronized (getLockObject()) {
-			super.setUndoManager(undoManager);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension#startSequentialRewrite(boolean)
-	 */
-	public void startSequentialRewrite(boolean normalized) {
-		synchronized (getLockObject()) {
-			super.startSequentialRewrite(normalized);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension#stopPostNotificationProcessing()
-	 */
-	public void stopPostNotificationProcessing() {
-		synchronized (getLockObject()) {
-			super.stopPostNotificationProcessing();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentExtension#stopSequentialRewrite()
-	 */
-	public void stopSequentialRewrite() {
-		synchronized (getLockObject()) {
-			super.stopSequentialRewrite();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.CharSequence#subSequence(int, int)
-	 */
-	public CharSequence subSequence(int arg0, int arg1) {
-		synchronized (getLockObject()) {
-			return super.subSequence(arg0, arg1);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument#updateDocumentData(int,
-	 *      int, java.lang.String)
-	 */
-	public void updateDocumentData(int start, int lengthToReplace, String changes) {
-		synchronized (getLockObject()) {
-			super.updateDocumentData(start, lengthToReplace, changes);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/TextRegionListImpl.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/TextRegionListImpl.java
deleted file mode 100644
index 1985ede..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/TextRegionListImpl.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.text;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-
-
-public class TextRegionListImpl implements ITextRegionList {
-
-	private 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$
-
-		}
-
-	}
-
-	private class RegionIterator implements Iterator {
-		private ITextRegion[] fIteratorRegions;
-		private int index = -1;
-		private int maxindex = -1;
-
-		public RegionIterator() {
-			fIteratorRegions = toArray();
-			maxindex = fIteratorRegions.length - 1;
-		}
-
-		public boolean hasNext() {
-			return index < maxindex;
-		}
-
-		public Object next() {
-			if (!(index < maxindex))
-				throw new NoSuchElementException();
-			return fIteratorRegions[++index];
-		}
-
-		public void remove() {
-			throw new UnsupportedOperationException("can not remove regions via iterator"); //$NON-NLS-1$
-
-		}
-
-	}
-
-	private final static int growthConstant = 2;
-
-	private ITextRegion[] fRegions;
-	private int fRegionsCount = 0;
-
-	public TextRegionListImpl() {
-		super();
-	}
-
-	public TextRegionListImpl(ITextRegionList regionList) {
-		this();
-		fRegions = (ITextRegion[]) regionList.toArray().clone();
-		fRegionsCount = fRegions.length;
-	}
-
-	public boolean add(ITextRegion region) {
-
-		if (region == null)
-			return false;
-		ensureCapacity(fRegionsCount + 1);
-		fRegions[fRegionsCount++] = region;
-		return true;
-	}
-
-	public boolean addAll(int insertPos, ITextRegionList newRegions) {
-		// beginning of list is 0 to insertPos-1
-		// remainder of list is insertPos to fRegionsCount
-		// resulting total will be be fRegionsCount + newRegions.size()
-		if (insertPos < 0 || insertPos > fRegionsCount) {
-			throw new ArrayIndexOutOfBoundsException(insertPos);
-		}
-
-		int newRegionsSize = newRegions.size();
-
-		ensureCapacity(fRegionsCount + newRegionsSize);
-
-		int numMoved = fRegionsCount - insertPos;
-		if (numMoved > 0)
-			System.arraycopy(fRegions, insertPos, fRegions, insertPos + newRegionsSize, numMoved);
-
-		for (int i = 0; i < newRegionsSize; i++)
-			fRegions[insertPos++] = newRegions.get(i);
-
-		fRegionsCount += newRegionsSize;
-		return newRegionsSize != 0;
-
-	}
-
-	public void clear() {
-		// note: size of array is not reduced!
-		fRegionsCount = 0;
-	}
-
-	private void ensureCapacity(int needed) {
-		if (fRegions == null) {
-			// first time
-			fRegions = new ITextRegion[needed];
-			return;
-		}
-		int oldLength = fRegions.length;
-		if (oldLength < needed) {
-			ITextRegion[] oldAdapters = fRegions;
-			ITextRegion[] newAdapters = new ITextRegion[needed + growthConstant];
-			System.arraycopy(oldAdapters, 0, newAdapters, 0, fRegionsCount);
-			fRegions = newAdapters;
-		}
-	}
-
-	public ITextRegion get(int index) {
-		if (index < 0 || index > fRegionsCount) {
-			throw new ArrayIndexOutOfBoundsException(index);
-		}
-		ITextRegion result = fRegions[index];
-		return result;
-	}
-
-	public int indexOf(ITextRegion region) {
-
-		int result = -1;
-		if (region != null) {
-			if (fRegions != null) {
-				for (int i = 0; i < fRegions.length; i++) {
-					if (region.equals(fRegions[i])) {
-						result = i;
-						break;
-					}
-				}
-			}
-		}
-		return result;
-	}
-
-	public boolean isEmpty() {
-		return fRegionsCount == 0;
-	}
-
-	public Iterator iterator() {
-		if (size() == 0) {
-			return new NullIterator();
-		} else {
-			return new RegionIterator();
-		}
-	}
-
-	public ITextRegion remove(int index) {
-		// much more efficient ways to implement this, but
-		// I doubt if called often
-		ITextRegion oneToRemove = get(index);
-		remove(oneToRemove);
-		return oneToRemove;
-	}
-
-	public void remove(ITextRegion a) {
-		if (fRegions == null || a == null)
-			return;
-		int newIndex = 0;
-		ITextRegion[] newRegions = new ITextRegion[fRegionsCount];
-		int oldRegionCount = fRegionsCount;
-		boolean found = false;
-		for (int oldIndex = 0; oldIndex < oldRegionCount; oldIndex++) {
-			ITextRegion candidate = fRegions[oldIndex];
-			if (a == candidate) {
-				fRegionsCount--;
-				found = true;
-			} else
-				newRegions[newIndex++] = fRegions[oldIndex];
-		}
-		if (found)
-			fRegions = newRegions;
-	}
-
-	public void removeAll(ITextRegionList regionList) {
-		// much more efficient ways to implement this, but
-		// I doubt if called often
-		if (regionList != null) {
-			for (int i = 0; i < regionList.size(); i++) {
-				this.remove(regionList.get(i));
-			}
-		}
-
-	}
-
-	public int size() {
-		return fRegionsCount;
-	}
-
-	public ITextRegion[] toArray() {
-		// return "clone" of internal array
-		ITextRegion[] newArray = new ITextRegion[fRegionsCount];
-		System.arraycopy(fRegions, 0, newArray, 0, fRegionsCount);
-		return newArray;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextCommandImpl.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextCommandImpl.java
deleted file mode 100644
index 00e0f4e..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextCommandImpl.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.undo;
-
-
-
-import org.eclipse.emf.common.command.AbstractCommand;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.sse.core.internal.Logger;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.undo.StructuredTextCommand;
-
-
-public class StructuredTextCommandImpl extends AbstractCommand implements StructuredTextCommand {
-
-	protected IDocument fDocument = null; // needed for updating the text
-	protected String fTextDeleted = null;
-	protected int fTextEnd = -1;
-	protected String fTextInserted = null;
-	protected int fTextStart = -1;
-
-	/**
-	 * We have no-arg constructor non-public to force document to be specfied.
-	 *  
-	 */
-	protected StructuredTextCommandImpl() {
-		super();
-	}
-
-	public StructuredTextCommandImpl(IDocument document) {
-		this();
-		fDocument = document; // needed for updating the text
-	}
-
-	public void execute() {
-	}
-
-	/**
-	 * getTextDeleted method comment.
-	 */
-	public java.lang.String getTextDeleted() {
-		return fTextDeleted;
-	}
-
-	/**
-	 * textEnd is the same as (textStart + textInserted.length())
-	 */
-	public int getTextEnd() {
-		return fTextEnd;
-	}
-
-	/**
-	 * getTextInserted method comment.
-	 */
-	public java.lang.String getTextInserted() {
-		return fTextInserted;
-	}
-
-	/**
-	 * getTextStart method comment.
-	 */
-	public int getTextStart() {
-		return fTextStart;
-	}
-
-	protected boolean prepare() {
-		return true;
-	}
-
-	public void redo() {
-		if (fDocument instanceof IStructuredDocument) {
-			// note: one of the few places we programatically ignore read-only
-			// settings
-			((IStructuredDocument) fDocument).replaceText(this, fTextStart, fTextDeleted.length(), fTextInserted, true);
-		} else {
-			try {
-				fDocument.replace(fTextStart, fTextDeleted.length(), fTextInserted);
-			} catch (BadLocationException e) {
-				// assumed impossible, for now
-				Logger.logException(e);
-			}
-		}
-	}
-
-	/**
-	 * setTextDeleted method comment.
-	 */
-	public void setTextDeleted(java.lang.String textDeleted) {
-		fTextDeleted = textDeleted;
-	}
-
-	/**
-	 * setTextEnd method comment.
-	 */
-	public void setTextEnd(int textEnd) {
-		fTextEnd = textEnd;
-	}
-
-	/**
-	 * setTextInserted method comment.
-	 */
-	public void setTextInserted(java.lang.String textInserted) {
-		fTextInserted = textInserted;
-	}
-
-	/**
-	 * setTextStart method comment.
-	 */
-	public void setTextStart(int textStart) {
-		fTextStart = textStart;
-	}
-
-	public void undo() {
-		if (fDocument instanceof IStructuredDocument) {
-			// note: one of the few places we programatically ignore read-only
-			// settings
-			((IStructuredDocument) fDocument).replaceText(this, fTextStart, fTextInserted.length(), fTextDeleted, true);
-		} else {
-			try {
-				fDocument.replace(fTextStart, fTextInserted.length(), fTextDeleted);
-			} catch (BadLocationException e) {
-				// assumed impossible, for now
-				Logger.logException(e);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextCompoundCommandImpl.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextCompoundCommandImpl.java
deleted file mode 100644
index bb8856a..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextCompoundCommandImpl.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.undo;
-
-
-
-import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.common.command.CompoundCommand;
-import org.eclipse.wst.sse.core.undo.CommandCursorPosition;
-
-
-
-public class StructuredTextCompoundCommandImpl extends CompoundCommand implements CommandCursorPosition {
-	protected int fRedoCursorPosition = -1;
-	protected int fRedoSelectionLength = 0;
-
-	protected int fUndoCursorPosition = -1;
-	protected int fUndoSelectionLength = 0;
-
-	/**
-	 * StructuredTextCompoundCommandImpl constructor comment.
-	 */
-	public StructuredTextCompoundCommandImpl() {
-		super();
-	}
-
-	/**
-	 * StructuredTextCompoundCommandImpl constructor comment.
-	 * 
-	 * @param resultIndex
-	 *            int
-	 */
-	public StructuredTextCompoundCommandImpl(int resultIndex) {
-		super(resultIndex);
-	}
-
-	/**
-	 * StructuredTextCompoundCommandImpl constructor comment.
-	 * 
-	 * @param resultIndex
-	 *            int
-	 * @param commandList
-	 *            java.util.List
-	 */
-	public StructuredTextCompoundCommandImpl(int resultIndex, java.util.List commandList) {
-		super(resultIndex, commandList);
-	}
-
-	/**
-	 * StructuredTextCompoundCommandImpl constructor comment.
-	 * 
-	 * @param resultIndex
-	 *            int
-	 * @param label
-	 *            java.lang.String
-	 */
-	public StructuredTextCompoundCommandImpl(int resultIndex, String label) {
-		super(resultIndex, label);
-	}
-
-	/**
-	 * StructuredTextCompoundCommandImpl constructor comment.
-	 * 
-	 * @param resultIndex
-	 *            int
-	 * @param label
-	 *            java.lang.String
-	 * @param commandList
-	 *            java.util.List
-	 */
-	public StructuredTextCompoundCommandImpl(int resultIndex, String label, java.util.List commandList) {
-		super(resultIndex, label, commandList);
-	}
-
-	/**
-	 * StructuredTextCompoundCommandImpl constructor comment.
-	 * 
-	 * @param resultIndex
-	 *            int
-	 * @param label
-	 *            java.lang.String
-	 * @param description
-	 *            java.lang.String
-	 */
-	public StructuredTextCompoundCommandImpl(int resultIndex, String label, String description) {
-		super(resultIndex, label, description);
-	}
-
-	/**
-	 * StructuredTextCompoundCommandImpl constructor comment.
-	 * 
-	 * @param resultIndex
-	 *            int
-	 * @param label
-	 *            java.lang.String
-	 * @param description
-	 *            java.lang.String
-	 * @param commandList
-	 *            java.util.List
-	 */
-	public StructuredTextCompoundCommandImpl(int resultIndex, String label, String description, java.util.List commandList) {
-		super(resultIndex, label, description, commandList);
-	}
-
-	/**
-	 * StructuredTextCompoundCommandImpl constructor comment.
-	 * 
-	 * @param commandList
-	 *            java.util.List
-	 */
-	public StructuredTextCompoundCommandImpl(java.util.List commandList) {
-		super(commandList);
-	}
-
-	/**
-	 * StructuredTextCompoundCommandImpl constructor comment.
-	 * 
-	 * @param label
-	 *            java.lang.String
-	 */
-	public StructuredTextCompoundCommandImpl(String label) {
-		super(label);
-	}
-
-	/**
-	 * StructuredTextCompoundCommandImpl constructor comment.
-	 * 
-	 * @param label
-	 *            java.lang.String
-	 * @param commandList
-	 *            java.util.List
-	 */
-	public StructuredTextCompoundCommandImpl(String label, java.util.List commandList) {
-		super(label, commandList);
-	}
-
-	/**
-	 * StructuredTextCompoundCommandImpl constructor comment.
-	 * 
-	 * @param label
-	 *            java.lang.String
-	 * @param description
-	 *            java.lang.String
-	 */
-	public StructuredTextCompoundCommandImpl(String label, String description) {
-		super(label, description);
-	}
-
-	/**
-	 * StructuredTextCompoundCommandImpl constructor comment.
-	 * 
-	 * @param label
-	 *            java.lang.String
-	 * @param description
-	 *            java.lang.String
-	 * @param commandList
-	 *            java.util.List
-	 */
-	public StructuredTextCompoundCommandImpl(String label, String description, java.util.List commandList) {
-		super(label, description, commandList);
-	}
-
-	/**
-	 * Returns the cursor position to be set to after this command is redone.
-	 * 
-	 * @return int
-	 */
-	public int getRedoCursorPosition() {
-		int cursorPosition = -1;
-
-		if (fRedoCursorPosition != -1)
-			cursorPosition = fRedoCursorPosition;
-		else if (!commandList.isEmpty()) {
-			int commandListSize = commandList.size();
-			Command lastCommand = (Command) commandList.get(commandListSize - 1);
-
-			if (lastCommand instanceof CommandCursorPosition)
-				cursorPosition = ((CommandCursorPosition) lastCommand).getRedoCursorPosition();
-		}
-
-		return cursorPosition;
-	}
-
-	/**
-	 * Returns the length of text to be selected after this command is redone.
-	 * 
-	 * @return int
-	 */
-	public int getRedoSelectionLength() {
-		return fRedoSelectionLength;
-	}
-
-	/**
-	 * Returns the cursor position to be set to after this command is undone.
-	 * 
-	 * @return int
-	 */
-	public int getUndoCursorPosition() {
-		int cursorPosition = -1;
-
-		if (fUndoCursorPosition != -1)
-			cursorPosition = fUndoCursorPosition;
-		else if (!commandList.isEmpty()) {
-			// never used
-			//int commandListSize = commandList.size();
-			Command firstCommand = (Command) commandList.get(0);
-
-			if (firstCommand instanceof CommandCursorPosition)
-				cursorPosition = ((CommandCursorPosition) firstCommand).getUndoCursorPosition();
-		}
-
-		return cursorPosition;
-	}
-
-	/**
-	 * Returns the length of text to be selected after this command is undone.
-	 * 
-	 * @return int
-	 */
-	public int getUndoSelectionLength() {
-		return fUndoSelectionLength;
-	}
-
-	/**
-	 * Sets the cursor position to be used after this command is redone.
-	 */
-	public void setRedoCursorPosition(int cursorPosition) {
-		fRedoCursorPosition = cursorPosition;
-	}
-
-	/**
-	 * Sets the length of text to be selected after this command is redone.
-	 */
-	public void setRedoSelectionLength(int selectionLength) {
-		fRedoSelectionLength = selectionLength;
-	}
-
-	/**
-	 * Sets the cursor position to be used after this command is undone.
-	 */
-	public void setUndoCursorPosition(int cursorPosition) {
-		fUndoCursorPosition = cursorPosition;
-	}
-
-	/**
-	 * Sets the length of text to be selected after this command is undone.
-	 */
-	public void setUndoSelectionLength(int selectionLength) {
-		fUndoSelectionLength = selectionLength;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextUndoManager.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextUndoManager.java
deleted file mode 100644
index 04df924..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextUndoManager.java
+++ /dev/null
@@ -1,617 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.undo;
-
-import java.util.EventObject;
-
-import org.eclipse.emf.common.command.BasicCommandStack;
-import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.command.CommandStackListener;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.sse.core.IModelManager;
-import org.eclipse.wst.sse.core.IStructuredModel;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.events.IStructuredDocumentListener;
-import org.eclipse.wst.sse.core.events.NewDocumentEvent;
-import org.eclipse.wst.sse.core.events.NoChangeEvent;
-import org.eclipse.wst.sse.core.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.events.RegionsReplacedEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentRegionsReplacedEvent;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.undo.CommandCursorPosition;
-import org.eclipse.wst.sse.core.undo.IDocumentSelectionMediator;
-import org.eclipse.wst.sse.core.undo.IStructuredTextUndoManager;
-import org.eclipse.wst.sse.core.undo.StructuredTextCommand;
-import org.eclipse.wst.sse.core.undo.UndoDocumentEvent;
-import org.eclipse.wst.sse.core.util.Assert;
-import org.eclipse.wst.sse.core.util.Utilities;
-
-public class StructuredTextUndoManager implements IStructuredTextUndoManager {
-
-	class InternalCommandStackListener implements CommandStackListener {
-		public void commandStackChanged(EventObject event) {
-			resetInternalCommands();
-		}
-	}
-
-	class InternalStructuredDocumentListener implements IStructuredDocumentListener {
-
-		public void newModel(NewDocumentEvent structuredDocumentEvent) {
-			// Do nothing. Do not push the new model's structuredDocument
-			// changes
-			// onto the undo command stack, or else the user may be able to
-			// undo
-			// an existing file to an empty file.
-		}
-
-		public void noChange(NoChangeEvent structuredDocumentEvent) {
-			// Since "no change", do nothing.
-		}
-
-		public void nodesReplaced(StructuredDocumentRegionsReplacedEvent structuredDocumentEvent) {
-			processStructuredDocumentEvent(structuredDocumentEvent);
-		}
-
-		private void processStructuredDocumentEvent(String textDeleted, String textInserted, int textStart, int textEnd) {
-			if (fTextCommand != null && textStart == fTextCommand.getTextEnd()) {
-				// append to the text command
-				fTextCommand.setTextDeleted(fTextCommand.getTextDeleted().concat(textDeleted));
-				fTextCommand.setTextInserted(fTextCommand.getTextInserted().concat(textInserted));
-				fTextCommand.setTextEnd(textEnd);
-			} else if (fTextCommand != null && textStart == fTextCommand.getTextStart() - (textEnd - textStart + 1) && textEnd <= fTextCommand.getTextEnd() - (textEnd - textStart + 1) && textDeleted.length() == 1 && textInserted.length() == 0) {
-				// backspace pressed
-
-				// erase a character just inserted
-				if (fTextCommand.getTextInserted().length() > 0) {
-					fTextCommand.setTextInserted(fTextCommand.getTextInserted().substring(0, fTextCommand.getTextEnd() - fTextCommand.getTextStart() - 1));
-					fTextCommand.setTextEnd(textEnd);
-				}
-				// erase a character in the file
-				else {
-					fTextCommand.setTextDeleted(textDeleted.concat(fTextCommand.getTextDeleted()));
-					fTextCommand.setTextStart(textStart);
-				}
-			} else {
-				createNewTextCommand(textDeleted, textInserted, textStart, textEnd);
-			}
-
-			// save cursor position
-			fCursorPosition = textEnd;
-		}
-
-		private void processStructuredDocumentEvent(StructuredDocumentEvent structuredDocumentEvent) {
-			// Note: fListening tells us if we should listen to the
-			// StructuredDocumentEvent.
-			// fListening is set to false right before the undo/redo process
-			// and
-			// then set to true again
-			// right after the undo/redo process to block out and ignore all
-			// StructuredDocumentEvents generated
-			// by the undo/redo process.
-
-			// Process StructuredDocumentEvent if fListening is true.
-			//
-			// We are executing a command from the command stack if the
-			// requester
-			// is a command (for example, undo/redo).
-			// We should not process the flat model event when we are
-			// executing a
-			// command from the command stack.
-			if (fUndoManagementEnabled && !(structuredDocumentEvent.getOriginalSource() instanceof Command)) {
-				// check requester if not recording
-				if (!fRecording)
-					checkRequester(structuredDocumentEvent.getOriginalSource());
-
-				// process the structuredDocumentEvent
-				String textDeleted = structuredDocumentEvent.getDeletedText();
-				String textInserted = structuredDocumentEvent.getText();
-				int textStart = structuredDocumentEvent.getOriginalStart();
-				int textEnd = textStart + textInserted.length();
-				processStructuredDocumentEvent(textDeleted, textInserted, textStart, textEnd);
-			}
-		}
-
-		public void regionChanged(RegionChangedEvent structuredDocumentEvent) {
-			processStructuredDocumentEvent(structuredDocumentEvent);
-		}
-
-		public void regionsReplaced(RegionsReplacedEvent structuredDocumentEvent) {
-			processStructuredDocumentEvent(structuredDocumentEvent);
-		}
-
-	}
-
-	private static final String TEXT_CHANGE_TEXT = SSECorePlugin.getResourceString("%Text_Change_UI_"); //$NON-NLS-1$
-	private CommandStack fCommandStack = null;
-	private StructuredTextCompoundCommandImpl fCompoundCommand = null;
-	private String fCompoundCommandDescription = null;
-	private String fCompoundCommandLabel = null;
-	int fCursorPosition = 0;
-	//private IStructuredModel fStructuredModel = null;
-	private IDocument fDocument;
-	private InternalCommandStackListener fInternalCommandStackListener;
-	//private Map fTextViewerToListenerMap = new HashMap();
-	private IStructuredDocumentListener fInternalStructuredDocumentListener;
-	private IDocumentSelectionMediator[] fMediators = null;
-	private boolean fRecording = false;
-	private int fRecordingCount = 0;
-	private Object fRequester;
-	StructuredTextCommandImpl fTextCommand = null;
-	private int fUndoCursorPosition = -1;
-	boolean fUndoManagementEnabled = true;
-	private int fUndoSelectionLength = 0;
-
-	public StructuredTextUndoManager() {
-		this(new BasicCommandStack());
-	}
-
-	public StructuredTextUndoManager(CommandStack commandStack) {
-		setCommandStack(commandStack);
-	}
-
-	private void addDocumentSelectionMediator(IDocumentSelectionMediator mediator) {
-		if (!Utilities.contains(fMediators, mediator)) {
-			int oldSize = 0;
-
-			if (fMediators != null) {
-				// normally won't be null, but we need to be sure, for first
-				// time through
-				oldSize = fMediators.length;
-			}
-
-			int newSize = oldSize + 1;
-			IDocumentSelectionMediator[] newMediators = new IDocumentSelectionMediator[newSize];
-			if (fMediators != null) {
-				System.arraycopy(fMediators, 0, newMediators, 0, oldSize);
-			}
-
-			// add the new undo mediator to last position
-			newMediators[newSize - 1] = mediator;
-
-			// now switch new for old
-			fMediators = newMediators;
-		} else {
-			removeDocumentSelectionMediator(mediator);
-			addDocumentSelectionMediator(mediator);
-		}
-	}
-
-	public void beginRecording(Object requester) {
-		beginRecording(requester, null, null);
-	}
-
-	public void beginRecording(Object requester, int cursorPosition, int selectionLength) {
-		beginRecording(requester, null, null);
-
-		fUndoCursorPosition = cursorPosition;
-		fUndoSelectionLength = selectionLength;
-	}
-
-	public void beginRecording(Object requester, String label) {
-		beginRecording(requester, label, null);
-	}
-
-	public void beginRecording(Object requester, String label, int cursorPosition, int selectionLength) {
-		beginRecording(requester, label, null);
-
-		fUndoCursorPosition = cursorPosition;
-		fUndoSelectionLength = selectionLength;
-	}
-
-	public void beginRecording(Object requester, String label, String description) {
-		// save the requester
-		fRequester = requester;
-
-		// update label and desc only on the first level when recording is
-		// nested
-		if (fRecordingCount == 0) {
-			fCompoundCommandLabel = label;
-			if (fCompoundCommandLabel == null)
-				fCompoundCommandLabel = TEXT_CHANGE_TEXT;
-
-			fCompoundCommandDescription = description;
-			if (fCompoundCommandDescription == null)
-				fCompoundCommandDescription = TEXT_CHANGE_TEXT;
-
-			// clear commands
-			fTextCommand = null;
-			fCompoundCommand = null;
-		}
-
-		// update counter and flag
-		fRecordingCount++;
-		fRecording = true;
-
-		// no undo cursor position and undo selection length specified
-		// reset undo cursor position and undo selection length
-		fUndoCursorPosition = -1;
-		fUndoSelectionLength = 0;
-	}
-
-	public void beginRecording(Object requester, String label, String description, int cursorPosition, int selectionLength) {
-		beginRecording(requester, label, description);
-
-		fUndoCursorPosition = cursorPosition;
-		fUndoSelectionLength = selectionLength;
-	}
-
-	void checkRequester(Object requester) {
-		if (fRequester != null && !fRequester.equals(requester)) {
-			// Force restart of recording so the last compound command is
-			// closed.
-			//
-			// However, we should not force restart of recording when the
-			// request came from StructuredDocumentToTextAdapter or
-			// XMLModelImpl
-			// because cut/paste requests and character inserts to the
-			// textViewer are from StructuredDocumentToTextAdapter,
-			// and requests to delete a node in the XMLTableTreeViewer are
-			// from XMLModelImpl (which implements IStructuredModel).
-
-			if (!(requester instanceof IStructuredModel || requester instanceof IStructuredDocument)) {
-				resetInternalCommands();
-			}
-		}
-	}
-
-
-
-	public void connect(IDocumentSelectionMediator mediator) {
-		Assert.isNotNull(mediator);
-		if (fDocument == null) {
-			// add this undo manager as structured document listener
-			fDocument = mediator.getDocument();
-			// future_TODO: eventually we want to refactor or allow either
-			// type of document, but for now, we'll do instanceof check, and
-			// fail
-			// if not right type
-			if (fDocument instanceof IStructuredDocument) {
-				((IStructuredDocument) fDocument).addDocumentChangedListener(getInternalStructuredDocumentListener());
-			} else {
-				throw new IllegalArgumentException("only meditator with structured documents currently handled"); //$NON-NLS-1$
-			}
-		} else {
-			// if we've already had our document set, we'll just do this fail
-			// fast integrity check
-			if (!fDocument.equals(mediator.getDocument()))
-				throw new IllegalStateException("Connection to undo manager failed. Document for document selection mediator inconistent with undo manager."); //$NON-NLS-1$
-		}
-
-		addDocumentSelectionMediator(mediator);
-	}
-
-	void createNewTextCommand(String textDeleted, String textInserted, int textStart, int textEnd) {
-		StructuredTextCommandImpl textCommand = new StructuredTextCommandImpl(fDocument);
-		textCommand.setLabel(TEXT_CHANGE_TEXT);
-		textCommand.setDescription(TEXT_CHANGE_TEXT);
-		textCommand.setTextStart(textStart);
-		textCommand.setTextEnd(textEnd);
-		textCommand.setTextDeleted(textDeleted);
-		textCommand.setTextInserted(textInserted);
-
-		if (fRecording) {
-			if (fCompoundCommand == null) {
-				StructuredTextCompoundCommandImpl compoundCommand = new StructuredTextCompoundCommandImpl();
-				compoundCommand.setUndoCursorPosition(fUndoCursorPosition);
-				compoundCommand.setUndoSelectionLength(fUndoSelectionLength);
-
-				compoundCommand.setLabel(fCompoundCommandLabel);
-				compoundCommand.setDescription(fCompoundCommandDescription);
-				compoundCommand.append(textCommand);
-				fCommandStack.execute(compoundCommand);
-
-				fCompoundCommand = compoundCommand;
-			} else {
-				fCompoundCommand.append(textCommand);
-			}
-		} else {
-			fCommandStack.execute(textCommand);
-		}
-
-		fTextCommand = textCommand;
-	}
-
-	/**
-	 * Disable undo management.
-	 */
-	public void disableUndoManagement() {
-		fUndoManagementEnabled = false;
-	}
-
-	public void disconnect(IDocumentSelectionMediator mediator) {
-		removeDocumentSelectionMediator(mediator);
-
-		if (fMediators != null && fMediators.length == 0 && fDocument != null) {
-			// remove this undo manager as structured document listener
-			// future_TODO: eventually we want to refactor or allow either
-			// type of document, but for now, we'll do instanceof check, and
-			// fail
-			// if not right type
-			if (fDocument instanceof IStructuredDocument) {
-				((IStructuredDocument) fDocument).removeDocumentChangedListener(getInternalStructuredDocumentListener());
-			} else {
-				throw new IllegalArgumentException("only meditator with structured documents currently handled"); //$NON-NLS-1$
-			}
-			// if no longer listening to document, then dont even track it
-			// anymore
-			// (this allows connect to reconnect to document again)
-			fDocument = null;
-		}
-	}
-
-	public void enableUndoManagement() {
-		fUndoManagementEnabled = true;
-	}
-
-	public void endRecording(Object requester) {
-		int cursorPosition = (fTextCommand != null) ? fTextCommand.getTextEnd() : -1;
-		int selectionLength = 0;
-
-		endRecording(requester, cursorPosition, selectionLength);
-	}
-
-	public void endRecording(Object requester, int cursorPosition, int selectionLength) {
-		// Recording could be stopped by forceEndOfPendingCommand(). Make sure
-		// we are still recording before proceeding, or else fRecordingCount
-		// may not be balanced.
-		if (fRecording) {
-			if (fCompoundCommand != null) {
-				fCompoundCommand.setRedoCursorPosition(cursorPosition);
-				fCompoundCommand.setRedoSelectionLength(selectionLength);
-			}
-
-			// end recording is a logical stopping point for text command,
-			// even when fRecordingCount > 0 (in nested beginRecording)
-			fTextCommand = null;
-
-			// update counter and flag
-			if (fRecordingCount > 0)
-				fRecordingCount--;
-			if (fRecordingCount == 0) {
-				fRecording = false;
-
-				// reset compound command only when fRecordingCount ==
-				// 0
-				fCompoundCommand = null;
-				fCompoundCommandLabel = null;
-				fCompoundCommandDescription = null;
-
-				// Also reset fRequester
-				fRequester = null;
-			}
-		}
-	}
-
-	/**
-	 * Utility method to find model given document
-	 */
-	private IStructuredModel findStructuredModel(IDocument document) {
-		IModelManager modelManager = StructuredModelManager.getModelManager();
-		IStructuredModel structuredModel = modelManager.getExistingModelForRead(document);
-		return structuredModel;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.undo.IStructuredTextUndoManager#forceEndOfPendingCommand(java.lang.Object,
-	 *      int, int)
-	 */
-	public void forceEndOfPendingCommand(Object requester, int currentPosition, int length) {
-		if (fRecording)
-			endRecording(requester, currentPosition, length);
-		else
-			resetInternalCommands();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.undo.IStructuredTextUndoManager#getCommandStack()
-	 */
-	public CommandStack getCommandStack() {
-		return fCommandStack;
-	}
-
-	/**
-	 * @return
-	 */
-	private CommandStackListener getInternalCommandStackListener() {
-		if (fInternalCommandStackListener == null) {
-			fInternalCommandStackListener = new InternalCommandStackListener();
-		}
-		return fInternalCommandStackListener;
-	}
-
-	/**
-	 * @return
-	 */
-	private IStructuredDocumentListener getInternalStructuredDocumentListener() {
-		if (fInternalStructuredDocumentListener == null) {
-			fInternalStructuredDocumentListener = new InternalStructuredDocumentListener();
-		}
-		return fInternalStructuredDocumentListener;
-	}
-
-	public Command getRedoCommand() {
-		return fCommandStack.getRedoCommand();
-	}
-
-	public Command getUndoCommand() {
-		return fCommandStack.getUndoCommand();
-	}
-
-	public void redo() {
-		redo(null);
-	}
-
-	public void redo(IDocumentSelectionMediator requester) {
-		IStructuredModel model = findStructuredModel(fDocument);
-		if (redoable()) {
-			try {
-				if (model != null)
-					model.aboutToChangeModel();
-
-				Command redoCommand = getRedoCommand();
-
-				// make sure to redo before setting document selection
-				fCommandStack.redo();
-
-				// set document selection
-				setRedoDocumentSelection(requester, redoCommand);
-			} finally {
-				if (model != null) {
-					model.changedModel();
-					model.releaseFromRead();
-				}
-			}
-		}
-	}
-
-	public boolean redoable() {
-		return fCommandStack.canRedo();
-	}
-
-	private void removeDocumentSelectionMediator(IDocumentSelectionMediator mediator) {
-		if (fMediators != null && mediator != null) {
-			// if its not in the array, we'll ignore the request
-			if (Utilities.contains(fMediators, mediator)) {
-				int oldSize = fMediators.length;
-				int newSize = oldSize - 1;
-				IDocumentSelectionMediator[] newMediators = new IDocumentSelectionMediator[newSize];
-				int index = 0;
-				for (int i = 0; i < oldSize; i++) {
-					if (fMediators[i] == mediator) { // ignore
-					} else {
-						// copy old to new if its not the one we are removing
-						newMediators[index++] = fMediators[i];
-					}
-				}
-				// now that we have a new array, let's switch it for the old
-				// one
-				fMediators = newMediators;
-			}
-		}
-	}
-
-	void resetInternalCommands() {
-		// Either the requester of the structured document change event is
-		// changed, or the command stack is changed. Need to reset internal
-		// commands so we won't continue to append changes.
-		fCompoundCommand = null;
-		fTextCommand = null;
-
-		// Also reset fRequester
-		fRequester = null;
-	}
-
-	public void setCommandStack(CommandStack commandStack) {
-		if (fCommandStack != null)
-			fCommandStack.removeCommandStackListener(getInternalCommandStackListener());
-
-		fCommandStack = commandStack;
-
-		if (fCommandStack != null)
-			fCommandStack.addCommandStackListener(getInternalCommandStackListener());
-	}
-
-	private void setRedoDocumentSelection(IDocumentSelectionMediator requester, Command command) {
-		int cursorPosition = -1;
-		int selectionLength = 0;
-
-		if (command instanceof CommandCursorPosition) {
-			CommandCursorPosition commandCursorPosition = (CommandCursorPosition) command;
-			cursorPosition = commandCursorPosition.getRedoCursorPosition();
-			selectionLength = commandCursorPosition.getRedoSelectionLength();
-		} else if (command instanceof StructuredTextCommand) {
-			StructuredTextCommand structuredTextCommand = (StructuredTextCommand) command;
-			cursorPosition = structuredTextCommand.getTextStart();
-			selectionLength = structuredTextCommand.getTextInserted().length();
-		}
-
-		if (cursorPosition > -1 && fMediators != null && fMediators.length > 0) {
-			for (int i = 0; i < fMediators.length; i++) {
-				IDocument document = fMediators[i].getDocument();
-				fMediators[i].undoOperationSelectionChanged(new UndoDocumentEvent(requester, document, cursorPosition, selectionLength));
-			}
-		}
-	}
-
-	private void setUndoDocumentSelection(IDocumentSelectionMediator requester, Command command) {
-		int cursorPosition = -1;
-		int selectionLength = 0;
-
-		if (command instanceof CommandCursorPosition) {
-			CommandCursorPosition commandCursorPosition = (CommandCursorPosition) command;
-			cursorPosition = commandCursorPosition.getUndoCursorPosition();
-			selectionLength = commandCursorPosition.getUndoSelectionLength();
-		} else if (command instanceof StructuredTextCommand) {
-			StructuredTextCommand structuredTextCommand = (StructuredTextCommand) command;
-			cursorPosition = structuredTextCommand.getTextStart();
-			selectionLength = structuredTextCommand.getTextDeleted().length();
-		}
-
-		if (cursorPosition > -1 && fMediators != null && fMediators.length > 0) {
-			for (int i = 0; i < fMediators.length; i++) {
-				IDocument document = fMediators[i].getDocument();
-				fMediators[i].undoOperationSelectionChanged(new UndoDocumentEvent(requester, document, cursorPosition, selectionLength));
-			}
-		}
-	}
-
-	public void undo() {
-		undo(null);
-	}
-
-	public void undo(IDocumentSelectionMediator requester) {
-		// Force an endRecording before undo.
-		//
-		// For example, recording was turned on on the Design Page of
-		// PageDesigner.
-		// Then undo is invoked on the Source Page. Recording should be
-		// stopped before we undo.
-		// Note that redo should not be available when we switch to the Source
-		// Page.
-		// Therefore, this force ending of recording is not needed in redo.
-		if (fRecording)
-			endRecording(this);
-
-		if (undoable()) {
-			IStructuredModel model = findStructuredModel(fDocument);
-			try {
-				if (model != null)
-					model.aboutToChangeModel();
-
-				Command undoCommand = getUndoCommand();
-
-				// make sure to undo before setting document selection
-				fCommandStack.undo();
-
-				// set document selection
-				setUndoDocumentSelection(requester, undoCommand);
-			} finally {
-				if (model != null) {
-					model.changedModel();
-					model.releaseFromRead();
-				}
-			}
-		}
-	}
-
-	public boolean undoable() {
-		return fCommandStack.canUndo();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelhandler/AbstractModelHandler.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelhandler/AbstractModelHandler.java
deleted file mode 100644
index b5faa21..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelhandler/AbstractModelHandler.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.modelhandler;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.wst.sse.core.document.IDocumentCharsetDetector;
-import org.eclipse.wst.sse.core.internal.modelhandler.PluginContributedFactoryReader;
-
-
-public abstract class AbstractModelHandler implements IModelHandler {
-	private String associatedContentTypeId;
-	private boolean defaultSetting;
-	private String modelHandlerID;
-
-	// XXX: can be removed once we transition completely
-	protected boolean USE_FILE_BUFFERS = false;
-
-	public AbstractModelHandler() {
-		super();
-	}
-
-	/**
-	 * These factories are added automatically by model manager
-	 */
-	public List getAdapterFactories() {
-		List result = new ArrayList();
-		Collection holdFactories = PluginContributedFactoryReader.getInstance().getFactories(this);
-		if (holdFactories != null) {
-			result.addAll(holdFactories);
-		}
-		return result;
-	}
-
-	public String getAssociatedContentTypeId() {
-		return associatedContentTypeId;
-	}
-
-	public abstract IDocumentCharsetDetector getEncodingDetector();
-
-	public String getId() {
-		return modelHandlerID;
-	}
-
-	public boolean isDefault() {
-		return defaultSetting;
-	}
-
-	protected void setAssociatedContentTypeId(String contentTypeId) {
-		associatedContentTypeId = contentTypeId;
-	}
-
-	public void setDefault(boolean defaultParam) {
-		defaultSetting = defaultParam;
-	}
-
-	protected void setId(String id) {
-		modelHandlerID = id;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelhandler/EmbeddedTypeHandler.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelhandler/EmbeddedTypeHandler.java
deleted file mode 100644
index a71c586..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelhandler/EmbeddedTypeHandler.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.modelhandler;
-
-import java.util.List;
-
-import org.eclipse.wst.sse.core.IFactoryRegistry;
-import org.eclipse.wst.sse.core.parser.JSPCapableParser;
-
-
-/**
- */
-public interface EmbeddedTypeHandler {
-
-	/**
-	 * These AdapterFactories are NOT added to IStructuredModel's
-	 * AdapterFactory Registry ... they are for use by "JSP Aware
-	 * AdapterFactories" The are added to the "registry" in the
-	 * PageDirectiveAdapter.
-	 */
-	List getAdapterFactories();
-
-	/**
-	 * Returns the unique identifier for the content type family this
-	 * ContentTypeDescription belongs to.
-	 */
-	public String getFamilyId();
-
-	/**
-	 * Returns a list of mime tyeps (as Strings) this handler is appropriate
-	 * for
-	 */
-	List getSupportedMimeTypes();
-
-	/**
-	 * This method is to give the EmbeddedContentType an opportunity to add
-	 * factories directly to the IStructuredModel's AdapterFactory registry.
-	 */
-	void initializeFactoryRegistry(IFactoryRegistry registry);
-
-	/**
-	 * initializeParser Its purpose is to setBlockTags
-	 */
-	void initializeParser(JSPCapableParser parser);
-
-	boolean isDefault();
-
-	public EmbeddedTypeHandler newInstance();
-
-	void uninitializeFactoryRegistry(IFactoryRegistry registry);
-
-	void uninitializeParser(JSPCapableParser parser);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelhandler/IDocumentTypeHandler.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelhandler/IDocumentTypeHandler.java
deleted file mode 100644
index 9958966..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelhandler/IDocumentTypeHandler.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.modelhandler;
-
-import org.eclipse.wst.sse.core.document.IDocumentCharsetDetector;
-import org.eclipse.wst.sse.core.document.IDocumentLoader;
-
-/**
- * Interface to allow custom content types to be defined as extension points
- * in plugins.
- */
-public interface IDocumentTypeHandler {
-
-	/**
-	 * The Loader is reponsible for decoding the Resource,
-	 */
-	IDocumentLoader getDocumentLoader();
-
-	/**
-	 * @deprecated - likely to go away, so I marked as deprecated to
-	 *             discoursage use
-	 */
-	IDocumentCharsetDetector getEncodingDetector();
-
-	/**
-	 * Must return unique ID that is the same as identified in plugin registry
-	 */
-	String getId();
-
-
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelhandler/IModelHandler.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelhandler/IModelHandler.java
deleted file mode 100644
index 0b41cae..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelhandler/IModelHandler.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.modelhandler;
-
-import java.util.List;
-
-import org.eclipse.wst.sse.core.ModelLoader;
-
-
-public interface IModelHandler extends IDocumentTypeHandler {
-	/**
-	 * This method should return Factories which are added automatically by
-	 * IModelManager. This can and will often be an empty List (or null),
-	 * since some AdapterFactories must be added by Loader directly, and most
-	 * should be added by Editors. FormatAdapterFactory is an example of one
-	 * that can be returned here, since the timing of adding it is not
-	 * critical, but it may be needed even when an editor is not being used.
-	 */
-	List getAdapterFactories();
-
-	/**
-	 * Returns the ID for the associated ContentTypeHandler But is needed for
-	 * now.
-	 */
-	String getAssociatedContentTypeId();
-
-	/**
-	 * The Loader is reponsible for decoding the Resource,
-	 */
-	ModelLoader getModelLoader();
-
-	boolean isDefault();
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelquery/ModelQueryAdapter.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelquery/ModelQueryAdapter.java
deleted file mode 100644
index 76339f2..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelquery/ModelQueryAdapter.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.modelquery;
-
-import org.eclipse.wst.common.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.common.contentmodel.util.CMDocumentCache;
-import org.eclipse.wst.sse.core.INodeAdapter;
-import org.eclipse.wst.xml.uriresolver.util.IdResolver;
-
-
-public interface ModelQueryAdapter extends INodeAdapter {
-
-	public CMDocumentCache getCMDocumentCache();
-
-	public IdResolver getIdResolver();
-
-	public ModelQuery getModelQuery();
-
-	void release();
-
-	void setIdResolver(IdResolver newIdResolver);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelquery/ModelQueryAdapterImpl.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelquery/ModelQueryAdapterImpl.java
deleted file mode 100644
index d42c559..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelquery/ModelQueryAdapterImpl.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.modelquery;
-
-
-
-import org.eclipse.wst.common.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.common.contentmodel.util.CMDocumentCache;
-import org.eclipse.wst.sse.core.INodeNotifier;
-import org.eclipse.wst.xml.uriresolver.util.IdResolver;
-
-
-public class ModelQueryAdapterImpl implements ModelQueryAdapter {
-	protected CMDocumentCache cmDocumentCache;
-	protected IdResolver idResolver;
-
-	protected ModelQuery modelQuery;
-
-	public ModelQueryAdapterImpl(CMDocumentCache cmDocumentCache, ModelQuery modelQuery, IdResolver idResolver) {
-		this.cmDocumentCache = cmDocumentCache;
-		this.modelQuery = modelQuery;
-		this.idResolver = idResolver;
-	}
-
-	public CMDocumentCache getCMDocumentCache() {
-		return cmDocumentCache;
-	}
-
-	public IdResolver 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(IdResolver)
-	 */
-
-	public void setIdResolver(IdResolver newIdResolver) {
-		idResolver = newIdResolver;
-		if (modelQuery instanceof MovableModelQuery)
-			((MovableModelQuery) modelQuery).setIdResolver(newIdResolver);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelquery/MovableModelQuery.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelquery/MovableModelQuery.java
deleted file mode 100644
index c713c5e..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/modelquery/MovableModelQuery.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.modelquery;
-
-
-
-import org.eclipse.wst.common.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.uriresolver.util.IdResolver;
-
-public interface MovableModelQuery extends ModelQuery {
-
-	void setIdResolver(IdResolver newIdResolver);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/BlockMarker.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/BlockMarker.java
deleted file mode 100644
index e63adbf..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/BlockMarker.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.parser;
-
-
-
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-public class BlockMarker extends TagMarker {
-
-	// allow for JSP expressions within the block
-	protected boolean fAllowJSP = true;
-
-	protected boolean fCaseSensitive = false;
-
-	// the context for the contents of this tag (BLOCK_TEXT, JSP_CONTENT,
-	// etc.)
-	protected String fContext;
-
-	/**
-	 * It's not appropriate to make "empty" BlockMarker, so we'll mark as
-	 * private.
-	 */
-	private BlockMarker() {
-		super();
-	}
-
-	public BlockMarker(String tagName, ITextRegion marker, String context) {
-		this(tagName, marker, context, true);
-	}
-
-	public BlockMarker(String tagName, ITextRegion marker, String context, boolean caseSensitive) {
-		this(tagName, marker, context, caseSensitive, true);
-	}
-
-	public BlockMarker(String tagName, ITextRegion marker, String context, boolean caseSensitive, boolean allowJSP) {
-		super(tagName, marker);
-		setContext(context);
-		setCaseSensitive(caseSensitive);
-		setAllowJSP(allowJSP);
-	}
-
-	public BlockMarker(String tagName, String regionContext, boolean caseSensitive) {
-		this(tagName, null, regionContext, caseSensitive, false);
-	}
-
-	/**
-	 * Gets the allowJSP.
-	 * 
-	 * @return Returns a boolean
-	 */
-	public boolean allowsJSP() {
-		return fAllowJSP;
-	}
-
-	/**
-	 * Gets the context.
-	 * 
-	 * @return Returns a String
-	 */
-	public String getContext() {
-		return fContext;
-	}
-
-	/**
-	 * 
-	 * @return boolean
-	 */
-	public final boolean isCaseSensitive() {
-		return fCaseSensitive;
-	}
-
-	/**
-	 * Sets the allowJSP.
-	 * 
-	 * @param allowJSP
-	 *            The allowJSP to set
-	 */
-	public void setAllowJSP(boolean allowJSP) {
-		fAllowJSP = allowJSP;
-	}
-
-	public final void setCaseSensitive(boolean sensitive) {
-		fCaseSensitive = sensitive;
-	}
-
-	/**
-	 * Sets the context.
-	 * 
-	 * @param context
-	 *            The context to set
-	 */
-	public void setContext(String context) {
-		fContext = context;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/BlockTagParser.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/BlockTagParser.java
deleted file mode 100644
index 205323f..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/BlockTagParser.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.parser;
-
-
-
-import java.util.List;
-
-public interface BlockTagParser {
-
-	void addBlockMarker(BlockMarker marker);
-
-	void beginBlockScan(String tagName);
-
-	BlockMarker getBlockMarker(String tagName);
-
-	List getBlockMarkers();
-
-	void removeBlockMarker(BlockMarker marker);
-
-	void removeBlockMarker(String tagName);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/BlockTokenizer.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/BlockTokenizer.java
deleted file mode 100644
index 048f9fe..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/BlockTokenizer.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.parser;
-
-
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.util.List;
-
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-
-public interface BlockTokenizer {
-
-	void addBlockMarker(BlockMarker marker);
-
-	void beginBlockMarkerScan(String newTagName, String context);
-
-	void beginBlockTagScan(String newTagName);
-
-	List getBlockMarkers();
-
-	ITextRegion getNextToken() throws IOException;
-
-	int getOffset();
-
-	boolean isEOF();
-
-	BlockTokenizer newInstance();
-
-	void removeBlockMarker(BlockMarker marker);
-
-	void removeBlockMarker(String tagname);
-
-	void reset(char[] charArray);
-
-	void reset(char[] charArray, int newOffset);
-
-	void reset(InputStream in);
-
-	void reset(InputStream in, int newOffset);
-
-	void reset(Reader in);
-
-	void reset(Reader in, int newOffset);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/IBlockedStructuredDocumentRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/IBlockedStructuredDocumentRegion.java
deleted file mode 100644
index df2bc6e..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/IBlockedStructuredDocumentRegion.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.parser;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-
-/**
- *  
- */
-public interface IBlockedStructuredDocumentRegion extends IStructuredDocumentRegion {
-	String getPartitionType();
-
-	void setPartitionType(String partitionType);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/JSPCapableParser.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/JSPCapableParser.java
deleted file mode 100644
index 048394f..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/JSPCapableParser.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.parser;
-
-import java.util.List;
-
-public interface JSPCapableParser extends RegionParser, BlockTagParser {
-	void addNestablePrefix(TagMarker marker);
-
-	/**
-	 * returns the TagMarkers for prefixes that are allowed to be nestable
-	 * 
-	 * @return
-	 */
-	List getNestablePrefixes();
-
-	void removeNestablePrefix(String tagName);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/RegionParser.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/RegionParser.java
deleted file mode 100644
index 935fba1..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/RegionParser.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.parser;
-
-
-
-import java.io.Reader;
-import java.util.List;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-
-
-public interface RegionParser {
-
-	IStructuredDocumentRegion getDocumentRegions();
-
-	List getRegions();
-
-	/**
-	 * The 'newInstance' method is similar to 'clone', but does not include
-	 * the copying of any content. For a pure RegionParser itself, there would
-	 * be little state to "clone", but for some subtypes, such as
-	 * StructuredDocumentRegionParser and JSPCapableParser, there could the
-	 * more internal data to "clone", such as the internal tokenizer should be
-	 * cloned (including block tags, etc).
-	 */
-	RegionParser newInstance();
-
-	void reset(Reader reader);
-
-	/**
-	 * An additional offset for use with any position-dependant parsing rules
-	 */
-	void reset(Reader reader, int offset);
-
-	void reset(String input);
-
-	/**
-	 * An additional offset for use with any position-dependant parsing rules
-	 */
-	void reset(String input, int offset);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/StructuredDocumentRegionHandler.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/StructuredDocumentRegionHandler.java
deleted file mode 100644
index b9f098c..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/StructuredDocumentRegionHandler.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.parser;
-
-
-
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-
-public interface StructuredDocumentRegionHandler {
-
-	// Sent when a IStructuredDocumentRegion is first parsed
-	public void nodeParsed(IStructuredDocumentRegion aCoreStructuredDocumentRegion);
-
-	// Sent when the calling parser's model undergoes a full reset
-	//   and any information based upon the old model should be
-	//   cleared
-	public void resetNodes();
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/StructuredDocumentRegionHandlerExtension.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/StructuredDocumentRegionHandlerExtension.java
deleted file mode 100644
index 0e6b9bb..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/StructuredDocumentRegionHandlerExtension.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.parser;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-
-
-public interface StructuredDocumentRegionHandlerExtension extends StructuredDocumentRegionHandler {
-	void setStructuredDocument(IStructuredDocument newDocument);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/StructuredDocumentRegionParser.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/StructuredDocumentRegionParser.java
deleted file mode 100644
index d8e280d..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/StructuredDocumentRegionParser.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.parser;
-
-
-
-public interface StructuredDocumentRegionParser extends RegionParser {
-
-	void addStructuredDocumentRegionHandler(StructuredDocumentRegionHandler handler);
-
-	void removeStructuredDocumentRegionHandler(StructuredDocumentRegionHandler handler);
-
-	void resetHandlers();
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/StructuredDocumentRegionParserExtension.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/StructuredDocumentRegionParserExtension.java
deleted file mode 100644
index 561b64d..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/StructuredDocumentRegionParserExtension.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.parser;
-
-import java.util.List;
-
-
-
-public interface StructuredDocumentRegionParserExtension extends StructuredDocumentRegionParser {
-	/**
-	 * Returns the current list of StructuredDocumentRegionHandlers listening
-	 * to this parser.
-	 * 
-	 * @return List - the list of listeners, the list may not be null and each
-	 *         element in it must implement StructuredDocumentRegionHandler
-	 */
-	List getStructuredDocumentRegionHandlers();
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/TagMarker.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/TagMarker.java
deleted file mode 100644
index f5dca4f..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/parser/TagMarker.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.parser;
-
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-public class TagMarker {
-
-	// a ITextRegion (meant to be updated with the model) marking the position
-	// where this tagname becomes effective
-	protected ITextRegion fMarker = null;
-
-	// the tagname
-	protected String fTagName = null;
-
-	/**
-	 *  
-	 */
-	public TagMarker() {
-		super();
-	}
-
-	public TagMarker(String tagname) {
-		super();
-		setTagName(tagname);
-	}
-
-	public TagMarker(String tagname, ITextRegion marker) {
-		super();
-		setTagName(tagname);
-		setMarker(marker);
-	}
-
-	/**
-	 * @return com.ibm.sed.structuredDocument.ITextRegion
-	 */
-	public final ITextRegion getMarker() {
-		return fMarker;
-	}
-
-	/**
-	 * @return java.lang.String
-	 */
-	public final String getTagName() {
-		return fTagName;
-	}
-
-	/**
-	 * @return boolean
-	 */
-	public boolean isGlobal() {
-		return fMarker == null;
-	}
-
-	/**
-	 * @param newMarker
-	 *            com.ibm.sed.structuredDocument.ITextRegion
-	 */
-	public final void setMarker(ITextRegion newMarker) {
-		fMarker = newMarker;
-	}
-
-	/**
-	 * @param newTagname
-	 *            java.lang.String
-	 */
-	public final void setTagName(String newTagName) {
-		fTagName = newTagName;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/participants/AbstractBuilderParticipant.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/participants/AbstractBuilderParticipant.java
deleted file mode 100644
index e6c68ed..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/participants/AbstractBuilderParticipant.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.participants;
-
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.sse.core.builder.IBuilderModelProvider;
-import org.eclipse.wst.sse.core.builder.IBuilderParticipant;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-
-
-/**
- * Publically usable implementor of IBuilderParticipant. Includes pre- and
- * post-build hooks and iteration through the Structured Document
- */
-
-public class AbstractBuilderParticipant implements IBuilderParticipant {
-
-	private IFile fCurrentFile;
-	private IBuilderModelProvider fModelProvider;
-
-	public AbstractBuilderParticipant() {
-		super();
-	}
-
-	protected boolean build(IFile file, IProject project, IBuilderModelProvider provider, IProgressMonitor monitor) {
-		preBuild(file, provider, monitor);
-		if (getCurrentFile().isAccessible() && !monitor.isCanceled()) {
-			IStructuredDocument document = provider.getDocument(getCurrentFile());
-			if (document != null) {
-				IStructuredDocumentRegion region = document.getFirstStructuredDocumentRegion();
-				while (region != null && !monitor.isCanceled()) {
-					build(region);
-					region = region.getNext();
-				}
-			}
-		}
-		postBuild(file, provider, monitor);
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.builder.IBuilderParticipant#build(org.eclipse.core.resources.IResource[],
-	 *      org.eclipse.core.resources.IProject,
-	 *      org.eclipse.wst.sse.core.builder.IBuilderModelProvider,
-	 *      org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public boolean build(IResource[] resources, IProject project, IBuilderModelProvider provider, IProgressMonitor monitor) {
-		for (int i = 0; i < resources.length; i++) {
-			if (!monitor.isCanceled()) {
-				build((IFile) resources[i], project, provider, monitor);
-			}
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.builder.IBuilderParticipant#build(org.eclipse.core.resources.IResourceDelta,
-	 *      org.eclipse.core.resources.IProject,
-	 *      org.eclipse.wst.sse.core.builder.IBuilderModelProvider,
-	 *      org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public boolean build(IResourceDelta delta, IProject project, IBuilderModelProvider provider, IProgressMonitor monitor) {
-		return build((IFile) delta.getResource(), project, provider, monitor);
-	}
-
-	protected void build(IStructuredDocumentRegion region) {
-		doBuildFor(region);
-		ITextRegionList list = region.getRegions();
-		for (int i = 0; i < list.size(); i++) {
-			doBuildFor(region, list.get(i));
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.builder.IBuilderParticipant#cleanup(org.eclipse.core.resources.IResource[],
-	 *      org.eclipse.core.resources.IProject,
-	 *      org.eclipse.wst.sse.core.builder.IBuilderModelProvider,
-	 *      org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public boolean cleanup(IResource[] resources, IProject project, IBuilderModelProvider provider, IProgressMonitor monitor) {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.builder.IBuilderParticipant#cleanup(org.eclipse.core.resources.IResourceDelta,
-	 *      org.eclipse.core.resources.IProject,
-	 *      org.eclipse.wst.sse.core.builder.IBuilderModelProvider,
-	 *      org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public boolean cleanup(IResourceDelta delta, IProject project, IBuilderModelProvider provider, IProgressMonitor monitor) {
-		return false;
-	}
-
-	protected void doBuildFor(IStructuredDocumentRegion region) {
-	}
-
-	protected void doBuildFor(IStructuredDocumentRegion region, ITextRegion textRegion) {
-	}
-
-	/**
-	 * @return Returns the currentFile.
-	 */
-	public IFile getCurrentFile() {
-		return fCurrentFile;
-	}
-
-	/**
-	 * @return Returns the modelProvider.
-	 */
-	public IBuilderModelProvider getModelProvider() {
-		return fModelProvider;
-	}
-
-	protected void postBuild(IFile file, IBuilderModelProvider provider, IProgressMonitor monitor) {
-		setCurrentFile(null);
-		setModelProvider(null);
-	}
-
-	protected void preBuild(IFile file, IBuilderModelProvider provider, IProgressMonitor monitor) {
-		setCurrentFile(file);
-		setModelProvider(provider);
-	}
-
-	/**
-	 * @param currentFile
-	 *            The currentFile to set.
-	 */
-	protected void setCurrentFile(IFile currentFile) {
-		fCurrentFile = currentFile;
-	}
-
-	/**
-	 * @param modelProvider
-	 *            The modelProvider to set.
-	 */
-	protected void setModelProvider(IBuilderModelProvider modelProvider) {
-		fModelProvider = modelProvider;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.builder.IBuilderParticipant#shutdown(org.eclipse.core.resources.IProject)
-	 */
-	public void shutdown(IProject project) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.builder.IBuilderParticipant#startup(org.eclipse.core.resources.IProject,
-	 *      int, java.util.Map)
-	 */
-	public void startup(IProject project, int kind, Map args) {
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/participants/TaskTagSeeker.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/participants/TaskTagSeeker.java
deleted file mode 100644
index 2b2fe5d..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/participants/TaskTagSeeker.java
+++ /dev/null
@@ -1,468 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.participants;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.nio.charset.CharacterCodingException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-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.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.wst.sse.core.builder.IBuilderDelegate;
-import org.eclipse.wst.sse.core.document.DocumentReader;
-import org.eclipse.wst.sse.core.document.IEncodedDocument;
-import org.eclipse.wst.sse.core.internal.Logger;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.eclipse.wst.sse.core.internal.modelhandler.ModelHandlerRegistry;
-import org.eclipse.wst.sse.core.modelhandler.IModelHandler;
-import org.eclipse.wst.sse.core.parser.RegionParser;
-import org.eclipse.wst.sse.core.parser.StructuredDocumentRegionHandler;
-import org.eclipse.wst.sse.core.parser.StructuredDocumentRegionParser;
-import org.eclipse.wst.sse.core.preferences.CommonModelPreferenceNames;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-import org.eclipse.wst.sse.core.util.StringUtils;
-
-
-/**
- * A participant to create IMarker.TASKs for "todos" and similiar comments.
- * Clients should not subclass.
- */
-public abstract class TaskTagSeeker implements IBuilderDelegate {
-
-	public static class TaskTag {
-		public int priority;
-		public String text;
-
-		public TaskTag(String taskText, int taskPriority) {
-			this.text = taskText;
-			this.priority = taskPriority;
-		}
-	}
-
-	private static final boolean _debug = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.core/builder/participant/tasktag")); //$NON-NLS-1$ //$NON-NLS-2$
-	protected static final boolean _debugBuilderPerf = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.core/builder/time")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	public static String getTaskMarkerType() {
-		return SSECorePlugin.ID + ".task"; //$NON-NLS-1$
-	}
-
-	// TODO: implement per-project enablement according to
-	// http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-core-home/documents/user_settings/faq.html
-	boolean fEnabled = true;
-
-	// the list of attributes for the new tasks for the current file
-	protected List fNewMarkerAttributes = null;
-
-	private TaskTag[] fTaskTags = null;
-	List oldMarkers = null;
-	private long time0;
-
-	public TaskTagSeeker() {
-		super();
-		fNewMarkerAttributes = new ArrayList();
-		if (_debug) {
-			System.out.println(getClass().getName() + " instance created"); //$NON-NLS-1$
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.builder.IBuilderDelegate#build(org.eclipse.core.resources.IFile,
-	 *      int, java.util.Map, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus build(IFile file, int kind, Map args, IProgressMonitor monitor) {
-		if (monitor.isCanceled() || !isShouldBuild(file)) {
-			return Status.OK_STATUS;
-		}
-		if (_debugBuilderPerf) {
-			time0 = System.currentTimeMillis();
-		}
-		if (fTaskTags.length > 0) {
-			try {
-				// Delete old Task markers
-				file.deleteMarkers(getMarkerType(), true, IResource.DEPTH_ZERO);
-			} catch (CoreException e) {
-				Logger.logException("exception deleting old tasks", e); //$NON-NLS-1$ 
-			}
-			// on a clean build, don't add new Tasks
-			if (kind != IncrementalProjectBuilder.CLEAN_BUILD && fEnabled) {
-				findTasks(file, monitor);
-				createNewMarkers(file, monitor);
-			}
-		}
-		if (_debugBuilderPerf) {
-			System.out.println("" + (System.currentTimeMillis() - time0) + "ms for " + file.getLocation()); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Returns the attributes with which a newly created marker will be
-	 * initialized. Modified from the method in MarkerRulerAction
-	 * 
-	 * @return the initial marker attributes
-	 */
-	protected Map createInitialMarkerAttributes(String text, int documentLine, int startOffset, int length, int priority) {
-		Map attributes = new HashMap(6);
-		// marker line numbers are 1-based
-		attributes.put(IMarker.LINE_NUMBER, new Integer(documentLine + 1));
-		attributes.put(IMarker.CHAR_START, new Integer(startOffset));
-		attributes.put(IMarker.CHAR_END, new Integer(startOffset + length));
-		attributes.put(IMarker.MESSAGE, text);
-		attributes.put(IMarker.USER_EDITABLE, Boolean.FALSE);
-
-		switch (priority) {
-			case IMarker.PRIORITY_HIGH : {
-				attributes.put(IMarker.PRIORITY, new Integer(IMarker.PRIORITY_HIGH));
-			}
-				break;
-			case IMarker.PRIORITY_LOW : {
-				attributes.put(IMarker.PRIORITY, new Integer(IMarker.PRIORITY_LOW));
-			}
-				break;
-			default : {
-				attributes.put(IMarker.PRIORITY, new Integer(IMarker.PRIORITY_NORMAL));
-			}
-		}
-
-		return attributes;
-	}
-
-	protected void createNewMarkers(IFile file, IProgressMonitor monitor) {
-		final IFile finalFile = file;
-		if (file.isAccessible() && fNewMarkerAttributes.size() > 0) {
-			if (_debug) {
-				System.out.println("" + fNewMarkerAttributes.size() + " tasks for " + file.getFullPath()); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			try {
-				IWorkspaceRunnable r = new IWorkspaceRunnable() {
-					public void run(IProgressMonitor progressMonitor) throws CoreException {
-						for (int i = 0; i < fNewMarkerAttributes.size(); i++) {
-							IMarker marker = finalFile.createMarker(getMarkerType());
-							marker.setAttributes((Map) fNewMarkerAttributes.get(i));
-						}
-					}
-				};
-				finalFile.getWorkspace().run(r, null, IWorkspace.AVOID_UPDATE, monitor);
-				fNewMarkerAttributes.clear();
-			} catch (CoreException e1) {
-				Logger.logException(e1);
-			}
-		}
-	}
-
-	private String detectCharset(IFile file) {
-		if (file.getType() == IResource.FILE && file.isAccessible()) {
-			IContentDescription d = null;
-			try {
-				// optimized description lookup, might not succeed
-				d = file.getContentDescription();
-				if (d != null)
-					return d.getCharset();
-			} catch (CoreException e) {
-				// should not be possible given the accessible and file type
-				// check above
-			}
-			InputStream contents = null;
-			try {
-				contents = file.getContents();
-				IContentDescription description = Platform.getContentTypeManager().getDescriptionFor(contents, file.getName(), new QualifiedName[]{IContentDescription.CHARSET});
-				if (description != null) {
-					return description.getCharset();
-				}
-			} catch (IOException e) {
-				// will try to cleanup in finally
-			} catch (CoreException e) {
-				Logger.logException(e);
-			} finally {
-				if (contents != null) {
-					try {
-						contents.close();
-					} catch (Exception e) {
-						// not sure how to recover at this point
-					}
-				}
-			}
-		}
-		return ResourcesPlugin.getEncoding();
-	}
-
-	/**
-	 * @param document
-	 * @param documentRegion
-	 * @param comment
-	 */
-	protected void findTasks(IDocument document, IStructuredDocumentRegion documentRegion, ITextRegion comment) {
-		if (isCommentRegion(documentRegion, comment)) {
-			int startOffset = documentRegion.getStartOffset(comment);
-			int endOffset = documentRegion.getTextEndOffset(comment);
-			try {
-				int startLine = document.getLineOfOffset(startOffset);
-				int endLine = document.getLineOfOffset(endOffset);
-				for (int lineNumber = startLine; lineNumber <= endLine; lineNumber++) {
-					IRegion line = document.getLineInformation(lineNumber);
-					int begin = Math.max(startOffset, line.getOffset());
-					int end = Math.min(endOffset, line.getOffset() + line.getLength());
-					int length = end - begin;
-
-					// TODO: improve our search algorithm; use search or
-					// regionMatch?
-
-					String commentedText = getCommentedText(document, begin, length);
-
-					for (int i = 0; i < fTaskTags.length; i++) {
-						int tagIndex = commentedText.indexOf(fTaskTags[i].text);
-						if (tagIndex >= 0) {
-							String markerDescription = commentedText.substring(tagIndex);
-							int markerOffset = begin + tagIndex;
-							int markerLength = end - markerOffset;
-							fNewMarkerAttributes.add(createInitialMarkerAttributes(markerDescription, lineNumber, markerOffset, markerLength, fTaskTags[i].priority));
-							break;
-						}
-					}
-				}
-			} catch (BadLocationException e) {
-				Logger.logException(e);
-			}
-		}
-	}
-
-	private void findTasks(IFile file, IProgressMonitor monitor) {
-		try {
-			IModelHandler handler = ModelHandlerRegistry.getInstance().getHandlerFor(file);
-
-			// records if the optimized streamish parse was possible
-			boolean didStreamParse = false;
-			final IProgressMonitor progressMonitor = monitor;
-			final IEncodedDocument defaultDocument = handler.getDocumentLoader().createNewStructuredDocument();
-			if (defaultDocument instanceof IStructuredDocument) {
-				RegionParser parser = ((IStructuredDocument) defaultDocument).getParser();
-				if (parser instanceof StructuredDocumentRegionParser) {
-					didStreamParse = true;
-					String charset = detectCharset(file);
-					StructuredDocumentRegionParser documentParser = (StructuredDocumentRegionParser) parser;
-					final IDocument textDocument = new Document();
-					setDocumentContent(textDocument, file.getContents(true), charset);
-					documentParser.reset(new DocumentReader(textDocument));
-					documentParser.addStructuredDocumentRegionHandler(new StructuredDocumentRegionHandler() {
-						/**
-						 * @see org.eclipse.wst.sse.core.parser.StructuredDocumentRegionHandler#nodeParsed(org.eclipse.wst.sse.core.text.IStructuredDocumentRegion)
-						 */
-						public void nodeParsed(IStructuredDocumentRegion documentRegion) {
-							ITextRegionList regions = documentRegion.getRegions();
-							for (int j = 0; j < regions.size(); j++) {
-								ITextRegion comment = regions.get(j);
-								findTasks(textDocument, documentRegion, comment);
-							}
-							// disconnect the document regions
-							if (documentRegion.getPrevious() != null) {
-								documentRegion.getPrevious().setPrevious(null);
-								documentRegion.getPrevious().setNext(null);
-							}
-							if (progressMonitor.isCanceled()) {
-								textDocument.set(""); //$NON-NLS-1$
-							}
-						}
-
-						/**
-						 * @see org.eclipse.wst.sse.core.parser.StructuredDocumentRegionHandler#resetNodes()
-						 */
-						public void resetNodes() {
-						}
-					});
-					documentParser.getDocumentRegions();
-				}
-			}
-			if (!didStreamParse) {
-				// Use a StructuredDocument
-				IEncodedDocument document = handler.getDocumentLoader().createNewStructuredDocument(file);
-				if (document instanceof IStructuredDocument) {
-					IStructuredDocumentRegion documentRegion = ((IStructuredDocument) document).getFirstStructuredDocumentRegion();
-					while (documentRegion != null) {
-						ITextRegionList regions = documentRegion.getRegions();
-						for (int j = 0; j < regions.size(); j++) {
-							ITextRegion comment = regions.get(j);
-							findTasks(document, documentRegion, comment);
-						}
-						documentRegion = documentRegion.getNext();
-					}
-				}
-			}
-		} catch (CoreException e) {
-			Logger.logException("Exception with " + file.getFullPath().toString(), e);
-		} catch (CharacterCodingException e) {
-			Logger.log(Logger.INFO, "TaskTagSeeker encountered CharacterCodingException reading " + file.getFullPath().toOSString());
-		} catch (IOException e) {
-			Logger.logException(e);
-		}
-	}
-
-
-	/**
-	 * @param document
-	 * @param begin
-	 * @param length
-	 * @return
-	 * @throws BadLocationException
-	 */
-	protected String getCommentedText(IDocument document, int begin, int length) throws BadLocationException {
-		return document.get(begin, length);
-	}
-
-	final protected String getMarkerType() {
-		return SSECorePlugin.ID + ".task"; //$NON-NLS-1$
-	}
-
-	/**
-	 * @param region2
-	 * @return
-	 */
-	protected abstract boolean isCommentRegion(IStructuredDocumentRegion region, ITextRegion textRegion);
-
-	boolean isShouldBuild(IResource r) {
-		// skip "dot" files
-		String s = r.getName();
-		return s.length() == 0 || s.charAt(0) != '.';
-	}
-
-	private void loadPreference() {
-		if (_debug) {
-			System.out.println(this + " loadPreference()"); //$NON-NLS-1$
-		}
-		fEnabled = SSECorePlugin.getDefault().getPluginPreferences().getBoolean(CommonModelPreferenceNames.TASK_TAG_ENABLE);
-		String tagsString = SSECorePlugin.getDefault().getPluginPreferences().getString(CommonModelPreferenceNames.TASK_TAG_TAGS);
-		String prioritiesString = SSECorePlugin.getDefault().getPluginPreferences().getString(CommonModelPreferenceNames.TASK_TAG_PRIORITIES);
-
-		List list = new ArrayList();
-		StringTokenizer toker = null;
-		if (tagsString.length() > 0) {
-			toker = new StringTokenizer(tagsString, ","); //$NON-NLS-1$
-			while (toker.hasMoreTokens()) {
-				// since we're separating the values with ',', escape ',' in
-				// the
-				// values
-				list.add(StringUtils.replace(toker.nextToken(), "&comma;", ",").trim()); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-		String[] tags = (String[]) list.toArray(new String[0]);
-		list.clear();
-
-		if (prioritiesString.length() > 0) {
-			toker = new StringTokenizer(prioritiesString, ","); //$NON-NLS-1$
-			int i = 0;
-			while (toker.hasMoreTokens() && i < tags.length) {
-				Integer number = null;
-				try {
-					number = Integer.valueOf(toker.nextToken().trim());
-				} catch (NumberFormatException e) {
-					number = new Integer(IMarker.PRIORITY_NORMAL);
-				}
-				if (i < tags.length) {
-					list.add(new TaskTag(tags[i++], number.intValue()));
-				}
-			}
-		}
-		fTaskTags = (TaskTag[]) list.toArray(new TaskTag[0]);
-	}
-
-	/**
-	 * Sets the document content from this stream, closing the stream when
-	 * done
-	 * 
-	 * @param document
-	 * @param contentStream
-	 * @param charset
-	 */
-	protected void setDocumentContent(IDocument document, InputStream contentStream, String charset) {
-		Reader in = null;
-		try {
-			in = new BufferedReader(new InputStreamReader(contentStream, charset), 2048);
-			StringBuffer buffer = new StringBuffer(2048);
-			char[] readBuffer = new char[2048];
-			int n = in.read(readBuffer);
-			while (n > 0) {
-				buffer.append(readBuffer, 0, n);
-				n = in.read(readBuffer);
-			}
-			document.set(buffer.toString());
-		} catch (IOException x) {
-		} finally {
-			if (in != null) {
-				try {
-					in.close();
-				} catch (IOException x) {
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.builder.IBuilderParticipant#shutdown(org.eclipse.core.resources.IProject)
-	 */
-	public void shutdown(IProject project) {
-		if (_debug) {
-			System.out.println(this + " shutdown for " + project.getName()); //$NON-NLS-1$
-		}
-		fTaskTags = null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.builder.IBuilderParticipant#startup(org.eclipse.core.resources.IProject,
-	 *      int, java.util.Map)
-	 */
-	public void startup(IProject project, int kind, Map args) {
-		if (_debug) {
-			System.out.println(this + " startup for " + project.getName()); //$NON-NLS-1$
-		}
-		if (_debugBuilderPerf) {
-			time0 = System.currentTimeMillis();
-		}
-		loadPreference();
-		if (_debugBuilderPerf) {
-			System.out.println("" + (System.currentTimeMillis() - time0) + "ms loading prefs for " + project.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/preferences/CommonModelPreferenceNames.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/preferences/CommonModelPreferenceNames.java
deleted file mode 100644
index 13f15f3..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/preferences/CommonModelPreferenceNames.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.preferences;
-
-import org.eclipse.wst.common.encoding.CommonEncodingPreferenceNames;
-
-/**
- * Here is a description of how each common model file preference is used.
- * 
- * tabWidth The number of spaces representing a tab. This number is also used
- * as number of spaces to indent during formatting when indentUsingTabs is
- * false.
- * 
- * splitLines Indicates if long lines should be splitted.
- * 
- * splitLinesUsingEditorsWidth Indicates if long lines should be splitted
- * using the editor's current width. The editor's current width will be used
- * when splitting long lines if splitLinesUsingEditorWidth is true. lineWidth
- * will be used when splitting long lines if splitLinesUsingEditorWidth is
- * false.
- * 
- * lineWidth The maximum width of a line before a line split is needed. This
- * number is only used when lineSplitting is true, otherwise it's ignored.
- * 
- * splitMultiAttrs Indicates if tags with multiple attributes should be
- * formatted (splitting each attr on a new line).
- * 
- * indentUsingTabs Indicates if tabs should be used for indentation during
- * formatting. The same number of spaces specified by tabWidth will be used
- * for indentation if indentUsingTabs is false.
- * 
- * clearAllBlankLines Indicates if all blanks lines should be cleared during
- * formatting. Blanks lines will be kept when clearAllBlankLines is false.
- * 
- * formattingSupported Indicates if the current content type supports
- * formatting. The splitLines, splitLinesUsingEditorsWidth, lineWidth,
- * splitMultiAttrs, and indentUsingTabs preferences will be meaningless if
- * formattingSupported is false.
- * 
- * contentAssistSupported Indicates if the current content type supports
- * content assist. The autoPropose, and autoProposeCode preferences will be
- * meaningless if contentAssistSupported is false.
- * 
- * preferredMarkupCaseSupported Indicates if the current content type supports
- * "preferred markup case for content assist, and code generation". The
- * tagNameCase, and attrNameCase preferences will be meaningless if
- * preferredMarkupCaseSupported is false.
- *  
- */
-public interface CommonModelPreferenceNames {
-	String TAB_WIDTH = "tabWidth";//$NON-NLS-1$
-	String LINE_WIDTH = "lineWidth";//$NON-NLS-1$
-	String SPLIT_MULTI_ATTRS = "splitMultiAttrs";//$NON-NLS-1$
-	String INDENT_USING_TABS = "indentUsingTabs";//$NON-NLS-1$
-	String CLEAR_ALL_BLANK_LINES = "clearAllBlankLines";//$NON-NLS-1$
-
-	String TAG_NAME_CASE = "tagNameCase";//$NON-NLS-1$
-	String ATTR_NAME_CASE = "attrNameCase";//$NON-NLS-1$
-
-	String FORMATTING_SUPPORTED = "formattingSupported";//$NON-NLS-1$
-
-	String PREFERRED_MARKUP_CASE_SUPPORTED = "preferredMarkupCaseSupported";//$NON-NLS-1$
-
-	String TASK_TAG_TAGS = "task-tag-tags"; //$NON-NLS-1$
-	String TASK_TAG_PRIORITIES = "task-tag-priorities"; //$NON-NLS-1$
-	String TASK_TAG_ENABLE = "task-tags"; //$NON-NLS-1$
-
-	/*
-	 * @deprecated - use from CommonEncodingPreferenceNames
-	 */
-	String OUTPUT_CODESET = CommonEncodingPreferenceNames.OUTPUT_CODESET;
-
-	/**
-	 * these are preferences that should be inherited from the "embedded
-	 * preference store" for example: if you ask for th OVERVIEW_RULER
-	 * preference for JSP, you will automatically get the preference from the
-	 * HTML preference store.
-	 */
-	String EMBEDDED_CONTENT_TYPE_PREFERENCES[] = {TAB_WIDTH, LINE_WIDTH, SPLIT_MULTI_ATTRS, INDENT_USING_TABS, CLEAR_ALL_BLANK_LINES, TAG_NAME_CASE, ATTR_NAME_CASE,};
-
-	String FORMATTING_PREFERENCES[] = {TAB_WIDTH, LINE_WIDTH, SPLIT_MULTI_ATTRS, INDENT_USING_TABS, CLEAR_ALL_BLANK_LINES,};
-
-	String AUTO = "Auto";//$NON-NLS-1$
-	String UTF_8 = "UTF-8";//$NON-NLS-1$
-	String ISO_8859_1 = "ISO-8859-1";//$NON-NLS-1$
-
-	int ASIS = 0;
-	int LOWER = 1;
-	int UPPER = 2;
-
-	// cleanup preference names
-	String CLEANUP_TAG_NAME_CASE = "cleanupTagNameCase";//$NON-NLS-1$
-	String CLEANUP_ATTR_NAME_CASE = "cleanupAttrNameCase";//$NON-NLS-1$
-	String COMPRESS_EMPTY_ELEMENT_TAGS = "compressEmptyElementTags";//$NON-NLS-1$
-	String INSERT_REQUIRED_ATTRS = "insertRequiredAttrs";//$NON-NLS-1$
-	String INSERT_MISSING_TAGS = "insertMissingTags";//$NON-NLS-1$
-	String QUOTE_ATTR_VALUES = "quoteAttrValues";//$NON-NLS-1$
-	String FORMAT_SOURCE = "formatSource";//$NON-NLS-1$
-	String CONVERT_EOL_CODES = "convertEOLCodes";//$NON-NLS-1$
-	String CLEANUP_EOL_CODE = "cleanupEOLCode";//$NON-NLS-1$
-
-	String LAST_ACTIVE_PAGE = "lastActivePage";//$NON-NLS-1$	
-
-	// need to put default tab width preference here so it is accessible by
-	// both model and editor
-	// this way, editor does not need to query model's default tab width
-	// preference
-	int DEFAULT_TAB_WIDTH = 4;
-	/**
-	 * @deprecated use CommonEncodingPreferenceNames.END_OF_LINE_CODE instead
-	 *             TODO remove
-	 */
-	String END_OF_LINE_CODE = CommonEncodingPreferenceNames.END_OF_LINE_CODE;
-	/**
-	 * @deprecated use CommonEncodingPreferenceNames.NO_TRANSLATION instead
-	 *             TODO remove
-	 */
-	String NO_TRANSLATION = CommonEncodingPreferenceNames.NO_TRANSLATION;
-	/**
-	 * @deprecated use CommonEncodingPreferenceNames.INPUT_CODESET instead
-	 *             TODO remove
-	 */
-	String INPUT_CODESET = CommonEncodingPreferenceNames.INPUT_CODESET;
-	/**
-	 * @deprecated use CommonEncodingPreferenceNames.STRING_CRLF instead TODO
-	 *             remove
-	 */
-	String STRING_CRLF = CommonEncodingPreferenceNames.STRING_CRLF;
-	/**
-	 * @deprecated use CommonEncodingPreferenceNames.STRING_CR instead TODO
-	 *             remove
-	 */
-	String STRING_CR = CommonEncodingPreferenceNames.STRING_CR;
-	/**
-	 * @deprecated use CommonEncodingPreferenceNames.STRING_LF instead TODO
-	 *             remove
-	 */
-	String STRING_LF = CommonEncodingPreferenceNames.STRING_LF;
-	/**
-	 * @deprecated use CommonEncodingPreferenceNames.CRLF instead TODO remove
-	 */
-	String CRLF = CommonEncodingPreferenceNames.CRLF;
-	/**
-	 * @deprecated use CommonEncodingPreferenceNames.LF instead TODO remove
-	 */
-	String LF = CommonEncodingPreferenceNames.LF;
-	/**
-	 * @deprecated use CommonEncodingPreferenceNames.CR instead TODO remove
-	 */
-	String CR = CommonEncodingPreferenceNames.CR;
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/preferences/PreferenceChangeListener.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/preferences/PreferenceChangeListener.java
deleted file mode 100644
index e571116..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/preferences/PreferenceChangeListener.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.preferences;
-
-/**
- * @deprecated This used to be used by our own PreferenceManager but since
- *             that class is no longer needed, this class should also no
- *             longer be needed. Use the base's IPreferenceChangeListener or
- *             IPropertyChangeListener instead.
- */
-public interface PreferenceChangeListener {
-
-	void preferencesChanged();
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/DeleteEqualPositionUpdater.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/DeleteEqualPositionUpdater.java
deleted file mode 100644
index b5b9d72..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/DeleteEqualPositionUpdater.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.text;
-
-import org.eclipse.jface.text.BadPositionCategoryException;
-import org.eclipse.jface.text.DefaultPositionUpdater;
-
-/**
- * Follows the behavior of DefaultPositionUpdater except in addition to
- * deleting/overwriting text which completely contains the position deletes
- * the position, deleting text that equals the text in position also deletes
- * the position.
- * 
- * @see org.eclipse.jface.text.DefaultPositionUpdater
- */
-public class DeleteEqualPositionUpdater extends DefaultPositionUpdater {
-
-	/**
-	 * @param category
-	 */
-	public DeleteEqualPositionUpdater(String category) {
-		super(category);
-	}
-
-	/**
-	 * Determines whether the currently investigated position has been deleted
-	 * by the replace operation specified in the current event. If so, it
-	 * deletes the position and removes it from the document's position
-	 * category.
-	 * 
-	 * NOTE: position is deleted if current event completely overwrites
-	 * position OR if current event deletes the area surrounding/including the
-	 * position
-	 * 
-	 * @return <code>true</code> if position has been deleted
-	 */
-	protected boolean notDeleted() {
-		// position is deleted if current event completely overwrites position
-		// OR if
-		// current event deletes the area surrounding/including the position
-		if ((fOffset < fPosition.offset && (fPosition.offset + fPosition.length < fOffset + fLength)) || (fOffset <= fPosition.offset && (fPosition.offset + fPosition.length <= fOffset + fLength) && fReplaceLength == 0)) {
-
-			fPosition.delete();
-
-			try {
-				fDocument.removePosition(getCategory(), fPosition);
-			} catch (BadPositionCategoryException x) {
-			}
-
-			return false;
-		}
-
-		return true;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/IStructuredDocument.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/IStructuredDocument.java
deleted file mode 100644
index 39e7821..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/IStructuredDocument.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.text;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.text.IDocumentExtension;
-import org.eclipse.wst.common.encoding.EncodingMemento;
-import org.eclipse.wst.sse.core.document.IEncodedDocument;
-import org.eclipse.wst.sse.core.events.IModelAboutToBeChangedListener;
-import org.eclipse.wst.sse.core.events.IStructuredDocumentListener;
-import org.eclipse.wst.sse.core.events.NewModelEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.parser.RegionParser;
-import org.eclipse.wst.sse.core.undo.IStructuredTextUndoManager;
-
-
-/**
- * A IStructuredDocument is a collection of StructuredDocumentRegions. It's
- * often called "flat" because its contents by design do not contain much
- * structural information beyond containment. Clients should not implement.
- */
-public interface IStructuredDocument extends IEncodedDocument, IDocumentExtension, IAdaptable {
-
-	String DEFAULT_STRUCTURED_PARTITIONING = "___structured_text_partitioning";
-
-	void addDocumentAboutToChangeListener(IModelAboutToBeChangedListener listener);
-
-	/**
-	 * The StructuredDocumentListeners and ModelChangedListeners are very
-	 * similar. They both receive identical events. The difference is the
-	 * timing. The "pure" StructuredDocumentListeners are notified after the
-	 * structuredDocument has been changed, but before other, related models
-	 * may have been changed such as the Structural Model. The Structural
-	 * model is in fact itself a "pure" StructuredDocumentListner. The
-	 * ModelChangedListeners can rest assured that all models and data have
-	 * been updated from the change by the tiem they are notified. This is
-	 * especially important for the text widget, for example, which may rely
-	 * on both structuredDocument and structural model information.
-	 */
-	void addDocumentChangedListener(IStructuredDocumentListener listener);
-
-	/**
-	 * The StructuredDocumentListeners and ModelChangedListeners are very
-	 * similar. They both receive identical events. The difference is the
-	 * timing. The "pure" StructuredDocumentListeners are notified after the
-	 * structuredDocument has been changed, but before other, related models
-	 * may have been changed such as the Structural Model. The Structural
-	 * model is in fact itself a "pure" StructuredDocumentListner. The
-	 * ModelChangedListeners can rest assured that all models and data have
-	 * been updated from the change by the tiem they are notified. This is
-	 * especially important for the text widget, for example, which may rely
-	 * on both structuredDocument and structural model information.
-	 */
-	void addDocumentChangingListener(IStructuredDocumentListener listener);
-
-	/**
-	 * this API ensures that any portion of the document within startOff to
-	 * length is not readonly (that is, that its editable). Note that if the
-	 * range overlaps with other readonly regions, those other readonly
-	 * regions will be adjusted.
-	 * 
-	 * @param startOffset
-	 * @param length
-	 */
-	void clearReadOnly(int startOffset, int length);
-
-	/**
-	 * returns true if any portion of startOffset to length is readonly
-	 * 
-	 * @param startOffset
-	 * @param length
-	 * @return
-	 */
-	boolean containsReadOnly(int startOffset, int length);
-
-	/**
-	 * This method is to remember info about the encoding When the resource
-	 * was last loaded or saved. Note: it is not kept "current", that is, can
-	 * not be depended on blindly to reflect what encoding to use. For that,
-	 * must go through the normal rules expressed in Loaders and Dumpers.
-	 */
-
-	EncodingMemento getEncodingMemento();
-
-	org.eclipse.wst.sse.core.text.IStructuredDocumentRegion getFirstStructuredDocumentRegion();
-
-	org.eclipse.wst.sse.core.text.IStructuredDocumentRegion getLastStructuredDocumentRegion();
-
-	/**
-	 * This can be considered the preferred delimiter.
-	 */
-	public String getLineDelimiter();
-
-	int getLineOfOffset(int offset); // throws SourceEditingException;
-
-	/**
-	 * The parser is now required on constructor, so there are occasions it
-	 * needs to be retrieved, such as to be initialized by EmbeddedContentType
-	 */
-	RegionParser getParser();
-
-	IStructuredDocumentRegion getRegionAtCharacterOffset(int offset);
-
-	IStructuredDocumentRegionList getRegionList();
-
-
-	/**
-	 * Note: this method was made public, and part of the interface, for
-	 * easier testing. Clients normally never manipulate the reparser directly
-	 * (nor should they need to).
-	 */
-	IStructuredTextReParser getReParser();
-
-	String getText();
-
-	IStructuredTextUndoManager getUndoManager();
-
-	/**
-	 * causes that portion of the document from startOffset to length to be
-	 * marked as readonly. Note that if this range overlaps with some other
-	 * region with is readonly, the regions are effectivly combined.
-	 * 
-	 * @param startOffset
-	 * @param length
-	 */
-	void makeReadOnly(int startOffset, int length);
-
-	/**
-	 * newInstance is similar to clone, except it contains no data. One
-	 * important thing to duplicate is the parser, with the parser correctly
-	 * "cloned", including its tokeninzer, block tags, etc.
-	 * 
-	 * NOTE: even after obtaining a 'newInstance' the client may have to do
-	 * some initialization, for example, it may need to add its own model
-	 * listeners. Or, as another example, if the IStructuredDocument has a
-	 * parser of type StructuredDocumentRegionParser, then the client may need
-	 * to add its own StructuredDocumentRegionHandler to that parser, if it is
-	 * in fact needed.
-	 */
-	IStructuredDocument newInstance();
-
-	void removeDocumentAboutToChangeListener(IModelAboutToBeChangedListener listener);
-
-	void removeDocumentChangedListener(IStructuredDocumentListener listener);
-
-	void removeDocumentChangingListener(IStructuredDocumentListener listener);
-
-	/**
-	 * One of the APIs to manipulate the IStructuredDocument.
-	 * 
-	 * replaceText replaces the text from oldStart to oldEnd with the new text
-	 * found in the requestedChange string. If oldStart and oldEnd are equal,
-	 * it is an insertion request. If requestedChange is null (or empty) it is
-	 * a delete request. Otherwise it is a replace request.
-	 */
-	StructuredDocumentEvent replaceText(Object source, int oldStart, int replacementLength, String requestedChange);
-
-	/**
-	 * Note, same as replaceText API, but will allow readonly areas to be
-	 * replaced. This should seldom be called with a value of "true" for
-	 * ignoreReadOnlySetting. One case where its ok is with undo operations
-	 * (since, presumably, if user just did something that happended to
-	 * involve some inserting readonly text, they should normally be allowed
-	 * to still undo that operation. Otherwise, I can't think of a single
-	 * example, unless its to give the user a choice, e.g. "you are about to
-	 * overwrite read only portions, do you want to continue".
-	 */
-	StructuredDocumentEvent replaceText(Object source, int oldStart, int replacementLength, String requestedChange, boolean ignoreReadOnlySetting);
-
-	/**
-	 * This method is to remember info about the encoding When the resource
-	 * was last loaded or saved. Note: it is not kept "current", that is, can
-	 * not be depended on blindly to reflect what encoding to use. For that,
-	 * must go through the normal rules expressed in Loaders and Dumpers.
-	 */
-	void setEncodingMemento(EncodingMemento encodingMemento);
-
-	public void setLineDelimiter(String delimiter);
-
-	/**
-	 * One of the APIs to manipulate the IStructuredDocument in terms of Text.
-	 * 
-	 * The setText method replaces all text in the model.
-	 */
-	NewModelEvent setText(Object requester, String allText);
-
-	void setUndoManager(IStructuredTextUndoManager undoManager);
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/IStructuredDocumentRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/IStructuredDocumentRegion.java
deleted file mode 100644
index 752f403..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/IStructuredDocumentRegion.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.text;
-
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-
-
-
-/**
- * A ITextRegionCollection is a collection of ITextRegions. It is a structural
- * unit, but a minimal one. For example, in might consist of a "start tag" but
- * not a whole XML node.
- */
-public interface IStructuredDocumentRegion extends ITextRegionCollection {
-
-	/**
-	 * For use by parsers and reparsers only.
-	 */
-	void addRegion(ITextRegion aRegion);
-
-	/**
-	 * For use by parsers and reparsers only.
-	 */
-	void adjustLengthWith(int i);
-
-	/**
-	 * For use by parsers and reparsers only.
-	 */
-	void adjustStart(int i);
-
-
-
-	IStructuredDocumentRegion getNext();
-
-	IStructuredDocument getParentDocument();
-
-	IStructuredDocumentRegion getPrevious();
-
-	boolean isDeleted();
-
-	boolean isEnded();
-
-	boolean sameAs(IStructuredDocumentRegion region, int shift);
-
-	boolean sameAs(ITextRegion oldRegion, IStructuredDocumentRegion documentRegion, ITextRegion newRegion, int shift);
-
-	void setDeleted(boolean deleted);
-
-	/**
-	 * For use by parsers and reparsers only.
-	 */
-	void setEnded(boolean hasEnd);
-
-	/**
-	 * For use by parsers and reparsers only.
-	 */
-	void setLength(int newLength);
-
-	/**
-	 * For use by parsers and reparsers only.
-	 */
-	void setNext(IStructuredDocumentRegion newNext);
-
-	/**
-	 * For use by parsers and reparsers only.
-	 */
-	void setParentDocument(IStructuredDocument document);
-
-	/**
-	 * For use by parsers and reparsers only.
-	 */
-	void setPrevious(IStructuredDocumentRegion newPrevious);
-
-	/**
-	 * For use by parsers and reparsers only.
-	 */
-	void setStart(int newStart);
-
-	/**
-	 * For use by parsers and reparsers only.
-	 */
-	StructuredDocumentEvent updateModel(Object requester, IStructuredDocumentRegion flatnode, String changes, int start, int end);
-
-
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/IStructuredDocumentRegionList.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/IStructuredDocumentRegionList.java
deleted file mode 100644
index 6e906cd..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/IStructuredDocumentRegionList.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.text;
-
-
-
-import java.util.Enumeration;
-
-/**
- * This is a class used to provide a list of StructuredDocumentRegions, so the
- * implementation of how the list is formed can be hidden (encapsulated by
- * this class).
- */
-public interface IStructuredDocumentRegionList {
-
-	Enumeration elements();
-
-	int getLength();
-
-	IStructuredDocumentRegion item(int i);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/IStructuredTextPartitioner.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/IStructuredTextPartitioner.java
deleted file mode 100644
index 17a70a4..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/IStructuredTextPartitioner.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.text;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentPartitioner;
-
-
-/**
- * A partitioner interface required by the StructuredTextPartitionerForJSP for
- * handling the embedded content type properly. This has not yet been
- * finalized.
- */
-
-public interface IStructuredTextPartitioner extends IDocumentPartitioner {
-	void connect(IDocument document);
-
-	/**
-	 * @deprecated - (dmw) not sure why we needed to make this part of
-	 *             interface ... but probably shouldn't be.
-	 * 
-	 * (nsd) Used by JSP partitioner to ensure that the partitioner of the
-	 * embedded content type gets to create the partition in case the specific
-	 * classes are important.
-	 */
-	StructuredTypedRegion createPartition(int offset, int length, String type);
-
-	void disconnect();
-
-	String getDefault();
-
-	String[] getLegalContentTypes();
-
-	String getPartitionType(ITextRegion region, int offset);
-
-	String getPartitionTypeBetween(IStructuredDocumentRegion previousNode, ITextRegion previousStartTagNameRegion, IStructuredDocumentRegion nextNode, ITextRegion nextEndTagNameRegion);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/IStructuredTextReParser.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/IStructuredTextReParser.java
deleted file mode 100644
index acd0c11..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/IStructuredTextReParser.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.text;
-
-
-
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-
-public interface IStructuredTextReParser {
-
-	void initialize(Object requester, int start, int lengthToReplace, String changes);
-
-	/**
-	 * This method is provided in anticipation of eventual multithreading.
-	 * This is needed since the intialize method sets state variables that
-	 * must be "in sync" with the structuredDocument.
-	 */
-	public boolean isParsing();
-
-	public IStructuredTextReParser newInstance();
-
-	/**
-	 * An entry point for reparsing. It calculates the dirty start and dirty
-	 * end flatnodes based on the start point and length of the changes, which
-	 * are provided by the initialize method.
-	 *  
-	 */
-	public StructuredDocumentEvent reparse();
-
-	public void setStructuredDocument(IStructuredDocument newStructuredDocument);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/ITextRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/ITextRegion.java
deleted file mode 100644
index 4a61fe9..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/ITextRegion.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.text;
-
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-
-
-
-/**
- * A simple description of a bit of text (technically, a bit of a text buffer)
- * than has a "type" associated with it. For example, for the XML text
- * "&LT;IMG&GT;", the ' <' might form a region of type "open bracket" where as
- * the text "IMG" might form a region of type "tag name".
- * 
- * Note that there are three positions associated with a region, the start,
- * the end, and the end of the text. The end of the region should always be
- * greater than or equal to the end of the text, because the end of the text
- * simply includes any white space that might follow the non-whitespace
- * portion of the region. This whitespace is assumed to be ignorable except
- * for reasons of maintaining it in the original document for formatting,
- * appearance, etc.
- *  
- */
-public interface ITextRegion {
-
-	/**
-	 * For use by parsers and reparsers only.
-	 */
-	void adjustLengthWith(int i);
-
-	/**
-	 * For use by parsers and reparsers only.
-	 */
-	void adjustStart(int i);
-
-	/**
-	 * 
-	 * For use by parsers and reparsers only.
-	 */
-	void adjustTextLength(int i);
-
-	void equatePositions(ITextRegion region);
-
-	int getEnd();
-
-	int getLength();
-
-	int getStart();
-
-	/**
-	 * In some implementations, the "end" of the region (accessible via
-	 * getEnd()) also contains any and all white space that may or may not be
-	 * present after the "token" (read: relevant) part of the region. This
-	 * method, getTextEnd(), is specific for the "token" part of the region,
-	 * without the whitespace.
-	 */
-	int getTextEnd();
-
-	/**
-	 * 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.
-	 */
-	int getTextLength();
-
-	String getType();
-
-	/**
-	 * @deprecated - few implement this in a meaningful way.
-	 */
-	StructuredDocumentEvent updateModel(Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace);
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/ITextRegionCollection.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/ITextRegionCollection.java
deleted file mode 100644
index 5d933ae..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/ITextRegionCollection.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.text;
-
-public interface ITextRegionCollection extends ITextRegion {
-
-	boolean containsOffset(int i);
-
-	boolean containsOffset(ITextRegion region, int i);
-
-	void equatePositions(ITextRegion region);
-
-	int getEndOffset();
-
-	int getEndOffset(ITextRegion containedRegion);
-
-	ITextRegion getFirstRegion();
-
-	String getFullText();
-
-	String getFullText(ITextRegion containedRegion);
-
-	ITextRegion getLastRegion();
-
-	int getLength();
-
-	int getNumberOfRegions();
-
-	ITextRegion getRegionAtCharacterOffset(int offset);
-
-	ITextRegionList getRegions();
-
-	int getStartOffset();
-
-	int getStartOffset(ITextRegion containedRegion);
-
-	String getText();
-
-	String getText(ITextRegion containedRegion);
-
-	int getTextEndOffset();
-
-	int getTextEndOffset(ITextRegion containedRegion);
-
-	/**
-	 * For use by parsers and reparsers only.
-	 */
-	void setRegions(ITextRegionList embeddedRegions);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/ITextRegionContainer.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/ITextRegionContainer.java
deleted file mode 100644
index f720a45..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/ITextRegionContainer.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.text;
-
-/**
- *  
- */
-public interface ITextRegionContainer extends ITextRegionCollection {
-
-	ITextRegionCollection getParent();
-
-	/**
-	 * For use by parsers and reparsers only.
-	 */
-
-	void setParent(ITextRegionCollection parent);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/ITextRegionList.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/ITextRegionList.java
deleted file mode 100644
index d38d3f2..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/ITextRegionList.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.text;
-
-import java.util.Iterator;
-
-
-public interface ITextRegionList {
-	public boolean add(ITextRegion region);
-
-	public boolean addAll(int insertPos, ITextRegionList newRegions);
-
-	public void clear();
-
-	public ITextRegion get(int index);
-
-	public int indexOf(ITextRegion region);
-
-	public boolean isEmpty();
-
-	public Iterator iterator();
-
-	public ITextRegion remove(int index);
-
-	public void remove(ITextRegion region);
-
-	public void removeAll(ITextRegionList regionList);
-
-	public int size();
-
-	public ITextRegion[] toArray();
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/SimpleStructuredRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/SimpleStructuredRegion.java
deleted file mode 100644
index 4ab5c4a..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/SimpleStructuredRegion.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.text;
-
-import org.eclipse.jface.text.IRegion;
-
-
-
-/**
- * Similar to jface region except we wanted a setting on length
- */
-public class SimpleStructuredRegion implements StructuredRegion {
-	/** The region length */
-	private int fLength;
-
-	/** The region offset */
-	private int fOffset;
-
-	/**
-	 * Create a new region.
-	 * 
-	 * @param offset
-	 *            the offset of the region
-	 * @param length
-	 *            the length of the region
-	 */
-	public SimpleStructuredRegion(int offset, int length) {
-		fOffset = offset;
-		fLength = length;
-	}
-
-	/**
-	 * Two regions are equal if they have the same offset and length.
-	 * 
-	 * @see Object#equals
-	 */
-	public boolean equals(Object o) {
-		if (o instanceof IRegion) {
-			IRegion r = (IRegion) o;
-			return r.getOffset() == fOffset && r.getLength() == fLength;
-		}
-		return false;
-	}
-
-	/*
-	 * @see IRegion#getLength
-	 */
-	public int getLength() {
-		return fLength;
-	}
-
-	/*
-	 * @see IRegion#getOffset
-	 */
-	public int getOffset() {
-		return fOffset;
-	}
-
-	/**
-	 * @see Object#hashCode hascode is overridden since we provide our own
-	 *      equals.
-	 */
-	public int hashCode() {
-		return (fOffset << 24) | (fLength << 16);
-	}
-
-	/**
-	 * Sets the length.
-	 * 
-	 * @param length
-	 *            The length to set
-	 */
-	public void setLength(int length) {
-		fLength = length;
-	}
-
-	public void setOffset(int offset) {
-		fOffset = offset;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/SimpleStructuredTypedRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/SimpleStructuredTypedRegion.java
deleted file mode 100644
index f4f1117..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/SimpleStructuredTypedRegion.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.text;
-
-
-
-/**
- * Similar jace TypedRegion, but had to subclass our version which allowed
- * length to be set.
- */
-public class SimpleStructuredTypedRegion extends SimpleStructuredRegion implements StructuredTypedRegion {
-
-	/** The region's type */
-	private String fType;
-
-	/**
-	 * Creates a typed region based on the given specification.
-	 * 
-	 * @param offset
-	 *            the region's offset
-	 * @param length
-	 *            the region's length
-	 * @param type
-	 *            the region's type
-	 */
-	public SimpleStructuredTypedRegion(int offset, int length, String type) {
-		super(offset, length);
-		fType = type;
-	}
-
-	/**
-	 * Two typed positions are equal if they have the same offset, length, and
-	 * type.
-	 * 
-	 * @see Object#equals
-	 */
-	public boolean equals(Object o) {
-		if (o instanceof SimpleStructuredTypedRegion) {
-			SimpleStructuredTypedRegion r = (SimpleStructuredTypedRegion) o;
-			return super.equals(r) && ((fType == null && r.getType() == null) || fType.equals(r.getType()));
-		}
-		return false;
-	}
-
-	/*
-	 * @see ITypedRegion#getType()
-	 */
-	public String getType() {
-		return fType;
-	}
-
-	/*
-	 * @see Object#hashCode
-	 */
-	public int hashCode() {
-		int type = fType == null ? 0 : fType.hashCode();
-		return super.hashCode() | type;
-	}
-
-	public void setType(String type) {
-		fType = type;
-	}
-
-	/**
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		StringBuffer s = new StringBuffer();
-		s.append(getOffset());
-		s.append(":"); //$NON-NLS-1$
-		s.append(getLength());
-		s.append(" - "); //$NON-NLS-1$
-		s.append(getType());
-		return s.toString();
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/StructuredRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/StructuredRegion.java
deleted file mode 100644
index b1face6..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/StructuredRegion.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.text;
-
-import org.eclipse.jface.text.IRegion;
-
-/**
- * Like super class except allows length and offset to be modified. This is
- * convenient for some algorithms, and allows region objects to be reused.
- * Note: There MIGHT be some code that assumes regions are immutable. This
- * class would not be appropriate for those uses.
- */
-public interface StructuredRegion extends IRegion {
-	void setLength(int length);
-
-	void setOffset(int offset);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/StructuredTypedRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/StructuredTypedRegion.java
deleted file mode 100644
index e4aee00..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/StructuredTypedRegion.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.text;
-
-import org.eclipse.jface.text.ITypedRegion;
-
-/**
- * Similar to extended interface, except it allows the length, offset, and
- * type to be set. This is useful when iterating through a number of "small"
- * regions, that all map to the the same partion regions.
- */
-public interface StructuredTypedRegion extends StructuredRegion, ITypedRegion {
-	void setType(String type);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/rules/StructuredTextPartitioner.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/rules/StructuredTextPartitioner.java
deleted file mode 100644
index 9935668..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/rules/StructuredTextPartitioner.java
+++ /dev/null
@@ -1,609 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.text.rules;
-
-
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Locale;
-
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.wst.sse.core.events.StructuredDocumentRegionsReplacedEvent;
-import org.eclipse.wst.sse.core.internal.parser.ForeignRegion;
-import org.eclipse.wst.sse.core.parser.IBlockedStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-import org.eclipse.wst.sse.core.text.SimpleStructuredTypedRegion;
-import org.eclipse.wst.sse.core.text.StructuredRegion;
-import org.eclipse.wst.sse.core.text.StructuredTypedRegion;
-
-
-/**
- * Base Document partitioner for StructuredDocuments. BLOCK_TEXT ITextRegions
- * have a partition type of BLOCK or BLOCK:TAGNAME if a surrounding tagname
- * was recorded.
- */
-public class StructuredTextPartitioner implements IDocumentPartitioner {
-
-	static class CachedComputedPartitions {
-		int fLength;
-		int fOffset;
-		ITypedRegion[] fPartitions;
-		boolean isInValid;
-
-		CachedComputedPartitions(int offset, int length, ITypedRegion[] partitions) {
-			fOffset = offset;
-			fLength = length;
-			fPartitions = partitions;
-			isInValid = true;
-		}
-	}
-
-	public final static String ST_DEFAULT_PARTITION = "org.eclipse.wst.sse.ST_DEFAULT"; //$NON-NLS-1$
-	public final static String ST_UNKNOWN_PARTITION = "org.eclipse.wst.sse.UNKNOWN_PARTITION_TYPE"; //$NON-NLS-1$
-	private CachedComputedPartitions cachedPartitions = new CachedComputedPartitions(-1, -1, null);
-	protected String[] fSupportedTypes = null;
-	protected StructuredTypedRegion internalReusedTempInstance = new SimpleStructuredTypedRegion(0, 0, ST_DEFAULT_PARTITION);
-	protected IStructuredDocument structuredDocument;
-
-	/**
-	 * StructuredTextPartitioner constructor comment.
-	 */
-	public StructuredTextPartitioner() {
-		super();
-	}
-
-	/**
-	 * Returns the partitioning of the given range of the connected document.
-	 * There must be a document connected to this partitioner.
-	 * 
-	 * Note: this shouldn't be called dirctly by clients, unless they control
-	 * the threading that includes modifications to the document. Otherwise
-	 * the document could be modified while partitions are being computed. We
-	 * advise that clients use the computePartions API directly from the
-	 * document, so they won't have to worry about that.
-	 * 
-	 * @param offset
-	 *            the offset of the range of interest
-	 * @param length
-	 *            the length of the range of interest
-	 * @return the partitioning of the range
-	 */
-	public ITypedRegion[] computePartitioning(int offset, int length) {
-		if (structuredDocument == null) {
-			throw new IllegalStateException("document partitioner is not connected"); //$NON-NLS-1$
-		}
-		ITypedRegion[] results = null;
-
-
-
-		if ((!cachedPartitions.isInValid) && (offset == cachedPartitions.fOffset) && (length == cachedPartitions.fLength)) {
-			results = cachedPartitions.fPartitions;
-		} else {
-
-			if (length == 0) {
-				results = new ITypedRegion[]{getPartition(offset)};
-			} else {
-				List list = new ArrayList();
-				int endPos = offset + length;
-				if (endPos > structuredDocument.getLength()) {
-					// This can occur if the model instance is being
-					// changed
-					// and everyone's not yet up to date
-					return new ITypedRegion[]{createPartition(offset, length, getUnknown())};
-				}
-				int currentPos = offset;
-				StructuredTypedRegion previousPartition = null;
-				while (currentPos < endPos) {
-					internalGetPartition(currentPos, false);
-					currentPos += internalReusedTempInstance.getLength();
-					// check if this partition just continues last one
-					// (type is the same),
-					// if so, just extend length of last one, not need to
-					// create new
-					// instance.
-					if (previousPartition != null && internalReusedTempInstance.getType().equals(previousPartition.getType())) {
-						// same partition type
-						previousPartition.setLength(previousPartition.getLength() + internalReusedTempInstance.getLength());
-					} else {
-						// not the same, so add to list
-						StructuredTypedRegion partition = createNewPartitionInstance();
-						list.add(partition);
-						// and make current, previous
-						previousPartition = partition;
-					}
-				}
-				results = new ITypedRegion[list.size()];
-				list.toArray(results);
-			}
-			if (results.length > 0) {
-				// truncate returned results to requested range
-				if (results[0].getOffset() < offset && results[0] instanceof StructuredRegion) {
-					((StructuredRegion) results[0]).setOffset(offset);
-				}
-				int lastEnd = results[results.length - 1].getOffset() + results[results.length - 1].getLength();
-				if (lastEnd > offset + length && results[results.length - 1] instanceof StructuredRegion) {
-					((StructuredRegion) results[results.length - 1]).setLength(offset + length - results[results.length - 1].getOffset());
-				}
-			}
-			cachedPartitions.fLength = length;
-			cachedPartitions.fOffset = offset;
-			cachedPartitions.fPartitions = results;
-			cachedPartitions.isInValid = false;
-		}
-		return results;
-	}
-
-
-
-	/**
-	 * Connects the document to the partitioner, i.e. indicates the begin of
-	 * the usage of the receiver as partitioner of the given document.
-	 */
-	public synchronized void connect(IDocument document) {
-		if (document instanceof IStructuredDocument) {
-			cachedPartitions.isInValid = true;
-			this.structuredDocument = (IStructuredDocument) document;
-		} else {
-			throw new IllegalArgumentException("This class and API are for Structured Documents only"); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Determines if the given ITextRegionContainer itself contains another
-	 * ITextRegionContainer
-	 * 
-	 * @param ITextRegionContainer
-	 * @return boolean
-	 */
-	protected boolean containsEmbeddedRegion(IStructuredDocumentRegion container) {
-		boolean containsEmbeddedRegion = false;
-
-		ITextRegionList regions = container.getRegions();
-		for (int i = 0; i < regions.size(); i++) {
-			ITextRegion region = regions.get(i);
-			if (region instanceof ITextRegionContainer) {
-				containsEmbeddedRegion = true;
-				break;
-			}
-		}
-		return containsEmbeddedRegion;
-	}
-
-	private StructuredTypedRegion createNewPartitionInstance() {
-		return new SimpleStructuredTypedRegion(internalReusedTempInstance.getOffset(), internalReusedTempInstance.getLength(), internalReusedTempInstance.getType());
-	}
-
-	/**
-	 * Creates the concrete partition from the given values. Returns a new
-	 * instance for each call.
-	 * 
-	 * Subclasses may override.
-	 * 
-	 * @param offset
-	 * @param length
-	 * @param type
-	 * @return ITypedRegion
-	 * 
-	 * TODO: should be protected
-	 */
-	public StructuredTypedRegion createPartition(int offset, int length, String type) {
-		return new SimpleStructuredTypedRegion(offset, length, type);
-	}
-
-	/**
-	 * Disconnects the document from the partitioner, i.e. indicates the end
-	 * of the usage of the receiver as partitioner of the given document.
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentPartitioner#disconnect()
-	 */
-	public synchronized void disconnect() {
-		cachedPartitions.isInValid = true;
-		this.structuredDocument = null;
-	}
-
-	/**
-	 * Informs about a forthcoming document change.
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentPartitioner#documentAboutToBeChanged(DocumentEvent)
-	 */
-	public void documentAboutToBeChanged(DocumentEvent event) {
-		cachedPartitions.isInValid = true;
-	}
-
-	/**
-	 * The document has been changed. The partitioner updates the set of
-	 * regions and returns whether the structure of the document partitioning
-	 * has been changed, i.e. whether partitions have been added or removed.
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentPartitioner#documentChanged(DocumentEvent)
-	 */
-	public boolean documentChanged(DocumentEvent event) {
-		boolean result = false;
-		if (event instanceof StructuredDocumentRegionsReplacedEvent) {
-			// partitions don't always change while document regions do,
-			// but that's the only "quick check" we have.
-			// I'm not sure if something more sophisticated will be needed
-			// in the future. (dmw, 02/18/04).
-			result = true;
-		}
-		return result;
-	}
-
-	protected boolean doParserSpecificCheck(int offset, boolean partitionFound, IStructuredDocumentRegion sdRegion, IStructuredDocumentRegion previousStructuredDocumentRegion, ITextRegion next, ITextRegion previousStart) {
-		// this (conceptually) abstract method is not concerned with
-		// specific region types
-		return false;
-	}
-
-	/**
-	 * Returns the content type of the partition containing the given
-	 * character position of the given document. The document has previously
-	 * been connected to the partitioner.
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentPartitioner#getContentType(int)
-	 */
-	public String getContentType(int offset) {
-		return getPartition(offset).getType();
-	}
-
-	/**
-	 * To be used by default!
-	 */
-	public String getDefault() {
-
-		return ST_DEFAULT_PARTITION;
-	}
-
-	/**
-	 * Returns the set of all possible content types the partitoner supports.
-	 * I.e. Any result delivered by this partitioner may not contain a content
-	 * type which would not be included in this method's result.
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentPartitioner#getLegalContentTypes()
-	 */
-	public java.lang.String[] getLegalContentTypes() {
-		if (fSupportedTypes == null) {
-			initLegalContentTypes();
-		}
-		return fSupportedTypes;
-	}
-
-	/**
-	 * Returns the partition containing the given character position of the
-	 * given document. The document has previously been connected to the
-	 * partitioner.
-	 * 
-	 * Note: this shouldn't be called dirctly by clients, unless they control
-	 * the threading that includes modifications to the document. Otherwise
-	 * the document could be modified while partitions are being computed. We
-	 * advise that clients use the getPartition API directly from the
-	 * document, so they won't have to worry about that.
-	 * 
-	 * 
-	 * 
-	 * @see org.eclipse.jface.text.IDocumentPartitioner#getPartition(int)
-	 */
-	public ITypedRegion getPartition(int offset) {
-		internalGetPartition(offset, true);
-		return createNewPartitionInstance();
-	}
-
-	protected String getPartitionFromBlockedText(ITextRegion region, int offset, String result) {
-		// parser sensitive code was moved to subclass for quick transition
-		// this (conceptually) abstract version isn't concerned with blocked
-		// text
-
-		return result;
-	}
-
-	protected String getPartitionType(ForeignRegion region, int offset) {
-		String tagname = region.getSurroundingTag();
-		String result = null;
-		if (tagname != null) {
-			result = "BLOCK:" + tagname.toUpperCase(Locale.ENGLISH); //$NON-NLS-1$
-		} else {
-			result = "BLOCK"; //$NON-NLS-1$
-		}
-		return result;
-	}
-
-	/**
-	 * @see com.ibm.sed.model.StructuredTextPartitioner#getPartitionType(com.ibm.sed.structuredDocument.ITextRegion)
-	 */
-	protected String getPartitionType(IBlockedStructuredDocumentRegion blockedStructuredDocumentRegion, int offset) {
-		String result = null;
-		ITextRegionList regions = blockedStructuredDocumentRegion.getRegions();
-
-		// regions should never be null, or hold zero regions, but just in
-		// case...
-		if (regions != null && regions.size() > 0) {
-			if (regions.size() == 1) {
-				// if only one, then its a "pure" blocked note.
-				// if more than one, then must contain some embedded region
-				// container
-				ITextRegion blockedRegion = regions.get(0);
-				// double check for code safefy, though should always be true
-				if (blockedRegion instanceof ForeignRegion) {
-					result = getPartitionType((ForeignRegion) blockedRegion, offset);
-				}
-			} else {
-				// must have some embedded region container, so we'll make
-				// sure we'll get the appropriate one
-				result = getReleventRegionType(blockedStructuredDocumentRegion, offset);
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Method getPartitionType.
-	 * 
-	 * @param region
-	 * @return String
-	 */
-	private String getPartitionType(ITextRegion region) {
-		// if it get's to this "raw" level, then
-		// must be default.
-		return getDefault();
-	}
-
-	/**
-	 * Returns the partition based on region type. This basically maps from
-	 * one region-type space to another, higher level, region-type space.
-	 * 
-	 * @param region
-	 * @param offset
-	 * @return String
-	 */
-	protected String getPartitionType(ITextRegion region, int offset) {
-		String result = getDefault();
-		//		if (region instanceof ContextRegionContainer) {
-		//			result = getPartitionType((ITextRegionContainer) region, offset);
-		//		} else {
-		if (region instanceof ITextRegionContainer) {
-			result = getPartitionType((ITextRegionContainer) region, offset);
-		}
-
-		result = getPartitionFromBlockedText(region, offset, result);
-
-		return result;
-
-	}
-
-	/**
-	 * Similar to method with 'ITextRegion' as argument, except for
-	 * RegionContainers, if it has embedded regions, then we need to drill
-	 * down and return DocumentPartition based on "lowest level" region type.
-	 * For example, in <body id=" <%= object.getID() %>" > The text between
-	 * <%= and %> would be a "java region" not an "HTML region".
-	 */
-	protected String getPartitionType(ITextRegionContainer region, int offset) {
-		// TODO this method needs to be 'cleaned up' after refactoring
-		// its instanceof logic seems messed up now.
-		String result = null;
-		if (region != null) {
-			ITextRegion coreRegion = region;
-			if (coreRegion instanceof ITextRegionContainer) {
-				result = getPartitionType((ITextRegionContainer) coreRegion, ((ITextRegionContainer) coreRegion).getRegions(), offset);
-			} else {
-				result = getPartitionType(region);
-			}
-		} else {
-			result = getPartitionType((ITextRegion) region, offset);
-		}
-
-		return result;
-	}
-
-	private String getPartitionType(ITextRegionContainer coreRegion, ITextRegionList regions, int offset) {
-		String result = null;
-		for (int i = 0; i < regions.size(); i++) {
-			ITextRegion region = regions.get(i);
-			if (coreRegion.containsOffset(region, offset)) {
-				result = getPartitionType(region, offset);
-				break;
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Computes the partition type for the zero-length partition between a
-	 * start tag and end tag with the given name regions.
-	 * 
-	 * @param previousStartTagNameRegion
-	 * @param nextEndTagNameRegion
-	 * @return String
-	 */
-	protected String getPartitionTypeBetween(IStructuredDocumentRegion previousNode, ITextRegion previousStartTagNameRegion, IStructuredDocumentRegion nextNode, ITextRegion nextEndTagNameRegion) {
-		return getDefault();
-	}
-
-	/**
-	 * Return the ITextRegion at the given offset. For most cases, this will
-	 * be the flatNode itself. Should it contain an embedded
-	 * ITextRegionContainer, will return the internal region at the offset
-	 * 
-	 * 
-	 * @param flatNode
-	 * @param offset
-	 * @return ITextRegion
-	 */
-	private String getReleventRegionType(IStructuredDocumentRegion flatNode, int offset) {
-		//		* Note: the original form of this method -- which returned "deep"
-		// region, isn't that
-		//		* useful, after doing parent elimination refactoring,
-		//		* since once the deep region is returned, its hard to get its text
-		// or offset without
-		//		* proper parent.
-		ITextRegion resultRegion = null;
-		if (containsEmbeddedRegion(flatNode)) {
-			resultRegion = flatNode.getRegionAtCharacterOffset(offset);
-			if (resultRegion instanceof ITextRegionContainer) {
-				resultRegion = flatNode.getRegionAtCharacterOffset(offset);
-				ITextRegionList regions = ((ITextRegionContainer) resultRegion).getRegions();
-				for (int i = 0; i < regions.size(); i++) {
-					ITextRegion region = regions.get(i);
-					if (flatNode.getStartOffset(region) <= offset && offset < flatNode.getEndOffset(region)) {
-						resultRegion = region;
-						break;
-					}
-				}
-			}
-		} else {
-			resultRegion = flatNode;
-		}
-		return resultRegion.getType();
-	}
-
-	/**
-	 * To be used, instead of default, when there is some thing surprising
-	 * about are attempt to partition
-	 */
-	protected String getUnknown() {
-		return ST_UNKNOWN_PARTITION;
-	}
-
-	/**
-	 * to be abstract eventually
-	 */
-	protected void initLegalContentTypes() {
-		fSupportedTypes = new String[]{ST_DEFAULT_PARTITION, ST_UNKNOWN_PARTITION};
-	}
-
-	/**
-	 * Returns the partition containing the given character position of the
-	 * given document. The document has previously been connected to the
-	 * partitioner. If the checkBetween parameter is true, an offset between a
-	 * start and end tag will return a zero-length region.
-	 */
-	private void internalGetPartition(int offset, boolean checkBetween) {
-		if (structuredDocument == null) {
-			throw new IllegalStateException("document partitioner is not connected"); //$NON-NLS-1$
-		}
-
-		boolean partitionFound = false;
-		int docLength = structuredDocument.getLength();
-		// get document region type and map to partition type :
-		// Note: a partion can be smaller than a flatnode, if that flatnode
-		// contains a region container.
-		// That's why we need to get "relevent region".
-		IStructuredDocumentRegion structuredDocumentRegion = structuredDocument.getRegionAtCharacterOffset(offset);
-		// flatNode is null if empty document
-		// this is king of a "normal case" for empty document
-		if (structuredDocumentRegion == null && docLength == 0) {
-			// In order to prevent infinite error loops, this partition must
-			// never have a zero length
-			// unless the document is also zero length
-			setInternalPartition(offset, 0, getDefault());
-			partitionFound = true;
-		} else if (structuredDocumentRegion == null && docLength != 0) {
-			// this case is "unusual". When would region be null, and document
-			// longer
-			// than 0. I think this means somethings "out of sync". And we may
-			// want
-			// to "flag" that fact and just return one big region of
-			// 'unknown', instead
-			// of one character at a time.
-			setInternalPartition(offset, 1, getUnknown());
-			partitionFound = true;
-		} else if (checkBetween) {
-			// dmw: minimizes out to the first if test above
-			//			if (structuredDocumentRegion == null && docLength == 0) {
-			//				// known special case for an empty document
-			//				setInternalPartition(offset, 0, getDefault());
-			//				partitionFound = true;
-			//			}
-			//			else
-			if (structuredDocumentRegion.getStartOffset() == offset) {
-				IStructuredDocumentRegion previousStructuredDocumentRegion = structuredDocumentRegion.getPrevious();
-				if (previousStructuredDocumentRegion != null) {
-					ITextRegion next = structuredDocumentRegion.getRegionAtCharacterOffset(offset);
-					ITextRegion previousStart = previousStructuredDocumentRegion.getRegionAtCharacterOffset(previousStructuredDocumentRegion.getStartOffset());
-					partitionFound = doParserSpecificCheck(offset, partitionFound, structuredDocumentRegion, previousStructuredDocumentRegion, next, previousStart);
-				}
-			}
-		}
-		// dmw: Given the first two tests above minimize to this, this block
-		// can never run, right?
-		//		else if (structuredDocumentRegion == null) {
-		//			setInternalPartition(offset, 0, getDefault());
-		//			partitionFound = true;
-		//		}
-
-		if (!partitionFound) {
-			ITextRegion resultRegion = structuredDocumentRegion.getRegionAtCharacterOffset(offset);
-			partitionFound = isDocumentRegionBasedPartition(structuredDocumentRegion, resultRegion, offset);
-			if (!partitionFound) {
-				// Note: this new logic doesn't handle container regions
-				// inside of
-				// container regions ... may need to make this first clause
-				// a recursive method
-				if (resultRegion != null && resultRegion instanceof ITextRegionContainer) {
-					ITextRegionContainer containerRegion = (ITextRegionContainer) resultRegion;
-					// then need to "drill down" for relevent region and
-					// relevent offset
-					ITextRegion deepRegion = containerRegion.getRegionAtCharacterOffset(offset);
-					int endOffset = containerRegion.getEndOffset(deepRegion);
-					String type = getPartitionType(deepRegion, endOffset);
-					setInternalPartition(offset, endOffset - offset, type);
-				} else {
-					if (resultRegion != null) {
-						String type = getPartitionType(resultRegion, offset);
-						setInternalPartition(offset, structuredDocumentRegion.getEndOffset(resultRegion) - offset, type);
-					} else {
-						// can happen at EOF
-						setInternalPartition(offset, 1, getUnknown());
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Provides for a per-StructuredDocumentRegion override selecting the
-	 * partition type using more than just a single ITextRegion.
-	 * 
-	 * @param structuredDocumentRegion
-	 *            the StructuredDocumentRegion
-	 * @param containedChildRegion
-	 *            an ITextRegion within the given StructuredDocumentRegion
-	 *            that would normally determine the partition type by itself
-	 * @param offset
-	 *            the document offset
-	 * @return true if the partition type will be overridden, false to
-	 *         continue normal processing
-	 */
-	protected boolean isDocumentRegionBasedPartition(IStructuredDocumentRegion structuredDocumentRegion, ITextRegion containedChildRegion, int offset) {
-		return false;
-	}
-
-	public IDocumentPartitioner newInstance() {
-		return new StructuredTextPartitioner();
-	}
-
-	protected void setInternalPartition(int offset, int length, String type) {
-		internalReusedTempInstance.setOffset(offset);
-		internalReusedTempInstance.setLength(length);
-		internalReusedTempInstance.setType(type);
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/undo/CommandCursorPosition.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/undo/CommandCursorPosition.java
deleted file mode 100644
index 1591ae0..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/undo/CommandCursorPosition.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.undo;
-
-
-
-public interface CommandCursorPosition {
-
-	/**
-	 * Returns the cursor position to be set to after this command is redone.
-	 * 
-	 * @return int
-	 */
-	int getRedoCursorPosition();
-
-	/**
-	 * Returns the length of text to be selected after this command is redone.
-	 * 
-	 * @return int
-	 */
-	int getRedoSelectionLength();
-
-	/**
-	 * Returns the cursor position to be set to after this command is undone.
-	 * 
-	 * @return int
-	 */
-	int getUndoCursorPosition();
-
-	/**
-	 * Returns the length of text to be selected after this command is undone.
-	 * 
-	 * @return int
-	 */
-	int getUndoSelectionLength();
-
-	/**
-	 * Sets the cursor position to be used after this command is redone.
-	 */
-	void setRedoCursorPosition(int cursorPosition);
-
-	/**
-	 * Sets the length of text to be selected after this command is redone.
-	 */
-	void setRedoSelectionLength(int selectionLength);
-
-	/**
-	 * Sets the cursor position to be used after this command is undone.
-	 */
-	void setUndoCursorPosition(int cursorPosition);
-
-	/**
-	 * Sets the length of text to be selected after this command is undone.
-	 */
-	void setUndoSelectionLength(int selectionLength);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/undo/IDocumentSelectionMediator.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/undo/IDocumentSelectionMediator.java
deleted file mode 100644
index f321c38..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/undo/IDocumentSelectionMediator.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.undo;
-
-import org.eclipse.jface.text.IDocument;
-
-
-public interface IDocumentSelectionMediator {
-	/**
-	 * Returns the document selection mediator's input document.
-	 * 
-	 * @return the document selection mediator's input document
-	 */
-	IDocument getDocument();
-
-	/**
-	 * Sets a new selection in the document as a result of an undo operation.
-	 * 
-	 * UndoDocumentEvent contains the requester of the undo operation, and the
-	 * offset and length of the new selection. Implementation of
-	 * IDocumentSelectionMediator can check if it's the requester that caused
-	 * the new selection, and decide if the new selection should be applied.
-	 */
-	void undoOperationSelectionChanged(UndoDocumentEvent event);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/undo/IStructuredTextUndoManager.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/undo/IStructuredTextUndoManager.java
deleted file mode 100644
index 5f65824..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/undo/IStructuredTextUndoManager.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.undo;
-
-import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.common.command.CommandStack;
-
-public interface IStructuredTextUndoManager {
-
-	/**
-	 * Begin recording undo transactions.
-	 */
-	void beginRecording(Object requester);
-
-	/**
-	 * Begin recording undo transactions.
-	 */
-	void beginRecording(Object requester, int cursorPosition, int selectionLength);
-
-	/**
-	 * Begin recording undo transactions.
-	 */
-	void beginRecording(Object requester, String label);
-
-	/**
-	 * Begin recording undo transactions.
-	 */
-	void beginRecording(Object requester, String label, int cursorPosition, int selectionLength);
-
-	/**
-	 * Begin recording undo transactions.
-	 */
-	void beginRecording(Object requester, String label, String description);
-
-	/**
-	 * Begin recording undo transactions.
-	 */
-	void beginRecording(Object requester, String label, String description, int cursorPosition, int selectionLength);
-
-	/**
-	 * Connect the mediator to the undo manager.
-	 */
-	void connect(IDocumentSelectionMediator mediator);
-
-	/**
-	 * Disable undo management.
-	 */
-	void disableUndoManagement();
-
-	/**
-	 * Disconnect the mediator from the undo manager.
-	 */
-	void disconnect(IDocumentSelectionMediator mediator);
-
-	/**
-	 * Enable undo management.
-	 */
-	void enableUndoManagement();
-
-	/**
-	 * End recording undo transactions.
-	 */
-	void endRecording(Object requester);
-
-	/**
-	 * End recording undo transactions.
-	 */
-	void endRecording(Object requester, int cursorPosition, int selectionLength);
-
-	/**
-	 * <p>
-	 * Normally, the undo manager can figure out the best times when to end a
-	 * pending command and begin a new one ... to the structure of a structued
-	 * document. There are times, however, when clients may wish to override
-	 * those algorithms and end one earlier than normal. The one known case is
-	 * for multipage editors. If a user is on one page, and type '123' as
-	 * attribute value, then click around to other parts of page, or different
-	 * pages, then return to '123|' and type 456, then "undo" they typically
-	 * expect the undo to just undo what they just typed, the 456, not the
-	 * whole attribute value.
-	 * <p>
-	 * If there is no pending command, the request is ignored.
-	 */
-	public void forceEndOfPendingCommand(Object requester, int currentPosition, int length);
-
-	/**
-	 * Some clients need to do complicated things with undo stack. Plus, in
-	 * some cases, if clients setCommandStack temporarily, they have
-	 * reponsibility to set back to original one when finished.
-	 */
-	public CommandStack getCommandStack();
-
-	/**
-	 * Get the redo command even if it's not committed yet.
-	 */
-	Command getRedoCommand();
-
-	/**
-	 * Get the undo command even if it's not committed yet.
-	 */
-	Command getUndoCommand();
-
-	/**
-	 * Redo the last command in the undo manager.
-	 */
-	void redo();
-
-	/**
-	 * Redo the last command in the undo manager and notify the requester
-	 * about the new selection.
-	 */
-	void redo(IDocumentSelectionMediator requester);
-
-	/**
-	 * Returns whether at least one text change can be repeated. A text change
-	 * can be repeated only if it was executed and rolled back.
-	 * 
-	 * @return <code>true</code> if at least on text change can be repeated
-	 */
-	boolean redoable();
-
-	/**
-	 * Set the command stack.
-	 */
-	void setCommandStack(CommandStack commandStack);
-
-	/**
-	 * Undo the last command in the undo manager.
-	 */
-	void undo();
-
-	/**
-	 * Undo the last command in the undo manager and notify the requester
-	 * about the new selection.
-	 */
-	void undo(IDocumentSelectionMediator requester);
-
-	/**
-	 * Returns whether at least one text change can be rolled back.
-	 * 
-	 * @return <code>true</code> if at least one text change can be rolled
-	 *         back
-	 */
-	boolean undoable();
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/undo/StructuredTextCommand.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/undo/StructuredTextCommand.java
deleted file mode 100644
index cb0e44b..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/undo/StructuredTextCommand.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.undo;
-
-
-
-public interface StructuredTextCommand {
-
-	String getTextDeleted();
-
-	int getTextEnd();
-
-	String getTextInserted();
-
-	int getTextStart();
-
-	void setTextDeleted(String textDeleted);
-
-	void setTextEnd(int textEnd);
-
-	void setTextInserted(String textInserted);
-
-	void setTextStart(int textStart);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/undo/UndoDocumentEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/undo/UndoDocumentEvent.java
deleted file mode 100644
index f608829..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/undo/UndoDocumentEvent.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.undo;
-
-import org.eclipse.jface.text.IDocument;
-
-public class UndoDocumentEvent {
-	private IDocument fDocument;
-	private int fLength;
-	private int fOffset;
-	private IDocumentSelectionMediator fRequester;
-
-	public UndoDocumentEvent(IDocumentSelectionMediator requester, IDocument document, int offset, int length) {
-		fRequester = requester;
-		fDocument = document;
-		fOffset = offset;
-		fLength = length;
-	}
-
-	public IDocument getDocument() {
-		return fDocument;
-	}
-
-	public int getLength() {
-		return fLength;
-	}
-
-	public int getOffset() {
-		return fOffset;
-	}
-
-	public IDocumentSelectionMediator getRequester() {
-		return fRequester;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/Assert.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/Assert.java
deleted file mode 100644
index 5fb1d0d..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/Assert.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.util;
-
-import org.eclipse.wst.sse.core.internal.Logger;
-
-/**
- * <code>Assert</code> is useful for for embedding runtime sanity checks in
- * code. The predicate methods all test a condition and throw some type of
- * unchecked exception if the condition does not hold.
- * <p>
- * Assertion failure exceptions, like most runtime exceptions, are thrown when
- * something is misbehaving. Assertion failures are invariably unspecified
- * behavior; consequently, clients should never rely on these being thrown
- * (and certainly should not being catching them specifically).
- * </p>
- */
-public final class Assert {
-
-	/**
-	 * <code>AssertionFailedException</code> is a runtime exception thrown
-	 * by some of the methods in <code>Assert</code>.
-	 * <p>
-	 * This class is not declared public to prevent some misuses; programs
-	 * that catch or otherwise depend on assertion failures are susceptible to
-	 * unexpected breakage when assertions in the code are added or removed.
-	 * </p>
-	 */
-	class AssertionFailedException extends RuntimeException {
-		/**
-		 * Comment for <code>serialVersionUID</code>
-		 */
-		private static final long serialVersionUID = 1L;
-
-		/**
-		 * Constructs a new exception.
-		 */
-		public AssertionFailedException() {
-			super();
-		}
-
-		/**
-		 * Constructs a new exception with the given message.
-		 */
-		public AssertionFailedException(String detail) {
-			super(detail);
-		}
-	}
-
-	/**
-	 * Asserts that an argument is legal. If the given boolean is not
-	 * <code>true</code>, an <code>IllegalArgumentException</code> is
-	 * thrown.
-	 * 
-	 * @param expression
-	 *            the outcode of the check
-	 * @return <code>true</code> if the check passes (does not return if the
-	 *         check fails)
-	 * @exception IllegalArgumentException
-	 *                if the legality test failed
-	 */
-	public static boolean isLegal(boolean expression) {
-		return isLegal(expression, ""); //$NON-NLS-1$
-	}
-
-	/**
-	 * Asserts that an argument is legal. If the given boolean is not
-	 * <code>true</code>, an <code>IllegalArgumentException</code> is
-	 * thrown. The given message is included in that exception, to aid
-	 * debugging.
-	 * 
-	 * @param expression
-	 *            the outcode of the check
-	 * @param message
-	 *            the message to include in the exception
-	 * @return <code>true</code> if the check passes (does not return if the
-	 *         check fails)
-	 * @exception IllegalArgumentException
-	 *                if the legality test failed
-	 */
-	public static boolean isLegal(boolean expression, String message) {
-		if (!expression)
-			throw new IllegalArgumentException();
-		return expression;
-	}
-
-	/**
-	 * Asserts that the given object is not <code>null</code>. If this is
-	 * not the case, some kind of unchecked exception is thrown.
-	 * 
-	 * @param object
-	 *            the value to test
-	 * @exception IllegalArgumentException
-	 *                if the object is <code>null</code>
-	 */
-	public static void isNotNull(Object object) {
-		isNotNull(object, ""); //$NON-NLS-1$
-	}
-
-	/**
-	 * Asserts that the given object is not <code>null</code>. If this is
-	 * not the case, some kind of unchecked exception is thrown. The given
-	 * message is included in that exception, to aid debugging.
-	 * 
-	 * @param object
-	 *            the value to test
-	 * @param message
-	 *            the message to include in the exception
-	 * @exception IllegalArgumentException
-	 *                if the object is <code>null</code>
-	 */
-	public static void isNotNull(Object object, String message) {
-		if (object == null) {
-			Logger.log(Logger.ERROR, "null_argument: " + message); //$NON-NLS-1$
-			throw new Assert().new AssertionFailedException();
-		}
-	}
-
-	/**
-	 * Asserts that the given boolean is <code>true</code>. If this is not
-	 * the case, some kind of unchecked exception is thrown.
-	 * 
-	 * @param expression
-	 *            the outcode of the check
-	 * @return <code>true</code> if the check passes (does not return if the
-	 *         check fails)
-	 */
-	public static boolean isTrue(boolean expression) {
-		return isTrue(expression, ""); //$NON-NLS-1$
-	}
-
-	/**
-	 * Asserts that the given boolean is <code>true</code>. If this is not
-	 * the case, some kind of unchecked exception is thrown. The given message
-	 * is included in that exception, to aid debugging.
-	 * 
-	 * @param expression
-	 *            the outcode of the check
-	 * @param message
-	 *            the message to include in the exception
-	 * @return <code>true</code> if the check passes (does not return if the
-	 *         check fails)
-	 */
-	public static boolean isTrue(boolean expression, String message) {
-		if (!expression) {
-			Logger.log(Logger.ERROR, "assertion failed: " + message); //$NON-NLS-1$
-			throw new Assert().new AssertionFailedException();
-		}
-		return expression;
-	}
-
-	/* This class is not intended to be instantiated. */
-	private Assert() {
-		super();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/Debug.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/Debug.java
deleted file mode 100644
index 56f40af..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/Debug.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.util;
-
-
-
-import java.util.Enumeration;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegionList;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionCollection;
-import org.eclipse.wst.sse.core.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-
-
-public final class Debug {
-	public static final boolean checkForMemoryLeaks = false;
-
-	public static final boolean collectStats = false;
-
-	public static final int DEBUG = 0;
-
-	public static final boolean DEBUG_THREADLOCAL = false;
-
-	public static final boolean debugBreakpoints = false;
-	public static final boolean debugCaretMediator = false;
-	public static final boolean debugDisplayTreePositions = false;
-	//
-	public static final boolean debugMediator = false;
-	//
-	public static final boolean debugNotification = false;
-	public static final boolean debugNotificationAndEvents = false;
-
-	public static final boolean debugNotifyDeferred = false;
-	public static final boolean debugReconciling = false;
-	//
-	public static final boolean debugRtfFormatProvider = false;
-	//
-	public static final boolean debugStructuredDocument = false;
-	public static final boolean debugTaglibs = false;
-	//
-	public static final boolean debugTokenizer = false;
-	//
-	public static final boolean debugTreeModel = false;
-	public static final boolean debugUpdateTreePositions = false;
-	public static final boolean displayInfo = false;
-
-	/** effects output of Logger */
-	public static final boolean displayToConsole = true;
-	public static final boolean displayWarnings = false;
-	//
-	public static final boolean failedTests = false;
-	public static final boolean headParsing = false;
-	public static final boolean jsDebugContextAssist = false;
-	//
-	public static final boolean jsDebugSyntaxColoring = false;
-
-	public static final boolean LOCKS = false;
-	// 
-	public static final boolean perfTest = false;
-	public static final boolean perfTestAdapterClassLoading = false;
-	public static final boolean perfTestFormat = false;
-	public static final boolean perfTestRawStructuredDocumentOnly = false;
-	public static final boolean perfTestStructuredDocumentEventOnly = false;
-	public static final boolean perfTestStructuredDocumentOnly = false;
-
-	//
-	public static final boolean syntaxHighlighting = false;
-	//
-	public static final boolean useStandardEolInWidget = false;
-
-	/**
-	 * For tests and debug only
-	 */
-
-	public static final void dump(IStructuredDocument structuredDocument) {
-		dump(structuredDocument, false);
-	}
-
-	public static final void dump(IStructuredDocument structuredDocument, boolean verbose) {
-		ITextRegionCollection flatNode = null;
-		System.out.println("Dump of structuredDocument:"); //$NON-NLS-1$
-		IStructuredDocumentRegionList flatNodes = structuredDocument.getRegionList();
-		Enumeration structuredDocumentRegions = flatNodes.elements();
-		while (structuredDocumentRegions.hasMoreElements()) {
-			flatNode = (ITextRegionCollection) structuredDocumentRegions.nextElement();
-			if (!verbose) {
-				String outString = flatNode.toString();
-				outString = org.eclipse.wst.sse.core.util.StringUtils.escape(outString);
-				System.out.println(outString);
-			} else {
-				dump(flatNode, verbose);
-			}
-		}
-		System.out.println();
-		System.out.println("= = = = = ="); //$NON-NLS-1$
-		System.out.println();
-	}
-
-	/**
-	 * @param flatNode
-	 * @param verbose
-	 */
-	public static final void dump(ITextRegionCollection region, boolean verbose) {
-		if (region == null)
-			return;
-		if (verbose) {
-			printParent(region);
-		}
-		printChildRegions(region, 0);
-	}
-
-	private static void printChildRegions(ITextRegionCollection region, int depth) {
-		if (region != null) {
-			// ==> // ITextRegionCollection regionCollection = region;
-			System.out.println(region);
-			ITextRegionList regionList = region.getRegions();
-			for (int i = 0; i < regionList.size(); i++) {
-				ITextRegion r = regionList.get(i);
-				if (r instanceof ITextRegionCollection) {
-					ITextRegionCollection rc = (ITextRegionCollection) r;
-					printChildRegions(rc, depth++);
-				} else {
-					System.out.println(space(depth) + r);
-					depth--;
-				}
-			}
-		}
-	}
-
-	/**
-	 * Simple utility to make sure println's are some what in order
-	 */
-	public static final synchronized void println(String msg) {
-		System.out.println(System.currentTimeMillis() + "\t" + msg); //$NON-NLS-1$
-	}
-
-	private static void printParent(IStructuredDocumentRegion region) {
-		System.out.println("    [parent document: " + toStringUtil(region.getParentDocument()) + "]"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	private static void printParent(ITextRegionCollection region) {
-		if (region instanceof IStructuredDocumentRegion) {
-			printParent((IStructuredDocumentRegion) region);
-		} else if (region instanceof ITextRegionContainer) {
-			printParent((ITextRegionContainer) region);
-		} else
-			System.out.println("    [parent document: " + "(na)" + "]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-
-	private static void printParent(ITextRegionContainer region) {
-		System.out.println("    [parent document: " + toStringUtil(region.getParent()) + "]"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * @param depth
-	 * @return
-	 */
-	private static String space(int depth) {
-		String result = "  "; //$NON-NLS-1$
-		for (int i = 0; i < depth; i++) {
-			result += "  "; //$NON-NLS-1$
-		}
-		return result;
-	}
-
-	public static final String toStringUtil(IStructuredDocument object) {
-		String className = object.getClass().getName();
-		String shortClassName = className.substring(className.lastIndexOf(".") + 1); //$NON-NLS-1$
-		// ==> // String resultText = null;
-		String result = shortClassName;
-		// 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 com.ibm.sed.util.StringUtils.escape("('"+(getFirstRegion()
-		// == null || document == null? "" :
-		// getText(getFirstRegion()))+"'"+getStart()+" -
-		// "+getEnd()+"'"+(getClose() == null || document == null ||
-		// getRegions().size()<2 ? "" : getText(getClose()))+"')
-		// "+getRegions());
-		return result;
-
-	}
-
-	public static final String toStringUtil(ITextRegionCollection object) {
-		String className = object.getClass().getName();
-		String shortClassName = className.substring(className.lastIndexOf(".") + 1); //$NON-NLS-1$
-		// ==> // String resultText = null;
-		String result = shortClassName;
-		// 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 com.ibm.sed.util.StringUtils.escape("('"+(getFirstRegion()
-		// == null || document == null? "" :
-		// getText(getFirstRegion()))+"'"+getStart()+" -
-		// "+getEnd()+"'"+(getClose() == null || document == null ||
-		// getRegions().size()<2 ? "" : getText(getClose()))+"')
-		// "+getRegions());
-		return result;
-
-	}
-
-	/**
-	 * Debug constructor comment.
-	 */
-	public Debug() {
-		super();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/DocumentInputStream.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/DocumentInputStream.java
deleted file mode 100644
index e36b217..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/DocumentInputStream.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-
-public class DocumentInputStream extends InputStream {
-	private IDocument fDocument;
-	private int fMark = -1;
-	private int fPosition = 0;
-
-	public DocumentInputStream(IDocument source) {
-		super();
-		fDocument = source;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.io.InputStream#available()
-	 */
-	public int available() throws IOException {
-		return fDocument.getLength() - fPosition;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.io.InputStream#close()
-	 */
-	public void close() throws IOException {
-		this.fDocument = null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.io.InputStream#mark(int)
-	 */
-	public synchronized void mark(int readlimit) {
-		fMark = fPosition;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.io.InputStream#markSupported()
-	 */
-	public boolean markSupported() {
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.io.InputStream#read()
-	 */
-	public int read() throws IOException {
-		try {
-			if (fPosition < fDocument.getLength())
-				return fDocument.getChar(fPosition++);
-			else
-				return -1;
-		} catch (BadLocationException e) {
-			throw new IOException(e.getMessage());
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.io.InputStream#reset()
-	 */
-	public synchronized void reset() throws IOException {
-		fPosition = fMark;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.io.InputStream#skip(long)
-	 */
-	public long skip(long n) throws IOException {
-		long skipped = n;
-		if (n < fDocument.getLength() - fPosition) {
-			skipped = n;
-			fPosition += skipped;
-		} else {
-			skipped = fDocument.getLength() - fPosition;
-			fPosition = fDocument.getLength();
-		}
-		return skipped;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/JarUtilities.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/JarUtilities.java
deleted file mode 100644
index 6240989..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/JarUtilities.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.util;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.jar.JarFile;
-import java.util.zip.ZipEntry;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.wst.sse.core.internal.Logger;
-
-
-public class JarUtilities {
-
-	/**
-	 * @see http://java.sun.com/products/jsp/errata_1_1_a_042800.html, Issues
-	 *      8 & 9
-	 * 
-	 * "There are two cases. In both cases the TLD_URI is to be interpreted
-	 * relative to the root of the Web Application. In the first case the
-	 * TLD_URI refers to a TLD file directly. In the second case, the TLD_URI
-	 * refers to a JAR file. If so, that JAR file should have a TLD at
-	 * location META-INF/taglib.tld."
-	 */
-	public static final String JSP11_TAGLIB = "META-INF/taglib.tld"; //$NON-NLS-1$
-
-	public static void closeJarFile(JarFile file) {
-		if (file == null)
-			return;
-		try {
-			file.close();
-		}
-		catch (IOException ioe) {
-			// no cleanup can be done
-			Logger.log(Logger.ERROR, "Could not close file " + file.getName()); //$NON-NLS-1$
-		}
-		finally {
-			file = null;
-		}
-	}
-
-	/**
-	 * Provides a stream to a local copy of the input or null if not possible
-	 */
-	protected static InputStream getCachedInputStream(String jarFilename, String entryName) {
-		File testFile = new File(jarFilename);
-		if (!testFile.exists())
-			return null;
-
-		JarFile jarfile = null;
-		try {
-			jarfile = new JarFile(jarFilename);
-		}
-		catch (IOException ioExc) {
-			Logger.logException(ioExc);
-			closeJarFile(jarfile);
-			return null;
-		}
-
-		ZipEntry zentry = jarfile.getEntry(entryName);
-		if (zentry == null) {
-			closeJarFile(jarfile);
-			return null;
-		}
-
-		InputStream entryInputStream = null;
-		try {
-			entryInputStream = jarfile.getInputStream(zentry);
-		}
-		catch (IOException ioExc) {
-			Logger.logException(ioExc);
-			return null;
-		}
-
-		byte bytes[] = null;
-		InputStream cache = null;
-		if (entryInputStream != null) {
-			int c;
-			ByteArrayOutputStream buffer = null;
-			if (zentry.getSize() > 0) {
-				buffer = new ByteArrayOutputStream((int) zentry.getSize());
-			}
-			else {
-				buffer = new ByteArrayOutputStream();
-			}
-			// array dim restriction?
-			bytes = new byte[2048];
-			try {
-				while ((c = entryInputStream.read(bytes)) >= 0) {
-					buffer.write(bytes, 0, c);
-				}
-				cache = new ByteArrayInputStream(buffer.toByteArray());
-			}
-			catch (IOException ioe) {
-				// no cleanup can be done
-			}
-			finally {
-				try {
-					entryInputStream.close();
-				}
-				catch (IOException e) {
-				}
-			}
-		}
-		// }
-
-		closeJarFile(jarfile);
-
-		return cache;
-	}
-
-	public static String[] getEntryNames(IResource jarResource) {
-		if (jarResource == null)
-			return new String[0];
-		return getEntryNames(jarResource.getLocation().toString());
-	}
-
-	public static String[] getEntryNames(String jarFilename) {
-		return getEntryNames(jarFilename, true);
-	}
-
-	public static String[] getEntryNames(String jarFilename, boolean excludeDirectories) {
-		JarFile jarfile = null;
-		List entryNames = new ArrayList();
-		try {
-			jarfile = new JarFile(jarFilename);
-			Enumeration entries = jarfile.entries();
-			while (entries.hasMoreElements()) {
-				ZipEntry z = (ZipEntry) entries.nextElement();
-				if (!(z.isDirectory() && excludeDirectories))
-					entryNames.add(z.getName());
-			}
-		}
-		catch (IOException ioExc) {
-			Logger.log(Logger.WARNING, "JarUtilities: " + ioExc.getMessage());
-		}
-		finally {
-			try {
-				if (jarfile != null) {
-					jarfile.close();
-				}
-			}
-			catch (IOException e) {
-				// nothing can be done
-			}
-		}
-		String[] names = (String[]) entryNames.toArray(new String[0]);
-		return names;
-	}
-
-	public static InputStream getInputStream(IResource jarResource, String entryName) {
-		if (jarResource == null)
-			return null;
-		return getInputStream(jarResource.getLocation().toString(), entryName);
-	}
-
-	public static InputStream getInputStream(String jarFilename, String entryName) {
-		// check sanity
-		if (jarFilename == null || jarFilename.length() < 1 || entryName == null || entryName.length() < 1)
-			return null;
-
-		// JAR files are not allowed to have leading '/' in member names
-		String internalName = null;
-		if (entryName.startsWith("/")) //$NON-NLS-1$
-			internalName = entryName.substring(1);
-		else
-			internalName = entryName;
-
-		return getCachedInputStream(jarFilename, internalName);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/PathHelper.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/PathHelper.java
deleted file mode 100644
index 94a66be..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/PathHelper.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.util;
-
-
-
-import java.io.File;
-import java.util.StringTokenizer;
-
-/**
- * Collection of helper methods to manage and convert links Originally part of
- * the LinksManager (com.ibm.iwt.parser.util)
- */
-public class PathHelper {
-	public static final String BACKWARD_SLASH = "\\";//$NON-NLS-1$
-
-	public static final String FORWARD_SLASH = "/";//$NON-NLS-1$
-	public static final String RELATIVE_PATH_SIG = "../";//$NON-NLS-1$
-
-	/**
-	 * adjust relative path isside the absolute path
-	 */
-	public static String adjustPath(String path) {
-		int i = 0;
-		while ((i = path.indexOf(RELATIVE_PATH_SIG)) > 0) {
-			// split the string into two
-			String part1 = path.substring(0, i - 1);
-			String part2 = path.substring(i + RELATIVE_PATH_SIG.length() - 1);
-			// strip one path seg from part1
-			int j = part1.lastIndexOf(FORWARD_SLASH);
-			if (j == -1) {
-				// can't resolve. passed path is like
-				// E:/eclipseproject/../../sample.css.
-				return "";//$NON-NLS-1$
-			}
-			part1 = part1.substring(0, j);
-			path = part1 + part2;
-		}
-		return path;
-	}
-
-	/**
-	 * Append trailing url slash if needed
-	 */
-	public static String appendTrailingURLSlash(String input) {
-		// check to see already a slash
-		if (!input.endsWith(FORWARD_SLASH)) {
-			input += FORWARD_SLASH;
-		}
-		return input;
-	}
-
-	/**
-	 * Convert to relative url based on base
-	 */
-	public static String convertToRelative(String input, String base) {
-		// tokenize the strings
-		StringTokenizer inputTokenizer = new StringTokenizer(input, FORWARD_SLASH);
-		StringTokenizer baseTokenizer = new StringTokenizer(base, FORWARD_SLASH);
-		String token1 = "", token2 = "";//$NON-NLS-2$//$NON-NLS-1$
-		//
-		// Go through until equls
-		while (true) {
-			if (!inputTokenizer.hasMoreTokens() || !baseTokenizer.hasMoreTokens())
-				break;
-			token1 = baseTokenizer.nextToken();
-			token2 = inputTokenizer.nextToken();
-			if (!token1.equals(token2))
-				break;
-		}
-		// now generate the backs
-		String output = "";//$NON-NLS-1$
-		while (baseTokenizer.hasMoreTokens()) {
-			baseTokenizer.nextToken();
-			output += "../"; //$NON-NLS-1$
-		}
-		output += token2;
-		// generate the rest
-		while (inputTokenizer.hasMoreTokens()) {
-			output = output + FORWARD_SLASH + inputTokenizer.nextToken();
-		}
-		return output;
-	}
-
-	/**
-	 * Return the containing folder path. Will handle both url and file path
-	 */
-	public static String getContainingFolderPath(String path) {
-		String retValue = path;
-
-		int urlSlashIndex = path.lastIndexOf(FORWARD_SLASH);
-		int filePathSlashIndex = path.lastIndexOf(File.separator);
-		int index = filePathSlashIndex;
-		if (urlSlashIndex > filePathSlashIndex)
-			index = urlSlashIndex;
-		if (index >= 0)
-			retValue = path.substring(0, index);
-		return retValue;
-	}
-
-	/**
-	 * Remove leading path separator
-	 */
-	public static String removeLeadingPathSeparator(String path) {
-		if (path.startsWith(File.separator))
-			path = path.substring(File.separator.length());
-		return path;
-	}
-
-	/**
-	 * Remove leading path separator
-	 */
-	public static String removeLeadingSeparator(String path) {
-		if (path.startsWith(File.separator))
-			path = path.substring(File.separator.length());
-		else if (path.startsWith(FORWARD_SLASH) || path.startsWith(BACKWARD_SLASH))
-			path = path.substring(FORWARD_SLASH.length());
-		return path;
-	}
-
-	/**
-	 * Switch to file path slashes
-	 */
-	public static String switchToFilePathSlashes(String path) {
-		path = path.replace(FORWARD_SLASH.charAt(0), File.separatorChar);
-		path = path.replace(BACKWARD_SLASH.charAt(0), File.separatorChar);
-		return path;
-	}
-
-	/**
-	 * Switch to file path slashes
-	 */
-	public static String switchToForwardSlashes(String path) {
-		path = path.replace(File.separatorChar, FORWARD_SLASH.charAt(0));
-		path = path.replace(BACKWARD_SLASH.charAt(0), FORWARD_SLASH.charAt(0));
-		return path;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/ProjectResolver.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/ProjectResolver.java
deleted file mode 100644
index 4fd1892..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/ProjectResolver.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.util;
-
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.xml.uriresolver.util.URIHelper;
-
-public class ProjectResolver implements URIResolver {
-	private String fFileBaseLocation = null;
-	private IProject fProject = null;
-
-	/**
-	 * It is strongly recommended that clients use
-	 * project.getAdapter(URIResolver.class) to obtain a URIResolver aware of
-	 * the Project's special requirements. Note that a URIResolver may not be
-	 * returned at all so manually creating this object may still be required.
-	 */
-	public ProjectResolver(IProject project) {
-		super();
-		fProject = project;
-	}
-
-	public String getFileBaseLocation() {
-		return fFileBaseLocation;
-	}
-
-	public String getLocationByURI(String uri) {
-		return getLocationByURI(uri, getFileBaseLocation());
-	}
-
-	//	defect 244817 end
-	/**
-	 * Resolve the (possibly relative) URI acording to RFC1808 using the
-	 * default file base location. Resolves resource references into absolute
-	 * resource locations without ensuring that the resource actually exists.
-	 * 
-	 * Note: currently resolveCrossProjectLinks is ignored in this
-	 * implementation.
-	 */
-	public String getLocationByURI(String uri, boolean resolveCrossProjectLinks) {
-		return getLocationByURI(uri, getFileBaseLocation(), resolveCrossProjectLinks);
-	}
-
-	public String getLocationByURI(String uri, String baseReference) {
-		if (uri == null)
-			return null;
-		/*
-		 * defect 244817 try { URL aURL = new URL(uri);
-		 */
-		/**
-		 * An actual URL was given, but only the "file:///" protocol is
-		 * supported. Resolve the URI by finding the file to which it points.
-		 */
-		/*
-		 * defect 244817 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$ return aURL.getFile(); } return
-		 * uri; } } catch (MalformedURLException mfuExc) { }
-		 */
-		// defect 244817 start
-		if (isFileURL(uri)) {
-			try {
-				URL url = new URL(uri);
-				return getPath(url);
-			} catch (MalformedURLException e) {
-			}
-		}
-		// defect 244817 end
-		
-		// which of the serveral are we suppose to use htere?
-		// 
-		return URIHelper.normalize(uri, baseReference, getRootLocationString());
-	}
-
-	/**
-	 * Perform the getLocationByURI action using the baseReference as the
-	 * point of reference instead of the default for this resolver
-	 * 
-	 * Note: currently resolveCrossProjectLinks is ignored in this
-	 * implementation.
-	 */
-	public String getLocationByURI(String uri, String baseReference, boolean resolveCrossProjectLinks) {
-		return getLocationByURI(uri, baseReference);
-	}
-
-	/**
-	 * 
-	 * @param path
-	 * @param host
-	 * @return String
-	 */
-	private String getPath(IPath path, String host) {
-		IPath newPath = path;
-		// They are potentially for only Windows operating system.
-		//  a.) if path has a device, and if it begins with IPath.SEPARATOR,
-		// remove it
-		final String device = path.getDevice();
-		if ((device != null) && (device.length() > 0)) {
-			if (device.charAt(0) == IPath.SEPARATOR) {
-				final String newDevice = device.substring(1);
-				newPath = path.setDevice(newDevice);
-			}
-		}
-		// b.) if it has a hostname, it is UNC name... Any java or eclipse api
-		// helps it ??
-		if (path != null && host != null && host.length() != 0) {
-			IPath uncPath = new Path(host);
-			uncPath = uncPath.append(path);
-			newPath = uncPath.makeUNC(true);
-		}
-		return newPath.toString();
-	}
-
-	/**
-	 * 
-	 * @param url
-	 * @return String
-	 */
-	private String getPath(URL url) {
-		String ref = url.getRef() == null ? "" : "#" + url.getRef(); //$NON-NLS-1$ //$NON-NLS-2$
-		String strPath = url.getFile() + ref;
-		IPath path;
-		if (strPath.length() == 0) {
-			path = Path.ROOT;
-		} else {
-			path = new Path(strPath);
-			String query = null;
-			StringTokenizer parser = new StringTokenizer(strPath, "?"); //$NON-NLS-1$
-			int tokenCount = parser.countTokens();
-			if (tokenCount == 2) {
-				path = new Path((String) parser.nextElement());
-				query = (String) parser.nextElement();
-			}
-			if (query == null) {
-				parser = new StringTokenizer(path.toString(), "#"); //$NON-NLS-1$
-				tokenCount = parser.countTokens();
-				if (tokenCount == 2) {
-					path = new Path((String) parser.nextElement());
-				}
-			}
-		}
-		return getPath(path, url.getHost());
-	}
-
-	public org.eclipse.core.resources.IProject getProject() {
-		return fProject;
-	}
-
-	public org.eclipse.core.resources.IContainer getRootLocation() {
-		return fProject;
-	}
-
-	protected String getRootLocationString() {
-		return fProject.getLocation().toString();
-	}
-
-	public InputStream getURIStream(String uri) {
-		return null;
-	}
-
-	//	defect 244817 start
-	/**
-	 * 
-	 * @param passedSpec
-	 * @return boolean
-	 */
-	private boolean isFileURL(String passedSpec) {
-		if (passedSpec == null) {
-			return false;
-		}
-		final String spec = passedSpec.trim();
-		if (spec.length() == 0) {
-			return false;
-		}
-		final int limit = spec.length();
-		String newProtocol = null;
-		for (int index = 0; index < limit; index++) {
-			final char p = spec.charAt(index);
-			if (p == '/') { //$NON-NLS-1$
-				break;
-			}
-			if (p == ':') { //$NON-NLS-1$
-				newProtocol = spec.substring(0, index);
-				break;
-			}
-		}
-		return (newProtocol != null && newProtocol.compareToIgnoreCase("file") == 0); //$NON-NLS-1$
-	}
-
-	public void setFileBaseLocation(String newFileBaseLocation) {
-		fFileBaseLocation = newFileBaseLocation;
-	}
-
-	public void setProject(IProject newProject) {
-		fProject = newProject;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/ResourceUtil.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/ResourceUtil.java
deleted file mode 100644
index 1a0af4a..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/ResourceUtil.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.util;
-
-
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.sse.core.IStructuredModel;
-
-
-/**
- * Note: this class should probably go in com.ibm.sed.util package. Seems
- * general purpose enough.
- */
-public class ResourceUtil {
-
-	/**
-	 * Obtain IFile from IStructuredModel
-	 */
-	public static IFile getFileFor(IStructuredModel model) {
-		if (model == null)
-			return null;
-		String path = model.getBaseLocation();
-		if (path == null || path.length() == 0) {
-			Object id = model.getId();
-			if (id == null)
-				return null;
-			path = id.toString();
-		}
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		IFile file = root.getFileForLocation(new Path(path));
-		return file;
-	}
-
-	/**
-	 * Obtain IFiles from IStructuredModel (includes linkedResources)
-	 * 
-	 * @return the corresponding files in the workspace, or an empty array if
-	 *         none
-	 */
-	public static IFile[] getFilesFor(IStructuredModel model) {
-		IFile[] files = new IFile[0];
-
-		if (model != null) {
-			String path = model.getBaseLocation();
-			if (path == null || path.length() == 0) {
-				Object id = model.getId();
-				if (id == null)
-					return files;
-				path = id.toString();
-			}
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-			files = root.findFilesForLocation(new Path(path));
-		}
-		return files;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/ScriptLanguageKeys.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/ScriptLanguageKeys.java
deleted file mode 100644
index b8ee24f..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/ScriptLanguageKeys.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.util;
-
-/**
- * Contains list of script languages and mime types
- */
-public interface ScriptLanguageKeys {
-
-	public static final String JAVA = "java"; //$NON-NLS-1$
-
-	public static final String[] JAVA_LANGUAGE_KEYS = new String[]{"java"}; //$NON-NLS-1$
-
-	public static final String JAVASCRIPT = "javascript"; //$NON-NLS-1$
-	public static final String[] JAVASCRIPT_LANGUAGE_KEYS = {"javascript", //$NON-NLS-1$
-				"javascript1.0", //$NON-NLS-1$
-				"javascript1.1", //$NON-NLS-1$
-				"javascript1.2", //$NON-NLS-1$
-				"javascript1.3", //$NON-NLS-1$
-				"javascript1.4", //$NON-NLS-1$
-				"javascript1.5", //$NON-NLS-1$
-				"javascript1.6", //$NON-NLS-1$
-				"jscript", //$NON-NLS-1$
-				"sashscript"}; //$NON-NLS-1$
-
-	public static final String[] JAVASCRIPT_MIME_TYPE_KEYS = {"text/javascript", //$NON-NLS-1$
-				"text/jscript", //$NON-NLS-1$
-				"text/sashscript"}; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/StringUtils.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/StringUtils.java
deleted file mode 100644
index f80097e..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/StringUtils.java
+++ /dev/null
@@ -1,742 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.util;
-
-
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException;
-
-
-public class StringUtils {
-	protected static final String AMPERSTAND = "&"; //$NON-NLS-1$
-	protected static final String AMPERSTAND_ENTITY = "&&;"; //$NON-NLS-1$
-	protected static final String CARRIAGE_RETURN = "\r"; //$NON-NLS-1$
-	protected static final String CARRIAGE_RETURN_ENTITY = "\\r"; //$NON-NLS-1$
-	protected static final String CR = "\r"; //$NON-NLS-1$
-	protected static final String CRLF = "\r\n"; //$NON-NLS-1$
-	protected static final String DELIMITERS = " \t\n\r\f"; //$NON-NLS-1$
-	protected static final String DOUBLE_QUOTE = "\""; //$NON-NLS-1$
-	protected static final char DOUBLE_QUOTE_CHAR = '\"'; //$NON-NLS-1$
-	protected static final String DOUBLE_QUOTE_ENTITY = "&quot;"; //$NON-NLS-1$
-
-	protected static final String EQUAL_SIGN = "="; //$NON-NLS-1$
-	protected static final String EQUAL_SIGN_ENTITY = "&#61;"; //$NON-NLS-1$
-	private static final String FALSE = "false"; //$NON-NLS-1$
-	protected static final String GREATER_THAN = ">"; //$NON-NLS-1$
-	protected static final String GREATER_THAN_ENTITY = "&gt;"; //$NON-NLS-1$
-	protected static final String LESS_THAN = "<"; //$NON-NLS-1$
-	protected static final String LESS_THAN_ENTITY = "&lt;"; //$NON-NLS-1$
-	protected static final String LF = "\n"; //$NON-NLS-1$
-	protected static final String LINE_FEED = "\n"; //$NON-NLS-1$
-	protected static final String LINE_FEED_ENTITY = "\\n"; //$NON-NLS-1$
-	protected static final String LINE_FEED_TAG = "<dl>"; //$NON-NLS-1$
-	protected static final String LINE_TAB = "\t"; //$NON-NLS-1$
-	protected static final String LINE_TAB_ENTITY = "\\t"; //$NON-NLS-1$
-	protected static final String LINE_TAB_TAG = "<dd>"; //$NON-NLS-1$
-	protected static final String SINGLE_QUOTE = "'"; //$NON-NLS-1$
-	protected static final char SINGLE_QUOTE_CHAR = '\''; //$NON-NLS-1$
-	protected static final String SINGLE_QUOTE_ENTITY = "&#039;"; //$NON-NLS-1$
-	protected static final String SPACE = " "; //$NON-NLS-1$
-	protected static final String SPACE_ENTITY = "&nbsp;"; //$NON-NLS-1$
-	private static final String TRUE = "true"; //$NON-NLS-1$
-
-	/**
-	 * Append appendString to the end of aString only if aString does not end
-	 * with the insertString.
-	 */
-	public static String appendIfNotEndWith(String aString, String appendString) {
-		if ((aString != null) && (appendString != null))
-			if (aString.endsWith(appendString))
-				return aString;
-			else
-				return aString + appendString;
-		else
-			return aString;
-	}
-
-	/**
-	 * Breaks out space-separated words into an array of words. For example:
-	 * <code>"no comment"</code> into an array <code>a[0]="no"</code> and
-	 * <code>a[1]= "comment"</code>.
-	 * 
-	 * @param value
-	 *            the string to be converted
-	 * @return the list of words
-	 */
-	public static String[] asArray(String value) {
-		ArrayList list = new ArrayList();
-		StringTokenizer stok = new StringTokenizer(value);
-		while (stok.hasMoreTokens()) {
-			list.add(stok.nextToken());
-		}
-		String result[] = new String[list.size()];
-		list.toArray(result);
-		return result;
-	}
-
-	/**
-	 * Breaks out delim-separated words into an array of words. For example:
-	 * <code>"no comment"</code> into an array <code>a[0]="no"</code> and
-	 * <code>a[1]= "comment"</code>.
-	 * 
-	 * @param value
-	 *            the string to be converted
-	 * @return the list of words
-	 */
-	public static String[] asArray(String value, String delim) {
-		return asArray(value, delim, false);
-	}
-
-	/**
-	 * Breaks out delim-separated words into an array of words. For example:
-	 * <code>"no comment"</code> into an array <code>a[0]="no"</code> and
-	 * <code>a[1]= "comment"</code>.
-	 * 
-	 * @param value
-	 *            the string to be converted
-	 * @return the list of words
-	 */
-	public static String[] asArray(String value, String delim, boolean returnTokens) {
-		ArrayList list = new ArrayList();
-		StringTokenizer stok = new StringTokenizer(value, delim, returnTokens);
-		while (stok.hasMoreTokens()) {
-			list.add(stok.nextToken());
-		}
-		String result[] = new String[list.size()];
-		list.toArray(result);
-		return result;
-	}
-
-	/**
-	 * Breaks out delim-separated words into an array of words. For example:
-	 * <code>"abc,,def"</code> into an array <code>a[0]="abc"</code>,
-	 * <code>a[1]=null</code>, and <code>a[2]= "def"</code> where "," is
-	 * the delim.
-	 * 
-	 * @param value
-	 *            the string to be converted
-	 * @return the list of words
-	 */
-	public static String[] asFixedArray(String value, String delim) {
-		String array[] = asArray(value, delim, true);
-		int arrayLength = array.length;
-		boolean stringFound = false;
-		ArrayList list = new ArrayList();
-
-		for (int i = 0; i < arrayLength; i++) {
-			String token = array[i];
-			if (token.compareTo(delim) == 0) {
-				if (!stringFound)
-					list.add(null);
-				stringFound = false;
-			}
-			else {
-				list.add(token);
-				stringFound = true;
-			}
-		}
-		// add one more null if last token is the delim
-		if (!stringFound)
-			list.add(null);
-
-		String result[] = new String[list.size()];
-		list.toArray(result);
-		return result;
-	}
-
-	public static String chop(String source) {
-		return chop(source, "/"); //$NON-NLS-1$
-	}
-
-	public static String chop(String source, String delimiter) {
-		return source.substring(0, source.lastIndexOf(delimiter));
-	}
-
-	public static boolean contains(String[] arrayOfStrings, String needle, boolean caseSensitive) {
-		boolean result = false;
-		if (needle == null)
-			return false;
-		if (arrayOfStrings == null)
-			return false;
-
-		if (caseSensitive) {
-			for (int i = 0; i < arrayOfStrings.length; i++) {
-				if (needle.equals(arrayOfStrings[i])) {
-					result = true;
-					break;
-				}
-			}
-		}
-		else {
-			for (int i = 0; i < arrayOfStrings.length; i++) {
-				if (needle.equalsIgnoreCase(arrayOfStrings[i])) {
-					result = true;
-					break;
-				}
-			}
-		}
-		return result;
-	}
-
-	public static boolean containsLetters(String fullValue) {
-
-		if (fullValue == null || fullValue.length() == 0)
-			return false;
-
-		char[] chars = fullValue.toCharArray();
-		for (int i = 0; i < fullValue.length(); i++)
-			if (Character.isLetter(chars[i]))
-				return true;
-
-		return false;
-	}
-
-	public static boolean containsLineDelimiter(String aString) {
-		return indexOfLineDelimiter(aString) != -1;
-	}
-
-	public static String convertLineDelimiters(String allText, String lineDelimiterToUse) {
-		IDocument tempDoc = new Document(allText);
-
-		if (lineDelimiterToUse == null)
-			lineDelimiterToUse = System.getProperty("line.separator"); //$NON-NLS-1$
-
-		String newText = ""; //$NON-NLS-1$
-		int lineCount = tempDoc.getNumberOfLines();
-		for (int i = 0; i < lineCount; i++) {
-			try {
-				org.eclipse.jface.text.IRegion lineInfo = tempDoc.getLineInformation(i);
-				int lineStartOffset = lineInfo.getOffset();
-				int lineLength = lineInfo.getLength();
-				int lineEndOffset = lineStartOffset + lineLength;
-				newText += allText.substring(lineStartOffset, lineEndOffset);
-
-				if ((i < lineCount - 1) && (tempDoc.getLineDelimiter(i) != null))
-					newText += lineDelimiterToUse;
-			}
-			catch (BadLocationException exception) {
-				throw new SourceEditingRuntimeException(exception);
-			}
-		}
-
-		return newText;
-	}
-
-	/**
-	 * Replaces all instances of special HTML characters with the appropriate
-	 * HTML entity equivalent. WARNING only use this method for strings that
-	 * dont already have HTML-specific items such as tags and entities.
-	 * 
-	 * @param String
-	 *            content String to convert
-	 * 
-	 * @return String the converted string
-	 * @see HTMLPrinter#convertToHTMLContent(String content)
-	 */
-	public static String convertToHTMLContent(String content) {
-		content = replace(content, AMPERSTAND, AMPERSTAND_ENTITY);
-		content = replace(content, LESS_THAN, LESS_THAN_ENTITY);
-		content = replace(content, GREATER_THAN, GREATER_THAN_ENTITY);
-		content = replace(content, LINE_FEED, LINE_FEED_TAG);
-		content = replace(content, LINE_TAB, LINE_TAB_TAG);
-		content = replace(content, SINGLE_QUOTE, SINGLE_QUOTE_ENTITY);
-		content = replace(content, DOUBLE_QUOTE, DOUBLE_QUOTE_ENTITY);
-		content = replace(content, SPACE + SPACE, SPACE_ENTITY + SPACE_ENTITY); // replacing
-		// every
-		// space
-		// would
-		// be
-		// too
-		// much
-		return content;
-	}
-
-	/**
-	 * Converts a string into a form that will not conflict with saving it
-	 * into an INI file
-	 */
-	public static String escape(String normalString) {
-		if (normalString == null)
-			return null;
-		StringBuffer escapedBuffer = new StringBuffer();
-		StringTokenizer toker = new StringTokenizer(normalString, EQUAL_SIGN + LINE_FEED + CARRIAGE_RETURN + LINE_TAB, true);
-		String chunk = null;
-		while (toker.hasMoreTokens()) {
-			chunk = toker.nextToken();
-			if (chunk.equals(EQUAL_SIGN)) {
-				escapedBuffer.append(EQUAL_SIGN_ENTITY);
-			}
-			else if (chunk.equals(LINE_FEED)) {
-				escapedBuffer.append(LINE_FEED_ENTITY);
-			}
-			else if (chunk.equals(CARRIAGE_RETURN)) {
-				escapedBuffer.append(CARRIAGE_RETURN_ENTITY);
-			}
-			else if (chunk.equals(LINE_TAB)) {
-				escapedBuffer.append(LINE_TAB_ENTITY);
-			}
-			else {
-				escapedBuffer.append(chunk);
-			}
-		}
-		return escapedBuffer.toString();
-	}
-
-	/**
-	 * Returns the first line of the given text without a trailing delimiter
-	 * 
-	 * @param text
-	 * @return
-	 */
-	public static String firstLineOf(String text) {
-		if (text == null || text.length() < 1) {
-			return text;
-		}
-		IDocument doc = new Document(text);
-		try {
-			int lineNumber = doc.getLineOfOffset(0);
-			IRegion line = doc.getLineInformation(lineNumber);
-			return doc.get(line.getOffset(), line.getLength());
-		}
-		catch (BadLocationException e) {
-			// do nothing
-		}
-		return text;
-	}
-
-	public static int indexOfLastLineDelimiter(String aString) {
-		return indexOfLastLineDelimiter(aString, aString.length());
-	}
-
-	public static int indexOfLastLineDelimiter(String aString, int offset) {
-		int index = -1;
-
-		if (aString != null && aString.length() > 0) {
-			index = aString.lastIndexOf(CRLF, offset);
-			if (index == -1) {
-				index = aString.lastIndexOf(CR, offset);
-				if (index == -1)
-					index = aString.lastIndexOf(LF, offset);
-			}
-		}
-
-		return index;
-	}
-
-	public static int indexOfLineDelimiter(String aString) {
-		return indexOfLineDelimiter(aString, 0);
-	}
-
-	public static int indexOfLineDelimiter(String aString, int offset) {
-		int index = -1;
-
-		if (aString != null && aString.length() > 0) {
-			index = aString.indexOf(CRLF, offset);
-			if (index == -1) {
-				index = aString.indexOf(CR, offset);
-				if (index == -1)
-					index = aString.indexOf(LF, offset);
-			}
-		}
-
-		return index;
-	}
-
-	public static int indexOfNonblank(String aString) {
-		return indexOfNonblank(aString, 0);
-	}
-
-	public static int indexOfNonblank(String aString, int offset) {
-		int index = -1;
-
-		if (aString != null && aString.length() > 0) {
-			for (int i = offset; i < aString.length(); i++) {
-				if (DELIMITERS.indexOf(aString.substring(i, i + 1)) == -1) {
-					index = i;
-					break;
-				}
-			}
-		}
-
-		return index;
-	}
-
-	/**
-	 * Insert insertString to the beginning of aString only if aString does
-	 * not start with the insertString.
-	 */
-	public static String insertIfNotStartWith(String aString, String insertString) {
-		if ((aString != null) && (insertString != null))
-			if (aString.startsWith(insertString))
-				return aString;
-			else
-				return insertString + aString;
-		else
-			return aString;
-	}
-
-	public static boolean isQuoted(String string) {
-		if ((string == null) || (string.length() < 2))
-			return false;
-
-		int lastIndex = string.length() - 1;
-		char firstChar = string.charAt(0);
-		char lastChar = string.charAt(lastIndex);
-
-		return (((firstChar == SINGLE_QUOTE_CHAR) && (lastChar == SINGLE_QUOTE_CHAR)) || ((firstChar == DOUBLE_QUOTE_CHAR) && (lastChar == DOUBLE_QUOTE_CHAR)));
-	}
-
-	/**
-	 * Unit tests.
-	 * 
-	 * @param args
-	 *            java.lang.String[]
-	 */
-	public static void main(String[] args) {
-		// testPaste();
-		testStripNonLetterDigits();
-	}
-
-	/*
-	 * Returns the merged form of both strings
-	 */
-	public static String merge(String newStart, String newEnd) {
-		String[] regions = overlapRegions(newStart, newEnd);
-		return regions[0] + regions[1] + regions[2];
-	}
-
-	public static int occurrencesOf(String searchString, char targetChar) {
-		int result = 0;
-		int len = searchString.length();
-		for (int i = 0; i < len; i++) {
-			if (targetChar == searchString.charAt(i))
-				result++;
-		}
-		return result;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String[]
-	 * @param start
-	 *            java.lang.String
-	 * @param end
-	 *            java.lang.String
-	 * 
-	 * Returns a 3 String array containing unique text from the start,
-	 * duplicated text that overlaps the start and end, and the unique text
-	 * from the end.
-	 */
-	private static String[] overlapRegions(String start, String end) {
-		String[] results = null;
-		if (start != null && end == null) {
-			results = new String[]{start, "", ""}; //$NON-NLS-2$//$NON-NLS-1$
-		}
-		else if (start == null && end != null) {
-			results = new String[]{"", "", end}; //$NON-NLS-2$//$NON-NLS-1$
-		}
-		else if (start == null && end == null) {
-			results = new String[]{"", "", ""}; //$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-		}
-		else if (start != null && end != null) {
-
-			int startLength = start.length();
-			int endLength = end.length();
-
-			if (startLength == 0 || endLength == 0) {
-				results = new String[]{"", "", ""}; //$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-			}
-			else {
-				results = new String[3];
-				String testStart = ""; //$NON-NLS-1$
-				String testEnd = ""; //$NON-NLS-1$
-				int mergeLength = Math.min(startLength, endLength);
-				boolean finished = false;
-				while (mergeLength > 0 && !finished) {
-					testStart = start.substring(startLength - mergeLength);
-					testEnd = end.substring(0, mergeLength);
-					// case sensitive
-					if (testStart.equals(testEnd)) {
-						finished = true;
-						results[0] = start.substring(0, startLength - mergeLength);
-						results[1] = start.substring(startLength - mergeLength);
-						results[2] = end.substring(mergeLength);
-					}
-					mergeLength--;
-				}
-				if (!finished) {
-					results[0] = start;
-					results[1] = ""; //$NON-NLS-1$
-					results[2] = end;
-				}
-			}
-		}
-		return results;
-	}
-
-	/**
-	 * Packs an array of Strings into a single comma delimited String.
-	 * 
-	 * @param strings
-	 * @return
-	 * @todo Generated comment
-	 */
-	public static String pack(String[] strings) {
-		StringBuffer buf = new StringBuffer();
-		for (int i = 0; i < strings.length; i++) {
-			buf.append(StringUtils.replace(strings[i], ",", "&comma;")); //$NON-NLS-1$ //$NON-NLS-2$
-			if (i < strings.length - 1)
-				buf.append(","); //$NON-NLS-1$
-		}
-		return buf.toString();
-	}
-
-	/*
-	 * Pastes the new text into the old at the start position, replacing text
-	 * implied by length.
-	 */
-	public static String paste(String oldText, String newText, int start, int length) {
-		String result = null;
-		StringBuffer sb = new StringBuffer();
-		int startIndex = start;
-		int endIndex = start + length;
-		if (startIndex > oldText.length()) {
-			startIndex = oldText.length();
-		}
-		sb.append(oldText.substring(0, startIndex));
-		// null or empty new text accompliches a delete
-		if (newText != null) {
-			sb.append(newText);
-		}
-		if (endIndex < oldText.length()) {
-
-			sb.append(oldText.substring(endIndex));
-		}
-		result = sb.toString();
-		return result;
-	}
-
-	/**
-	 * Replace matching literal portions of a string with another string
-	 */
-	public static String replace(String aString, String source, String target) {
-		if (aString == null)
-			return null;
-		String normalString = ""; //$NON-NLS-1$
-		int length = aString.length();
-		int position = 0;
-		int previous = 0;
-		int spacer = source.length();
-		while (position + spacer - 1 < length && aString.indexOf(source, position) > -1) {
-			position = aString.indexOf(source, previous);
-			normalString = normalString + aString.substring(previous, position) + target;
-			position += spacer;
-			previous = position;
-		}
-		normalString = normalString + aString.substring(position, aString.length());
-
-		return normalString;
-	}
-
-	/**
-	 * Restore the entity references for markup delimiters in text where they
-	 * have been replaced by the proper Unicode values through a DOM text
-	 * parser.
-	 */
-	public static String restoreMarkers(String text) {
-		String content = text;
-		content = replace(content, AMPERSTAND, AMPERSTAND_ENTITY);
-		content = replace(content, LESS_THAN, LESS_THAN_ENTITY);
-		content = replace(content, GREATER_THAN, GREATER_THAN_ENTITY);
-		return content;
-	}
-
-	/**
-	 * Removes extra whitespace characters and quotes
-	 */
-	public static String strip(String quotedString) {
-		if (quotedString == null || quotedString.length() == 0)
-			return quotedString;
-		String trimmed = quotedString.trim();
-		if (trimmed.length() < 2)
-			return quotedString;
-
-		char first = trimmed.charAt(0);
-		char nextToLast = trimmed.charAt(trimmed.length() - 2);
-		char last = trimmed.charAt(trimmed.length() - 1);
-
-		if ((first == '\"' && last == '\"' && nextToLast != '\\') || (first == '\'' && last == '\'' && nextToLast != '\\')) {
-			return trimmed.substring(1, trimmed.length() - 1);
-		}
-		return trimmed;
-	}
-
-	/**
-	 * This method strips anything from the beginning and end of a string that
-	 * is not a letter or digit. It is used by some encoding detectors to come
-	 * up with the encoding name from illformed input (e.g in <?xml
-	 * encoding="abc?> -- where final quote is left off, the '>' is returned
-	 * with the rest of the attribute value 'abc').
-	 */
-	public static String stripNonLetterDigits(String fullValue) {
-		if (fullValue == null || fullValue.length() == 0)
-			return fullValue;
-		int fullValueLength = fullValue.length();
-		int firstPos = 0;
-		while (firstPos < fullValueLength && !Character.isLetterOrDigit(fullValue.charAt(firstPos))) {
-			firstPos++;
-		}
-		int lastPos = fullValueLength - 1;
-		while (lastPos > firstPos && !Character.isLetterOrDigit(fullValue.charAt(lastPos))) {
-			lastPos--;
-		}
-		String result = fullValue;
-		if (firstPos != 0 || lastPos != fullValueLength) {
-			result = fullValue.substring(firstPos, lastPos + 1);
-		}
-		return result;
-	}
-
-	/**
-	 * Similar to strip, except quotes don't need to match such as "UTF' is
-	 * still stripped of both quotes. (Plus, this one does not detect escaped
-	 * quotes)
-	 */
-	public static String stripQuotes(String quotedValue) {
-		if (quotedValue == null)
-			return null;
-		// normally will never have leading or trailing blanks,
-		// but if it does, we'll do lenient interpretation
-		return stripQuotesLeaveInsideSpace(quotedValue).trim();
-	}
-
-	/**
-	 * Like strip quotes, except leaves the start and end space inside the
-	 * quotes
-	 * 
-	 * @param quotedValue
-	 * @return
-	 */
-	public static String stripQuotesLeaveInsideSpace(String quotedValue) {
-		if (quotedValue == null)
-			return null;
-		// nomally will never have leading or trailing blanks ... but just in
-		// case.
-		String result = quotedValue.trim();
-		int len = result.length();
-		if (len > 0) {
-			char firstChar = result.charAt(0);
-			if ((firstChar == SINGLE_QUOTE_CHAR) || (firstChar == DOUBLE_QUOTE_CHAR)) {
-				result = result.substring(1, len);
-			}
-			len = result.length();
-			if (len > 0) {
-				char lastChar = result.charAt(len - 1);
-				if ((lastChar == SINGLE_QUOTE_CHAR) || (lastChar == DOUBLE_QUOTE_CHAR)) {
-					result = result.substring(0, len - 1);
-				}
-			}
-		}
-		return result;
-	}
-
-	public static void testPaste() {
-		String testString = "The quick brown fox ..."; //$NON-NLS-1$
-		System.out.println(paste(testString, null, 4, 5));
-		System.out.println(paste(testString, null, 4, 6));
-		System.out.println(paste(testString, "", 4, 6)); //$NON-NLS-1$
-		System.out.println(paste(testString, "fast", 4, 6)); //$NON-NLS-1$
-		System.out.println(paste(testString, "fast ", 4, 6)); //$NON-NLS-1$
-		System.out.println(paste(testString, "But ", 0, 0)); //$NON-NLS-1$
-		System.out.println(paste("", "burp", 4, 6)); //$NON-NLS-2$//$NON-NLS-1$
-	}
-
-	public static void testStripNonLetterDigits() {
-		String testString = "abc"; //$NON-NLS-1$
-		System.out.println(testString + " -->" + stripNonLetterDigits(testString) + "<--"); //$NON-NLS-1$ //$NON-NLS-2$
-		testString = ""; //$NON-NLS-1$
-		System.out.println(testString + " -->" + stripNonLetterDigits(testString) + "<--"); //$NON-NLS-1$ //$NON-NLS-2$
-		testString = "\"abc\""; //$NON-NLS-1$
-		System.out.println(testString + " -->" + stripNonLetterDigits(testString) + "<--"); //$NON-NLS-1$ //$NON-NLS-2$
-		testString = "\"ab-c1?"; //$NON-NLS-1$
-		System.out.println(testString + " -->" + stripNonLetterDigits(testString) + "<--"); //$NON-NLS-1$ //$NON-NLS-2$
-		testString = "+++"; //$NON-NLS-1$
-		System.out.println(testString + " -->" + stripNonLetterDigits(testString) + "<--"); //$NON-NLS-1$ //$NON-NLS-2$
-		testString = "abc="; //$NON-NLS-1$
-		System.out.println(testString + " -->" + stripNonLetterDigits(testString) + "<--"); //$NON-NLS-1$ //$NON-NLS-2$
-		testString = "abc "; //$NON-NLS-1$
-		System.out.println(testString + " -->" + stripNonLetterDigits(testString) + "<--"); //$NON-NLS-1$ //$NON-NLS-2$
-
-	}
-
-	public static String toString(boolean booleanValue) {
-		if (booleanValue)
-			return TRUE;
-		else
-			return FALSE;
-	}
-
-	/**
-	 * Remove "escaped" chars from a string.
-	 */
-	public static String unescape(String aString) {
-		if (aString == null)
-			return null;
-		String normalString = replace(aString, EQUAL_SIGN_ENTITY, EQUAL_SIGN);
-		normalString = replace(normalString, LINE_FEED_ENTITY, LINE_FEED);
-		normalString = replace(normalString, CARRIAGE_RETURN_ENTITY, CARRIAGE_RETURN);
-		normalString = replace(normalString, LINE_TAB_ENTITY, LINE_TAB);
-		return normalString;
-	}
-
-	public static String uniqueEndOf(String newStart, String newEnd) {
-		String[] regions = overlapRegions(newStart, newEnd);
-		return regions[2];
-	}
-
-	/**
-	 * Unpacks a comma delimited String into an array of Strings
-	 * 
-	 * @param s
-	 * @return
-	 * @todo Generated comment
-	 */
-	public static String[] unpack(String s) {
-		if (s == null)
-			return new String[0];
-		StringTokenizer toker = new StringTokenizer(s, ","); //$NON-NLS-1$
-		List list = new ArrayList();
-		while (toker.hasMoreTokens()) {
-			// since we're separating the values with ',', escape ',' in the
-			// values
-			list.add(StringUtils.replace(toker.nextToken(), "&comma;", ",").trim()); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return (String[]) list.toArray(new String[0]);
-	}
-
-	/**
-	 * StringUtils constructor comment.
-	 */
-	private StringUtils() {
-		super();
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/TextUtilities.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/TextUtilities.java
deleted file mode 100644
index 544d2c7..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/TextUtilities.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.util;
-
-
-
-/**
- * Collection of text functions.
- * @deprecated - the JFace class is public in 3.1
- */
-// This class was originally copied from org.eclipse.jface.text, and made
-// public
-public class TextUtilities {
-	/**
-	 * Returns whether the text ends with one of the given search strings.
-	 */
-	public static boolean endsWith(String[] searchStrings, String text) {
-		for (int i = 0; i < searchStrings.length; i++) {
-			if (text.endsWith(searchStrings[i]))
-				return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Returns the position in the string greater than offset of the longest
-	 * matching search string.
-	 */
-	public static int[] indexOf(String[] searchStrings, String text, int offset) {
-
-		int[] result = {-1, -1};
-
-		for (int i = 0; i < searchStrings.length; i++) {
-			int index = text.indexOf(searchStrings[i], offset);
-			if (index >= 0) {
-
-				if (result[0] == -1) {
-					result[0] = index;
-					result[1] = i;
-				} else if (index < result[0]) {
-					result[0] = index;
-					result[1] = i;
-				} else if (index == result[0] && searchStrings[i].length() > searchStrings[result[1]].length()) {
-					result[0] = index;
-					result[1] = i;
-				}
-			}
-		}
-
-		return result;
-
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/URIResolver.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/URIResolver.java
deleted file mode 100644
index 0fd3c19..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/URIResolver.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.util;
-
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-
-
-
-public interface URIResolver {
-
-	String getFileBaseLocation();
-
-	/**
-	 * Resolve the (possibly relative) URI acording to RFC1808 using the
-	 * default file base location. Resolves resource references into absolute
-	 * resource locations without ensuring that the resource actually exists.
-	 */
-	String getLocationByURI(String uri);
-
-	/**
-	 * Resolve the (possibly relative) URI acording to RFC1808 using the
-	 * default file base location. Resolves resource references into absolute
-	 * resource locations without ensuring that the resource actually exists.
-	 * 
-	 * If resolveCrossProjectLinks is set to true, then this method will
-	 * properly resolve the URI if it is a valid URI to another (appropriate)
-	 * project.
-	 */
-	String getLocationByURI(String uri, boolean resolveCrossProjectLinks);
-
-	/**
-	 * Perform the getLocationByURI action using the baseReference as the
-	 * point of reference instead of the default for this resolver
-	 */
-	String getLocationByURI(String uri, String baseReference);
-
-	/**
-	 * Perform the getLocationByURI action using the baseReference as the
-	 * point of reference instead of the default for this resolver
-	 * 
-	 * If resolveCrossProjectLinks is set to true, then this method will
-	 * properly resolve the URI if it is a valid URI to another (appropriate)
-	 * project.
-	 */
-	String getLocationByURI(String uri, String baseReference, boolean resolveCrossProjectLinks);
-
-	IProject getProject();
-
-	IContainer getRootLocation();
-
-	/**
-	 * Attempts to return a direct inputstream to the given URI which must be
-	 * relative to the default point of reference.
-	 */
-	InputStream getURIStream(String uri);
-
-	void setFileBaseLocation(String newLocation);
-
-	void setProject(IProject newProject);
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/Utilities.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/Utilities.java
deleted file mode 100644
index c3c6a3d..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/util/Utilities.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.util;
-
-
-
-import java.io.BufferedInputStream;
-import java.io.InputStream;
-
-import org.eclipse.wst.common.encoding.CodedIO;
-import org.eclipse.wst.common.encoding.internal.BufferedLimitedStream;
-
-
-
-public class Utilities {
-
-	/**
-	 * a common calculation in some of the parsing methods (e.g. in
-	 * ContextRegion and IStructuredDocumentRegion)
-	 */
-	public static int calculateLengthDifference(String changes, int lengthToReplace) {
-		// determine the length by the text itself, or, if there is no text to
-		// insert (i.e. we are doing a delete) then calculate the length as
-		// a negative number to denote the amount to delete.
-		// For a straight insert, the selection Length will be zero.
-		int lengthDifference = 0;
-		if (changes == null) {
-			// the delete case
-			lengthDifference = 0 - lengthToReplace;
-		} else {
-			lengthDifference = changes.length() - lengthToReplace;
-		}
-		if (Debug.debugStructuredDocument) {
-			System.out.println("lengthDifference: " + lengthDifference);//$NON-NLS-1$
-		}
-		return lengthDifference;
-	}
-
-	/**
-	 * Returns true iff both parameters are not null and the object is within
-	 * the array. Careful, this uses identity. Not good for basic strings.
-	 */
-	public static boolean contains(Object[] objectArray, Object object) {
-		boolean result = false;
-		// if object or objectArray is null, return false
-		if ((objectArray != null) && (object != null)) {
-			for (int i = 0; i < objectArray.length; i++) {
-				if (objectArray[i] == object) {
-					result = true;
-					break;
-				}
-			}
-		}
-		return result;
-	}
-
-	public static boolean containsString(String[] objectArray, String object) {
-		boolean result = false;
-		// if object or objectArray is null, return false
-		if ((objectArray != null) && (object != null)) {
-			for (int i = 0; i < objectArray.length; i++) {
-				if (objectArray[i].equals(object)) {
-					result = true;
-					break;
-				}
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Ensures that an InputStream has mark/reset support, is readlimit is
-	 * set, and that the stream is "limitable" (that is, reports "end of
-	 * input" rather than allow going past mark). This is very specialized
-	 * stream introduced to overcome
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=67211. See also
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=68565
-	 */
-	public static InputStream getLimitedStream(InputStream original) {
-		if (original == null)
-			return null;
-		if (original instanceof BufferedLimitedStream)
-			return original;
-		return new BufferedLimitedStream(original, CodedIO.MAX_BUF_SIZE);
-	}
-
-	/**
-	 * Ensures that an InputStream has mark/reset support.
-	 */
-	public static InputStream getMarkSupportedStream(InputStream original) {
-		if (original == null)
-			return null;
-		if (original.markSupported())
-			return original;
-		InputStream buffered = new BufferedInputStream(original, CodedIO.MAX_BUF_SIZE);
-		buffered.mark(CodedIO.MAX_MARK_SIZE);
-		return buffered;
-	}
-
-	/**
-	 * Used for log/trace messages. Id is assumed to be some form of a
-	 * filename. See IModelManager.
-	 */
-	public static String makeShortId(Object id) {
-		if (id == null)
-			id = "NOID"; //com.ibm.sed.util.Assert.isNotNull(id);
-		// //$NON-NLS-1$
-		String whole = id.toString();
-		String part = whole.substring(whole.lastIndexOf("/") + 1); //$NON-NLS-1$
-		return "..." + part; //$NON-NLS-1$
-	}
-
-
-	/**
-	 * Utilities constructor comment.
-	 */
-	public Utilities() {
-		super();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/validate/ValidationAdapter.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/validate/ValidationAdapter.java
deleted file mode 100644
index 29316d1..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/validate/ValidationAdapter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.validate;
-
-
-
-import org.eclipse.wst.sse.core.INodeAdapter;
-import org.eclipse.wst.sse.core.IndexedRegion;
-
-/**
- */
-public interface ValidationAdapter extends INodeAdapter {
-
-	/**
-	 */
-	void setReporter(ValidationReporter reporter);
-
-	/**
-	 */
-	void validate(IndexedRegion node);
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/validate/ValidationMessage.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/validate/ValidationMessage.java
deleted file mode 100644
index 46c38b6..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/validate/ValidationMessage.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.validate;
-
-
-
-/**
- */
-public class ValidationMessage {
-	public static final int ERROR = 1;
-	public static final int INFORMATION = 3;
-	public static final int WARNING = 2;
-	private int length;
-
-	private String message;
-	private int offset;
-	private int severity;
-
-	/**
-	 */
-	public ValidationMessage(String message, int offset, int severity) {
-		this(message, offset, 0, severity);
-	}
-
-	/**
-	 */
-	public ValidationMessage(String message, int offset, int length, int severity) {
-		super();
-
-		this.message = message;
-		this.offset = offset;
-		this.length = length;
-		this.severity = severity;
-	}
-
-	/**
-	 */
-	public int getLength() {
-		return this.length;
-	}
-
-	/**
-	 */
-	public String getMessage() {
-		return this.message;
-	}
-
-	/**
-	 */
-	public int getOffset() {
-		return this.offset;
-	}
-
-	/**
-	 */
-	public int getSeverity() {
-		return this.severity;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/validate/ValidationReporter.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/validate/ValidationReporter.java
deleted file mode 100644
index 67ed09c..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/validate/ValidationReporter.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.validate;
-
-
-
-/**
- */
-public interface ValidationReporter {
-
-	/**
-	 */
-	void report(ValidationMessage message);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/.classpath b/bundles/org.eclipse.wst.xml.core/.classpath
deleted file mode 100644
index 0e325ef..0000000
--- a/bundles/org.eclipse.wst.xml.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-	<classpathentry excluding="org/eclipse/**/internal/**" kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.wst.xml.core/.compatibility b/bundles/org.eclipse.wst.xml.core/.compatibility
deleted file mode 100644
index 750d7dd..0000000
--- a/bundles/org.eclipse.wst.xml.core/.compatibility
+++ /dev/null
@@ -1,2 +0,0 @@
-#Wed Mar 24 13:53:52 EST 2004

-.project=12259

diff --git a/bundles/org.eclipse.wst.xml.core/.cvsignore b/bundles/org.eclipse.wst.xml.core/.cvsignore
deleted file mode 100644
index 25ec663..0000000
--- a/bundles/org.eclipse.wst.xml.core/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin
-temp.folder
-build.xml
-xmlmodel.jar
-org.eclipse.wst.xml.core_1.0.0.jar
diff --git a/bundles/org.eclipse.wst.xml.core/.options b/bundles/org.eclipse.wst.xml.core/.options
deleted file mode 100644
index e80df84..0000000
--- a/bundles/org.eclipse.wst.xml.core/.options
+++ /dev/null
@@ -1,2 +0,0 @@
-org.eclipse.wst.xml.core/debug=true
-org.eclipse.wst.xml.core/debug/tracefilter=
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.jdt.core.prefs b/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index a81d766..0000000
--- a/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,69 +0,0 @@
-#Mon Nov 29 12:53:16 EST 2004

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

-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled

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

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

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

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

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

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

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

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

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

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

-org.eclipse.jdt.core.builder.invalidClasspath=abort

-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch

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

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

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

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

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

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

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

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

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

-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve

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

-org.eclipse.jdt.core.compiler.compliance=1.4

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

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

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

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

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

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

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

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

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

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

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

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

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

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2

-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled

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

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

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

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

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

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

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

-eclipse.preferences.version=1

-org.eclipse.jdt.core.circularClasspath=error

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

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

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

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

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

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

-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled

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

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

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

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

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

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

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

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

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

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

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

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/build.properties b/bundles/org.eclipse.wst.xml.core/build.properties
deleted file mode 100644
index 8441d64..0000000
--- a/bundles/org.eclipse.wst.xml.core/build.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and 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,\
-               *.jar,\
-               xml.jar,\
-               .options,\
-               extensions.xml,\
-               plugin.properties
-src.includes = plugin.xml,\
-               plugin.properties,\
-               extensions.xml,\
-               build.xml,\
-               .options
-source.xmlmodel.jar = src/
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 8c6b4b2..0000000
--- a/bundles/org.eclipse.wst.xml.core/plugin.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-#     Jens Lukowski/Innoopract - initial renaming/restructuring
-#     
-###############################################################################
-providerName=Eclipse.org
-pluginName=Structured Source XML Model
-nlFeatureName=Structured Source XML Model NL Support
-Structured_XML_Document_Factory_Extension.name=Structured XML Document Factory Extension
-XML_Content_Type_Extension_Element.name=XML Content Type
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 499c912..0000000
--- a/bundles/org.eclipse.wst.xml.core/plugin.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.wst.xml.core"
-   name="%pluginName"
-   version="1.0.0"
-   provider-name="%providerName"
-   class="org.eclipse.wst.xml.core.internal.XMLCorePlugin">
-
-   <runtime>
-      <library name="xmlmodel.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.wst.common.encoding"/>
-      <import plugin="org.eclipse.wst.sse.core"/>
-      <import plugin="org.eclipse.wst.common.contentmodel"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.eclipse.core.filebuffers"/>
-      <import plugin="org.eclipse.text"/>
-      <import plugin="org.eclipse.wst.xml.uriresolver"/>
-   </requires>
-
-
-   <extension
-         point="org.eclipse.wst.sse.core.modelHandler">
-      <modelHandler
-            default="true"
-            class="org.eclipse.wst.xml.core.modelhandler.ModelHandlerForXML"
-            associatedContentTypeId="org.eclipse.core.runtime.xml"
-            id="org.eclipse.wst.xml.core.modelhandler">
-      </modelHandler>
-   </extension>
-   <extension
-         point="org.eclipse.wst.sse.core.embeddedTypeHandler">
-      <embeddedTypeHandler
-            class="org.eclipse.wst.xml.core.modelhandler.EmbeddedXML">
-      </embeddedTypeHandler>
-   </extension>
-   
-   <extension
-         id="org.eclipse.wst.xml.core.builderdelegate.todo"
-         point="org.eclipse.wst.sse.core.builderdelegate">
-      <participant
-            class="org.eclipse.wst.xml.core.builder.delegates.XMLTaskTagSeeker"
-            contentType="org.eclipse.core.runtime.xml,org.eclipse.wst.xml.core.xmlsource">
-      </participant>
-   </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.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.format.FormatProcessorXML"
-            contentTypeId="org.eclipse.core.runtime.xml">
-      </processor>
-   </extension>
-   
-   <extension
-         point="org.eclipse.core.runtime.contentTypes">
-         <content-type
-               priority="high"
-               name="%XML_Content_Type_Extension_Element.name"
-               id="xmlsource"
-               base-type="org.eclipse.core.runtime.xml"
-			   default-charset="UTF-8">
-			<describer class="org.eclipse.wst.xml.core.contenttype.ContentDescriberForXML"/>
-		</content-type>
-        <file-association 
-			content-type="org.eclipse.core.runtime.xml"
-			file-extensions="xsl,xslt,dadx,wsdl,nst,xmi,xsd,exsd"/>
-   </extension>
-   
-</plugin>
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/Logger.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/Logger.java
deleted file mode 100644
index a88710f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/Logger.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core;
-
-
-/**
- * @deprecated moved to internal package because only this plugin should be
- * using this Logger class.
- */
-public class Logger extends org.eclipse.wst.xml.core.internal.Logger {
-	// see org.eclipse.wst.xml.core.internal.Logger
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/NameValidator.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/NameValidator.java
deleted file mode 100644
index a0d564b..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/NameValidator.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core;
-
-import java.io.Reader;
-
-import org.eclipse.wst.xml.core.internal.parser.XML10Names;
-
-
-
-public final class NameValidator {
-
-	private static XML10Names charChecker = new XML10Names((Reader) null);
-
-	public synchronized static final boolean isValid(String name) {
-
-		return charChecker.isValidXML10Name(name);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/XMLModelPlugin.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/XMLModelPlugin.java
deleted file mode 100644
index 16af923..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/XMLModelPlugin.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core;
-
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-
-/**
- * @deprecated use XMLCorePlugin instead
- */
-public class XMLModelPlugin extends XMLCorePlugin {
-	// just extending XMLCorePlugin to keep everything compatible
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/XMLPreferenceNames.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/XMLPreferenceNames.java
deleted file mode 100644
index 4df06f0..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/XMLPreferenceNames.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core;
-
-
-
-public interface XMLPreferenceNames {
-	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/builder/delegates/XMLTaskTagSeeker.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/builder/delegates/XMLTaskTagSeeker.java
deleted file mode 100644
index a9bba3b..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/builder/delegates/XMLTaskTagSeeker.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.builder.delegates;
-
-import org.eclipse.wst.sse.core.participants.TaskTagSeeker;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-public class XMLTaskTagSeeker extends TaskTagSeeker {
-
-	/**
-	 *  
-	 */
-	public XMLTaskTagSeeker() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.participants.TaskTagSeeker#isCommentRegion(org.eclipse.wst.sse.core.text.IStructuredDocumentRegion,
-	 *      org.eclipse.wst.sse.core.text.ITextRegion)
-	 */
-	protected boolean isCommentRegion(IStructuredDocumentRegion region, ITextRegion textRegion) {
-		return textRegion.getType().equals(XMLRegionContext.XML_COMMENT_TEXT);
-
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/cleanup/CleanupProcessorXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/cleanup/CleanupProcessorXML.java
deleted file mode 100644
index 564c5ba..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/cleanup/CleanupProcessorXML.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.cleanup;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.common.encoding.content.IContentTypeIdentifier;
-import org.eclipse.wst.sse.core.cleanup.AbstractStructuredCleanupProcessor;
-import org.eclipse.wst.sse.core.cleanup.IStructuredCleanupHandler;
-import org.eclipse.wst.sse.core.cleanup.IStructuredCleanupPreferences;
-import org.eclipse.wst.sse.core.cleanup.StructuredCleanupPreferences;
-import org.eclipse.wst.sse.core.format.IStructuredFormatProcessor;
-import org.eclipse.wst.sse.core.preferences.CommonModelPreferenceNames;
-import org.eclipse.wst.xml.core.format.FormatProcessorXML;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-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.setTagNameCase(preferences.getInt(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE));
-				fCleanupPreferences.setAttrNameCase(preferences.getInt(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE));
-				fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(CommonModelPreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS));
-				fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS));
-				fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(CommonModelPreferenceNames.INSERT_MISSING_TAGS));
-				fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(CommonModelPreferenceNames.QUOTE_ATTR_VALUES));
-				fCleanupPreferences.setFormatSource(preferences.getBoolean(CommonModelPreferenceNames.FORMAT_SOURCE));
-				fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(CommonModelPreferenceNames.CONVERT_EOL_CODES));
-				fCleanupPreferences.setEOLCode(preferences.getString(CommonModelPreferenceNames.CLEANUP_EOL_CODE));
-			}
-		}
-
-		return fCleanupPreferences;
-	}
-
-	protected String getContentType() {
-		return IContentTypeIdentifier.ContentTypeID_SSEXML;
-	}
-
-	protected IStructuredFormatProcessor getFormatProcessor() {
-		return new FormatProcessorXML();
-	}
-
-	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/cleanup/ElementNodeCleanupHandler.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/cleanup/ElementNodeCleanupHandler.java
deleted file mode 100644
index 39f4e31..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/cleanup/ElementNodeCleanupHandler.java
+++ /dev/null
@@ -1,556 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.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.common.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.common.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.common.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.common.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.sse.core.cleanup.IStructuredCleanupHandler;
-import org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-import org.eclipse.wst.sse.core.util.StringUtils;
-import org.eclipse.wst.xml.core.document.XMLAttr;
-import org.eclipse.wst.xml.core.document.XMLDocument;
-import org.eclipse.wst.xml.core.document.XMLElement;
-import org.eclipse.wst.xml.core.document.XMLGenerator;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xml.core.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-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);
-		XMLNode renamedNode = newNode instanceof XMLNode ? (XMLNode) 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)) {
-			XMLModel 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 = (XMLNode) 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 = (XMLNode) childNode.getParentNode();
-
-				// get next child node
-				childNode = (XMLNode) childNode.getNextSibling();
-			}
-		}
-
-		return parentNode;
-	}
-
-	private XMLNode compressEmptyElementTag(XMLNode node) {
-		boolean compressEmptyElementTags = getCleanupPreferences().getCompressEmptyElementTags();
-		XMLNode 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() != XMLRegionContext.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))) {
-					XMLModel 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 = (XMLNode) structuredModel.getIndexedRegion(startTagStartOffset); // save
-
-					offset = startTagStructuredDocumentRegion.getStart() + lastRegion.getStart();
-					structuredDocument.replaceText(structuredDocument, offset, 0, "/"); //$NON-NLS-1$
-					newNode = (XMLNode) 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 XMLNode insertEndTag(XMLNode node) {
-		XMLNode newNode = node;
-		XMLElement element = (XMLElement) node;
-		if (element.isCommentTag())
-			return node; // do nothing
-
-		int startTagStartOffset = node.getStartOffset();
-		XMLModel 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);
-
-			XMLNode lastChild = (XMLNode) 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 = (XMLNode) structuredModel.getIndexedRegion(startTagStartOffset); // save
-		// new
-		// node
-
-		return newNode;
-	}
-
-	private XMLNode insertMissingTags(XMLNode node) {
-		boolean insertMissingTags = getCleanupPreferences().getInsertMissingTags();
-		XMLNode 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() == XMLRegionContext.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 XMLNode insertRequiredAttrs(XMLNode node) {
-		boolean insertRequiredAttrs = getCleanupPreferences().getInsertRequiredAttrs();
-		XMLNode 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() == XMLRegionContext.XML_TAG_CLOSE) {
-						index--;
-						lastRegion = startStructuredDocumentRegion.getRegionAtCharacterOffset(index - 1);
-					} else if (lastRegion.getType() == XMLRegionContext.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) {
-						throw new SourceEditingRuntimeException(e);
-					}
-				}
-			}
-		}
-
-		return newNode;
-	}
-
-	private XMLNode insertStartTag(XMLNode node) {
-		XMLNode 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();
-
-		XMLModel structuredModel = node.getModel();
-		IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-		structuredDocument.replaceText(structuredDocument, startTagStartOffset, 0, startTag);
-		newNode = (XMLNode) structuredModel.getIndexedRegion(startTagStartOffset); // save
-		// new
-		// node
-
-		return newNode;
-	}
-
-	private void insertTagClose(XMLModel 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 != XMLRegionContext.XML_EMPTY_TAG_CLOSE) && (regionType != XMLRegionContext.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 XMLElement) {
-			XMLElement element = (XMLElement) renamedNode;
-			result = element.isCommentTag();
-		}
-		return result;
-	}
-
-	private boolean isEmptyElement(XMLElement 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(XMLNode 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(XMLNode 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(XMLNode node) {
-		if (node == null)
-			return false;
-		return node.isContainer();
-	}
-
-	private boolean isXMLType(XMLModel structuredModel) {
-		boolean result = false;
-
-		if (structuredModel != null && structuredModel != null) {
-			XMLDocument document = structuredModel.getDocument();
-
-			if (document != null)
-				result = document.isXMLType();
-		}
-
-		return result;
-	}
-
-	private XMLNode quoteAttrValue(XMLNode node) {
-		XMLNode 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();
-				XMLGenerator generator = node.getModel().getGenerator();
-
-				for (int i = 0; i < attributesLength; i++) {
-					attributes = newNode.getAttributes();
-					attributesLength = attributes.getLength();
-					XMLAttr eachAttr = (XMLAttr) attributes.item(i);
-					//ITextRegion oldAttrValueRegion =
-					// eachAttr.getValueRegion();
-					String oldAttrValue = eachAttr.getValueRegionText();
-					if (oldAttrValue == null) {
-						XMLModel 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 = (XMLNode) 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();
-
-								XMLModel structuredModel = node.getModel();
-								IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
-								structuredDocument.replaceText(structuredDocument, attrValueStartOffset, attrValueLength, newAttrValue);
-								newNode = (XMLNode) structuredModel.getIndexedRegion(startTagStartOffset); // save
-								// new
-								// node
-							}
-						}
-					}
-				}
-			}
-		}
-
-		return newNode;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/cleanup/NodeCleanupHandler.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/cleanup/NodeCleanupHandler.java
deleted file mode 100644
index 52cf272..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/cleanup/NodeCleanupHandler.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.cleanup;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.sse.core.cleanup.IStructuredCleanupHandler;
-import org.eclipse.wst.sse.core.cleanup.IStructuredCleanupPreferences;
-import org.eclipse.wst.sse.core.cleanup.StructuredCleanupPreferences;
-import org.eclipse.wst.sse.core.preferences.CommonModelPreferenceNames;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.w3c.dom.Node;
-
-
-public class NodeCleanupHandler implements IStructuredCleanupHandler {
-
-	protected IStructuredCleanupPreferences fCleanupPreferences = null;
-	protected IProgressMonitor fProgressMonitor = null;
-
-	/**
-	 * @see com.ibm.sed.partitionCleanup.CleanupHandler#cleanup(com.ibm.sed.model.xml.XMLNode)
-	 */
-	public Node cleanup(Node node) {
-
-		return node;
-	}
-
-	/**
-	 * @see com.ibm.sed.partitionCleanup.CleanupHandler#getCleanupPreferences()
-	 */
-	public IStructuredCleanupPreferences getCleanupPreferences() {
-		if (fCleanupPreferences == null) {
-			fCleanupPreferences = new StructuredCleanupPreferences();
-
-			Preferences preferences = getModelPreferences();
-			if (preferences != null) {
-				fCleanupPreferences.setTagNameCase(preferences.getInt(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE));
-				fCleanupPreferences.setAttrNameCase(preferences.getInt(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE));
-				fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(CommonModelPreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS));
-				fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS));
-				fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(CommonModelPreferenceNames.INSERT_MISSING_TAGS));
-				fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(CommonModelPreferenceNames.QUOTE_ATTR_VALUES));
-				fCleanupPreferences.setFormatSource(preferences.getBoolean(CommonModelPreferenceNames.FORMAT_SOURCE));
-				fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(CommonModelPreferenceNames.CONVERT_EOL_CODES));
-				fCleanupPreferences.setEOLCode(preferences.getString(CommonModelPreferenceNames.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/cleanup/XMLCleanupPreferences.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/cleanup/XMLCleanupPreferences.java
deleted file mode 100644
index 6bae47a..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/cleanup/XMLCleanupPreferences.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.cleanup;
-
-import org.eclipse.core.runtime.Preferences;
-
-/**
- * @deprecated renamed to IStructuredCleanupPreferences
- * 
- * TODO will delete in C5
- */
-public interface XMLCleanupPreferences {
-
-	int getAttrNameCase();
-
-	boolean getConvertEOLCodes();
-
-	String getEOLCode();
-
-	boolean getFormatSource();
-
-	boolean getInsertMissingTags();
-
-	boolean getQuoteAttrValues();
-
-	int getTagNameCase();
-
-	void setAttrNameCase(int attrNameCase);
-
-	void setConvertEOLCodes(boolean convertEOLCodes);
-
-	void setEOLCode(String EOLCode);
-
-	void setFormatSource(boolean formatSource);
-
-	void setInsertMissingTags(boolean insertMissingTags);
-
-	//void setPreferenceStore(IPreferenceStore preferenceStore);
-	void setPreferences(Preferences preferences);
-
-	void setQuoteAttrValues(boolean quoteAttrValues);
-
-	void setTagNameCase(int tagNameCase);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/cleanup/XMLCleanupPreferencesImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/cleanup/XMLCleanupPreferencesImpl.java
deleted file mode 100644
index f09292c..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/cleanup/XMLCleanupPreferencesImpl.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.cleanup;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.eclipse.wst.xml.core.XMLPreferenceNames;
-
-/**
- * @deprecated renamed to StructuredCleanupPreferences
- * 
- * TODO will delete in C5
- */
-public class XMLCleanupPreferencesImpl implements XMLCleanupPreferences {
-
-	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(XMLPreferenceNames.CLEANUP_TAG_NAME_CASE);
-		fAttrNameCase = p.getInt(XMLPreferenceNames.CLEANUP_ATTR_NAME_CASE);
-		fInsertMissingTags = p.getBoolean(XMLPreferenceNames.INSERT_MISSING_TAGS);
-		fQuoteAttrValues = p.getBoolean(XMLPreferenceNames.QUOTE_ATTR_VALUES);
-		fFormatSource = p.getBoolean(XMLPreferenceNames.FORMAT_SOURCE);
-		fConvertEOLCodes = p.getBoolean(XMLPreferenceNames.CONVERT_EOL_CODES);
-		fEOLCode = p.getString(XMLPreferenceNames.CLEANUP_EOL_CODE);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/commentelement/CommentElementAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/commentelement/CommentElementAdapter.java
deleted file mode 100644
index f4e3549..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/commentelement/CommentElementAdapter.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.commentelement;
-
-
-
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.wst.sse.core.INodeNotifier;
-import org.eclipse.wst.xml.core.commentelement.impl.CommentElementConfiguration;
-import org.eclipse.wst.xml.core.document.TagAdapter;
-import org.eclipse.wst.xml.core.document.XMLElement;
-
-
-/**
- */
-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(XMLElement element) {
-		return (element.isJSPTag()) ? "--%>" : "-->"; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	private String generateCommentOpen(XMLElement element) {
-		return (element.isJSPTag()) ? "<%--" : "<!--"; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	private CommentElementConfiguration getConfiguration() {
-		return fConfiguration;
-	}
-
-	/**
-	 * @see com.ibm.sed.model.xml.TagAdapter#getEndTag(XMLElement)
-	 */
-	public String getEndTag(XMLElement 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();
-	}
-
-	/**
-	 * @deprecated this should not be needed by anyone
-	 */
-	public IPluginDescriptor getHandlerPluginDescriptor() {
-		return fConfiguration.getHandlerPluginDescriptor();
-	}
-
-	public String getProperty(String name) {
-		return getConfiguration().getProperty(name);
-	}
-
-	/**
-	 * @see com.ibm.sed.model.xml.TagAdapter#getStartTag(XMLElement)
-	 */
-	public String getStartTag(XMLElement 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();
-	}
-
-	/**
-	 * @see com.ibm.sed.model.INodeAdapter#isAdapterForType(Object)
-	 */
-	public boolean isAdapterForType(Object type) {
-		return (type == CommentElementAdapter.class || type == TagAdapter.class);
-	}
-
-	public boolean isContainer() {
-		return (!fHandler.isEmpty());
-	}
-
-	/**
-	 * @see com.ibm.sed.model.xml.TagAdapter#isEndTag()
-	 */
-	public boolean isEndTag() {
-		return fEndTag;
-	}
-
-	/**
-	 * @see com.ibm.sed.model.INodeAdapter#notifyChanged(INodeNotifier, int,
-	 *      Object, Object, Object, int)
-	 */
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-	}
-
-	public void setConfiguration(CommentElementConfiguration configuration) {
-		fConfiguration = configuration;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/commentelement/CommentElementHandler.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/commentelement/CommentElementHandler.java
deleted file mode 100644
index b5eae28..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/commentelement/CommentElementHandler.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.commentelement;
-
-
-
-import org.eclipse.wst.xml.core.document.XMLElement;
-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(XMLElement 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(XMLElement element);
-
-	/**
-	 * 
-	 * @param element
-	 *            the element
-	 * @return boolean whether the element is comment element or not
-	 */
-	boolean isCommentElement(XMLElement 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/commentelement/impl/BasicCommentElementHandler.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/commentelement/impl/BasicCommentElementHandler.java
deleted file mode 100644
index 98efac0..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/commentelement/impl/BasicCommentElementHandler.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.commentelement.impl;
-
-
-
-import org.eclipse.wst.xml.core.commentelement.CommentElementHandler;
-import org.eclipse.wst.xml.core.commentelement.util.CommentElementFactory;
-import org.eclipse.wst.xml.core.commentelement.util.TagScanner;
-import org.eclipse.wst.xml.core.document.XMLAttr;
-import org.eclipse.wst.xml.core.document.XMLElement;
-import org.eclipse.wst.xml.core.document.XMLGenerator;
-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;
-	}
-
-	/**
-	 * @see com.ibm.sed.model.commentelement.CommentElementHandler#createElement(Document,
-	 *      String, boolean)
-	 */
-	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)
-							((XMLAttr) attr).setValueSource(attrValue);
-						element.setAttributeNode(attr);
-					}
-					attrName = scanner.nextName();
-				}
-			}
-		}
-		return element;
-	}
-
-	/**
-	 * @see com.ibm.sed.model.commentelement.CommentElementHandler#getEndTag(XMLElement)
-	 */
-	public String generateEndTagContent(XMLElement element) {
-		if (isEmpty) {
-			return null;
-		}
-		XMLGenerator 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();
-	}
-
-	/**
-	 * @see com.ibm.sed.model.commentelement.CommentElementHandler#getStartTag(XMLElement)
-	 */
-	public String generateStartTagContent(XMLElement element) {
-		XMLGenerator 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();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.model.commentelement.CommentElementHandler#isCommentElement(com.ibm.sed.model.xml.XMLElement)
-	 */
-	public boolean isCommentElement(XMLElement element) {
-		return (element != null && element.getTagName().equals(elementName)) ? true : false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.model.commentelement.CommentElementHandler#isEmpty()
-	 */
-	public boolean isEmpty() {
-		return isEmpty;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/commentelement/impl/CommentElementConfiguration.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/commentelement/impl/CommentElementConfiguration.java
deleted file mode 100644
index a1a0b02..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/commentelement/impl/CommentElementConfiguration.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.commentelement.impl;
-
-
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.wst.xml.core.commentelement.CommentElementAdapter;
-import org.eclipse.wst.xml.core.commentelement.CommentElementHandler;
-import org.eclipse.wst.xml.core.document.XMLElement;
-import org.eclipse.wst.xml.core.internal.Logger;
-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) {
-		XMLElement element = (XMLElement) 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(XMLElement element) {
-						return null;
-					}
-
-					public String generateStartTagContent(XMLElement element) {
-						return null;
-					}
-
-					public String getElementPrefix() {
-						return null;
-					}
-
-					public boolean isCommentElement(XMLElement 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;
-	}
-
-	/**
-	 * @deprecated this should not be needed by anyone
-	 */
-	public IPluginDescriptor getHandlerPluginDescriptor() {
-		return fElement.getDeclaringExtension().getDeclaringPluginDescriptor();
-	}
-
-	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(XMLElement 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/commentelement/impl/CommentElementRegistry.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/commentelement/impl/CommentElementRegistry.java
deleted file mode 100644
index 7fab5ee..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/commentelement/impl/CommentElementRegistry.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.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.commentelement.CommentElementHandler;
-import org.eclipse.wst.xml.core.document.XMLElement;
-
-
-/**
- */
-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(XMLElement 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/commentelement/util/CommentElementFactory.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/commentelement/util/CommentElementFactory.java
deleted file mode 100644
index 2ae4c84..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/commentelement/util/CommentElementFactory.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.commentelement.util;
-
-
-
-import org.eclipse.wst.xml.core.commentelement.CommentElementAdapter;
-import org.eclipse.wst.xml.core.commentelement.CommentElementHandler;
-import org.eclipse.wst.xml.core.document.XMLElement;
-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) {
-		super();
-		fDocument = document;
-		fJSPTag = isJSPTag;
-		fHandler = handler;
-	}
-
-	public Element create(String name, int nodeType) {
-		XMLElement element = (XMLElement) 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/commentelement/util/TagScanner.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/commentelement/util/TagScanner.java
deleted file mode 100644
index a74fe0b..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/commentelement/util/TagScanner.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.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/contenttype/ContentDescriberForXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/contenttype/ContentDescriberForXML.java
deleted file mode 100644
index a78089e..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/contenttype/ContentDescriberForXML.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.contenttype;
-
-import org.eclipse.core.runtime.content.ITextContentDescriber;
-import org.eclipse.wst.common.encoding.AbstractContentDescriber;
-import org.eclipse.wst.common.encoding.IResourceCharsetDetector;
-
-
-public class ContentDescriberForXML extends AbstractContentDescriber implements ITextContentDescriber {
-	protected IResourceCharsetDetector getDetector() {
-		return new XMLResourceEncodingDetector();
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/contenttype/XMLHeadTokenizer.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/contenttype/XMLHeadTokenizer.java
deleted file mode 100644
index 35ca57c..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/contenttype/XMLHeadTokenizer.java
+++ /dev/null
@@ -1,1226 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-/* The following code was generated by JFlex 1.2.2 on 4/6/04 11:13 PM */
-
-/*nlsXXX*/
-package org.eclipse.wst.xml.core.contenttype;
-
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.wst.common.encoding.IntStack;
-import org.eclipse.wst.xml.core.internal.contenttype.EncodingParserConstants;
-import org.eclipse.wst.xml.core.internal.contenttype.HeadParserToken;
-
-
-
-/**
- * This class is a scanner generated by <a
- * href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex </a> 1.2.2
- * on 4/6/04 11:13 PM from the specification file
- * <tt>file:/D:/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.jflex</tt>
- */
-public class XMLHeadTokenizer {
-
-	/** this character denotes the end of file */
-	final public static int YYEOF = -1;
-
-	/** lexical states */
-	final public static int YYINITIAL = 0;
-	final public static int UnDelimitedString = 10;
-	final public static int DQ_STRING = 6;
-	final public static int SQ_STRING = 8;
-	final public static int ST_XMLDecl = 2;
-	final public static int QuotedAttributeValue = 4;
-
-	/**
-	 * 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};
-
-	/**
-	 * Translates characters to character classes
-	 */
-	final private static String yycmap_packed = "\11\0\1\6\1\7\2\0\1\11\22\0\1\6\1\0\1\27\2\0" + "\1\31\1\0\1\30\24\0\1\12\1\10\1\26\1\13\3\0\1\21" + "\1\23\1\17\1\0\1\25\1\0\1\24\2\0\1\16\1\15\1\20" + "\1\22\10\0\1\14\12\0\1\21\1\23\1\17\1\0\1\25\1\0" + "\1\24\2\0\1\16\1\15\1\20\1\22\10\0\1\14\102\0\1\4" + "\3\0\1\5\17\0\1\3\16\0\1\1\20\0\1\3\16\0\1\1" + "\1\2\170\0\1\2\ufe87\0"; //$NON-NLS-2$//$NON-NLS-3$
-
-	/**
-	 * 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 */
-	// future_TODO: remove from skeleton
-	// 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
-	 */
-	// future_TODO: remove from skeleton
-	//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 = 1000;
-	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 */
-		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 */
-		// future_TODO: remove from skeleton
-		//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
-		 */
-		// future_TODO: remove from skeleton
-		//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 XMLHeadTokenizer(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 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[] 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 < 128) {
-			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;
-
-
-		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_forAction : {
-				while (true) {
-
-					yy_input = yy_advance();
-
-					if (yy_input == YYEOF)
-						break yy_forAction;
-
-					yy_input = yycmap[yy_input];
-
-					boolean yy_isFinal = false;
-					boolean yy_noLookAhead = false;
-
-					yy_forNext : {
-						switch (yy_state) {
-							case 0 :
-								switch (yy_input) {
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 7;
-										break yy_forNext;
-								}
-
-							case 1 :
-								switch (yy_input) {
-									case 1 :
-										yy_isFinal = true;
-										yy_state = 8;
-										break yy_forNext;
-									case 2 :
-										yy_isFinal = true;
-										yy_state = 9;
-										break yy_forNext;
-									case 3 :
-										yy_isFinal = true;
-										yy_state = 10;
-										break yy_forNext;
-									case 6 :
-									case 7 :
-									case 9 :
-										yy_isFinal = true;
-										yy_state = 11;
-										break yy_forNext;
-									case 10 :
-										yy_isFinal = true;
-										yy_state = 12;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 7;
-										break yy_forNext;
-								}
-
-							case 2 :
-								switch (yy_input) {
-									case 11 :
-										yy_isFinal = true;
-										yy_state = 13;
-										break yy_forNext;
-									case 15 :
-										yy_isFinal = true;
-										yy_state = 14;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 7;
-										break yy_forNext;
-								}
-
-							case 3 :
-								switch (yy_input) {
-									case 6 :
-									case 9 :
-										yy_isFinal = true;
-										yy_state = 16;
-										break yy_forNext;
-									case 7 :
-										yy_isFinal = true;
-										yy_state = 17;
-										break yy_forNext;
-									case 23 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 18;
-										break yy_forNext;
-									case 24 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 19;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 15;
-										break yy_forNext;
-								}
-
-							case 4 :
-								switch (yy_input) {
-									case 7 :
-									case 9 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 21;
-										break yy_forNext;
-									case 11 :
-										yy_isFinal = true;
-										yy_state = 22;
-										break yy_forNext;
-									case 23 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 23;
-										break yy_forNext;
-									case 24 :
-										yy_isFinal = true;
-										yy_state = 24;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 20;
-										break yy_forNext;
-								}
-
-							case 5 :
-								switch (yy_input) {
-									case 7 :
-									case 9 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 21;
-										break yy_forNext;
-									case 24 :
-										yy_isFinal = true;
-										yy_state = 25;
-										break yy_forNext;
-									case 25 :
-										yy_isFinal = true;
-										yy_state = 26;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 20;
-										break yy_forNext;
-								}
-
-							case 6 :
-								switch (yy_input) {
-									case 11 :
-										yy_isFinal = true;
-										yy_state = 26;
-										break yy_forNext;
-									case 6 :
-									case 7 :
-									case 9 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 27;
-										break yy_forNext;
-									case 23 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 28;
-										break yy_forNext;
-									case 24 :
-										yy_isFinal = true;
-										yy_state = 29;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 20;
-										break yy_forNext;
-								}
-
-							case 8 :
-								switch (yy_input) {
-									case 2 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 30;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 9 :
-								switch (yy_input) {
-									case 1 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 31;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 10 :
-								switch (yy_input) {
-									case 4 :
-										yy_state = 32;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 11 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-										yy_state = 33;
-										break yy_forNext;
-									case 10 :
-										yy_state = 34;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 12 :
-								switch (yy_input) {
-									case 11 :
-										yy_state = 35;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 13 :
-								switch (yy_input) {
-									case 22 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 36;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 14 :
-								switch (yy_input) {
-									case 16 :
-										yy_state = 37;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 16 :
-								switch (yy_input) {
-									case 6 :
-									case 9 :
-										yy_isFinal = true;
-										yy_state = 16;
-										break yy_forNext;
-									case 7 :
-										yy_state = 38;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 15;
-										break yy_forNext;
-								}
-
-							case 17 :
-								switch (yy_input) {
-									case 6 :
-									case 9 :
-										yy_isFinal = true;
-										yy_state = 16;
-										break yy_forNext;
-									case 7 :
-										yy_state = 38;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 15;
-										break yy_forNext;
-								}
-
-							case 22 :
-								switch (yy_input) {
-									case 22 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 39;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 24 :
-								switch (yy_input) {
-									case 10 :
-										yy_state = 40;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 25 :
-								switch (yy_input) {
-									case 10 :
-										yy_state = 40;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 26 :
-								switch (yy_input) {
-									case 22 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 41;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 29 :
-								switch (yy_input) {
-									case 10 :
-										yy_state = 40;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 32 :
-								switch (yy_input) {
-									case 5 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 42;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 33 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-										yy_state = 33;
-										break yy_forNext;
-									case 10 :
-										yy_state = 34;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 34 :
-								switch (yy_input) {
-									case 11 :
-										yy_state = 35;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 35 :
-								switch (yy_input) {
-									case 12 :
-										yy_state = 43;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 37 :
-								switch (yy_input) {
-									case 17 :
-										yy_state = 44;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 38 :
-								switch (yy_input) {
-									case 6 :
-									case 9 :
-										yy_isFinal = true;
-										yy_state = 16;
-										break yy_forNext;
-									case 7 :
-										yy_state = 38;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 15;
-										break yy_forNext;
-								}
-
-							case 40 :
-								switch (yy_input) {
-									case 24 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 21;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 43 :
-								switch (yy_input) {
-									case 13 :
-										yy_state = 45;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 44 :
-								switch (yy_input) {
-									case 18 :
-										yy_state = 46;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 45 :
-								switch (yy_input) {
-									case 14 :
-										yy_state = 47;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 46 :
-								switch (yy_input) {
-									case 19 :
-										yy_state = 48;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 47 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-										yy_isFinal = true;
-										yy_state = 49;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 48 :
-								switch (yy_input) {
-									case 20 :
-										yy_state = 50;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 49 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-										yy_isFinal = true;
-										yy_state = 49;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 50 :
-								switch (yy_input) {
-									case 16 :
-										yy_state = 51;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 51 :
-								switch (yy_input) {
-									case 21 :
-										yy_state = 52;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 52 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-										yy_state = 52;
-										break yy_forNext;
-									case 8 :
-										yy_isFinal = true;
-										yy_state = 53;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 53 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-										yy_isFinal = true;
-										yy_state = 53;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							default :
-								yy_ScanError(YY_ILLEGAL_STATE);
-								break;
-						}
-					}
-
-					if (yy_isFinal) {
-						yy_action = yy_state;
-						yy_markedPos = yy_currentPos;
-						if (yy_noLookAhead)
-							break yy_forAction;
-					}
-
-				}
-			}
-
-
-			switch (yy_action) {
-
-				case 25 : {
-					popState();
-					valueText = string.toString();
-					return EncodingParserConstants.StringValue;
-				}
-				case 55 :
-					break;
-				case 21 : {
-					yypushback(1);
-					popState();
-					valueText = string.toString();
-					return EncodingParserConstants.InvalidTerminatedStringValue;
-				}
-				case 56 :
-					break;
-				case 15 :
-				case 16 : {
-					yypushback(1);
-					yybegin(UnDelimitedString);
-					string.setLength(0);
-				}
-				case 57 :
-					break;
-				case 28 :
-				case 29 : {
-					yypushback(1);
-					popState();
-					valueText = string.toString();
-					return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;
-				}
-				case 58 :
-					break;
-				case 39 : {
-					yypushback(2);
-					popState();
-					valueText = string.toString();
-					return EncodingParserConstants.InvalidTerminatedStringValue;
-				}
-				case 59 :
-					break;
-				case 41 : {
-					yypushback(2);
-					popState();
-					valueText = string.toString();
-					return EncodingParserConstants.InvalidTerminatedStringValue;
-				}
-				case 60 :
-					break;
-				case 7 :
-				case 8 :
-				case 9 :
-				case 10 :
-				case 11 :
-				case 12 :
-				case 13 :
-				case 14 :
-				case 17 : {
-					if (yychar > MAX_TO_SCAN) {
-						hasMore = false;
-						return EncodingParserConstants.MAX_CHARS_REACHED;
-					}
-				}
-				case 61 :
-					break;
-				case 30 : {
-					if (yychar == 0) {
-						hasMore = false;
-						return EncodingParserConstants.UTF16BE;
-					}
-				}
-				case 62 :
-					break;
-				case 31 : {
-					if (yychar == 0) {
-						hasMore = false;
-						return EncodingParserConstants.UTF16LE;
-					}
-				}
-				case 63 :
-					break;
-				case 42 : {
-					if (yychar == 0) {
-						hasMore = false;
-						return EncodingParserConstants.UTF83ByteBOM;
-					}
-				}
-				case 64 :
-					break;
-				case 49 : {
-					if (yychar == 0) {
-						yybegin(ST_XMLDecl);
-						return XMLHeadTokenizerConstants.XMLDeclStart;
-					}
-				}
-				case 65 :
-					break;
-				case 36 : {
-					yybegin(YYINITIAL);
-					hasMore = false;
-					return XMLHeadTokenizerConstants.XMLDeclEnd;
-				}
-				case 66 :
-					break;
-				case 53 : {
-					pushCurrentState();
-					yybegin(QuotedAttributeValue);
-					return XMLHeadTokenizerConstants.XMLDelEncoding;
-				}
-				case 67 :
-					break;
-				case 23 : {
-					popState();
-					valueText = string.toString();
-					return EncodingParserConstants.StringValue;
-				}
-				case 68 :
-					break;
-				case 20 :
-				case 22 :
-				case 24 :
-				case 26 : {
-					string.append(yytext());
-				}
-				case 69 :
-					break;
-				case 19 : {
-					yybegin(SQ_STRING);
-					string.setLength(0);
-				}
-				case 70 :
-					break;
-				case 18 : {
-					yybegin(DQ_STRING);
-					string.setLength(0);
-				}
-				case 71 :
-					break;
-				case 27 : {
-					yypushback(1);
-					popState();
-					valueText = string.toString();
-					return EncodingParserConstants.UnDelimitedStringValue;
-				}
-				case 72 :
-					break;
-				default :
-					if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
-						yy_atEOF = true;
-						yy_do_eof();
-						{
-							hasMore = false;
-							return EncodingParserConstants.EOF;
-						}
-					} else {
-						yy_ScanError(YY_NO_MATCH);
-					}
-			}
-		}
-	}
-
-	/**
-	 * Runs the scanner on input files.
-	 * 
-	 * This main method is the debugging routine for the scanner. It prints
-	 * each returned token to System.out until the end of file is reached, or
-	 * an error occured.
-	 * 
-	 * @param argv
-	 *            the command line, contains the filenames to run the scanner
-	 *            on.
-	 */
-	public static void main(String argv[]) {
-		for (int i = 0; i < argv.length; i++) {
-			XMLHeadTokenizer scanner = null;
-			try {
-				scanner = new XMLHeadTokenizer(new java.io.FileReader(argv[i]));
-			} catch (java.io.FileNotFoundException e) {
-				System.out.println("File not found : \"" + argv[i] + "\"");
-				System.exit(1);
-			}
-			//			catch (java.io.IOException e) {
-			//				System.out.println("Error opening file \"" + argv[i] + "\"");
-			//				System.exit(1);
-			//			}
-			catch (ArrayIndexOutOfBoundsException e) {
-				System.out.println("Usage : java XMLHeadTokenizer <inputfile>");
-				System.exit(1);
-			}
-
-			try {
-				do {
-					System.out.println(scanner.primGetNextToken());
-				} while (!scanner.yy_atEOF);
-
-			} catch (java.io.IOException e) {
-				System.out.println("An I/O error occured while scanning :");
-				System.out.println(e);
-				System.exit(1);
-			} catch (Exception e) {
-				e.printStackTrace();
-				System.exit(1);
-			}
-		}
-	}
-
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/contenttype/XMLHeadTokenizerConstants.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/contenttype/XMLHeadTokenizerConstants.java
deleted file mode 100644
index 77d81e2..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/contenttype/XMLHeadTokenizerConstants.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.contenttype;
-
-import org.eclipse.wst.common.encoding.EncodingParserConstants;
-;
-
-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";
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/contenttype/XMLResourceEncodingDetector.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/contenttype/XMLResourceEncodingDetector.java
deleted file mode 100644
index 0d9d0c7..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/contenttype/XMLResourceEncodingDetector.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.contenttype;
-
-import java.io.IOException;
-
-import org.eclipse.wst.common.encoding.AbstractResourceEncodingDetector;
-import org.eclipse.wst.common.encoding.EncodingMemento;
-import org.eclipse.wst.common.encoding.EncodingParserConstants;
-import org.eclipse.wst.common.encoding.IResourceCharsetDetector;
-import org.eclipse.wst.xml.core.internal.contenttype.HeadParserToken;
-
-
-public class XMLResourceEncodingDetector extends AbstractResourceEncodingDetector implements IResourceCharsetDetector {
-	private XMLHeadTokenizer fTokenizer;
-
-	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) {
-			canHandleAsUnicodeStream = true;
-			String enc = "UTF-16BE"; //$NON-NLS-1$
-			createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES);
-		} else if (tokenType == EncodingParserConstants.UTF16LE) {
-			canHandleAsUnicodeStream = true;
-			String enc = "UTF-16"; //$NON-NLS-1$
-			createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES);
-		}
-		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();
-			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());
-
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/DocumentLoaderForXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/DocumentLoaderForXML.java
deleted file mode 100644
index 0561e4c..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/DocumentLoaderForXML.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.document;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.io.UnsupportedEncodingException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.wst.common.encoding.CodedReaderCreator;
-import org.eclipse.wst.common.encoding.EncodingMemento;
-import org.eclipse.wst.common.encoding.EncodingRule;
-import org.eclipse.wst.sse.core.document.IDocumentCharsetDetector;
-import org.eclipse.wst.sse.core.document.IDocumentLoader;
-import org.eclipse.wst.sse.core.document.IDocumentLoaderForFileBuffers;
-import org.eclipse.wst.sse.core.document.IEncodedDocument;
-import org.eclipse.wst.sse.core.document.StructuredDocumentLoader;
-import org.eclipse.wst.xml.core.encoding.XMLDocumentCharsetDetector;
-import org.eclipse.wst.xml.core.internal.filebuffers.DocumentFactoryForXML;
-import org.eclipse.wst.xml.core.text.rules.StructuredTextPartitionerForXML;
-
-
-
-public class DocumentLoaderForXML extends StructuredDocumentLoader implements IDocumentLoader, IDocumentLoaderForFileBuffers {
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.document.IDocumentLoader#createNewStructuredDocument()
-	 */
-	public IEncodedDocument createNewStructuredDocument() {
-		DocumentFactoryForXML factory = new DocumentFactoryForXML();
-		IEncodedDocument document = (IEncodedDocument) factory.createDocument();
-		return document;
-	}
-
-	public IEncodedDocument createNewStructuredDocument(Reader reader) throws UnsupportedEncodingException, IOException {
-		IEncodedDocument structuredDocument = createNewStructuredDocument();
-		StringBuffer allText = readInputStream(reader);
-		structuredDocument.set(allText.toString());
-		return structuredDocument;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.document.IDocumentLoader#createNewStructuredDocument(java.lang.String,
-	 *      java.io.InputStream)
-	 */
-	public IEncodedDocument createNewStructuredDocument(String filename, InputStream inputStream) throws IOException {
-		return createNewStructuredDocument(filename, inputStream, EncodingRule.CONTENT_BASED);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.document.IDocumentLoader#createNewStructuredDocument(java.lang.String,
-	 *      java.io.InputStream, com.ibm.encoding.resource.EncodingRule)
-	 */
-	public IEncodedDocument createNewStructuredDocument(String filename, InputStream inputStream, EncodingRule encodingRule) throws IOException {
-		if (filename == null && inputStream == null) {
-			throw new IllegalArgumentException("can not have both null filename and inputstream"); //$NON-NLS-1$
-		}
-		CodedReaderCreator codedReaderCreator = new CodedReaderCreator();
-		Reader fullPreparedReader = null;
-		IEncodedDocument structuredDocument = createNewStructuredDocument();
-		try {
-			codedReaderCreator.set(filename, inputStream);
-			codedReaderCreator.setEncodingRule(encodingRule);
-			EncodingMemento encodingMemento = codedReaderCreator.getEncodingMemento();
-			fullPreparedReader = codedReaderCreator.getCodedReader();
-			structuredDocument.setEncodingMemento(encodingMemento);
-			StringBuffer allText = readInputStream(fullPreparedReader);
-			structuredDocument.set(allText.toString());
-		} catch (CoreException e) {
-			// impossible in this context
-			throw new Error(e);
-		} finally {
-			if (fullPreparedReader != null) {
-				fullPreparedReader.close();
-			}
-		}
-
-		return structuredDocument;
-	}
-
-
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.document.IDocumentLoader#getDefaultDocumentPartitioner()
-	 */
-	public IDocumentPartitioner getDefaultDocumentPartitioner() {
-		return new StructuredTextPartitionerForXML();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.document.IDocumentLoader#getDocumentEncodingDetector()
-	 */
-	public IDocumentCharsetDetector getDocumentEncodingDetector() {
-		return new XMLDocumentCharsetDetector();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.document.IDocumentLoader#handleLineDelimiter(java.lang.StringBuffer,
-	 *      org.eclipse.wst.sse.core.document.IEncodedDocument)
-	 */
-	public StringBuffer handleLineDelimiter(StringBuffer originalString, IEncodedDocument theStructuredDocument) {
-		// TODO Auto-generated method stub
-		return originalString;
-	}
-
-}
-
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/DocumentTypeAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/DocumentTypeAdapter.java
deleted file mode 100644
index 285ad87..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/DocumentTypeAdapter.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.document;
-
-
-
-import org.eclipse.wst.sse.core.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/document/InvalidCharacterException.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/InvalidCharacterException.java
deleted file mode 100644
index 612efd0..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/InvalidCharacterException.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.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/document/JSPTag.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/JSPTag.java
deleted file mode 100644
index b4398d9..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/JSPTag.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.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/document/TagAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/TagAdapter.java
deleted file mode 100644
index 1c7d0c4..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/TagAdapter.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.document;
-
-
-
-import org.eclipse.wst.sse.core.INodeAdapter;
-
-/**
- */
-public interface TagAdapter extends INodeAdapter {
-
-	/**
-	 */
-	String getEndTag(XMLElement element);
-
-	/**
-	 */
-	String getStartTag(XMLElement element);
-
-	/**
-	 */
-	boolean isEndTag();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLAttr.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLAttr.java
deleted file mode 100644
index 60b8041..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLAttr.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.document;
-
-
-
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.w3c.dom.Attr;
-
-
-/**
- */
-public interface XMLAttr extends XMLNode, Attr {
-
-	/**
-	 */
-	ITextRegion getEqualRegion();
-
-	/**
-	 * @return
-	 */
-	int getNameRegionEndOffset();
-
-	int getNameRegionStartOffset();
-
-	String getNameRegionText();
-
-	/**
-	 * @return
-	 */
-	int getNameRegionTextEndOffset();
-
-	int getValueRegionStartOffset();
-
-	String getValueRegionText();
-
-	/**
-	 * Check if Attr has JSP in value
-	 */
-	boolean hasJSPValue();
-
-	/**
-	 * Check if Attr has only name but not equal sign nor value
-	 */
-	boolean hasNameOnly();
-
-	/**
-	 */
-	boolean isGlobalAttr();
-
-	/**
-	 */
-	boolean isXMLAttr();
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLCharEntity.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLCharEntity.java
deleted file mode 100644
index d1984d9..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLCharEntity.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.document;
-
-
-
-/**
- * XML Namespace constants
- */
-public interface XMLCharEntity {
-	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/document/XMLDocument.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLDocument.java
deleted file mode 100644
index a461cab..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLDocument.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.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.ranges.DocumentRange;
-import org.w3c.dom.traversal.DocumentTraversal;
-
-/**
- * This interface enables creation of DOCTYPE declaration and some DOM Level 2
- * interfaces.
- */
-public interface XMLDocument extends XMLNode, Document, DocumentRange, DocumentTraversal {
-
-	/**
-	 * 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
-	 *             throwed if the element name is registered as comment
-	 *             element
-	 */
-	Element createCommentElement(String tagName, boolean isJSPTag) throws DOMException;
-
-	/**
-	 */
-	DocumentType createDoctype(String name);
-
-	/**
-	 */
-	String getDocumentTypeId();
-
-	/**
-	 */
-	boolean isJSPDocument();
-
-	/**
-	 */
-	boolean isJSPType();
-
-	/**
-	 */
-	boolean isXMLType();
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLDocumentType.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLDocumentType.java
deleted file mode 100644
index 082d4ff..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLDocumentType.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.document;
-
-
-
-import org.w3c.dom.DocumentType;
-
-/**
- * This interface enables setting of Public and System ID for DOCTYPE
- * declaration.
- */
-public interface XMLDocumentType extends XMLNode, DocumentType {
-
-	/**
-	 */
-	void setPublicId(String publicId);
-
-	/**
-	 */
-	void setSystemId(String systemId);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLElement.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLElement.java
deleted file mode 100644
index b983975..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLElement.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.document;
-
-
-
-import org.w3c.dom.Element;
-
-/**
- */
-public interface XMLElement extends XMLNode, Element {
-
-	/**
-	 * @deprecated this should probably not be public, but already implemented
-	 */
-	int getEndStartOffset();
-
-	/**
-	 */
-	String getEndTagName();
-
-	/**
-	 * @deprecated this should probably not be public, but already implemented
-	 *  
-	 */
-	int getStartEndOffset();
-
-	/**
-	 */
-	boolean hasEndTag();
-
-	/**
-	 */
-	boolean hasStartTag();
-
-	/**
-	 */
-	boolean isCommentTag();
-
-	/**
-	 * isEmptyTag method
-	 * 
-	 * @return boolean
-	 */
-	boolean isEmptyTag();
-
-	/**
-	 */
-	boolean isEndTag();
-
-	/**
-	 * Returns true for "global tag" (basically, without prefix)
-	 */
-	boolean isGlobalTag();
-
-	/**
-	 * Returns true for no the start and the end tags
-	 */
-	boolean isImplicitTag();
-
-	/**
-	 * isJSPTag method
-	 * 
-	 * @return boolean
-	 */
-	boolean isJSPTag();
-
-	/**
-	 */
-	boolean isStartTagClosed();
-
-	/**
-	 */
-	boolean isXMLTag();
-
-	/**
-	 * @deprecated this should probably not be public, but already implemented
-	 */
-	void notifyEndTagChanged();
-
-	/**
-	 * @deprecated this should probably not be public, but already implemented
-	 */
-	void notifyStartTagChanged();
-
-	/**
-	 */
-	void setCommentTag(boolean isCommentTag);
-
-	/**
-	 */
-	void setEmptyTag(boolean isEmptyTag);
-
-	/**
-	 */
-	void setJSPTag(boolean isJSPTag);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLGenerator.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLGenerator.java
deleted file mode 100644
index 5b9321b..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLGenerator.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.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;
-
-public interface XMLGenerator {
-
-	/**
-	 */
-	String generateAttrName(Attr attr);
-
-	/**
-	 */
-	String generateAttrValue(Attr attr);
-
-	/**
-	 */
-	String generateAttrValue(Attr attr, char quote);
-
-	/**
-	 */
-	String generateAttrValue(String value, char quote);
-
-	/**
-	 * generateCDATASection method
-	 * 
-	 * @return java.lang.String
-	 * @param comment
-	 *            org.w3c.dom.CDATASection
-	 */
-	String generateCDATASection(CDATASection cdata);
-
-	/**
-	 * generateChild method
-	 * 
-	 * @return java.lang.String
-	 * @param org.w3c.dom.Node
-	 */
-	String generateChild(Node parentNode);
-
-	/**
-	 */
-	String generateCloseTag(Node node);
-
-	/**
-	 * generateComment method
-	 * 
-	 * @return java.lang.String
-	 * @param comment
-	 *            org.w3c.dom.Comment
-	 */
-	String generateComment(Comment comment);
-
-	/**
-	 * generateDoctype method
-	 * 
-	 * @return java.lang.String
-	 * @param docType
-	 *            org.w3c.dom.DocumentType
-	 */
-	String generateDoctype(DocumentType docType);
-
-	/**
-	 * generateElement method
-	 * 
-	 * @return java.lang.String
-	 * @param element
-	 *            Element
-	 */
-	String generateElement(Element element);
-
-	/**
-	 * generateEndTag method
-	 * 
-	 * @return java.lang.String
-	 * @param element
-	 *            org.w3c.dom.Element
-	 */
-	String generateEndTag(Element element);
-
-	/**
-	 * generateEntityRef method
-	 * 
-	 * @return java.lang.String
-	 * @param entityRef
-	 *            org.w3c.dom.EntityReference
-	 */
-	String generateEntityRef(EntityReference entityRef);
-
-	/**
-	 * generatePI method
-	 * 
-	 * @return java.lang.String
-	 * @param pi
-	 *            org.w3c.dom.ProcessingInstruction
-	 */
-	String generatePI(ProcessingInstruction pi);
-
-	/**
-	 * generateSource method
-	 * 
-	 * @return java.lang.String
-	 * @param node
-	 *            org.w3c.dom.Node
-	 */
-	String generateSource(Node node);
-
-	/**
-	 * generateStartTag method
-	 * 
-	 * @return java.lang.String
-	 * @param element
-	 *            Element
-	 */
-	String generateStartTag(Element element);
-
-	/**
-	 */
-	String generateTagName(Element element);
-
-	/**
-	 * generateText method
-	 * 
-	 * @return java.lang.String
-	 * @param text
-	 *            org.w3c.dom.Text
-	 */
-	String generateText(Text text);
-
-	/**
-	 */
-	String generateTextData(Text text, String data);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLModel.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLModel.java
deleted file mode 100644
index f95cff4..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLModel.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.document;
-
-import org.eclipse.wst.sse.core.IStructuredModel;
-
-
-
-/**
- */
-public interface XMLModel extends IStructuredModel {
-
-	XMLDocument getDocument();
-
-	/**
-	 */
-	XMLGenerator getGenerator();
-
-	/**
-	 */
-	XMLModelNotifier getModelNotifier();
-
-	/**
-	 */
-	void setModelNotifier(XMLModelNotifier notifier);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLModelNotifier.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLModelNotifier.java
deleted file mode 100644
index 1cee885..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLModelNotifier.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.document;
-
-
-
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-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);
-
-	/**
-	 */
-	void beginChanging();
-
-	/**
-	 */
-	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);
-
-	/**
-	 */
-	void editableChanged(Node node);
-
-	/**
-	 */
-	void endChanging();
-
-	/**
-	 */
-	void endTagChanged(Element element);
-
-	/**
-	 */
-	boolean hasChanged();
-
-	/**
-	 */
-	boolean isChanging();
-
-	/**
-	 */
-	void propertyChanged(Node node);
-
-	/**
-	 */
-	void startTagChanged(Element element);
-
-	/**
-	 */
-	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/document/XMLNamespace.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLNamespace.java
deleted file mode 100644
index 04188a6..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLNamespace.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.document;
-
-
-
-/**
- * XML Namespace constants
- */
-public interface XMLNamespace {
-
-	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/document/XMLNode.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLNode.java
deleted file mode 100644
index b200581..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLNode.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.document;
-
-
-
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-/**
- * A interface to make concept clearer, just to denote the combination of
- * three other interfaces.
- *  
- */
-public interface XMLNode extends org.eclipse.wst.sse.core.IndexedRegion, org.eclipse.wst.sse.core.INodeNotifier, org.w3c.dom.Node {
-
-	/**
-	 * 
-	 * @return com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	IStructuredDocumentRegion getEndStructuredDocumentRegion();
-
-	/**
-	 */
-	IStructuredDocumentRegion getFirstStructuredDocumentRegion();
-
-	/**
-	 */
-	IStructuredDocumentRegion getLastStructuredDocumentRegion();
-
-	/**
-	 */
-	XMLModel getModel();
-
-	/**
-	 */
-	ITextRegion getNameRegion();
-
-	/**
-	 */
-	String getSource();
-
-	/**
-	 * 
-	 * @return com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	IStructuredDocumentRegion getStartStructuredDocumentRegion();
-
-	/**
-	 * 
-	 * @return com.ibm.sed.structuredDocument.IStructuredDocument
-	 */
-	IStructuredDocument getStructuredDocument();
-
-	/**
-	 */
-	ITextRegion getValueRegion();
-
-	/**
-	 */
-	String getValueSource();
-
-	/**
-	 * 
-	 * @return boolean Whether children of the element can be appended or
-	 *         removed.
-	 */
-	boolean isChildEditable();
-
-	/**
-	 */
-	boolean isClosed();
-
-	/**
-	 * isContainer method
-	 * 
-	 * @return boolean
-	 */
-	boolean isContainer();
-
-	/**
-	 */
-	boolean isDataEditable();
-
-	/**
-	 */
-	void setChildEditable(boolean editable);
-
-	/**
-	 */
-	void setDataEditable(boolean editable);
-
-	/**
-	 * faster approach to set
-	 */
-	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);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLText.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLText.java
deleted file mode 100644
index fe80a06..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/document/XMLText.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.document;
-
-
-
-import org.w3c.dom.Text;
-
-/**
- */
-public interface XMLText extends XMLNode, Text {
-
-	/**
-	 * Appends the content of the text node
-	 */
-	void appendText(Text text);
-
-	/**
-	 * Inserts the content of the text node at the specified position
-	 */
-	void insertText(Text text, int offset);
-
-	/**
-	 */
-	boolean isInvalid();
-
-	/**
-	 */
-	boolean isWhitespace();
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/encoding/XMLDocumentCharsetDetector.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/encoding/XMLDocumentCharsetDetector.java
deleted file mode 100644
index bdde4b2..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/encoding/XMLDocumentCharsetDetector.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.encoding;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.sse.core.document.DocumentReader;
-import org.eclipse.wst.sse.core.document.IDocumentCharsetDetector;
-import org.eclipse.wst.xml.core.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/encoding/XMLDocumentLoader.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/encoding/XMLDocumentLoader.java
deleted file mode 100644
index a87b340..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/encoding/XMLDocumentLoader.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.encoding;
-
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.wst.common.encoding.ContentTypeEncodingPreferences;
-import org.eclipse.wst.common.encoding.content.IContentTypeIdentifier;
-import org.eclipse.wst.sse.core.document.AbstractDocumentLoader;
-import org.eclipse.wst.sse.core.document.IDocumentCharsetDetector;
-import org.eclipse.wst.sse.core.document.IDocumentLoader;
-import org.eclipse.wst.sse.core.document.IEncodedDocument;
-import org.eclipse.wst.sse.core.document.StructuredDocumentFactory;
-import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument;
-import org.eclipse.wst.sse.core.parser.RegionParser;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.xml.core.internal.parser.XMLSourceParser;
-import org.eclipse.wst.xml.core.internal.parser.XMLStructuredDocumentReParser;
-import org.eclipse.wst.xml.core.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() {
-		return ContentTypeEncodingPreferences.getPreferredNewLineDelimiter(IContentTypeIdentifier.ContentTypeID_SSEXML);
-	}
-
-	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/format/CommentNodeFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/CommentNodeFormatter.java
deleted file mode 100644
index f962f15..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/CommentNodeFormatter.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.format;
-
-import org.eclipse.wst.sse.core.format.IStructuredFormatContraints;
-import org.eclipse.wst.sse.core.util.StringUtils;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.w3c.dom.Node;
-
-
-public class CommentNodeFormatter extends NodeFormatter {
-
-	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(XMLNode 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/format/DocumentNodeFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/DocumentNodeFormatter.java
deleted file mode 100644
index ee671a9..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/DocumentNodeFormatter.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.format;
-
-import org.eclipse.wst.sse.core.format.IStructuredFormatContraints;
-import org.eclipse.wst.sse.core.format.IStructuredFormatter;
-import org.eclipse.wst.xml.core.document.XMLNode;
-
-
-public class DocumentNodeFormatter extends NodeFormatter {
-	protected void formatChildren(XMLNode 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();
-
-			XMLNode nextChild = (XMLNode) node.getFirstChild();
-			while (nextChild != null) {
-				XMLNode eachChildNode = nextChild;
-				nextChild = (XMLNode) eachChildNode.getNextSibling();
-				IStructuredFormatter formatter = getFormatter(eachChildNode);
-				IStructuredFormatContraints childFormatContraints = formatter.getFormatContraints();
-				String childIndent = lineIndent + singleIndent;
-				childFormatContraints.setCurrentIndent(childIndent);
-				childFormatContraints.setClearAllBlankLines(formatContraints.getClearAllBlankLines());
-
-				// format each child
-				formatter.format(eachChildNode, childFormatContraints);
-
-				if (nextChild != null && nextChild.getParentNode() == null)
-					// nextNode is deleted during format
-					nextChild = (XMLNode) eachChildNode.getNextSibling();
-			}
-		}
-	}
-
-	protected void formatNode(XMLNode node, IStructuredFormatContraints formatContraints) {
-		if (node != null)
-			formatChildren(node, formatContraints);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/ElementNodeFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/ElementNodeFormatter.java
deleted file mode 100644
index ad5e83f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/ElementNodeFormatter.java
+++ /dev/null
@@ -1,354 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.format;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.wst.common.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.common.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException;
-import org.eclipse.wst.sse.core.format.IStructuredFormatContraints;
-import org.eclipse.wst.sse.core.modelquery.ModelQueryAdapter;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-import org.eclipse.wst.sse.core.util.StringUtils;
-import org.eclipse.wst.xml.core.document.XMLDocument;
-import org.eclipse.wst.xml.core.document.XMLGenerator;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xml.core.internal.document.AttrImpl;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-
-public class ElementNodeFormatter extends DocumentNodeFormatter {
-	static protected final char DOUBLE_QUOTE = '"';//$NON-NLS-1$
-	static protected final String DOUBLE_QUOTES = "\"\"";//$NON-NLS-1$
-	static protected final char EQUAL_CHAR = '='; // equal sign$NON-NLS-1$
-	static protected final String PRESERVE = "preserve";//$NON-NLS-1$
-	static protected final String PRESERVE_QUOTED = "\"preserve\"";//$NON-NLS-1$
-	static protected final char SINGLE_QUOTE = '\'';//$NON-NLS-1$
-	static protected final String XML_SPACE = "xml:space";//$NON-NLS-1$
-
-	protected void formatEndTag(XMLNode node, IStructuredFormatContraints formatContraints) {
-		if (!isEndTagMissing(node)) {
-			// end tag exists
-
-			IStructuredDocument structuredDocument = node.getModel().getStructuredDocument();
-			String lineDelimiter = structuredDocument.getLineDelimiter();
-			String nodeIndentation = getNodeIndent(node);
-			XMLNode lastChild = (XMLNode) node.getLastChild();
-			if (lastChild != null && lastChild.getNodeType() != Node.TEXT_NODE) {
-				if (isEndTagMissing(lastChild)) {
-					// find deepest child
-					XMLNode deepestChild = (XMLNode) lastChild.getLastChild();
-					while (deepestChild != null && deepestChild.getLastChild() != null && isEndTagMissing(deepestChild)) {
-						lastChild = deepestChild;
-						deepestChild = (XMLNode) 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)) {
-				// 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(XMLNode node, IStructuredFormatContraints formatContraints) {
-		if (node != null) {
-			// format indentation before node
-			formatIndentationBeforeNode(node, formatContraints);
-
-			// format start tag
-			XMLNode newNode = node;
-			int startTagStartOffset = node.getStartOffset();
-			XMLModel structuredModel = node.getModel();
-
-			formatStartTag(node, formatContraints);
-			// save new node
-			newNode = (XMLNode) 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() != XMLRegionContext.XML_EMPTY_TAG_CLOSE) {
-					// format children
-					formatChildren(newNode, formatContraints);
-
-					// save new node
-					newNode = (XMLNode) structuredModel.getIndexedRegion(startTagStartOffset);
-
-					// format end tag
-					formatEndTag(newNode, formatContraints);
-				}
-			}
-
-			// format indentation after node
-			formatIndentationAfterNode(newNode, formatContraints);
-		}
-	}
-
-	/**
-	 * This method formats the start tag name, and formats the attributes if
-	 * available.
-	 */
-	protected void formatStartTag(XMLNode node, IStructuredFormatContraints formatContraints) {
-		String singleIndent = getFormatPreferences().getIndent();
-		String lineIndent = formatContraints.getCurrentIndent();
-		String attrIndent = lineIndent + singleIndent;
-		boolean splitMultiAttrs = ((IStructuredFormatPreferencesXML) fFormatPreferences).getSplitMultiAttrs();
-		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 = getFormatPreferences().getLineWidth() - usedWidth;
-			} catch (BadLocationException exception) {
-				throw new SourceEditingRuntimeException(exception);
-			}
-
-			StringBuffer stringBuffer = new StringBuffer();
-			String lineDelimiter = node.getModel().getStructuredDocument().getLineDelimiter();
-			int attrLength = attributes.getLength();
-			int lastUndefinedRegionOffset = 0;
-			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) {
-						ModelQueryAdapter adapter = (ModelQueryAdapter) ((XMLDocument) node.getOwnerDocument()).getAdapterFor(ModelQueryAdapter.class);
-						CMElementDeclaration elementDeclaration = (CMElementDeclaration) adapter.getModelQuery().getCMNode(node);
-						if (elementDeclaration == null)
-							// CMElementDeclaration not found, default to
-							// PRESERVE
-							formatContraints.setClearAllBlankLines(false);
-						else {
-							CMAttributeDeclaration attributeDeclaration = (CMAttributeDeclaration) elementDeclaration.getAttributes().getNamedItem(XML_SPACE);
-							if (attributeDeclaration == null)
-								// CMAttributeDeclaration not found, default
-								// to PRESERVE
-								formatContraints.setClearAllBlankLines(false);
-							else {
-								String defaultValue = attributeDeclaration.getAttrType().getImpliedValue();
-
-								if (defaultValue.compareTo(PRESERVE) == 0)
-									formatContraints.setClearAllBlankLines(false);
-								else
-									formatContraints.setClearAllBlankLines(getFormatPreferences().getClearAllBlankLines());
-							}
-						}
-					} else {
-						XMLGenerator 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.setClearAllBlankLines(false);
-						else
-							formatContraints.setClearAllBlankLines(getFormatPreferences().getClearAllBlankLines());
-					}
-				}
-
-				if (splitMultiAttrs && attrLength > 1) {
-					stringBuffer.append(lineDelimiter + attrIndent);
-					stringBuffer.append(flatNode.getText(nameRegion));
-					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() != XMLRegionContext.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);
-							currentAvailableLineWidth = getFormatPreferences().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);
-							currentAvailableLineWidth = getFormatPreferences().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);
-
-			XMLModel 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() == XMLRegionContext.XML_END_TAG_OPEN)
-					// skip formatting for end tags in this format: </tagName>
-					return;
-				else {
-					if (lastRegion.getType() == XMLRegionContext.XML_TAG_CLOSE || lastRegion.getType() == XMLRegionContext.XML_EMPTY_TAG_CLOSE)
-						length = length - lastRegion.getLength();
-
-					if (lastRegion.getType() == XMLRegionContext.XML_EMPTY_TAG_CLOSE)
-						// leave space before XML_EMPTY_TAG_CLOSE: <tagName />
-						stringBuffer.append(SPACE_CHAR);
-				}
-			}
-
-			replace(structuredDocument, offset, length, stringBuffer.toString());
-		}
-	}
-
-	protected String getUndefinedRegions(XMLNode 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(XMLRegionContext.UNDEFINED) == 0 && regionStartOffset >= startOffset && regionStartOffset < startOffset + length)
-				result = result + flatNode.getFullText(region);
-		}
-
-		if (result.length() > 0)
-			return SPACE + result.trim();
-		else
-			return result;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/FormatProcessorXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/FormatProcessorXML.java
deleted file mode 100644
index 292bde5..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/FormatProcessorXML.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.format;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.sse.core.format.AbstractStructuredFormatProcessor;
-import org.eclipse.wst.sse.core.format.IStructuredFormatPreferences;
-import org.eclipse.wst.sse.core.format.IStructuredFormatter;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.eclipse.wst.sse.core.preferences.CommonModelPreferenceNames;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.document.CDATASectionImpl;
-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(CommonModelPreferenceNames.LINE_WIDTH));
-				((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS));
-				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES));
-
-				if (preferences.getBoolean(CommonModelPreferenceNames.INDENT_USING_TABS))
-					fFormatPreferences.setIndent("\t"); //$NON-NLS-1$
-				else {
-					int tabWidth = SSECorePlugin.getDefault().getPluginPreferences().getInt(CommonModelPreferenceNames.TAB_WIDTH);
-					String indent = ""; //$NON-NLS-1$
-					for (int i = 0; i < tabWidth; i++) {
-						indent += " "; //$NON-NLS-1$
-					}
-					fFormatPreferences.setIndent(indent);
-				}
-			}
-		}
-
-		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 : {
-				if (node instanceof CDATASectionImpl)
-					formatter = new NodeFormatter();
-				else
-					formatter = new TextNodeFormatter();
-				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;
-			}
-			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/format/IStructuredFormatPreferencesXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/IStructuredFormatPreferencesXML.java
deleted file mode 100644
index bc3facc..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/IStructuredFormatPreferencesXML.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.format;
-
-import org.eclipse.wst.sse.core.format.IStructuredFormatPreferences;
-
-public interface IStructuredFormatPreferencesXML extends IStructuredFormatPreferences {
-	boolean getSplitMultiAttrs();
-
-	void setSplitMultiAttrs(boolean splitMultiAttrs);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/NodeFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/NodeFormatter.java
deleted file mode 100644
index 73d7afc..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/NodeFormatter.java
+++ /dev/null
@@ -1,765 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.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.exceptions.SourceEditingRuntimeException;
-import org.eclipse.wst.sse.core.format.IStructuredFormatContraints;
-import org.eclipse.wst.sse.core.format.IStructuredFormatPreferences;
-import org.eclipse.wst.sse.core.format.IStructuredFormatter;
-import org.eclipse.wst.sse.core.format.StructuredFormatContraints;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.eclipse.wst.sse.core.internal.parser.ContextRegion;
-import org.eclipse.wst.sse.core.preferences.CommonModelPreferenceNames;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-import org.eclipse.wst.sse.core.util.StringUtils;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.document.CDATASectionImpl;
-import org.eclipse.wst.xml.core.internal.parser.regions.TagNameRegion;
-import org.eclipse.wst.xml.core.jsp.model.parser.temp.XMLJSPRegionContexts;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-import org.w3c.dom.Node;
-
-public class NodeFormatter implements IStructuredFormatter {
-	static protected final String CR = "\r"; //$NON-NLS-1$
-	static protected final String CRLF = "\r\n"; //$NON-NLS-1$
-	static protected final String DELIMITERS = " \t\n\r\f"; //$NON-NLS-1$
-	static protected final String EMPTY_STRING = ""; //$NON-NLS-1$
-	static protected final String FF = "\f"; //$NON-NLS-1$
-	static protected final String LF = "\n"; //$NON-NLS-1$
-	static protected final String SPACE = " "; //$NON-NLS-1$
-	static protected final char SPACE_CHAR = ' '; //$NON-NLS-1$
-	static protected final String TAB = "\t"; //$NON-NLS-1$
-	static protected final char TAB_CHAR = '\t'; //$NON-NLS-1$
-	protected IStructuredFormatContraints fFormatContraints = null;
-	protected IStructuredFormatPreferences fFormatPreferences = null;
-	protected IProgressMonitor fProgressMonitor = null;
-
-	protected String compressSpaces(String string, IStructuredFormatContraints formatContraints) {
-		/*
-		 * Note that the StructuredTextEditor supports mixed new line
-		 * characters (CR, LF, CRLF) in one file. We have to handle that when
-		 * we try to preserve blank lines.
-		 */
-		String[] stringArray = null;
-		boolean clearAllBlankLines = formatContraints.getClearAllBlankLines();
-
-		if (clearAllBlankLines)
-			stringArray = StringUtils.asArray(string);
-		else
-			stringArray = StringUtils.asArray(string, DELIMITERS, true);
-
-		StringBuffer compressedString = new StringBuffer();
-		if (stringArray.length > 0) {
-			boolean cr = false, lf = false, cr2 = false, nonSpace = true;
-
-			if (stringArray[0].compareTo(CR) == 0)
-				cr = true;
-			else if (stringArray[0].compareTo(LF) == 0)
-				lf = true;
-			else if ((stringArray[0].compareTo(SPACE) != 0) && (stringArray[0].compareTo(TAB) != 0) && (stringArray[0].compareTo(FF) != 0)) {
-				compressedString.append(stringArray[0]);
-				nonSpace = true;
-			}
-
-			for (int i = 1; i < stringArray.length; i++) {
-				if (stringArray[i].compareTo(CR) == 0) {
-					if (cr && lf) {
-						if (nonSpace) {
-							compressedString.append(CR + LF);
-							nonSpace = false;
-						}
-						compressedString.append(stringArray[i]);
-						cr2 = true;
-					} else if (cr) {
-						if (nonSpace) {
-							compressedString.append(CR);
-							nonSpace = false;
-						}
-						compressedString.append(stringArray[i]);
-						cr2 = true;
-					} else
-						cr = true;
-				} else if (stringArray[i].compareTo(LF) == 0) {
-					if (cr && lf && cr2) {
-						compressedString.append(stringArray[i]);
-					} else if (lf) {
-						if (nonSpace) {
-							compressedString.append(LF);
-							nonSpace = false;
-						}
-						compressedString.append(stringArray[i]);
-					} else
-						lf = true;
-				} else if ((stringArray[i].compareTo(SPACE) != 0) && (stringArray[i].compareTo(TAB) != 0) && (stringArray[i].compareTo(FF) != 0)) {
-					if (compressedString.length() > 0)
-						compressedString.append(SPACE);
-					compressedString.append(stringArray[i]);
-
-					cr = false;
-					lf = false;
-					cr2 = false;
-					nonSpace = true;
-				}
-			}
-		}
-
-		return compressedString.toString();
-	}
-
-	protected boolean firstStructuredDocumentRegionContainsLineDelimiters(XMLNode node) {
-		boolean result = false;
-
-		if (node != null) {
-			IStructuredDocumentRegion firstStructuredDocumentRegion = node.getFirstStructuredDocumentRegion();
-			if (firstStructuredDocumentRegion != null && firstStructuredDocumentRegion.getText() != 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 XMLNode)
-			formatNode((XMLNode) node, formatContraints);
-	}
-
-	protected void formatIndentationAfterNode(XMLNode node, IStructuredFormatContraints formatContraints) {
-		if (node != null) {
-			XMLNode nextSibling = (XMLNode) node.getNextSibling();
-			IStructuredDocument doc = node.getModel().getStructuredDocument();
-			int line = doc.getLineOfOffset(node.getEndOffset());
-			String lineDelimiter = doc.getLineDelimiter();
-			try {
-				lineDelimiter = doc.getLineDelimiter(line);
-				if (lineDelimiter == null)
-					lineDelimiter = ""; //$NON-NLS-1$
-			} catch (BadLocationException exception) {
-				throw new SourceEditingRuntimeException(exception);
-			}
-
-			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 {
-					XMLNode indentNode = getParentIndentNode(node);
-					String lineIndent = getNodeIndent(indentNode);
-					XMLNode 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 {
-							// append indentation
-							insertAfterNode(lastChild, lineDelimiter + lineIndent);
-						}
-					}
-				}
-			}
-		}
-	}
-
-	protected void formatIndentationBeforeNode(XMLNode node, IStructuredFormatContraints formatContraints) {
-		if (node != null) {
-			XMLNode previousSibling = (XMLNode) node.getPreviousSibling();
-			IStructuredDocument doc = node.getModel().getStructuredDocument();
-			int line = doc.getLineOfOffset(node.getStartOffset());
-			String lineDelimiter = doc.getLineDelimiter();
-			try {
-				if (line > 0) {
-					lineDelimiter = doc.getLineDelimiter(line - 1);
-					if (lineDelimiter == null)
-						lineDelimiter = ""; //$NON-NLS-1$
-				}
-			} catch (BadLocationException exception) {
-				throw new SourceEditingRuntimeException(exception);
-			}
-			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);
-							}
-						}
-					}
-				}
-			}
-		}
-	}
-
-	protected void formatNode(XMLNode 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(XMLNode node, IStructuredFormatContraints formatContraints) {
-		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)) {
-			XMLNode nextSibling = (XMLNode) 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 String getCompressedNodeText(XMLNode node, IStructuredFormatContraints formatContraints) {
-		return compressSpaces(getNodeText(node), formatContraints);
-	}
-
-	protected XMLNode getDeepestChildNode(XMLNode node) {
-		XMLNode result = null;
-		XMLNode lastChild = (XMLNode) 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(CommonModelPreferenceNames.LINE_WIDTH));
-				((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS));
-				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES));
-
-				if (preferences.getBoolean(CommonModelPreferenceNames.INDENT_USING_TABS))
-					fFormatPreferences.setIndent("\t"); //$NON-NLS-1$
-				else {
-					int tabWidth = SSECorePlugin.getDefault().getPluginPreferences().getInt(CommonModelPreferenceNames.TAB_WIDTH);
-					String indent = ""; //$NON-NLS-1$
-					for (int i = 0; i < tabWidth; i++) {
-						indent += " "; //$NON-NLS-1$
-					}
-					fFormatPreferences.setIndent(indent);
-				}
-			}
-		}
-
-		return fFormatPreferences;
-	}
-
-	protected IStructuredFormatter getFormatter(XMLNode 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 : {
-				if (node instanceof CDATASectionImpl)
-					formatter = new NodeFormatter();
-				else
-					formatter = new TextNodeFormatter();
-				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;
-			}
-			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)) {
-			XMLNode siblingTextNode = (XMLNode) 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(XMLNode node) {
-		return node.getNodeName();
-	}
-
-	protected String getNodeText(XMLNode node) {
-		String text = null;
-
-		if ((node instanceof org.eclipse.wst.xml.core.internal.document.CharacterDataImpl) && !(node instanceof org.eclipse.wst.xml.core.internal.document.CommentImpl) && !(node instanceof org.eclipse.wst.xml.core.internal.document.CDATASectionImpl) && !isJSPTag(node))
-			text = ((org.eclipse.wst.xml.core.internal.document.CharacterDataImpl) node).getSource();
-		else
-			text = node.getFirstStructuredDocumentRegion().getText();
-
-		return text;
-	}
-
-	protected XMLNode getParentIndentNode(XMLNode node) {
-		XMLNode result = null;
-		XMLNode parentNode = (XMLNode) node.getParentNode();
-
-		if (parentNode.getNodeType() == Node.DOCUMENT_NODE)
-			result = parentNode;
-		else {
-			ITextRegion region = parentNode.getLastStructuredDocumentRegion().getFirstRegion();
-			if (region.getType() == XMLRegionContext.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
-			XMLNode sibling = (XMLNode) 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 = (XMLNode) sibling.getPreviousSibling();
-			}
-			if (sibling == null) {
-				sibling = (XMLNode) node.getNextSibling();
-				while ((sibling != null) && (sibling.getNodeType() == Node.TEXT_NODE))
-					sibling = (XMLNode) 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(XMLNode node, String string) {
-		XMLModel 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(XMLNode node, String string) {
-		XMLModel 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(XMLNode 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() != XMLRegionContext.XML_END_TAG_OPEN && (startTagRegions.get(startTagRegions.size() - 1).getType()) != XMLRegionContext.XML_EMPTY_TAG_CLOSE)
-				// end tag missing
-				result = true;
-		}
-
-		return result;
-	}
-
-	protected boolean isJSPTag(XMLNode node) {
-		boolean result = false;
-
-		IStructuredDocumentRegion flatNode = 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.
-		// (html adapter in this case).
-		if (flatNode != null) {
-			String flatNodeType = flatNode.getType();
-			if ((flatNodeType == XMLJSPRegionContexts.JSP_CONTENT) || (flatNodeType == XMLJSPRegionContexts.JSP_EXPRESSION_OPEN) || (flatNodeType == XMLJSPRegionContexts.JSP_SCRIPTLET_OPEN) || (flatNodeType == XMLJSPRegionContexts.JSP_DECLARATION_OPEN) || (flatNodeType == XMLJSPRegionContexts.JSP_DIRECTIVE_CLOSE) || (flatNodeType == XMLJSPRegionContexts.JSP_DIRECTIVE_NAME) || (flatNodeType == XMLJSPRegionContexts.JSP_DIRECTIVE_OPEN) || (flatNodeType == XMLJSPRegionContexts.JSP_CLOSE)) {
-				result = true;
-			}
-		}
-
-		return result;
-	}
-
-	protected boolean nodeHasSiblings(XMLNode node) {
-		return (node.getPreviousSibling() != null) || (node.getNextSibling() != null);
-	}
-
-	/**
-	 * Node changed. No format should be performed automatically.
-	 */
-	public void notifyChanged(org.eclipse.wst.sse.core.INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-	}
-
-	protected void removeRegionSpaces(XMLNode node, IStructuredDocumentRegion flatNode, ITextRegion region) {
-		if ((region != null) && (region instanceof ContextRegion || region instanceof TagNameRegion) && (flatNode.getEndOffset(region) > flatNode.getTextEndOffset(region))) {
-			XMLModel 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 exception) {
-			throw new SourceEditingRuntimeException(exception);
-		}
-	}
-
-	/**
-	 * 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(XMLNode node, String string) {
-		XMLModel 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 exception) {
-			throw new SourceEditingRuntimeException(exception);
-		}
-	}
-
-	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;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/StructuredFormatPreferencesXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/StructuredFormatPreferencesXML.java
deleted file mode 100644
index 079ae41..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/StructuredFormatPreferencesXML.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.format;
-
-import org.eclipse.wst.sse.core.format.StructuredFormatPreferences;
-
-public class StructuredFormatPreferencesXML extends StructuredFormatPreferences implements IStructuredFormatPreferencesXML {
-	private boolean fSplitMultiAttrs;
-
-	public boolean getSplitMultiAttrs() {
-		return fSplitMultiAttrs;
-	}
-
-	public void setSplitMultiAttrs(boolean splitMultiAttrs) {
-		fSplitMultiAttrs = splitMultiAttrs;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/TextNodeFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/TextNodeFormatter.java
deleted file mode 100644
index 9bc4fe1..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/format/TextNodeFormatter.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.format;
-
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException;
-import org.eclipse.wst.sse.core.format.IStructuredFormatContraints;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.util.StringUtils;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.w3c.dom.Node;
-
-
-public class TextNodeFormatter extends NodeFormatter {
-	protected void formatNode(XMLNode node, IStructuredFormatContraints formatContraints) {
-		if (node != null) {
-			IStructuredDocument doc = node.getModel().getStructuredDocument();
-			int line = doc.getLineOfOffset(node.getStartOffset());
-			String lineDelimiter = doc.getLineDelimiter();
-			try {
-				lineDelimiter = doc.getLineDelimiter(line);
-				if (lineDelimiter == null)
-					lineDelimiter = ""; //$NON-NLS-1$
-			} catch (BadLocationException exception) {
-				throw new SourceEditingRuntimeException(exception);
-			}
-			int lineWidth = getFormatPreferences().getLineWidth();
-			XMLNode parentNode = (XMLNode) node.getParentNode();
-			String nodeIndentation = formatContraints.getCurrentIndent();
-
-			// compute current available line width
-			int currentAvailableLineWidth = 0;
-			try {
-				int nodeNameOffset = node.getStartOffset();
-				int lineOffset = node.getStructuredDocument().getLineInformationOfOffset(nodeNameOffset).getOffset();
-				String text = node.getStructuredDocument().get(lineOffset, nodeNameOffset - lineOffset);
-				int usedWidth = getIndentationLength(text);
-				currentAvailableLineWidth = getFormatPreferences().getLineWidth() - usedWidth;
-			} catch (BadLocationException exception) {
-				throw new SourceEditingRuntimeException(exception);
-			}
-
-			String compressedText = getCompressedNodeText(node, formatContraints);
-
-			if (((compressedText.length() <= (currentAvailableLineWidth - node.getParentNode().getNodeName().length() - 3) && !StringUtils.containsLineDelimiter(compressedText)) && (!nodeHasSiblings(node) || (!StringUtils.containsLineDelimiter(node.getNodeValue()) && node.getNextSibling() != null && node.getNextSibling().getNodeType() == Node.COMMENT_NODE && !StringUtils.containsLineDelimiter(node.getNextSibling().getNodeValue()))) && !firstStructuredDocumentRegionContainsLineDelimiters((XMLNode) node.getParentNode())) || node.getStartStructuredDocumentRegion().getStartOffset() == 0) {
-				// enough space
-				// and text has no line delimiters
-				// and (node has no siblings or followed by inline comment)
-				// and
-				// parentFirstStructuredDocumentRegionContainsLineDelimiters
-
-				if (isEndTagMissing(parentNode)) {
-					parentNode = (XMLNode) parentNode.getParentNode();
-					while (isEndTagMissing(parentNode))
-						parentNode = (XMLNode) parentNode.getParentNode();
-
-					// add parent's indentation to end
-					nodeIndentation = getNodeIndent(parentNode);
-
-					if (!compressedText.endsWith(lineDelimiter + nodeIndentation)) {
-						compressedText = StringUtils.appendIfNotEndWith(compressedText, lineDelimiter);
-						compressedText = StringUtils.appendIfNotEndWith(compressedText, nodeIndentation);
-					}
-				}
-
-				if ((parentNode != null) && (parentNode.getNodeType() == Node.DOCUMENT_NODE) && (node.getNodeValue().length() > 0) && (node.getNodeValue().trim().length() == 0) && ((node.getPreviousSibling() == null) || (node.getNextSibling() == null)))
-					// delete spaces at the beginning or end of the document
-					compressedText = EMPTY_STRING;
-
-				replaceNodeValue(node, compressedText);
-			} else {
-				// not enough space, need to reflow text
-
-				currentAvailableLineWidth = lineWidth - getIndentationLength(nodeIndentation);
-				List vector = reflowText(compressedText, currentAvailableLineWidth);
-				int vectorSize = vector.size();
-				String reflowedText = new String();
-
-				for (int i = 0; i < vectorSize; i++) {
-					if (((String) vector.get(i)).trim().length() > 0)
-						reflowedText = reflowedText + lineDelimiter + nodeIndentation + (String) vector.get(i);
-					else
-						reflowedText = reflowedText + lineDelimiter;
-				}
-
-				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
-
-						if (node.getNextSibling().getNodeType() == Node.COMMENT_NODE) {
-							// add indentation to end if
-							// currentTextEndsWithLineDelimiter
-							// or followed by multiLineComment
-
-							String nodeText = getNodeText(node);
-							int indexOfLastLineDelimiter = StringUtils.indexOfLastLineDelimiter(nodeText);
-							boolean currentTextEndsWithLineDelimiter = indexOfLastLineDelimiter != -1;
-							if (currentTextEndsWithLineDelimiter) {
-								// no more non blank character after the last
-								// line delimiter
-								currentTextEndsWithLineDelimiter = StringUtils.indexOfNonblank(nodeText, indexOfLastLineDelimiter) == -1;
-							}
-
-							String nodeValue = node.getNextSibling().getNodeValue();
-							boolean multiLineComment = StringUtils.containsLineDelimiter(nodeValue);
-
-							if (currentTextEndsWithLineDelimiter || multiLineComment) {
-								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);
-			}
-
-		}
-	}
-
-	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;
-	}
-}
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 4275c50..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/DebugAdapterFactory.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal;
-
-import java.util.ArrayList;
-
-import org.eclipse.wst.sse.core.AbstractAdapterFactory;
-import org.eclipse.wst.sse.core.AdapterFactory;
-import org.eclipse.wst.sse.core.INodeAdapter;
-import org.eclipse.wst.sse.core.INodeNotifier;
-import org.eclipse.wst.sse.core.PropagatingAdapterFactory;
-
-
-public class DebugAdapterFactory extends AbstractAdapterFactory implements PropagatingAdapterFactory {
-
-	/**
-	 * Constructor for PageDirectiveWatcherFactory.
-	 */
-	public DebugAdapterFactory() {
-		this(IDebugAdapter.class, true);
-	}
-
-	/**
-	 * Constructor for PageDirectiveWatcherFactory.
-	 * 
-	 * @param adapterKey
-	 * @param registerAdapters
-	 */
-	public DebugAdapterFactory(Object adapterKey, boolean registerAdapters) {
-		super(adapterKey, registerAdapters);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.PropagatingAdapterFactory#addContributedFactories(org.eclipse.wst.sse.core.AdapterFactory)
-	 */
-	public void addContributedFactories(AdapterFactory factory) {
-		//none expected
-	}
-
-	public AdapterFactory copy() {
-		return new DebugAdapterFactory(this.adapterKey, this.shouldRegisterAdapter);
-	}
-
-	protected INodeAdapter createAdapter(INodeNotifier target) {
-		EveryNodeDebugAdapter result = null;
-		result = EveryNodeDebugAdapter.getInstance();
-		return result;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.AdapterFactory#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 dc23897..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/EveryNodeDebugAdapter.java
+++ /dev/null
@@ -1,274 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.IModelStateListener;
-import org.eclipse.wst.sse.core.INodeNotifier;
-import org.eclipse.wst.sse.core.IStructuredModel;
-import org.eclipse.wst.sse.core.events.AboutToBeChangeEvent;
-import org.eclipse.wst.sse.core.events.IModelAboutToBeChangedListener;
-import org.eclipse.wst.sse.core.events.IStructuredDocumentListener;
-import org.eclipse.wst.sse.core.events.NewDocumentEvent;
-import org.eclipse.wst.sse.core.events.NoChangeEvent;
-import org.eclipse.wst.sse.core.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.events.RegionsReplacedEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentRegionsReplacedEvent;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.util.Debug;
-import org.eclipse.wst.xml.core.document.XMLNode;
-
-
-/**
- * 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$
-		}
-
-	}
-
-	static class InternalStructuredDocumentAboutToChange implements IModelAboutToBeChangedListener {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.core.events.IModelAboutToBeChangedListener#modelAboutToBeChanged(org.eclipse.wst.sse.core.events.AboutToBeChangeEvent)
-		 */
-		public void modelAboutToBeChanged(AboutToBeChangeEvent 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 XMLNode) {
-			setModel(((XMLNode) 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 50b9025..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.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 47770a0..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.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/XMLCorePlugin.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePlugin.java
deleted file mode 100644
index 57992c1..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePlugin.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.common.encoding.CommonEncodingPreferenceNames;
-import org.eclipse.wst.sse.core.preferences.CommonModelPreferenceNames;
-
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class XMLCorePlugin extends Plugin {
-	//The shared instance.
-	private static XMLCorePlugin plugin;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-	private static final String KEY_PREFIX = "%"; //$NON-NLS-1$
-	private static final String KEY_DOUBLE_PREFIX = "%%"; //$NON-NLS-1$	
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static XMLCorePlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * @deprecated use ResourcesPlugin.getWorkspace();
-	 */
-	public static IWorkspace getWorkspace() {
-		return ResourcesPlugin.getWorkspace();
-	}
-
-	/**
-	 * The constructor.
-	 */
-	public XMLCorePlugin() {
-		super();
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.Plugin#initializeDefaultPluginPreferences()
-	 */
-	protected void initializeDefaultPluginPreferences() {
-		Preferences prefs = getDefault().getPluginPreferences();
-		// set model preference defaults
-		prefs.setDefault(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE, CommonModelPreferenceNames.ASIS);
-		prefs.setDefault(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE, CommonModelPreferenceNames.ASIS);
-		prefs.setDefault(CommonModelPreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS, true);
-		prefs.setDefault(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS, true);
-		prefs.setDefault(CommonModelPreferenceNames.INSERT_MISSING_TAGS, true);
-		prefs.setDefault(CommonModelPreferenceNames.QUOTE_ATTR_VALUES, true);
-		prefs.setDefault(CommonModelPreferenceNames.FORMAT_SOURCE, true);
-		prefs.setDefault(CommonModelPreferenceNames.CONVERT_EOL_CODES, false);
-
-		prefs.setDefault(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$
-		prefs.setDefault(CommonEncodingPreferenceNames.OUTPUT_CODESET, CommonModelPreferenceNames.UTF_8);
-		prefs.setDefault(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$
-
-		prefs.setDefault(CommonModelPreferenceNames.TAB_WIDTH, 4);
-
-		prefs.setDefault(CommonModelPreferenceNames.FORMATTING_SUPPORTED, true);
-		prefs.setDefault(CommonModelPreferenceNames.LINE_WIDTH, 72);
-		prefs.setDefault(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS, false);
-		prefs.setDefault(CommonModelPreferenceNames.INDENT_USING_TABS, true);
-		prefs.setDefault(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES, false);
-
-		prefs.setDefault(CommonModelPreferenceNames.PREFERRED_MARKUP_CASE_SUPPORTED, false);
-		prefs.setDefault(CommonModelPreferenceNames.TAG_NAME_CASE, CommonModelPreferenceNames.LOWER);
-		prefs.setDefault(CommonModelPreferenceNames.ATTR_NAME_CASE, CommonModelPreferenceNames.LOWER);
-	}
-
-	/**
-	 * Returns the string from the plugin's resource bundle,
-	 * or 'key' if not found.
-	 */
-	public static String getResourceString(String value) {
-		String s = value.trim();
-		if (!s.startsWith(KEY_PREFIX, 0))
-			return s;
-		if (s.startsWith(KEY_DOUBLE_PREFIX, 0))
-			return s.substring(1);
-
-		int ix = s.indexOf(' ');
-		String key = ix == -1 ? s : s.substring(0, ix);
-
-		ResourceBundle bundle = getDefault().getResourceBundle();
-		try {
-			return (bundle != null) ? bundle.getString(key.substring(1)) : key;
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-
-	public static String getResourceString(String key, Object[] args) {
-
-		try {
-			return MessageFormat.format(getResourceString(key), args);
-		} catch (IllegalArgumentException e) {
-			return getResourceString(key);
-		}
-
-	}
-
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		try {
-			if (resourceBundle == null)
-				resourceBundle = ResourceBundle.getBundle("org.eclipse.wst.xml.core.internal.XMLCorePluginResources");
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-		return resourceBundle;
-	}
-}
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 49a18aa..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePluginResources.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-#     Jens Lukowski/Innoopract - initial renaming/restructuring
-#     
-###############################################################################
-Invalid_character_('<')_fo_ERROR_=Invalid character ('<') found
-Invalid_character_('>')_fo_ERROR_=Invalid character ('>') found
-Invalid_character_('&')_fo_ERROR_=Invalid character ('&') found
-Invalid_character_('__')_f_EXC_=Invalid character ('\"') found
-###############################################################################
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 e5f04fa..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/ByteReader.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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;
-
-/**
- * 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 {
-
-	/** Default byte buffer size (2048). */
-	public static final int DEFAULT_BUFFER_SIZE = 2048;
-
-	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[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/EncodingParserConstants.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/EncodingParserConstants.java
deleted file mode 100644
index 95c8417..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/EncodingParserConstants.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.contenttype;
-
-/**
- * @deprecated
- * Use the one from org.eclipse.wst.common.encoding
- */
-
-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$
-	String UTF16BE = "UTF16BE"; //$NON-NLS-1$
-	String UTF16LE = "UTF16LE"; //$NON-NLS-1$
-
-
-	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/XMLDeclDetector.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLDeclDetector.java
deleted file mode 100644
index 5843f61..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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 * 2;
-	private static final int MAX_MARK_SIZE = 1024 * 2;
-	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 b4a9b6e..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLHeadTokenizer.java
+++ /dev/null
@@ -1,1222 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-/* The following code was generated by JFlex 1.2.2 on 4/6/04 11:13 PM */
-
-/*nlsXXX*/
-package org.eclipse.wst.xml.core.internal.contenttype;
-
-import java.io.IOException;
-import java.io.Reader;
-
-
-
-/**
- * This class is a scanner generated by <a
- * href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex </a> 1.2.2
- * on 4/6/04 11:13 PM from the specification file
- * <tt>file:/D:/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.jflex</tt>
- */
-public class XMLHeadTokenizer {
-
-	/** this character denotes the end of file */
-	final public static int YYEOF = -1;
-
-	/** lexical states */
-	final public static int YYINITIAL = 0;
-	final public static int UnDelimitedString = 10;
-	final public static int DQ_STRING = 6;
-	final public static int SQ_STRING = 8;
-	final public static int ST_XMLDecl = 2;
-	final public static int QuotedAttributeValue = 4;
-
-	/**
-	 * 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};
-
-	/**
-	 * Translates characters to character classes
-	 */
-	final private static String yycmap_packed = "\11\0\1\6\1\7\2\0\1\11\22\0\1\6\1\0\1\27\2\0" + "\1\31\1\0\1\30\24\0\1\12\1\10\1\26\1\13\3\0\1\21" + "\1\23\1\17\1\0\1\25\1\0\1\24\2\0\1\16\1\15\1\20" + "\1\22\10\0\1\14\12\0\1\21\1\23\1\17\1\0\1\25\1\0" + "\1\24\2\0\1\16\1\15\1\20\1\22\10\0\1\14\102\0\1\4" + "\3\0\1\5\17\0\1\3\16\0\1\1\20\0\1\3\16\0\1\1" + "\1\2\170\0\1\2\ufe87\0";
-
-	/**
-	 * 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 */
-	 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
-	 */
-	 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 = 1000;
-	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 */
-		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 XMLHeadTokenizer(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 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[] 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 < 128) {
-			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;
-
-
-		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_forAction : {
-				while (true) {
-
-					yy_input = yy_advance();
-
-					if (yy_input == YYEOF)
-						break yy_forAction;
-
-					yy_input = yycmap[yy_input];
-
-					boolean yy_isFinal = false;
-					boolean yy_noLookAhead = false;
-
-					yy_forNext : {
-						switch (yy_state) {
-							case 0 :
-								switch (yy_input) {
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 7;
-										break yy_forNext;
-								}
-
-							case 1 :
-								switch (yy_input) {
-									case 1 :
-										yy_isFinal = true;
-										yy_state = 8;
-										break yy_forNext;
-									case 2 :
-										yy_isFinal = true;
-										yy_state = 9;
-										break yy_forNext;
-									case 3 :
-										yy_isFinal = true;
-										yy_state = 10;
-										break yy_forNext;
-									case 6 :
-									case 7 :
-									case 9 :
-										yy_isFinal = true;
-										yy_state = 11;
-										break yy_forNext;
-									case 10 :
-										yy_isFinal = true;
-										yy_state = 12;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 7;
-										break yy_forNext;
-								}
-
-							case 2 :
-								switch (yy_input) {
-									case 11 :
-										yy_isFinal = true;
-										yy_state = 13;
-										break yy_forNext;
-									case 15 :
-										yy_isFinal = true;
-										yy_state = 14;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 7;
-										break yy_forNext;
-								}
-
-							case 3 :
-								switch (yy_input) {
-									case 6 :
-									case 9 :
-										yy_isFinal = true;
-										yy_state = 16;
-										break yy_forNext;
-									case 7 :
-										yy_isFinal = true;
-										yy_state = 17;
-										break yy_forNext;
-									case 23 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 18;
-										break yy_forNext;
-									case 24 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 19;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 15;
-										break yy_forNext;
-								}
-
-							case 4 :
-								switch (yy_input) {
-									case 7 :
-									case 9 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 21;
-										break yy_forNext;
-									case 11 :
-										yy_isFinal = true;
-										yy_state = 22;
-										break yy_forNext;
-									case 23 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 23;
-										break yy_forNext;
-									case 24 :
-										yy_isFinal = true;
-										yy_state = 24;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 20;
-										break yy_forNext;
-								}
-
-							case 5 :
-								switch (yy_input) {
-									case 7 :
-									case 9 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 21;
-										break yy_forNext;
-									case 24 :
-										yy_isFinal = true;
-										yy_state = 25;
-										break yy_forNext;
-									case 25 :
-										yy_isFinal = true;
-										yy_state = 26;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 20;
-										break yy_forNext;
-								}
-
-							case 6 :
-								switch (yy_input) {
-									case 11 :
-										yy_isFinal = true;
-										yy_state = 26;
-										break yy_forNext;
-									case 6 :
-									case 7 :
-									case 9 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 27;
-										break yy_forNext;
-									case 23 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 28;
-										break yy_forNext;
-									case 24 :
-										yy_isFinal = true;
-										yy_state = 29;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 20;
-										break yy_forNext;
-								}
-
-							case 8 :
-								switch (yy_input) {
-									case 2 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 30;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 9 :
-								switch (yy_input) {
-									case 1 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 31;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 10 :
-								switch (yy_input) {
-									case 4 :
-										yy_state = 32;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 11 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-										yy_state = 33;
-										break yy_forNext;
-									case 10 :
-										yy_state = 34;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 12 :
-								switch (yy_input) {
-									case 11 :
-										yy_state = 35;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 13 :
-								switch (yy_input) {
-									case 22 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 36;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 14 :
-								switch (yy_input) {
-									case 16 :
-										yy_state = 37;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 16 :
-								switch (yy_input) {
-									case 6 :
-									case 9 :
-										yy_isFinal = true;
-										yy_state = 16;
-										break yy_forNext;
-									case 7 :
-										yy_state = 38;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 15;
-										break yy_forNext;
-								}
-
-							case 17 :
-								switch (yy_input) {
-									case 6 :
-									case 9 :
-										yy_isFinal = true;
-										yy_state = 16;
-										break yy_forNext;
-									case 7 :
-										yy_state = 38;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 15;
-										break yy_forNext;
-								}
-
-							case 22 :
-								switch (yy_input) {
-									case 22 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 39;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 24 :
-								switch (yy_input) {
-									case 10 :
-										yy_state = 40;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 25 :
-								switch (yy_input) {
-									case 10 :
-										yy_state = 40;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 26 :
-								switch (yy_input) {
-									case 22 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 41;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 29 :
-								switch (yy_input) {
-									case 10 :
-										yy_state = 40;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 32 :
-								switch (yy_input) {
-									case 5 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 42;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 33 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-										yy_state = 33;
-										break yy_forNext;
-									case 10 :
-										yy_state = 34;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 34 :
-								switch (yy_input) {
-									case 11 :
-										yy_state = 35;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 35 :
-								switch (yy_input) {
-									case 12 :
-										yy_state = 43;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 37 :
-								switch (yy_input) {
-									case 17 :
-										yy_state = 44;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 38 :
-								switch (yy_input) {
-									case 6 :
-									case 9 :
-										yy_isFinal = true;
-										yy_state = 16;
-										break yy_forNext;
-									case 7 :
-										yy_state = 38;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 15;
-										break yy_forNext;
-								}
-
-							case 40 :
-								switch (yy_input) {
-									case 24 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 21;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 43 :
-								switch (yy_input) {
-									case 13 :
-										yy_state = 45;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 44 :
-								switch (yy_input) {
-									case 18 :
-										yy_state = 46;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 45 :
-								switch (yy_input) {
-									case 14 :
-										yy_state = 47;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 46 :
-								switch (yy_input) {
-									case 19 :
-										yy_state = 48;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 47 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-										yy_isFinal = true;
-										yy_state = 49;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 48 :
-								switch (yy_input) {
-									case 20 :
-										yy_state = 50;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 49 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-										yy_isFinal = true;
-										yy_state = 49;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 50 :
-								switch (yy_input) {
-									case 16 :
-										yy_state = 51;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 51 :
-								switch (yy_input) {
-									case 21 :
-										yy_state = 52;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 52 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-										yy_state = 52;
-										break yy_forNext;
-									case 8 :
-										yy_isFinal = true;
-										yy_state = 53;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							case 53 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-										yy_isFinal = true;
-										yy_state = 53;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
-
-							default :
-								yy_ScanError(YY_ILLEGAL_STATE);
-								break;
-						}
-					}
-
-					if (yy_isFinal) {
-						yy_action = yy_state;
-						yy_markedPos = yy_currentPos;
-						if (yy_noLookAhead)
-							break yy_forAction;
-					}
-
-				}
-			}
-
-
-			switch (yy_action) {
-
-				case 25 : {
-					popState();
-					valueText = string.toString();
-					return EncodingParserConstants.StringValue;
-				}
-				case 55 :
-					break;
-				case 21 : {
-					yypushback(1);
-					popState();
-					valueText = string.toString();
-					return EncodingParserConstants.InvalidTerminatedStringValue;
-				}
-				case 56 :
-					break;
-				case 15 :
-				case 16 : {
-					yypushback(1);
-					yybegin(UnDelimitedString);
-					string.setLength(0);
-				}
-				case 57 :
-					break;
-				case 28 :
-				case 29 : {
-					yypushback(1);
-					popState();
-					valueText = string.toString();
-					return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;
-				}
-				case 58 :
-					break;
-				case 39 : {
-					yypushback(2);
-					popState();
-					valueText = string.toString();
-					return EncodingParserConstants.InvalidTerminatedStringValue;
-				}
-				case 59 :
-					break;
-				case 41 : {
-					yypushback(2);
-					popState();
-					valueText = string.toString();
-					return EncodingParserConstants.InvalidTerminatedStringValue;
-				}
-				case 60 :
-					break;
-				case 7 :
-				case 8 :
-				case 9 :
-				case 10 :
-				case 11 :
-				case 12 :
-				case 13 :
-				case 14 :
-				case 17 : {
-					if (yychar > MAX_TO_SCAN) {
-						hasMore = false;
-						return EncodingParserConstants.MAX_CHARS_REACHED;
-					}
-				}
-				case 61 :
-					break;
-				case 30 : {
-					if (yychar == 0) {
-						hasMore = false;
-						return EncodingParserConstants.UTF16BE;
-					}
-				}
-				case 62 :
-					break;
-				case 31 : {
-					if (yychar == 0) {
-						hasMore = false;
-						return EncodingParserConstants.UTF16LE;
-					}
-				}
-				case 63 :
-					break;
-				case 42 : {
-					if (yychar == 0) {
-						hasMore = false;
-						return EncodingParserConstants.UTF83ByteBOM;
-					}
-				}
-				case 64 :
-					break;
-				case 49 : {
-					if (yychar == 0) {
-						yybegin(ST_XMLDecl);
-						return XMLHeadTokenizerConstants.XMLDeclStart;
-					}
-				}
-				case 65 :
-					break;
-				case 36 : {
-					yybegin(YYINITIAL);
-					hasMore = false;
-					return XMLHeadTokenizerConstants.XMLDeclEnd;
-				}
-				case 66 :
-					break;
-				case 53 : {
-					pushCurrentState();
-					yybegin(QuotedAttributeValue);
-					return XMLHeadTokenizerConstants.XMLDelEncoding;
-				}
-				case 67 :
-					break;
-				case 23 : {
-					popState();
-					valueText = string.toString();
-					return EncodingParserConstants.StringValue;
-				}
-				case 68 :
-					break;
-				case 20 :
-				case 22 :
-				case 24 :
-				case 26 : {
-					string.append(yytext());
-				}
-				case 69 :
-					break;
-				case 19 : {
-					yybegin(SQ_STRING);
-					string.setLength(0);
-				}
-				case 70 :
-					break;
-				case 18 : {
-					yybegin(DQ_STRING);
-					string.setLength(0);
-				}
-				case 71 :
-					break;
-				case 27 : {
-					yypushback(1);
-					popState();
-					valueText = string.toString();
-					return EncodingParserConstants.UnDelimitedStringValue;
-				}
-				case 72 :
-					break;
-				default :
-					if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
-						yy_atEOF = true;
-						yy_do_eof();
-						{
-							hasMore = false;
-							return EncodingParserConstants.EOF;
-						}
-					} else {
-						yy_ScanError(YY_NO_MATCH);
-					}
-			}
-		}
-	}
-
-	/**
-	 * Runs the scanner on input files.
-	 * 
-	 * This main method is the debugging routine for the scanner. It prints
-	 * each returned token to System.out until the end of file is reached, or
-	 * an error occured.
-	 * 
-	 * @param argv
-	 *            the command line, contains the filenames to run the scanner
-	 *            on.
-	 */
-	public static void main(String argv[]) {
-		for (int i = 0; i < argv.length; i++) {
-			XMLHeadTokenizer scanner = null;
-			try {
-				scanner = new XMLHeadTokenizer(new java.io.FileReader(argv[i]));
-			} catch (java.io.FileNotFoundException e) {
-				System.out.println("File not found : \"" + argv[i] + "\"");
-				System.exit(1);
-			}
-			//			catch (java.io.IOException e) {
-			//				System.out.println("Error opening file \"" + argv[i] + "\"");
-			//				System.exit(1);
-			//			}
-			catch (ArrayIndexOutOfBoundsException e) {
-				System.out.println("Usage : java XMLHeadTokenizer <inputfile>");
-				System.exit(1);
-			}
-
-			try {
-				do {
-					System.out.println(scanner.primGetNextToken());
-				} while (!scanner.yy_atEOF);
-
-			} catch (java.io.IOException e) {
-				System.out.println("An I/O error occured while scanning :");
-				System.out.println(e);
-				System.exit(1);
-			} catch (Exception e) {
-				e.printStackTrace();
-				System.exit(1);
-			}
-		}
-	}
-
-
-}
diff --git a/bundles/org.eclipse.wst.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 3321348..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLHeadTokenizerConstants.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.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";
-}
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 959f512..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/AttrImpl.java
+++ /dev/null
@@ -1,756 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.Iterator;
-
-import org.eclipse.wst.common.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.common.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.common.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-import org.eclipse.wst.xml.core.document.XMLAttr;
-import org.eclipse.wst.xml.core.document.XMLCharEntity;
-import org.eclipse.wst.xml.core.document.XMLNamespace;
-import org.eclipse.wst.xml.core.jsp.model.parser.temp.XMLJSPRegionContexts;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-import org.w3c.dom.Attr;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-/**
- * AttrImpl class
- */
-public class AttrImpl extends NodeImpl implements XMLAttr {
-	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);
-		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();
-		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;
-	}
-
-	/**
-	 * getEqualRegion method
-	 * 
-	 * @return com.ibm.sed.structuredDocument.ITextRegion
-	 */
-	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;
-	}
-
-	/**
-	 * getNameRegion method
-	 * 
-	 * @return com.ibm.sed.structuredDocument.ITextRegion
-	 */
-	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(XMLNamespace.XMLNS)) {
-				// fixed URI
-				return XMLNamespace.XMLNS_URI;
-			}
-			nsAttrName = XMLNamespace.XMLNS_PREFIX + prefix;
-		} else {
-			String name = getName();
-			if (name != null && name.equals(XMLNamespace.XMLNS)) {
-				// fixed URI
-				return XMLNamespace.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() {
-		return true;
-	}
-
-	/**
-	 * 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();
-	}
-
-	/**
-	 * getValueRegion method
-	 * 
-	 * @return com.ibm.sed.structuredDocument.ITextRegion
-	 */
-	public ITextRegion getValueRegion() {
-		return this.valueRegion;
-	}
-
-	public int getValueRegionStartOffset() {
-		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.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(XMLCharEntity.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 hasJSPValue() {
-		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 == XMLRegionContext.XML_TAG_OPEN || regionType == XMLJSPRegionContexts.JSP_SCRIPTLET_OPEN || regionType == XMLJSPRegionContexts.JSP_EXPRESSION_OPEN || regionType == XMLJSPRegionContexts.JSP_DECLARATION_OPEN || regionType == XMLJSPRegionContexts.JSP_DIRECTIVE_OPEN)
-				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 (!ignoreCase())
-			return this.name.equals(name);
-		return this.name.equalsIgnoreCase(name);
-	}
-
-	/**
-	 * notifyValueChanged method
-	 */
-	protected void notifyNameChanged() {
-		if (this.ownerElement == null)
-			return;
-		DocumentImpl document = (DocumentImpl) this.ownerElement.getContainerDocument();
-		if (document == null)
-			return;
-		XMLModelImpl model = (XMLModelImpl) 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;
-		XMLModelImpl model = (XMLModelImpl) 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();
-	}
-
-	/**
-	 * setEqualRegion method
-	 * 
-	 * @param equalRegion
-	 *            com.ibm.sed.structuredDocument.ITextRegion
-	 */
-	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);
-		}
-	}
-
-	/**
-	 * setNameRegion method
-	 * 
-	 * @param nameRegion
-	 *            com.ibm.sed.structuredDocument.ITextRegion
-	 */
-	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();
-		}
-	}
-
-	/**
-	 * setValueRegion method
-	 * 
-	 * @param newValueRegion
-	 *            com.ibm.sed.structuredDocument.ITextRegion
-	 */
-	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();
-	}
-}
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 3954ca2..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CDATASectionImpl.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import java.util.Iterator;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-import org.w3c.dom.CDATASection;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Node;
-
-
-/**
- * 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);
-		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 == XMLRegionContext.XML_CDATA_OPEN || regionType == XMLRegionContext.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 == XMLRegionContext.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 44ecfab..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.common.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.common.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 4c4a2db..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CharacterDataImpl.java
+++ /dev/null
@@ -1,353 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.jsp.model.parser.temp.XMLJSPRegionContexts;
-import org.w3c.dom.CharacterData;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Node;
-
-
-/**
- * CharacterDataImpl class
- */
-public abstract class CharacterDataImpl extends NodeImpl implements XMLJSPRegionContexts, 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 2d8d257..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CommentImpl.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import java.util.Iterator;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-import org.eclipse.wst.xml.core.jsp.model.parser.temp.XMLJSPRegionContexts;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-import org.w3c.dom.Comment;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Node;
-
-
-/**
- * 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);
-		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 == XMLRegionContext.XML_COMMENT_OPEN || regionType == JSP_COMMENT_OPEN || regionType == XMLRegionContext.XML_COMMENT_CLOSE || regionType == JSP_COMMENT_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 "#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 == XMLRegionContext.XML_COMMENT_CLOSE || regionType == XMLJSPRegionContexts.JSP_COMMENT_CLOSE);
-	}
-
-	/**
-	 * isJSP method
-	 * 
-	 * @return boolean
-	 */
-	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/DocumentFragmentImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentFragmentImpl.java
deleted file mode 100644
index 06058a5..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentFragmentImpl.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.w3c.dom.DocumentFragment;
-import org.w3c.dom.Node;
-
-
-/**
- * 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);
-		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 f4ca2cc..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentImpl.java
+++ /dev/null
@@ -1,1073 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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;
-
-
-
-// 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.eclipse.wst.common.contentmodel.CMDocument;
-import org.eclipse.wst.common.contentmodel.CMEntityDeclaration;
-import org.eclipse.wst.common.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.common.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.common.encoding.content.IContentTypeIdentifier;
-import org.eclipse.wst.sse.core.modelhandler.IModelHandler;
-import org.eclipse.wst.xml.core.NameValidator;
-import org.eclipse.wst.xml.core.commentelement.impl.CommentElementRegistry;
-import org.eclipse.wst.xml.core.document.DocumentTypeAdapter;
-import org.eclipse.wst.xml.core.document.JSPTag;
-import org.eclipse.wst.xml.core.document.XMLCharEntity;
-import org.eclipse.wst.xml.core.document.XMLDocument;
-import org.eclipse.wst.xml.core.document.XMLElement;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.modelquery.ModelQueryUtil;
-import org.w3c.dom.Attr;
-import org.w3c.dom.CDATASection;
-import org.w3c.dom.Comment;
-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.ranges.Range;
-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 XMLDocument {
-
-	/**
-	 * 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 XMLModelImpl 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?
-	 * 
-	 * @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.
-	 * @since 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;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.model.xml.XMLDocument#createCommentElement(java.lang.String,
-	 *      boolean)
-	 */
-	public Element createCommentElement(String tagName, boolean isJSPTag) throws DOMException {
-		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)) {
-			return element;
-		} else {
-			throw new DOMException(DOMException.INVALID_CHARACTER_ERR, new String());
-		}
-	}
-
-	/**
-	 * 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 = new ElementImpl();
-		element.setOwnerDocument(this);
-		element.setTagName(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;
-	}
-
-	/**
-	 */
-	public TreeWalker createTreeWalker(Node root, int whatToShow, NodeFilter filter, boolean entityReferenceExpansion) {
-		// not suppoerted
-		return null;
-	}
-
-	private DocumentType findDoctype(Node node) {
-		for (Node child = node.getFirstChild(); child != null; child = child.getNextSibling()) {
-			if (child.getNodeType() == DOCUMENT_TYPE_NODE && child instanceof DocumentType) {
-				return (DocumentType) child;
-			} else if (child.getNodeType() == ELEMENT_NODE && ((XMLElement) 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) {
-		for (Node child = node.getFirstChild(); child != null; child = child.getNextSibling()) {
-			if (child.getNodeType() != ELEMENT_NODE)
-				continue;
-			ElementImpl element = (ElementImpl) child;
-			if (element.isCommentTag()) {
-				Element docElement = findDocumentElement(docName, element, firstFound);
-				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(XMLCharEntity.LT_NAME))
-			return XMLCharEntity.LT_VALUE;
-		if (name.equals(XMLCharEntity.GT_NAME))
-			return XMLCharEntity.GT_VALUE;
-		if (name.equals(XMLCharEntity.AMP_NAME))
-			return XMLCharEntity.AMP_VALUE;
-		if (name.equals(XMLCharEntity.QUOT_NAME))
-			return XMLCharEntity.QUOT_VALUE;
-		if (isXMLType()) {
-			if (name.equals(XMLCharEntity.APOS_NAME))
-				return XMLCharEntity.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);
-		if (docElement == null) {
-			docElement = first[0];
-		}
-
-		return docElement;
-	}
-
-	/**
-	 */
-	protected DocumentType getDocumentType() {
-		DocumentTypeAdapter adapter = getDocumentTypeAdapter();
-		if (adapter == null)
-			return getDoctype();
-		return adapter.getDocumentType();
-	}
-
-	/**
-	 */
-	protected DocumentTypeAdapter getDocumentTypeAdapter() {
-		if (this.documentTypeAdapter == null) {
-			this.documentTypeAdapter = (DocumentTypeAdapter) getAdapterFor(DocumentTypeAdapter.class);
-			if (this.documentTypeAdapter == null) {
-				// add default adapter
-				this.documentTypeAdapter = new DocumentTypeAdapterImpl(this);
-				addAdapter(this.documentTypeAdapter);
-			}
-		}
-		return this.documentTypeAdapter;
-	}
-
-	/**
-	 */
-	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.
-	 * 
-	 * @since 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 XMLModel 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.
-	 * 
-	 * @since 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.
-	 * 
-	 * @since 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.
-	 * 
-	 * @since DOM Level 3
-	 */
-	public String getVersion() {
-		return null;
-	}
-
-	/**
-	 */
-	protected boolean ignoreCase() {
-		DocumentTypeAdapter adapter = getDocumentTypeAdapter();
-		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;
-		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;
-		// TODO: -- avoid this semi hardcoded string
-		return id.equals(IContentTypeIdentifier.ContentTypeID_JSP);
-	}
-
-	/**
-	 */
-	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 = getDocumentTypeAdapter();
-		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.
-	 * 
-	 * @since DOM Level 3
-	 */
-	public void setEncoding(java.lang.String encoding) {
-	}
-
-	/**
-	 * setModel method
-	 * 
-	 * @param model
-	 *            XMLModel
-	 */
-
-	protected void setModel(XMLModel model) {
-		this.model = (XMLModelImpl) 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.
-	 * 
-	 * @since 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.
-	 * 
-	 * @since 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.
-	 * 
-	 * @since DOM Level 3
-	 */
-	public void setVersion(java.lang.String version) {
-	}
-}
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 8d63d99..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeAdapterImpl.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.eclipse.wst.sse.core.INodeNotifier;
-import org.eclipse.wst.xml.core.document.DocumentTypeAdapter;
-import org.eclipse.wst.xml.core.document.XMLDocument;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.w3c.dom.DocumentType;
-
-
-/**
- */
-public class DocumentTypeAdapterImpl implements DocumentTypeAdapter {
-
-	private XMLDocument document = null;
-	private DocumentType documentType = null;
-
-	/**
-	 */
-	protected DocumentTypeAdapterImpl() {
-		super();
-	}
-
-	/**
-	 */
-	protected DocumentTypeAdapterImpl(XMLDocument document) {
-		this.document = document;
-		if (document != null) {
-			this.documentType = document.getDoctype();
-		}
-	}
-
-	/**
-	 */
-	public int getAttrNameCase() {
-		return STRICT_CASE;
-	}
-
-	/**
-	 */
-	protected XMLDocument 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 XMLDocument))
-			return;
-		this.documentType = ((XMLDocument) notifier).getDoctype();
-	}
-
-	/**
-	 */
-	protected void notifyDocumentTypeChanged() {
-		if (this.document == null)
-			return;
-		XMLModel model = this.document.getModel();
-		if (model == null)
-			return;
-		((XMLModelImpl) 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 c8137da..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeImpl.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.document.XMLDocumentType;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-
-/**
- * DocumentType class
- */
-public class DocumentTypeImpl extends NodeImpl implements XMLDocumentType {
-	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);
-		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 == XMLRegionContext.XML_DOCTYPE_DECLARATION_CLOSE || regionType == XMLRegionContext.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 fd8d27a..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ElementImpl.java
+++ /dev/null
@@ -1,1421 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.Iterator;
-
-import org.eclipse.wst.common.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.common.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.sse.core.parser.RegionParser;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-import org.eclipse.wst.xml.core.commentelement.CommentElementAdapter;
-import org.eclipse.wst.xml.core.document.JSPTag;
-import org.eclipse.wst.xml.core.document.XMLElement;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.document.XMLNamespace;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xml.core.internal.parser.XMLSourceParser;
-import org.eclipse.wst.xml.core.jsp.model.parser.temp.XMLJSPRegionContexts;
-import org.eclipse.wst.xml.core.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-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.traversal.NodeFilter;
-import org.w3c.dom.traversal.NodeIterator;
-
-
-/**
- * ElementImpl class
- */
-public class ElementImpl extends NodeContainer implements XMLElement {
-
-	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);
-		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
-	 * 
-	 * @return com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	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 == XMLRegionContext.XML_TAG_NAME || regionType == XMLJSPRegionContexts.JSP_ROOT_TAG_NAME || regionType == XMLJSPRegionContexts.JSP_DIRECTIVE_NAME) {
-				return this.endStructuredDocumentRegion.getText(region);
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * getFirstStructuredDocumentRegion method
-	 * 
-	 * @return com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	public IStructuredDocumentRegion getFirstStructuredDocumentRegion() {
-		IStructuredDocumentRegion flatNode = getStructuredDocumentRegion();
-		if (flatNode != null)
-			return StructuredDocumentRegionUtil.getStructuredDocumentRegion(flatNode);
-		return StructuredDocumentRegionUtil.getStructuredDocumentRegion(this.endStructuredDocumentRegion);
-	}
-
-	/**
-	 * getLastStructuredDocumentRegion method
-	 * 
-	 * @return com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	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 = XMLNamespace.XMLNS_PREFIX + prefix;
-		} else {
-			nsAttrName = XMLNamespace.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
-	 * 
-	 * @return com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	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
-		XMLModel 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 (regionType == XMLJSPRegionContexts.JSP_COMMENT_CLOSE || regionType == XMLRegionContext.XML_COMMENT_CLOSE);
-		}
-		if (isJSPTag()) {
-			return (regionType == XMLJSPRegionContexts.JSP_CLOSE || regionType == XMLJSPRegionContexts.JSP_DIRECTIVE_CLOSE);
-		}
-		return (regionType == XMLRegionContext.XML_TAG_CLOSE || regionType == XMLRegionContext.XML_EMPTY_TAG_CLOSE || regionType == XMLRegionContext.XML_DECLARATION_CLOSE);
-	}
-
-	/**
-	 */
-	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 (regionType == XMLJSPRegionContexts.JSP_COMMENT_CLOSE || regionType == XMLRegionContext.XML_COMMENT_CLOSE);
-		}
-		if (isJSPTag()) {
-			if (isContainer())
-				return true; // start tag always has a single region
-			return (regionType == XMLJSPRegionContexts.JSP_DIRECTIVE_CLOSE);
-		}
-		return (regionType == XMLRegionContext.XML_TAG_CLOSE || regionType == XMLRegionContext.XML_EMPTY_TAG_CLOSE || regionType == XMLRegionContext.XML_DECLARATION_CLOSE);
-	}
-
-	/**
-	 */
-	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;
-		XMLModelImpl model = (XMLModelImpl) document.getModel();
-		if (model == null)
-			return;
-		model.attrReplaced(this, newAttr, oldAttr);
-	}
-
-	/**
-	 * notifyValueChanged method
-	 */
-	public void notifyEndTagChanged() {
-		DocumentImpl document = (DocumentImpl) getContainerDocument();
-		if (document == null)
-			return;
-		XMLModelImpl model = (XMLModelImpl) document.getModel();
-		if (model == null)
-			return;
-		model.endTagChanged(this);
-	}
-
-	/**
-	 */
-	public void notifyStartTagChanged() {
-		DocumentImpl document = (DocumentImpl) getContainerDocument();
-		if (document == null)
-			return;
-		XMLModelImpl model = (XMLModelImpl) 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;
-	}
-
-	/**
-	 */
-	public void setAttributeNS(String uri, String name, String value) throws DOMException {
-		if (name == null)
-			return;
-
-		if (!isDataEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		Attr attr = getAttributeNodeNS(uri, name);
-		if (attr != null) {
-			attr.setValue(value); // change value
-			return;
-		}
-
-		// new attribute
-		Document doc = getOwnerDocument();
-		if (doc == null)
-			return;
-		attr = doc.createAttributeNS(uri, name);
-		if (attr == null)
-			return;
-		attr.setValue(value);
-		appendAttributeNode(attr);
-	}
-
-	/**
-	 */
-	public void setCommentTag(boolean isCommentTag) {
-		XMLNode parent = (XMLNode) 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) {
-		XMLNode parent = (XMLNode) getParentNode();
-		if (parent != null && !parent.isChildEditable()) {
-			throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, new String());
-		}
-
-		this.isEmptyTag = isEmptyTag;
-	}
-
-	/**
-	 * setEndStructuredDocumentRegion method
-	 * 
-	 * @param flatNode
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	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) {
-		XMLNode parent = (XMLNode) 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 {
-		XMLNode parent = (XMLNode) 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
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	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();
-	}
-}
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 80e5d6f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/EntityImpl.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.Entity;
-import org.w3c.dom.Node;
-
-/**
- * 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);
-		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.
-	 * 
-	 * @since 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.
-	 * 
-	 * @since 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.
-	 * 
-	 * @since 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.
-	 * 
-	 * @since DOM Level 3
-	 */
-	public void setVersion(java.lang.String version) {
-	}
-}
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 366ecc0..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/EntityReferenceImpl.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.w3c.dom.EntityReference;
-import org.w3c.dom.Node;
-
-/**
- * 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);
-		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/ModelParserAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ModelParserAdapter.java
deleted file mode 100644
index 011079b..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.INodeAdapter;
-import org.eclipse.wst.xml.core.document.XMLElement;
-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(XMLElement 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 121d57c..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.document.XMLNode;
-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) {
-			XMLModelImpl model = (XMLModelImpl) 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);
-
-		XMLModelImpl model = (XMLModelImpl) 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((XMLNode) node);
-			}
-		} else {
-			for (node = getFirstChild(); node != null; node = node.getNextSibling()) {
-				roc.lockNode((XMLNode) 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 0ea5dde..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeImpl.java
+++ /dev/null
@@ -1,809 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.AbstractNotifier;
-import org.eclipse.wst.sse.core.IFactoryRegistry;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.xml.core.document.InvalidCharacterException;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.document.XMLNode;
-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;
-
-
-/**
- * NodeImpl class
- */
-public abstract class NodeImpl extends AbstractNotifier implements XMLNode {
-	// 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;
-
-	/**
-	 * 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 IFactoryRegistry getFactoryRegistry() {
-		XMLModel model = getModel();
-		if (model != null) {
-			IFactoryRegistry reg = model.getFactoryRegistry();
-			if (reg != null)
-				return reg;
-		}
-		return null;
-	}
-
-	/**
-	 * getFirstChild method
-	 * 
-	 * @return org.w3c.dom.Node
-	 */
-	public Node getFirstChild() {
-		return null;
-	}
-
-	/**
-	 * getFirstStructuredDocumentRegion method
-	 * 
-	 * @return com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	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
-	 * 
-	 * @return com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	public IStructuredDocumentRegion getLastStructuredDocumentRegion() {
-		return StructuredDocumentRegionUtil.getStructuredDocumentRegion(this.flatNode);
-	}
-
-	/**
-	 */
-	public String getLocalName() {
-		return null;
-	}
-
-	/**
-	 * the default implementation can just refer to the owning document
-	 */
-	public XMLModel 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) {
-		XMLNode parent = this;
-		XMLNode child = (XMLNode) getFirstChild();
-		while (child != null) {
-			if (child.getEndOffset() <= offset) {
-				child = (XMLNode) 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 = (XMLNode) 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) {
-			XMLModelImpl model = (XMLModelImpl) 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;
-		XMLModelImpl model = (XMLModelImpl) document.getModel();
-		if (model == null)
-			return;
-		model.editableChanged(this);
-	}
-
-	/**
-	 * notifyValueChanged method
-	 */
-	protected void notifyValueChanged() {
-		DocumentImpl document = (DocumentImpl) getContainerDocument();
-		if (document == null)
-			return;
-
-		syncDataEditableState();
-
-		XMLModelImpl model = (XMLModelImpl) 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) {
-			XMLNode node = (XMLNode) getFirstChild();
-			while (node != null) {
-				node.setEditable(editable, deep);
-				node = (XMLNode) 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();
-	}
-}
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 e048949..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NotationImpl.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.Notation;
-
-/**
- * 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);
-		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 de9a4fe..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ProcessingInstructionImpl.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.Iterator;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-import org.eclipse.wst.xml.core.jsp.model.parser.temp.XMLJSPRegionContexts;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Node;
-import org.w3c.dom.ProcessingInstruction;
-
-
-/**
- * ProcessingInstructionImpl class
- */
-public class ProcessingInstructionImpl extends NodeImpl implements XMLJSPRegionContexts, 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);
-		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 == XMLRegionContext.XML_PI_OPEN)
-				continue;
-			if (regionType == XMLRegionContext.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 == XMLRegionContext.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 1c54ba5..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.document.XMLNode;
-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
-		XMLNode 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 = (XMLNode) child;
-			offset1 = 0;
-		} else {
-			node1 = (XMLNode) container1;
-		}
-		int nodeOffset1 = node1.getStartOffset();
-		XMLNode 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 = (XMLNode) child;
-			offset2 = 0;
-		} else {
-			node2 = (XMLNode) 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 67aa59c..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ReadOnlyController.java
+++ /dev/null
@@ -1,334 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-import org.eclipse.wst.xml.core.document.XMLElement;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xml.core.document.XMLText;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-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;
-		}
-		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;
-		}
-		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(XMLNode node) {
-		switch (node.getNodeType()) {
-			case Node.ELEMENT_NODE :
-				return getDataSpanForElement((XMLElement) node);
-			case Node.TEXT_NODE :
-				return getDataSpanForText((XMLText) node);
-			default :
-				return new Span(0, -1);
-		}
-	}
-
-	private Span getDataSpanForElement(XMLElement 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 = XMLRegionContext.XML_COMMENT_OPEN;
-			endType = XMLRegionContext.XML_COMMENT_CLOSE;
-		} else {
-			startType = XMLRegionContext.XML_TAG_NAME;
-			endType = XMLRegionContext.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(XMLText 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(XMLNode 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(XMLNode 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(XMLNode node) {
-		if (node == null) {
-			return;
-		}
-
-		int offset = node.getStartOffset();
-		int length = node.getEndOffset() - offset;
-
-		boolean canInsert = true;
-		XMLNode parent = (XMLNode) 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(XMLNode 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(XMLNode 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(XMLNode node) {
-		if (node == null) {
-			return;
-		}
-
-		Span span = getDataSpan(node);
-		if (0 <= span.length) {
-			unlock(node.getModel().getStructuredDocument(), span.offset, span.length);
-		}
-	}
-
-	void unlockDeep(XMLNode node) {
-		if (node == null) {
-			return;
-		}
-
-		int offset = node.getStartOffset();
-		int length = node.getEndOffset() - offset;
-
-		unlock(node.getStructuredDocument(), offset, length);
-	}
-
-	void unlockNode(XMLNode 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 a7d89a3..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/SourceValidator.java
+++ /dev/null
@@ -1,348 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-import org.eclipse.wst.xml.core.document.InvalidCharacterException;
-import org.eclipse.wst.xml.core.document.JSPTag;
-import org.eclipse.wst.xml.core.document.XMLCharEntity;
-import org.eclipse.wst.xml.core.document.XMLDocument;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-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) {
-			XMLDocument document = (XMLDocument) 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 {
-			XMLDocument document = null;
-			if (this.node.getNodeType() == Node.DOCUMENT_NODE) {
-				document = (XMLDocument) this.node;
-			} else {
-				document = (XMLDocument) 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 = XMLCharEntity.LT_REF;
-					break;
-				case '>' :
-					if (acceptClose)
-						continue;
-					ref = XMLCharEntity.GT_REF;
-					break;
-				case '&' :
-					if (acceptAmpersand)
-						continue;
-					if (acceptEntityRef) {
-						int skip = skipEntityRef(source, i + 1);
-						if (skip >= 0) {
-							i += skip;
-							continue;
-						}
-					}
-					ref = XMLCharEntity.AMP_REF;
-					break;
-				case '"' :
-					if (acceptQuote)
-						continue;
-					ref = XMLCharEntity.QUOT_REF;
-					break;
-				case '%' :
-					if (acceptJSPEnd)
-						continue;
-					if (source.charAt(i + 1) != '>')
-						continue;
-					i++;
-					ref = XMLCharEntity.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) {
-			XMLDocument document = (XMLDocument) 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 = XMLCorePlugin.getResourceString("%Invalid_character_('>')_fo_ERROR_"); //$NON-NLS-1$ = "Invalid character ('>') found"
-				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 {
-			XMLDocument document = null;
-			if (this.node.getNodeType() == Node.DOCUMENT_NODE) {
-				document = (XMLDocument) this.node;
-			} else {
-				document = (XMLDocument) 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 = XMLCorePlugin.getResourceString("%Invalid_character_('<')_fo_ERROR_"); //$NON-NLS-1$ = "Invalid character ('<') found"
-					break;
-				case '>' :
-					if (acceptClose)
-						continue;
-					message = XMLCorePlugin.getResourceString("%Invalid_character_('>')_fo_ERROR_"); //$NON-NLS-1$ = "Invalid character ('>') found"
-					break;
-				case '&' :
-					if (acceptEntityRef) {
-						if (endTagName != null)
-							continue;
-						int skip = skipEntityRef(source, i + 1);
-						if (skip >= 0) {
-							i += skip;
-							continue;
-						}
-						// invalid entity reference
-					}
-					message = XMLCorePlugin.getResourceString("%Invalid_character_('&')_fo_ERROR_"); //$NON-NLS-1$ = "Invalid character ('&') found"
-					break;
-				case '"' :
-					if (acceptQuote)
-						continue;
-					message = XMLCorePlugin.getResourceString("%Invalid_character_('__')_f_EXC_"); //$NON-NLS-1$ = "Invalid character ('\"') found"
-					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 47a50fd..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.document.XMLModel;
-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(XMLModel 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 166d8c6..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionContainer.java
+++ /dev/null
@@ -1,605 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-
-
-class StructuredDocumentRegionContainer implements IStructuredDocumentRegion {
-
-	private Vector flatNodes = new Vector(2);
-
-	/**
-	 */
-	StructuredDocumentRegionContainer() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#addRegion(com.ibm.sed.structured.text.ITextRegion)
-	 */
-	public void addRegion(ITextRegion aRegion) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjust(int)
-	 */
-	public void adjust(int i) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjustLengthWith(int)
-	 */
-	public void adjustLengthWith(int i) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjustStart(int)
-	 */
-	public void adjustStart(int i) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjustTextLength(int)
-	 */
-	public void adjustTextLength(int i) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/**
-	 */
-	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);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#containsOffset(int)
-	 */
-	public boolean containsOffset(int i) {
-		// XXX Auto-generated method stub
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#containsOffset(com.ibm.sed.structured.text.ITextRegion,
-	 *      int)
-	 */
-	public boolean containsOffset(ITextRegion region, int i) {
-		// XXX Auto-generated method stub
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#equatePositions(com.ibm.sed.structured.text.ITextRegion)
-	 */
-	public void equatePositions(ITextRegion region) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getDeepestRegionAtCharacterOffset(int)
-	 */
-	public ITextRegion getDeepestRegionAtCharacterOffset(int offset) {
-		// XXX Auto-generated method stub
-		return null;
-	}
-
-	/**
-	 */
-	public int getEnd() {
-		IStructuredDocumentRegion last = getLastStructuredDocumentRegion();
-		if (last == null)
-			return 0;
-		return last.getEnd();
-	}
-
-	/**
-	 */
-	public int getEndOffset() {
-		return getEnd();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getEndOffset(com.ibm.sed.structured.text.ITextRegion)
-	 */
-	public int getEndOffset(ITextRegion containedRegion) {
-		// XXX Auto-generated method stub
-		return 0;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getFirstRegion()
-	 */
-	public ITextRegion getFirstRegion() {
-		// XXX Auto-generated method stub
-		return null;
-	}
-
-	/**
-	 */
-	IStructuredDocumentRegion getFirstStructuredDocumentRegion() {
-		if (this.flatNodes.isEmpty())
-			return null;
-		return (IStructuredDocumentRegion) this.flatNodes.elementAt(0);
-	}
-
-	/**
-	 */
-	public String getFullText() {
-		return getText();
-	}
-
-	/**
-	 */
-	public String getFullText(ITextRegion aRegion) {
-		// not supported
-		return null;
-	}
-
-	/**
-	 */
-	public String getFullText(String context) {
-		// not supported
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getLastRegion()
-	 */
-	public ITextRegion getLastRegion() {
-		// XXX Auto-generated method stub
-		return null;
-	}
-
-	/**
-	 */
-	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());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#getNext()
-	 */
-	public IStructuredDocumentRegion getNext() {
-		// XXX Auto-generated method stub
-		return null;
-	}
-
-	/** 
-	 */
-	public int getNumberOfRegions() {
-		// not supported
-		return 0;
-	}
-
-	/**
-	 */
-	public ITextRegionContainer getParent() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#getParentDocument()
-	 */
-	public IStructuredDocument getParentDocument() {
-		// XXX Auto-generated method stub
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#getPrevious()
-	 */
-	public IStructuredDocumentRegion getPrevious() {
-		// XXX Auto-generated method stub
-		return null;
-	}
-
-	/**
-	 */
-	public ITextRegion getRegionAtCharacterOffset(int offset) {
-		// not supported
-		return null;
-	}
-
-	/**
-	 */
-	public ITextRegionList getRegions() {
-		// not supported
-		return null;
-	}
-
-	/**
-	 */
-	public int getStart() {
-		IStructuredDocumentRegion first = getFirstStructuredDocumentRegion();
-		if (first == null)
-			return 0;
-		return first.getStart();
-	}
-
-	/**
-	 */
-	public int getStartOffset() {
-		return getStart();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getStartOffset(com.ibm.sed.structured.text.ITextRegion)
-	 */
-	public int getStartOffset(ITextRegion containedRegion) {
-		// XXX Auto-generated method stub
-		return 0;
-	}
-
-	/**
-	 */
-	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) {
-		// not supported
-		return null;
-	}
-
-	/**
-	 */
-	public String getText(String context) {
-		// not supported
-		return null;
-	}
-
-	/**
-	 */
-	public int getTextEnd() {
-		return getEnd();
-	}
-
-	/**
-	 */
-	public int getTextEndOffset() {
-		return getTextEnd();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getTextEndOffset(com.ibm.sed.structured.text.ITextRegion)
-	 */
-	public int getTextEndOffset(ITextRegion containedRegion) {
-		// XXX Auto-generated method stub
-		return 0;
-	}
-
-	/**
-	 * 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 isDeleted() {
-		// I'll assume never really needed here
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#isEnded()
-	 */
-	public boolean isEnded() {
-		// XXX Auto-generated method stub
-		return false;
-	}
-
-	/**
-	 */
-	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;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#sameAs(com.ibm.sed.structured.text.IStructuredDocumentRegion,
-	 *      int)
-	 */
-	public boolean sameAs(IStructuredDocumentRegion region, int shift) {
-		// XXX Auto-generated method stub
-		return false;
-	}
-
-	/**
-	 */
-	public boolean sameAs(ITextRegion region, int shift) {
-		// not support
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#sameAs(com.ibm.sed.structured.text.ITextRegion,
-	 *      com.ibm.sed.structured.text.IStructuredDocumentRegion,
-	 *      com.ibm.sed.structured.text.ITextRegion, int)
-	 */
-	public boolean sameAs(ITextRegion oldRegion, IStructuredDocumentRegion documentRegion, ITextRegion newRegion, int shift) {
-		// XXX Auto-generated method stub
-		return false;
-	}
-
-	public void setDeleted(boolean deleted) {
-		// I'll assume never really needed here
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#setEnded(boolean)
-	 */
-	public void setEnded(boolean hasEnd) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#setLength(int)
-	 */
-	public void setLength(int newLength) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#setNext(com.ibm.sed.structured.text.IStructuredDocumentRegion)
-	 */
-	public void setNext(IStructuredDocumentRegion newNext) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#setParentDocument(com.ibm.sed.structured.text.IStructuredDocument)
-	 */
-	public void setParentDocument(IStructuredDocument document) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#setPrevious(com.ibm.sed.structured.text.IStructuredDocumentRegion)
-	 */
-	public void setPrevious(IStructuredDocumentRegion newPrevious) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/**
-	 */
-	public void setRegions(ITextRegionList embeddedRegions) {
-		// not supported
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#setStart(int)
-	 */
-	public void setStart(int newStart) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/**
-	 * 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();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#updateModel(java.lang.Object,
-	 *      com.ibm.sed.structured.text.IStructuredDocumentRegion,
-	 *      java.lang.String, int, int)
-	 */
-	public StructuredDocumentEvent updateModel(Object requester, IStructuredDocumentRegion flatnode, String changes, int start, int end) {
-		// XXX Auto-generated method stub
-		return null;
-	}
-}
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 082bc92..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionManagementException.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-import org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException;
-
-
-
-/**
- */
-public class StructuredDocumentRegionManagementException extends SourceEditingRuntimeException {
-
-	/**
-	 * 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 1503845..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionProxy.java
+++ /dev/null
@@ -1,548 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.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();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#addRegion(com.ibm.sed.structured.text.ITextRegion)
-	 */
-	public void addRegion(ITextRegion aRegion) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjust(int)
-	 */
-	public void adjust(int i) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjustLengthWith(int)
-	 */
-	public void adjustLengthWith(int i) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjustStart(int)
-	 */
-	public void adjustStart(int i) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjustTextLength(int)
-	 */
-	public void adjustTextLength(int i) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#containsOffset(int)
-	 */
-	public boolean containsOffset(int i) {
-		// XXX Auto-generated method stub
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#containsOffset(com.ibm.sed.structured.text.ITextRegion,
-	 *      int)
-	 */
-	public boolean containsOffset(ITextRegion region, int i) {
-		// XXX Auto-generated method stub
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#equatePositions(com.ibm.sed.structured.text.ITextRegion)
-	 */
-	public void equatePositions(ITextRegion region) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getDeepestRegionAtCharacterOffset(int)
-	 */
-	public ITextRegion getDeepestRegionAtCharacterOffset(int offset) {
-		// XXX Auto-generated method stub
-		return null;
-	}
-
-	/**
-	 */
-	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();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getEndOffset(com.ibm.sed.structured.text.ITextRegion)
-	 */
-	public int getEndOffset(ITextRegion containedRegion) {
-		// XXX Auto-generated method stub
-		return 0;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getFirstRegion()
-	 */
-	public ITextRegion getFirstRegion() {
-		// XXX Auto-generated method stub
-		return null;
-	}
-
-	/**
-	 */
-	public String getFullText() {
-		return getText();
-	}
-
-	/**
-	 */
-	public String getFullText(ITextRegion aRegion) {
-		// not supported
-		return null;
-	}
-
-	/**
-	 */
-	public String getFullText(String context) {
-		// not supported
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getLastRegion()
-	 */
-	public ITextRegion getLastRegion() {
-		// XXX Auto-generated method stub
-		return null;
-	}
-
-	/** 
-	 */
-	public int getLength() {
-		return this.length;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#getNext()
-	 */
-	public IStructuredDocumentRegion getNext() {
-		// XXX Auto-generated method stub
-		return null;
-	}
-
-	/** 
-	 */
-	public int getNumberOfRegions() {
-		// not supported
-		return 0;
-	}
-
-	/** 
-	 */
-	int getOffset() {
-		int flatNodeOffset = 0;
-		if (this.flatNode != null)
-			flatNodeOffset = this.flatNode.getStart();
-		return flatNodeOffset + this.offset;
-	}
-
-	/**
-	 */
-	public ITextRegionContainer getParent() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#getParentDocument()
-	 */
-	public IStructuredDocument getParentDocument() {
-		// XXX Auto-generated method stub
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#getPrevious()
-	 */
-	public IStructuredDocumentRegion getPrevious() {
-		// XXX Auto-generated method stub
-		return null;
-	}
-
-	/**
-	 */
-	public ITextRegion getRegionAtCharacterOffset(int offset) {
-		// not supported
-		return null;
-	}
-
-	/**
-	 */
-	public ITextRegionList getRegions() {
-		// not supported
-		return null;
-	}
-
-	/**
-	 */
-	public int getStart() {
-		int flatNodeOffset = 0;
-		if (this.flatNode != null)
-			flatNodeOffset = this.flatNode.getStart();
-		return flatNodeOffset + this.offset;
-	}
-
-	/**
-	 */
-	public int getStartOffset() {
-		return getStart();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getStartOffset(com.ibm.sed.structured.text.ITextRegion)
-	 */
-	public int getStartOffset(ITextRegion containedRegion) {
-		// XXX Auto-generated method stub
-		return 0;
-	}
-
-	/**
-	 */
-	public IStructuredDocument getStructuredDocument() {
-		// not supported
-		return null;
-	}
-
-	/** 
-	 */
-	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) {
-		// not supported
-		return null;
-	}
-
-	/**
-	 */
-	public String getText(String context) {
-		// not supported
-		return null;
-	}
-
-	/**
-	 */
-	public int getTextEnd() {
-		return getEnd();
-	}
-
-	/**
-	 */
-	public int getTextEndOffset() {
-		return getTextEnd();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getTextEndOffset(com.ibm.sed.structured.text.ITextRegion)
-	 */
-	public int getTextEndOffset(ITextRegion containedRegion) {
-		// XXX Auto-generated method stub
-		return 0;
-	}
-
-	/**
-	 * 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 false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#isEnded()
-	 */
-	public boolean isEnded() {
-		// XXX Auto-generated method stub
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#sameAs(com.ibm.sed.structured.text.IStructuredDocumentRegion,
-	 *      int)
-	 */
-	public boolean sameAs(IStructuredDocumentRegion region, int shift) {
-		// XXX Auto-generated method stub
-		return false;
-	}
-
-	/**
-	 */
-	public boolean sameAs(ITextRegion region, int shift) {
-		// not supported
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#sameAs(com.ibm.sed.structured.text.ITextRegion,
-	 *      com.ibm.sed.structured.text.IStructuredDocumentRegion,
-	 *      com.ibm.sed.structured.text.ITextRegion, int)
-	 */
-	public boolean sameAs(ITextRegion oldRegion, IStructuredDocumentRegion documentRegion, ITextRegion newRegion, int shift) {
-		// XXX Auto-generated method stub
-		return false;
-	}
-
-	public void setDeleted(boolean deleted) {
-		// I'll assume never really needed here
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#setEnded(boolean)
-	 */
-	public void setEnded(boolean hasEnd) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/**
-	 * had to make public, due to API transition.
-	 */
-	public void setLength(int length) {
-		this.length = length;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#setNext(com.ibm.sed.structured.text.IStructuredDocumentRegion)
-	 */
-	public void setNext(IStructuredDocumentRegion newNext) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/**
-	 */
-	void setOffset(int offset) {
-		this.offset = offset;
-		if (this.flatNode != null)
-			this.offset -= this.flatNode.getStart();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#setParentDocument(com.ibm.sed.structured.text.IStructuredDocument)
-	 */
-	public void setParentDocument(IStructuredDocument document) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#setPrevious(com.ibm.sed.structured.text.IStructuredDocumentRegion)
-	 */
-	public void setPrevious(IStructuredDocumentRegion newPrevious) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/**
-	 */
-	public void setRegions(ITextRegionList embeddedRegions) {
-		// not supported
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.IStructuredDocumentRegion#setStart(int)
-	 */
-	public void setStart(int newStart) {
-		// XXX Auto-generated method stub
-
-	}
-
-	/**
-	 */
-	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();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#updateModel(java.lang.Object,
-	 *      com.ibm.sed.structured.text.IStructuredDocumentRegion,
-	 *      java.lang.String, int, int)
-	 */
-	public StructuredDocumentEvent updateModel(Object requester, IStructuredDocumentRegion flatnode, String changes, int start, int end) {
-		// XXX Auto-generated method stub
-		return null;
-	}
-}
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 82c848d..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionUtil.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.document;
-
-
-
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-import org.eclipse.wst.xml.core.jsp.model.parser.temp.XMLJSPRegionContexts;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-/**
- * Provides convenient functions to handle IStructuredDocumentRegion and
- * ITextRegion.
- */
-class StructuredDocumentRegionUtil implements XMLJSPRegionContexts {
-
-	/**
-	 * 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 XMLRegionContext.UNDEFINED;
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null || regions.size() == 0)
-			return XMLRegionContext.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 XMLRegionContext.UNDEFINED;
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null || regions.size() == 0)
-			return XMLRegionContext.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/TextImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/TextImpl.java
deleted file mode 100644
index 826fe54..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/TextImpl.java
+++ /dev/null
@@ -1,1107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.xml.core.document.InvalidCharacterException;
-import org.eclipse.wst.xml.core.document.XMLGenerator;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.document.XMLText;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-
-/**
- * TextImpl class
- */
-public class TextImpl extends CharacterDataImpl implements XMLText {
-
-	/**
-	 */
-	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);
-		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 == XMLRegionContext.XML_ENTITY_REFERENCE || regionType == XMLRegionContext.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
-	 * 
-	 * @return com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	public IStructuredDocumentRegion getFirstStructuredDocumentRegion() {
-		return StructuredDocumentRegionUtil.getFirstStructuredDocumentRegion(getStructuredDocumentRegion());
-	}
-
-	/**
-	 * getLastStructuredDocumentRegion method
-	 * 
-	 * @return com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	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;
-		XMLModel model = getModel();
-		if (model == null)
-			return null; // error
-		XMLGenerator 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 != XMLRegionContext.XML_CONTENT && regionType != JSP_CONTENT && regionType != XMLRegionContext.XML_ENTITY_REFERENCE && regionType != XMLRegionContext.XML_CHAR_REFERENCE && regionType != XMLRegionContext.BLOCK_TEXT && regionType != XMLRegionContext.WHITE_SPACE) {
-			return true;
-		}
-
-		return false;
-	}
-
-	/**
-	 */
-	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;
-	}
-
-	/**
-	 */
-	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);
-	}
-}
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 5000a4d..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLGeneratorImpl.java
+++ /dev/null
@@ -1,738 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.common.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.common.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.commentelement.impl.CommentElementRegistry;
-import org.eclipse.wst.xml.core.document.DocumentTypeAdapter;
-import org.eclipse.wst.xml.core.document.JSPTag;
-import org.eclipse.wst.xml.core.document.TagAdapter;
-import org.eclipse.wst.xml.core.document.XMLAttr;
-import org.eclipse.wst.xml.core.document.XMLCharEntity;
-import org.eclipse.wst.xml.core.document.XMLDocument;
-import org.eclipse.wst.xml.core.document.XMLElement;
-import org.eclipse.wst.xml.core.document.XMLGenerator;
-import org.eclipse.wst.xml.core.document.XMLNode;
-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 XMLGenerator {
-	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 XMLGenerator 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 (((XMLAttr) 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(((XMLNode) 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
-			XMLDocument document = (XMLDocument) 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;
-		XMLElement xe = (XMLElement) 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 = document.getDocumentTypeAdapter();
-		if (adapter == null)
-			return DocumentTypeAdapter.STRICT_CASE;
-		return adapter.getAttrNameCase();
-	}
-
-	/**
-	 */
-	private String getCharName(char c) {
-		switch (c) {
-			case '<' :
-				return XMLCharEntity.LT_NAME;
-			case '>' :
-				return XMLCharEntity.GT_NAME;
-			case '&' :
-				return XMLCharEntity.AMP_NAME;
-			case '"' :
-				return XMLCharEntity.QUOT_NAME;
-		}
-		return null;
-	}
-
-	/**
-	 */
-	private int getTagNameCase(Element element) {
-		DocumentImpl document = (DocumentImpl) element.getOwnerDocument();
-		if (document == null)
-			return DocumentTypeAdapter.STRICT_CASE;
-		DocumentTypeAdapter adapter = document.getDocumentTypeAdapter();
-		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/XMLModelImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelImpl.java
deleted file mode 100644
index 5e54f74..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelImpl.java
+++ /dev/null
@@ -1,875 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.AbstractStructuredModel;
-import org.eclipse.wst.sse.core.IndexedRegion;
-import org.eclipse.wst.sse.core.events.IStructuredDocumentListener;
-import org.eclipse.wst.sse.core.events.NewDocumentEvent;
-import org.eclipse.wst.sse.core.events.NoChangeEvent;
-import org.eclipse.wst.sse.core.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.events.RegionsReplacedEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentRegionsReplacedEvent;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegionList;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-import org.eclipse.wst.xml.core.document.XMLDocument;
-import org.eclipse.wst.xml.core.document.XMLGenerator;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.document.XMLModelNotifier;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xml.core.internal.Logger;
-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 XMLModelImpl extends AbstractStructuredModel implements IStructuredDocumentListener, XMLModel, DOMImplementation {
-	private static String TRACE_PARSER_MANAGEMENT_EXCEPTION = "parserManagement"; //$NON-NLS-1$
-	private Object active = null;
-	protected DocumentImpl document = null;
-	private XMLGenerator generator = null;
-	private XMLModelNotifier notifier = null;
-	private XMLModelParser parser = null;
-	private boolean refresh = false;
-	private XMLModelUpdater updater = null;
-
-	/**
-	 * XMLModelImpl constructor
-	 */
-	public XMLModelImpl() {
-		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();
-
-			// 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.
-	 * @since 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.
-	 * @since 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.
-		// FUTURE: perhaps all "handleRefresh" should be changed
-		// to "reinit needede"?
-		this.setReinitializeNeeded(true);
-	}
-
-	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 XMLDocument getDocument() {
-		return this.document;
-	}
-
-	public XMLGenerator 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
-		XMLNode parent = null;
-		int length = this.document.getEndOffset();
-		if (offset * 2 < length) {
-			// search from the first
-			XMLNode child = (XMLNode) this.document.getFirstChild();
-			while (child != null) {
-				if (child.getEndOffset() <= offset) {
-					child = (XMLNode) 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 = (XMLNode) parent.getFirstChild();
-			}
-		} else {
-			// search from the last
-			XMLNode child = (XMLNode) this.document.getLastChild();
-			while (child != null) {
-				if (child.getStartOffset() > offset) {
-					child = (XMLNode) 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 = (XMLNode) 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 = new XMLModelParser(this);
-		}
-		return this.parser;
-	}
-
-	/**
-	 */
-	private XMLModelUpdater getModelUpdater() {
-		if (this.updater == null) {
-			this.updater = new XMLModelUpdater(this);
-		}
-		return this.updater;
-	}
-
-	/**
-	 */
-	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
-	 * 
-	 * @param structuredDocumentEvent
-	 *            com.ibm.sed.structuredDocument.impl.events.NewModelEvent
-	 */
-	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 (structuredDocument != getStructuredDocument())
-			setStructuredDocument(structuredDocument);
-		IStructuredDocumentRegionList flatNodes = structuredDocument.getRegionList();
-		if (flatNodes == null)
-			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;
-		}
-		//			checkForReinit();
-	}
-
-	/**
-	 */
-	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
-	 * 
-	 * @param event
-	 *            com.ibm.sed.structuredDocument.impl.events.NodesReplacedElement
-	 */
-	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
-	 *            com.ibm.sed.structuredDocument.impl.events.RegionChangedEvent
-	 */
-	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
-	 *            com.ibm.sed.structuredDocument.impl.events.RegionReplacedEvent
-	 */
-	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(XMLGenerator 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
-	 *            com.ibm.sed.structuredDocument.IStructuredDocument
-	 */
-	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.getLength() > 0) {
-			newModel(new NewDocumentEvent(structuredDocument, this));
-		}
-		if (structuredDocument != null)
-			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);
-	}
-}
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 e2849d7..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelNotifierImpl.java
+++ /dev/null
@@ -1,469 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.Iterator;
-import java.util.Vector;
-
-import org.eclipse.wst.sse.core.INodeNotifier;
-import org.eclipse.wst.sse.core.util.Debug;
-import org.eclipse.wst.xml.core.document.XMLModelNotifier;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xml.core.internal.Logger;
-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;
-
-		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();
-		}
-		XMLNode notifier = (XMLNode) 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;
-	}
-
-	/**
-	 * @see com.ibm.sed.model.xml.XMLModelNotifier#cancelPending()
-	 */
-	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;
-		XMLNode notifier = (XMLNode) 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;
-		XMLNode notifier = (XMLNode) 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;
-		XMLNode notifier = (XMLNode) 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();
-		for (int i = 0; i < count; i++) {
-			NotifyEvent event = (NotifyEvent) this.events.elementAt(i);
-			if (event == null)
-				continue; // error
-			if (event.discarded)
-				continue;
-			if (!doingNewModel && fOptimizeDeferred) {
-				// check redundant events (no need to check if doing NewModel,
-				// since
-				// shouldn't be redunancies)
-				if (event.type == INodeNotifier.ADD) {
-					for (int n = i + 1; n < count; n++) {
-						NotifyEvent next = (NotifyEvent) this.events.elementAt(n);
-						if (next == null)
-							continue; // error
-						if (next.type == INodeNotifier.REMOVE && next.oldValue == event.newValue) {
-							// Added then removed later, discard both
-							event.discarded = true;
-							next.discarded = true;
-							if (Debug.debugNotifyDeferred) {
-								event.reason = event.reason + ADDED_THEN_REMOVED + "(see " + n + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-								next.reason = next.reason + ADDED_THEN_REMOVED + "(see " + i + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-							}
-							break;
-						}
-					}
-					if (event.discarded)
-						continue;
-					if (fOptimizeDeferredAccordingToParentAdded) {
-						for (int p = 0; p < i; p++) {
-							NotifyEvent prev = (NotifyEvent) this.events.elementAt(p);
-							if (prev == null)
-								continue; // error
-							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 " + p + ")"; //$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 " + p + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-								}
-								break;
-							}
-						}
-						if (event.discarded)
-							continue;
-					}
-				} else if (event.type == INodeNotifier.REMOVE) {
-					if (fOptimizeDeferredAccordingToParentRemoved) {
-						for (int n = i + 1; n < count; n++) {
-							NotifyEvent next = (NotifyEvent) this.events.elementAt(n);
-							if (next == null)
-								continue; // error
-							if (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 " + n + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-									}
-									break;
-								}
-							}
-						}
-						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;
-	}
-
-	/**
-	 */
-	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;
-		XMLNode notifier = (XMLNode) 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;
-		XMLNode notifier = null;
-		if (node.getNodeType() == Node.ATTRIBUTE_NODE) {
-			Attr attr = (Attr) node;
-			notifier = (XMLNode) 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 = (XMLNode) node;
-			String value = node.getNodeValue();
-			int offset = notifier.getStartOffset();
-			notify(notifier, INodeNotifier.CHANGE, null, null, value, offset);
-			if (node.getNodeType() != Node.ELEMENT_NODE) {
-				XMLNode parent = (XMLNode) 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 7d64743..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelParser.java
+++ /dev/null
@@ -1,2365 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegionList;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-import org.eclipse.wst.xml.core.commentelement.impl.CommentElementConfiguration;
-import org.eclipse.wst.xml.core.commentelement.impl.CommentElementRegistry;
-import org.eclipse.wst.xml.core.document.JSPTag;
-import org.eclipse.wst.xml.core.document.XMLDocument;
-import org.eclipse.wst.xml.core.document.XMLElement;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-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 implements org.eclipse.wst.xml.core.jsp.model.parser.temp.XMLJSPRegionContexts {
-	private ModelParserAdapter adapter = null;
-	private XMLModelContext context = null;
-	private DocumentImpl document = null;
-
-	private XMLModelImpl model = null;
-
-	/**
-	 */
-	protected XMLModelParser(XMLModelImpl model) {
-		super();
-
-		if (model != null) {
-			this.model = model;
-			this.document = (DocumentImpl) model.getDocument();
-			if (this.document != null) {
-				this.adapter = (ModelParserAdapter) this.document.getAdapterFor(ModelParserAdapter.class);
-			}
-		}
-	}
-
-	/**
-	 */
-	protected boolean canBeImplicitTag(Element element) {
-		if (this.adapter != null) {
-			return this.adapter.canBeImplicitTag(element);
-		}
-		return false;
-	}
-
-	/**
-	 */
-	protected boolean canBeImplicitTag(Element element, Node child) {
-		if (this.adapter != null) {
-			return this.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;
-			}
-		}
-		if (this.adapter != null) {
-			return this.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
-	 * 
-	 * @param flatNode
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 * @param region
-	 *            com.ibm.sed.structuredDocument.ITextRegion
-	 */
-	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
-	 * 
-	 * @param flatNode
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 * @param region
-	 *            com.ibm.sed.structuredDocument.ITextRegion
-	 */
-	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
-	 * 
-	 * @param flatNode
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 * @param region
-	 *            com.ibm.sed.structuredDocument.ITextRegion
-	 */
-	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 == XMLRegionContext.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 == XMLRegionContext.XML_TAG_CLOSE)
-					continue;
-
-				// other region has changed
-				changeStructuredDocumentRegion(flatNode);
-				return;
-			}
-		}
-
-		// change for close tag has no impact
-		// do nothing
-	}
-
-	/**
-	 * changeRegion method
-	 * 
-	 * @param flatNode
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 * @param region
-	 *            com.ibm.sed.structuredDocument.ITextRegion
-	 */
-	void changeRegion(IStructuredDocumentRegion flatNode, ITextRegion region) {
-		if (flatNode == null || region == null)
-			return;
-		if (this.document == null)
-			return;
-		this.context = new XMLModelContext(this.document);
-
-		// optimize typical cases
-		String regionType = region.getType();
-		if (regionType == XMLRegionContext.XML_CONTENT || regionType == XMLRegionContext.XML_COMMENT_TEXT || regionType == XMLRegionContext.XML_CDATA_TEXT || regionType == XMLRegionContext.BLOCK_TEXT || regionType == JSP_CONTENT) {
-			changeData(flatNode, region);
-		} else if (regionType == XMLRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-			changeAttrName(flatNode, region);
-		} else if (regionType == XMLRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-			changeAttrValue(flatNode, region);
-		} else if (regionType == XMLRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-			changeAttrEqual(flatNode, region);
-		} else if (regionType == XMLRegionContext.XML_TAG_NAME || regionType == JSP_ROOT_TAG_NAME || regionType == JSP_DIRECTIVE_NAME) {
-			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 == XMLRegionContext.XML_TAG_ATTRIBUTE_NAME || regionType == XMLRegionContext.XML_TAG_ATTRIBUTE_EQUALS || regionType == XMLRegionContext.XML_TAG_ATTRIBUTE_VALUE)
-					continue;
-				if (regionType == XMLRegionContext.XML_TAG_CLOSE) {
-					// change from empty tag may have impact on structure
-					if (!element.isEmptyTag())
-						continue;
-				} else if (regionType == XMLRegionContext.XML_TAG_NAME || regionType == JSP_ROOT_TAG_NAME || regionType == JSP_DIRECTIVE_NAME) {
-					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 == XMLRegionContext.XML_TAG_ATTRIBUTE_NAME || regionType == XMLRegionContext.XML_TAG_ATTRIBUTE_EQUALS || regionType == XMLRegionContext.XML_TAG_ATTRIBUTE_VALUE)
-					continue;
-				if (regionType == XMLRegionContext.XML_TAG_CLOSE) {
-					// change from empty tag may have impact on structure
-					if (!element.isEmptyTag())
-						continue;
-				} else if (regionType == XMLRegionContext.XML_TAG_NAME || regionType == JSP_ROOT_TAG_NAME) {
-					// 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 == XMLRegionContext.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.document.createAttribute(name);
-					if (attr != null)
-						attr.setNameRegion(region);
-					// defer insertion of new attribute
-					newAttr = attr;
-				}
-			} else if (regionType == XMLRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-				if (attr != null) {
-					attr.setEqualRegion(region);
-				}
-			} else if (regionType == XMLRegionContext.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
-	 * 
-	 * @param flatNode
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	private void changeStructuredDocumentRegion(IStructuredDocumentRegion flatNode) {
-		if (flatNode == null)
-			return;
-		if (this.document == 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) != XMLRegionContext.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.document, data, isJSPTag);
-				}
-			}
-		}
-		if (this.adapter != null) {
-			return this.adapter.createCommentElement(this.document, 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) {
-		if (this.adapter != null) {
-			return this.adapter.createImplicitElement(this.document, 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();
-			}
-		}
-	}
-
-	/**
-	 */
-	protected final XMLDocument getDocument() {
-		return this.document;
-	}
-
-	/**
-	 */
-	protected String getFindRootName(String tagName) {
-		if (this.adapter != null) {
-			return this.adapter.getFindRootName(tagName);
-		}
-		return null;
-	}
-
-	/**
-	 */
-	protected final XMLModel getModel() {
-		return this.model;
-	}
-
-	/**
-	 * insertCDATASection method
-	 * 
-	 * @param flatNode
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	private void insertCDATASection(IStructuredDocumentRegion flatNode) {
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null)
-			return;
-
-		CDATASectionImpl cdata = null;
-		try {
-			cdata = (CDATASectionImpl) this.document.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
-	 * 
-	 * @param flatNode
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	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 (regionType == JSP_COMMENT_OPEN) {
-				isJSPTag = true;
-			} else if (regionType == XMLRegionContext.XML_COMMENT_TEXT || regionType == JSP_COMMENT_TEXT) {
-				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.document.createComment(null);
-		if (comment == null)
-			return;
-		if (isJSPTag)
-			comment.setJSPTag(true);
-		comment.setStructuredDocumentRegion(flatNode);
-		insertNode(comment);
-	}
-
-	/**
-	 * insertDecl method
-	 * 
-	 * @param flatNode
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	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 == XMLRegionContext.XML_DOCTYPE_DECLARATION) {
-				isDocType = true;
-			} else if (regionType == XMLRegionContext.XML_DOCTYPE_NAME) {
-				if (name == null)
-					name = flatNode.getText(region);
-			} else if (regionType == XMLRegionContext.XML_DOCTYPE_EXTERNAL_ID_PUBREF) {
-				if (publicId == null)
-					publicId = StructuredDocumentRegionUtil.getAttrValue(flatNode, region);
-			} else if (regionType == XMLRegionContext.XML_DOCTYPE_EXTERNAL_ID_SYSREF) {
-				if (systemId == null)
-					systemId = StructuredDocumentRegionUtil.getAttrValue(flatNode, region);
-			}
-		}
-
-		// invalid declaration
-		if (!isDocType) {
-			insertInvalidDecl(flatNode);
-			return;
-		}
-
-		DocumentTypeImpl docType = (DocumentTypeImpl) this.document.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
-	 * 
-	 * @param element
-	 *            org.w3c.dom.Element
-	 */
-	private 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
-	 * 
-	 * @param flatNode
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	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();
-			if (region.getType() == XMLRegionContext.XML_TAG_NAME || region.getType() == JSP_ROOT_TAG_NAME || region.getType() == JSP_DIRECTIVE_NAME) {
-				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.document.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
-	 * 
-	 * @param flatNode
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	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 == XMLRegionContext.XML_ENTITY_REFERENCE || regionType == XMLRegionContext.XML_CHAR_REFERENCE) {
-				if (name == null)
-					name = StructuredDocumentRegionUtil.getEntityRefName(flatNode, region);
-			}
-		}
-
-		if (name == null) { // invalid entity
-			insertText(flatNode);
-			return;
-		}
-
-		String value = this.document.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.document.createTextNode(null);
-			if (text == null)
-				return;
-			text.setStructuredDocumentRegion(flatNode);
-			insertNode(text);
-			return;
-		}
-
-		// general entity reference
-		EntityReferenceImpl ref = null;
-		try {
-			ref = (EntityReferenceImpl) this.document.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
-	 * 
-	 * @param flatNode
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	private void insertInvalidDecl(IStructuredDocumentRegion flatNode) {
-		ITextRegionList regions = flatNode.getRegions();
-		if (regions == null)
-			return;
-
-		ElementImpl element = null;
-		try {
-			element = (ElementImpl) this.document.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
-	 * 
-	 * @param flatNode
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	private void insertJSPTag(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 (regionType == JSP_SCRIPTLET_OPEN) {
-				tagName = JSPTag.JSP_SCRIPTLET;
-			} else if (regionType == JSP_EXPRESSION_OPEN) {
-				tagName = JSPTag.JSP_EXPRESSION;
-			} else if (regionType == JSP_DECLARATION_OPEN) {
-				tagName = JSPTag.JSP_DECLARATION;
-			} else if (regionType == JSP_DIRECTIVE_OPEN) {
-				tagName = JSPTag.JSP_DIRECTIVE;
-			} else if (regionType == JSP_DIRECTIVE_NAME) {
-				tagName += '.';
-				tagName += flatNode.getText(region);
-			} else if (regionType == JSP_CLOSE) {
-				isCloseTag = true;
-			} else if (regionType == XMLRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-				String name = flatNode.getText(region);
-				attr = (AttrImpl) this.document.createAttribute(name);
-				if (attr != null) {
-					attr.setNameRegion(region);
-					if (attrNodes == null)
-						attrNodes = new Vector();
-					attrNodes.addElement(attr);
-				}
-			} else if (regionType == XMLRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-				if (attr != null) {
-					attr.setEqualRegion(region);
-				}
-			} else if (regionType == XMLRegionContext.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.document.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);
-	}
-
-	/**
-	 * 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
-	 * 
-	 * @param flatNode
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	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 == XMLRegionContext.XML_PI_OPEN || regionType == XMLRegionContext.XML_PI_CLOSE)
-				continue;
-			if (target == null)
-				target = flatNode.getText(region);
-		}
-
-		ProcessingInstructionImpl pi = (ProcessingInstructionImpl) this.document.createProcessingInstruction(target, null);
-		if (pi == null)
-			return;
-		pi.setStructuredDocumentRegion(flatNode);
-		insertNode(pi);
-	}
-
-	/**
-	 * insertStartTag method
-	 * 
-	 * @param element
-	 *            org.w3c.dom.Element
-	 */
-	private 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
-	 * 
-	 * @param flatNode
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	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 == XMLRegionContext.XML_TAG_NAME || regionType == JSP_ROOT_TAG_NAME || regionType == JSP_DIRECTIVE_NAME) {
-				if (tagName == null)
-					tagName = flatNode.getText(region);
-			} else if (regionType == XMLRegionContext.XML_EMPTY_TAG_CLOSE) {
-				isEmptyTag = true;
-			} else if (regionType == XMLRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-				String name = flatNode.getText(region);
-				attr = (AttrImpl) this.document.createAttribute(name);
-				if (attr != null) {
-					attr.setNameRegion(region);
-					if (attrNodes == null)
-						attrNodes = new Vector();
-					attrNodes.addElement(attr);
-				}
-			} else if (regionType == XMLRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-				if (attr != null) {
-					attr.setEqualRegion(region);
-				}
-			} else if (regionType == XMLRegionContext.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.document.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);
-			}
-		}
-		if (isEmptyTag)
-			element.setEmptyTag(true);
-		element.setStartStructuredDocumentRegion(flatNode);
-		insertStartTag(element);
-	}
-
-	/**
-	 * insertStructuredDocumentRegion method
-	 * 
-	 * @param flatNode
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	private void insertStructuredDocumentRegion(IStructuredDocumentRegion flatNode) {
-		String regionType = StructuredDocumentRegionUtil.getFirstRegionType(flatNode);
-		if (regionType == XMLRegionContext.XML_TAG_OPEN) {
-			insertStartTag(flatNode);
-		} else if (regionType == XMLRegionContext.XML_END_TAG_OPEN) {
-			insertEndTag(flatNode);
-		} else if (regionType == XMLRegionContext.XML_COMMENT_OPEN || regionType == JSP_COMMENT_OPEN) {
-			insertComment(flatNode);
-		} else if (regionType == XMLRegionContext.XML_ENTITY_REFERENCE || regionType == XMLRegionContext.XML_CHAR_REFERENCE) {
-			insertEntityRef(flatNode);
-		} else if (regionType == XMLRegionContext.XML_DECLARATION_OPEN) {
-			insertDecl(flatNode);
-		} else if (regionType == XMLRegionContext.XML_PI_OPEN) {
-			insertPI(flatNode);
-		} else if (regionType == XMLRegionContext.XML_CDATA_OPEN) {
-			insertCDATASection(flatNode);
-		} else if (regionType == JSP_SCRIPTLET_OPEN || regionType == JSP_EXPRESSION_OPEN || regionType == JSP_DECLARATION_OPEN || regionType == JSP_DIRECTIVE_OPEN || regionType == JSP_CLOSE) {
-			insertJSPTag(flatNode);
-		} else {
-			insertText(flatNode);
-		}
-	}
-
-	/**
-	 * insertText method
-	 * 
-	 * @param flatNode
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	private 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.document.createTextNode(null);
-		if (text == null)
-			return;
-		text.setStructuredDocumentRegion(flatNode);
-		insertNode(text);
-	}
-
-	/**
-	 */
-	protected boolean isEndTag(XMLElement element) {
-		if (this.adapter != null) {
-			return this.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
-	 * 
-	 * @param oldStructuredDocumentRegion
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	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 = (NodeImpl) end.getParentNode();
-		if (parent != null) {
-			this.context.setParentNode(parent);
-			removeStructuredDocumentRegion(oldStructuredDocumentRegion);
-			return;
-		}
-	}
-
-	/**
-	 * replaceRegions method
-	 * 
-	 * @param flatNode
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 * @param newRegions
-	 *            java.util.Vector
-	 * @param oldRegions
-	 *            java.util.Vector
-	 */
-	void replaceRegions(IStructuredDocumentRegion flatNode, ITextRegionList newRegions, ITextRegionList oldRegions) {
-		if (flatNode == null)
-			return;
-		if (this.document == null)
-			return;
-		this.context = new XMLModelContext(this.document);
-
-		// optimize typical cases
-		String regionType = StructuredDocumentRegionUtil.getFirstRegionType(flatNode);
-		if (regionType == XMLRegionContext.XML_TAG_OPEN) {
-			changeStartTag(flatNode, newRegions, oldRegions);
-		} else if (regionType == XMLRegionContext.XML_END_TAG_OPEN) {
-			changeEndTag(flatNode, newRegions, oldRegions);
-		} else {
-			changeStructuredDocumentRegion(flatNode);
-		}
-	}
-
-	/**
-	 * replaceStructuredDocumentRegions method
-	 * 
-	 * @param newStructuredDocumentRegions
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegionList
-	 * @param oldStructuredDocumentRegions
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegionList
-	 */
-	void replaceStructuredDocumentRegions(IStructuredDocumentRegionList newStructuredDocumentRegions, IStructuredDocumentRegionList oldStructuredDocumentRegions) {
-		if (this.document == null)
-			return;
-		this.context = new XMLModelContext(this.document);
-
-		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
-	 * 
-	 * @param flatNode
-	 *            com.ibm.sed.structuredDocument.IStructuredDocumentRegion
-	 */
-	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();
-	}
-}
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 c9cab98..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelUpdater.java
+++ /dev/null
@@ -1,1647 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegionList;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-import org.eclipse.wst.xml.core.document.JSPTag;
-import org.eclipse.wst.xml.core.document.XMLElement;
-import org.eclipse.wst.xml.core.document.XMLGenerator;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xml.core.jsp.model.parser.temp.XMLJSPRegionContexts;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-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 implements XMLJSPRegionContexts {
-	private int diff = 0;
-	private int gapLength = 0;
-	private int gapOffset = 0;
-	private IStructuredDocumentRegion gapStructuredDocumentRegion = null;
-	private XMLGenerator generator = null;
-	private XMLModelImpl model = null;
-	private NodeImpl nextNode = null;
-	private NodeImpl parentNode = null;
-
-	protected XMLModelUpdater(XMLModelImpl 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((XMLNode) 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(XMLElement 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() != XMLRegionContext.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(XMLNode 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();
-
-		XMLNode lastChild = (XMLNode) 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(XMLElement 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 == XMLRegionContext.XML_TAG_CLOSE || regionType == XMLRegionContext.XML_EMPTY_TAG_CLOSE || regionType == JSP_CLOSE || regionType == JSP_DIRECTIVE_CLOSE) {
-					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 == XMLRegionContext.XML_TAG_CLOSE || regionType == XMLRegionContext.XML_EMPTY_TAG_CLOSE || regionType == JSP_CLOSE || regionType == JSP_DIRECTIVE_CLOSE)
-						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);
-	}
-
-	/**
-	 * 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((XMLElement) 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 == XMLRegionContext.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 == XMLRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-				if (attr != null)
-					attr.setEqualRegion(region);
-			} else if (regionType == XMLRegionContext.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/filebuffers/DocumentFactoryForXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/filebuffers/DocumentFactoryForXML.java
deleted file mode 100644
index 549752a..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/filebuffers/DocumentFactoryForXML.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.filebuffers;
-
-import org.eclipse.core.filebuffers.IDocumentFactory;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.sse.core.document.StructuredDocumentFactory;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.xml.core.internal.parser.XMLSourceParser;
-
-
-
-public class DocumentFactoryForXML implements IDocumentFactory {
-
-	public DocumentFactoryForXML() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.filebuffers.IDocumentFactory#createDocument()
-	 */
-	public IDocument createDocument() {
-		IStructuredDocument structuredDocument = StructuredDocumentFactory.getNewStructuredDocumentInstance(new XMLSourceParser());
-		return structuredDocument;
-	}
-
-}
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 5442a10..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.text.BasicStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.parser.IBlockedStructuredDocumentRegion;
-
-
-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 cc908ad..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/ContextRegionContainer.java
+++ /dev/null
@@ -1,386 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.text.TextRegionListImpl;
-import org.eclipse.wst.sse.core.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionCollection;
-import org.eclipse.wst.sse.core.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-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();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjust(int)
-	 */
-	public void adjust(int i) {
-
-		start += i;
-		// I erroneously added length and textLength
-		// may want to rename this method to adjustStart
-		//length += i;
-		//textLength += i;
-
-	}
-
-	public void adjustLengthWith(int i) {
-		length += i;
-	}
-
-	public void adjustStart(int i) {
-		start += i;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjustTextLength(int)
-	 */
-	public void adjustTextLength(int i) {
-		textLength += i;
-
-	}
-
-	public boolean containsOffset(int i) {
-
-		return getStartOffset() <= i && i < getEndOffset();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#containsOffset(com.ibm.sed.structured.text.ITextRegion,
-	 *      int)
-	 */
-	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();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getEndOffset(com.ibm.sed.structured.text.ITextRegion)
-	 */
-	public int getEndOffset(ITextRegion containedRegion) {
-		return getStartOffset(containedRegion) + containedRegion.getLength();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getFirstRegion()
-	 */
-	public ITextRegion getFirstRegion() {
-		return getRegions().get(0);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getFullText()
-	 */
-	public String getFullText() {
-		// CMVC > 252430, 245586
-		// unit test > com.ibm.sed.tests.other.UnitTests.testDeepEmbeddedJSP3
-		// this code modified on 6/25/03 (pa)
-
-		//		String result = null;
-		//		try {
-		//			result = _getParentDocument().get(start, length);
-		//		} catch (BadLocationException e) {
-		//			Logger.logException("program error: unreachable exception", e);
-		// //$NON-NLS-1$
-		//		}
-		//		return result;
-		return getParent().getFullText(this);
-	}
-
-	public String getFullText(org.eclipse.wst.sse.core.text.ITextRegion aRegion) {
-		// Must be proxied here since aRegion should always be a child of
-		// *this* container and indexed from
-		// this container's offset
-		//	try {
-		return parent.getFullText().substring(start + aRegion.getStart(), start + aRegion.getEnd());
-		//} catch (Exception e) {
-		//if (com.ibm.sed.util.Debug.debugStructuredDocument)
-		//e.printStackTrace();
-		//}
-		//return "";//$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getLastRegion()
-	 */
-	public ITextRegion getLastRegion() {
-		return getRegions().get(getRegions().size() - 1);
-	}
-
-	public int getLength() {
-		return length;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getNumberOfRegions()
-	 */
-	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.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();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getStartOffset(com.ibm.sed.structured.text.ITextRegion)
-	 */
-	public int getStartOffset(ITextRegion containedRegion) {
-		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.text.ITextRegion aRegion) {
-		// Must be proxied here since aRegion should always be a child of
-		// *this* container and indexed from
-		// this container's offset
-		//	com.ibm.sed.util.Assert.isTrue(regions.contains(aRegion));
-		//try {
-		return parent.getText().substring(start + aRegion.getStart(), start + aRegion.getTextEnd());
-		//} catch (Exception e) {
-		//if (com.ibm.sed.util.Debug.debugStructuredDocument)
-		//com.ibm.sed.util.Logger.log(e);
-		//}
-		// return ""; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#getTextEnd()
-	 */
-	public int getTextEnd() {
-		//		int result = 0;
-		//		ITextRegion lastRegion = (ITextRegion) regions.get(regions.size() -
-		// 1);
-		//		result = getStartOffset(lastRegion) + lastRegion.getTextLength();
-		//		return result;
-		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();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegionCollection#getTextEndOffset(com.ibm.sed.structured.text.ITextRegion)
-	 */
-	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 updateModel(Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
-		org.eclipse.wst.sse.core.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 f9c4ab9..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.text.ITextRegion;
-import org.eclipse.wst.sse.core.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 1ff05a0..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XML10Names.java
+++ /dev/null
@@ -1,541 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-/* The following code was generated by JFlex 1.4 on 7/17/04 3:43 AM */
-
-/*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 7/17/04 3:43 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 = "\11\0\1\1\1\2\2\0\1\1\22\0\1\1\14\0\1\0\2\0" + "\12\0\1\3\6\0\32\3\4\0\1\3\1\0\32\3\74\0\1\0" + "\10\0\27\3\1\0\37\3\1\0\72\3\2\0\13\3\2\0\10\3" + "\1\0\65\3\1\0\104\3\11\0\44\3\3\0\2\3\4\0\36\3" + "\70\0\131\3\22\0\7\3\16\0\2\0\56\0\106\0\32\0\2\0" + "\44\0\1\3\1\0\3\3\1\0\1\3\1\0\24\3\1\0\54\3" + "\1\0\7\3\3\0\1\3\1\0\1\3\1\0\1\3\1\0\1\3" + "\1\0\22\3\15\0\14\3\1\0\102\3\1\0\14\3\1\0\44\3" + "\1\0\4\0\11\0\65\3\2\0\2\3\2\0\2\3\3\0\34\3" + "\2\0\10\3\2\0\2\3\67\0\46\3\2\0\1\3\7\0\46\3" + "\12\0\21\0\1\0\27\0\1\0\3\0\1\0\1\0\1\0\2\0" + "\1\0\1\0\13\0\33\3\5\0\3\3\56\0\32\3\5\0\1\0" + "\12\3\10\0\15\0\12\0\6\0\1\0\107\3\2\0\5\3\1\0" + "\17\3\1\0\4\3\1\0\1\3\17\0\2\3\2\0\1\0\4\0" + "\2\0\12\0\u0207\0\3\0\1\0\65\3\2\0\1\0\1\3\20\0" + "\3\0\4\0\3\0\12\3\2\0\2\0\12\0\21\0\3\0\1\0" + "\10\3\2\0\2\3\2\0\26\3\1\0\7\3\1\0\1\3\3\0" + "\4\3\2\0\1\0\1\0\7\0\2\0\2\0\2\0\3\0\11\0" + "\1\0\4\0\2\3\1\0\3\3\2\0\2\0\12\0\2\3\20\0"
-				+ "\1\0\2\0\6\3\4\0\2\3\2\0\26\3\1\0\7\3\1\0" + "\2\3\1\0\2\3\1\0\2\3\2\0\1\0\1\0\5\0\4\0" + "\2\0\2\0\3\0\13\0\4\3\1\0\1\3\7\0\12\0\2\0" + "\3\3\14\0\3\0\1\0\7\3\1\0\1\3\1\0\3\3\1\0" + "\26\3\1\0\7\3\1\0\2\3\1\0\5\3\2\0\1\0\1\3" + "\10\0\1\0\3\0\1\0\3\0\22\0\1\3\5\0\12\0\21\0" + "\3\0\1\0\10\3\2\0\2\3\2\0\26\3\1\0\7\3\1\0" + "\2\3\2\0\4\3\2\0\1\0\1\3\6\0\3\0\2\0\2\0" + "\3\0\10\0\2\0\4\0\2\3\1\0\3\3\4\0\12\0\22\0" + "\2\0\1\0\6\3\3\0\3\3\1\0\4\3\3\0\2\3\1\0" + "\1\3\1\0\2\3\3\0\2\3\3\0\3\3\3\0\10\3\1\0" + "\3\3\4\0\5\0\3\0\3\0\1\0\4\0\11\0\1\0\17\0" + "\11\0\21\0\3\0\1\0\10\3\1\0\3\3\1\0\27\3\1\0" + "\12\3\1\0\5\3\4\0\7\0\1\0\3\0\1\0\4\0\7\0" + "\2\0\11\0\2\3\4\0\12\0\22\0\2\0\1\0\10\3\1\0" + "\3\3\1\0\27\3\1\0\12\3\1\0\5\3\4\0\7\0\1\0" + "\3\0\1\0\4\0\7\0\2\0\7\0\1\3\1\0\2\3\4\0" + "\12\0\22\0\2\0\1\0\10\3\1\0\3\3\1\0\27\3\1\0" + "\20\3\4\0\6\0\2\0\3\0\1\0\4\0\11\0\1\0\10\0" + "\2\3\4\0\12\0\221\0\56\3\1\0\1\3\1\0\2\3\7\0"
-				+ "\5\0\6\3\1\0\10\0\1\0\12\0\47\0\2\3\1\0\1\3" + "\2\0\2\3\1\0\1\3\2\0\1\3\6\0\4\3\1\0\7\3" + "\1\0\3\3\1\0\1\3\1\0\1\3\2\0\2\3\1\0\2\3" + "\1\0\1\3\1\0\2\3\6\0\1\0\2\0\1\3\2\0\5\3" + "\1\0\1\0\1\0\6\0\2\0\12\0\76\0\2\0\6\0\12\0" + "\13\0\1\0\1\0\1\0\1\0\1\0\4\0\2\0\10\3\1\0" + "\41\3\7\0\24\0\1\0\6\0\4\0\6\0\1\0\1\0\1\0" + "\25\0\3\0\7\0\1\0\1\0\346\0\46\3\12\0\47\3\11\0" + "\1\3\1\0\2\3\1\0\3\3\1\0\1\3\1\0\2\3\1\0" + "\5\3\51\0\1\3\1\0\1\3\1\0\1\3\13\0\1\3\1\0" + "\1\3\1\0\1\3\3\0\2\3\3\0\1\3\5\0\3\3\1\0" + "\1\3\1\0\1\3\1\0\1\3\1\0\1\3\3\0\2\3\3\0" + "\2\3\1\0\1\3\50\0\1\3\11\0\1\3\2\0\1\3\2\0" + "\2\3\7\0\2\3\1\0\1\3\1\0\7\3\50\0\1\3\4\0" + "\1\3\10\0\1\3\u0c06\0\234\3\4\0\132\3\6\0\26\3\2\0" + "\6\3\2\0\46\3\2\0\6\3\2\0\10\3\1\0\1\3\1\0" + "\1\3\1\0\1\3\1\0\37\3\2\0\65\3\1\0\7\3\1\0" + "\1\3\3\0\3\3\1\0\7\3\3\0\4\3\2\0\6\3\4\0" + "\15\3\5\0\3\3\1\0\7\3\323\0\15\0\4\0\1\0\104\0" + "\1\3\3\0\2\3\2\0\1\3\121\0\3\3\u0e82\0\1\0\1\0"
-				+ "\1\3\31\0\11\3\6\0\1\0\5\0\13\0\124\3\4\0\2\0" + "\2\0\2\0\2\0\132\3\1\0\3\0\6\0\50\3\u1cd3\0\u51a6\3" + "\u0c5a\0\u2ba4\3\u285c\0";
-
-	/**
-	 * 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\4\1";
-
-	private static int[] zzUnpackAction() {
-		int[] result = new int[7];
-		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\0\20\0\24\0\30";
-
-	private static int[] zzUnpackRowMap() {
-		int[] result = new int[7];
-		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, 1, -1, 2, -1, -1, -1, -1, 2, 3, 4, 2, 2, 3, 4, 5, -1, 4, 4, 6, 5, 5, 4, 5, 6, 6, -1, 6,};
-
-	/* 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\5\1";
-
-	private static int[] zzUnpackAttribute() {
-		int[] result = new int[7];
-		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 */
-	 int yyline;
-
-	/** the number of characters up to the start of the matched text */
-	 int yychar;
-
-	/**
-	 * the number of characters from the last newline up to the start of the
-	 * matched text
-	 */
-	 int yycolumn;
-
-	/**
-	 * zzAtBOL == true <=>the scanner is currently at the beginning of a line
-	 */
-	 boolean zzAtBOL = true;
-
-	/** zzAtEOF == true <=>the scanner is at the EOF */
-	private boolean zzAtEOF;
-
-	/* user code: */
-
-	/**
-	 * 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 < 1226) {
-			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.
-	 */
-	 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.
-	 */
-	 final int yystate() {
-		return zzLexicalState;
-	}
-
-
-	/**
-	 * Enters a new lexical state
-	 * 
-	 * @param newState
-	 *            the new lexical state
-	 */
-	 final void yybegin(int newState) {
-		zzLexicalState = newState;
-	}
-
-
-	/**
-	 * Returns the text matched by the current regular expression.
-	 */
-	 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
-	 */
-	 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()!
-	 */
-	 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;
-				}
-				case 3 :
-					break;
-				case 2 : {
-					return true;
-				}
-				case 4 :
-					break;
-				default :
-					if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
-						zzAtEOF = true;
-						{
-							{
-								return false;
-							}
-						}
-					} else {
-						zzScanError(ZZ_NO_MATCH);
-					}
-			}
-		}
-	}
-
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLRegionContexts.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLRegionContexts.java
deleted file mode 100644
index 5c622ab..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLRegionContexts.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser;
-
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-/**
- * @deprecated - use org.eclipse.wst.xml.core.parser.XMLRegionContext
- */
-public interface XMLRegionContexts extends XMLRegionContext {
-}
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 b519fcc..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLSourceParser.java
+++ /dev/null
@@ -1,595 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.document.DocumentReader;
-import org.eclipse.wst.sse.core.internal.text.CharSequenceReader;
-import org.eclipse.wst.sse.core.internal.text.IRegionComparible;
-import org.eclipse.wst.sse.core.parser.BlockMarker;
-import org.eclipse.wst.sse.core.parser.BlockTagParser;
-import org.eclipse.wst.sse.core.parser.BlockTokenizer;
-import org.eclipse.wst.sse.core.parser.RegionParser;
-import org.eclipse.wst.sse.core.parser.StructuredDocumentRegionHandler;
-import org.eclipse.wst.sse.core.parser.StructuredDocumentRegionParser;
-import org.eclipse.wst.sse.core.parser.StructuredDocumentRegionParserExtension;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.text.ITextRegionList;
-import org.eclipse.wst.sse.core.util.Debug;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-/**
- * 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 == XMLRegionContext.BLOCK_TEXT)
-			newNode = XMLStructuredRegionFactory.createRegion(XMLStructuredRegionFactory.XML_BLOCK);
-		else
-			newNode = XMLStructuredRegionFactory.createRegion(XMLStructuredRegionFactory.XML);
-		return newNode;
-	}
-
-	protected void fireNodeParsed(IStructuredDocumentRegion fCurrentNode) {
-		if (fCurrentNode != null && fStructuredDocumentRegionHandlers != null) {
-			for (int i = 0; i < fStructuredDocumentRegionHandlers.size(); i++)
-				((StructuredDocumentRegionHandler) fStructuredDocumentRegionHandlers.get(i)).nodeParsed(fCurrentNode);
-		}
-	}
-
-	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;
-	}
-
-	/**
-	 * 
-	 * @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 = "";
-			}
-		} 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;
-	}
-
-	/**
-	 * @see com.ibm.sed.parser.RegionParser#newInstance()
-	 */
-	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 == XMLRegionContext.BLOCK_TEXT) {
-				if (currentNode != null && currentNode.getLastRegion().getType() == XMLRegionContext.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 == XMLRegionContext.XML_CONTENT) || (type == XMLRegionContext.XML_CHAR_REFERENCE) || (type == XMLRegionContext.XML_ENTITY_REFERENCE) || (type == XMLRegionContext.XML_PI_OPEN) || (type == XMLRegionContext.XML_TAG_OPEN) || (type == XMLRegionContext.XML_END_TAG_OPEN) || (type == XMLRegionContext.XML_COMMENT_OPEN) || (type == XMLRegionContext.XML_CDATA_OPEN) || (type == XMLRegionContext.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 == XMLRegionContext.XML_TAG_NAME) || (type == XMLRegionContext.XML_TAG_ATTRIBUTE_NAME) || (type == XMLRegionContext.XML_TAG_ATTRIBUTE_EQUALS) || (type == XMLRegionContext.XML_TAG_ATTRIBUTE_VALUE) || (type == XMLRegionContext.XML_COMMENT_TEXT) || (type == XMLRegionContext.XML_PI_CONTENT) || (type == XMLRegionContext.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 == XMLRegionContext.XML_PI_CLOSE) || (type == XMLRegionContext.XML_TAG_CLOSE) || (type == XMLRegionContext.XML_EMPTY_TAG_CLOSE) || (type == XMLRegionContext.XML_COMMENT_CLOSE) || (type == XMLRegionContext.XML_DECLARATION_CLOSE) || (type == XMLRegionContext.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 == XMLRegionContext.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().adjustLengthWith(region.getLength());
-				currentNode.adjustLengthWith(region.getLength());
-			} else if (type == XMLRegionContext.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() == XMLRegionContext.UNDEFINED) {
-					currentNode.getLastRegion().adjustLengthWith(region.getLength());
-					currentNode.adjustLengthWith(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 == XMLRegionContext.XML_CONTENT) || (type == XMLRegionContext.XML_CHAR_REFERENCE) || (type == XMLRegionContext.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 518d4f6..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLStructuredDocumentReParser.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser;
-
-import org.eclipse.wst.sse.core.internal.text.StructuredDocumentReParser;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.IStructuredTextReParser;
-import org.eclipse.wst.xml.core.jsp.model.parser.temp.XMLJSPRegionContexts;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-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 == XMLRegionContext.XML_CONTENT) {
-			IStructuredDocumentRegion previous = flatNode.getPrevious();
-			String previousType = null;
-			if (previous != null) {
-				previousType = previous.getType();
-			}
-			if (previousType != null) {
-				result = (previousType == XMLRegionContext.XML_TAG_OPEN);
-			}
-		}
-		return result;
-	}
-
-	protected boolean isPartOfBlockRegion(IStructuredDocumentRegion flatNode) {
-		boolean result = false;
-		String type = flatNode.getType();
-		result = (type == XMLRegionContext.BLOCK_TEXT || type == XMLJSPRegionContexts.JSP_CONTENT);
-		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 0411d66..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.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 9811e19..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLTokenizer.java
+++ /dev/null
@@ -1,1699 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/* The following code was generated by JFlex 1.2.2 on 9/23/04 1:31 AM */
-
-/*nlsXXX*/
-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.parser.BlockMarker;
-import org.eclipse.wst.sse.core.parser.BlockTokenizer;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.util.Debug;
-import org.eclipse.wst.sse.core.util.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.parser.XMLRegionContext;
-
-
-
-/**
- * This class is a scanner generated by <a
- * href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex </a> 1.2.2
- * on 9/23/04 1:31 AM from the specification file
- * <tt>file:/D:/eclipse.rad/workspace.rad/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex</tt>
- */
-public class XMLTokenizer implements BlockTokenizer, XMLRegionContext {
-
-	/** 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\51" + "\1\16\1\17\1\12\1\13\1\16\1\16\1\16\1\16\1\16\1\7" + "\1\6\1\3\12\15\1\10\1\54\1\1\1\43\1\2\1\4\1\16" + "\1\32\1\55\1\30\1\31\1\35\1\52\1\34\1\34\1\40\1\34" + "\1\34\1\26\1\25\1\42\1\41\1\45\1\34\1\36\1\37\1\33" + "\1\53\2\34\1\23\1\44\1\34\1\27\1\0\1\20\1\0\1\10" + "\1\0\1\47\1\55\1\56\1\50\1\35\1\52\1\34\1\34\1\40" + "\2\34\1\26\1\25\1\42\1\41\1\45\1\34\1\36\1\37\1\46" + "\1\53\1\34\1\34\1\24\1\44\1\34\1\0\1\0\72\0\1\60" + "\10\0\27\57\1\0\37\57\1\0\72\57\2\0\13\57\2\0\10\57" + "\1\0\65\57\1\0\104\57\11\0\44\57\3\0\2\57\4\0\36\57" + "\70\0\131\57\22\0\7\57\16\0\2\60\56\0\106\60\32\0\2\60" + "\44\0\1\57\1\60\3\57\1\0\1\57\1\0\24\57\1\0\54\57" + "\1\0\7\57\3\0\1\57\1\0\1\57\1\0\1\57\1\0\1\57" + "\1\0\22\57\15\0\14\57\1\0\102\57\1\0\14\57\1\0\44\57" + "\1\0\4\60\11\0\65\57\2\0\2\57\2\0\2\57\3\0\34\57" + "\2\0\10\57\2\0\2\57\67\0\46\57\2\0\1\57\7\0\46\57"
-				+ "\12\0\21\60\1\0\27\60\1\0\3\60\1\0\1\60\1\0\2\60" + "\1\0\1\60\13\0\33\57\5\0\3\57\56\0\32\57\5\0\1\60" + "\12\57\10\60\15\0\12\60\6\0\1\60\107\57\2\0\5\57\1\0" + "\17\57\1\0\4\57\1\0\1\57\17\60\2\57\2\60\1\0\4\60" + "\2\0\12\60\u0207\0\3\60\1\0\65\57\2\0\1\60\1\57\20\60" + "\3\0\4\60\3\0\12\57\2\60\2\0\12\60\21\0\3\60\1\0" + "\10\57\2\0\2\57\2\0\26\57\1\0\7\57\1\0\1\57\3\0" + "\4\57\2\0\1\60\1\0\7\60\2\0\2\60\2\0\3\60\11\0" + "\1\60\4\0\2\57\1\0\3\57\2\60\2\0\12\60\2\57\20\0" + "\1\60\2\0\6\57\4\0\2\57\2\0\26\57\1\0\7\57\1\0" + "\2\57\1\0\2\57\1\0\2\57\2\0\1\60\1\0\5\60\4\0" + "\2\60\2\0\3\60\13\0\4\57\1\0\1\57\7\0\12\60\2\60" + "\3\57\14\0\3\60\1\0\7\57\1\0\1\57\1\0\3\57\1\0" + "\26\57\1\0\7\57\1\0\2\57\1\0\5\57\2\0\1\60\1\57" + "\10\60\1\0\3\60\1\0\3\60\22\0\1\57\5\0\12\60\21\0" + "\3\60\1\0\10\57\2\0\2\57\2\0\26\57\1\0\7\57\1\0" + "\2\57\2\0\4\57\2\0\1\60\1\57\6\60\3\0\2\60\2\0" + "\3\60\10\0\2\60\4\0\2\57\1\0\3\57\4\0\12\60\22\0"
-				+ "\2\60\1\0\6\57\3\0\3\57\1\0\4\57\3\0\2\57\1\0" + "\1\57\1\0\2\57\3\0\2\57\3\0\3\57\3\0\10\57\1\0" + "\3\57\4\0\5\60\3\0\3\60\1\0\4\60\11\0\1\60\17\0" + "\11\60\21\0\3\60\1\0\10\57\1\0\3\57\1\0\27\57\1\0" + "\12\57\1\0\5\57\4\0\7\60\1\0\3\60\1\0\4\60\7\0" + "\2\60\11\0\2\57\4\0\12\60\22\0\2\60\1\0\10\57\1\0" + "\3\57\1\0\27\57\1\0\12\57\1\0\5\57\4\0\7\60\1\0" + "\3\60\1\0\4\60\7\0\2\60\7\0\1\57\1\0\2\57\4\0" + "\12\60\22\0\2\60\1\0\10\57\1\0\3\57\1\0\27\57\1\0" + "\20\57\4\0\6\60\2\0\3\60\1\0\4\60\11\0\1\60\10\0" + "\2\57\4\0\12\60\221\0\56\57\1\0\1\57\1\60\2\57\7\60" + "\5\0\6\57\1\60\10\60\1\0\12\60\47\0\2\57\1\0\1\57" + "\2\0\2\57\1\0\1\57\2\0\1\57\6\0\4\57\1\0\7\57" + "\1\0\3\57\1\0\1\57\1\0\1\57\2\0\2\57\1\0\2\57" + "\1\0\1\57\1\60\2\57\6\60\1\0\2\60\1\57\2\0\5\57" + "\1\0\1\60\1\0\6\60\2\0\12\60\76\0\2\60\6\0\12\60" + "\13\0\1\60\1\0\1\60\1\0\1\60\4\0\2\60\10\57\1\0" + "\41\57\7\0\24\60\1\0\6\60\4\0\6\60\1\0\1\60\1\0"
-				+ "\25\60\3\0\7\60\1\0\1\60\346\0\46\57\12\0\47\57\11\0" + "\1\57\1\0\2\57\1\0\3\57\1\0\1\57\1\0\2\57\1\0" + "\5\57\51\0\1\57\1\0\1\57\1\0\1\57\13\0\1\57\1\0" + "\1\57\1\0\1\57\3\0\2\57\3\0\1\57\5\0\3\57\1\0" + "\1\57\1\0\1\57\1\0\1\57\1\0\1\57\3\0\2\57\3\0" + "\2\57\1\0\1\57\50\0\1\57\11\0\1\57\2\0\1\57\2\0" + "\2\57\7\0\2\57\1\0\1\57\1\0\7\57\50\0\1\57\4\0" + "\1\57\10\0\1\57\u0c06\0\234\57\4\0\132\57\6\0\26\57\2\0" + "\6\57\2\0\46\57\2\0\6\57\2\0\10\57\1\0\1\57\1\0" + "\1\57\1\0\1\57\1\0\37\57\2\0\65\57\1\0\7\57\1\0" + "\1\57\3\0\3\57\1\0\7\57\3\0\4\57\2\0\6\57\4\0" + "\15\57\5\0\3\57\1\0\7\57\323\0\15\60\4\0\1\60\104\0" + "\1\57\3\0\2\57\2\0\1\57\121\0\3\57\u0e82\0\1\60\1\0" + "\1\57\31\0\11\57\6\60\1\0\5\60\13\0\124\57\4\0\2\60" + "\2\0\2\60\2\0\132\57\1\0\3\60\6\0\50\57\u1cd3\0\u51a6\57" + "\u0c5a\0\u2ba4\57\134\0\u0800\0\u1ffe\0\2\0";
-
-	/**
-	 * 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, 49, 98, 147, 196, 245, 294, 343, 392, 441, 490, 539, 588, 637, 686, 735, 784, 833, 882, 931, 980, 1029, 1078, 1127, 1176, 1225, 1274, 1323, 1372, 1421, 1470, 1519, 1568, 1617, 1666, 1715, 1764, 1715, 1764, 1813, 1715, 1715, 1764, 1862, 1911, 1960, 2009, 2058, 2107, 2156, 1715, 1764, 2205, 2254, 2303, 1715, 2352, 2352, 2401, 2450, 2499, 2205, 1715, 2548, 2597, 1715, 2646, 2695, 2744, 2793, 2842, 2891, 1715, 2940, 2989, 3038, 3087, 1715, 3136, 3185, 3234, 3283, 3332, 1715, 3381, 3430, 3479, 3528, 3577, 3626, 3675, 3724, 3724, 3773, 3822, 3871, 3920, 3920, 3969, 4018, 4067, 4116, 4116, 4165, 4214, 4263, 4312, 1715, 4361, 4361, 4410, 4459, 4508, 4557, 1715, 1715, 1764, 1715, 1715, 4606, 4655, 4704, 4753, 4802, 4851, 4900, 4949, 1715, 4998, 5047, 1715, 1715, 2352, 5096, 2450, 1715, 5145, 2499, 2548, 2646, 2695, 5194, 2744, 1715, 5243, 2793, 1715, 3136, 5292, 3234, 1715, 5341, 3283, 4606, 5390, 5439, 5488, 3528, 1715, 5537, 5586, 3724, 5635,
-				3773, 1715, 5684, 5733, 5782, 5782, 5831, 5880, 3871, 3724, 3920, 5929, 3969, 1715, 5978, 4018, 4067, 3920, 4116, 6027, 4165, 1715, 6076, 6125, 6174, 6174, 6223, 6272, 6321, 4361, 6370, 4410, 1715, 6419, 6468, 6517, 6517, 6566, 6615, 6664, 6713, 6762, 6811, 6860, 1715, 6909, 6958, 1715, 1715, 1715, 2009, 7007, 7056, 7105, 7154, 7203, 7252, 5684, 7301, 7301, 6076, 7350, 7350, 7399, 6419, 7448, 7448, 7497, 1715, 7546, 7595, 1715, 7644, 7693, 7742, 7791, 7840, 7889, 7938, 5831, 6223, 7987, 6566, 8036, 8085, 8134, 8183, 8232, 8281, 8330, 8379, 8428, 8477, 8526, 2009, 8575, 8624, 8673, 1715, 1715, 8722, 8771, 8820, 1715, 1715, 1715, 8869, 8918, 8967, 9016, 9065, 1715, 4263, 4508};
-
-	/**
-	 * The packed transition table of the DFA
-	 */
-	final private static String yy_packed = "\1\40\1\41\10\40\1\42\4\40\1\43\41\40\1\44" + "\1\45\57\44\1\46\1\47\16\46\1\50\1\46\1\51" + "\36\46\1\52\1\53\57\52\1\46\1\47\5\46\1\54" + "\12\46\1\51\37\46\1\47\2\46\1\55\1\56\2\46" + "\1\57\3\46\1\56\5\46\1\56\2\60\2\57\1\46" + "\10\57\1\61\2\57\1\46\5\57\1\46\2\57\1\46" + "\3\57\2\46\1\47\2\46\1\55\1\62\6\46\1\62" + "\5\46\1\62\36\46\1\63\1\64\2\63\1\65\15\63" + "\1\51\36\63\1\46\1\47\2\46\1\66\1\56\2\46" + "\1\67\3\46\1\56\5\46\1\56\4\67\1\46\13\67" + "\1\46\5\67\1\46\2\67\1\46\3\67\2\46\1\47" + "\2\46\1\66\1\56\2\46\1\67\3\46\1\56\5\46" + "\1\56\4\67\1\46\13\67\1\70\5\67\1\46\2\67" + "\1\46\3\67\1\46\1\71\1\47\1\46\1\72\1\73" + "\1\56\3\71\1\74\1\71\1\75\1\56\5\71\1\56" + "\36\71\1\46\1\47\2\46\1\76\15\46\1\51\37\46" + "\1\47\1\77\1\100\1\46\1\56\2\46\1\101\3\46" + "\1\56\5\46\1\56\4\101\1\46\13\101\1\46\5\101" + "\1\46\2\101\1\46\3\101\2\46\1\47\1\77\1\100" + "\1\46\1\56\2\46\1\101\3\46\1\56\5\46\1\56"
-				+ "\4\101\1\46\13\101\1\102\5\101\1\46\2\101\1\46" + "\3\101\1\46\1\103\1\47\1\77\1\104\1\103\1\56" + "\3\103\1\105\1\103\1\106\1\56\5\103\1\56\36\103" + "\1\46\1\47\3\46\1\56\6\46\1\56\5\46\1\56" + "\36\46\1\107\1\110\1\111\1\112\4\107\1\113\12\107" + "\4\114\1\107\13\114\1\107\5\114\1\107\2\114\1\107" + "\3\114\1\107\1\46\1\110\1\111\1\112\1\46\1\56" + "\2\46\1\115\3\46\1\56\5\46\1\56\4\115\1\46" + "\13\115\1\46\5\115\1\46\2\115\1\46\3\115\2\46" + "\1\110\1\111\1\112\1\46\1\56\2\46\1\115\3\46" + "\1\56\5\46\1\56\4\115\1\46\13\115\1\116\5\115" + "\1\46\2\115\1\46\3\115\1\46\1\117\1\110\1\111" + "\1\120\1\117\1\56\3\117\1\121\1\117\1\122\1\56" + "\5\117\1\56\36\117\1\46\1\123\1\124\2\46\1\56" + "\6\46\1\56\5\46\1\56\6\46\1\125\1\126\2\46" + "\1\127\11\46\1\126\1\125\11\46\1\47\1\124\2\46" + "\1\56\6\46\1\56\5\46\1\56\4\46\1\130\32\46" + "\1\47\1\124\2\46\1\56\2\46\1\131\3\46\1\56" + "\5\46\1\56\4\131\1\130\13\131\1\46\5\131\1\46"
-				+ "\2\131\1\46\3\131\2\46\1\47\1\124\2\46\1\56" + "\6\46\1\56\5\46\1\56\4\46\1\130\7\46\1\132" + "\5\46\1\133\13\46\1\134\1\47\1\124\1\135\1\134" + "\1\56\3\134\1\136\1\134\1\137\1\56\5\134\1\56" + "\4\134\1\140\31\134\1\141\1\47\1\124\1\142\1\141" + "\1\56\3\141\1\143\1\141\1\144\1\56\5\141\1\56" + "\4\141\1\145\31\141\1\146\1\47\1\124\1\147\1\146" + "\1\56\3\146\1\150\1\146\1\151\1\56\5\146\1\56" + "\36\146\1\152\1\153\1\154\56\152\1\155\1\47\1\124" + "\1\156\1\155\1\56\3\155\1\157\1\155\1\160\1\56" + "\5\155\1\56\36\155\1\161\1\162\1\163\56\161\1\164" + "\1\165\57\164\1\40\1\0\10\40\1\0\4\40\1\0" + "\41\40\3\0\1\166\1\167\14\0\1\170\44\0\1\171" + "\2\0\1\172\3\0\1\171\5\0\1\171\4\172\1\0" + "\13\172\1\0\5\172\1\173\2\172\1\0\3\172\6\0" + "\1\171\2\0\1\174\3\0\1\171\5\0\1\171\4\174" + "\1\0\13\174\1\0\5\174\1\0\2\174\1\0\3\174" + "\103\0\1\175\57\0\1\176\47\0\1\177\53\0\1\200" + "\63\0\1\56\6\0\1\56\5\0\1\56\44\0\3\57" + "\4\0\1\57\5\0\4\57\1\0\13\57\1\0\5\57"
-				+ "\1\0\2\57\1\0\4\57\6\0\3\57\4\0\1\57" + "\5\0\2\57\1\201\1\57\1\0\13\57\1\0\5\57" + "\1\0\2\57\1\0\4\57\6\0\3\57\4\0\1\57" + "\5\0\2\57\1\202\1\57\1\0\13\57\1\0\5\57" + "\1\0\2\57\1\0\4\57\5\0\1\62\6\0\1\62" + "\5\0\1\62\40\0\1\203\60\0\1\204\64\0\3\67" + "\4\0\1\67\5\0\4\67\1\0\13\67\1\0\5\67" + "\1\0\2\67\1\0\4\67\1\71\2\0\1\205\1\71" + "\1\0\3\71\1\0\1\71\2\0\5\71\1\0\37\71" + "\1\0\1\204\1\205\1\71\1\0\3\71\1\0\1\71" + "\2\0\5\71\1\0\36\71\1\74\1\0\1\206\1\207" + "\1\74\1\206\3\74\1\210\1\74\2\206\5\74\1\206" + "\36\74\1\75\1\0\1\211\1\212\1\75\1\211\3\75" + "\1\211\1\75\1\210\1\211\5\75\1\211\36\75\2\0" + "\1\77\1\213\63\0\3\101\4\0\1\101\5\0\4\101" + "\1\0\13\101\1\0\5\101\1\0\2\101\1\0\4\101" + "\1\103\2\0\1\214\1\103\1\0\3\103\1\0\1\103" + "\2\0\5\103\1\0\37\103\1\0\1\77\1\215\1\103" + "\1\0\3\103\1\0\1\103\2\0\5\103\1\0\36\103" + "\1\105\1\0\1\216\1\217\1\105\1\216\3\105\1\220" + "\1\105\2\216\5\105\1\216\36\105\1\106\1\0\1\221"
-				+ "\1\222\1\106\1\221\3\106\1\221\1\106\1\220\1\221" + "\5\106\1\221\36\106\1\107\3\0\17\107\4\0\1\107" + "\13\0\1\107\5\0\1\107\2\0\1\107\3\0\1\107" + "\3\0\1\166\15\0\1\170\41\0\1\223\56\0\1\107" + "\3\0\2\107\3\113\4\107\1\113\5\107\4\114\1\107" + "\13\114\1\107\5\114\1\107\2\114\1\107\3\114\1\113" + "\6\0\3\114\4\0\1\114\5\0\4\114\1\0\13\114" + "\1\0\5\114\1\0\2\114\1\0\4\114\6\0\3\115" + "\4\0\1\115\5\0\4\115\1\0\13\115\1\0\5\115" + "\1\0\2\115\1\0\4\115\1\117\2\0\1\224\1\117" + "\1\0\3\117\1\0\1\117\2\0\5\117\1\0\37\117" + "\1\0\1\223\1\224\1\117\1\0\3\117\1\0\1\117" + "\2\0\5\117\1\0\36\117\1\121\1\0\1\225\1\226" + "\1\121\1\225\3\121\1\227\1\121\2\225\5\121\1\225" + "\36\121\1\122\1\0\1\230\1\231\1\122\1\230\3\122" + "\1\230\1\122\1\227\1\230\5\122\1\230\36\122\3\0" + "\1\166\15\0\1\232\100\0\1\233\52\0\1\234\12\0" + "\1\234\40\0\1\235\32\0\20\236\1\237\40\236\6\0" + "\3\131\4\0\1\131\5\0\4\131\1\0\13\131\1\0" + "\5\131\1\0\2\131\1\0\4\131\44\0\1\240\67\0"
-				+ "\1\241\5\0\1\134\2\0\1\242\1\134\1\0\3\134" + "\1\0\1\134\2\0\5\134\1\0\36\134\1\136\1\0" + "\1\243\1\244\1\136\1\243\3\136\1\245\1\136\2\243" + "\5\136\1\243\36\136\1\246\1\0\1\247\1\250\1\251" + "\1\247\3\251\1\247\1\246\1\252\1\253\3\251\1\246" + "\1\251\1\253\4\251\1\246\27\251\2\246\1\140\2\236" + "\1\254\1\140\1\236\3\140\1\236\1\140\2\236\3\140" + "\1\255\1\140\1\236\36\140\1\141\2\0\1\256\1\141" + "\1\0\3\141\1\0\1\141\2\0\5\141\1\0\36\141" + "\1\143\2\257\1\260\1\143\1\257\3\143\1\261\1\143" + "\2\257\5\143\1\257\36\143\1\144\2\262\1\263\1\144" + "\1\262\3\144\1\262\1\144\1\261\1\262\5\144\1\262" + "\36\144\1\145\2\236\1\264\1\145\1\236\3\145\1\236" + "\1\145\2\236\3\145\1\265\1\145\1\236\36\145\1\146" + "\2\0\1\266\1\146\1\0\3\146\1\0\1\146\2\0" + "\5\146\1\0\36\146\1\150\1\0\1\267\1\270\1\150" + "\1\267\3\150\1\271\1\150\2\267\5\150\1\267\36\150" + "\1\272\1\0\1\273\1\274\1\275\1\273\3\275\1\273" + "\1\272\1\276\1\277\3\275\1\272\1\275\1\277\4\275"
-				+ "\1\272\27\275\2\272\2\152\1\0\60\152\1\0\16\152" + "\1\300\37\152\1\155\2\0\1\301\1\155\1\0\3\155" + "\1\0\1\155\2\0\5\155\1\0\36\155\1\157\1\0" + "\1\302\1\303\1\157\1\302\3\157\1\304\1\157\2\302" + "\5\157\1\302\36\157\1\305\1\0\1\306\1\307\1\310" + "\1\306\3\310\1\306\1\305\1\311\1\312\3\310\1\305" + "\1\310\1\312\4\310\1\305\27\310\2\305\2\161\1\0" + "\60\161\1\0\16\161\1\313\37\161\7\0\1\314\17\0" + "\1\315\36\0\1\171\2\0\1\40\3\0\1\171\5\0" + "\1\171\4\40\1\0\13\40\1\0\5\40\1\0\2\40" + "\1\0\3\40\1\0\1\316\1\0\3\316\1\317\3\172" + "\1\316\1\0\1\316\1\317\1\172\1\316\1\0\2\316" + "\1\317\4\172\1\316\13\172\1\316\5\172\1\316\2\172" + "\1\320\4\172\15\0\1\321\6\0\1\322\34\0\1\316" + "\1\0\3\316\1\317\3\174\1\316\1\0\1\316\1\317" + "\1\174\1\316\1\0\2\316\1\317\4\174\1\316\13\174" + "\1\316\5\174\1\316\2\174\1\323\4\174\27\0\1\315" + "\33\0\1\324\60\0\1\325\64\0\3\57\4\0\1\57" + "\5\0\3\57\1\326\1\0\13\57\1\0\5\57\1\0" + "\2\57\1\0\4\57\6\0\3\57\4\0\1\57\5\0"
-				+ "\4\57\1\0\13\57\1\0\1\57\1\327\3\57\1\0" + "\2\57\1\0\4\57\1\206\1\0\7\206\1\210\47\206" + "\1\211\1\0\11\211\1\210\45\211\1\216\1\0\7\216" + "\1\220\47\216\1\221\1\0\11\221\1\220\45\221\1\225" + "\1\0\7\225\1\227\47\225\1\230\1\0\11\230\1\227" + "\45\230\30\0\1\330\25\0\1\330\35\0\1\331\12\0" + "\1\331\47\0\1\332\62\0\1\333\76\0\1\334\3\0" + "\1\243\1\0\7\243\1\245\47\243\1\246\1\0\1\247" + "\1\335\1\246\1\247\3\246\1\247\1\246\1\245\1\247" + "\5\246\1\247\36\246\1\247\1\0\11\247\1\245\45\247" + "\1\246\1\0\1\247\1\335\1\246\1\247\3\246\1\247" + "\1\246\1\336\1\247\5\246\1\247\36\246\13\0\1\337" + "\45\0\1\247\1\0\11\247\1\336\45\247\11\257\1\261" + "\47\257\13\262\1\261\45\262\1\267\1\0\7\267\1\271" + "\47\267\1\272\1\0\1\273\1\340\1\272\1\273\3\272" + "\1\273\1\272\1\271\1\273\5\272\1\273\36\272\1\273" + "\1\0\11\273\1\271\45\273\1\272\1\0\1\273\1\340" + "\1\272\1\273\3\272\1\273\1\272\1\341\1\273\5\272" + "\1\273\36\272\13\0\1\342\45\0\1\273\1\0\11\273"
-				+ "\1\341\45\273\2\152\1\0\24\152\1\343\31\152\1\302" + "\1\0\7\302\1\304\47\302\1\305\1\0\1\306\1\344" + "\1\305\1\306\3\305\1\306\1\305\1\304\1\306\5\305" + "\1\306\36\305\1\306\1\0\11\306\1\304\45\306\1\305" + "\1\0\1\306\1\344\1\305\1\306\3\305\1\306\1\305" + "\1\345\1\306\5\305\1\306\36\305\13\0\1\346\45\0" + "\1\306\1\0\11\306\1\345\45\306\2\161\1\0\24\161" + "\1\347\31\161\7\0\1\350\101\0\1\351\30\0\1\316" + "\1\0\10\316\1\0\4\316\1\0\34\316\1\0\5\316" + "\1\0\3\316\1\317\4\316\1\0\1\316\1\317\2\316" + "\1\0\2\316\1\317\31\316\1\352\4\316\15\0\1\321" + "\36\0\1\353\21\0\1\354\12\0\3\354\2\0\1\354" + "\11\0\2\354\1\0\1\354\2\0\2\354\10\0\3\57" + "\4\0\1\57\5\0\4\57\1\0\11\57\1\355\1\57" + "\1\0\5\57\1\0\2\57\1\0\4\57\33\0\1\356" + "\12\0\1\356\40\0\1\357\57\0\1\360\66\0\1\361" + "\12\0\1\361\40\0\1\362\35\0\2\363\1\0\3\363" + "\2\0\1\252\4\363\1\0\6\363\1\0\27\363\5\0" + "\2\364\1\0\3\364\2\0\1\276\4\364\1\0\6\364"
-				+ "\1\0\27\364\2\0\2\152\1\0\25\152\1\365\30\152" + "\3\0\2\366\1\0\3\366\2\0\1\311\4\366\1\0" + "\6\366\1\0\27\366\2\0\2\161\1\0\25\161\1\367" + "\30\161\31\0\1\370\103\0\1\352\21\0\1\354\12\0" + "\3\354\2\0\1\354\11\0\2\354\1\0\1\354\1\0" + "\1\353\2\354\10\0\3\57\4\0\1\57\5\0\4\57" + "\1\0\6\57\1\371\4\57\1\0\5\57\1\0\2\57" + "\1\0\4\57\44\0\1\372\54\0\1\373\55\0\1\374" + "\60\0\1\375\63\0\1\376\20\0\2\152\1\0\26\152" + "\1\377\27\152\2\161\1\0\26\161\1\u0100\27\161\32\0" + "\1\u0101\34\0\3\57\4\0\1\57\5\0\4\57\1\0" + "\3\57\1\u0102\7\57\1\0\2\57\1\u0102\2\57\1\0" + "\2\57\1\0\4\57\45\0\1\u0103\52\0\1\u0104\63\0" + "\1\u0105\43\0\1\u0106\63\0\1\u0107\25\0\1\u0107\2\0" + "\2\152\1\0\27\152\1\u0108\26\152\2\161\1\0\27\161" + "\1\u0109\26\161\33\0\1\u010a\62\0\1\u010b\56\0\1\u010c" + "\12\0\1\u010c\45\0\1\u010d\12\0\1\u010d\12\0\2\152" + "\1\0\30\152\1\u010e\25\152\2\161\1\0\30\161\1\u010f" + "\25\161\32\0\1\u0110\26\0\2\152\1\0\27\152\1\u0111"
-				+ "\26\152\2\161\1\0\27\161\1\u0112\26\161\27\0\1\u0113" + "\31\0\2\152\1\0\24\152\1\u0114\31\152\2\161\1\0" + "\24\161\1\u0115\31\161";
-
-	/**
-	 * 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, 9, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 9, 1, 9, 9, 1, 0, 1, 0, 1, 0, 0, 0, 9, 1, 1, 9, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 9, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 9, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 9, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 9, 0, 0, 9, 9, 9, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 9, 0, 1, 9, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 9, 9, 1, 1, 0, 9, 9, 9, 1, 1, 0, 1, 1, 9, 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 ContextRegionContainer fBufferedEmbeddedContainer = null;
-	private String f_context = null;
-
-	// state stack for handling embedded regions
-	private IntStack fStateStack = new IntStack();
-	// a "hint" as to what an embedded region should be evaluated
-	 String fEmbeddedHint = UNDEFINED;
-	// a "hint" as to what state to enter once an embedded region has
-	//   been completed
-	 int fEmbeddedPostState = YYINITIAL;
-	// the container used to create embedded regions
-	private ContextRegionContainer fEmbeddedContainer = null;
-	private static final String PROXY_CONTEXT = "PROXY_CONTEXT";
-
-	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();
-
-	 static final String rcsver = "$Id: XMLTokenizer.java,v 1.4 2004/12/07 21:46:18 david_williams Exp $";//$NON-NLS-1$
-
-	/**
-	 * 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 {
-		fEmbeddedContainer = null;
-		// load the starting non-whitespace token (assume that it is so)
-		if (fShouldLoadBuffered) {
-			if (fBufferedEmbeddedContainer != null) {
-				ITextRegion container = fBufferedEmbeddedContainer;
-				fBufferedEmbeddedContainer = null;
-				fShouldLoadBuffered = false;
-				return container;
-			}
-			context = fBufferedContext;
-			start = fBufferedStart;
-			textLength = length = fBufferedLength;
-			fShouldLoadBuffered = false;
-		} else {
-			context = primGetNextToken();
-			if (context == PROXY_CONTEXT) {
-				return fEmbeddedContainer;
-			} else 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 == PROXY_CONTEXT) {
-			fBufferedEmbeddedContainer = fEmbeddedContainer;
-			fShouldLoadBuffered = true;
-		} else 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;
-
-		fEmbeddedContainer = null;
-	}
-
-	/**
-	 * user method
-	 * 
-	 * @see com.ibm.sed.parser.BlockTokenizer#newInstance()
-	 */
-	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[9114];
-		int i = 0; /* index in packed string */
-		int j = 0; /* index in unpacked array */
-		while (i < 3174) {
-			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 274 :
-				case 275 :
-				case 276 : {
-					if (Debug.debugTokenizer)
-						dump("\nCDATA start");//$NON-NLS-1$
-					fStateStack.push(yystate());
-					yybegin(ST_CDATA_TEXT);
-					return XML_CDATA_OPEN;
-				}
-				case 278 :
-					break;
-				case 268 : {
-					if (Debug.debugTokenizer)
-						dump("element");//$NON-NLS-1$
-					yybegin(ST_XML_ELEMENT_DECLARATION);
-					return XML_ELEMENT_DECLARATION;
-				}
-				case 279 :
-					break;
-				case 267 : {
-					if (Debug.debugTokenizer)
-						dump("attlist");//$NON-NLS-1$
-					yybegin(ST_XML_ATTLIST_DECLARATION);
-					return XML_ATTLIST_DECLARATION;
-				}
-				case 280 :
-					break;
-				case 266 : {
-					if (Debug.debugTokenizer)
-						dump("doctype");//$NON-NLS-1$
-					yybegin(ST_XML_DOCTYPE_DECLARATION);
-					return XML_DOCTYPE_DECLARATION;
-				}
-				case 281 :
-					break;
-				case 262 : {
-					if (Debug.debugTokenizer)
-						dump("doctype external id");//$NON-NLS-1$
-					fEmbeddedHint = XML_DOCTYPE_EXTERNAL_ID_PUBREF;
-					yybegin(ST_XML_DOCTYPE_ID_PUBLIC);
-					return XML_DOCTYPE_EXTERNAL_ID_PUBLIC;
-				}
-				case 282 :
-					break;
-				case 261 : {
-					if (Debug.debugTokenizer)
-						dump("doctype external id");//$NON-NLS-1$
-					fEmbeddedHint = XML_DOCTYPE_EXTERNAL_ID_SYSREF;
-					yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
-					return XML_DOCTYPE_EXTERNAL_ID_SYSTEM;
-				}
-				case 283 :
-					break;
-				case 257 : {
-					if (Debug.debugTokenizer)
-						dump("DHTML processing instruction target");//$NON-NLS-1$
-					fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-					fEmbeddedPostState = ST_XML_EQUALS;
-					yybegin(ST_DHTML_ATTRIBUTE_NAME);
-					return XML_TAG_NAME;
-				}
-				case 284 :
-					break;
-				case 234 : {
-					if (Debug.debugTokenizer)
-						dump("\nCharRef");//$NON-NLS-1$
-					return XML_CHAR_REFERENCE;
-				}
-				case 285 :
-					break;
-				case 231 : {
-					if (Debug.debugTokenizer)
-						dump("\ncomment start");//$NON-NLS-1$
-					fEmbeddedHint = XML_COMMENT_TEXT;
-					fEmbeddedPostState = ST_XML_COMMENT;
-					yybegin(ST_XML_COMMENT);
-					return XML_COMMENT_OPEN;
-				}
-				case 286 :
-					break;
-				case 213 : {
-					if (Debug.debugTokenizer)
-						dump("XML processing instruction target");//$NON-NLS-1$
-					fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-					fEmbeddedPostState = ST_XML_EQUALS;
-					yybegin(ST_XML_PI_ATTRIBUTE_NAME);
-					return XML_TAG_NAME;
-				}
-				case 287 :
-					break;
-				case 212 : {
-					if (Debug.debugTokenizer)
-						dump("comment end");//$NON-NLS-1$
-					fEmbeddedHint = UNDEFINED;
-					yybegin(YYINITIAL);
-					return XML_COMMENT_CLOSE;
-				}
-				case 288 :
-					break;
-				case 211 : {
-					if (Debug.debugTokenizer)
-						dump("CDATA end");//$NON-NLS-1$
-					yybegin(fStateStack.pop());
-					return XML_CDATA_CLOSE;
-				}
-				case 289 :
-					break;
-				case 210 : {
-					if (Debug.debugTokenizer)
-						dump("\nPEReference");//$NON-NLS-1$
-					return XML_PE_REFERENCE;
-				}
-				case 290 :
-					break;
-				case 207 : {
-					if (Debug.debugTokenizer)
-						dump("\nEntityRef");//$NON-NLS-1$
-					return XML_ENTITY_REFERENCE;
-				}
-				case 291 :
-					break;
-				case 158 :
-				case 172 :
-				case 180 : {
-					return XML_DOCTYPE_INTERNAL_SUBSET;
-				}
-				case 292 :
-					break;
-				case 146 : {
-					yybegin(YYINITIAL);
-					fEmbeddedHint = UNDEFINED;
-					if (Debug.debugTokenizer)
-						dump("empty tag close");//$NON-NLS-1$
-					return XML_EMPTY_TAG_CLOSE;
-				}
-				case 293 :
-					break;
-				case 131 : {
-					if (Debug.debugTokenizer)
-						dump("XML processing instruction end");//$NON-NLS-1$
-					fEmbeddedHint = UNDEFINED;
-					yybegin(YYINITIAL);
-					return XML_PI_CLOSE;
-				}
-				case 294 :
-					break;
-				case 130 : {
-					// ended with nothing inside
-					fEmbeddedHint = UNDEFINED;
-					yybegin(YYINITIAL);
-					return XML_PI_CLOSE;
-				}
-				case 295 :
-					break;
-				case 127 : {
-					if (Debug.debugTokenizer)
-						dump("processing instruction end");//$NON-NLS-1$
-					fEmbeddedHint = UNDEFINED;
-					yybegin(YYINITIAL);
-					return XML_PI_CLOSE;
-				}
-				case 296 :
-					break;
-				case 119 : {
-					fStateStack.push(yystate());
-					if (Debug.debugTokenizer)
-						dump("\ndeclaration start");//$NON-NLS-1$
-					yybegin(ST_XML_DECLARATION);
-					return XML_DECLARATION_OPEN;
-				}
-				case 297 :
-					break;
-				case 118 : {
-					if (Debug.debugTokenizer)
-						dump("\nprocessing instruction start");//$NON-NLS-1$
-					yybegin(ST_PI);
-					return XML_PI_OPEN;
-				}
-				case 298 :
-					break;
-				case 62 : {
-					if (Debug.debugTokenizer)
-						dump("DHTML processing instruction end");//$NON-NLS-1$
-					fEmbeddedHint = UNDEFINED;
-					yybegin(YYINITIAL);
-					return XML_PI_CLOSE;
-				}
-				case 299 :
-					break;
-				case 56 :
-				case 58 :
-				case 59 :
-				case 60 :
-				case 135 : {
-					if (Debug.debugTokenizer)
-						dump("XML processing instruction attribute value");//$NON-NLS-1$
-					fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-					fEmbeddedPostState = ST_XML_EQUALS;
-					yybegin(ST_XML_PI_ATTRIBUTE_NAME);
-					return XML_TAG_ATTRIBUTE_VALUE;
-				}
-				case 300 :
-					break;
-				case 55 : {
-					if (Debug.debugTokenizer)
-						dump("XML processing instruction '='");//$NON-NLS-1$
-					fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-					fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-					yybegin(ST_XML_PI_ATTRIBUTE_VALUE);
-					return XML_TAG_ATTRIBUTE_EQUALS;
-				}
-				case 301 :
-					break;
-				case 54 : {
-					if (Debug.debugTokenizer)
-						dump("XML processing instruction attribute name");//$NON-NLS-1$
-					yybegin(ST_XML_PI_EQUALS);
-					return XML_TAG_ATTRIBUTE_NAME;
-				}
-				case 302 :
-					break;
-				case 50 :
-				case 51 :
-				case 52 : {
-					// block scan until close is found
-					return doScan("?>", false, XML_PI_CONTENT, ST_XML_PI_TAG_CLOSE, ST_XML_PI_TAG_CLOSE);
-				}
-				case 303 :
-					break;
-				case 49 : {
-					yybegin(ST_PI_CONTENT);
-					return WHITE_SPACE;
-				}
-				case 304 :
-					break;
-				case 46 :
-				case 47 :
-				case 48 :
-				case 128 :
-				case 129 :
-				case 214 :
-				case 236 :
-				case 248 : {
-					if (Debug.debugTokenizer)
-						dump("processing instruction target");//$NON-NLS-1$
-					fEmbeddedHint = XML_CONTENT;
-					yybegin(ST_PI_WS);
-					return XML_TAG_NAME;
-				}
-				case 305 :
-					break;
-				case 41 :
-				case 42 : {
-					if (Debug.debugTokenizer)
-						dump("comment content");//$NON-NLS-1$
-					return scanXMLCommentText();
-				}
-				case 306 :
-					break;
-				case 40 : {
-					if (Debug.debugTokenizer)
-						dump("LINE FEED");//$NON-NLS-1$
-					return WHITE_SPACE;
-				}
-				case 307 :
-					break;
-				case 0 :
-				case 31 :
-				case 121 :
-				case 123 :
-				case 205 :
-				case 206 :
-				case 233 : {
-					if (Debug.debugTokenizer)
-						dump("\nXML content");//$NON-NLS-1$
-					return XML_CONTENT;
-				}
-				case 308 :
-					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 309 :
-					break;
-				case 16 :
-				case 70 : {
-					if (Debug.debugTokenizer)
-						dump("inappropriate tag name");//$NON-NLS-1$
-					yybegin(YYINITIAL);
-					return XML_CONTENT;
-				}
-				case 310 :
-					break;
-				case 27 :
-				case 105 :
-				case 106 :
-				case 191 :
-				case 226 :
-				case 244 :
-				case 254 :
-				case 263 :
-				case 269 :
-				case 272 : {
-					if (Debug.debugTokenizer)
-						dump("elementdecl contentspec");//$NON-NLS-1$
-					return XML_ELEMENT_DECL_CONTENT;
-				}
-				case 311 :
-					break;
-				case 29 :
-				case 112 :
-				case 113 :
-				case 202 :
-				case 230 :
-				case 246 :
-				case 255 :
-				case 264 :
-				case 270 :
-				case 273 : {
-					if (Debug.debugTokenizer)
-						dump("attlist contentspec");//$NON-NLS-1$
-					return XML_ATTLIST_DECL_CONTENT;
-				}
-				case 312 :
-					break;
-				case 32 :
-				case 71 :
-				case 82 : {
-					if (Debug.debugTokenizer)
-						dump("\nstart tag open");//$NON-NLS-1$
-					fEmbeddedHint = XML_TAG_NAME;
-					fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-					yybegin(ST_XML_TAG_NAME);
-					return XML_TAG_OPEN;
-				}
-				case 313 :
-					break;
-				case 33 :
-				case 34 :
-				case 37 :
-				case 38 :
-				case 39 :
-				case 43 :
-				case 44 :
-				case 53 :
-				case 57 :
-				case 61 :
-				case 63 :
-				case 67 :
-				case 73 :
-				case 79 :
-				case 84 :
-				case 85 :
-				case 86 :
-				case 87 :
-				case 89 :
-				case 90 :
-				case 92 :
-				case 97 :
-				case 102 :
-				case 109 : {
-					if (Debug.debugTokenizer)
-						System.out.println("!!!unexpected!!!: \"" + yytext() + "\":" + //$NON-NLS-2$//$NON-NLS-1$
-									yychar + "-" + (yychar + yylength()));//$NON-NLS-1$
-					return UNDEFINED;
-				}
-				case 314 :
-					break;
-				case 35 :
-				case 36 : {
-					if (Debug.debugTokenizer)
-						dump("CDATA text");//$NON-NLS-1$
-					fEmbeddedHint = XML_CDATA_TEXT;
-					fEmbeddedPostState = ST_CDATA_TEXT;
-					String blockContext = doBlockScan("]]>", XML_CDATA_TEXT, ST_CDATA_END);//$NON-NLS-1$
-					if (blockContext == XML_CDATA_TEXT)
-						yybegin(ST_CDATA_END);
-					return blockContext;
-				}
-				case 315 :
-					break;
-				case 64 : {
-					if (Debug.debugTokenizer)
-						dump("DHTML processing instruction attribute name");//$NON-NLS-1$
-					yybegin(ST_DHTML_EQUALS);
-					return XML_TAG_ATTRIBUTE_NAME;
-				}
-				case 316 :
-					break;
-				case 65 : {
-					if (Debug.debugTokenizer)
-						dump("DHTML processing instruction '='");//$NON-NLS-1$
-					fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-					fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-					yybegin(ST_DHTML_ATTRIBUTE_VALUE);
-					return XML_TAG_ATTRIBUTE_EQUALS;
-				}
-				case 317 :
-					break;
-				case 66 :
-				case 68 :
-				case 69 :
-				case 143 : {
-					if (Debug.debugTokenizer)
-						dump("DHTML processing instruction attribute value");//$NON-NLS-1$
-					fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-					fEmbeddedPostState = ST_XML_EQUALS;
-					yybegin(ST_DHTML_ATTRIBUTE_NAME);
-					return XML_TAG_ATTRIBUTE_VALUE;
-				}
-				case 318 :
-					break;
-				case 72 : {
-					if (Debug.debugTokenizer)
-						dump("tag close");//$NON-NLS-1$
-					fEmbeddedHint = UNDEFINED;
-					if (isBlockMarker()) {
-						fEmbeddedHint = getBlockMarkerContext();
-						fEmbeddedPostState = ST_BLOCK_TAG_SCAN;
-						yybegin(ST_BLOCK_TAG_SCAN);
-					} else
-						yybegin(YYINITIAL);
-					return XML_TAG_CLOSE;
-				}
-				case 319 :
-					break;
-				case 74 :
-				case 75 : {
-					if (Debug.debugTokenizer)
-						dump("tag name");//$NON-NLS-1$
-					fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-					fEmbeddedPostState = ST_XML_EQUALS;
-					yybegin(ST_XML_ATTRIBUTE_NAME);
-					return XML_TAG_NAME;
-				}
-				case 320 :
-					break;
-				case 76 : {
-					if (Debug.debugTokenizer)
-						dump("attr name");//$NON-NLS-1$
-					fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-					fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-					yybegin(ST_XML_EQUALS);
-					return XML_TAG_ATTRIBUTE_NAME;
-				}
-				case 321 :
-					break;
-				case 77 : {
-					if (Debug.debugTokenizer)
-						dump("equals");//$NON-NLS-1$
-					fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
-					fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-					yybegin(ST_XML_ATTRIBUTE_VALUE);
-					return XML_TAG_ATTRIBUTE_EQUALS;
-				}
-				case 322 :
-					break;
-				case 78 :
-				case 80 :
-				case 81 :
-				case 150 : {
-					if (Debug.debugTokenizer)
-						dump("attr value");//$NON-NLS-1$
-					fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
-					fEmbeddedPostState = ST_XML_EQUALS;
-					yybegin(ST_XML_ATTRIBUTE_NAME);
-					return XML_TAG_ATTRIBUTE_VALUE;
-				}
-				case 323 :
-					break;
-				case 83 : {
-					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 324 :
-					break;
-				case 88 : {
-					if (Debug.debugTokenizer)
-						dump("doctype type");//$NON-NLS-1$
-					yybegin(ST_XML_DOCTYPE_EXTERNAL_ID);
-					return XML_DOCTYPE_NAME;
-				}
-				case 325 :
-					break;
-				case 91 :
-				case 93 :
-				case 94 :
-				case 95 :
-				case 164 :
-				case 165 :
-				case 168 :
-				case 169 :
-				case 221 : {
-					if (Debug.debugTokenizer)
-						dump("doctype public reference");//$NON-NLS-1$
-					fEmbeddedHint = UNDEFINED;
-					fEmbeddedPostState = YYINITIAL;
-					yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
-					return XML_DOCTYPE_EXTERNAL_ID_PUBREF;
-				}
-				case 326 :
-					break;
-				case 96 :
-				case 98 :
-				case 99 :
-				case 100 :
-				case 176 : {
-					if (Debug.debugTokenizer)
-						dump("doctype system reference");//$NON-NLS-1$
-					fEmbeddedHint = UNDEFINED;
-					fEmbeddedPostState = YYINITIAL;
-					yybegin(ST_XML_DECLARATION_CLOSE);
-					return XML_DOCTYPE_EXTERNAL_ID_SYSREF;
-				}
-				case 327 :
-					break;
-				case 101 :
-				case 103 :
-				case 104 :
-				case 184 :
-				case 185 :
-				case 188 :
-				case 189 :
-				case 224 : {
-					if (Debug.debugTokenizer)
-						dump("elementdecl name");//$NON-NLS-1$
-					fEmbeddedHint = UNDEFINED;
-					fEmbeddedPostState = YYINITIAL;
-					yybegin(ST_XML_ELEMENT_DECLARATION_CONTENT);
-					return XML_ELEMENT_DECL_NAME;
-				}
-				case 328 :
-					break;
-				case 107 : {
-					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 329 :
-					break;
-				case 108 :
-				case 110 :
-				case 111 :
-				case 195 :
-				case 196 :
-				case 199 :
-				case 200 :
-				case 228 : {
-					if (Debug.debugTokenizer)
-						dump("attlist name");//$NON-NLS-1$
-					fEmbeddedHint = UNDEFINED;
-					fEmbeddedPostState = YYINITIAL;
-					yybegin(ST_XML_ATTLIST_DECLARATION_CONTENT);
-					return XML_ATTLIST_DECL_NAME;
-				}
-				case 330 :
-					break;
-				case 114 : {
-					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 331 :
-					break;
-				case 117 : {
-					if (Debug.debugTokenizer)
-						dump("\nend tag open");//$NON-NLS-1$
-					fEmbeddedHint = XML_TAG_NAME;
-					fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
-					yybegin(ST_XML_TAG_NAME);
-					return XML_END_TAG_OPEN;
-				}
-				case 332 :
-					break;
-				case 115 :
-				case 116 : {
-					return doBlockTagScan();
-				}
-				case 333 :
-					break;
-				default :
-					if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
-						yy_atEOF = true;
-						yy_do_eof();
-						return null;
-					} else {
-						yy_ScanError(YY_NO_MATCH);
-					}
-			}
-		}
-	}
-
-
-}
\ No newline at end of file
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 2a57776..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-
-public class AttributeEqualsRegion implements ITextRegion {
-	static private final byte fTextLength = 1;
-	static private final String fType = XMLRegionContext.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 adjustLengthWith(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 updateModel(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 fd678bd..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeNameRegion.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.util.Debug;
-import org.eclipse.wst.sse.core.util.Utilities;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-public class AttributeNameRegion implements ITextRegion {
-	// specify correct type
-	static private final String fType = XMLRegionContext.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 adjustLengthWith(int i) {
-		fLength += i;
-
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjustTextLength(int)
-	 */
-	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 updateModel(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 03eb463..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeValueRegion.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.util.Debug;
-import org.eclipse.wst.sse.core.util.Utilities;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-public class AttributeValueRegion implements ITextRegion {
-	// specify correct type
-	static private final String fType = XMLRegionContext.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 adjustLengthWith(int i) {
-		fLength += i;
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjustTextLength(int)
-	 */
-	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 updateModel(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/BlockTextRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/BlockTextRegion.java
deleted file mode 100644
index b382257..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/BlockTextRegion.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.ForeignRegion;
-
-
-
-public class BlockTextRegion extends ForeignRegion {
-
-	/**
-	 * BlockTextRegion constructor comment.
-	 */
-	public BlockTextRegion() {
-		super();
-	}
-
-	public BlockTextRegion(String newContext, int newStart, int newTextLength, int newLength) {
-		super(newContext, newStart, newTextLength, newLength);
-	}
-
-	public BlockTextRegion(String newContext, int newStart, int newTextLength, int newLength, String newLanguage) {
-		super(newContext, newStart, newTextLength, newLength, newLanguage);
-	}
-
-}
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 291a341..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/GenericTemplateRegion.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-/**
- * 
- * 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 = XMLRegionContext.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 adjustLengthWith(int i) {
-		fLength += i;
-
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjustTextLength(int)
-	 */
-	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 updateModel(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 9693beb..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/RegionToStringUtil.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.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 resultText = null;
-		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 com.ibm.sed.util.StringUtils.escape("('"+(getFirstRegion()
-		// == null || document == null? "" :
-		// getText(getFirstRegion()))+"'"+getStart()+" -
-		// "+getEnd()+"'"+(getClose() == null || document == null ||
-		// getRegions().size()<2 ? "" : getText(getClose()))+"')
-		// "+getRegions());
-		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 8692688..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/RegionUpdateRule.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.util.Debug;
-import org.eclipse.wst.sse.core.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.
-			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.
-			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.adjustLengthWith(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 87044dd..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagCloseRegion.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-public class TagCloseRegion implements ITextRegion {
-	static private final byte fLength = 1;
-	static private final byte fTextLength = 1;
-	static private final String fType = XMLRegionContext.XML_TAG_CLOSE;
-	private int fStart;
-
-
-	public TagCloseRegion() {
-		super();
-	}
-
-	public TagCloseRegion(int start) {
-		this();
-		fStart = start;
-	}
-
-	public void adjustLengthWith(int i) {
-		throw new SourceEditingRuntimeException("invalid for this region type"); //$NON-NLS-1$
-
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjustTextLength(int)
-	 */
-	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 updateModel(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 f01e5b0..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagNameRegion.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-public class TagNameRegion implements ITextRegion {
-	static private final String fType = XMLRegionContext.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 adjustLengthWith(int i) {
-		fLength += i;
-
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjustTextLength(int)
-	 */
-	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 updateModel(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 f09c83d..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-public class TagOpenRegion implements ITextRegion {
-	static private final String fType = XMLRegionContext.XML_TAG_OPEN;
-	private int fLength;
-	private int fStart;
-	private int fTextLength;
-
-
-	public TagOpenRegion() {
-		super();
-	}
-
-	public TagOpenRegion(int start, int textLength, int length) {
-		this();
-		fStart = start;
-		fTextLength = textLength;
-		fLength = length;
-	}
-
-	public void adjustLengthWith(int i) {
-		fLength += i;
-
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjustTextLength(int)
-	 */
-	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 updateModel(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 2727095..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/WhiteSpaceOnlyRegion.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-
-
-import org.eclipse.wst.sse.core.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.util.Debug;
-import org.eclipse.wst.sse.core.util.Utilities;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-public class WhiteSpaceOnlyRegion implements ITextRegion {
-	static private final byte fTextLength = 0;
-
-	static private final String fType = XMLRegionContext.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 adjustLengthWith(int i) {
-		fLength += i;
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjustTextLength(int)
-	 */
-	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 SourceEditingRuntimeException("invalid call"); //$NON-NLS-1$
-	}
-
-	public void setType(String string) {
-		throw new SourceEditingRuntimeException("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 updateModel(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 e6f3cbe..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLCDataTextRegion.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.util.Debug;
-import org.eclipse.wst.sse.core.util.Utilities;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-public class XMLCDataTextRegion implements ITextRegion {
-	static private final String fType = XMLRegionContext.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 adjustLengthWith(int i) {
-		fLength += i;
-
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjustTextLength(int)
-	 */
-	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 updateModel(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 7155dfc..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLContentRegion.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-import org.eclipse.wst.sse.core.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.util.Debug;
-import org.eclipse.wst.sse.core.util.Utilities;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-
-public class XMLContentRegion implements ITextRegion {
-	static private final String fType = XMLRegionContext.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 adjustLengthWith(int i) {
-		fLength += i;
-
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjustTextLength(int)
-	 */
-	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 updateModel(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 66d9ee9..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.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 98dad74..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLHeadParserRegion.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.parser.regions;
-
-import org.eclipse.wst.sse.core.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-/**
- * 
- * 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 = XMLRegionContext.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 adjustLengthWith(int i) {
-		fLength += i;
-
-	}
-
-	public void adjustStart(int i) {
-		fStart += i;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.ibm.sed.structured.text.ITextRegion#adjustTextLength(int)
-	 */
-	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 updateModel(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 6b03796..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLParserRegionFactory.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.parser.regions;
-
-
-
-import org.eclipse.wst.sse.core.internal.parser.ContextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.ITextRegionContainer;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-/**
- * 
- * 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 == XMLRegionContext.XML_CDATA_TEXT) {
-			newRegion = new XMLCDataTextRegion(start, textLength, length);
-		} else if (context == XMLRegionContext.XML_CONTENT) {
-			newRegion = new XMLContentRegion(start, length);
-		} else if (context == XMLRegionContext.XML_TAG_NAME) {
-			newRegion = new TagNameRegion(start, textLength, length);
-		} else if (context == XMLRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-			newRegion = new AttributeNameRegion(start, textLength, length);
-		} else if (context == XMLRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-			newRegion = new AttributeEqualsRegion(start, textLength, length);
-		} else if (context == XMLRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-			newRegion = new AttributeValueRegion(start, textLength, length);
-		} else if (context == XMLRegionContext.XML_TAG_OPEN) {
-			newRegion = new TagOpenRegion(start, textLength, length);
-		} else if (context == XMLRegionContext.XML_TAG_CLOSE) {
-			newRegion = new TagCloseRegion(start);
-		} else if (context == XMLRegionContext.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 == XMLRegionContext.BLOCK_TEXT) {
-			newRegion = new BlockTextRegion(context, start, textLength, length);
-			((BlockTextRegion) 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/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 ed13b8a..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.AbstractAdapterFactory;
-import org.eclipse.wst.sse.core.AdapterFactory;
-import org.eclipse.wst.sse.core.INodeAdapter;
-import org.eclipse.wst.sse.core.INodeNotifier;
-import org.eclipse.wst.sse.core.PropagatingAdapter;
-import org.eclipse.wst.sse.core.PropagatingAdapterFactory;
-
-
-/**
- * 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 adapterInstance;
-	protected List contributedFactories = null;
-
-	/**
-	 * PropagatingAdapterFactory constructor comment.
-	 */
-	public PropagatingAdapterFactoryImpl() {
-		this(PropagatingAdapter.class, true);
-	}
-
-	protected PropagatingAdapterFactoryImpl(Object adapterKey, boolean registerAdapters) { //,
-		// Object
-		// modelType)
-		// {
-		super(adapterKey, registerAdapters);
-	}
-
-	public void addContributedFactories(AdapterFactory factory) {
-		if (contributedFactories != null) {
-			contributedFactories.add(factory);
-		}
-
-	}
-
-	public AdapterFactory copy() {
-		PropagatingAdapterFactory clonedInstance = new PropagatingAdapterFactoryImpl(this.adapterKey, this.shouldRegisterAdapter);
-		// clone this adapters specific list of adapter factories too
-		if (contributedFactories != null) {
-			Iterator iterator = contributedFactories.iterator();
-			clonedInstance.setContributedFactories(new ArrayList());
-			while (iterator.hasNext()) {
-				AdapterFactory existingFactory = (AdapterFactory) iterator.next();
-				clonedInstance.addContributedFactories(existingFactory.copy());
-			}
-		}
-		return clonedInstance;
-	}
-
-	/**
-	 * 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
-	 */
-	protected PropagatingAdapter getAdapterInstance() {
-		if (adapterInstance == null) {
-			adapterInstance = new PropagatingAdapterImpl();
-			if (contributedFactories != null) {
-				for (int i = 0; i < contributedFactories.size(); i++)
-					adapterInstance.addAdaptOnCreateFactory((PropagatingAdapterFactory) contributedFactories.get(i));
-			}
-		}
-		return adapterInstance;
-	}
-
-	public void release() {
-		// give the adapter instance a chance to release its factories
-		getAdapterInstance().release();
-
-	}
-
-	public void setContributedFactories(ArrayList list) {
-		contributedFactories = list;
-
-	}
-
-}
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 4f0b320..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/propagate/PropagatingAdapterImpl.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.AdapterFactory;
-import org.eclipse.wst.sse.core.INodeNotifier;
-import org.eclipse.wst.sse.core.PropagatingAdapter;
-import org.eclipse.wst.xml.core.document.XMLNode;
-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 {
-
-	public static final Class PropagatingAdapterClass = PropagatingAdapter.class;
-	// because so many of these are created in huge file,
-	// Jeffrey Liu suggested these be done lazily, since not all
-	// models and not all nodes actually have a list of factories.
-	private List adaptOnCreateFactories = null;
-
-	/**
-	 * AbstractPropagatingAdapterImpl constructor comment.
-	 */
-	public PropagatingAdapterImpl() {
-		super();
-	}
-
-	protected void adaptOnCreate(XMLNode node) {
-		// give each of the factories a chance to adapt the node, if it
-		// chooses to
-		if (adaptOnCreateFactories != null) {
-			Iterator iterator = adaptOnCreateFactories.iterator();
-			while (iterator.hasNext()) {
-				AdapterFactory factory = (AdapterFactory) iterator.next();
-				factory.adapt(node);
-			}
-		}
-
-	}
-
-	/**
-	 * This mechanism can be made "easier to use" later.
-	 */
-	public void addAdaptOnCreateFactory(AdapterFactory factory) {
-		//adaptOnCreateFactories.add(factory);
-		getAdaptOnCreateFactories().add(factory);
-	}
-
-	/**
-	 * Gets the adaptOnCreateFactories.
-	 * 
-	 * @return Returns a List
-	 */
-	public List getAdaptOnCreateFactories() {
-		if (adaptOnCreateFactories == null)
-			adaptOnCreateFactories = new ArrayList();
-		return adaptOnCreateFactories;
-	}
-
-	//	protected void unadaptOnRemove(INodeNotifier node) {
-	//		// give each of the factories a chance to process remove event
-	//		// This is a bit out of the normal adapter pattern, but I couldn't
-	//		// think of a better way to "remove" pageDirectiveWatchers, if and
-	//		// when the page directive was 'removed' (edited).
-	//		//
-	//		Iterator iterator = adaptOnCreateFactories.iterator();
-	//		while (iterator.hasNext()) {
-	//			AdapterFactory factory = (AdapterFactory) iterator.next();
-	//			if (factory instanceof PropagatingAdapterFactory) {
-	//				((PropagatingAdapterFactory)factory).unadapt(node);
-	//			}
-	//		}
-	//
-	//	}
-
-	/**
-	 * @see PropagatingAdapter#initializeForFactory(AdapterFactory,
-	 *      INodeNotifier)
-	 */
-	public void initializeForFactory(AdapterFactory factory, INodeNotifier node) {
-		// we're DOM specific implimentation
-		if (node instanceof XMLNode) {
-			XMLNode xmlNode = (XMLNode) 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(PropagatingAdapterClass);
-	}
-
-	protected 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) {
-		// DMW, 2002.8.10. I changed this so we only propagate to Elements ...
-		// not attributes too!
-		// I'm assuming this will help performance and memory, but don't know
-		// if anyone was depending on
-		// this being proagate to attributes.
-		if (eventType == INodeNotifier.ADD && isInteresting(newValue)) {
-			propagateTo((XMLNode) newValue);
-		}
-		//	else if (eventType == INodeNotifier.CONTENT_CHANGED) {
-		//		notifier.getAdapterFor(PropagatingAdapterClass);
-		//	}
-		//	else if (eventType == INodeNotifier.CHANGE) {
-		//	}
-		//		else if (eventType == INodeNotifier.REMOVE &&
-		// isInteresting(oldValue)) {
-		//			unadaptOnRemove((XMLNode)oldValue);
-		//		}
-		//	else if (eventType == INodeNotifier.STRUCTURE_CHANGED) {
-		//	}
-	}
-
-	protected void propagateTo(XMLNode node) {
-		// get adapter to ensure its created
-		node.getAdapterFor(PropagatingAdapterClass);
-		adaptOnCreate(node);
-		propagateToChildren(node);
-	}
-
-	protected void propagateToChildren(XMLNode parent) {
-		for (Node child = parent.getFirstChild(); child != null; child = child.getNextSibling()) {
-			propagateTo((XMLNode) child);
-		}
-	}
-
-	/**
-	 * @see PropagatingAdapter#release()
-	 */
-	public void release() {
-		if (adaptOnCreateFactories != null) {
-			Iterator iterator = adaptOnCreateFactories.iterator();
-			while (iterator.hasNext()) {
-				AdapterFactory factory = (AdapterFactory) iterator.next();
-				factory.release();
-			}
-		}
-	}
-
-}
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 77de14a..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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.text.BasicStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-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 != XMLRegionContext.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/util/DebugDocument.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/util/DebugDocument.java
deleted file mode 100644
index 13afbc8..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/util/DebugDocument.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.util;
-
-import java.io.PrintStream;
-
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-public class DebugDocument {
-
-	public static void dump(Document document) {
-		if (document == null)
-			return;
-		System.out.println("Dump of DOM"); //$NON-NLS-1$
-
-		dump(document, System.out);
-
-		//
-		System.out.println();
-		System.out.println("= = = = = ="); //$NON-NLS-1$
-		System.out.println();
-
-	}
-
-	public static void dump(Document document, PrintStream out) {
-		Node node = document.getFirstChild();
-		while (node != null) {
-			dump(node, out);
-			node = node.getNextSibling();
-		}
-
-	}
-
-	public static void dump(Node topNode) {
-		dump(topNode, System.out);
-	}
-
-	public static void dump(Node topNode, PrintStream out) {
-		if (topNode == null)
-			return;
-		// print out this node
-		//
-		printNode(topNode, out);
-
-		// now print out its children
-		//NodeList nodes = topNode.getChildNodes();
-		//int len = nodes.getLength();
-		//for (int i = 0; i < len; i++) {
-
-		//Node node = nodes.item(i);
-		//dump(node, out);
-		//}
-	}
-
-	public static void printNode(Node topNode) {
-		printNode(topNode, System.out);
-
-	}
-
-	public static void printNode(Node topNode, PrintStream out) {
-		// print out this node
-		//
-		IStructuredDocumentRegion firstStructuredDocumentRegion = ((XMLNode) topNode).getFirstStructuredDocumentRegion();
-		IStructuredDocumentRegion lastStructuredDocumentRegion = ((XMLNode) topNode).getLastStructuredDocumentRegion();
-		if ((firstStructuredDocumentRegion == null) || (lastStructuredDocumentRegion == null)) {
-			// no text to output
-		} else {
-			int start = firstStructuredDocumentRegion.getStart();
-			int end = lastStructuredDocumentRegion.getEnd();
-
-			String outString = topNode.toString();
-			outString = org.eclipse.wst.sse.core.util.StringUtils.escape(outString);
-			out.println("[" + start + ", " + end + "]" + outString); //$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-		}
-		// now do its children
-		NodeList nodes = topNode.getChildNodes();
-		int len = nodes.getLength();
-		for (int i = 0; i < len; i++) {
-			Node childNode = nodes.item(i);
-			printNode(childNode, out);
-		}
-
-	}
-
-	public DebugDocument() {
-		super();
-	}
-
-}
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 9144662..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/AbstractPropagatingValidator.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.validate;
-
-import org.eclipse.wst.sse.core.IndexedRegion;
-import org.eclipse.wst.sse.core.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();
-
-	/**
-	 * @see com.ibm.sed.adapters.validate.ValidationAdapter#validate(IndexedRegion)
-	 */
-	public void validate(IndexedRegion node) {
-		if (node == null)
-			return;
-		getValidator().validate(node);
-
-
-		Propagator.propagateToChildElements(getPropagatee(), (Node) node);
-	}
-
-}
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 3cdcca5..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/Propagator.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.validate;
-
-import org.eclipse.wst.sse.core.INodeNotifier;
-import org.eclipse.wst.sse.core.IndexedRegion;
-import org.eclipse.wst.sse.core.validate.ValidationAdapter;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-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 797d9cb..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/ValidationComponent.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.internal.validate;
-
-
-
-import org.eclipse.wst.sse.core.validate.ValidationAdapter;
-import org.eclipse.wst.sse.core.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.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;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/jsp/model/parser/temp/XMLJSPRegionContexts.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/jsp/model/parser/temp/XMLJSPRegionContexts.java
deleted file mode 100644
index 9a1d66d..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/jsp/model/parser/temp/XMLJSPRegionContexts.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.jsp.model.parser.temp;
-
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-/**
- * //TODO
- * 
- * @deprecated - marked as deprecated to warn of pending changes. See the
- *             package.html file for full explanation.
- */
-
-public interface XMLJSPRegionContexts extends XMLRegionContext {
-	public static final String JSP_CLOSE = "JSP_CLOSE"; //$NON-NLS-1$
-	public static final String JSP_COMMENT_CLOSE = "JSP_COMMENT_CLOSE"; //$NON-NLS-1$
-
-	public static final String JSP_COMMENT_OPEN = "JSP_COMMENT_OPEN"; //$NON-NLS-1$
-	public static final String JSP_COMMENT_TEXT = "JSP_COMMENT_TEXT"; //$NON-NLS-1$
-
-	public static final String JSP_CONTENT = "JSP_CONTENT"; //$NON-NLS-1$
-	public static final String JSP_DECLARATION_OPEN = "JSP_DECLARATION_OPEN"; //$NON-NLS-1$
-	public static final String JSP_DIRECTIVE_CLOSE = "JSP_DIRECTIVE_CLOSE"; //$NON-NLS-1$
-	public static final String JSP_DIRECTIVE_NAME = "JSP_DIRECTIVE_NAME"; //$NON-NLS-1$
-
-	public static final String JSP_DIRECTIVE_OPEN = "JSP_DIRECTIVE_OPEN"; //$NON-NLS-1$
-	public static final String JSP_EL_CLOSE = "JSP_EL_CLOSE"; //$NON-NLS-1$
-	public static final String JSP_EL_CONTENT = "JSP_EL_CONTENT"; //$NON-NLS-1$
-	public static final String JSP_EL_DQUOTE = "JSP_EL_DQUOTE"; //$NON-NLS-1$
-
-	public static final String JSP_EL_OPEN = "JSP_EL_OPEN"; //$NON-NLS-1$
-	public static final String JSP_EL_QUOTED_CONTENT = "JSP_EL_QUOTED_CONTENT"; //$NON-NLS-1$
-	public static final String JSP_EL_SQUOTE = "JSP_EL_SQUOTE"; //$NON-NLS-1$
-	public static final String JSP_EXPRESSION_OPEN = "JSP_EXPRESSION_OPEN"; //$NON-NLS-1$
-
-	public static final String JSP_ROOT_TAG_NAME = "JSP_ROOT_TAG_NAME"; //$NON-NLS-1$
-
-	public static final String JSP_SCRIPTLET_OPEN = "JSP_SCRIPTLET_OPEN"; //$NON-NLS-1$
-	public static final String JSP_VBL_CLOSE = "JSP_VBL_CLOSE"; //$NON-NLS-1$
-	public static final String JSP_VBL_CONTENT = "JSP_VBL_CONTENT"; //$NON-NLS-1$
-	public static final String JSP_VBL_DQUOTE = "JSP_VBL_DQUOTE"; //$NON-NLS-1$
-	public static final String JSP_VBL_OPEN = "JSP_VBL_OPEN"; //$NON-NLS-1$
-	public static final String JSP_VBL_QUOTED_CONTENT = "JSP_VBL_QUOTED_CONTENT"; //$NON-NLS-1$
-	public static final String JSP_VBL_SQUOTE = "JSP_VBL_SQUOTE"; //$NON-NLS-1$
-	public static final String XML_TAG_ATTRIBUTE_VALUE_DQUOTE = "XML_TAG_ATTRIBUTE_VALUE_DQUOTE"; //$NON-NLS-1$
-
-	public static final String XML_TAG_ATTRIBUTE_VALUE_SQUOTE = "XML_TAG_ATTRIBUTE_VALUE_SQUOTE"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/jsp/model/parser/temp/package.html b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/jsp/model/parser/temp/package.html
deleted file mode 100644
index 8e9ef20..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/jsp/model/parser/temp/package.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<HTML>
-This package is located here in the XML project
-temporarily. Once the DOM Parser is cleaningly split
-to XML and JSP components, this package will move
-back to JSP project. (If its not here temporarily, 
-its easy to get circluar references in plugin.xml 
-dependancies.
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelhandler/EmbeddedXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelhandler/EmbeddedXML.java
deleted file mode 100644
index db69177..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelhandler/EmbeddedXML.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.modelhandler;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.sse.core.IFactoryRegistry;
-import org.eclipse.wst.sse.core.modelhandler.EmbeddedTypeHandler;
-import org.eclipse.wst.sse.core.parser.JSPCapableParser;
-import org.eclipse.wst.xml.core.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("text/xml"); //$NON-NLS-1$
-		}
-		return supportedMimeTypes;
-	}
-
-	public void initializeFactoryRegistry(IFactoryRegistry 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(IFactoryRegistry registry) {
-		// TODO: need to undo anything we did in initialize
-
-	}
-
-	public void uninitializeParser(JSPCapableParser parser) {
-		// need to undo anything we did in initialize
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelhandler/ModelHandlerForXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelhandler/ModelHandlerForXML.java
deleted file mode 100644
index 9f71c0f..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelhandler/ModelHandlerForXML.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.modelhandler;
-
-import org.eclipse.wst.sse.core.ModelLoader;
-import org.eclipse.wst.sse.core.document.IDocumentCharsetDetector;
-import org.eclipse.wst.sse.core.document.IDocumentLoader;
-import org.eclipse.wst.sse.core.modelhandler.AbstractModelHandler;
-import org.eclipse.wst.sse.core.modelhandler.IModelHandler;
-import org.eclipse.wst.xml.core.document.DocumentLoaderForXML;
-import org.eclipse.wst.xml.core.encoding.XMLDocumentCharsetDetector;
-import org.eclipse.wst.xml.core.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.wst.xml.core.xmlsource"; //$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() {
-		if (USE_FILE_BUFFERS)
-			return new DocumentLoaderForXML();
-		else
-			return new XMLDocumentLoader();
-	}
-
-	public IDocumentCharsetDetector getEncodingDetector() {
-		return new XMLDocumentCharsetDetector();
-	}
-
-	public ModelLoader getModelLoader() {
-		return new XMLModelLoader();
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelhandler/XMLModelLoader.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelhandler/XMLModelLoader.java
deleted file mode 100644
index dc50328..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelhandler/XMLModelLoader.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.modelhandler;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.sse.core.AbstractModelLoader;
-import org.eclipse.wst.sse.core.AdapterFactory;
-import org.eclipse.wst.sse.core.INodeNotifier;
-import org.eclipse.wst.sse.core.IStructuredModel;
-import org.eclipse.wst.sse.core.ModelLoader;
-import org.eclipse.wst.sse.core.PropagatingAdapter;
-import org.eclipse.wst.sse.core.document.IDocumentLoader;
-import org.eclipse.wst.sse.core.util.Debug;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.encoding.XMLDocumentLoader;
-import org.eclipse.wst.xml.core.internal.DebugAdapterFactory;
-import org.eclipse.wst.xml.core.internal.document.XMLModelImpl;
-import org.eclipse.wst.xml.core.internal.propagate.PropagatingAdapterFactoryImpl;
-import org.eclipse.wst.xml.core.modelquery.ModelQueryAdapterFactoryForXML;
-
-
-/**
- * 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();
-		AdapterFactory factory = null;
-		// TODO different ModelQueryAdapterFactories need to be made for each
-		// type/loader
-		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 ModelLoader newInstance() {
-		return new XMLModelLoader();
-	}
-
-	public IStructuredModel newModel() {
-		return new XMLModelImpl();
-	}
-
-	protected void preLoadAdapt(IStructuredModel structuredModel) {
-		super.preLoadAdapt(structuredModel);
-		XMLModel domModel = (XMLModel) 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/modelquery/ModelQueryAdapterFactoryForEmbeddedXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelquery/ModelQueryAdapterFactoryForEmbeddedXML.java
deleted file mode 100644
index bf5f3d1..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelquery/ModelQueryAdapterFactoryForEmbeddedXML.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.modelquery;
-
-
-
-import org.eclipse.wst.common.contentmodel.modelquery.CMDocumentManager;
-import org.eclipse.wst.sse.core.INodeAdapter;
-import org.eclipse.wst.sse.core.INodeNotifier;
-import org.eclipse.wst.sse.core.modelquery.ModelQueryAdapter;
-
-
-public class ModelQueryAdapterFactoryForEmbeddedXML extends ModelQueryAdapterFactoryForXML {
-
-
-	/**
-	 * Constructor for ModelQueryAdapterFactoryForEmbeddedXML.
-	 */
-	public ModelQueryAdapterFactoryForEmbeddedXML() {
-		this(ModelQueryAdapter.class, false);
-	}
-
-	/**
-	 * Constructor for ModelQueryAdapterFactoryForEmbeddedXML.
-	 * 
-	 * @param adapterKey
-	 * @param registerAdapters
-	 */
-	protected ModelQueryAdapterFactoryForEmbeddedXML(Object adapterKey, boolean registerAdapters) {
-		super(adapterKey, registerAdapters);
-	}
-
-	/**
-	 * @see org.eclipse.wst.sse.core.AdapterFactory#adapt(INodeNotifier)
-	 */
-	public INodeAdapter adapt(INodeNotifier object) {
-		return adaptNew(object);
-	}
-
-	protected void configureDocumentManager(CMDocumentManager mgr) {
-		super.configureDocumentManager(mgr);
-		mgr.setPropertyEnabled(CMDocumentManager.PROPERTY_ASYNC_LOAD, true);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelquery/ModelQueryAdapterFactoryForXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelquery/ModelQueryAdapterFactoryForXML.java
deleted file mode 100644
index 1f17c24..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelquery/ModelQueryAdapterFactoryForXML.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.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.modelquery;
-
-
-
-import java.io.File;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.common.contentmodel.modelquery.CMDocumentManager;
-import org.eclipse.wst.common.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.common.contentmodel.util.CMDocumentCache;
-import org.eclipse.wst.sse.core.AbstractAdapterFactory;
-import org.eclipse.wst.sse.core.AdapterFactory;
-import org.eclipse.wst.sse.core.IModelStateListener;
-import org.eclipse.wst.sse.core.INodeAdapter;
-import org.eclipse.wst.sse.core.INodeNotifier;
-import org.eclipse.wst.sse.core.IStructuredModel;
-import org.eclipse.wst.sse.core.modelquery.ModelQueryAdapter;
-import org.eclipse.wst.sse.core.modelquery.ModelQueryAdapterImpl;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xml.uriresolver.util.IdResolver;
-
-
-public class ModelQueryAdapterFactoryForXML extends AbstractAdapterFactory implements IModelStateListener {
-
-	protected ModelQueryAdapterImpl modelQueryAdapterImpl;
-	protected IStructuredModel stateNotifier = null;
-
-	/**
-	 * ModelQueryAdapterFactoryForXML constructor comment.
-	 */
-	public ModelQueryAdapterFactoryForXML() {
-		this(ModelQueryAdapter.class, true);
-	}
-
-	/**
-	 * ModelQueryAdapterFactoryForXML constructor comment.
-	 * 
-	 * @param adapterKey
-	 *            java.lang.Object
-	 * @param registerAdapters
-	 *            boolean
-	 */
-	public ModelQueryAdapterFactoryForXML(Object adapterKey, boolean registerAdapters) {
-		super(adapterKey, registerAdapters);
-	}
-
-	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 AdapterFactory copy() {
-
-		return new ModelQueryAdapterFactoryForXML(this.adapterKey, this.shouldRegisterAdapter);
-	}
-
-	/**
-	 * createAdapter method comment.
-	 */
-	protected INodeAdapter createAdapter(INodeNotifier target) {
-
-		if (org.eclipse.wst.sse.core.util.Debug.displayInfo)
-			System.out.println("-----------------------ModelQueryAdapterFactoryForXML.createAdapter" + target); //$NON-NLS-1$
-		if (modelQueryAdapterImpl == null) {
-			if (target instanceof XMLNode) {
-				XMLNode xmlNode = (XMLNode) target;
-				IStructuredModel model = stateNotifier = xmlNode.getModel();
-				stateNotifier.addModelStateListener(this);
-				String baseLocation = null;
-				File file = new Path(model.getBaseLocation()).toFile();
-				if(file.exists()) {
-					baseLocation = file.getAbsolutePath();
-				}
-				else {
-					baseLocation = ResourcesPlugin.getWorkspace().getRoot().getLocation().append(model.getBaseLocation()).toString();
-				}
-				if (org.eclipse.wst.sse.core.util.Debug.displayInfo)
-					System.out.println("----------------ModelQueryAdapterFactoryForXML... baseLocation : " + baseLocation); //$NON-NLS-1$
-
-				CMDocumentCache cmDocumentCache = new CMDocumentCache();
-				ModelQuery modelQuery = null;
-				IdResolver idResolver = null;
-
-				if (org.eclipse.wst.sse.core.util.Debug.displayInfo)
-					System.out.println("********XMLModelQueryImpl"); //$NON-NLS-1$
-				idResolver = new XMLCatalogIdResolver(baseLocation, model.getResolver());
-				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;
-	}
-
-	/**
-	 * @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 release() {
-		super.release();
-		if (stateNotifier != null)
-			stateNotifier.removeModelStateListener(this);
-		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) {
-			baseLocation = baseFile.getLocation().toString();
-		}
-		modelQueryAdapterImpl.setIdResolver(new XMLCatalogIdResolver(baseLocation, model.getResolver()));
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelquery/ModelQueryUtil.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelquery/ModelQueryUtil.java
deleted file mode 100644
index 61f8cd4..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelquery/ModelQueryUtil.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.modelquery;
-
-
-
-import org.eclipse.wst.common.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.common.contentmodel.util.CMDocumentCache;
-import org.eclipse.wst.sse.core.INodeNotifier;
-import org.eclipse.wst.sse.core.IStructuredModel;
-import org.eclipse.wst.sse.core.modelquery.ModelQueryAdapter;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.uriresolver.util.IdResolver;
-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 IdResolver 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 XMLModel)) || model == null)
-			return null;
-		return getModelQuery(((XMLModel) 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/modelquery/XMLCatalogIdResolver.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelquery/XMLCatalogIdResolver.java
deleted file mode 100644
index cc8da65..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelquery/XMLCatalogIdResolver.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.modelquery;
-
-import org.eclipse.wst.sse.core.util.URIResolver;
-import org.eclipse.wst.xml.uriresolver.XMLCatalog;
-import org.eclipse.wst.xml.uriresolver.XMLCatalogPlugin;
-import org.eclipse.wst.xml.uriresolver.util.IdResolver;
-import org.eclipse.wst.xml.uriresolver.util.URIHelper;
-
-
-public class XMLCatalogIdResolver implements IdResolver {
-	protected String resourceLocation;
-
-	protected URIResolver uriresolver;
-
-	public XMLCatalogIdResolver(String resourceLocation) {
-		this.resourceLocation = resourceLocation;
-	}
-
-	public XMLCatalogIdResolver(String resourceLocation, URIResolver uriresolver) {
-		this.resourceLocation = resourceLocation;
-		this.uriresolver = uriresolver;
-	}
-
-
-	/**
-	 * Gets the resourceLocation.
-	 * 
-	 * @return Returns a String
-	 */
-	public String getResourceLocation() {
-		String location = resourceLocation;
-		if (location == null) {
-			if (uriresolver != null)
-				location = uriresolver.getFileBaseLocation();
-		}
-		return location;
-	}
-
-	/**
-	 * @deprecated in superclass
-	 */
-	public String resolveId(String publicId, String systemId) {
-		return resolveId(getResourceLocation(), publicId, systemId);
-	}
-
-	public String resolveId(String base, String publicId, String systemId) {
-		// first see if we can map the publicId to an alternative systemId
-		// note: should probably verify the mappedSystemId before ignoring the
-		// systemId
-		XMLCatalog xmlCatalog = XMLCatalogPlugin.getInstance().getDefaultXMLCatalog();
-		String mappedSystemId = xmlCatalog.getMappedSystemId(publicId, systemId);
-		if (mappedSystemId != null) {
-			systemId = mappedSystemId;
-		}
-
-		// normalize the systemId
-		boolean normalized = false;
-		// account for Web Projects and others where *any* string may legally
-		// resolve somehow
-		if (this.uriresolver != null && systemId != null) {
-			// check the provided URIResolver
-			String resolvedValue = this.uriresolver.getLocationByURI(systemId, base);
-			if (resolvedValue != null && resolvedValue.length() > 0) {
-				systemId = resolvedValue;
-				normalized = true;
-			}
-		}
-		if (!normalized) {
-			// no URIResolver available; ask the URIHelper directly
-			systemId = URIHelper.normalize(systemId, base, null);
-			normalized = true;
-		}
-		return systemId;
-	}
-
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelquery/XMLModelQueryAssociationProvider.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelquery/XMLModelQueryAssociationProvider.java
deleted file mode 100644
index b5a55d6..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelquery/XMLModelQueryAssociationProvider.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.modelquery;
-
-
-
-import org.eclipse.wst.common.contentmodel.modelqueryimpl.XMLAssociationProvider;
-import org.eclipse.wst.common.contentmodel.util.CMDocumentCache;
-import org.eclipse.wst.xml.uriresolver.util.IdResolver;
-import org.w3c.dom.Document;
-
-/**
- * XMLModelQueryAssociationProvider
- */
-class XMLModelQueryAssociationProvider extends XMLAssociationProvider {
-
-	protected IdResolver idResolver;
-
-	public XMLModelQueryAssociationProvider(CMDocumentCache cache, IdResolver idResolver) {
-		super(cache);
-		this.idResolver = idResolver;
-	}
-
-	protected String resolveGrammarURI(Document document, String publicId, String systemId) {
-		return idResolver.resolveId(publicId, systemId);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelquery/XMLModelQueryImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelquery/XMLModelQueryImpl.java
deleted file mode 100644
index 1ac1c16..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/modelquery/XMLModelQueryImpl.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.modelquery;
-
-
-
-import org.eclipse.wst.common.contentmodel.modelqueryimpl.ModelQueryImpl;
-import org.eclipse.wst.common.contentmodel.util.CMDocumentCache;
-import org.eclipse.wst.sse.core.modelquery.MovableModelQuery;
-import org.eclipse.wst.xml.uriresolver.util.IdResolver;
-
-
-public class XMLModelQueryImpl extends ModelQueryImpl implements MovableModelQuery {
-
-	protected CMDocumentCache fCache = null;
-
-	public XMLModelQueryImpl(CMDocumentCache cache, IdResolver idResolver) {
-		super(new XMLModelQueryAssociationProvider(cache, idResolver));
-		fCache = cache;
-	}
-
-	/**
-	 * @see MovableModelQuery#setIdResolver(IdResolver)
-	 */
-	public void setIdResolver(IdResolver newIdResolver) {
-		modelQueryAssociationProvider = new XMLModelQueryAssociationProvider(fCache, newIdResolver);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/parser/XMLRegionContext.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/parser/XMLRegionContext.java
deleted file mode 100644
index d0b4204..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/parser/XMLRegionContext.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.parser;
-
-public interface XMLRegionContext {
-
-	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/text/rules/StructuredTextPartitionerForXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/text/rules/StructuredTextPartitionerForXML.java
deleted file mode 100644
index 4716296..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/text/rules/StructuredTextPartitionerForXML.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.core.text.rules;
-
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.wst.sse.core.internal.parser.ForeignRegion;
-import org.eclipse.wst.sse.core.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.IStructuredTextPartitioner;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-import org.eclipse.wst.sse.core.text.rules.StructuredTextPartitioner;
-import org.eclipse.wst.xml.core.internal.parser.regions.BlockTextRegion;
-import org.eclipse.wst.xml.core.parser.XMLRegionContext;
-
-
-public class StructuredTextPartitionerForXML extends StructuredTextPartitioner implements IStructuredTextPartitioner {
-	public final static String ST_DEFAULT_XML = "org.eclipse.wst.xml.DEFAULT_XML"; //$NON-NLS-1$
-	public final static String ST_XML_CDATA = "org.eclipse.wst.xml.XML_CDATA"; //$NON-NLS-1$
-	public final static String ST_XML_PI = "org.eclipse.wst.xml.XML_PI"; //$NON-NLS-1$
-	public final static String ST_XML_DECLARATION = "org.eclipse.wst.xml.XML_DECL"; //$NON-NLS-1$
-	public final static String ST_XML_COMMENT = "org.eclipse.wst.xml.XML_COMMENT"; //$NON-NLS-1$
-
-	/**
-	 * Should match
-	 * org.eclipse.wst.sse.core.dtd.partitioning.StructuredTextPartitionerForDTD.ST_DTD_SUBSET
-	 */
-	public static final String ST_DTD_SUBSET = "org.eclipse.wst.xml.dtd.internal_subset"; //$NON-NLS-1$
-
-	private final static String[] configuredContentTypes = new String[]{ST_DEFAULT_XML, ST_XML_CDATA, ST_XML_PI, ST_XML_DECLARATION, ST_XML_COMMENT, ST_DTD_SUBSET};
-
-	/**
-	 * Constructor for JSPDocumentPartioner.
-	 */
-	public StructuredTextPartitionerForXML() {
-		super();
-	}
-
-	protected void setInternalPartition(int offset, int length, String type) {
-		super.setInternalPartition(offset, length, type);
-	}
-
-	protected void initLegalContentTypes() {
-		fSupportedTypes = configuredContentTypes;
-	}
-
-	/**
-	 * @see com.ibm.sed.model.StructuredTextPartitioner#getPartitionType(com.ibm.sed.structuredDocument.ITextRegion)
-	 */
-	public String getPartitionType(ITextRegion region, int offset) {
-		String result = null;
-		if (region.getType() == XMLRegionContext.XML_COMMENT_TEXT)
-			result = ST_XML_COMMENT;
-		else if (region.getType() == XMLRegionContext.XML_CDATA_TEXT)
-			result = ST_XML_CDATA;
-		else if (region.getType() == XMLRegionContext.XML_PI_OPEN)
-			result = ST_XML_PI;
-		else if (region.getType() == XMLRegionContext.XML_DOCTYPE_DECLARATION)
-			result = ST_XML_DECLARATION;
-		else if (region.getType() == XMLRegionContext.XML_DOCTYPE_INTERNAL_SUBSET)
-			result = ST_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);
-	}
-
-	/**
-	 * @see com.ibm.sed.structuredDocument.partition.IStructuredTextPartitioner#getPartitionTypeBetween(com.ibm.sed.structuredDocument.ITextRegion,
-	 *      com.ibm.sed.structuredDocument.ITextRegion)
-	 */
-	public String getPartitionTypeBetween(IStructuredDocumentRegion previousNode, ITextRegion previousStartTagNameRegion, IStructuredDocumentRegion nextNode, ITextRegion nextEndTagNameRegion) {
-		return super.getPartitionTypeBetween(previousNode, previousStartTagNameRegion, nextNode, nextEndTagNameRegion);
-	}
-
-	public String getDefault() {
-		return ST_DEFAULT_XML;
-	}
-
-	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() == XMLRegionContext.BLOCK_TEXT) {
-			// for code safety, we'll always check instanceof, but I think
-			// always true.
-			if (region instanceof BlockTextRegion) {
-				// super is used below so won't be ambiguous
-				newResult = getPartitionType((BlockTextRegion) 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() == XMLRegionContext.XML_TAG_OPEN && next.getType() == XMLRegionContext.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() == XMLRegionContext.XML_TAG_NAME && nextName.getType() == XMLRegionContext.XML_TAG_NAME) {
-				setInternalPartition(offset, 0, getPartitionTypeBetween(previousStructuredDocumentRegion, previousName, sdRegion, nextName));
-				partitionFound = true;
-			}
-		}
-		return partitionFound;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/ranges/COPYRIGHT.html b/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/ranges/COPYRIGHT.html
deleted file mode 100644
index 26049b7..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/ranges/COPYRIGHT.html
+++ /dev/null
@@ -1,100 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
-                      "http://www.w3.org/TR/REC-html40/loose.dtd">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <title>W3C IPR SOFTWARE NOTICE</title>
-  </head>
-  <body bgcolor="#FFFFFF" text="#000000">
-    <h1>
-      W3C IPR SOFTWARE NOTICE
-    </h1>
-    <h3>
-      Copyright &copy; 2000 <loc href="http://www.w3.org/">World Wide Web
-      Consortium</loc>, (<loc href="http://www.lcs.mit.edu/">Massachusetts
-      Institute of Technology</loc>, <loc href="http://www.inria.fr/">Institut
-      National de Recherche en Informatique et en Automatique</loc>, <loc
-      href="http://www.keio.ac.jp/">Keio University</loc>). All Rights
-      Reserved.
-    </h3>
-    <p>
-      The DOM bindings are published under the W3C Software Copyright Notice
-      and License. The software license requires "Notice of any changes or
-      modifications to the W3C files, including the date changes were made."
-      Consequently, modified versions of the DOM bindings must document that
-      they do not conform to the W3C standard; in the case of the IDL binding,
-      the pragma prefix can no longer be 'w3c.org'; in the case of the Java
-      binding, the package names can no longer be in the 'org.w3c' package.
-    </p>
-    <p>
-      <b>Note:</b> The original version of the W3C Software Copyright Notice
-      and License could be found at <a
-      href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>http://www.w3.org/Consortium/Legal/copyright-software-19980720</a>
-    </p>
-    <h3>
-      Copyright &copy; 1994-2000 <a href="http://www.w3.org/">World Wide Web
-      Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
-      Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
-      National de Recherche en Informatique et en Automatique</a>, <a
-      href="http://www.keio.ac.jp/">Keio University</a>). All Rights
-      Reserved. http://www.w3.org/Consortium/Legal/
-    </h3>
-    <p>
-      This W3C work (including software, documents, or other related items) is
-      being provided by the copyright holders under the following license. By
-      obtaining, using and/or copying this work, you (the licensee) agree that
-      you have read, understood, and will comply with the following terms and
-      conditions:
-    </p>
-    <p>
-      Permission to use, copy, and modify this software and its documentation,
-      with or without modification,&nbsp; for any purpose and without fee or
-      royalty is hereby granted, provided that you include the following on ALL
-      copies of the software and documentation or portions thereof, including
-      modifications, that you make:
-    </p>
-    <ol>
-      <li>
-	The full text of this NOTICE in a location viewable to users of the
-	redistributed or derivative work.
-      </li>
-      <li>
-	Any pre-existing intellectual property disclaimers, notices, or terms
-	and conditions. If none exist, a short notice of the following form
-	(hypertext is preferred, text is permitted) should be used within the
-	body of any redistributed or derivative code: "Copyright &copy;
-	[$date-of-software] <a href="http://www.w3.org/">World Wide Web
-	Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
-	Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
-	National de Recherche en Informatique et en Automatique</a>, <a
-	href="http://www.keio.ac.jp/">Keio University</a>).  All Rights
-	Reserved. http://www.w3.org/Consortium/Legal/"
-      </li>
-      <li>
-	Notice of any changes or modifications to the W3C files, including the
-	date changes were made. (We recommend you provide URIs to the location
-	from which the code is derived.)
-      </li>
-    </ol>
-    <p>
-      THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT
-      HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
-      INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS
-      FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR
-      DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
-      TRADEMARKS OR OTHER RIGHTS.
-    </p>
-    <p>
-      COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
-      CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
-      DOCUMENTATION.
-    </p>
-    <p>
-      The name and trademarks of copyright holders may NOT be used in
-      advertising or publicity pertaining to the software without specific,
-      written prior permission. Title to copyright in this software and any
-      associated documentation will at all times remain with copyright
-      holders.
-    </p>
-  </body>
-</html>
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/ranges/DocumentRange.java b/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/ranges/DocumentRange.java
deleted file mode 100644
index e40d080..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/ranges/DocumentRange.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-
-package org.w3c.dom.ranges;
-
-/**
- * <p>
- * See also the <a
- * href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document
- * Object Model (DOM) Level 2 Traversal and Range Specification </a>.
- * 
- * @since DOM Level 2
- */
-public interface DocumentRange {
-	/**
-	 * This interface can be obtained from the object implementing the
-	 * <code>Document</code> interface using binding-specific casting
-	 * methods.
-	 * 
-	 * @return The initial state of the Range returned from this method is
-	 *         such that both of its boundary-points are positioned at the
-	 *         beginning of the corresponding Document, before any content.
-	 *         The Range returned can only be used to select content
-	 *         associated with this Document, or with DocumentFragments and
-	 *         Attrs for which this Document is the <code>ownerDocument</code>.
-	 */
-	public Range createRange();
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/ranges/Range.java b/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/ranges/Range.java
deleted file mode 100644
index 63c3665..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/ranges/Range.java
+++ /dev/null
@@ -1,434 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-
-package org.w3c.dom.ranges;
-
-import org.w3c.dom.DOMException;
-import org.w3c.dom.DocumentFragment;
-import org.w3c.dom.Node;
-
-/**
- * <p>
- * See also the <a
- * href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document
- * Object Model (DOM) Level 2 Traversal and Range Specification </a>.
- * 
- * @since DOM Level 2
- */
-public interface Range {
-	/**
-	 * Compare end boundary-point of <code>sourceRange</code> to end
-	 * boundary-point of Range on which <code>compareBoundaryPoints</code>
-	 * is invoked.
-	 */
-	public static final short END_TO_END = 2;
-	/**
-	 * Compare end boundary-point of <code>sourceRange</code> to start
-	 * boundary-point of Range on which <code>compareBoundaryPoints</code>
-	 * is invoked.
-	 */
-	public static final short END_TO_START = 3;
-	/**
-	 * Compare start boundary-point of <code>sourceRange</code> to end
-	 * boundary-point of Range on which <code>compareBoundaryPoints</code>
-	 * is invoked.
-	 */
-	public static final short START_TO_END = 1;
-
-	// CompareHow
-	/**
-	 * Compare start boundary-point of <code>sourceRange</code> to start
-	 * boundary-point of Range on which <code>compareBoundaryPoints</code>
-	 * is invoked.
-	 */
-	public static final short START_TO_START = 0;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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 DOMException, RangeException;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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 DOMException, RangeException;
-
-	/**
-	 * Returns the contents of a Range as a string. This string contains only
-	 * the data characters, not any markup.
-	 * 
-	 * @return The contents of the Range.
-	 * @exception DOMException
-	 *                INVALID_STATE_ERR: Raised if <code>detach()</code> has
-	 *                already been invoked on this object.
-	 */
-	public String toString() throws DOMException;
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/ranges/RangeException.java b/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/ranges/RangeException.java
deleted file mode 100644
index aea5f49..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/ranges/RangeException.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-
-package org.w3c.dom.ranges;
-
-/**
- * Range operations may throw a <code>RangeException</code> as specified in
- * their method descriptions.
- * <p>
- * See also the <a
- * href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document
- * Object Model (DOM) Level 2 Traversal and Range Specification </a>.
- * 
- * @since DOM Level 2
- */
-public class RangeException extends RuntimeException {
-	/**
-	 * Default <code>serialVersionUID</code>
-	 */
-	private static final long serialVersionUID = 1L;
-	// RangeExceptionCode
-	/**
-	 * If the boundary-points of a Range do not meet specific requirements.
-	 */
-	public static final short BAD_BOUNDARYPOINTS_ERR = 1;
-	/**
-	 * If the container of an boundary-point of a Range is being set to either
-	 * a node of an invalid type or a node with an ancestor of an invalid
-	 * type.
-	 */
-	public static final short INVALID_NODE_TYPE_ERR = 2;
-
-	public short code;
-
-	public RangeException(short code, String message) {
-		super(message);
-		this.code = code;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/ranges/package.html b/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/ranges/package.html
deleted file mode 100644
index d8fbae6..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/ranges/package.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<html>
-This package contains unmodified sources provided by http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113/java-binding.zip
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/traversal/COPYRIGHT.html b/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/traversal/COPYRIGHT.html
deleted file mode 100644
index 26049b7..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/traversal/COPYRIGHT.html
+++ /dev/null
@@ -1,100 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
-                      "http://www.w3.org/TR/REC-html40/loose.dtd">
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <title>W3C IPR SOFTWARE NOTICE</title>
-  </head>
-  <body bgcolor="#FFFFFF" text="#000000">
-    <h1>
-      W3C IPR SOFTWARE NOTICE
-    </h1>
-    <h3>
-      Copyright &copy; 2000 <loc href="http://www.w3.org/">World Wide Web
-      Consortium</loc>, (<loc href="http://www.lcs.mit.edu/">Massachusetts
-      Institute of Technology</loc>, <loc href="http://www.inria.fr/">Institut
-      National de Recherche en Informatique et en Automatique</loc>, <loc
-      href="http://www.keio.ac.jp/">Keio University</loc>). All Rights
-      Reserved.
-    </h3>
-    <p>
-      The DOM bindings are published under the W3C Software Copyright Notice
-      and License. The software license requires "Notice of any changes or
-      modifications to the W3C files, including the date changes were made."
-      Consequently, modified versions of the DOM bindings must document that
-      they do not conform to the W3C standard; in the case of the IDL binding,
-      the pragma prefix can no longer be 'w3c.org'; in the case of the Java
-      binding, the package names can no longer be in the 'org.w3c' package.
-    </p>
-    <p>
-      <b>Note:</b> The original version of the W3C Software Copyright Notice
-      and License could be found at <a
-      href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>http://www.w3.org/Consortium/Legal/copyright-software-19980720</a>
-    </p>
-    <h3>
-      Copyright &copy; 1994-2000 <a href="http://www.w3.org/">World Wide Web
-      Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
-      Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
-      National de Recherche en Informatique et en Automatique</a>, <a
-      href="http://www.keio.ac.jp/">Keio University</a>). All Rights
-      Reserved. http://www.w3.org/Consortium/Legal/
-    </h3>
-    <p>
-      This W3C work (including software, documents, or other related items) is
-      being provided by the copyright holders under the following license. By
-      obtaining, using and/or copying this work, you (the licensee) agree that
-      you have read, understood, and will comply with the following terms and
-      conditions:
-    </p>
-    <p>
-      Permission to use, copy, and modify this software and its documentation,
-      with or without modification,&nbsp; for any purpose and without fee or
-      royalty is hereby granted, provided that you include the following on ALL
-      copies of the software and documentation or portions thereof, including
-      modifications, that you make:
-    </p>
-    <ol>
-      <li>
-	The full text of this NOTICE in a location viewable to users of the
-	redistributed or derivative work.
-      </li>
-      <li>
-	Any pre-existing intellectual property disclaimers, notices, or terms
-	and conditions. If none exist, a short notice of the following form
-	(hypertext is preferred, text is permitted) should be used within the
-	body of any redistributed or derivative code: "Copyright &copy;
-	[$date-of-software] <a href="http://www.w3.org/">World Wide Web
-	Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
-	Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
-	National de Recherche en Informatique et en Automatique</a>, <a
-	href="http://www.keio.ac.jp/">Keio University</a>).  All Rights
-	Reserved. http://www.w3.org/Consortium/Legal/"
-      </li>
-      <li>
-	Notice of any changes or modifications to the W3C files, including the
-	date changes were made. (We recommend you provide URIs to the location
-	from which the code is derived.)
-      </li>
-    </ol>
-    <p>
-      THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT
-      HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
-      INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS
-      FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR
-      DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
-      TRADEMARKS OR OTHER RIGHTS.
-    </p>
-    <p>
-      COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
-      CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
-      DOCUMENTATION.
-    </p>
-    <p>
-      The name and trademarks of copyright holders may NOT be used in
-      advertising or publicity pertaining to the software without specific,
-      written prior permission. Title to copyright in this software and any
-      associated documentation will at all times remain with copyright
-      holders.
-    </p>
-  </body>
-</html>
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/traversal/DocumentTraversal.java b/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/traversal/DocumentTraversal.java
deleted file mode 100644
index dec9331..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/traversal/DocumentTraversal.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-
-package org.w3c.dom.traversal;
-
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Node;
-
-/**
- * <code>DocumentTraversal</code> contains methods that create iterators and
- * tree-walkers to traverse a node and its children in document order (depth
- * first, pre-order traversal, which is equivalent to the order in which the
- * start tags occur in the text representation of the document). In DOMs which
- * support the Traversal feature, <code>DocumentTraversal</code> will be
- * implemented by the same objects that implement the Document interface.
- * <p>
- * See also the <a
- * href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document
- * Object Model (DOM) Level 2 Traversal and Range Specification </a>.
- * 
- * @since DOM Level 2
- */
-public interface DocumentTraversal {
-	/**
-	 * Create a new <code>NodeIterator</code> over the subtree rooted at the
-	 * specified node.
-	 * 
-	 * @param rootThe
-	 *            node which will be iterated together with its children. The
-	 *            iterator is initially positioned just before this node. The
-	 *            <code>whatToShow</code> flags and the filter, if any, are
-	 *            not considered when setting this position. The root must not
-	 *            be <code>null</code>.
-	 * @param whatToShowThis
-	 *            flag specifies which node types may appear in the logical
-	 *            view of the tree presented by the iterator. See the
-	 *            description of <code>NodeFilter</code> for the set of
-	 *            possible <code>SHOW_</code> values.These flags can be
-	 *            combined using <code>OR</code>.
-	 * @param filterThe
-	 *            <code>NodeFilter</code> to be used with this
-	 *            <code>TreeWalker</code>, or <code>null</code> to
-	 *            indicate no filter.
-	 * @param entityReferenceExpansionThe
-	 *            value of this flag determines whether entity reference nodes
-	 *            are expanded.
-	 * @return The newly created <code>NodeIterator</code>.
-	 * @exception DOMException
-	 *                NOT_SUPPORTED_ERR: Raised if the specified
-	 *                <code>root</code> is <code>null</code>.
-	 */
-	public NodeIterator createNodeIterator(Node root, int whatToShow, NodeFilter filter, boolean entityReferenceExpansion) throws DOMException;
-
-	/**
-	 * Create a new <code>TreeWalker</code> over the subtree rooted at the
-	 * specified node.
-	 * 
-	 * @param rootThe
-	 *            node which will serve as the <code>root</code> for the
-	 *            <code>TreeWalker</code>. The <code>whatToShow</code>
-	 *            flags and the <code>NodeFilter</code> are not considered
-	 *            when setting this value; any node type will be accepted as
-	 *            the <code>root</code>. The <code>currentNode</code> of
-	 *            the <code>TreeWalker</code> is initialized to this node,
-	 *            whether or not it is visible. The <code>root</code>
-	 *            functions as a stopping point for traversal methods that
-	 *            look upward in the document structure, such as
-	 *            <code>parentNode</code> and nextNode. The
-	 *            <code>root</code> must not be <code>null</code>.
-	 * @param whatToShowThis
-	 *            flag specifies which node types may appear in the logical
-	 *            view of the tree presented by the tree-walker. See the
-	 *            description of <code>NodeFilter</code> for the set of
-	 *            possible SHOW_ values.These flags can be combined using
-	 *            <code>OR</code>.
-	 * @param filterThe
-	 *            <code>NodeFilter</code> to be used with this
-	 *            <code>TreeWalker</code>, or <code>null</code> to
-	 *            indicate no filter.
-	 * @param entityReferenceExpansionIf
-	 *            this flag is false, the contents of
-	 *            <code>EntityReference</code> nodes are not presented in
-	 *            the logical view.
-	 * @return The newly created <code>TreeWalker</code>.
-	 * @exception DOMException
-	 *                NOT_SUPPORTED_ERR: Raised if the specified
-	 *                <code>root</code> is <code>null</code>.
-	 */
-	public TreeWalker createTreeWalker(Node root, int whatToShow, NodeFilter filter, boolean entityReferenceExpansion) throws DOMException;
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/traversal/NodeFilter.java b/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/traversal/NodeFilter.java
deleted file mode 100644
index 48c746a..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/traversal/NodeFilter.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-
-package org.w3c.dom.traversal;
-
-import org.w3c.dom.Node;
-
-/**
- * Filters are objects that know how to "filter out" nodes. If a
- * <code>NodeIterator</code> or <code>TreeWalker</code> is given a
- * <code>NodeFilter</code>, it applies the filter before it returns the
- * next node. If the filter says to accept the node, the traversal logic
- * returns it; otherwise, traversal looks for the next node and pretends that
- * the node that was rejected was not there.
- * <p>
- * The DOM does not provide any filters. <code>NodeFilter</code> is just an
- * interface that users can implement to provide their own filters.
- * <p>
- * <code>NodeFilters</code> do not need to know how to traverse from node to
- * node, nor do they need to know anything about the data structure that is
- * being traversed. This makes it very easy to write filters, since the only
- * thing they have to know how to do is evaluate a single node. One filter may
- * be used with a number of different kinds of traversals, encouraging code
- * reuse.
- * <p>
- * See also the <a
- * href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document
- * Object Model (DOM) Level 2 Traversal and Range Specification </a>.
- * 
- * @since DOM Level 2
- */
-public interface NodeFilter {
-	// Constants returned by acceptNode
-	/**
-	 * Accept the node. Navigation methods defined for
-	 * <code>NodeIterator</code> or <code>TreeWalker</code> will return
-	 * this node.
-	 */
-	public static final short FILTER_ACCEPT = 1;
-	/**
-	 * Reject the node. Navigation methods defined for
-	 * <code>NodeIterator</code> or <code>TreeWalker</code> will not
-	 * return this node. For <code>TreeWalker</code>, the children of this
-	 * node will also be rejected. <code>NodeIterators</code> treat this as
-	 * a synonym for <code>FILTER_SKIP</code>.
-	 */
-	public static final short FILTER_REJECT = 2;
-	/**
-	 * Skip this single node. Navigation methods defined for
-	 * <code>NodeIterator</code> or <code>TreeWalker</code> will not
-	 * return this node. For both <code>NodeIterator</code> and
-	 * <code>TreeWalker</code>, the children of this node will still be
-	 * considered.
-	 */
-	public static final short FILTER_SKIP = 3;
-
-	// Constants for whatToShow
-	/**
-	 * Show all <code>Nodes</code>.
-	 */
-	public static final int SHOW_ALL = 0xFFFFFFFF;
-	/**
-	 * Show <code>Element</code> nodes.
-	 */
-	public static final int SHOW_ELEMENT = 0x00000001;
-	/**
-	 * Show <code>Attr</code> nodes. This is meaningful only when creating
-	 * an iterator or tree-walker with an attribute node as its
-	 * <code>root</code>; in this case, it means that the attribute node
-	 * will appear in the first position of the iteration or traversal. Since
-	 * attributes are never children of other nodes, they do not appear when
-	 * traversing over the document tree.
-	 */
-	public static final int SHOW_ATTRIBUTE = 0x00000002;
-	/**
-	 * Show <code>Text</code> nodes.
-	 */
-	public static final int SHOW_TEXT = 0x00000004;
-	/**
-	 * Show <code>CDATASection</code> nodes.
-	 */
-	public static final int SHOW_CDATA_SECTION = 0x00000008;
-	/**
-	 * Show <code>EntityReference</code> nodes.
-	 */
-	public static final int SHOW_ENTITY_REFERENCE = 0x00000010;
-	/**
-	 * Show <code>Entity</code> nodes. This is meaningful only when creating
-	 * an iterator or tree-walker with an <code> Entity</code> node as its
-	 * <code>root</code>; in this case, it means that the
-	 * <code>Entity</code> node will appear in the first position of the
-	 * traversal. Since entities are not part of the document tree, they do
-	 * not appear when traversing over the document tree.
-	 */
-	public static final int SHOW_ENTITY = 0x00000020;
-	/**
-	 * Show <code>ProcessingInstruction</code> nodes.
-	 */
-	public static final int SHOW_PROCESSING_INSTRUCTION = 0x00000040;
-	/**
-	 * Show <code>Comment</code> nodes.
-	 */
-	public static final int SHOW_COMMENT = 0x00000080;
-	/**
-	 * Show <code>Document</code> nodes.
-	 */
-	public static final int SHOW_DOCUMENT = 0x00000100;
-	/**
-	 * Show <code>DocumentType</code> nodes.
-	 */
-	public static final int SHOW_DOCUMENT_TYPE = 0x00000200;
-	/**
-	 * Show <code>DocumentFragment</code> nodes.
-	 */
-	public static final int SHOW_DOCUMENT_FRAGMENT = 0x00000400;
-	/**
-	 * Show <code>Notation</code> nodes. This is meaningful only when
-	 * creating an iterator or tree-walker with a <code>Notation</code> node
-	 * as its <code>root</code>; in this case, it means that the
-	 * <code>Notation</code> node will appear in the first position of the
-	 * traversal. Since notations are not part of the document tree, they do
-	 * not appear when traversing over the document tree.
-	 */
-	public static final int SHOW_NOTATION = 0x00000800;
-
-	/**
-	 * Test whether a specified node is visible in the logical view of a
-	 * <code>TreeWalker</code> or <code>NodeIterator</code>. This
-	 * function will be called by the implementation of
-	 * <code>TreeWalker</code> and <code>NodeIterator</code>; it is not
-	 * normally called directly from user code. (Though you could do so if you
-	 * wanted to use the same filter to guide your own application logic.)
-	 * 
-	 * @param nThe
-	 *            node to check to see if it passes the filter or not.
-	 * @return a constant to determine whether the node is accepted, rejected,
-	 *         or skipped, as defined above.
-	 */
-	public short acceptNode(Node n);
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/traversal/NodeIterator.java b/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/traversal/NodeIterator.java
deleted file mode 100644
index b34a39c..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/traversal/NodeIterator.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-
-package org.w3c.dom.traversal;
-
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Node;
-
-/**
- * <code>Iterators</code> are used to step through a set of nodes, e.g. the
- * set of nodes in a <code>NodeList</code>, the document subtree governed
- * by a particular <code>Node</code>, the results of a query, or any other
- * set of nodes. The set of nodes to be iterated is determined by the
- * implementation of the <code>NodeIterator</code>. DOM Level 2 specifies a
- * single <code>NodeIterator</code> implementation for document-order
- * traversal of a document subtree. Instances of these iterators are created
- * by calling <code>DocumentTraversal</code>
- * <code>.createNodeIterator()</code>.
- * <p>
- * See also the <a
- * href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document
- * Object Model (DOM) Level 2 Traversal and Range Specification </a>.
- * 
- * @since DOM Level 2
- */
-public interface NodeIterator {
-	/**
-	 * The root node of the <code>NodeIterator</code>, as specified when it
-	 * was created.
-	 */
-	public Node getRoot();
-
-	/**
-	 * 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();
-
-	/**
-	 * The <code>NodeFilter</code> used to screen nodes.
-	 */
-	public NodeFilter getFilter();
-
-	/**
-	 * 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();
-
-	/**
-	 * 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;
-
-	/**
-	 * 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;
-
-	/**
-	 * 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();
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/traversal/TreeWalker.java b/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/traversal/TreeWalker.java
deleted file mode 100644
index 3747d60..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/traversal/TreeWalker.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-
-package org.w3c.dom.traversal;
-
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Node;
-
-/**
- * <code>TreeWalker</code> objects are used to navigate a document tree or
- * subtree using the view of the document defined by their
- * <code>whatToShow</code> flags and filter (if any). Any function which
- * performs navigation using a <code>TreeWalker</code> will automatically
- * support any view defined by a <code>TreeWalker</code>.
- * <p>
- * Omitting nodes from the logical view of a subtree can result in a structure
- * that is substantially different from the same subtree in the complete,
- * unfiltered document. Nodes that are siblings in the <code>TreeWalker</code>
- * view may be children of different, widely separated nodes in the original
- * view. For instance, consider a <code>NodeFilter</code> that skips all
- * nodes except for Text nodes and the root node of a document. In the logical
- * view that results, all text nodes will be siblings and appear as direct
- * children of the root node, no matter how deeply nested the structure of the
- * original document.
- * <p>
- * See also the <a
- * href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document
- * Object Model (DOM) Level 2 Traversal and Range Specification </a>.
- * 
- * @since DOM Level 2
- */
-public interface TreeWalker {
-	/**
-	 * The <code>root</code> node of the <code>TreeWalker</code>, as
-	 * specified when it was created.
-	 */
-	public Node getRoot();
-
-	/**
-	 * This attribute determines which node types are presented via the
-	 * <code>TreeWalker</code>. 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();
-
-	/**
-	 * The filter used to screen nodes.
-	 */
-	public NodeFilter getFilter();
-
-	/**
-	 * The value of this flag determines whether the children of entity
-	 * reference nodes are visible to the <code>TreeWalker</code>. If
-	 * false, they and their descendants will be rejected. Note that this
-	 * rejection takes precedence over <code>whatToShow</code> and the
-	 * filter, if any. <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
-	 * <code>TreeWalker</code>. 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();
-
-	/**
-	 * The node at which the <code>TreeWalker</code> is currently
-	 * positioned. <br>
-	 * Alterations to the DOM tree may cause the current node to no longer be
-	 * accepted by the <code>TreeWalker</code>'s associated filter.
-	 * <code>currentNode</code> may also be explicitly set to any node,
-	 * whether or not it is within the subtree specified by the
-	 * <code>root</code> node or would be accepted by the filter and
-	 * <code>whatToShow</code> flags. Further traversal occurs relative to
-	 * <code>currentNode</code> even if it is not part of the current view,
-	 * by applying the filters in the requested direction; if no traversal is
-	 * possible, <code>currentNode</code> is not changed.
-	 * 
-	 * @exception DOMException
-	 *                NOT_SUPPORTED_ERR: Raised if an attempt is made to set
-	 *                <code>currentNode</code> to <code>null</code>.
-	 */
-	public Node getCurrentNode();
-
-	public void setCurrentNode(Node currentNode) throws DOMException;
-
-	/**
-	 * Moves to and returns the closest visible ancestor node of the current
-	 * node. If the search for <code>parentNode</code> attempts to step
-	 * upward from the <code>TreeWalker</code>'s<code>root</code> node,
-	 * or if it fails to find a visible ancestor node, this method retains the
-	 * current position and returns <code>null</code>.
-	 * 
-	 * @return The new parent node, or <code>null</code> if the current node
-	 *         has no parent in the <code>TreeWalker</code>'s logical view.
-	 */
-	public Node parentNode();
-
-	/**
-	 * Moves the <code>TreeWalker</code> to the first visible child of the
-	 * current node, and returns the new node. If the current node has no
-	 * visible children, returns <code>null</code>, and retains the current
-	 * node.
-	 * 
-	 * @return The new node, or <code>null</code> if the current node has no
-	 *         visible children in the <code>TreeWalker</code>'s logical
-	 *         view.
-	 */
-	public Node firstChild();
-
-	/**
-	 * Moves the <code>TreeWalker</code> to the last visible child of the
-	 * current node, and returns the new node. If the current node has no
-	 * visible children, returns <code>null</code>, and retains the current
-	 * node.
-	 * 
-	 * @return The new node, or <code>null</code> if the current node has no
-	 *         children in the <code>TreeWalker</code>'s logical view.
-	 */
-	public Node lastChild();
-
-	/**
-	 * Moves the <code>TreeWalker</code> to the previous sibling of the
-	 * current node, and returns the new node. If the current node has no
-	 * visible previous sibling, returns <code>null</code>, and retains the
-	 * current node.
-	 * 
-	 * @return The new node, or <code>null</code> if the current node has no
-	 *         previous sibling. in the <code>TreeWalker</code>'s logical
-	 *         view.
-	 */
-	public Node previousSibling();
-
-	/**
-	 * Moves the <code>TreeWalker</code> to the next sibling of the current
-	 * node, and returns the new node. If the current node has no visible next
-	 * sibling, returns <code>null</code>, and retains the current node.
-	 * 
-	 * @return The new node, or <code>null</code> if the current node has no
-	 *         next sibling. in the <code>TreeWalker</code>'s logical view.
-	 */
-	public Node nextSibling();
-
-	/**
-	 * Moves the <code>TreeWalker</code> to the previous visible node in
-	 * document order relative to the current node, and returns the new node.
-	 * If the current node has no previous node, or if the search for
-	 * <code>previousNode</code> attempts to step upward from the
-	 * <code>TreeWalker</code>'s<code>root</code> node, returns
-	 * <code>null</code>, and retains the current node.
-	 * 
-	 * @return The new node, or <code>null</code> if the current node has no
-	 *         previous node in the <code>TreeWalker</code>'s logical view.
-	 */
-	public Node previousNode();
-
-	/**
-	 * Moves the <code>TreeWalker</code> to the next visible node in
-	 * document order relative to the current node, and returns the new node.
-	 * If the current node has no next node, or if the search for nextNode
-	 * attempts to step upward from the <code>TreeWalker</code>'s
-	 * <code>root</code> node, returns <code>null</code>, and retains the
-	 * current node.
-	 * 
-	 * @return The new node, or <code>null</code> if the current node has no
-	 *         next node in the <code>TreeWalker</code>'s logical view.
-	 */
-	public Node nextNode();
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/traversal/package.html b/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/traversal/package.html
deleted file mode 100644
index d8fbae6..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/w3c/dom/traversal/package.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<html>
-This package contains unmodified sources provided by http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113/java-binding.zip
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/.classpath b/bundles/org.eclipse.wst.xsd.ui/.classpath
deleted file mode 100644
index 275b34c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src/"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.wst.xsd.ui/.cvsignore b/bundles/org.eclipse.wst.xsd.ui/.cvsignore
deleted file mode 100644
index 7ba51e6..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin
-xsdeditor.jar
-build.xml
-temp.folder
-org.eclipse.wst.xsd.ui_1.0.0.jar
diff --git a/bundles/org.eclipse.wst.xsd.ui/.project b/bundles/org.eclipse.wst.xsd.ui/.project
deleted file mode 100644
index aab3824..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.xsd.ui</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index efba9c0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,69 +0,0 @@
-#Fri Dec 10 00:29:03 EST 2004

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

-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled

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

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

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

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

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

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

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

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

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

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

-org.eclipse.jdt.core.builder.invalidClasspath=abort

-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch

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

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

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

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

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

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

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

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

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

-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve

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

-org.eclipse.jdt.core.compiler.compliance=1.5

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

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

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

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

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

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

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

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

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

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

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

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

-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2

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

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

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

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

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

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

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

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

-eclipse.preferences.version=1

-org.eclipse.jdt.core.circularClasspath=error

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

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

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

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

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

-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled

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

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

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

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

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

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

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

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

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

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

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

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

diff --git a/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 179abb3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Fri Dec 10 00:50:26 EST 2004

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

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

-compilers.p.unknown-element=0

-compilers.p.unknown-resource=0

-compilers.p.unknown-class=0

-compilers.p.unknown-attribute=0

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

-eclipse.preferences.version=1

-compilers.p.unresolved-import=0

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

-compilers.use-project=true

diff --git a/bundles/org.eclipse.wst.xsd.ui/build.properties b/bundles/org.eclipse.wst.xsd.ui/build.properties
deleted file mode 100644
index bb73afb..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/build.properties
+++ /dev/null
@@ -1,33 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.xsdeditor.jar = src/
-bin.includes = xsdeditor.jar,\
-               plugin.xml,\
-               icons/,\
-               image/,\
-               doc/,\
-               plugin.properties,\
-               samples/,\
-               w3c/
-src.includes = w3c/,\
-               samples/,\
-               plugin.xml,\
-               plugin.properties,\
-               image/,\
-               icons/,\
-               doc/,\
-               src/,\
-               test/,\
-               build.xml,\
-               build.properties,\
-               .project,\
-               .classpath,\
-               xsdeditor.jar
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/XSDFile.gif b/bundles/org.eclipse.wst.xsd.ui/icons/XSDFile.gif
deleted file mode 100644
index 3900f1b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/XSDFile.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/annotationsheader.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/annotationsheader.gif
deleted file mode 100644
index 9bfb682..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/annotationsheader.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/attributegroupsheader.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/attributegroupsheader.gif
deleted file mode 100644
index e618a25..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/attributegroupsheader.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/attributesheader.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/attributesheader.gif
deleted file mode 100644
index 9254879..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/attributesheader.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/directivesheader.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/directivesheader.gif
deleted file mode 100644
index 6000cb8..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/directivesheader.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/elementsheader.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/elementsheader.gif
deleted file mode 100644
index 26f7206..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/elementsheader.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/groupsheader.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/groupsheader.gif
deleted file mode 100644
index c9745f0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/groupsheader.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/notationsheader.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/notationsheader.gif
deleted file mode 100644
index e05c645..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/notationsheader.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_list_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_list_obj.gif
deleted file mode 100644
index 6e2cd93..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_list_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_restrict_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_restrict_obj.gif
deleted file mode 100644
index 1ebd546..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_restrict_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_union_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_union_obj.gif
deleted file mode 100644
index 0b01f8c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_union_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/typesheader.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/typesheader.gif
deleted file mode 100644
index 3267542..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/typesheader.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/attributeoverlay.gif b/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/attributeoverlay.gif
deleted file mode 100644
index 1931f92..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/attributeoverlay.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/textoverlay.gif b/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/textoverlay.gif
deleted file mode 100644
index d455c2b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/textoverlay.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/plugin.properties b/bundles/org.eclipse.wst.xsd.ui/plugin.properties
deleted file mode 100644
index 8bcb7ec..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/plugin.properties
+++ /dev/null
@@ -1,1047 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-! Properties file for component: XMSCH - XML Tools -  XML Schema Editor
-! Packaged for translation in:  xml.zip
-
-!
-! Plugin
-!
-_UI_PLUGIN_NAME             = XML Schema Editor
-_UI_EDITOR_NAME             = XML Schema Editor
-
-_UI_ACTION_EXT_GENERATE      = &Generate
-_UI_ACTION_EXT_GENERATE_DDL  = &DDL...
-_UI_ACTION_EXT_GENERATE_DTD  = D&TD...
-_UI_ACTION_EXT_GENERATE_JAVA = &Java Beans...
-
-_UI_ACTION_EXT_GENERATE_XSD = &Generate XML Schema
-_UI_WIZARD_NAME_NEW_XSD     = XML Schema
-
-_UI_XML_TOOLS_PREFERENCE_PAGE  = XML
-_UI_XML_SCHEMA_PREFERENCE      = XML Schema Files
-
-_UI_WIZARD_NEW_XSD             = XML Schema
-_UI_CREATE_A_NEW_SCHEMA        = Create a new XML schema file
-
-! New property tabs
-_UI_LABEL_GENERAL       = General
-_UI_LABEL_OTHER         = Other
-_UI_LABEL_ATTRIBUTES    = Attributes
-_UI_LABEL_DOCUMENTATION = Documentation
-_UI_LABEL_FACETS        = Facets
-_UI_LABEL_ENUMERATIONS  = Enumerations
-_UI_LABEL_NAMESPACE     = Namespace
-
-_UI_LABEL_READ_ONLY     = read-only
-_UI_LABEL_KIND          = Kind:
-_UI_LABEL_VARIETY       = Variety:
-
-!
-! Schema File Window
-!
-_UI_LABEL_FILE_NAME              = File name:
-_UI_LABEL_VERSION                = Version:
-_UI_TOOLTIP_VERSION              = Convenient attribute to store version number
-_UI_LABEL_LANGUAGE               = Language:
-_UI_TOOLTIP_LANGUAGE             = Represents natural language identifiers
-_UI_GROUP_NAMESPACE              = Namespace
-_UI_LABEL_SCHEMA_PREFIX          = Prefix:
-_UI_TOOLTIP_SCHEMA_PREFIX        = The prefix associated with the current namespace.
-_UI_LABEL_TARGET_NAME_SPACE      = Target namespace:
-_UI_TOOLTIP_TARGET_NAME_SPACE    = The namespace for this schema.
-_UI_BUTTON_APPLY                 = Apply
-_UI_LABEL_ATTRIBUTE_FORM_DEFAULT = Attribute form default:
-_UI_TOOLTIP_ATTRIBUTE_FORM       = Indicates if all attributes in a schema must be qualified or not in the instance document
-_UI_LABEL_ELEMENT_FORM_DEFAULT   = Element form default:
-_UI_TOOLTIP_ELEMENT_FORM_DEFAULT = Indicates if all elements in a schema must be qualified or not in the instance document
-_UI_LABEL_BLOCK_DEFAULT          = Block default:
-_UI_TOOLTIP_BLOCK_DEFAULT        = Control derivations for every type and element in the schema
-_UI_LABEL_FINAL_DEFAULT          = Final default:
-_UI_TOOLTIP_FINAL_DEFAULT        = Control derivations for every type and element in the schema
-_UI_ACTION_DELETE_INCLUDE        = Delete
-_UI_ACTION_DELETE_NODES          = Delete Nodes
-! Note to translators: The following is the acronym for Uniform Resource Indicator
-_UI_LABEL_URI                    = URI:
-
-
-_UI_LABEL_ADD              = Add...
-_UI_LABEL_EDIT             = Edit...
-_UI_LABEL_PATTERNS         = Patterns
-_ERROR_FILE_ALREADY_EXISTS = The file name already exists: {0}
-
-!
-! Any Section
-!
-! Note to translators - translate only the word and
-_UI_LABEL_NAMESPACE_AND_PROCESS_CONTENTS = namespace and processContents
-
-!
-! minOccurs and maxOccurs section
-!
-! Note to translators - translate only the word and
-_UI_LABEL_MINOCCURS_AND_MAXOCCURS = minOccurs and maxOccurs
-
-!
-! Value Information Section
-!
-_UI_LABEL_VALUE_INFORMATION   = Value Information
-
-!
-! Notation window
-!
-_UI_NOTATION_NAME                = Name:
-_UI_NOTATION_PUBLIC              = Public:
-_UI_NOTATION_SYSTEM              = System:
-_UI_TOOLTIP_PUBLIC               = An optional public identifier
-_UI_TOOLTIP_SYSTEM               = An optional URI reference
-
-!
-! Complex Type Window
-!
-_UI_NAME                         = Name:
-_UI_ABSTRACT                     = Abstract:
-_UI_MIXED                        = Mixed:
-_UI_BLOCK                        = Block:
-_UI_FINAL                        = Final:
-
-_UI_CT_TOOLTIP_MIXED             = Indicates if type may contain mixed content
-_UI_CT_TOOLTIP_ABSTRACT          = When a complex type is declared abstract, it cannot be used in an instance document
-_UI_CT_TOOLTIP_FINAL             = You can use this to prevent further derivations
-_UI_CT_TOOLTIP_BLOCK             = You can use this to block any derivations
-
-!
-! SimpleContent and ComplexContent Window
-! 
-_UI_LABEL_DERIVED_BY            = Derived by:
-_UI_TOOLTIP_DERIVED_BY          = Derive by extension to inherit from a base type content model and add to it. Derive by restriction to restrict the content model of an existing type.
-
-!
-! Combo box items - no need to translate
-!
-_UI_COMBO_RESTRICTION           = restriction
-_UI_COMBO_EXTENSION             = extension
-
-!
-! Element & Element Ref Window
-!
-_UI_ELEMENT_NAME                 = Name:
-_UI_CHECKBOX_NILLABLE            = Nillable
-_UI_CHECKBOX_ABSTRACT            = Abstract
-_UI_SUBSTITUTION                 = Substitution group:
-_UI_MINIMUM                      = Minimum:
-_UI_MAXIMUM                      = Maximum:
-_UI_REFERENCE_NAME               = Reference name:
-
-_UI_TOOLTIP_ELEMENT_MINIMUM      = A non-negative integer that specifies the minimum number of times an element can occur.
-_UI_TOOLTIP_ELEMENT_MAXIMUM      = A non-negative integer or unbounded if there is no upper limit on the number of times the element can occur.
-_UI_TOOLTIP_ELEMENT_ABSTRACT     = When an element is declared abstract, a member of its equivalent class must appear in the instance document,
-_UI_TOOLTIP_ELEMENT_NIL          = If selected, an attribute can be included in the instance document to indicate that the element has a nil value.
-_UI_TOOLTIP_ELEMENT_SUBSTITUTION = Select the element that can be substituted by this element
-_UI_TOOLTIP_ELEMENT_FORM         = Indicates if the element is qualifed in the instance document
-_UI_TOOLTIP_ELEMENT_VALUE        = Provides a default or fixed value for the element.
-
-
-!
-! Attribute Window
-!    _UI_COMBO_BOX strings are used in code generation. 
-!    Probably don't need to be translated
-!
-_UI_COMBO_BOX_REQUIRED           = required
-_UI_COMBO_BOX_OPTIONAL           = optional
-_UI_COMBO_BOX_PROHIBITED         = prohibited
-
-_UI_FIXED                        = Fixed
-_UI_DEFAULT                      = Default
-_UI_ATTRIBUTE_NAME               = Attribute name:
-_UI_USAGE                        = Usage:
-_UI_FORM                         = Form qualification:
-_UI_VALUE                        = Value
-
-_UI_LABEL_OTHER_ATTRIBUTES       = Other Attributes
-
-_UI_TOOLTIP_ATTRIBUTE_USE        = Indicates if the attribute is required, optional, or prohibited
-_UI_TOOLTIP_ATTRIBUTE_FORM       = Indicates if the attribute is qualifed or not in the instance document
-_UI_TOOLTIP_ATTRIBUTE_VALUE      = Provides default or fixed value for the attribute. Default value only valid if Usage value is set to optional.
-
-_UI_PROCESS_CONTENTS             = Process contents:
-
-!
-! Annotation - Doc & AppInfo Window
-!
-_UI_COMMENT                      = Comment
-_UI_TOOLTIP_COMMENT              = Information useful to the user or application
-_UI_SOURCE                       = Source:
-_UI_TOOLTIP_SOURCE               = An optional URI reference to supplement the local information
-_UI_LANGUAGE                     = Language:
-_UI_TOOLTIP_LANGUAGE_ANNOTATION  = Indicate the language in which the annotation is expressed
-
-!
-! Group
-! 
-_UI_CONTENT_MODEL               = Content model
-_UI_SEQUENCE                    = Sequence
-_UI_CHOICE                      = Choice
-_UI_ALL                         = All
-
-
-!
-! Simple Type Related Facets  - appear as entries in a table - restriction on simple type
-!
-_UI_GROUP_FACETS                = Facets
-_UI_LENGTH                      = Length
-_UI_MINIMUM_LENGTH              = Minimum Length
-_UI_MAXIMUM_LENGTH              = Maximum Length
-_UI_MINIMUM_INCLUSIVE           = Minimum Inclusive
-_UI_MAXIMUM_INCLUSIVE           = Maximum Inclusive
-_UI_MINIMUM_EXCLUSIVE           = Minimum Exclusive
-_UI_MAXIMUM_EXCLUSIVE           = Maximum Exclusive
-_UI_TOTAL_DIGITS                = Total Digits
-_UI_FRACTION_DIGITS             = Fraction Digits
-_UI_WHITE_SPACE                 = White Space
-_UI_FACET_NAME                  = Name
-_UI_FACET_VALUE                 = Value
-_UI_FACET_FIXED                 = Fixed
-
-_UI_TOOLTIP_LENGTH              = The number of units of length. Must be a non-negative integer.
-_UI_TOOLTIP_MIN_LEN             = The minimum number of units of length. Must be a non-negative integer.
-_UI_TOOLTIP_MAX_LEN             = The maximum number of units of length. Must be a non-negative integer.
-_UI_TOOLTIP_MAX_INCLUSIVE       = The upper bound of the value space. The value is itself included.
-_UI_TOOLTIP_MAX_EXCLUSIVE       = The upper bound of the value space. The value is itself excluded.
-_UI_TOOLTIP_MIN_INCLUSIVE       = The lower bound of the value space. The value is itself included.
-_UI_TOOLTIP_MIN_EXCLUSIVE       = The lower bound of the value space. The value is itself excluded.
-_UI_TOOLTIP_TOTAL_DIGITS        = The maximum number of decimal digits. Must be a positive integer.
-_UI_TOOLTIP_FRACTION_DIGITS     = The maximum number of decimal digits in the fractional part. Must be a non-negative integer.
-_UI_TOOLTIP_WHITE_SPACE         = Indicates if white space should be preserved, replaced or collapsed. 
-
-_UI_TOOLTIP_PATTERN             = Constrains the value to match a specific pattern. The pattern must be a regular expression. 
-_UI_TOOLTIP_ENUM                = Constrains the value to a specified set of values. 
-
-!
-! Simple/Complex Type Selection 
-!
-_UI_LABEL_TYPE_INFORMATION          = Type information
-_UI_LABEL_BASE_TYPE                 = Base type
-_UI_LABEL_BASE_TYPE_WITH_COLON      = Base type:
-_UI_LABEL_SET_BASE_TYPE             = Set Base Type
-_UI_ACTION_SET_BASE_TYPE            = Set Base Type...
-_UI_RADIO_NONE                      = None
-_UI_RADIO_BUILT_IN_SIMPLE_TYPE      = Built-in simple type
-_UI_RADIO_USER_DEFINED_SIMPLE_TYPE  = User-defined simple type
-_UI_RADIO_USER_DEFINED_COMPLEX_TYPE = User-defined complex type
-_UI_NO_TYPE                         = **none**
-
-!
-! Combo-box value 
-! NOTE TO TRANSLATOR: Do not translate following line
-_UI_DEFAULT_ANONYMOUS               = **anonymous**
-
-!
-! Unique, Key and KeyRef window
-!
-_UI_REFERENCE_KEY                   = Reference key
-_UI_SELECTOR                        = Selector
-_UI_FIELDS                          = Fields
-
-_UI_TOOLTIP_SELECTOR_TEXT           = Specifies an XPath expression relative to instances of the current element
-_UI_TOOLTIP_FIELD_TEXT              = Specifies an XPath expression relative to each element selected by the selector
-
-_UI_ADD_BUTTON                      = Add>>
-_UI_REMOVE_BUTTON                   = <<Remove
-
-!
-! Include & Imports
-!
-_UI_LABEL_PREFIX                = Prefix:
-_UI_LABEL_NAMESPACE             = Namespace:
-
-_UI_SCHEMA_INCLUDE_DESC         = Select a schema file so that the definitions in the schema file will be available in the current schema. The target namespace of the included schema must be the same as the target namespace of the current schema.
-_UI_LABEL_SCHEMA_IMPORT_DESC    = Select a schema file from a different namespace so that its definitions can be referenced by the current schema. You must associate a prefix with the new namespace for use in the current schema.
-
-_UI_LABEL_SCHEMA_LOCATION        = Schema location:
-_UI_BUTTON_SELECT                = Select
-_UI_FILEDIALOG_SELECT_XML_SCHEMA = Select XML schema file
-_UI_FILEDIALOG_SELECT_XML_DESC   = Select an XML schema file from the Workbench projects
-_UI_FILEDIALOG_SELECT_XML_URL    = Select an XML schema file from HTTP
-
-_UI_LABEL_LOADING_XML_SCHEMA     = Loading XML Schema
-_UI_LABEL_FINISH_LOADING         = Finish Loading
-_UI_LABEL_NO_LOCATION_SPECIFIED  = No Location Specified
-
-!
-! XSD Editor
-!
-_UI_TAB_SOURCE                  = Source
-_UI_TAB_DESIGN                  = Design
-!  Note to translators: Graph is the graphic view of the XML schema
-_UI_TAB_GRAPH                   = Graph
-_UI_MENU_UNDO                   = &Undo @Ctrl+Z
-_UI_MENU_REDO                   = &Redo @Ctrl+Y
-
-!
-! Task List Related Message
-!
-_UI_REF_FILE_ERROR_DESCRIPTION      = The errors below were detected when validating the file '{0}' via the file '{1}'.  In most cases these errors can be detected by validating '{2}' directly.  However it is possible that errors will only occur when {2} is validated in the context of {3}.
-_UI_REF_FILE_ERROR_PUSH_HELP        = Push the help button below to read more.
-_UI_REF_FILE_ERROR_MESSAGE          = Referenced file contains errors ({0}).  For more information, right click on the message and select "Show Details..."
-_UI_REF_FILE_SHOW_DETAILS           = Show Details...
-
-
-!
-! XSDEditor Menu bar contributor
-!
-_UI_MENU_GENERATE_JAVA              = Generate &Java Beans...
-_UI_MENU_GENERATE_DTD               = Generate &DTD...
-_UI_MENU_GENERATE_SAMPLE_XML        = Generate XM&L...
-_UI_MENU_XSD_EDITOR                 = &XSD
-_UI_MENU_VALIDATE_XML               = &Validate XML Schema
-_UI_MENU_VALIDATE_XML_TOOLTIP       = Validate the current state of the XML Schema
-_UI_MENU_GENERATE_JAVA_TOOLTIP      = Generate Java beans for the XML Schema
-_UI_MENU_GENERATE_DTD_TOOLTIP       = Generate a DTD from the XML Schema
-_UI_MENU_GENERATE_SAMPLE_XML_TOOLTIP = Generate an XML from the XML Schema
-_UI_MENU_RELOAD_DEPENDENCIES_TOOLTIP = Reload Dependencies
-_UI_MENU_RELOAD_DEPENDENCIES = &Reload Dependencies
-
-!
-! Preference Page
-!
-_UI_TEXT_INDENT_LABEL                 = Indentation
-_UI_TEXT_INDENT_SPACES_LABEL          = &Number of spaces: 
-_UI_TEXT_XSD_NAMESPACE_PREFIX         = XML schema language
-_UI_TEXT_XSD_DEFAULT_PREFIX           = XML schema language constructs &prefix:
-_UI_QUALIFY_XSD                       = &Qualify XML schema language constructs
-_UI_SEPARATE_DESIGN_AND_SOURCE_VIEW   = Separate Source, Design and Graph view
-_UI_COMBINED_DESIGN_AND_SOURCE_VIEW   = Combined Source or Graph view with Design view 
-_UI_LABEL_EDITOR_LAYOUT               = Editor Layout
-_UI_PREF_DESIGN_VIEW_LAYOUT           = Design View Location
-_UI_PREF_DESIGN_BOTTOM                = Below
-_UI_PREF_DESIGN_RIGHT                 = Right
-_UI_TEXT_XSD_DEFAULT_TARGET_NAMESPACE = Default Target Namespace:
-
-!
-! Content Outline View action
-! NOTE TO TRANSLATOR: Do not translate the word(s) following "Add" on each line in
-!   this section i.e. Annotation, Documentation, AppInfo  These words are XML Schema keywords.
-_UI_ACTION_DELETE                  = D&elete
-_UI_ACTION_ADD_ANNOTATION          = Add &Annotation
-_UI_ACTION_ADD_DOC                 = Add &Documentation
-_UI_ACTION_ADD_APP_INFO            = Add A&ppInfo
-_UI_ACTION_ADD_GLOBAL_ELEMENT      = Add Glob&al Element
-_UI_ACTION_ADD_KEY                 = Add &Key
-_UI_ACTION_ADD_KEY_REF             = Add Key Re&f
-_UI_ACTION_ADD_UNIQUE              = Add Uni&que
-_UI_ACTION_ADD_GROUP               = Add G&roup
-_UI_ADD_GROUP_REF                  = Add Gr&oup Ref
-_UI_ACTION_ADD_CONTENT_MODEL       = Add Content &Model
-_UI_ACTION_ADD_ELEMENT             = Add &Element
-_UI_ACTION_ADD_ELEMENT_REF         = Add E&lement Ref
-_UI_ACTION_ADD_SIMPLE_TYPE         = Add &Simple Type
-_UI_ACTION_ADD_PATTERN             = Add &Pattern
-_UI_ACTION_ADD_ENUM                = Add En&umeration
-_UI_ACTION_ADD_ENUMS               = Add Enu&merations...
-_UI_ACTION_ADD_COMPLEX_TYPE        = Add Complex &Type
-_UI_ACTION_ADD_COMPLEX_CONTENT     = Add Comple&x Content
-_UI_ACTION_ADD_SIMPLE_CONTENT      = Add Simple &Content
-_UI_ACTION_ADD_ATTRIBUTE           = Add Attri&bute
-_UI_ACTION_ADD_ATTRIBUTE_GROUP     = Add Attr&ibute Group
-_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF = Add A&ttribute Group Ref
-_UI_ACTION_ADD_INCLUDE             = Add In&clude
-_UI_ACTION_ADD_IMPORT              = Add &Import
-_UI_ACTION_ADD_REDEFINE            = Add Re&define
-_UI_ACTION_ADD_NOTATION            = Add &Notation
-_UI_ACTION_ADD_ANY_ELEMENT         = Add An&y
-_UI_ACTION_ADD_ANY_ATTRIBUTE       = Add &Any Attribute
-_UI_ACTION_ADD_GLOBAL_ATTRIBUTE    = Add &Global Attribute
-_UI_ACTION_ADD_ATTRIBUTE_REFERENCE = Add Attrib&ute Ref
-_UI_ACTION_ADD_RESTRICTION         = Add Re&striction
-_UI_ACTION_ADD_UNION               = Add U&nion
-_UI_ACTION_ADD_LIST                = Add &List
-_UI_ACTION_DELETE_GROUP_SCOPE      = D&elete
-_UI_ACTION_ADD_CHOICE              = Add &Choice
-_UI_ACTION_ADD_SEQUENCE            = Add Se&quence
-_UI_ACTION_ADD_ALL                 = Add &All
-_UI_ACTION_ADD_EXTENSION           = Add E&xtension
-_UI_ACTION_ADD_SELECTOR            = Add &Selector
-_UI_ACTION_ADD_FIELD               = Add &Field
-! NOTE TO TRANSLATOR: Translate Add and Node
-_UI_ACTION_ADD_SCHEMA_NODE         = Add &Schema Node
-! NOTE TO TRANSLATOR: TRANSLATE Add and Local
-_UI_ACTION_ADD_LOCAL_SIMPLE_TYPE   = Add Local &Simple Type
-_UI_ACTION_ADD_LOCAL_COMPLEX_TYPE  = Add Local &Complex Type
-_UI_ACTION_BACK_TO_SCHEMA_VIEW     = Back To Schema
-_UI_HOVER_BACK_TO_SCHEMA_VIEW     = Back to schema
-
-_UI_ACTION_MAKE_ANONYMOUS_TYPE_GLOBAL = Make Anonymous Type Global
-_UI_ACTION_OPEN_SCHEMA                = Open Schema
-
-_UI_ACTION_INSERT_BEFORE           = Insert Before
-_UI_ACTION_INSERT_AFTER            = Insert After
-
-_UI_OUTLINE_SORT                   = Sort alphabetically
-_UI_OUTLINE_DO_NOT_SORT            = Do not sort alphabetically
-
-_UI_OUTLINE_SHOW_COMPLEX_TYPE      = Show Complex Types Only
-_UI_OUTLINE_SHOW_SIMPLE_TYPE       = Show Simple Types Only
-_UI_OUTLINE_SHOW_ATTRIBUTE_GROUP   = Show Attribute Groups Only
-_UI_OUTLINE_SHOW_GROUP             = Show Groups Only
-_UI_OUTLINE_SHOW_GLOBAL_ELEMENT    = Show Global Elements Only
-_UI_OUTLINE_SHOW_REFERENCES        = Show Reference Content
-_UI_OUTLINE_SHOW_INHERITED         = Show Inherited Content
-
-!
-! New XML Schema Wizard
-!
-_UI_WIZARD_CREATE_XSD_MODEL_TITLE    = Create XML Schema
-
-! NOTE TO TRANSLATOR: Do not translate following line
-_UI_CREATEXSD                        = createXSD
-_UI_NEW_XML_SCHEMA_TITLE             = New XML Schema
-_UI_CREATE_A_NEW_XML_SCHEMA_DESC     = Create a new XML schema.
-
-! NOTE TO TRANSLATOR: Do not translate following line
-_UI_NEW_XML_SCHEMA_FILENAME          = NewXMLSchema.xsd
-
-!
-! XSD From RDB Schema Wizard
-!
-_UI_WIZARD_CREATE_XSD_FROM_RDB_TITLE = Create XSD from RDB Table
-
-
-!
-! Regular Expression Wizard
-!
-_UI_REGEX_WIZARD_CREATE_BUTTON = Create Regular Expression...
-_UI_TOOLTIP_REGEX_WIZARD_BUTTON = Launch the Regular Expression Wizard
-_UI_REGEX_WIZARD_TITLE = Regular Expression Wizard
-_UI_REGEX_WIZARD_COMPOSITION_PAGE_TITLE = Compose Regular Expression
-_UI_REGEX_WIZARD_COMPOSITION_PAGE_DESCRIPTION = To add a token, specify its contents and occurrence, then click Add.
-_UI_REGEX_WIZARD_INVALID_REGEX_ERROR_PREFIX = The current regular expression is not valid.  Reason:  
-_UI_REGEX_WIZARD_INVALID_TOKEN_ERROR_PREFIX = The current token is not valid.  Reason:  
-_UI_REGEX_WIZARD_INVALID_REGEX_ERROR = The current regular expression is not valid.
-_UI_REGEX_WIZARD_INVALID_TOKEN_ERROR = The current token is not valid.
-_UI_REGEX_WIZARD_INVALID_MIN_ERROR_SUFFIX = Invalid minimum range value.  The value must be a positive integer less than the maximum value.
-_UI_REGEX_WIZARD_MISSING_MIN_ERROR_SUFFIX = Invalid minimum range value.  A minimum range must be specified if a maximum range is specified.
-_UI_REGEX_WIZARD_INVALID_MAX_ERROR_SUFFIX = Invalid maximum range value.  The value must be a positive integer greater than the minimum value.
-_UI_REGEX_WIZARD_INVALID_REPEAT_ERROR_SUFFIX = Invalid repeat value.  The value must be a positive integer.
-_UI_REGEX_WIZARD_INVALID_SELECTION_ERROR = Nothing is currently selected.  Either make a selection or choose a different token. 
-_UI_REGEX_WIZARD_TOKEN_LABEL = Token contents:
-_UI_REGEX_WIZARD_AUTO_ESCAPE_CHECKBOX_LABEL = Auto escape
-_UI_REGEX_WIZARD_OCCURENCE_LABEL = Occurrence
-! Instructions for translators: The following label is used in a phrase to identify a range of values.
-! For example:  5 to 10.
-! The values are text fields that are initially blank so the user has to enter in values
-! For example:   _______ to ________
-_UI_REGEX_WIZARD_TO_LABEL = to
-_UI_REGEX_WIZARD_ADD_BUTTON_LABEL = Add 
-_UI_REGEX_WIZARD_CURRENT_REGEX_LABEL = Current regular expression:
-_UI_TOOLTIP_REGEX_WIZARD_TERMS = Content of new token
-_UI_TOOLTIP_REGEX_WIZARD_AUTO_ESCAPE_CHECKBOX = Insert escape characters to match metacharacter literals (e.g. converts \"*\" to \"\\*\")
-_UI_TOOLTIP_REGEX_WIZARD_ADD_BUTTON = Add this token to the regular expression
-_UI_TOOLTIP_REGEX_WIZARD_CURRENT_REGEX = The current regular expression
-_UI_TOOLTIP_REGEX_WIZARD_REPEAT = The number of times that the token must occur.
-_UI_TOOLTIP_REGEX_WIZARD_MIN = The minimum number of times that the token can occur.
-_UI_TOOLTIP_REGEX_WIZARD_MAX = The maximum number of times that the token can occur.
-_UI_TOOLTIP_REGEX_WIZARD_CARET_LABEL = The location where the new token will be inserted.
-_UI_REGEX_WIZARD_TESTING_PAGE_TITLE = Test Regular Expression
-_UI_REGEX_WIZARD_TESTING_PAGE_DESCRIPTION = To test the regular expression, enter sample text that you wish to match.  The success of the match will be indicated above.
-_UI_REGEX_WIZARD_REGEX_LABEL = Regular expression: 
-_UI_REGEX_WIZARD_SAMPLE_TEXT =  Sample text: 
-_UI_REGEX_WIZARD_MATCHES = The text matches the regular expression.
-_UI_REGEX_WIZARD_DOES_NOT_MATCH = The text does not match the regular expression.
-_UI_REGEX_WIZARD_TERM_ANY_CHAR = Any character
-_UI_REGEX_WIZARD_TERM_ALPHANUMERIC_CHAR = Alphanumeric character
-_UI_REGEX_WIZARD_TERM_WHITESPACE = Whitespace
-_UI_REGEX_WIZARD_TERM_DIGIT = Digit
-_UI_REGEX_WIZARD_TERM_UPPER = Upper case
-_UI_REGEX_WIZARD_TERM_LOWER = Lower case
-_UI_REGEX_WIZARD_TERM_SELECTION = Current selection
-_UI_REGEX_WIZARD_QUANTIFIER_SINGLE = Just once
-_UI_REGEX_WIZARD_QUANTIFIER_STAR = Zero or more
-_UI_REGEX_WIZARD_QUANTIFIER_PLUS = One or more
-_UI_REGEX_WIZARD_QUANTIFIER_OPTIONAL = Optional
-_UI_REGEX_WIZARD_QUANTIFIER_REPEAT = Repeat
-_UI_REGEX_WIZARD_QUANTIFIER_RANGE = Range
-
-!
-! Select Include File Wizard
-_UI_LABEL_INCLUDE_URL_FILE    = Select schema from:
-_UI_RADIO_URL                 = HTTP
-_UI_RADIO_FILE                = Workbench projects
-_UI_WIZARD_INCLUDE_FILE_TITLE = Include Another Schema
-_UI_WIZARD_INCLUDE_FILE_DESC  = Select another schema from workbench projects or from HTTP.
-_UI_LABEL_URL                 = URL:
-_UI_URL_START_WITH            = The URL must start with http://
-_UI_SPECIFY_URL               = Please specify a URL
-
-!
-! Enumerations Dialog
-_UI_ENUMERATIONS_DIALOG_TITLE = Add Enumerations
-_UI_LABEL_DELIMITER_CHAR      = &Delimiter characters:
-_UI_LABEL_PRESERVE_WHITESPACE = &Preserve leading and trailing whitespace
-
-_UI_ACTION_DELETE_ENUMERATION = Delete Enumeration
-
-!
-! Validate Schema 
-!
-_UI_DIALOG_XML_SCHEMA_INVALID_TITLE  = Validation Failed
-_UI_DIALOG_XML_SCHEMA_VALID_TITLE    = Validation Succeeded
-_UI_DIALOG_XML_SCHEMA_VALID_TEXT     = The XML schema file is valid.
-_UI_DIALOG_XML_SCHEMA_LIMITE_EXCEEDED  = The XML schema file is not valid.  The message limit for the Tasks view has been exceeded.  Please increase the limit and try again.
-
-!
-! Combo-box choices 
-!
-! NOTE TO TRANSLATOR: Do not translate following 10 lines
-_UI_COMBO_QUALIFIED             = qualified
-_UI_COMBO_UNQUALIFIED           = unqualified
-_UI_COMBO_EXTENSION             = extension
-_UI_COMBO_RESTRICTION           = restriction
-_UI_COMBO_ALL                   = all
-_UI_COMBO_TRUE                  = true
-_UI_COMBO_FALSE                 = false
-_UI_COMBO_LAX                   = lax
-_UI_COMBO_SKIP                  = skip
-_UI_COMBO_STRICT                = strict
-
-! Generate DTD - pass as title and description for wizard page
-_UI_GENERATE_DTD_TITLE          = Generate DTD
-_UI_GENERATE_DTD_DESCRIPTION    = Generate a DTD from the selected XML schema file.
-
-! Generate DDL - pass as title and description for wizard page
-_UI_GENERATE_DDL_TITLE          = Generate DDL
-_UI_GENERATE_DDL_DESCRIPTION    = Generate DDL from the selected XML schema file.
-
-_UI_XML_SCHEMA_VALIDATOR            = XML Schema Validator
-
-! Generation from the Schema model - pre-condition check
-_UI_DIALOG_TITLE_GRAMMAR_ERROR      = Invalid Grammar
-_UI_DIALOG_INFO_SCHEMA_INVALID      = The schema file contains errors. Open it in the XML Schema editor and validate it for details.
-_UI_DIALOG_TITLE_NO_GLOBAL_ELEMENTS = No Global Elements
-_UI_DIALOG_INFO_NO_GLOBAL_ELEMENTS  = The selected schema has no global elements. Global elements are required to generate anything from an XML schema.
-
-! Section title for other attributes
-_UI_SECTION_ADVANCED_ATTRIBUTES   = Advanced
-
-! For undo action menus
-! Note to Translators: For the following "Change" phrases,
-! maxOccurs, minOccurs, lang, xpath are keywords so please
-! do no translate them.  These are for the undo action menus.
-! For example, if the user makes a change in the name of an
-! element, then the undo action would be Undo Element Name Change
-_UI_NAMESPACE_CHANGE           = Namespace Change
-_UI_PROCESSCONTENTS_CHANGE     = Process Contents Change
-_UI_MAXOCCURS_CHANGE           = maxOccurs Change
-_UI_MINOCCURS_CHANGE           = minOccurs Change
-_UI_SOURCE_ATTRIBUTE_CHANGE    = Source Change
-_UI_COMMENT_CHANGE             = Comment Change
-_UI_PREFIX_CHANGE              = Prefix Change
-_UI_ATTRIBUTEGROUP_REF_CHANGE  = Attribute Group Reference Change
-_UI_ATTRIBUTEGROUP_NAME_CHANGE = Attribute Group Name Change
-_UI_ATTRIBUTE_FIXED_CHANGE     = Attribute Fixed Change
-_UI_ATTRIBUTE_DEFAULT_CHANGE   = Attribute Default Change
-_UI_ATTRIBUTE_NAME_CHANGE      = Attribute Name Change
-_UI_ATTRIBUTE_VALUE_CHANGE     = Attribute Value Change
-_UI_ATTRIBUTE_USE_CHANGE       = Attribute Use Change
-_UI_ATTRIBUTE_FORM_CHANGE      = Attribute Form Change
-_UI_COMPLEXTYPE_NAME_CHANGE    = Complex Type Name Change
-_UI_COMPLEXTYPE_ABSTRACT_CHANGE = Complex Type Abstract Change
-_UI_COMPLEXTYPE_MIXED_CHANGE   = Complex Type Mixed Change
-_UI_COMPLEXTYPE_BLOCK_CHANGE   = Complex Type Block Change
-_UI_COMPLEXTYPE_FINAL_CHANGE   = Complex Type Final Change
-_UI_DOCUMENTATION_SOURCE_CHANGE = Documentation Source Change
-_UI_DOCUMENTATION_LANG_CHANGE   = Documentation lang Change
-_UI_DOCUMENTATION_COMMENT_CHANGE = Documentation Comment Change
-_UI_ELEMENT_NAME_CHANGE          = Element Name Change
-_UI_ELEMENT_VALUE_CHANGE         = Element Value Change
-_UI_ELEMENT_TYPE_CHANGE          = Element Type Change
-_UI_ENUM_VALUE_CHANGE            = Enum Value Change
-_UI_FIELD_XPATH_CHANGE           = Field xpath Change
-_UI_GROUP_REF_CHANGE             = Group Reference Change
-_UI_GROUP_SCOPE_CHANGE           = Content Model Change
-_UI_GROUP_NAME_CHANGE            = Group Name Change
-_UI_IMPORT_CHANGE                = Import Change
-_UI_KEY_NAME_CHANGE              = Key Name Change
-_UI_KEYREF_NAME_CHANGE           = Key Reference Name Change
-! Note to translators
-! For the following item, Refer is the keyref attribute to refer to some other key
-_UI_KEYREF_REFER_CHANGE          = Key Reference Refer Change
-_UI_NOTATION_NAME_CHANGE         = Notation Name Change
-_UI_NOTATION_PUBLIC_CHANGE       = Notation Public Change
-_UI_NOTATION_SYSTEM_CHANGE       = Notation System Change
-_UI_PATTERN_VALUE_CHANGE         = Pattern Value Change
-_UI_SCHEMA_VERSION_CHANGE        = Schema Version Change
-_UI_SCHEMA_LANG_CHANGE           = Schema lang Change
-_UI_SELECTOR_XPATH_CHANGE        = Selector xpath Change
-_UI_TYPE_CHANGE                  = Type Change
-_UI_DERIVEDBY_CHANGE             = Derivation Change
-_UI_FACET_CHANGE                 = Facet Change
-_UI_SIMPLETYPE_NAME_CHANGE       = SimpleType Name Change
-_UI_UNIQUE_NAME_CHANGE           = Unique Name Change
-_UI_SCHEMA_ATTRIBUTEFORMDEFAULT_CHANGE = Attribute Form Default Change
-_UI_SCHEMA_ELEMENTFORMDEFAULT_CHANGE = Element Form Default Change
-_UI_SCHEMA_BLOCKDEFAULT_CHANGE   = Block Default Change
-_UI_SCHEMA_FINALDEFAULT_CHANGE   = Final Default Change
-_UI_ELEMENT_SUBSTITUTIONGROUP_CHANGE = Substitution Group Change
-_UI_ELEMENT_FORM_CHANGE          = Form Change
-_UI_ELEMENT_BLOCK_CHANGE         = Block Change
-_UI_ELEMENT_FINAL_CHANGE         = Final Change
-_UI_ELEMENT_ABSTRACT_CHANGE      = Abstract Change
-_UI_ELEMENT_NILLABLE_CHANGE      = Nillable Change
-_UI_TARGETNAMESPACE_CHANGE       = Target Namespace Change
-
-! Window Headings for Flat View
-_UI_PAGE_HEADING_ANYATTRIBUTE = Any Attribute
-_UI_PAGE_HEADING_ANYELEMENT   = Any Element
-_UI_PAGE_HEADING_APPINFO            = AppInfo
-_UI_PAGE_HEADING_ATTRIBUTEGROUP_REF = Attribute Group Reference
-_UI_PAGE_HEADING_ATTRIBUTEGROUP     = Attribute Group
-_UI_PAGE_HEADING_ATTRIBUTE_REF      = Attribute Reference
-_UI_PAGE_HEADING_ATTRIBUTE          = Attribute
-_UI_PAGE_HEADING_COMPLEXTYPE        = Complex Type
-_UI_PAGE_HEADING_DOCUMENTATION      = Documentation
-_UI_PAGE_HEADING_ELEMENT     = Element
-_UI_PAGE_HEADING_ELEMENT_REF = Element Reference
-_UI_PAGE_HEADING_ENUM        = Enumeration
-_UI_PAGE_HEADING_FIELD       = Field
-_UI_PAGE_HEADING_GROUP_REF   = Group Reference
-_UI_PAGE_HEADING_CONTENTMODEL  = Content Model
-_UI_PAGE_HEADING_GROUP         = Group
-_UI_PAGE_HEADING_IMPORT        = Import
-_UI_PAGE_HEADING_INCLUDE       = Include
-_UI_PAGE_HEADING_KEYREF        = Key Reference
-_UI_PAGE_HEADING_KEY           = Key
-_UI_PAGE_HEADING_NOTATION      = Notation
-_UI_PAGE_HEADING_PATTERN       = Pattern
-_UI_PAGE_HEADING_REDEFINE      = Redefine
-_UI_PAGE_HEADING_SCHEMA        = Schema
-_UI_PAGE_HEADING_SELECTOR      = Selector
-_UI_PAGE_HEADING_LIST          = List
-_UI_PAGE_HEADING_UNION         = Union
-_UI_PAGE_HEADING_SIMPLECONTENT = Simple Content
-_UI_PAGE_HEADING_COMPLEXCONTENT = Complex Content
-_UI_PAGE_HEADING_RESTRICTION   = Restriction
-_UI_PAGE_HEADING_EXTENSION     = Extension
-_UI_PAGE_HEADING_SIMPLETYPE    = Simple Type
-_UI_PAGE_HEADING_UNIQUE        = Unique
-_UI_PAGE_HEADING_REFERENCE     = reference
-
-!
-! Graph page
-!
-_UI_GRAPH_SIMPLE_TYPES         = Simple Types
-_UI_GRAPH_COMPLEX_TYPES        = Complex Types
-_UI_GRAPH_GROUPS               = Groups
-_UI_GRAPH_GLOBAL_ATTRIBUTES    = Global Attributes
-_UI_GRAPH_GLOBAL_ELEMENTS      = Global Elements
-_UI_GRAPH_XSDSCHEMA            = Schema
-_UI_GRAPH_XSDSCHEMA_NO_NAMESPACE = (no target namespace specified)
-_UI_GRAPH_XSDCOMPLEXTYPEDEFINITION = XSD Complex Type Definition:
-_UI_GRAPH_XSDMODELGROUP        = XSD Model Group
-_UI_GRAPH_XSDPARTICLE          = XSD Particle
-_UI_GRAPH_VIEW_NOT_AVAILABLE   = View is not available for selected object.
-_UI_GRAPH_UNKNOWN_OBJECT       = Unknown object
-
-! Additional Categories
-_UI_GRAPH_TYPES                = Types
-_UI_GRAPH_ELEMENTS             = Elements
-_UI_GRAPH_ATTRIBUTES           = Attributes
-_UI_GRAPH_ATTRIBUTE_GROUPS     = Attribute Groups
-_UI_GRAPH_NOTATIONS            = Notations
-_UI_GRAPH_IDENTITY_CONSTRAINTS = Identity Constraints
-_UI_GRAPH_ANNOTATIONS          = Annotations
-_UI_GRAPH_DIRECTIVES           = Directives
-
-! For Union MemberTypes Dialog
-_UI_LABEL_SELECT_MEMBERTYPES   = Select from the available types and add to the memberTypes list
-_UI_LABEL_MEMBERTYPES_CHANGE   = Member Types Change
-_UI_LABEL_MEMBERTYPES_VALUE    = Member Types Value:
-_UI_LABEL_MEMBERTYPES          = Member types:
-
-_UI_LABEL_VARIETY_CHANGE       = Variety Change
-
-_UI_LABEL_FIXEDORDEFAULT_VALUE = Fixed/Default Value
-
-_UI_LABEL_ITEM_TYPE_CHANGE     = Item Type Change
-
-_UI_LABEL_AVAILABLE_TYPES      = Available Types
-
-_UI_LABEL_INCLUDE_CHANGE       = Include Change
-
-_UI_LABEL_ITEM_TYPE            = Item type:
-_UI_LABEL_BASE_TYPE            = Base Type
-_UI_LABEL_TYPE                 = Type
-_UI_LABEL_MODEL_GROUP          = Model Group
-
-_UI_LABEL_ABSENT               = absent
-
-_UI_WARNING_RESET_ATTRGRP_REF  = Reset attribute group reference <{0}>
-_UI_WARNING_REMOVE_ATTRGRP_REF = Remove attribute group reference <{0}>
-_UI_WARNING_RESET_ATTR_REF     = Reset attribute reference <{0}>
-_UI_WARNING_REMOVE_ATTR_REF    = Remove attribute reference <{0}>
-
-!======================================================================================
-!
-! Here is the list of Error string that have message IDs - make sure they are unique
-!  Range for XSDEditor messageIDs: IWAX1001E - IWAX1200E
-!
-!======================================================================================
-! These three errors appear in the select include wizard
-! The name of the file will be substituted in
-_UI_DIFFERENT_NAME_SPACE  = {0} is in a different namespace 
-_UI_SAME_NAME_SPACE       = {0} is in the same namespace
-_UI_INCORRECT_XML_SCHEMA  = {0} is an invalid XML schema file
-
-_ERROR_SCHEMA_NOT_EXIST         = IWAX1003E does not exist.
-_ERROR_LABEL_INVALID_PREFIX     = IWAX1004E Invalid prefix. A prefix must not be empty or contain any space.
-
-! The name of the file will be substituted in
-_ERROR_SCHEMA_NAME_THE_SAME  = IWAX1005E {0} is the current schema. A schema cannot include itself. Reset to the last valid schema.
-
-_ERROR_XSD_GENERATION                = IWAX1006E Error generating XML schema
-_ERROR_NO_CONTAINER                  = IWAX1007E No folder selected
-_ERROR_NO_FILE_NAME                  = IWAX1008E No file name provided
-_ERROR_FILENAME_MUST_END_XSD         = IWAX1011E The file name must end in .xsd
-
-
-!
-! For schema that has too many errors, an extended message. 
-!
-_ERROR_DIALOG_XML_SCHEMA_INVALID_TEXT  = IWAX100d9E The XML schema file is not valid.  
-_ERROR_MORE_ERRORS                    = There are more errors in the schema than are displayed in the Tasks view.  Correct the first {0} errors and re-validate the schema file.
-
-! DDL Generation Failed Dialog
-_UI_DIALOG_DDL_GEN_FAILED_TITLE     = DDL Generation Failed
-_ERROR_DIALOG_DDL_NOT_GENEREATED    = IWAX1010E DDL has not been generated
-_UI_DIALOG_DDL_GEN_FAILED_REASON    = The selected schema has no global elements
-_UI_DIALOG_DDL_GEN_FAILED_REASON2   = None of the global elements in the schema have a complex type or they reference complex types that cannot be found.
-
-_EXC_OPEN_XSD = IWAX1011E Cannot open XML Schema editor
-
-_ERROR_LABEL_PREFIX_EXISTS     = IWAX1012E Prefix already exists
-
-_ERROR_REMOVE_LOCAL_SIMPLETYPE  = IWAX1013E Remove local simple type from extension
-
-_WARN_INVALID_TARGET_NAMESPACE = IWAX1014E The target namespace is not well-formed
-
-_ERROR_TARGET_NAMESPACE_AND_PREFIX = IWAX1015E A target namespace must be associated with a prefix
-
-
-_UI_CONTAINMENT = Containment
-_UI_INHERITANCE = Inheritance
-_UI_SUBSTITUTION_GROUPS = Substitution Groups
-_UI_ANONYMOUS = **anonymous**
-_UI_VALUE = Value
-_UI_ANY_ELEMENT = Any Element
-_UI_SORT = Sort
-
-_UI_ACTION_EDIT_NAMESPACES = Edit Namespaces...
-
-
-_UI_CreateChild_text = {0}
-_UI_CreateChild_text2 = {1} {0}
-_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
-_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
-_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
-
-_UI_PropertyDescriptor_description = The {0} of the {1}
-
-_UI_XSDAnnotation_type = Annotation
-_UI_XSDAttributeDeclaration_type = Attribute Declaration
-_UI_XSDAttributeGroupContent_type = Attribute Group Content
-_UI_XSDAttributeGroupDefinition_type = Attribute Group Definition
-_UI_XSDAttributeUse_type = Attribute Use
-_UI_XSDBoundedFacet_type = Bounded Facet
-_UI_XSDCardinalityFacet_type = Cardinality Facet
-_UI_XSDComplexTypeContent_type = Complex Type Content
-_UI_XSDComplexTypeDefinition_type = Complex Type Definition
-_UI_XSDComponent_type = Component
-_UI_XSDConcreteComponent_type = Concrete Component
-_UI_XSDConstrainingFacet_type = Constraining Facet
-_UI_XSDDiagnostic_type = Diagnostic
-_UI_XSDElementDeclaration_type = Element Declaration
-_UI_XSDEnumerationFacet_type = Enumeration Facet
-_UI_XSDFacet_type = Facet
-_UI_XSDFeature_type = Feature
-_UI_XSDFixedFacet_type = Fixed Facet
-_UI_XSDFractionDigitsFacet_type = Fraction Digits Facet
-_UI_XSDFundamentalFacet_type = Fundamental Facet
-_UI_XSDIdentityConstraintDefinition_type = Identity Constraint Definition
-_UI_XSDImport_type = Import
-_UI_XSDInclude_type = Include
-_UI_XSDLengthFacet_type = Length Facet
-_UI_XSDMaxExclusiveFacet_type = Max Exclusive Facet
-_UI_XSDMaxFacet_type = Max Facet
-_UI_XSDMaxInclusiveFacet_type = Max Inclusive Facet
-_UI_XSDMaxLengthFacet_type = Max Length Facet
-_UI_XSDMinExclusiveFacet_type = Min Exclusive Facet
-_UI_XSDMinFacet_type = Min Facet
-_UI_XSDMinInclusiveFacet_type = Min Inclusive Facet
-_UI_XSDMinLengthFacet_type = Min Length Facet
-_UI_XSDModelGroup_type = Model Group
-_UI_XSDModelGroupDefinition_type = Model Group Definition
-_UI_XSDNamedComponent_type = Named Component
-_UI_XSDNotationDeclaration_type = Notation Declaration
-_UI_XSDNumericFacet_type = Numeric Facet
-_UI_XSDOrderedFacet_type = Ordered Facet
-_UI_XSDParticle_type = Particle
-_UI_XSDParticleContent_type = Particle Content
-_UI_XSDPatternFacet_type = Pattern Facet
-_UI_XSDRedefinableComponent_type = Redefinable Component
-_UI_XSDRedefineContent_type = Redefine Content
-_UI_XSDRedefine_type = Redefine
-_UI_XSDRepeatableFacet_type = Repeatable Facet
-_UI_XSDSchema_type = Schema
-_UI_XSDSchemaCompositor_type = Schema Compositor
-_UI_XSDSchemaContent_type = Schema Content
-_UI_XSDSchemaDirective_type = Schema Directive
-_UI_XSDScope_type = Scope
-_UI_XSDSimpleTypeDefinition_type = Simple Type Definition
-_UI_XSDTerm_type = Term
-_UI_XSDTotalDigitsFacet_type = Total Digits Facet
-_UI_XSDTypeDefinition_type = Type Definition
-_UI_XSDWhiteSpaceFacet_type = White Space Facet
-_UI_XSDWildcard_type = Wildcard
-_UI_XSDXPathDefinition_type = XPath Definition
-_UI_Unknown_type = Object
-
-_UI_XSDAnnotation_applicationInformation_feature = Application Information
-_UI_XSDAnnotation_userInformation_feature = User Information
-_UI_XSDAnnotation_attributes_feature = Attributes
-_UI_XSDAttributeDeclaration_attributeDeclarationReference_feature = Attribute Declaration Reference
-_UI_XSDAttributeDeclaration_annotation_feature = Annotation
-_UI_XSDAttributeDeclaration_anonymousTypeDefinition_feature = Anonymous Type Definition
-_UI_XSDAttributeDeclaration_typeDefinition_feature = Type Definition
-_UI_XSDAttributeDeclaration_resolvedAttributeDeclaration_feature = Resolved Attribute Declaration
-_UI_XSDAttributeGroupDefinition_attributeGroupDefinitionReference_feature = Attribute Group Definition Reference
-_UI_XSDAttributeGroupDefinition_annotation_feature = Annotation
-_UI_XSDAttributeGroupDefinition_contents_feature = Contents
-_UI_XSDAttributeGroupDefinition_attributeUses_feature = Attribute Uses
-_UI_XSDAttributeGroupDefinition_attributeWildcardContent_feature = Attribute Wildcard Content
-_UI_XSDAttributeGroupDefinition_attributeWildcard_feature = Attribute Wildcard
-_UI_XSDAttributeGroupDefinition_resolvedAttributeGroupDefinition_feature = Resolved Attribute Group Definition
-_UI_XSDAttributeGroupDefinition_syntheticWildcard_feature = Synthetic Wildcard
-_UI_XSDAttributeUse_required_feature = Required
-_UI_XSDAttributeUse_value_feature = Value
-_UI_XSDAttributeUse_constraint_feature = Constraint
-_UI_XSDAttributeUse_use_feature = Use
-_UI_XSDAttributeUse_lexicalValue_feature = Lexical Value
-_UI_XSDAttributeUse_attributeDeclaration_feature = Attribute Declaration
-_UI_XSDAttributeUse_content_feature = Content
-_UI_XSDBoundedFacet_value_feature = Value
-_UI_XSDCardinalityFacet_value_feature = Value
-_UI_XSDComplexTypeDefinition_derivationMethod_feature = Derivation Method
-_UI_XSDComplexTypeDefinition_final_feature = Final
-_UI_XSDComplexTypeDefinition_abstract_feature = Abstract
-_UI_XSDComplexTypeDefinition_contentTypeCategory_feature = Content Type Category
-_UI_XSDComplexTypeDefinition_prohibitedSubstitutions_feature = Prohibited Substitutions
-_UI_XSDComplexTypeDefinition_lexicalFinal_feature = Lexical Final
-_UI_XSDComplexTypeDefinition_block_feature = Block
-_UI_XSDComplexTypeDefinition_mixed_feature = Mixed
-_UI_XSDComplexTypeDefinition_contentAnnotation_feature = Content Annotation
-_UI_XSDComplexTypeDefinition_baseTypeDefinition_feature = Base Type Definition
-_UI_XSDComplexTypeDefinition_content_feature = Content
-_UI_XSDComplexTypeDefinition_contentType_feature = Content Type
-_UI_XSDComplexTypeDefinition_attributeUses_feature = Attribute Uses
-_UI_XSDComplexTypeDefinition_attributeContents_feature = Attribute Contents
-_UI_XSDComplexTypeDefinition_attributeWildcard_feature = Attribute Wildcard
-_UI_XSDComplexTypeDefinition_attributeWildcardContent_feature = Attribute Wildcard Content
-_UI_XSDComplexTypeDefinition_rootTypeDefinition_feature = Root Type Definition
-_UI_XSDComplexTypeDefinition_syntheticParticle_feature = Synthetic Particle
-_UI_XSDComplexTypeDefinition_syntheticWildcard_feature = Synthetic Wildcard
-_UI_XSDConcreteComponent_element_feature = Element
-_UI_XSDConcreteComponent_container_feature = Container
-_UI_XSDConcreteComponent_rootContainer_feature = Root Container
-_UI_XSDConcreteComponent_schema_feature = Schema
-_UI_XSDConcreteComponent_diagnostics_feature = Diagnostics
-_UI_XSDDiagnostic_severity_feature = Severity
-_UI_XSDDiagnostic_message_feature = Message
-_UI_XSDDiagnostic_locationURI_feature = Location URI
-_UI_XSDDiagnostic_line_feature = Line
-_UI_XSDDiagnostic_column_feature = Column
-_UI_XSDDiagnostic_node_feature = Node
-_UI_XSDDiagnostic_annotationURI_feature = Annotation URI
-_UI_XSDDiagnostic_components_feature = Components
-_UI_XSDDiagnostic_primaryComponent_feature = Primary Component
-_UI_XSDElementDeclaration_nillable_feature = Nillable
-_UI_XSDElementDeclaration_disallowedSubstitutions_feature = Disallowed Substitutions
-_UI_XSDElementDeclaration_substitutionGroupExclusions_feature = Substitution Group Exclusions
-_UI_XSDElementDeclaration_abstract_feature = Abstract
-_UI_XSDElementDeclaration_lexicalFinal_feature = Lexical Final
-_UI_XSDElementDeclaration_block_feature = Block
-_UI_XSDElementDeclaration_elementDeclarationReference_feature = Element Declaration Reference
-_UI_XSDElementDeclaration_circular_feature = Circular
-_UI_XSDElementDeclaration_annotation_feature = Annotation
-_UI_XSDElementDeclaration_anonymousTypeDefinition_feature = Anonymous Type Definition
-_UI_XSDElementDeclaration_typeDefinition_feature = Type Definition
-_UI_XSDElementDeclaration_identityConstraintDefinitions_feature = Identity Constraint Definitions
-_UI_XSDElementDeclaration_resolvedElementDeclaration_feature = Resolved Element Declaration
-_UI_XSDElementDeclaration_substitutionGroupAffiliation_feature = Substitution Group Affiliation
-_UI_XSDElementDeclaration_substitutionGroup_feature = Substitution Group
-_UI_XSDEnumerationFacet_value_feature = Value
-_UI_XSDFacet_lexicalValue_feature = Lexical Value
-_UI_XSDFacet_facetName_feature = Facet Name
-_UI_XSDFacet_effectiveValue_feature = Effective Value
-_UI_XSDFacet_annotation_feature = Annotation
-_UI_XSDFacet_simpleTypeDefinition_feature = Simple Type Definition
-_UI_XSDFeature_value_feature = Value
-_UI_XSDFeature_constraint_feature = Constraint
-_UI_XSDFeature_form_feature = Form
-_UI_XSDFeature_lexicalValue_feature = Lexical Value
-_UI_XSDFeature_global_feature = Global
-_UI_XSDFeature_featureReference_feature = Feature Reference
-_UI_XSDFeature_scope_feature = Scope
-_UI_XSDFeature_resolvedFeature_feature = Resolved Feature
-_UI_XSDFeature_type_feature = Type
-_UI_XSDFixedFacet_fixed_feature = Fixed
-_UI_XSDFractionDigitsFacet_value_feature = Value
-_UI_XSDIdentityConstraintDefinition_identityConstraintCategory_feature = Identity Constraint Category
-_UI_XSDIdentityConstraintDefinition_annotation_feature = Annotation
-_UI_XSDIdentityConstraintDefinition_referencedKey_feature = Referenced Key
-_UI_XSDIdentityConstraintDefinition_selector_feature = Selector
-_UI_XSDIdentityConstraintDefinition_fields_feature = Fields
-_UI_XSDImport_namespace_feature = Namespace
-_UI_XSDImport_annotation_feature = Annotation
-_UI_XSDInclude_annotation_feature = Annotation
-_UI_XSDLengthFacet_value_feature = Value
-_UI_XSDMaxFacet_value_feature = Value
-_UI_XSDMaxFacet_inclusive_feature = Inclusive
-_UI_XSDMaxFacet_exclusive_feature = Exclusive
-_UI_XSDMaxLengthFacet_value_feature = Value
-_UI_XSDMinFacet_value_feature = Value
-_UI_XSDMinFacet_inclusive_feature = Inclusive
-_UI_XSDMinFacet_exclusive_feature = Exclusive
-_UI_XSDMinLengthFacet_value_feature = Value
-_UI_XSDModelGroup_compositor_feature = Compositor
-_UI_XSDModelGroup_annotation_feature = Annotation
-_UI_XSDModelGroup_contents_feature = Contents
-_UI_XSDModelGroup_particles_feature = Particles
-_UI_XSDModelGroupDefinition_modelGroupDefinitionReference_feature = Model Group Definition Reference
-_UI_XSDModelGroupDefinition_annotation_feature = Annotation
-_UI_XSDModelGroupDefinition_modelGroup_feature = Model Group
-_UI_XSDModelGroupDefinition_resolvedModelGroupDefinition_feature = Resolved Model Group Definition
-_UI_XSDNamedComponent_name_feature = Name
-_UI_XSDNamedComponent_targetNamespace_feature = Target Namespace
-_UI_XSDNamedComponent_aliasName_feature = Alias Name
-_UI_XSDNamedComponent_uRI_feature = URI
-_UI_XSDNamedComponent_aliasURI_feature = Alias URI
-_UI_XSDNamedComponent_qName_feature = QName
-_UI_XSDNotationDeclaration_systemIdentifier_feature = System Identifier
-_UI_XSDNotationDeclaration_publicIdentifier_feature = Public Identifier
-_UI_XSDNotationDeclaration_annotation_feature = Annotation
-_UI_XSDNumericFacet_value_feature = Value
-_UI_XSDOrderedFacet_value_feature = Value
-_UI_XSDParticle_minOccurs_feature = Min Occurs
-_UI_XSDParticle_maxOccurs_feature = Max Occurs
-_UI_XSDParticle_content_feature = Content
-_UI_XSDParticle_term_feature = Term
-_UI_XSDPatternFacet_value_feature = Value
-_UI_XSDRedefinableComponent_circular_feature = Circular
-_UI_XSDRedefine_annotations_feature = Annotations
-_UI_XSDRedefine_contents_feature = Contents
-_UI_XSDRepeatableFacet_annotations_feature = Annotations
-_UI_XSDSchema_document_feature = Document
-_UI_XSDSchema_schemaLocation_feature = Schema Location
-_UI_XSDSchema_targetNamespace_feature = Target Namespace
-_UI_XSDSchema_attributeFormDefault_feature = Attribute Form Default
-_UI_XSDSchema_elementFormDefault_feature = Element Form Default
-_UI_XSDSchema_finalDefault_feature = Final Default
-_UI_XSDSchema_blockDefault_feature = Block Default
-_UI_XSDSchema_version_feature = Version
-_UI_XSDSchema_contents_feature = Contents
-_UI_XSDSchema_elementDeclarations_feature = Element Declarations
-_UI_XSDSchema_attributeDeclarations_feature = Attribute Declarations
-_UI_XSDSchema_attributeGroupDefinitions_feature = Attribute Group Definitions
-_UI_XSDSchema_typeDefinitions_feature = Type Definitions
-_UI_XSDSchema_modelGroupDefinitions_feature = Model Group Definitions
-_UI_XSDSchema_identityConstraintDefinitions_feature = Identity Constraint Definitions
-_UI_XSDSchema_notationDeclarations_feature = Notation Declarations
-_UI_XSDSchema_annotations_feature = Annotations
-_UI_XSDSchema_allDiagnostics_feature = All Diagnostics
-_UI_XSDSchema_referencingDirectives_feature = Referencing Directives
-_UI_XSDSchema_rootVersion_feature = Root Version
-_UI_XSDSchema_originalVersion_feature = Original Version
-_UI_XSDSchema_incorporatedVersions_feature = Incorporated Versions
-_UI_XSDSchema_schemaForSchema_feature = Schema For Schema
-_UI_XSDSchemaCompositor_incorporatedSchema_feature = Incorporated Schema
-_UI_XSDSchemaDirective_schemaLocation_feature = Schema Location
-_UI_XSDSchemaDirective_resolvedSchema_feature = Resolved Schema
-_UI_XSDSimpleTypeDefinition_variety_feature = Variety
-_UI_XSDSimpleTypeDefinition_final_feature = Final
-_UI_XSDSimpleTypeDefinition_lexicalFinal_feature = Lexical Final
-_UI_XSDSimpleTypeDefinition_validFacets_feature = Valid Facets
-_UI_XSDSimpleTypeDefinition_contents_feature = Contents
-_UI_XSDSimpleTypeDefinition_facetContents_feature = Facet Contents
-_UI_XSDSimpleTypeDefinition_facets_feature = Facets
-_UI_XSDSimpleTypeDefinition_memberTypeDefinitions_feature = Member Type Definitions
-_UI_XSDSimpleTypeDefinition_fundamentalFacets_feature = Fundamental Facets
-_UI_XSDSimpleTypeDefinition_baseTypeDefinition_feature = Base Type Definition
-_UI_XSDSimpleTypeDefinition_primitiveTypeDefinition_feature = Primitive Type Definition
-_UI_XSDSimpleTypeDefinition_itemTypeDefinition_feature = Item Type Definition
-_UI_XSDSimpleTypeDefinition_rootTypeDefinition_feature = Root Type Definition
-_UI_XSDSimpleTypeDefinition_minFacet_feature = Min Facet
-_UI_XSDSimpleTypeDefinition_maxFacet_feature = Max Facet
-_UI_XSDSimpleTypeDefinition_maxInclusiveFacet_feature = Max Inclusive Facet
-_UI_XSDSimpleTypeDefinition_minInclusiveFacet_feature = Min Inclusive Facet
-_UI_XSDSimpleTypeDefinition_minExclusiveFacet_feature = Min Exclusive Facet
-_UI_XSDSimpleTypeDefinition_maxExclusiveFacet_feature = Max Exclusive Facet
-_UI_XSDSimpleTypeDefinition_lengthFacet_feature = Length Facet
-_UI_XSDSimpleTypeDefinition_whiteSpaceFacet_feature = White Space Facet
-_UI_XSDSimpleTypeDefinition_enumerationFacets_feature = Enumeration Facets
-_UI_XSDSimpleTypeDefinition_patternFacets_feature = Pattern Facets
-_UI_XSDSimpleTypeDefinition_cardinalityFacet_feature = Cardinality Facet
-_UI_XSDSimpleTypeDefinition_numericFacet_feature = Numeric Facet
-_UI_XSDSimpleTypeDefinition_maxLengthFacet_feature = Max Length Facet
-_UI_XSDSimpleTypeDefinition_minLengthFacet_feature = Min Length Facet
-_UI_XSDSimpleTypeDefinition_totalDigitsFacet_feature = Total Digits Facet
-_UI_XSDSimpleTypeDefinition_fractionDigitsFacet_feature = Fraction Digits Facet
-_UI_XSDSimpleTypeDefinition_orderedFacet_feature = Ordered Facet
-_UI_XSDSimpleTypeDefinition_boundedFacet_feature = Bounded Facet
-_UI_XSDSimpleTypeDefinition_effectiveMaxFacet_feature = Effective Max Facet
-_UI_XSDSimpleTypeDefinition_effectiveWhiteSpaceFacet_feature = Effective White Space Facet
-_UI_XSDSimpleTypeDefinition_effectiveMaxLengthFacet_feature = Effective Max Length Facet
-_UI_XSDSimpleTypeDefinition_effectiveFractionDigitsFacet_feature = Effective Fraction Digits Facet
-_UI_XSDSimpleTypeDefinition_effectivePatternFacet_feature = Effective Pattern Facet
-_UI_XSDSimpleTypeDefinition_effectiveEnumerationFacet_feature = Effective Enumeration Facet
-_UI_XSDSimpleTypeDefinition_effectiveTotalDigitsFacet_feature = Effective Total Digits Facet
-_UI_XSDSimpleTypeDefinition_effectiveMinLengthFacet_feature = Effective Min Length Facet
-_UI_XSDSimpleTypeDefinition_effectiveLengthFacet_feature = Effective Length Facet
-_UI_XSDSimpleTypeDefinition_effectiveMinFacet_feature = Effective Min Facet
-_UI_XSDSimpleTypeDefinition_syntheticFacets_feature = Synthetic Facets
-_UI_XSDTotalDigitsFacet_value_feature = Value
-_UI_XSDTypeDefinition_annotation_feature = Annotation
-_UI_XSDTypeDefinition_derivationAnnotation_feature = Derivation Annotation
-_UI_XSDTypeDefinition_annotations_feature = Annotations
-_UI_XSDTypeDefinition_rootType_feature = Root Type
-_UI_XSDTypeDefinition_baseType_feature = Base Type
-_UI_XSDTypeDefinition_simpleType_feature = Simple Type
-_UI_XSDTypeDefinition_complexType_feature = Complex Type
-_UI_XSDWhiteSpaceFacet_value_feature = Value
-_UI_XSDWildcard_namespaceConstraintCategory_feature = Namespace Constraint Category
-_UI_XSDWildcard_namespaceConstraint_feature = Namespace Constraint
-_UI_XSDWildcard_processContents_feature = Process Contents
-_UI_XSDWildcard_lexicalNamespaceConstraint_feature = Lexical Namespace Constraint
-_UI_XSDWildcard_annotation_feature = Annotation
-_UI_XSDWildcard_annotations_feature = Annotations
-_UI_XSDXPathDefinition_variety_feature = Variety
-_UI_XSDXPathDefinition_value_feature = Value
-_UI_XSDXPathDefinition_annotation_feature = Annotation
-_UI_Unknown_feature = Unspecified
-
-!======================================================================================
-!
-! Used by org.eclipse.wst.common.ui.viewers.SelectSingleFileView
-!
-!======================================================================================
-_UI_LABEL_SOURCE_FILES   = Workbench Files
-_UI_LABEL_SELECTED_FILES = Selected Files
-
-_UI_IMPORT_BUTTON          = Import Files...
-_UI_IMPORT_BUTTON_TOOL_TIP = Import files from file system
diff --git a/bundles/org.eclipse.wst.xsd.ui/plugin.xml b/bundles/org.eclipse.wst.xsd.ui/plugin.xml
deleted file mode 100644
index 5e38c58..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/plugin.xml
+++ /dev/null
@@ -1,205 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.wst.xsd.ui"
-   name="%_UI_PLUGIN_NAME"
-   version="1.0.0"
-   provider-name="Eclipse.org"
-   class="org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin">
-
-   <runtime>
-      <library name="xsdeditor.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.core.runtime.compatibility"/>
-      
-      <import plugin="org.eclipse.wst.xml.uriresolver"/>
-      <import plugin="org.eclipse.wst.sse.ui"/>
-      <import plugin="org.eclipse.wst.sse.core"/>
-      <import plugin="org.eclipse.wst.xml.core"/>
-      <import plugin="org.eclipse.wst.xml.ui"/>
-      <import plugin="org.eclipse.wst.common.contentmodel"/>
-      <import plugin="org.eclipse.wst.common.ui"/>
-      
-      <import plugin="org.eclipse.jface.text"/>
-      <import plugin="org.eclipse.xsd"/>
-      <import plugin="org.eclipse.gef"/>
-      <import plugin="org.eclipse.jface"/>
-      <import plugin="org.eclipse.ui.editors"/>
-      <import plugin="org.eclipse.ui.workbench.texteditor"/>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.ui.views"/>
-      <import plugin="org.eclipse.ui.ide"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.wst.common.ui.properties"/>
-      <import plugin="org.eclipse.xsd.edit"/>
-      <import plugin="org.eclipse.emf.edit"/>
-      <import plugin="org.eclipse.emf.edit.ui"/> 
-   </requires>
-
-
-   <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            name="%_UI_EDITOR_NAME"
-            default="true"
-            icon="icons/XSDFile.gif"
-            extensions="xsd"
-            contributorClass="org.eclipse.wst.xsd.ui.internal.XSDActionBarContributor"
-            class="org.eclipse.wst.xsd.ui.internal.XSDEditor"
-            id="org.eclipse.wst.xsd.ui.XSDEditor">
-      </editor>
-   </extension>
-<!-- drop targets for XSDTextEditor-->
-   <extension
-         point="org.eclipse.wst.sse.ui.dropTargetTransfers">
-      <dropTargetContribution
-            targetID="org.eclipse.wst.xsd.ui.internal.XSDTextEditor"
-            id="org.eclipse.wst.xsd.ui.ExtendedTransfers">
-         <transfer
-               priority="mid"
-               singleton="true"
-               class="org.eclipse.swt.dnd.FileTransfer"
-               method="getInstance"
-               id="org.eclipse.swt.dnd.FileTransfer">
-         </transfer>
-         <dropAction
-               class="org.eclipse.wst.sse.ui.extension.FileDropAction"
-               transferID="org.eclipse.swt.dnd.FileTransfer"
-               id="org.eclipse.wst.sse.ui.extension.FileDropAction">
-         </dropAction>
-         <transfer
-               priority="low"
-               singleton="true"
-               class="org.eclipse.swt.dnd.TextTransfer"
-               method="getInstance"
-               id="org.eclipse.swt.dnd.TextTransfer">
-         </transfer>
-         <dropAction
-               class="org.eclipse.wst.sse.ui.extension.TextDropAction"
-               transferID="org.eclipse.swt.dnd.TextTransfer"
-               id="corg.eclipse.wst.sse.ui.extension.TextDropAction">
-         </dropAction>
-      </dropTargetContribution>
-   </extension>
-
-   <extension point="org.eclipse.ui.newWizards">
-     <wizard id = "org.eclipse.wst.xsd.ui.internal.wizards.NewXSDWizard"
-        name = "%_UI_WIZARD_NEW_XSD"
-        class = "org.eclipse.wst.xsd.ui.internal.wizards.NewXSDWizard"
-        category = "org.eclipse.wst.XMLCategory"
-        icon = "icons/XSDFile.gif">
-      <description>%_UI_CREATE_A_NEW_SCHEMA</description>
-      <selection class = "org.eclipse.core.resources.IResource" />
-      </wizard>
-   </extension>
-
-   <extension point="org.eclipse.ui.preferencePages">
-      <page
-            name="%_UI_XML_SCHEMA_PREFERENCE"
-            category="org.eclipse.wst.sse.ui.preferences"
-            class="org.eclipse.wst.xsd.ui.internal.preferences.XSDPreferencePage"
-            id="org.eclipse.wst.xsd.ui.internal.preferences.XSDPreferencePage">
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.wst.sse.ui.extendedconfiguration">
-      <preferencepages
-            preferenceids="org.eclipse.wst.sse.ui.preferences/org.eclipse.wst.xsd.ui.internal.preferences.XSDPreferencePage"
-            target="org.eclipse.wst.xsd.ui.internal.XSDEditor.source" />
-   </extension>
-   
-   <!-- ==================================================== -->
-<!-- Support help on the tags                             -->
-<!-- ==================================================== -->
-<!--   <extension
-         point="org.eclipse.wst.common.contentmodel.annotationFiles">
-      <annotationFile
-            location="/w3c/schemaForCodeAssist-annotations.xml"
-            publicId="http://www.w3.org/2001/XMLSchema">
-      </annotationFile>
-   </extension>
--->
-   <extension
-         point="org.eclipse.wst.common.ui.properties.propertyContributor">
-      <propertyContributor
-            contributorId="org.eclipse.wst.xsd.ui.internal.XSDEditor"
-            sectionDescriptorProvider="org.eclipse.wst.xsd.ui.internal.properties.section.XSDSectionDescriptorProvider"
-            labelProvider="org.eclipse.wst.xsd.ui.internal.properties.section.XSDSectionLabelProvider">
-         <propertyCategory
-               category="general">
-         </propertyCategory>
-         <propertyCategory
-               category="namespace">
-         </propertyCategory>
-         <propertyCategory
-               category="other">
-         </propertyCategory>
-         <propertyCategory
-               category="attributes">
-         </propertyCategory>
-         <propertyCategory
-               category="enumerations">
-         </propertyCategory>
-         <propertyCategory
-               category="documentation">
-         </propertyCategory>
-         <propertyCategory
-               category="facets">
-         </propertyCategory>
-      </propertyContributor>
-   </extension>
-   <extension
-         point="org.eclipse.wst.common.ui.properties.propertyTabs">
-      <propertyTabs
-            contributorId="org.eclipse.wst.xsd.ui.internal.XSDEditor">
-         <propertyTab
-               label="%_UI_LABEL_GENERAL"
-               category="general"
-               id="com.ibm.xmlwebservices.general">
-         </propertyTab>
-         <propertyTab
-               label="%_UI_LABEL_NAMESPACE"
-               category="namespace"
-               afterTab="com.ibm.xmlwebservices.general"
-               id="com.ibm.xmlwebservices.namespace">
-         </propertyTab>
-         <propertyTab
-               label="%_UI_LABEL_OTHER"
-               category="other"
-               id="com.ibm.xmlwebservices.other">
-         </propertyTab>
-         <propertyTab
-               label="%_UI_LABEL_ATTRIBUTES"
-               category="attributes"
-               id="com.ibm.xmlwebservices.attributes">
-         </propertyTab>
-         <propertyTab
-               label="%_UI_LABEL_ENUMERATIONS"
-               category="enumerations"
-               id="com.ibm.xmlwebservices.enumerations">
-         </propertyTab>
-         <propertyTab
-               label="%_UI_LABEL_DOCUMENTATION"
-               category="documentation"
-               id="com.ibm.xmlwebservices.documentation">
-         </propertyTab>
-         <propertyTab
-               label="%_UI_SECTION_ADVANCED_ATTRIBUTES"
-               category="facets"
-               id="com.ibm.xmlwebservices.facets">
-         </propertyTab>
-      </propertyTabs>
-   </extension>
-   
-   <!--
-    <extension point="org.eclipse.wst.xml.uriresolver.catalogContributor">
-     <catalogContributor catalogId="default">
-       <mappingInfo key="http://www.w3.org/2001/XMLSchema" uri="w3c/XMLSchema.xsd"/>
-      </catalogContributor>
-    </extension>
-    -->
- 
-</plugin>
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/AbstractXSDDataTypeValueExtension.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/AbstractXSDDataTypeValueExtension.java
deleted file mode 100644
index 323cb94..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/AbstractXSDDataTypeValueExtension.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal;
-import java.util.Vector;
-
-import org.eclipse.wst.common.contentmodel.CMNode;
-import org.eclipse.wst.common.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.common.contentmodel.modelquery.extension.DataTypeValueExtension;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.xsd.XSDSchema;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-  /**
-   * This class is used to extend the ModelQuery behaviour so that we can contribute our own
-   * 'allowed values' for attributes or elements (e.g. the 'type' attribute).
-   */
-  public abstract class AbstractXSDDataTypeValueExtension implements DataTypeValueExtension
-  { 
-    protected ModelQuery modelQuery;
-
-    public int getType()
-    {
-      return DATA_TYPE_VALUE_EXTENSION;
-    }   
-
-    public abstract String getId();
-
-    public AbstractXSDDataTypeValueExtension(ModelQuery modelQuery)
-    {
-      this.modelQuery = modelQuery;
-      if (modelQuery != null && modelQuery.getExtensionManager() != null)
-      {
-        modelQuery.getExtensionManager().addExtension(this);
-      }
-    }  
-
-    public void dispose()
-    {
-      if (modelQuery != null && modelQuery.getExtensionManager() != null)
-      {
-        modelQuery.getExtensionManager().removeExtension(this);
-      }
-    }
-
-    protected abstract XSDSchema getEnclosingXSDSchema(Element element);  
-
-
-	protected TypesHelper createTypesHelper(XSDSchema schema)
-	{ 
-		return new TypesHelper(schema);		
-	}
-	
-    public java.util.List getDataTypeValues(Element element, CMNode cmNode)
-    {
-      java.util.List list = new Vector();
-      if (cmNode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION)
-      {
-        TypesHelper typesHelper = createTypesHelper(getEnclosingXSDSchema(element));
-        String name = cmNode.getNodeName();
-        String currentElementName = element.getLocalName();
-        Node parentNode = element.getParentNode();
-        String parentName = "";
-        if (parentNode != null)
-        {
-          parentName = parentNode.getLocalName();
-        }
-
-        if (checkName(name, "type"))
-        {
-          if (checkName(currentElementName, "attribute"))
-          {
-            list = typesHelper.getBuiltInTypeNamesList();
-            list.addAll(typesHelper.getUserSimpleTypeNamesList());
-          }
-          else if (checkName(currentElementName, "element"))
-          {
-            list = typesHelper.getBuiltInTypeNamesList2();
-            list.addAll(typesHelper.getUserSimpleTypeNamesList());
-            list.addAll(typesHelper.getUserComplexTypeNamesList());
-          }
-        }
-        else if (checkName(name, "itemType"))
-        {
-          if (checkName(currentElementName, "list"))
-          {
-            if (checkName(parentName, "simpleType"))
-            {
-              list = typesHelper.getBuiltInTypeNamesList();
-              list.addAll(typesHelper.getUserSimpleTypeNamesList());
-            }
-          }
-        }
-        else if (checkName(name, "memberTypes"))
-        {
-          if (checkName(currentElementName, "union"))
-          {
-            if (checkName(parentName, "simpleType"))
-            {
-              list = typesHelper.getBuiltInTypeNamesList();
-              list.addAll(typesHelper.getUserSimpleTypeNamesList());
-            }
-          }
-        }
-        else if (checkName(name, "base"))
-        {
-          if (checkName(currentElementName, "restriction"))
-          {
-            if (checkName(parentName, "simpleType"))
-            {
-              list = typesHelper.getBuiltInTypeNamesList();
-              list.addAll(typesHelper.getUserSimpleTypeNamesList());
-            }
-            else if (checkName(parentName, "simpleContent"))
-            {
-              list = typesHelper.getBuiltInTypeNamesList();
-              list.addAll(typesHelper.getUserComplexTypeNamesList());
-            }
-            else if (checkName(parentName, "complexContent"))
-            {
-              list = typesHelper.getBuiltInTypeNamesList();
-              list.addAll(typesHelper.getUserComplexTypeNamesList());
-            }
-          }
-          else if (checkName(currentElementName, "extension"))
-          {
-            if (checkName(parentName, "simpleContent"))
-            {
-              list = typesHelper.getBuiltInTypeNamesList();
-              list.addAll(typesHelper.getUserComplexTypeNamesList());
-            }
-            else if (checkName(parentName, "complexContent"))
-            {
-              list = typesHelper.getBuiltInTypeNamesList();
-              list.addAll(typesHelper.getUserComplexTypeNamesList());
-            }
-          }
-        }
-        else if (checkName(name, "ref"))
-        {
-          if (checkName(currentElementName, "element"))
-          {
-            list = typesHelper.getGlobalElements();
-          }
-          else if (checkName(currentElementName, "attribute"))
-          {
-            list = typesHelper.getGlobalAttributes();
-          }
-          else if (checkName(currentElementName, "attributeGroup"))
-          {
-            list = typesHelper.getGlobalAttributeGroups();
-          }
-          else if (checkName(currentElementName, "group"))
-          {
-            list = typesHelper.getModelGroups();
-          }
-        }
-        else if (checkName(name, "substitutionGroup"))
-        {
-          if (checkName(currentElementName, "element"))
-          {
-            list = typesHelper.getGlobalElements();
-          }
-        }
-/*        else if (checkName(name, "refer"))
-        {
-          if (checkName(currentElementName, "keyref"))
-          {
-            list = typesHelper.getKeys();
-          }
-        } */
-
-
-      }
-      return list;
-    }
-
-    protected boolean checkName(String localName, String token)
-    {
-      if (localName != null && localName.trim().equals(token))
-      {
-        return true;
-      }
-      return false;
-    }
-  }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/AbstractXSDModelQueryContributor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/AbstractXSDModelQueryContributor.java
deleted file mode 100644
index 717afe0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/AbstractXSDModelQueryContributor.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal;
-import java.net.URL;
-import java.util.Vector;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.common.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.common.contentmodel.util.NamespaceInfo;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.modelquery.ModelQueryUtil;
-import org.w3c.dom.Document;
-
-public abstract class AbstractXSDModelQueryContributor
-{ 
-  protected AbstractXSDDataTypeValueExtension xsdDataTypeValueExtension;
-
-  public void setModel(XMLModel model)
-  {                    
-    // remove our old DataTypeValueExtension
-    //
-    if (xsdDataTypeValueExtension != null)
-    {
-      xsdDataTypeValueExtension.dispose();
-      xsdDataTypeValueExtension = null;
-    }
-
-    setImplicitGrammar(model.getDocument());
-
-    // add a new DataTypeValueExtension
-    //                                                          
-    ModelQuery modelQuery = ModelQueryUtil.getModelQuery(model.getDocument());
-    xsdDataTypeValueExtension = createXSDDataTypeValueExtension(modelQuery);
-  }
-  
-  protected void setImplicitGrammar(Document document)
-  {
-//    DOMExtension domExtension = DOMExtensionProviderRegistry.getInstance().getDOMExtension(document);
-//    if (domExtension != null)
-//    {
-      String uri = "platform:/plugin/org.eclipse.wst.xsd.ui/w3c/schemaForCodeAssist.xsd";
-      uri = resolvePlatformUrl(uri);
-      if (uri != null)
-      {
-        Vector list = new Vector();
-        NamespaceInfo info = new NamespaceInfo("http://www.w3.org/2001/XMLSchema", "xsd", uri);
-        info.setProperty("isImplied", "true");
-        list.add(info);
-//        domExtension.setImplictNamespaceInfoList(list);
-      }
-//    }
-  } 
-
-  protected static String resolvePlatformUrl(String urlspec)
-  {
-    String result = null;
-    try
-    {
-      urlspec = urlspec.replace('\\', '/');
-      URL url = new URL(urlspec);
-      URL resolvedURL = Platform.resolve(url);
-      result = resolvedURL.toString();
-    }
-    catch (Exception e)
-    {
-    }
-    return result;
-  }
-
-  public abstract AbstractXSDDataTypeValueExtension createXSDDataTypeValueExtension(ModelQuery modelQuery);
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDActionBarContributor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDActionBarContributor.java
deleted file mode 100644
index f66de6e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDActionBarContributor.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.RetargetAction;
-import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.ITextEditorActionConstants;
-import org.eclipse.wst.xsd.ui.internal.actions.ISchemaEditorActionConstants;
-import org.eclipse.wst.xsd.ui.internal.actions.ReloadDependenciesAction;
-
-public class XSDActionBarContributor extends MultiPageEditorActionBarContributor
-{
-  protected XSDEditor xsdEditor;
-  protected XSDTextEditor textEditor;
-
-  protected ReloadDependenciesAction reloadDependenciesAction;
-  
-  protected List fPartListeners= new ArrayList();
-
-  protected RetargetAction retargetReloadDependenciesAction;
- 
-  /**
-   * Constructor for XSDActionBarContributor.
-   */
-  public XSDActionBarContributor()
-  {
-    super();
-
-    // Reload Dependencies
-    reloadDependenciesAction = new ReloadDependenciesAction(XSDEditorPlugin.getXSDString("_UI_MENU_RELOAD_DEPENDENCIES"));
-    retargetReloadDependenciesAction = new RetargetAction(ISchemaEditorActionConstants.RETARGET_RELOAD_DEPENDENCIES_ACTION_ID, XSDEditorPlugin.getXSDString("_UI_MENU_RELOAD_DEPENDENCIES"));
-    retargetReloadDependenciesAction.setToolTipText(XSDEditorPlugin.getXSDString("_UI_MENU_RELOAD_DEPENDENCIES_TOOLTIP"));
-    retargetReloadDependenciesAction.setImageDescriptor(
-        ImageDescriptor.createFromFile(XSDEditorPlugin.getPlugin().getClass(), "icons/reloadgrammar.gif"));
-    fPartListeners.add(retargetReloadDependenciesAction);
-  }
-
-  protected void updateActions()
-  {
-    if (xsdEditor != null && xsdEditor.getCurrentPageType().equals(XSDEditorPlugin.GRAPH_PAGE))
-    {
-      IAction deleteAction = xsdEditor.getGraphViewer().getComponentViewer().getMenuListener().getDeleteAction();
-      getActionBars().setGlobalActionHandler(ActionFactory.DELETE.getId(), deleteAction);
-
-      IAction printGraphAction = xsdEditor.getGraphViewer().getPrintGraphAction();
-      getActionBars().setGlobalActionHandler(ActionFactory.PRINT.getId(), printGraphAction);
-    }
-    else
-    {
-      getActionBars().setGlobalActionHandler(ActionFactory.DELETE.getId(), null);      
-      // always enable print regardless of whether we are on source or design
-      updateAction(ActionFactory.PRINT.getId(), ITextEditorActionConstants.PRINT, true);
-    }
-  }
-      
-  public void setActivePage(IEditorPart activeEditor)
-  {
-    updateActions();
-    getActionBars().updateActionBars();
-  }
-
-  protected void updateAction(String globalActionId, String textEditorActionId, boolean enable)
-  {
-    getActionBars().setGlobalActionHandler(globalActionId,
-                                      enable ? getAction(textEditor, textEditorActionId) :
-                                               null);
-  }
-
-  /**
-   * Returns the action registed with the given text editor.
-   * @return IAction or null if editor is null.
-   */
-  protected IAction getAction(ITextEditor editor, String actionID)
-  {
-    try
-    {
-      return (editor == null ? null : editor.getAction(actionID));
-    }
-    catch (Exception e)
-    {
-      return null;
-    }
-  }
-
-  private IMenuManager editMenu;
-
-  public void addToMenu(IMenuManager menuManager)
-  {
-    editMenu = menuManager.findMenuUsingPath(IWorkbenchActionConstants.M_EDIT);
-
-    MenuManager treeMenu = new MenuManager(XSDEditorPlugin.getXSDString("_UI_MENU_XSD_EDITOR"));
-    menuManager.insertAfter(IWorkbenchActionConstants.MB_ADDITIONS, treeMenu);
-
-    treeMenu.add(new Separator("group1"));
-//  Add retarget actions
-
-    treeMenu.add(retargetReloadDependenciesAction);
-
-    treeMenu.add(new Separator("group2"));
-  }
-
-
-public void addToToolBar(IToolBarManager toolBarManager)
-  {
-    toolBarManager.add(new Separator("XMLSchema.2"));
-//  Add retarget actions
-    toolBarManager.add(retargetReloadDependenciesAction);
-
-    toolBarManager.add(new Separator("XMLSchema.1"));
-
-    toolBarManager.add(new Separator());
-  }
-  
-  public void contributeToToolBar(IToolBarManager toolBarManager)
-  {
-    addToToolBar(toolBarManager);
-  }
-  
-  public void contributeToMenu(IMenuManager menuManager)
-  {
-    addToMenu(menuManager);
-  }
-  
-  /**
-   * @see org.eclipse.ui.IEditorActionBarContributor#setActiveEditor(IEditorPart)
-   */
-  public void setActiveEditor(IEditorPart targetEditor)
-  {
-    super.setActiveEditor(targetEditor);
-
-    if (targetEditor instanceof XSDEditor)
-    {
-      xsdEditor = (XSDEditor) targetEditor;
-      reloadDependenciesAction.setEditor((XSDEditor)targetEditor);
-
-      textEditor = ((XSDEditor)targetEditor).getXSDTextEditor();
-      if (textEditor != null)
-      {      
-        updateActions();  
-        getActionBars().updateActionBars();
-      }
-    }
-  }
-
-  public void init(IActionBars bars, IWorkbenchPage page)
-  {
-    Iterator e = fPartListeners.iterator();
-    while (e.hasNext())
-    {
-      page.addPartListener((RetargetAction) e.next());
-    }
-
-    // register actions that have a dynamic editor. 
-
-    bars.setGlobalActionHandler(ISchemaEditorActionConstants.RETARGET_RELOAD_DEPENDENCIES_ACTION_ID, reloadDependenciesAction);
-
-    super.init(bars, page);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDContentOutlinePage.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDContentOutlinePage.java
deleted file mode 100644
index fb41748..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDContentOutlinePage.java
+++ /dev/null
@@ -1,378 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
-import org.eclipse.wst.xsd.ui.internal.actions.OpenSchemaAction;
-import org.eclipse.wst.xsd.ui.internal.provider.CategoryAdapter;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.w3c.dom.Element;
-
-public class XSDContentOutlinePage extends ContentOutlinePage
-{
-  protected XSDEditor xsdEditor;
-  protected int level = 0;
-  protected Object model;
-  protected ITreeContentProvider contentProvider;
-  protected ILabelProvider labelProvider;
-  protected XSDSelectionManager selectionManager;
-  protected SelectionManagerSelectionChangeListener selectionManagerSelectionChangeListener = new SelectionManagerSelectionChangeListener();
-  protected TreeSelectionChangeListener treeSelectionChangeListener = new TreeSelectionChangeListener();
-  XSDTextEditor xsdTextEditor;
-  XSDMenuListener menuListener;
-
-  /**
-   *  
-   */
-  public XSDContentOutlinePage(XSDTextEditor xsdTextEditor)
-  {
-    super();
-    this.xsdTextEditor = xsdTextEditor;
-  }
-
-  public void setModel(Object newModel)
-  {
-    model = newModel;
-  }
-
-  public void setContentProvider(ITreeContentProvider contentProvider)
-  {
-    this.contentProvider = contentProvider;
-  }
-
-  public void setLabelProvider(ILabelProvider labelProvider)
-  {
-    this.labelProvider = labelProvider;
-  }
-
-  // expose
-  public TreeViewer getTreeViewer()
-  {
-    return super.getTreeViewer();
-  }
-
-  public void createControl(Composite parent)
-  {
-    super.createControl(parent);
-    getTreeViewer().setContentProvider(contentProvider);
-    getTreeViewer().setLabelProvider(labelProvider);
-    getTreeViewer().setInput(model);
-    getTreeViewer().addSelectionChangedListener(this);
-    MenuManager menuManager = new MenuManager("#popup");//$NON-NLS-1$
-    menuManager.setRemoveAllWhenShown(true);
-    Menu menu = menuManager.createContextMenu(getTreeViewer().getControl());
-    getTreeViewer().getControl().setMenu(menu);
-    menuListener = new XSDMenuListener(xsdTextEditor.getXSDEditor().getSelectionManager());
-//  menuListener.setSelectionProvider(getTreeViewer());
-    menuManager.addMenuListener(menuListener);
-    setSelectionManager(xsdTextEditor.getXSDEditor().getSelectionManager());
-    // cs... why are we doing this from the outline view?
-    //
-    //xsdTextEditor.getXSDEditor().getSelectionManager().setSelection(new
-    // StructuredSelection(xsdTextEditor.getXSDSchema()));
-    XSDKeyListener keyListener = new XSDKeyListener(getTreeViewer(), menuListener);
-    getTreeViewer().getControl().addKeyListener(keyListener);
-    // drill down from outline view
-    getTreeViewer().getControl().addMouseListener(new MouseAdapter()
-    {
-      public void mouseDoubleClick(MouseEvent e)
-      {
-        ISelection iSelection = getTreeViewer().getSelection();
-        if (iSelection instanceof StructuredSelection)
-        {
-          StructuredSelection selection = (StructuredSelection)iSelection;
-          Object obj = selection.getFirstElement();
-          if (obj instanceof XSDConcreteComponent)
-          {
-            XSDConcreteComponent comp = (XSDConcreteComponent)obj;
-            if (comp.getContainer() instanceof XSDSchema)
-            {
-              xsdTextEditor.getXSDEditor().getGraphViewer().setInput(obj);
-            }
-          }
-        }
-
-      }
-    });
-  }
-  class XSDKeyListener extends KeyAdapter
-  {
-    TreeViewer viewer;
-    XSDMenuListener menuListener;
-
-    public XSDKeyListener(TreeViewer viewer, XSDMenuListener menuListener)
-    {
-      super();
-      this.viewer = viewer;
-      this.menuListener = menuListener;
-    }
-
-    /**
-     * @see org.eclipse.swt.events.KeyAdapter#keyReleased(KeyEvent)
-     */
-    public void keyReleased(KeyEvent e)
-    {
-      if (e.character == SWT.DEL)
-      {
-        menuListener.getDeleteAction().run();
-      }
-      else if (e.keyCode == SWT.F3) // open editor on any
-                                    // include/import/redefine
-      {
-        if (e.widget instanceof Tree)
-        {
-          Tree tree = (Tree) e.widget;
-          TreeItem[] selection = tree.getSelection();
-          if (selection.length > 0)
-          {
-            if (selection[0].getData() instanceof XSDSchemaDirective)
-            {
-              XSDSchemaDirective comp = (XSDSchemaDirective) selection[0].getData();
-              OpenSchemaAction openSchema = new OpenSchemaAction(XSDEditorPlugin.getXSDString("_UI_ACTION_OPEN_SCHEMA"), comp);
-              openSchema.run();
-            }
-          }
-        }
-      }
-    }
-  }
-
-  public void setExpandToLevel(int i)
-  {
-    level = i;
-  }
-
-  public void setInput(Object value)
-  {
-    getTreeViewer().setInput(value);
-    getTreeViewer().expandToLevel(level);
-  }
-
-  //	public ISelection getSelection()
-  //	{
-  //		if (getTreeViewer() == null)
-  //			return StructuredSelection.EMPTY;
-  //		return getTreeViewer().getSelection();
-  //	}
-  public void setSelectionManager(XSDSelectionManager newSelectionManager)
-  {
-    TreeViewer treeViewer = getTreeViewer();
-    // disconnect from old one
-    if (selectionManager != null)
-    {
-      selectionManager.removeSelectionChangedListener(selectionManagerSelectionChangeListener);
-      treeViewer.removeSelectionChangedListener(treeSelectionChangeListener);
-    }
-    selectionManager = newSelectionManager;
-    // connect to new one
-    if (selectionManager != null)
-    {
-      selectionManager.addSelectionChangedListener(selectionManagerSelectionChangeListener);
-      treeViewer.addSelectionChangedListener(treeSelectionChangeListener);
-    }
-  }
-  class SelectionManagerSelectionChangeListener implements ISelectionChangedListener
-  {
-    public void selectionChanged(SelectionChangedEvent event)
-    {
-      if (event.getSelectionProvider() != getTreeViewer())
-      {
-        getTreeViewer().setSelection(event.getSelection(), true);
-      }
-    }
-  }
-  class TreeSelectionChangeListener implements ISelectionChangedListener
-  {
-    public void selectionChanged(SelectionChangedEvent event)
-    {
-      if (selectionManager != null)
-      {
-        ISelection selection = event.getSelection();
-        if (selection instanceof IStructuredSelection)
-        {
-          IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-          Object o = structuredSelection.getFirstElement();
-          // TODO ...
-          // we need to implement a selectionManagerMapping extension point
-          // so that extensions can specify how they'd like to map view objects
-          // to selection objects
-          //                                        
-          if (o instanceof Element)
-          {
-            try
-            {
-              Object modelObject = xsdTextEditor.getXSDSchema().getCorrespondingComponent((Element) o);
-              if (modelObject != null)
-              {
-                o = modelObject;
-              }
-            }
-            catch (Exception e)
-            {
-            }
-          }
-          else if (o instanceof CategoryAdapter)
-          {
-            // todo... we need to ensure we eliminate the propagation 
-            // of 'view' specific objects into the SelectionManager.                     
-            // We need to do some work to ensure all views utilize the 'Category' model object  
-            // so we can get rid of this CategoryAdapter class.
-//             CategoryAdapter adapter = (CategoryAdapter) o;
-//             o = adapter.getXSDSchema();
-          }
-          if (o != null)
-          {
-            selectionManager.setSelection(new StructuredSelection(o), getTreeViewer());
-//          selectionManager.selectionChanged(new SelectionChangedEvent(getTreeViewer(),new StructuredSelection(o)));
-          }
-          else
-          {
-            //            selectionManager.setSelection(new StructuredSelection(),
-            // getTreeViewer());
-          }
-        }
-      }
-    }
-  }
-  FilterAction referenceAction, inheritedAction;
-
-  public void setActionBars(IActionBars actionBars)
-  {
-    super.setActionBars(actionBars);
-    // Uncomment to add sort action
-    //    SortAction sortAction = new SortAction();
-    //
-    //    actionBars.getToolBarManager().add(sortAction);
-    //    sortAction.setChecked(false);
-    referenceAction = new FilterAction(new ReferenceFilter("Reference Content"), XSDEditorPlugin.getXSDString("_UI_OUTLINE_SHOW_REFERENCES"), ImageDescriptor.createFromFile(XSDEditorPlugin
-        .getPlugin().getClass(), "icons/XSDElementRef.gif"));
-    boolean initialRef = xsdTextEditor.getXSDModelAdapterFactory().getShowReferences();
-    referenceAction.setChecked(initialRef);
-    inheritedAction = new FilterAction(new ReferenceFilter("Inherited Content"), XSDEditorPlugin.getXSDString("_UI_OUTLINE_SHOW_INHERITED"), ImageDescriptor.createFromFile(XSDEditorPlugin.getPlugin()
-        .getClass(), "icons/XSDComplexContent.gif"));
-    boolean initialInherited = xsdTextEditor.getXSDModelAdapterFactory().getShowReferences();
-    IMenuManager menu = actionBars.getMenuManager();
-    menu.add(referenceAction);
-    menu.add(inheritedAction);
-  }
-
-  private void updateActions(Action current)
-  {
-    if (referenceAction.isChecked())
-    {
-      xsdTextEditor.getXSDModelAdapterFactory().setShowReferences(true);
-    }
-    else
-    {
-      xsdTextEditor.getXSDModelAdapterFactory().setShowReferences(false);
-    }
-    if (inheritedAction.isChecked())
-    {
-      xsdTextEditor.getXSDModelAdapterFactory().setShowInherited(true);
-    }
-    else
-    {
-      xsdTextEditor.getXSDModelAdapterFactory().setShowInherited(false);
-    }
-  }
-  private Sorter sorter = new Sorter();
-  public class Sorter extends org.eclipse.jface.viewers.ViewerSorter
-  {
-  }
-  public class SortAction extends Action
-  {
-    public SortAction()
-    {
-      super("Sort", ImageDescriptor.createFromFile(XSDEditorPlugin.getPlugin().getClass(), "icons/sort.gif"));
-    }
-
-    public void run()
-    {
-      getTreeViewer().getControl().setVisible(false);
-      Object[] expandedElements = getTreeViewer().getExpandedElements();
-      getTreeViewer().setSorter(isChecked() ? sorter : null);
-      Object input = getTreeViewer().getInput();
-      getTreeViewer().setInput(input);
-      getTreeViewer().setExpandedElements(expandedElements);
-      getTreeViewer().getControl().setVisible(true);
-    }
-
-    public void setChecked(boolean checked)
-    {
-      super.setChecked(checked);
-      setToolTipText(checked ? XSDEditorPlugin.getXSDString("_UI_OUTLINE_DO_NOT_SORT") : XSDEditorPlugin.getXSDString("_UI_OUTLINE_SORT"));
-    }
-  }
-  public class FilterAction extends Action
-  {
-    ViewerFilter filter;
-
-    public FilterAction(ViewerFilter filter, String label, ImageDescriptor image)
-    {
-      super(label, image);
-      this.filter = filter;
-      setChecked(false);
-    }
-
-    public void run()
-    {
-      updateActions(this);
-      if (isChecked())
-      {
-        getTreeViewer().resetFilters();
-        getTreeViewer().addFilter(filter);
-      }
-      else
-      {
-        getTreeViewer().removeFilter(filter);
-      }
-    }
-  }
-  class ReferenceFilter extends ViewerFilter // Dummy filter
-  {
-    public ReferenceFilter(String elementTag)
-    {
-      this.elementTag = elementTag;
-    }
-    protected String elementTag;
-
-    public boolean select(Viewer viewer, Object parentElement, Object element)
-    {
-      return true;
-    }
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDEditor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDEditor.java
deleted file mode 100644
index 2235ff5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDEditor.java
+++ /dev/null
@@ -1,1148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal;
-
-import java.util.ArrayList;
-import java.util.EventObject;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.emf.common.command.BasicCommandStack;
-import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.common.command.CommandStackListener;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-//import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.editors.text.JavaFileEditorInput;
-import org.eclipse.ui.views.properties.PropertySheet;
-import org.eclipse.wst.common.ui.properties.ITabbedPropertySheetPageContributor;
-import org.eclipse.wst.sse.core.INodeAdapter;
-import org.eclipse.wst.sse.core.INodeNotifier;
-import org.eclipse.wst.sse.core.IStructuredModel;
-import org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.eclipse.wst.sse.core.undo.IStructuredTextUndoManager;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.internal.document.XMLModelImpl;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDGraphViewer;
-import org.eclipse.wst.xsd.ui.internal.util.OpenOnSelectionHelper;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDPackage;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.impl.XSDSchemaImpl;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.ProcessingInstruction;
-
-// public class XSDEditor extends StructuredTextMultiPageEditorPart
-public class XSDEditor extends XSDMultiPageEditorPart implements ITabbedPropertySheetPageContributor
-{
-  protected XSDTextEditor textEditor;
-  IFile resourceFile;
-  XSDSelectionManager xsdSelectionManager;
-
-  private IStructuredModel result;
-  private XMLModelImpl model;
-
-  public XSDEditor()
-  {
-    super();
-    xsdSelectionManager = new XSDSelectionManager();
-  }
-
-  InternalPartListener partListener = new InternalPartListener(this);
-  
-  // show outline view - defect 266116
-  public void init(IEditorSite site, IEditorInput editorInput) throws PartInitException
-  {
-    super.init(site, editorInput);
-    
-    IWorkbenchWindow dw=PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-    IWorkbenchPage page=dw.getActivePage();
-    getSite().getPage().addPartListener(partListener);
-    try
-    {
-      if (page != null)
-      {
-//      page.showView("org.eclipse.ui.views.ContentOutline");
-        page.showView("org.eclipse.ui.views.PropertySheet");
-      }
-    } catch (PartInitException e) 
-    {
-//       e.printStackTrace();
-    }      
-   }
-  
-  // For team support
-  //  protected PropertyDirtyChangeListener propertyChangeListener;
-
-  /**
-   * Creates the pages of this multi-page editor.
-   * <p>
-   * Subclasses of <code>MultiPageEditor</code> must implement this method.
-   * </p>
-   */
-  protected void createPages()
-  {
-    try
-    {
-      if (!loadFile())
-        return;
-
-      // source page MUST be created before design page, now
-      createSourcePage();
-
-      addSourcePage();
-      buildXSDModel();
-
-      // comment this line out to hide the graph page 
-      // 
-      createAndAddGraphPage();
-
-      int pageIndexToShow = getDefaultPageTypeIndex();
-      setActivePage(pageIndexToShow);
-      
-      addCommandStackListener();
-      
-      XSDEditorPlugin.getPlugin().getPreferenceStore().addPropertyChangeListener(preferenceStoreListener);
-    }
-    catch (PartInitException exception)
-    {
-      throw new SourceEditingRuntimeException(SSECorePlugin.getResourceString("An_error_has_occurred_when1_ERROR_")); //$NON-NLS-1$ = "An error has occurred when initializing the input for the the editor's source page."
-    }
-  }
-
-  public String[] getPropertyCategories()
-  {
-    return new String[] { "general", "namespace", "other", "attributes", "documentation", "facets" }; //$NON-NLS-1$
-  }
-
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySheetPageContributor#getContributorId()
-	 */ 
-  public String getContributorId()
-	{
-    return "org.eclipse.wst.xsd.ui.internal.XSDEditor";
-    //return getSite().getId();
-  }
-
-  protected CommandStackListener commandStackListener;
-  protected void addCommandStackListener()
-  {
-    if (commandStackListener == null)
-    {
-      IStructuredTextUndoManager undoManager = getModel().getUndoManager();
-        commandStackListener = new CommandStackListener()
-        {
-          /**
-           * @see org.eclipse.emf.common.command.CommandStackListener#commandStackChanged(EventObject)
-           */
-          public void commandStackChanged(EventObject event)
-          {
-            Object obj = event.getSource();
-            if (obj instanceof BasicCommandStack)
-            {
-              BasicCommandStack stack = (BasicCommandStack) obj;
-              Command recentCommand = stack.getMostRecentCommand();
-              Command redoCommand = stack.getRedoCommand();
-              Command undoCommand = stack.getUndoCommand();
-              if (recentCommand == redoCommand)
-              {
-                // there must have been an undo reset info tasks 
-                resetInformationTasks();
-              }
-            }
-          }
-        };
-
-//TODO WTP Port        undoManager.getCommandStack().addCommandStackListener(commandStackListener);
-      
-    }
-  } 
-
-  protected void pageChange(int arg)
-  {
-    super.pageChange(arg);
-  }
-
-  protected void removeCommandStackListener()
-  {
-    if (commandStackListener != null)
-    {
-      IStructuredTextUndoManager undoManager = getModel().getUndoManager();
-//TODO WTP Port      undoManager.getCommandStack().removeCommandStackListener(commandStackListener);
-    }
-  }
-
-  // This is from the IValidateEditEditor interface
-/*  public void undoChange()
-  {
-    StructuredTextUndoManager undoManager = textEditor.getModel().getUndoManager();   
-    undoManager.undo();
-    // Make the editor clean
-    textEditor.getModel().setDirtyState(false);
-  } */
-
-  private class PreferenceStoreListener implements IPropertyChangeListener
-  {
-    /**
-     * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(PropertyChangeEvent)
-     */
-    public void propertyChange(PropertyChangeEvent event)
-    {
-    }
-  }
-
-  protected IPropertyChangeListener preferenceStoreListener = new PreferenceStoreListener();
-
-  protected int getDefaultPageTypeIndex()
-  {
-    int pageIndex = sourcePageIndex;
-    
-    if (XSDEditorPlugin.getPlugin().getDefaultPage().equals(XSDEditorPlugin.GRAPH_PAGE))
-    {
-      if (graphPageIndex != -1)
-        pageIndex = graphPageIndex;
-    }
-    
-    return pageIndex;
-  }
-      
-	int currentPage = -1;      
-	public String getCurrentPageType()
-	{
-		// should update pref. for valid pages
-		if (getActivePage() != -1)
-		{
-			currentPage = getActivePage();
-		}
-		if (currentPage == graphPageIndex)
-		{
-			return XSDEditorPlugin.GRAPH_PAGE;
-		}
-		else
-		{
-			return XSDEditorPlugin.SOURCE_PAGE;
-    }
-	}
-	
-	public Object getActivePart()
-  {
-		return getSite().getWorkbenchWindow().getActivePage().getActivePart();	
-	}
-
-  public void dispose()
-  {
-//    propertyChangeListener.dispose();
-    removeCommandStackListener();
-    
-    XSDEditorPlugin.getPlugin().setDefaultPage(getCurrentPageType());
-    XSDEditorPlugin.getPlugin().getPreferenceStore().removePropertyChangeListener(preferenceStoreListener);
-    
-    getSite().getPage().removePartListener(partListener);
-
-    super.dispose();
-  }
-
-  protected boolean loadFile()
-  {
-    Object input = getEditorInput();
-
-    if (input instanceof IFileEditorInput)
-    {
-      resourceFile = ((IFileEditorInput) input).getFile();
-    }
-    else if (input instanceof JavaFileEditorInput)
-    {
-      IPath path = ((JavaFileEditorInput)input).getPath(input);
-      String ext = path.getFileExtension();
-      if (ext != null && ext.equals("xsd"))
-      {
-        return true;
-      }
-      return false;
-    }
-    else
-    {
-//      XSDEditorPlugin.getPlugin().getMsgLogger().write("###Error...XSDEditor::createPages() .. Can't find input..Exiting..");
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * Method openOnGlobalReference.
-   * The comp argument is a resolved xsd schema object from another file.  This is created and called from another
-   * schema model to allow F3 navigation to open a new editor and choose the referenced object within that editor context
-   * @param comp
-   */
-  public void openOnGlobalReference(XSDConcreteComponent comp)
-  {
-    openOnSelectionHelper.openOnGlobalReference(comp);
-  }
-  
-  protected OpenOnSelectionHelper openOnSelectionHelper;
-
-  public OpenOnSelectionHelper getOpenOnSelectionHelper()
-  {
-    return openOnSelectionHelper;
-  }
-  
-  /**
-   * @see org.eclipse.wst.xsd.ui.internal.XSDMultiPageEditorPart#createTextEditor()
-   */
-  protected StructuredTextEditor createTextEditor()
-  {
-    return new XSDTextEditor(this);
-  }
-
-  /*
-   * @see StructuredTextMultiPageEditorPart#createSourcePage()
-   */
-  protected void createSourcePage() throws PartInitException
-  {
-    super.createSourcePage();
-    
-    textEditor = (XSDTextEditor) getTextEditor();
-
-		openOnSelectionHelper = new OpenOnSelectionHelper(textEditor);
-  }
- 
-  int sourcePageIndex = -1;
-  /**
-   * Adds the source page of the multi-page editor.
-   */
-  protected void addSourcePage() throws PartInitException {
-  
-    sourcePageIndex = addPage(textEditor, getEditorInput());
-    setPageText(sourcePageIndex, XSDEditorPlugin.getXSDString("_UI_TAB_SOURCE"));
-
-    // defect 223043 ... do textEditor.setModel() here instead of in createSourcePage()
-		// the update's critical, to get viewer selection manager and highlighting to work
-    IEditorInput editorInput = getEditorInput();
-    if (editorInput instanceof IFileEditorInput)
-    {
-      textEditor.setModel((IFileEditorInput)getEditorInput());
-    }
-    else
-    {
-//      textEditor.setModel(editorInput);
-    }
-    textEditor.update();
-		firePropertyChange(PROP_TITLE);
-  }                       
-
-  int graphPageIndex = -1;            
-  XSDGraphViewer graphViewer;
-
-  /**
-   * Creates the graph page and adds it to the multi-page editor.
-   */
-  protected void createAndAddGraphPage() throws PartInitException 
-  {                         
-    graphViewer = new XSDGraphViewer(this);                              
-    graphViewer.setSchema(xsdSchema);
-    Control graphControl = graphViewer.createControl(getContainer());
-    graphPageIndex = addPage(graphControl);
-    setPageText(graphPageIndex, XSDEditorPlugin.getXSDString("_UI_TAB_GRAPH"));
-
-    // graphViewer.setViewerSelectionManager(textEditor.getViewerSelectionManager());    
-    graphViewer.setSelectionManager(getSelectionManager());
-    
-    // this forces the editor to initially select the top level schema object
-    //
-    getSelectionManager().setSelection(new StructuredSelection(textEditor.getXSDSchema()));    
-  }
-
-  /*
-   * @see IAdaptable#getAdapter(Class)
-   */
-  public Object getAdapter(Class key)
-  {
-    Object result = null;
-    if (key == ISelectionProvider.class)
-    {
-      result = xsdSelectionManager;
-    }
-    else 
-    {
-      result = textEditor.getAdapter(key);
-    }
-    return result;
-  }
-
-  public XSDSelectionManager getSelectionManager()
-  {
-    return xsdSelectionManager;
-  }
- 
-  /**
-   * @see org.eclipse.wst.xsd.ui.internal.XSDMultiPageEditorPart#doSaveAs()
-   */
-  public void doSaveAs()
-  {
-    super.doSaveAs();
-  }
-
-  public void doSave(org.eclipse.core.runtime.IProgressMonitor monitor)
-  {
-    super.doSave(monitor);
-  }
-
-  protected XSDSchema xsdSchema;
-  protected ResourceSet resourceSet;
-
-  public void reparseSchema()
-  {
-    Document document  = ((XMLModel)getModel()).getDocument();
-    createSchema(document.getDocumentElement());
-  }
-  
-  public XSDSchema createSchema(Node node)
-  {
-    try
-    {
-      EPackage.Registry reg = EPackage.Registry.INSTANCE; 
-      XSDPackage xsdPackage = (XSDPackage)reg.getEPackage(XSDPackage.eNS_URI);
-      xsdSchema = xsdPackage.getXSDFactory().createXSDSchema();
-      
-      // Force the loading of the "meta" schema for schema instance instance.
-      //
-      String schemaForSchemaNamespace = node.getNamespaceURI();
-      XSDSchemaImpl.getSchemaForSchema(schemaForSchemaNamespace);
-
-      resourceSet = XSDSchemaImpl.createResourceSet();
-      resourceSet.setURIConverter(new XSDURIConverter(resourceFile));
-
-      String pathName = "";
-      // If the resource is in the workspace....
-      // otherwise the user is trying to open an external file
-      if (resourceFile != null)
-      {
-        pathName = resourceFile.getFullPath().toString();
-        Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(pathName), true);
-//      resource.getContents().add(xsdSchema);
-        resourceSet.getResources().add(resource);
-      
-        Object obj = resource.getContents().get(0);
-        if (obj instanceof XSDSchema)
-        {
-          xsdSchema = (XSDSchema)obj;
-        }
-
-//      URIConverter uriConverter = resourceSet.getURIConverter();
-//      resourceSet.setURIConverter(new XSDURIConverter(resourceFile));
- 
-        xsdSchema.setElement((Element)node);
-        resource.setModified(false);
-      }
-      else
-      {
-        xsdSchema.setElement((Element)node);
-      }
-    }
-    catch (StackOverflowError e)
-    {
-//      XSDEditorPlugin.getPlugin().getMsgLogger().write("Stack overflow encountered.  Possibly an invalid recursive circular schema");
-    }
-    catch (Exception ex)
-    {
-//      ex.printStackTrace();
-    }
-    
-    return xsdSchema;
-  }
-
-  class XSDDocumentAdapter extends DocumentAdapter
-  {
-  	INodeNotifier currentNotifier;
-  	int currentEventType;
-  	
-		public XSDDocumentAdapter(Document document)
-		{
-			super(document);
-		}
-
-		boolean handlingNotifyChanged = false;
-
-		public void notifyChanged(INodeNotifier notifier, int eventType, Object feature, Object oldValue, Object newValue, int index)
-		{
-			if (eventType == INodeNotifier.REMOVE) // don't handle remove events
-			{
-				return;
-			}
-
-			if (!handlingNotifyChanged)
-			{
-				handlingNotifyChanged = true;
-				try
-				{
-					// delay handle events only in the source view
-					if (getCurrentPageType() == XSDEditorPlugin.SOURCE_PAGE &&
-							!(getActivePart() instanceof PropertySheet) && 
-							!(getActivePart() instanceof org.eclipse.ui.views.contentoutline.ContentOutline)) {
-						startDelayedEvent(notifier, eventType, feature, oldValue, newValue, index);
-				    //handleNotifyChange(notifier, eventType, feature, oldValue, newValue, index);
-					}
-					else // all other views, just handle the events right away
-					{
-						handleNotifyChange(notifier, eventType, feature, oldValue, newValue, index);
-					}
-				}
-				catch (Exception e)
-				{
-//					XSDEditorPlugin.getPlugin().getMsgLogger().write(e);
-				}
-				handlingNotifyChanged = false;
-			}
-		}
-
-		public void handleNotifyChange(INodeNotifier notifier, int eventType, Object feature, Object oldValue, Object newValue, int index)
-		{
-//			System.out.println(eventType + " : HandleNotifyChange " + notifier.hashCode() + " notifier " + notifier);
-			switch (eventType)
-			{
-				case INodeNotifier.ADD:
-				{
-					if (newValue instanceof Element)
-					{
-						adapt((Element)newValue);
-//	Add			updateParentForDerivation(node, listener);
-					}
-					break;
-				}
-				case INodeNotifier.CHANGE:
-				{
-					Node node = (Node)notifier;
-			    XSDConcreteComponent listener = xsdSchema.getCorrespondingComponent(node);
-  		    listener.elementAttributesChanged((Element)node);
-    	    listener.elementChanged((Element)node);
-    	    break;
-				}
-				case INodeNotifier.STRUCTURE_CHANGED:
-				case INodeNotifier.CONTENT_CHANGED:
-				{
-					Node node = (Node)notifier;
-					XSDConcreteComponent listener = xsdSchema.getCorrespondingComponent(node);
-					if (node.getNodeType() == Node.ELEMENT_NODE)
-					{
-						listener.elementContentsChanged((Element)node);
-						break;
-					}
-					else if (node.getNodeType() == Node.DOCUMENT_NODE)
-					{
-						Element docElement = ((Document)node).getDocumentElement();
-						// Need to add check if doc element is being edited in the source
-						if (docElement != null)
-					  {
-						  String prefix = docElement.getPrefix();
-						  String xmlnsString = prefix == null? "xmlns" : "xmlns:" + prefix;
-						  Attr attr = docElement.getAttributeNode(xmlnsString);
-						  boolean doParse = false;
-						  if (attr != null)
-						  {
-						    if (attr.getValue().equals("http://www.w3.org/2001/XMLSchema") && docElement.getLocalName().equals("schema"))
-						    {
-						      // We have a viable schema so parse it
-						      doParse = true;
-						    }
-						  }
-						  
-							if (doParse)
-							{
-					      adapt(docElement);
- 						    xsdSchema.setElement(docElement);
-							}
-					  }
-					}
-					break;
-				}
-			}
-		}
-
-		protected DelayedEvent delayedTask;
-		protected void startDelayedEvent(INodeNotifier notifier, int eventType, Object feature, Object oldValue, Object newValue, int index)
-		{
-//			System.out.println("start delayed event");
-      // check if there is already a delayed task for the same notifier and eventType
-//			if (delayedTask != null)
-//			{
-//  			Notifier aNotifier = delayedTask.getNotifier();
-//	  		int anEventType = delayedTask.getEventType();
-//  			if (notifier == aNotifier && anEventType == eventType)
-//			  {
-//				  // same event, just different data, delay new event
-//				  delayedTask.setCancel(true);
-//			  }
-//			}
-
-			delayedTask = new DelayedEvent();
-
-			delayedTask.setNotifier(notifier);
-			delayedTask.setEventType(eventType);
-			delayedTask.setFeature(feature);
-			delayedTask.setOldValue(oldValue);
-			delayedTask.setNewValue(newValue);
-			delayedTask.setIndex(index);
-
-			Display.getDefault().timerExec(400,delayedTask);
-		}
-
-		class DelayedEvent implements Runnable
-		{
-		  INodeNotifier notifier;
-			int eventType;
-			Object feature;
-			Object oldValue;
-			Object newValue;
-			int index;
-			boolean cancelEvent = false;
-
-			/*
-			 * @see Runnable#run()
-			 */
-			public void run()
-			{
-				if (!cancelEvent)
-				{
-				  handleNotifyChange(notifier, eventType, feature, oldValue, newValue, index);
-				  if (delayedTask == this)
-				  {
-				  	delayedTask = null;
-				  }
-				}
-			}
-			
-			public void setCancel(boolean flag)
-			{
-				cancelEvent = flag;
-			}
-
-			public void setNotifier(INodeNotifier notifier)
-			{
-				this.notifier = notifier;
-			}
-		
-			public void setEventType(int eventType)
-			{
-				this.eventType = eventType;
-			}
-
-			public void setFeature(Object feature)
-			{
-				this.feature = feature;
-			}
-
-			public void setOldValue(Object oldValue)
-			{
-				this.oldValue = oldValue;			
-			}
-
-			public void setNewValue(Object newValue)
-			{
-				this.newValue = newValue;
-			}
-
-			public void setIndex(int index)
-			{
-				this.index = index;			
-			}
-
-			public INodeNotifier getNotifier()
-			{
-				return notifier;
-			}
-
-			public int getEventType()
-			{
-				return eventType;
-			}
-
-			public Object getNewValue()
-			{
-				return newValue;
-			}
-
-			public Object getOldValue()
-			{
-				return oldValue;
-			}
-
-		}
-  }
-
-  abstract class DocumentAdapter implements INodeAdapter
-  {
-    public DocumentAdapter(Document document)
-    {
-      ((INodeNotifier)document).addAdapter(this);
-      adapt(document.getDocumentElement());
-    }
-
-    public void adapt(Element element)
-    {
-      if (((INodeNotifier)element).getExistingAdapter(this) == null)
-      {
-
-        ((INodeNotifier)element).addAdapter(this);
-
-        for (Node child = element.getFirstChild(); child != null; child = child.getNextSibling())
-        {
-          if (child.getNodeType() == Node.ELEMENT_NODE)
-          {
-            adapt((Element)child);
-          }
-        }
-      }
-    }
-
-    public boolean isAdapterForType(Object type)
-    {
-      return type == this;
-    }
-
-    abstract public void notifyChanged
-      (INodeNotifier notifier, int eventType, Object feature, Object oldValue, Object newValue, int index);
-  }
-
-
-  /**
-   * Method createDefaultSchemaNode.  Should only be called to insert a schema node into an empty document
-   */
-  public void createDefaultSchemaNode()
-  {
-    Document document  = ((XMLModel)getModel()).getDocument();
-    if (document.getChildNodes().getLength() == 0)
-    {
-      // if it is a completely empty file, then add the encoding and version processing instruction
-//TODO  String encoding = EncodingHelper.getDefaultEncodingTag();
-      String encoding = "UTF-8";
-      ProcessingInstruction instr = document.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"" + encoding + "\"");
-      document.appendChild(instr);
-    }
-
-    // Create a default schema tag now
-
-    // String defaultPrefixForTargetNamespace = getFileResource().getProjectRelativePath().removeFileExtension().lastSegment();
-    String defaultPrefixForTargetNamespace = "tns";
-    String prefixForSchemaNamespace = "";
-    String schemaNamespaceAttribute = "xmlns";
-    if (XSDEditorPlugin.getPlugin().isQualifyXMLSchemaLanguage())
-    {
-      // Added this if check before disallowing blank prefixes in the preferences...
-      // Can take this out.  See also NewXSDWizard
-      if (XSDEditorPlugin.getPlugin().getXMLSchemaPrefix().trim().length() > 0)
-      {
-        prefixForSchemaNamespace = XSDEditorPlugin.getPlugin().getXMLSchemaPrefix() + ":";
-        schemaNamespaceAttribute += ":" + XSDEditorPlugin.getPlugin().getXMLSchemaPrefix();
-      }
-    }
-    
-    document.appendChild(document.createTextNode("\n"));
-    Element element = document.createElement(prefixForSchemaNamespace + XSDConstants.SCHEMA_ELEMENT_TAG);
-    
-    element.setAttribute(schemaNamespaceAttribute,"http://www.w3.org/2001/XMLSchema");
-    
-    String defaultTargetURI = XSDEditorPlugin.getPlugin().getXMLSchemaTargetNamespace();
-    element.setAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE, defaultTargetURI);
-    element.setAttribute("xmlns:" + defaultPrefixForTargetNamespace, defaultTargetURI);
-    
-    document.appendChild(element);
-  }
-  
-  public void buildXSDModel()
-  {
-    try
-    {
-      Document document  = ((XMLModel)getModel()).getDocument();
-      if (document.getChildNodes().getLength() == 0)
-      {
-        // this is an empty document.  Create a default schema tag now
-        createDefaultSchemaNode();
-      }
-
-      createSchema(document.getDocumentElement());
-
-			XSDDocumentAdapter documentAdapter =
-				new XSDDocumentAdapter(((XMLModel)getModel()).getDocument());
-    }
-    catch (Exception e)
-    {
-//      XSDEditorPlugin.getPlugin().getMsgLogger().write("Failed to create Model");
-//      XSDEditorPlugin.getPlugin().getMsgLogger().write(e);
-//      e.printStackTrace();
-    }
-
-
-
-//      XSDResourceFactoryImpl.validate(xsdSchema, input.getFile().getContents(true));
-  }
-
-//  private void updateParentForDerivation(Node node, XSDConcreteComponent correspondingComponent)
-//  {
-//    if (XSDDOMHelper.inputEquals(node, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false)||
-//        XSDDOMHelper.inputEquals(node,XSDConstants.COMPLEXCONTENT_ELEMENT_TAG,false))
-//    {
-//      XSDComplexTypeDefinition xsdComplexTypeDefinition =
-//        correspondingComponent.getContainer() instanceof XSDComplexTypeDefinition ? 
-//          (XSDComplexTypeDefinition)correspondingComponent.getContainer() :
-//          null;
-//      if (xsdComplexTypeDefinition != null)
-//      {
-//        xsdComplexTypeDefinition.elementContentsChanged(xsdComplexTypeDefinition.getElement());
-//      }
-//    }
-//  }    
-
-//  private void checkUnion(Node node, XSDConcreteComponent correspondingComponent, int i)
-//  {
-//    // bug 219967 - union changes to restriction
-//    if (XSDDOMHelper.inputEquals(node, XSDConstants.UNION_ELEMENT_TAG, false))
-//    {
-////      XSDConcreteComponent comp = correspondingComponent.getContainer();
-////      if (comp != null)
-////      {
-////        switch (i)
-////        {
-////          case 1:
-////            comp.elementAttributesChanged((Element)node);
-////            break;
-////          case 4:
-////            comp.elementContentsChanged((Element)node);
-////            break;
-////        }
-////      }
-//    }
-//    else
-//    {
-//      switch (i)
-//      {
-//        case 1:
-//        case 4:
-//          // do both types of updates since sometimes the attributes have changed indirectly
-//          // because the content has changed
-//          correspondingComponent.elementAttributesChanged((Element)node);
-//          correspondingComponent.elementContentsChanged((Element)node);
-//          break;
-//      }
-//    }
-//  }
-  
-//  private void updateMap(XSDConcreteComponent listener, Element documentElement)
-//  {
-//    boolean handleChangeInSchema = false;
-//    if (listener instanceof XSDSchema)
-//    {
-//      if (!handleChangeInSchema)
-//      {
-//        handleChangeInSchema = true;
-//        XSDSchema xsdSchema = (XSDSchema)listener;
-//        java.util.Map prefixToNameSpaceMap = xsdSchema.getQNamePrefixToNamespaceMap();
-//        String targetNamespace = xsdSchema.getTargetNamespace();
-////        System.out.println("targetNamespace = " + targetNamespace);
-//
-//        NamedNodeMap attributes = documentElement.getAttributes();
-//        int length = attributes.getLength();
-//        
-//        ArrayList keyList = new ArrayList();
-//        keyList.addAll(prefixToNameSpaceMap.keySet());
-//        
-//        String key;
-//
-//
-//        // update the map when the prefix is changed
-//        CHECK: for (int i = 0; i < length; i++)
-//        {
-//          Attr attr = (Attr)attributes.item(i);
-//          String name = attr.getNodeName();
-//          
-//          if (isValidXMLNSAttribute(name))
-////          if (name.startsWith("xmlns"))
-//          {
-//            String value = attr.getNodeValue();
-//            if (value == null)
-//            {
-//              break CHECK;
-//            }
-//            int index = name.indexOf(":");
-//            key  = index == -1 ? null : name.substring(index + 1);
-////            System.out.println(" Attribute key is " + key + " , value = " + value);
-////            System.out.println("   map.get(key) = " + prefixToNameSpaceMap.get(key));
-//            if (!prefixToNameSpaceMap.containsKey(key))
-//            {
-//              for (Iterator iter = keyList.iterator(); iter.hasNext(); )
-//              {
-//                String aPrefix = (String)iter.next();
-////                System.out.println("    --> A Map Prefix is " + aPrefix);
-////                System.out.println("    --> model map.get(prefix) " + prefixToNameSpaceMap.get(aPrefix));
-//                if (prefixToNameSpaceMap.get(aPrefix) != null)
-//                {
-//                  if (prefixToNameSpaceMap.get(aPrefix).equals(value))
-//                  {
-//                    prefixToNameSpaceMap.remove(aPrefix);
-//                  }
-//                }
-//              }
-//            }
-//            else if (prefixToNameSpaceMap.containsKey(key))
-//            {
-//              if (prefixToNameSpaceMap.get(key) != null)
-//              {
-//                if (!prefixToNameSpaceMap.get(key).equals(value))
-//                {
-//                  Set entrySet = prefixToNameSpaceMap.entrySet();
-//                  for (Iterator iter = entrySet.iterator(); iter.hasNext(); )
-//                  {
-//                    Map.Entry aMapEntry = (Map.Entry)iter.next();
-//                    if (  (key != null && (aMapEntry.getKey() != null && aMapEntry.getKey().equals(key)))
-//                           || (key == null && (aMapEntry.getKey() == null)))
-//                    {
-//                      aMapEntry.setValue(value);
-//                    }
-//                  }
-//                }
-//              }
-//              else
-//              {
-//                Set entrySet = prefixToNameSpaceMap.entrySet();
-//                for (Iterator iter = entrySet.iterator(); iter.hasNext(); )
-//                {
-//                  Map.Entry aMapEntry = (Map.Entry)iter.next();
-//                  if (  (key != null && (aMapEntry.getKey() != null && aMapEntry.getKey().equals(key)))
-//                         || (key == null && (aMapEntry.getKey() == null)))
-//                  {
-//                    aMapEntry.setValue(value);
-//                  }
-//                }
-//              }
-//            }
-//          }
-//        }
-//        
-//        boolean modelMapPrefixFound = false;
-//        for (Iterator iter = keyList.iterator(); iter.hasNext(); )
-//        {
-//          String aPrefix = (String)iter.next();
-//          modelMapPrefixFound = false;
-//          attributes = documentElement.getAttributes();
-//          length = attributes.getLength();
-//
-//          for (int i = 0; i < length; i++)
-//          {
-//            Attr attr = (Attr)attributes.item(i);
-//            if (attr != null)
-//            {
-//              String name = attr.getNodeName();
-//            
-//              // if (name.startsWith("xmlns"))
-//              if (isValidXMLNSAttribute(name))
-//              {
-//                String value = attr.getNodeValue();
-//                int index = name.indexOf(":");
-//                key  = index == -1 ? null : name.substring(index + 1);
-//                if (aPrefix == null && key == null)
-//                {
-//                  modelMapPrefixFound = true;
-//                }
-//                else if (aPrefix != null && (aPrefix.equals(key)))
-//                {
-//                  modelMapPrefixFound = true;
-//                  if ((prefixToNameSpaceMap.get(key) != null && !prefixToNameSpaceMap.get(key).equals(value))
-//                       || (prefixToNameSpaceMap.get(key) == null && value != null))
-//                  {
-//                    if (value != null && value.length() > 0)
-//                    {
-//                      prefixToNameSpaceMap.put(aPrefix, value);
-//                    }
-//                  }
-//                }
-//                else if (key != null && (key.equals(aPrefix)))
-//                {
-//                  modelMapPrefixFound = true;
-//                }
-//              }
-//            }
-//          }
-//          if (!modelMapPrefixFound)
-//          {
-//            prefixToNameSpaceMap.remove(aPrefix);
-//          }
-//        }
-//       
-//        // to ensure map is recreated
-////        XSDSchemaHelper.updateElement(xsdSchema);        
-////        reparseSchema();
-//
-//        handleChangeInSchema = false;
-//
-////        System.out.println("XSDeditor Map is " + prefixToNameSpaceMap.values());
-////        System.out.println("XSDeditor Map keys are " + prefixToNameSpaceMap.keySet());
-//        
-//      }
-//    }
-//  }
-
-  /**
-   * Returns the xsdSchema.
-   * @return XSDSchema
-   */
-  public XSDSchema getXSDSchema()
-  {
-    return xsdSchema;
-  }
-
-
-  /**
-   * Returns the resourceFile.
-   * @return IFile
-   */
-  public IFile getFileResource()
-  {
-    return resourceFile;
-  }
-
-  /**
-   * Get the IDocument from the text viewer
-   */
-  public IDocument getEditorIDocument()
-  {
-    IDocument document = textEditor.getTextViewer().getDocument();
-    return document;
-  }
-
-  /**
-   * Create ref integrity tasks in task list
-   */
-  public void createTasksInTaskList(ArrayList messages)
-  {
-//    DisplayErrorInTaskList tasks = new DisplayErrorInTaskList(getEditorIDocument(), getFileResource(), messages);
-//    tasks.run();
-  }
-
-  public void resetInformationTasks()
-  {
-// DisplayErrorInTaskList.removeInfoMarkers(getFileResource());
-  }
-  
-  public XSDGraphViewer getGraphViewer()
-  {
-    return graphViewer;
-  }
-
-//  /**
-//   * @see org.eclipse.ui.part.MultiPageEditorPart#handlePropertyChange(int)
-//   */
-//  protected void handlePropertyChange(int propertyId)
-//  {
-//    super.handlePropertyChange(propertyId);
-//    
-//    if (propertyId == IEditorPart.PROP_INPUT)
-//    {
-//      setInput(textEditor.getEditorInput());
-//      resourceFile = ((IFileEditorInput) getEditorInput()).getFile();
-//      setTitle(resourceFile.getName());
-////      outline.setModel(getModel());
-//
-//      // even though we've set title etc., several times already!
-//      // only now is all prepared for it.
-//      firePropertyChange(IWorkbenchPart.PROP_TITLE);
-//      firePropertyChange(PROP_DIRTY);
-//    }
-//    else if (propertyId == IEditorPart.PROP_TITLE)
-//    {
-//      if (getEditorInput() != textEditor.getEditorInput())
-//      {
-//        setInput(textEditor.getEditorInput());
-//      }
-//    }    
-//  }
-
-  public IEditorPart getActiveEditorPage()
-  {
-    return getActiveEditor();
-  }
-  
-  public XSDTextEditor getXSDTextEditor()
-	{
-    return textEditor;
-  }
-
-	class InternalPartListener implements IPartListener
-	{
-	  XSDEditor editor;
-	  public InternalPartListener(XSDEditor editor)
-	  {
-	    this.editor = editor; 
-	  }
-	  
-		public void partActivated(IWorkbenchPart part)
-		{
-			if (part == editor)
-			{
-        ISelection selection = getSelectionManager().getSelection();
-        if (selection != null)
-        {
-          if (getCurrentPageType().equals(XSDEditorPlugin.GRAPH_PAGE))
-          {
-            getSelectionManager().selectionChanged(new SelectionChangedEvent(editor.getGraphViewer().getComponentViewer(), selection));
-          }
-          else if (getCurrentPageType().equals(XSDEditorPlugin.SOURCE_PAGE))
-          {
-            getSelectionManager().setSelection(selection);
-          }
-        }
-			}
-		}
-
-		public void partBroughtToTop(IWorkbenchPart part)
-		{
-		}
-
-		public void partClosed(IWorkbenchPart part)
-		{
-		}
-
-   
-		public void partDeactivated(IWorkbenchPart part)
-		{
-		}
-
-		public void partOpened(IWorkbenchPart part)
-		{
-		}
-	}
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDEditorAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDEditorAdapter.java
deleted file mode 100644
index 7591376..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDEditorAdapter.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.text.IDocument;
-
-public interface XSDEditorAdapter
-{
-  public IFile getFileResource();
-
-  public IDocument getEditorIDocument();
-
-  public void createTasksInTaskList(ArrayList messages);
-
-  public void resetInformationTasks();
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDEditorContextIds.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDEditorContextIds.java
deleted file mode 100644
index 8f95f5c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDEditorContextIds.java
+++ /dev/null
@@ -1,460 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal;
-
-/**
- * Context help id constants.
- */
-public interface XSDEditorContextIds 
-{
-  public static final String PLUGIN_NAME = "org.eclipse.wst.xsd.ui.internal";
-
-  /* CONTEXT_IDs New XSD Wizard uses the WizardNewFileCreationPage from org.eclipse.ui.dialogs */
- 
-  /* CONTEXT_IDs for XSDEditor follow the xsdexxx context IDs */
-
-  /* CONTEXT_ID xsde0010 for XSD Editor Design View */
-  public static final String XSDE_SCHEMA_DESIGN_VIEW      = PLUGIN_NAME + ".xsde0010";
-  /* no CONTEXT_ID for File Name Text Edit (not editable) */
-  /* CONTEXT_ID xsde0020 for Version Text Edit */
-  public static final String XSDE_SCHEMA_VERSION          = PLUGIN_NAME + ".xsde0020";
-  /* CONTEXT_ID xsde0030 for Language Text Edit */
-  public static final String XSDE_SCHEMA_LANGUAGE         = PLUGIN_NAME + ".xsde0030";
-  /* CONTEXT_ID xsde0040 for Namespace Group */
-  public static final String XSDE_SCHEMA_NAMESPACE_GROUP  = PLUGIN_NAME + ".xsde0040";
-  /* CONTEXT_ID xsde0050 for Prefix Text Edit */
-  public static final String XSDE_SCHEMA_PREFIX           = PLUGIN_NAME + ".xsde0050";
-  /* CONTEXT_ID xsde0060 for Target namespace Text Edit */
-  public static final String XSDE_SCHEMA_TARGET_NAMESPACE = PLUGIN_NAME + ".xsde0060";
-  /* CONTEXT_ID xsde0070 for Apply Push Button */
-  public static final String XSDE_SCHEMA_APPLY            = PLUGIN_NAME + ".xsde0070";
-  /* CONTEXT_ID xsde0080 for Attribute form default Combo Box */
-  public static final String XSDE_SCHEMA_ATTRIBUTE        = PLUGIN_NAME + ".xsde0080";
-  /* CONTEXT_ID xsde0090 for Element form default Combo Box */
-  public static final String XSDE_SCHEMA_ELEMENT          = PLUGIN_NAME + ".xsde0090";
-  /* CONTEXT_ID xsde0100 for Block default Combo Box */
-  public static final String XSDE_SCHEMA_BLOCK            = PLUGIN_NAME + ".xsde0100";
-  /* CONTEXT_ID xsde0110 for Final Default Combo Box */
-  public static final String XSDE_SCHEMA_FINAL            = PLUGIN_NAME + ".xsde0110";
-
-  
-  /* CONTEXT_ID xsde0200 for Annotations Comment Group - only used generically */
-  /* CONTEXT_ID      - used in Documentation Design View */
-  /* CONTEXT_ID      - used in App Info Design View */
-  public static final String XSDE_ANNOTATION_COMMENT_GROUP = PLUGIN_NAME + ".xsde0200";
-  /* CONTEXT_ID xsde0210 for Annotations Comment Group - only used generically */
-  /* CONTEXT_ID      - used in Documentation Design View */
-  /* CONTEXT_ID      - used in App Info Design View */
-  public static final String XSDE_ANNOTATION_COMMENT       = PLUGIN_NAME + ".xsde0210";
-  
-  /* CONTEXT_ID xsde0300 for Documentation Design View */
-  public static final String XSDE_DOCUMENTATION_DESIGN_VIEW   = PLUGIN_NAME + ".xsde0300";
-  /* CONTEXT_ID xsde0310 for Source Text Edit */
-  public static final String XSDE_DOCUMENTATION_SOURCE        = PLUGIN_NAME + ".xsde0310";
-  /* CONTEXT_ID xsde0320 for Language Text Edit */
-  public static final String XSDE_DOCUMENTATION_LANGUAGE      = PLUGIN_NAME + ".xsde0320";
-  /* CONTEXT_ID Comment Group is from Annotations Window xsde0200 */
-  /* CONTEXT_ID Comment Multi-line Edit is from Annotations Window xsd0210 */
-
-  /* CONTEXT_ID xsde0400 for App Info Design View */
-  public static final String XSDE_APP_INFO_DESIGN_VIEW = PLUGIN_NAME + ".xsde0400";
-  /* CONTEXT_ID xsde0410 for App Info Source Text Edit */
-  public static final String XSDE_APP_INFO_SOURCE = PLUGIN_NAME + ".xsde0410";
-  /* CONTEXT_ID Comment Group is from Annotations Window xsde0200 */
-  /* CONTEXT_ID Comment Multi-line Edit is from Annotations Window xsd0210 */
-
-  /* CONTEXT_ID xsde0500 for Complex Type Design View */
-  public static final String XSDE_COMPLEX_DESIGN_VIEW = PLUGIN_NAME + ".xsde0500";
-  /* CONTEXT_ID xsde0510 for Name Text Edit */
-  public static final String XSDE_COMPLEX_NAME        = PLUGIN_NAME + ".xsde0510";
-  /* CONTEXT_ID xsde0520 for Abstract Combo Box */
-  public static final String XSDE_COMPLEX_ABSTRACT    = PLUGIN_NAME + ".xsde0520";
-  /* CONTEXT_ID xsde0530 for Mixed Combo Box */
-  public static final String XSDE_COMPLEX_MIXED       = PLUGIN_NAME + ".xsde0530";
-  /* CONTEXT_ID xsde0540 for Block Combo Box */
-  public static final String XSDE_COMPLEX_BLOCK       = PLUGIN_NAME + ".xsde0540";
-  /* CONTEXT_ID xsde0550 for Final Combo Box */
-  public static final String XSDE_COMPLEX_FINAL       = PLUGIN_NAME + ".xsde0550";
-
-  /* CONTEXT_ID xsde0600 for Simple Type Design View */
-  public static final String XSDE_SIMPLE_DESIGN_VIEW = PLUGIN_NAME + ".xsde0600";
-  /* CONTEXT_ID xsde0610 for Name Text Edit */
-  public static final String XSDE_SIMPLE_NAME        = PLUGIN_NAME + ".xsde0610";
-
-  /* CONTEXT_ID for Global Element and Element Design Views are the same */
-  /* CONTEXT_ID xsde0700 for Element Design View */
-  public static final String XSDE_ELEMENT_DESIGN_VIEW = PLUGIN_NAME + ".xsde0700";
-  /* CONTEXT_ID xsde0710 for Element Name Text Edit */
-  public static final String XSDE_ELEMENT_NAME         = PLUGIN_NAME + ".xsde0710";
-  /* CONTEXT_ID Type Information Group is from Type Helper xsde0900 */
-  /* CONTEXT_ID Built-in simple type Radio Button is from Type Helper xsde0920 */
-  /* CONTEXT_ID User-defined simple type Radio Button is from Type Helper xsde0930 */
-  /* CONTEXT_ID User-defined complex type Radio Button is from Type Helper xsde0940 */
-  /* CONTEXT_ID Type information Combo Box is from Type Helper xsde0950 */
-  /* CONTEXT_ID xsde0720 for Abstract Check Box */
-  public static final String XSDE_ELEMENT_ABSTRACT     = PLUGIN_NAME + ".xsde0720";
-  /* CONTEXT_ID xsde0730 for Nillable Check Box */
-  public static final String XSDE_ELEMENT_NILLABLE     = PLUGIN_NAME + ".xsde0730";
-  /* CONTEXT_ID xsde0740 for Value Group */
-  public static final String XSDE_ELEMENT_VALUE        = PLUGIN_NAME + ".xsde0740";
-  /* CONTEXT_ID xsde0750 for Fixed Radio Button */
-  public static final String XSDE_ELEMENT_FIXED        = PLUGIN_NAME + ".xsde0750";
-  /* CONTEXT_ID xsde0760 for Default Radio Button */
-  public static final String XSDE_ELEMENT_DEFAULT      = PLUGIN_NAME + ".xsde0760";
-  /* CONTEXT_ID xsde0770 for Value Group */
-  public static final String XSDE_ELEMENT_VALUE_GROUP  = PLUGIN_NAME + ".xsde0770";
-  /* CONTEXT_ID xsde0780 for Minimum Text Edit */
-  public static final String XSDE_ELEMENT_MINIMUM      = PLUGIN_NAME + ".xsde0780";
-  /* CONTEXT_ID xsde0790 for Maximum Text Edit */
-  public static final String XSDE_ELEMENT_MAXIMUM      = PLUGIN_NAME + ".xsde0790";
-  /* CONTEXT_ID xsde0800 for Block Combo Box */
-  public static final String XSDE_ELEMENT_BLOCK        = PLUGIN_NAME + ".xsde0800";
-  /* CONTEXT_ID xsde0810 for Final Combo Box */
-  public static final String XSDE_ELEMENT_FINAL        = PLUGIN_NAME + ".xsde0810";
-  /* CONTEXT_ID xsde0820 for Substitution Group Combo Box */
-  public static final String XSDE_ELEMENT_SUBSTITUTION = PLUGIN_NAME + ".xsde0820";
-  /* CONTEXT_ID xsde0830 for Form Qualification Combo Box */                    
-  public static final String XSDE_ELEMENT_FORM         = PLUGIN_NAME + ".xsde0830";
-
-  /* CONTEXT_ID xsde0900 for Type Helper Group - only used generically */
-  /* CONTEXT_ID      - used in Global Element Design View */
-  /* CONTEXT_ID      - used in Global Attribute Design View */
-  /* CONTEXT_ID      - used in Simple Content Design View */
-  /* CONTEXT_ID      - used in Restriction Design View */
-  /* CONTEXT_ID      - used in List Design View */
-  /* CONTEXT_ID      - used in Union Design View */
-  public static final String XSDE_TYPE_HELPER_GROUP    = PLUGIN_NAME + ".xsde0900";
-  /* CONTEXT_ID xsde0910 for None Radio Button - only used generically */
-  /* CONTEXT_ID      - used in Simple Content Design View */
-  /* CONTEXT_ID      - used in Restriction Design View */
-  /* CONTEXT_ID      - used in List Design View */
-  /* CONTEXT_ID      - used in Union Design View */
-  public static final String XSDE_TYPE_HELPER_NONE     = PLUGIN_NAME + ".xsde0910";
-  /* CONTEXT_ID xsde0920 for Built-in simple type Radio Button - only used generically */
-  /* CONTEXT_ID      - used in Global Element Design View */
-  /* CONTEXT_ID      - used in Global Attribute Design View */
-  /* CONTEXT_ID      - used in Simple Content Design View */
-  /* CONTEXT_ID      - used in Restriction Design View */
-  /* CONTEXT_ID      - used in List Design View */
-  /* CONTEXT_ID      - used in Union Design View */
-  public static final String XSDE_TYPE_HELPER_BUILT_IN = PLUGIN_NAME + ".xsde0920";
-  /* CONTEXT_ID xsde0930 for User-defined simple type Radio Button - only used generically */
-  /* CONTEXT_ID      - used in Global Element Design View */
-  /* CONTEXT_ID      - used in Global Attribute Design View */
-  /* CONTEXT_ID      - used in Simple Content Design View */
-  /* CONTEXT_ID      - used in Restriction Design View */
-  /* CONTEXT_ID      - used in List Design View */
-  /* CONTEXT_ID      - used in Union Design View */
-  public static final String XSDE_TYPE_HELPER_USER_DEFINED_SIMPLE = PLUGIN_NAME + ".xsde0930";
-  /* CONTEXT_ID xsde0940 for User-defined complex type Radio Button - only used generically */
-  /* CONTEXT_ID      - used in Global Element Design View */
-  public static final String XSDE_TYPE_HELPER_USER_DEFINED_COMPLEX = PLUGIN_NAME + ".xsde0940";
-  /* CONTEXT_ID xsde0950 for Type information Combo Box - only used generically */
-  /* CONTEXT_ID      - used in Global Element Design View */
-  /* CONTEXT_ID      - used in Global Attribute Design View */
-  /* CONTEXT_ID      - used in Simple Content Design View */
-  /* CONTEXT_ID      - used in Restriction Design View */
-  /* CONTEXT_ID      - used in List Design View */
-  public static final String XSDE_TYPE_HELPER_TYPE = PLUGIN_NAME + ".xsde0950";
-
-  /* CONTEXT_ID xsde1000 for Attribute Design View */
-  public static final String XSDE_ATTRIBUTE_DESIGN_VIEW = PLUGIN_NAME + ".xsde1000";
-  /* CONTEXT_ID xsde1010 for Attribute Name Text Edit */
-  public static final String XSDE_ATTRIBUTE_NAME        = PLUGIN_NAME + ".xsde1010";
-  /* CONTEXT_ID Type Information Group is from Type Helper xsde0900 */
-  /* CONTEXT_ID Built-in simple type Radio Button is from Type Helper xsde0920 */
-  /* CONTEXT_ID User-defined simple type Radio Button is from Type Helper xsde0930 */
-  /* CONTEXT_ID Type information Combo Box is from Type Helper xsde0950 */
-  /* CONTEXT_ID xsde1020 for Value Group */
-  public static final String XSDE_ATTRIBUTE_VALUE_GROUP = PLUGIN_NAME + ".xsde1020";
-  /* CONTEXT_ID xsde1030 for Fixed Radio Button */
-  public static final String XSDE_ATTRIBUTE_FIXED       = PLUGIN_NAME + ".xsde1030";
-  /* CONTEXT_ID xsde1040 for Default Radio Button */
-  public static final String XSDE_ATTRIBUTE_DEFAULT     = PLUGIN_NAME + ".xsde1040";
-  /* CONTEXT_ID xsde1050 for Value Text Edit */
-  public static final String XSDE_ATTRIBUTE_VALUE       = PLUGIN_NAME + ".xsde1050";
-  /* CONTEXT_ID xsde1060 for Usage Combo Box */
-  public static final String XSDE_ATTRIBUTE_USAGE       = PLUGIN_NAME + ".xsde1060";
-  /* CONTEXT_ID xsde1070 for Form qualificaiton Combo Box */
-  public static final String XSDE_ATTRIBUTE_FORM        = PLUGIN_NAME + ".xsde1070";
-
-  /* CONTEXT_ID xsde1100 for Element Ref Window Design View */
-  public static final String XSDE_ELEMENT_REF_DESIGN_VIEW = PLUGIN_NAME + ".xsde1100";
-  /* CONTEXT_ID xsde1110 for Reference Name Combo Box */
-  public static final String XSDE_ELEMENT_REF_REFERENCE   = PLUGIN_NAME + ".xsde1110";
-  /* CONTEXT_ID xsde1120 for Minimum Text Edit */
-  public static final String XSDE_ELEMENT_REF_MINIMUM     = PLUGIN_NAME + ".xsde1120";
-  /* CONTEXT_ID xsde1130 for Maximum Text Edit */
-  public static final String XSDE_ELEMENT_REF_MAXIMUM     = PLUGIN_NAME + ".xsde1130";
-  
-  /* CONTEXT_ID xsde1200 for Simple Content Design View - used generically */
-  /* CONTEXT_ID      - used in Simple Content Design View */ 
-  /* CONTEXT_ID      - used in Complex Content Design View */
-    public static final String XSDE_SIMPLE_CONTENT_DESIGN_VIEW = PLUGIN_NAME + ".xsde1200";
-  /* CONTEXT_ID Base Type Group is from Type Helper xsde0900 */
-  /* CONTEXT_ID None Radio Button is from Type Helper xsde0910 */
-  /* CONTEXT_ID Built-in simple type Radio Button is from Type Helper xsde0920 */
-  /* CONTEXT_ID User-defined simple type Radio Button is from Type Helper xsde0930 */
-  /* CONTEXT_ID Type information Combo Box is from Type Helper xsde0950 */
-  /* CONTEXT_ID xsde1210 for Derived by Combo Box - used generically */
-  /* CONTEXT_ID      - used in Simple Content Design View */ 
-  /* CONTEXT_ID      - used in Complex Content Design View */
-  public static final String XSDE_SIMPLE_CONTENT_DERIVED = PLUGIN_NAME + ".xsde1210";
-
-  /* CONTEXT_ID xsde1300 for Restriction Design View */
-  public static final String XSDE_RESTRICTION_DESIGN_VIEW  = PLUGIN_NAME + ".xsde1300";
-  /* CONTEXT_ID Base Type Group is from Type Helper xsde0900 */
-  /* CONTEXT_ID None Radio Button is from Type Helper xsde0910 */
-  /* CONTEXT_ID Built-in simple type Radio Button is from Type Helper xsde0920 */
-  /* CONTEXT_ID User-defined simple type Radio Button is from Type Helper xsde0930 */
-  /* CONTEXT_ID Type information Combo Box is from Type Helper xsde0950 */
-  /* CONTEXT_ID xsde1310 for Facets Group */
-  public static final String XSDE_RESTRICTION_FACETS_GROUP = PLUGIN_NAME + ".xsde1310";
-  /* CONTEXT_ID xsde1320 for Facets Table */
-  public static final String XSDE_RESTRICTION_FACETS       = PLUGIN_NAME + ".xsde1320";
-
-  /* CONTEXT_ID xsde1400 for List Design View */
-  public static final String XSDE_LIST_DESIGN_VIEW  = PLUGIN_NAME + ".xsde1400";
-  /* CONTEXT_ID Base Type Group is from Type Helper xsde0900 */
-  /* CONTEXT_ID None Radio Button is from Type Helper xsde0910 */
-  /* CONTEXT_ID Built-in simple type Radio Button is from Type Helper xsde0920 */
-  /* CONTEXT_ID User-defined simple type Radio Button is from Type Helper xsde0930 */
-  /* CONTEXT_ID Type information Combo Box is from Type Helper xsde0950 */
-
-  /* CONTEXT_ID xsde1500 for Attribute Group Design View */
-  public static final String XSDE_ATTRIBUTE_GROUP_DESIGN_VIEW = PLUGIN_NAME + ".xsde1500";
-  /* CONTEXT_ID xsde1510 for Name Text Edit */
-  public static final String XSDE_ATTRIBUTE_GROUP_NAME = PLUGIN_NAME + ".xsde1510";
-
-  /* CONTEXT_ID for Global Attribute and Attribute Design Views are the same */
-  /* CONTEXT_ID xsde1600 for Attribute Group Reference Design View */
-  public static final String XSDE_ATTRIBUTE_GROUP_REF_DESIGN_VIEW = PLUGIN_NAME + ".xsde1600";
-  /* CONTEXT_ID xsde1610 for Reference Name Combo Box */
-  public static final String XSDE_ATTRIBUTE_GROUP_REF_NAME = PLUGIN_NAME + ".xsde1610";
-
-  /* CONTEXT_ID xsde1700 for Attribute Reference Design View */
-  public static final String XSDE_ATTRIBUTE_REF_DESIGN_VIEW = PLUGIN_NAME + ".xsde1700";
-  /* CONTEXT_ID xsde1710 for Reference Name Combo Box */
-  public static final String XSDE_ATTRIBUTE_REF_NAME = PLUGIN_NAME + ".xsde1710";
-
-  /* CONTEXT_ID xsde1800 for Pattern Design View */
-  public static final String XSDE_PATTERN_DESIGN_VIEW = PLUGIN_NAME + ".xsde1800";
-  /* CONTEXT_ID xsde1810 for Value Text Edit */
-  public static final String XSDE_PATTERN_VALUE   = PLUGIN_NAME + ".xsde1810";
-  /* CONTEXT_ID xsde1820 for Create Regular Expression Push Button */
-  public static final String XSDE_PATTERN_REGULAR = PLUGIN_NAME + ".xsde1820";
-
-  /* CONTEXT_ID xsde1900 for Enum Design View */
-  public static final String XSDE_ENUM_DESIGN_VIEW = PLUGIN_NAME + ".xsde1900";
-  /* CONTEXT_ID xsde1910 for Value Text Edit */
-  public static final String XSDE_ENUM_VALUE       = PLUGIN_NAME + ".xsde1910";
-  
-  /* CONTEXT_ID xsde2000 for Include Design Page */
-  public static final String XSDE_INCLUDE_DESIGN_VIEW = PLUGIN_NAME + ".xsde2000";
-  /* no CONTEXT_ID for Schema Location Text Edit (not editable) */
-  /* CONTEXT_ID Select Push Button is from Include Helper xsde2100 */ 
-  
-  /* CONTEXT_ID xsde2100 for Include Helper Select Push Button - used generically */
-  /* CONTEXT_ID      - used in Include Design View */
-  /* CONTEXT_ID      - used in Import Design View */
-  public static final String XSDE_INCLUDE_HELPER_SELECT = PLUGIN_NAME + ".xsde2100";
-
-  /* CONTEXT_ID xsde2200 for Import Design Page */
-  public static final String XSDE_IMPORT_DESIGN_VIEW = PLUGIN_NAME + ".xsde2200";
-  /* no CONTEXT_ID for Schema Location Text Edit (not editable) */
-  /* CONTEXT_ID Select Push Button is from Include Helper xsde2100 */
-  /* CONTEXT_ID xsde2210 for Prefix Text Edit */
-  public static final String XSDE_IMPORT_PREFIX      = PLUGIN_NAME + ".xsde2210";
-  /* no CONTEXT_ID for Namespace Text Edit (not editable) */
-
-  /* CONTEXT_ID xsde2300 for Redefine Design View */
-  public static final String XSDE_REDEFINE_DESIGN_VIEW = PLUGIN_NAME + ".xsde2300";
-  /* no CONTEXT_ID for Schema Location Text Edit (not editable) */
-  /* CONTEXT_ID Select Push Button is from Include Helper xsde2100 */
-
-  /* CONTEXT_ID xsde2400 for Group Design View */
-  public static final String XSDE_GROUP_DESIGN_VIEW = PLUGIN_NAME + ".xsde2400";
-  /* CONTEXT_ID xsde2410 for Name Text Edit */
-  public static final String XSDE_GROUP_NAME        = PLUGIN_NAME + ".xsde2410";
-
-  /* CONTEXT_ID xsde2500 for Group Scope Design View */
-  public static final String XSDE_GROUP_SCOPE_DESIGN_VIEW   = PLUGIN_NAME + ".xsde2500";
-  /* CONTEXT_ID xsde2510 for Content model Group */
-  public static final String XSDE_GROUP_SCOPE_CONTENT_GROUP = PLUGIN_NAME + ".xsde2510";
-  /* CONTEXT_ID xsde2520 for Sequence Radio Button */
-  public static final String XSDE_GROUP_SCOPE_SEQUENCE = PLUGIN_NAME + ".xsde2520";
-  /* CONTEXT_ID xsde2530 for Choice Radio Button */
-  public static final String XSDE_GROUP_SCOPE_CHOICE   = PLUGIN_NAME + ".xsde2530";
-  /* CONTEXT_ID xsde2540 for All Radio Button */
-  public static final String XSDE_GROUP_SCOPE_ALL      = PLUGIN_NAME + ".xsde2540";
-  /* CONTEXT_ID xsde2550 for Minimum Text Edit */
-  public static final String XSDE_GROUP_SCOPE_MINIMUM  = PLUGIN_NAME + ".xsde2550";
-  /* CONTEXT_ID xsde2560 for Maximum Text Edit*/
-  public static final String XSDE_GROUP_SCOPE_MAXIMUM  = PLUGIN_NAME + ".xsde2560";
-
-  /* CONTEXT_ID xsde2600 for Group Ref Design View */
-  public static final String XSDE_GROUP_REF_DESIGN_VIEW = PLUGIN_NAME + ".xsde2600";
-  /* CONTEXT_ID xsde2610 for Reference name Combo Box */
-  public static final String XSDE_GROUP_REF_REFERENCE   = PLUGIN_NAME + ".xsde2610";
-  /* CONTEXT_ID xsde2620 for Minimum Text Edit */
-  public static final String XSDE_GROUP_REF_MINIMUM     = PLUGIN_NAME + ".xsde2620";
-  /* CONTEXT_ID xsde2630 for Maximum Text Edit */
-  public static final String XSDE_GROUP_REF_MAXIMUM     = PLUGIN_NAME + ".xsde2630";
-
-  /* CONTEXT_ID xsde2700 for Unique Design View */
-  public static final String XSDE_UNIQUE_DESIGN_VIEW = PLUGIN_NAME + ".xsde2700";
-  /* CONTEXT_ID Name Text Edit is from Unique Base xsde2800 */
-  /* CONTEXT_ID Selector Group is from Unique Base xsde2810 */
-  /* CONTEXT_ID Selector Mulit-line Edit is from Unique Base xsde2820 */
-  /* CONTEXT_ID Fields Group is from Unique Base xsde2830 */
-  /* CONTEXT_ID Source Text Edit is from Unique Base xsde2840 */
-  /* CONTEXT_ID Add Push Button is from Unique Base xsde2850 */
-  /* CONTEXT_ID Remove Push Button is from Unique Base xsde2860 */
-  /* CONTEXT_ID Target List Box is from Unique Base xsde2870 */
-  
-  /* CONTEXT_ID xsde2800 for Unique Base Name Text Edit - used generically */
-  /* CONTEXT_ID      - used in Unique Design View */
-  /* CONTEXT_ID      - used in Key Design View */
-  /* CONTEXT_ID      - used in Key Ref Design View */
-  public static final String XSDE_UNIQUE_BASE_NAME = PLUGIN_NAME + ".xsde2800";
-  /* CONTEXT_ID xsde2810 for Selector Group - used generically */
-  /* CONTEXT_ID      - used in Unique Design View */
-  /* CONTEXT_ID      - used in Key Design View */
-  /* CONTEXT_ID      - used in Key Ref Design View */
-  public static final String XSDE_UNIQUE_BASE_SELECTOR_GROUP = PLUGIN_NAME + ".xsde2810";
-  /* CONTEXT_ID xsde2820 for Selector Multi-line Edit - used generically */
-  /* CONTEXT_ID      - used in Unique Design View */
-  /* CONTEXT_ID      - used in Key Design View */
-  /* CONTEXT_ID      - used in Key Ref Design View */
-  public static final String XSDE_UNIQUE_BASE_SELECTOR       = PLUGIN_NAME + ".xsde2820";
-  /* CONTEXT_ID xsde2830 for Fields Group - used generically */
-  /* CONTEXT_ID      - used in Unique Design View */
-  /* CONTEXT_ID      - used in Key Design View */
-  /* CONTEXT_ID      - used in Key Ref Design View */
-  public static final String XSDE_UNIQUE_BASE_FIELDS_GROUP   = PLUGIN_NAME + ".xsde2830";
-  /* CONTEXT_ID xsde2840 for Source Text Edit - used generically */
-  /* CONTEXT_ID      - used in Unique Design View */
-  /* CONTEXT_ID      - used in Key Design View */
-  /* CONTEXT_ID      - used in Key Ref Design View */
-  public static final String XSDE_UNIQUE_BASE_SOURCE         = PLUGIN_NAME + ".xsde2840";
-  /* CONTEXT_ID xsde2850 for Add Push Button - used generically */
-  /* CONTEXT_ID      - used in Unique Design View */
-  /* CONTEXT_ID      - used in Key Design View */
-  /* CONTEXT_ID      - used in Key Ref Design View */
-  public static final String XSDE_UNIQUE_BASE_ADD            = PLUGIN_NAME + ".xsde2850";
-  /* CONTEXT_ID xsde2860 for Remove Push Button - used generically */
-  /* CONTEXT_ID      - used in Unique Design View */
-  /* CONTEXT_ID      - used in Key Design View */
-  /* CONTEXT_ID      - used in Key Ref Design View */
-  public static final String XSDE_UNIQUE_BASE_REMOVE         = PLUGIN_NAME + ".xsde2860";
-  /* CONTEXT_ID xsde2870 for Target List Box - used generically */
-  /* CONTEXT_ID      - used in Unique Design View */
-  /* CONTEXT_ID      - used in Key Design View */
-  /* CONTEXT_ID      - used in Key Ref Design View */
-  public static final String XSDE_UNIQUE_BASE_TARGET         = PLUGIN_NAME + ".xsde2870";
-
-  /* CONTEXT_ID xsde2900 for Key Design View */
-  public static final String XSDE_KEY_DESIGN_VIEW = PLUGIN_NAME + ".xsde2900";
-  /* CONTEXT_ID Name Text Edit is from Unique Base xsde2800 */
-  /* CONTEXT_ID Selector Group is from Unique Base xsde2810 */
-  /* CONTEXT_ID Selector Mulit-line Edit is from Unique Base xsde2820 */
-  /* CONTEXT_ID Fields Group is from Unique Base xsde2830 */
-  /* CONTEXT_ID Source Text Edit is from Unique Base xsde2840 */
-  /* CONTEXT_ID Add Push Button is from Unique Base xsde2850 */
-  /* CONTEXT_ID Remove Push Button is from Unique Base xsde2860 */
-  /* CONTEXT_ID Target List Box is from Unique Base xsde2870 */
-  /* CONTEXT_ID xsde2900 for Key Design View */
-  
-  /* CONTEXT_ID xsde2950 for Key Ref Design View */
-  public static final String XSDE_KEY_REF_DESIGN_VIEW = PLUGIN_NAME + ".xsde2950";
-  /* CONTEXT_ID Name Text Edit is from Unique Base xsde2800 */
-  /* CONTEXT_ID xsde2960 for Reference Key Combo Box */
-  public static final String XSDE_KEY_REF_REFERENCE = PLUGIN_NAME + ".xsde2960";
-  /* CONTEXT_ID Selector Group is from Unique Base xsde2810 */
-  /* CONTEXT_ID Selector Mulit-line Edit is from Unique Base xsde2820 */
-  /* CONTEXT_ID Fields Group is from Unique Base xsde2830 */
-  /* CONTEXT_ID Source Text Edit is from Unique Base xsde2840 */
-  /* CONTEXT_ID Add Push Button is from Unique Base xsde2850 */
-  /* CONTEXT_ID Remove Push Button is from Unique Base xsde2860 */
-  /* CONTEXT_ID Target List Box is from Unique Base xsde2870 */
-
-  /* CONTEXT_ID xsde3000 for Any Element Design View */
-  public static final String XSDE_ANY_ELEMENT_VIEW = PLUGIN_NAME + ".xsde3000";
-  /* CONTEXT_ID xsde3010 for Namespace Text Edit */
-  public static final String XSDE_ANY_ELEMENT_NAMESPACE = PLUGIN_NAME + ".xsde3010";
-  /* CONTEXT_ID xsde3020 for Process Contents Combo Box */
-  public static final String XSDE_ANY_ELEMENT_PROCESS   = PLUGIN_NAME + ".xsde3020";
-  /* CONTEXT_ID xsde3030 for Minimum Text Edit */
-  public static final String XSDE_ANY_ELEMENT_MINIMUM   = PLUGIN_NAME + ".xsde3030";
-  /* CONTEXT_ID xsde3040 for Maximum Text Edit */
-  public static final String XSDE_ANY_ELEMENT_MAXIMUM   = PLUGIN_NAME + ".xsde3040";
-
-  /* CONTEXT_ID xsde3100 for Any Attribute Design View */
-  public static final String XSDE_ANY_ATTRIBUTE_VIEW = PLUGIN_NAME + ".xsde3100";
-  /* CONTEXT_ID xsde3110 for Namespace Text Edit */
-  public static final String XSDE_ANY_ATTRIBUTE_NAMESPACE = PLUGIN_NAME + ".xsde3110";
-  /* CONTEXT_ID xsde3120 for Process Contents Combo Box */
-  public static final String XSDE_ANY_ATTRIBUTE_PROCESS   = PLUGIN_NAME + ".xsde3120";
-
-  /* no CONTEXT_ID for Union Design View - uses a generic interface */
-  /* CONTEXT_ID Type Information Group is from Type Helper xsde0900 */
-  /* CONTEXT_ID Built-in simple type Radio Button is from Type Helper xsde0920 */
-  /* CONTEXT_ID User-defined simple type Radio Button is from Type Helper xsde0930 */
-  /* CONTEXT_ID Type information Combo Box is from Type Helper xsde0950 */
-
-  /* CONTEXT_ID xsde3200 for Notation Design View */
-  public static final String XSDE_NOTATION_VIEW = PLUGIN_NAME + ".xsde3200";
-
-  /* CONTEXT_ID xsde4000 for Source View */
-  public static final String XSDE_SOURCE_VIEW = PLUGIN_NAME + ".xsde4000";
-
-  /* CONTEXT_IDs for Regular Expression Wizard follow the xsdrxxx context IDs */
-  
-  /* CONTEXT_ID xsdr0010 for Compose Regular Expression Page */
-  public static final String XSDR_COMPOSITION_PAGE         = PLUGIN_NAME + ".xsdr0010";
-  /* CONTEXT_ID xsdr0015 for Token Contents Combo Box */
-  public static final String XSDR_COMPOSITION_TOKEN = PLUGIN_NAME + ".xsdr0015";
-  /* CONTEXT_ID xsdr0020 for Occurrece Group */
-  public static final String XSDR_COMPOSITION_OCCURRENCE_GROUP = PLUGIN_NAME + ".xsdr0020";
-  /* CONTEXT_ID xsdr0030 for Just once Radio Button */
-  public static final String XSDR_COMPOSITION_JUST_ONCE    = PLUGIN_NAME + ".xsdr0030";
-  /* CONTEXT_ID xsdr0040 for Zero or more Radio Button */
-  public static final String XSDR_COMPOSITION_ZERO_OR_MORE = PLUGIN_NAME + ".xsdr0040";
-  /* CONTEXT_ID xsdr0050 for One or more Radio Button */
-  public static final String XSDR_COMPOSITION_ONE_OR_MORE  = PLUGIN_NAME + ".xsdr0050";
-  /* CONTEXT_ID xsdr0060 for Optional Radio Button */
-  public static final String XSDR_COMPOSITION_OPTIONAL     = PLUGIN_NAME + ".xsdr0060";
-  /* CONTEXT_ID xsdr0070 for Repeat Radio Button */
-  public static final String XSDR_COMPOSITION_REPEAT       = PLUGIN_NAME + ".xsdr0070";
-  /* CONTEXT_ID xsdr0080 for Range Radio Button */
-  public static final String XSDR_COMPOSITION_RANGE        = PLUGIN_NAME + ".xsdr0080";
-  /* CONTEXT_ID xsdr0090 for Repeat Text Edit */
-  public static final String XSDR_COMPOSITION_REPEAT_TEXT  = PLUGIN_NAME + ".xsdr0090";
-  /* CONTEXT_ID xsdr0100 for Range Minimum Text Edit */
-  public static final String XSDR_COMPOSITION_RANGE_MIN    = PLUGIN_NAME + ".xsdr0100";
-  /* CONTEXT_ID xsdr0110 for Range Maximum Text Edit */
-  public static final String XSDR_COMPOSITION_RANGE_MAX    = PLUGIN_NAME + ".xsdr0110";
-  /* CONTEXT_ID xsdr0120 for Add Push Button */
-  public static final String XSDR_COMPOSITION_ADD          = PLUGIN_NAME + ".xsdr0120";
-  /* CONTEXT_ID xsdr0130 for Current Regular Expression Text Edit */
-  public static final String XSDR_COMPOSITION_CURRENT      = PLUGIN_NAME + ".xsdr0130";
-
-  /* CONTEXT_ID xsdr0200 for Test Regular Expression Page */
-  public static final String XSDR_TEST_PAGE   = PLUGIN_NAME + ".xsdr0200";
-  /* no CONTEXT_ID for Regular Expression Text Edit (not editable) */
-  /* CONTEXT_ID xsdr0210 for Sample Text Text Edit */
-  public static final String XSDR_TEST_SAMPLE = PLUGIN_NAME + ".xsdr0210";
-
-  /* CONTEXT_IDs for Preferences Page follows the xsdpxxx context IDs */
-  
-  /* CONTEXT_ID xsdp0010 for XML Schema Preferences Page */
-  public static final String XSDP_PREFERENCE_PAGE = PLUGIN_NAME + ".xsdp0010";
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDEditorPlugin.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDEditorPlugin.java
deleted file mode 100644
index 527b582..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDEditorPlugin.java
+++ /dev/null
@@ -1,353 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.wst.sse.core.IModelManager;
-import org.eclipse.wst.sse.core.IModelManagerPlugin;
-
-
-public class XSDEditorPlugin extends AbstractUIPlugin
-{
-  public final static String PLUGIN_ID = "org.eclipse.wst.xsd.ui";
-  public final static String XSD_EDITOR_ID = "org.eclipse.wst.xsd.ui.XSDEditor";
-  
-  public final static String DEFAULT_TARGET_NAMESPACE = "http://www.example.org";
-  
-  protected static XSDEditorPlugin plugin;
-  //  protected XMLSchemaPackage xmlschemaPackage;
-// KCPort private static MsgLogger myMsgLogger;
- 
-  public XSDEditorPlugin(IPluginDescriptor descriptor) 
-  {
-    super(descriptor);
-    plugin = this;
-// KCPort    myMsgLogger = getMsgLogger();
-    //myMsgLogger.write(Level.CONFIG, new BuildInfo());
-    //myMsgLogger.write(Level.CONFIG, BuildInfo.getWSABuildLevel());
-  }
-
-  /**
-   * Copy the w3c XMLSchema.dtd and datatypes.dtd into the plugin metadata directory
-   * for validation purposes
-   */
-  public void startup()
-  {
-    modelManager = getModelManager();
-  }
-
-  private static IModelManager modelManager;
-
-  public static IModelManager getModelManager() {
-    IModelManagerPlugin plugin = (IModelManagerPlugin) Platform.getPlugin(IModelManagerPlugin.ID);
-    return plugin.getModelManager();
-  }
-  
-  
-  /**
-   * Get the Install URL
-   */
-  public static URL getInstallURL()
-  {
-    return getPlugin().getDescriptor().getInstallURL();
-  }
-
-  /**
-   * Return the plugin physical directory location
-   */
-  public static IPath getPluginLocation()
-  {
-    try 
-    {
-      IPath installPath = new Path(getInstallURL().toExternalForm()).removeTrailingSeparator();
-      String installStr = Platform.asLocalURL(new URL(installPath.toString())).getFile();
-      return new Path(installStr);
-    } 
-    catch (IOException e) 
-    {
-
-    }
-    return null;
-  }
-
-  /**
-   * Get the metadata directory for this plugin
-   */
-  public static String getMetaDataDirectory()
-  {
-    return getPlugin().getStateLocation().toOSString();
-  }
-
-  /** 
-   *  Get the one xmlschema package.
-   */
-//   public XMLSchemaPackage getXMLSchemaPackage()
-//   {
-//     return xmlschemaPackage;
-//   }
-
-//   /** 
-//    *  Get the one xmlschema factory.
-//    */
-//   public XMLSchemaFactory getXMLSchemaFactory()
-//   {
-//     return (XMLSchemaFactory)xmlschemaPackage.getEFactoryInstance();
-//   }
-
-  /**
-   * Get the singleton instance.
-   */
-  public static XSDEditorPlugin getPlugin()
-  {
-    return plugin;
-  }
-
-  public static Image getXSDImage(String iconName)
-  {
-    return getPlugin().getImage(iconName);
-  }
-
-  public Image getImage(String iconName)
-  {
-    ImageRegistry imageRegistry = getImageRegistry();
-    
-    if (imageRegistry.get(iconName) != null)
-    {
-      return imageRegistry.get(iconName);
-    }
-    else
-    {
-      imageRegistry.put(iconName, ImageDescriptor.createFromFile(getClass(), iconName));
-      return imageRegistry.get(iconName);
-    }
-  }
-  
-  public static String getXSDString(String key)
-  {
-    return Platform.getResourceBundle(plugin.getBundle()).getString(key);
-  }
-
-	/**
-	 * This gets the string resource and does one substitution.
-	 */
-	public String getString(String key, Object s1)
-	{
-	  return MessageFormat.format(Platform.getResourceBundle(getBundle()).getString(key), new Object [] { s1 });
-	}
-
-//  public IWorkspace getWorkspace()
-//  {
-//    return ResourcesPlugin.getWorkspace();
-//  }
-
-  public static Shell getShell() 
-  {	
-    return getPlugin().getWorkbench().getActiveWorkbenchWindow().getShell();
-  }
-
-  /**
-   * Get the xml schema default namespace prefix
-   */
-  public String getXMLSchemaPrefix()
-  {
-    return getPreferenceStore().getString(CONST_XSD_DEFAULT_PREFIX_TEXT);
-  }
-  
-  /**
-   * Get the xml schema default target namespace
-   */
-  public String getXMLSchemaTargetNamespace()
-  {
-  	String targetNamespace = getPreferenceStore().getString(CONST_DEFAULT_TARGET_NAMESPACE);
-    if(!targetNamespace.endsWith("/")){
-    	targetNamespace = targetNamespace + "/";
-    }
-    return targetNamespace;
-  }
-
-  /**
-   * Get the xml schema language qualification
-   */
-  public boolean isQualifyXMLSchemaLanguage()
-  {
-    return getPreferenceStore().getBoolean(CONST_XSD_LANGUAGE_QUALIFY);
-  }
-  
-  /**
-   * Method isCombinedDesignAndSourceView.
-   * @return boolean if the editor should have a single page that is
-   * a combined design and source page
-   */
-  public boolean isCombinedDesignAndSourceView()
-  {
-    return COMBINED_LAYOUT.equals(getPreferenceStore().getString(EDITOR_LAYOUT));
-  }
-
-  public int getDesignLayout()
-  {
-    if (TOP_LAYOUT.equals(getPreferenceStore().getString(DESIGN_LAYOUT)))
-    {
-       return SWT.VERTICAL;
-    }
-    else if (BOTTOM_LAYOUT.equals(getPreferenceStore().getString(DESIGN_LAYOUT)))
-    {
-      return SWT.VERTICAL;
-    }
-    else if (LEFT_LAYOUT.equals(getPreferenceStore().getString(DESIGN_LAYOUT)))
-    {
-      return SWT.HORIZONTAL;
-    }
-    else if (RIGHT_LAYOUT.equals(getPreferenceStore().getString(DESIGN_LAYOUT)))
-    {
-      return SWT.HORIZONTAL;
-    }
-    return SWT.HORIZONTAL;      
-  }
-
-  public String getDesignLayoutPosition()
-  {
-    if (TOP_LAYOUT.equals(getPreferenceStore().getString(DESIGN_LAYOUT)))
-    {
-       return TOP_LAYOUT;
-    }
-    else if (BOTTOM_LAYOUT.equals(getPreferenceStore().getString(DESIGN_LAYOUT)))
-    {
-      return BOTTOM_LAYOUT;
-    }
-    else if (LEFT_LAYOUT.equals(getPreferenceStore().getString(DESIGN_LAYOUT)))
-    {
-      return LEFT_LAYOUT;
-    }
-    else if (RIGHT_LAYOUT.equals(getPreferenceStore().getString(DESIGN_LAYOUT)))
-    {
-      return RIGHT_LAYOUT;
-    }
-    return RIGHT_LAYOUT;      
-  }
-
-  /*---------------------------------------------------------------------------*/
-  /* the following methods are impls for the IPluginHelper interface           */
-  /*---------------------------------------------------------------------------*/
-//  public void setMsgLoggerConfig(Hashtable msgLoggerConfig)
-//  {
-//    getMsgLogger().setMsgLoggerConfig(msgLoggerConfig);
-//  }
-//
-//  public Hashtable getMsgLoggerConfig(Plugin plugin)
-//  {
-//    return (new PluginHelperImpl().getMsgLoggerConfig(plugin));
-//  }
-//
-//  public Hashtable getMsgLoggerConfig()
-//  {
-//    return (getMsgLoggerConfig(this));
-//  }
-//
-//  /**
-//   * XSDEditor and XSDModel use the same logger.  See plugin.xml
-//   */
-//  public MsgLogger getMsgLogger()
-//  {
-//    if (myMsgLogger == null)
-//    {
-//      myMsgLogger = (MsgLogger) MsgLogger.getFactory().getLogger(new PluginHelperImpl().getMsgLoggerName(this), this);
-//    }
-//    return (myMsgLogger);
-//  }
-  
-  public static final String CONST_XSD_DEFAULT_PREFIX_TEXT = "org.eclipse.wst.xmlschema.xsdDefaultPrefixText";
-  public static final String CONST_XSD_LANGUAGE_QUALIFY = "org.eclipse.wst.xmlschema.xsdQualify";
-  public static final String CONST_DEFAULT_TARGET_NAMESPACE = "org.eclipse.wst.xmlschema.defaultTargetnamespaceText";
-
-  // Preference to store which page should come up as the default page in the editor.  This setting is based
-  // on the page that was left showing the last time the editor was closed.
-  public static String DEFAULT_PAGE = "org.eclipse.wst.xsd.ui.internal.defaultPage";
-  public static String DESIGN_PAGE = "org.eclipse.wst.xsd.ui.internal.designPage";
-  public static String SOURCE_PAGE = "org.eclipse.wst.xsd.ui.internal.sourcePage";
-  public static String GRAPH_PAGE = "org.eclipse.wst.xsd.ui.internal.graphPage";
-  
-  public static String EDITOR_LAYOUT = "org.eclipse.wst.xsd.ui.internal.editorlayout";
-  public static String COMBINED_LAYOUT = "org.eclipse.wst.xsd.ui.internal.combined";
-  public static String SEPARATE_LAYOUT = "org.eclipse.wst.xsd.ui.internal.separate";
-
-  public static String DESIGN_LAYOUT = "org.eclipse.wst.xsd.ui.internal.designlayout";
-  public static String TOP_LAYOUT = "org.eclipse.wst.xsd.ui.internal.top";
-  public static String BOTTOM_LAYOUT = "org.eclipse.wst.xsd.ui.internal.bottom";
-  public static String LEFT_LAYOUT = "org.eclipse.wst.xsd.ui.internal.left";
-  public static String RIGHT_LAYOUT = "org.eclipse.wst.xsd.ui.internal.right";
-  
-  /**
-   * @see org.eclipse.ui.plugin.AbstractUIPlugin#initializeDefaultPreferences(IPreferenceStore)
-   */
-  protected void initializeDefaultPreferences(IPreferenceStore store)
-  {
-    super.initializeDefaultPreferences(store);
-
-    store.setDefault(CONST_XSD_DEFAULT_PREFIX_TEXT, "xsd");
-    store.setDefault(CONST_XSD_LANGUAGE_QUALIFY, false);
-
-    store.setDefault(DEFAULT_PAGE, DESIGN_PAGE);
-    store.setDefault(EDITOR_LAYOUT, COMBINED_LAYOUT);
-    store.setDefault(DESIGN_LAYOUT, RIGHT_LAYOUT);
-    
-    store.setDefault(XSDEditorPlugin.CONST_DEFAULT_TARGET_NAMESPACE, DEFAULT_TARGET_NAMESPACE);
-  }
-  
-  public void setDefaultPage(String page)
-  {
-    getPreferenceStore().setValue(DEFAULT_PAGE, page);
-  }
-  
-  /**
-   * Method getDefaultPage.
-   * @return String value of the string constant that is the default page the editor should turn to when
-   * first opened.  Changes to the last visible page when the editor was closed
-   */
-  public String getDefaultPage()
-  {
-    return getPreferenceStore().getString(DEFAULT_PAGE);
-  }    
-
-  protected URL baseURL;
-  public URL getBaseURL()
-  {
-    return getDescriptor().getInstallURL();
-  }
-
-  public Image getIconImage(String object)
-  {
-    try
-    {
-      return ExtendedImageRegistry.getInstance().getImage(new URL(getBaseURL() + "icons/" + object + ".gif"));
-    }
-    catch (MalformedURLException exception)
-    {
-      System.out.println("Failed to load image for '" + object + "'");
-    }
-    return null;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDMenuListener.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDMenuListener.java
deleted file mode 100644
index 0e11ebf..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDMenuListener.java
+++ /dev/null
@@ -1,2056 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.ui.parts.AbstractEditPartViewer;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.wst.xsd.ui.internal.actions.AddEnumsAction;
-import org.eclipse.wst.xsd.ui.internal.actions.AddModelGroupAction;
-import org.eclipse.wst.xsd.ui.internal.actions.BackAction;
-import org.eclipse.wst.xsd.ui.internal.actions.CreateAnnotationAction;
-import org.eclipse.wst.xsd.ui.internal.actions.CreateElementAction;
-import org.eclipse.wst.xsd.ui.internal.actions.CreateGroupAction;
-import org.eclipse.wst.xsd.ui.internal.actions.CreateIdentityConstraintsAction;
-import org.eclipse.wst.xsd.ui.internal.actions.CreateLocalComplexTypeAction;
-import org.eclipse.wst.xsd.ui.internal.actions.CreateLocalSimpleTypeAction;
-import org.eclipse.wst.xsd.ui.internal.actions.CreateSimpleContentAction;
-import org.eclipse.wst.xsd.ui.internal.actions.CreateSimpleTypeAction;
-import org.eclipse.wst.xsd.ui.internal.actions.DOMAttribute;
-import org.eclipse.wst.xsd.ui.internal.actions.DeleteAction;
-import org.eclipse.wst.xsd.ui.internal.actions.GraphRenameAction;
-import org.eclipse.wst.xsd.ui.internal.actions.MakeAnonymousGlobal;
-import org.eclipse.wst.xsd.ui.internal.actions.OpenSchemaAction;
-import org.eclipse.wst.xsd.ui.internal.actions.SetBaseTypeAction;
-import org.eclipse.wst.xsd.ui.internal.actions.XSDEditNamespacesAction;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.ComplexTypeDefinitionEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.ElementDeclarationEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.ModelGroupDefinitionEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.TopLevelComponentEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.model.Category;
-import org.eclipse.wst.xsd.ui.internal.provider.CategoryAdapter;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDCompositor;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class XSDMenuListener implements IMenuListener
-{
-  protected ISelectionProvider selectionProvider;
-  //protected XSDTextEditor textEditor;
-  protected DeleteAction deleteAction;
-//  protected IAction undoAction, redoAction;
-  protected CreateElementAction addComplexTypeAction;
-  protected XSDSchema xsdSchema;
-  protected boolean isReadOnly;
-  protected Object sourceContext;
-
-  /**
-   * Constructor for XSDMenuListener.
-   */
-  public XSDMenuListener(ISelectionProvider selectionProvider)
-  {
-    super();
-    this.selectionProvider = selectionProvider;
-
-    deleteAction = new DeleteAction(XSDEditorPlugin.getXSDString("_UI_ACTION_DELETE"), null, getXSDSchema());
-    deleteAction.setSelectionProvider(selectionProvider);
-    selectionProvider.addSelectionChangedListener(deleteAction);
-  }
-
-  public void setSourceContext(Object sourceContext)
-  {
-    this.sourceContext = sourceContext;
-  }
-
-  public void setSelectionProvider(ISelectionProvider selectionProvider)
-  {
-    this.selectionProvider = selectionProvider;
-  }
-
-  protected XSDSchema getXSDSchema()
-  {
-    return xsdSchema;
-  }
-
-  protected Object getSelectedElement()
-  {
-    ISelection selection = selectionProvider.getSelection();
-    if (selection.isEmpty())
-    {
-      return null;
-    }
-    return ((IStructuredSelection) selection).getFirstElement();
-  }
-  
-  protected void updateXSDSchema()
-  {
-    Object object = getSelectedElement();
-    if (object instanceof XSDConcreteComponent)
-    {
-      xsdSchema = ((XSDConcreteComponent)object).getSchema();
-      boolean flag = true;
-      isReadOnly = false;
-      if (xsdSchema == null)
-      {
-        return;
-      }
-      while (flag)
-      {
-        List list = xsdSchema.getReferencingDirectives();
-        if (list.size() > 0)
-        {
-          isReadOnly = true;
-          XSDSchemaDirective xsdSchemaDirective = (XSDSchemaDirective)list.get(0);
-          if (xsdSchemaDirective.getSchema() != null)
-          {
-            xsdSchema = xsdSchemaDirective.getSchema();
-          }
-          else
-          {
-            flag = false;
-          }
-        }
-        else
-        {
-          flag = false;
-        }
-      }
-    }
-    else if (object instanceof Category)
-    {
-      Category cg = (Category)object;
-      xsdSchema = cg.getXSDSchema();
-    }
-    else if (object instanceof CategoryAdapter)
-    {
-      CategoryAdapter category = (CategoryAdapter)object;
-      xsdSchema = category.getXSDSchema();
-    }
-  }
-
-  /*
-   * @see IMenuListener#menuAboutToShow(IMenuManager)
-   */
-  public void menuAboutToShow(IMenuManager manager)
-  {
-    isReadOnly = false;
-    updateXSDSchema();
-    if (xsdSchema == null)
-    {
-      return;
-    }
-    
-    deleteAction.setXSDSchema(xsdSchema);
-    deleteAction.setEnabled(!isReadOnly);
-    
-    BackAction backAction = new BackAction(XSDEditorPlugin.getXSDString("_UI_ACTION_BACK_TO_SCHEMA_VIEW")); //$NON-NLS-1$
-    backAction.setXSDSchema(getXSDSchema());
-    backAction.setSelectionProvider(selectionProvider);
-    
-    Object selectedElementObj = getSelectedElement();
-    
-    if (selectedElementObj instanceof XSDSchema || selectedElementObj instanceof Category || selectedElementObj instanceof CategoryAdapter)
-    {
-      backAction.setEnabled(false);
-    }
-    manager.add(backAction);
-    manager.add(new Separator());
-//    if (undoAction == null && textEditor != null)
-//    {
-//      undoAction = textEditor.getAction(org.eclipse.ui.texteditor.ITextEditorActionConstants.UNDO);
-//      redoAction = textEditor.getAction(org.eclipse.ui.texteditor.ITextEditorActionConstants.REDO);
-//    }
-    //    Element selectedElement = getSelectedElement();
-
-    Element selectedElement = null;
-    
-    if (selectedElementObj instanceof Element)
-    {
-      selectedElement = (Element) selectedElementObj;
-    }
-    else if (selectedElementObj instanceof XSDConcreteComponent)
-    {
-      selectedElement = ((XSDConcreteComponent) selectedElementObj).getElement();
-    }
-    else if (selectedElementObj instanceof Category || selectedElementObj instanceof CategoryAdapter)
-    {
-      int groupType = -1;
-      if (selectedElementObj instanceof Category)
-      {
-        Category category = (Category) selectedElementObj;
-        groupType = category.getGroupType();
-      }
-      // todo... We need to ensure we eliminate the need for
-      // this case. The XSDMenuListener class should not have
-      // view dependant code. We need to do some work to ensure all
-      // views utilize the 'Category' model object
-      else if (selectedElementObj instanceof CategoryAdapter)
-      {
-        CategoryAdapter categoryAdapter = (CategoryAdapter) selectedElementObj;
-        groupType = categoryAdapter.getGroupType();
-      }
-      ArrayList attributes = null;
-      Element parent = getXSDSchema().getElement();
-      
-      if (parent == null)
-      {
-        return;
-      }
-      
-      Node relativeNode = null;
-      switch (groupType)
-      {
-        case Category.TYPES : {
-          attributes = new ArrayList();
-          attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalTypeName("ComplexType")));
-          Action action = addCreateElementAction(manager, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_COMPLEX_TYPE"), attributes, parent, relativeNode);
-          ((CreateElementAction) action).setIsGlobal(true);
-          attributes = new ArrayList();
-          attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalTypeName("SimpleType")));
-          Action action2 = addCreateSimpleTypeAction(manager, XSDConstants.SIMPLETYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_SIMPLE_TYPE"), attributes, parent, relativeNode);
-          ((CreateElementAction) action2).setIsGlobal(true);
-          break;
-        }
-        case Category.ELEMENTS : {
-          attributes = new ArrayList();
-          attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalName(XSDConstants.ELEMENT_ELEMENT_TAG, "GlobalElement")));
-          attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-          Action action = addCreateElementAction(manager, XSDConstants.ELEMENT_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ELEMENT"), attributes, parent, relativeNode);
-          ((CreateElementAction) action).setIsGlobal(true);
-          break;
-        }
-        case Category.GROUPS : {
-          attributes = new ArrayList();
-          attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalName(XSDConstants.GROUP_ELEMENT_TAG, "Group")));
-          CreateGroupAction groupAction = addCreateGroupAction(manager, XSDConstants.GROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_GROUP"), attributes, parent, relativeNode);
-          groupAction.setIsGlobal(true);
-          break;
-        }
-        case Category.ATTRIBUTES : {
-          attributes = new ArrayList();
-          attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalName(XSDConstants.ATTRIBUTE_ELEMENT_TAG, "GlobalAttribute")));
-          attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-          Action action = addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_GLOBAL_ATTRIBUTE"), attributes, parent, relativeNode);
-          ((CreateElementAction) action).setIsGlobal(true);
-          break;
-        }
-        case Category.ATTRIBUTE_GROUPS : {
-          attributes = new ArrayList();
-          attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalName(XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, "AttributeGroup")));
-          Action action = addCreateElementAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP"), attributes, parent, relativeNode);
-          ((CreateElementAction) action).setIsGlobal(true);
-          break;
-        }
-        case Category.NOTATIONS : {
-          attributes = new ArrayList();
-          attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalName(XSDConstants.NOTATION_ELEMENT_TAG, "Notation")));
-          attributes.add(new DOMAttribute(XSDConstants.PUBLIC_ATTRIBUTE, ""));
-          Action action = addCreateElementAction(manager, XSDConstants.NOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_NOTATION"), attributes, parent, relativeNode);
-          ((CreateElementAction) action).setIsGlobal(true);
-          break;
-        }
-        case Category.DIRECTIVES : {
-          boolean b = true;
-          NodeList children = parent.getChildNodes();
-          int length = children.getLength();
-          Node effectiveRelativeNode = parent.getFirstChild();
-          for (int i = 0; i < length && b; i++)
-          {
-            Node child = children.item(i);
-            if (child != null && child instanceof Element)
-            {
-              if (XSDDOMHelper.inputEquals((Element) child, XSDConstants.INCLUDE_ELEMENT_TAG, false) || XSDDOMHelper.inputEquals((Element) child, XSDConstants.IMPORT_ELEMENT_TAG, false)
-                  || XSDDOMHelper.inputEquals((Element) child, XSDConstants.REDEFINE_ELEMENT_TAG, false) || XSDDOMHelper.inputEquals((Element) child, XSDConstants.ANNOTATION_ELEMENT_TAG, false))
-              {
-                effectiveRelativeNode = child;
-              }
-              else
-              {
-                b = false;
-              }
-            }
-          }
-          relativeNode = effectiveRelativeNode != null ? XSDDOMHelper.getNextElementNode(effectiveRelativeNode) : null;
-          attributes = new ArrayList();
-          attributes.add(new DOMAttribute(XSDConstants.SCHEMALOCATION_ATTRIBUTE, ""));
-          Action action = addCreateElementAction(manager, XSDConstants.INCLUDE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_INCLUDE"), attributes, parent, relativeNode);
-          ((CreateElementAction) action).setIsGlobal(true);
-          action = addCreateElementAction(manager, XSDConstants.IMPORT_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_IMPORT"), null, parent, relativeNode);
-          ((CreateElementAction) action).setIsGlobal(true);
-          action = addCreateElementAction(manager, XSDConstants.REDEFINE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_REDEFINE"), attributes, parent, relativeNode);
-          ((CreateElementAction) action).setIsGlobal(true);
-          break;
-        }
-        case Category.ANNOTATIONS : {
-          Action action = addCreateElementAction(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), null, parent, relativeNode);
-          ((CreateElementAction) action).setIsGlobal(true);
-          break;
-        }
-      }
-//      manager.add(new Separator());
-//      if (undoAction != null)
-//      {
-//        manager.add(undoAction);
-//        manager.add(redoAction);
-//      }
-      return;
-    }
-    if (selectedElement != null)
-    {
-      // Add context menu items for selected element
-      addContextItems(manager, selectedElement, null);
-      manager.add(new Separator());
-      //else
-//      if (textEditor != null)
-//      {
-//        Document document = getXSDSchema().getDocument();
-//        if (document != null)
-//        {
-//          Element docElement = getXSDSchema().getDocument().getDocumentElement();
-//          if (!XSDDOMHelper.inputEquals(docElement, XSDConstants.SCHEMA_ELEMENT_TAG, false))
-//          //        if (list.getLength() == 0)
-//          {
-//            // no schema tag. Enable the Add Schema action
-//            AddSchemaNodeAction action = new AddSchemaNodeAction(XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_SCHEMA_NODE"));
-//            action.setEditor((XSDEditor) textEditor.getEditorPart());
-//            manager.add(action);
-//          }
-//        }
-//      }
-    }
-//    manager.add(new Separator());
-//    if (undoAction != null)
-//    {
-//      manager.add(undoAction);
-//      manager.add(redoAction);
-//    }
-    
-    manager.add(new Separator());
-    if (deleteAction != null)
-    {
-      manager.add(deleteAction);
-    }
-  }
-
-  protected String getBuiltInStringQName()
-  {
-    String stringName = "string";
-    if (getXSDSchema() != null)
-    {
-      String schemaForSchemaPrefix = getXSDSchema().getSchemaForSchemaQNamePrefix();
-      if (schemaForSchemaPrefix != null && schemaForSchemaPrefix.length() > 0)
-      {
-        String prefix = getXSDSchema().getSchemaForSchemaQNamePrefix();
-        if (prefix != null && prefix.length() > 0)
-        {
-          stringName = prefix + ":" + stringName;
-        }
-      }
-    }
-    return stringName;
-  }
-
-  /**
-   * Method addContextItems.
-   * 
-   * @param manager
-   * @param parent -
-   *          menu items should be context sensitive to this node
-   * @param relativeNode -
-   *          anything inserted, should be inserted before this node (which is a
-   *          child of the parent node. A value of null means add to the end
-   */
-  protected void addContextItems(IMenuManager manager, Element parent, Node relativeNode)
-  {
-    ArrayList attributes = null;
-    if (XSDDOMHelper.inputEquals(parent, XSDConstants.SCHEMA_ELEMENT_TAG, false))
-    { //
-      addSchemaElementItems(manager, parent, relativeNode);
-      manager.add(new Separator());
-      boolean b = true;
-      NodeList children = parent.getChildNodes();
-      Node effectiveRelativeNode = parent.getFirstChild();
-      for (int i = 0; i < children.getLength() && b; i++)
-      {
-        Node child = children.item(i);
-        if (child != null && child instanceof Element)
-        {
-          if (XSDDOMHelper.inputEquals((Element) child, XSDConstants.INCLUDE_ELEMENT_TAG, false) || XSDDOMHelper.inputEquals((Element) child, XSDConstants.IMPORT_ELEMENT_TAG, false)
-              || XSDDOMHelper.inputEquals((Element) child, XSDConstants.REDEFINE_ELEMENT_TAG, false) || XSDDOMHelper.inputEquals((Element) child, XSDConstants.ANNOTATION_ELEMENT_TAG, false))
-          {
-            effectiveRelativeNode = child;
-          }
-          else
-          {
-            b = false;
-          }
-        }
-      }
-      relativeNode = effectiveRelativeNode != null ? effectiveRelativeNode.getNextSibling() : null;
-      attributes = new ArrayList();
-      attributes.add(new DOMAttribute(XSDConstants.SCHEMALOCATION_ATTRIBUTE, ""));
-      addCreateElementAction(manager, XSDConstants.INCLUDE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_INCLUDE"), attributes, parent, relativeNode);
-      addCreateElementAction(manager, XSDConstants.IMPORT_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_IMPORT"), null, parent, relativeNode);
-      addCreateElementAction(manager, XSDConstants.REDEFINE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_REDEFINE"), attributes, parent, relativeNode);
-      attributes = null;
-      addCreateAnnotationAction(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), null, parent, relativeNode);
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.ANNOTATION_ELEMENT_TAG, false))
-    { //
-      addCreateElementAction(manager, XSDConstants.DOCUMENTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_DOC"), attributes, parent, null);
-      addCreateElementAction(manager, XSDConstants.APPINFO_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_APP_INFO"), attributes, parent, null);
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.ELEMENT_ELEMENT_TAG, false))
-    { //
-      Element parentNode = (Element) parent.getParentNode();
-      boolean isGlobalElement = false;
-      if (XSDDOMHelper.inputEquals(parentNode, XSDConstants.SCHEMA_ELEMENT_TAG, false))
-      {
-        isGlobalElement = true;
-      }
-      boolean annotationExists = addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent,
-          parent.getFirstChild());
-      boolean simpleTypeExists = elementExists(XSDConstants.SIMPLETYPE_ELEMENT_TAG, parent);
-      boolean complexTypeExists = elementExists(XSDConstants.COMPLEXTYPE_ELEMENT_TAG, parent);
-      manager.add(new Separator());
-      if (annotationExists)
-      {
-        Node annotationNode = getFirstChildNodeIfExists(parent, XSDConstants.ANNOTATION_ELEMENT_TAG, false);
-        if (!(simpleTypeExists || complexTypeExists) && annotationNode != null)
-        {
-          //addCreateLocalSimpleTypeActionIfNotExist(manager,
-          // XSDConstants.SIMPLETYPE_ELEMENT_TAG,
-          // XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_LOCAL_SIMPLE_TYPE"),
-          // attributes, parent, annotationNode.getNextSibling());
-          //addCreateLocalComplexTypeActionIfNotExist(manager,
-          // XSDConstants.COMPLEXTYPE_ELEMENT_TAG, "Add Local Complex Type",
-          // attributes, parent, annotationNode.getNextSibling());
-          manager.add(new Separator());
-        }
-      }
-      else
-      {
-        // Should still be able to add the content models if the anonymous type
-        // exists,
-        // ie. with attributes
-        //        if (!(simpleTypeExists || complexTypeExists))
-        //        {
-        //addCreateLocalSimpleTypeActionIfNotExist(manager,
-        // XSDConstants.SIMPLETYPE_ELEMENT_TAG,
-        // XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_LOCAL_SIMPLE_TYPE"),
-        // attributes, parent, parent.getFirstChild());
-        //addCreateLocalComplexTypeActionIfNotExist(manager,
-        // XSDConstants.COMPLEXTYPE_ELEMENT_TAG, "Add Local Complex Type",
-        // attributes, parent, parent.getFirstChild());
-        XSDConcreteComponent concreteComponent = getXSDSchema().getCorrespondingComponent(parent);
-        if (concreteComponent != null)
-        {
-          AddModelGroupAction addModelGroupAction = new AddModelGroupAction(concreteComponent, XSDCompositor.SEQUENCE_LITERAL);
-          addModelGroupAction.setEnabled(!isReadOnly);
-          manager.add(addModelGroupAction);
-          
-          addModelGroupAction = new AddModelGroupAction(concreteComponent, XSDCompositor.CHOICE_LITERAL);
-          addModelGroupAction.setEnabled(!isReadOnly);
-          manager.add(addModelGroupAction);
-          
-          addModelGroupAction = new AddModelGroupAction(concreteComponent, XSDCompositor.ALL_LITERAL);
-          addModelGroupAction.setEnabled(!isReadOnly);
-          manager.add(addModelGroupAction);
-          
-          manager.add(new Separator());
-        }
-        //        }
-      }
-//      attributes = new ArrayList();
-//      attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, "New_Unique"));
-//      addCreateIdentityConstraintsAction(manager, XSDConstants.UNIQUE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_UNIQUE"), attributes, parent, null);
-//      attributes = new ArrayList();
-//      attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, "New_Key"));
-//      addCreateIdentityConstraintsAction(manager, XSDConstants.KEY_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_KEY"), attributes, parent, null);
-//      attributes = new ArrayList();
-//      attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, "New_KeyRef"));
-//      addCreateIdentityConstraintsAction(manager, XSDConstants.KEYREF_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_KEY_REF"), attributes, parent, null);
-      XSDDOMHelper domHelper = new XSDDOMHelper();
-      Element anonymousType = (Element) domHelper.getChildNode(parent, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-      if (anonymousType != null)
-      {
-        manager.add(new Separator());
-        attributes = new ArrayList();
-        attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalTypeName("ComplexType")));
-        addMoveAnonymousGlobal(manager, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_MAKE_ANONYMOUS_TYPE_GLOBAL"), attributes, anonymousType, null);
-        attributes = null;
-      }
-      anonymousType = (Element) domHelper.getChildNode(parent, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-      if (anonymousType != null)
-      {
-        manager.add(new Separator());
-        attributes = new ArrayList();
-        attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalTypeName("SimpleType")));
-        addMoveAnonymousGlobal(manager, XSDConstants.SIMPLETYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_MAKE_ANONYMOUS_TYPE_GLOBAL"), attributes, anonymousType, null);
-        attributes = null;
-      }
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.SEQUENCE_ELEMENT_TAG, false) || XSDDOMHelper.inputEquals(parent, XSDConstants.CHOICE_ELEMENT_TAG, false))
-    { //
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-      manager.add(new Separator());
-      addCreateElementAction(manager, XSDConstants.CHOICE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_CHOICE"), attributes, parent, null);
-      addCreateElementAction(manager, XSDConstants.SEQUENCE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_SEQUENCE"), attributes, parent, null);
-      addCreateElementRefAction(manager, XSDConstants.GROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ADD_GROUP_REF"), parent, null);
-      manager.add(new Separator());
-      attributes = new ArrayList();
-      attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewName(parent, XSDConstants.ELEMENT_ELEMENT_TAG, "Element", false)));
-      attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-      addCreateElementAction(manager, XSDConstants.ELEMENT_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ELEMENT"), attributes, parent, null);
-      addCreateElementRefAction(manager, XSDConstants.ELEMENT_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ELEMENT_REF"), parent, null);
-      manager.add(new Separator());
-      attributes = null;
-      addCreateElementAction(manager, XSDConstants.ANY_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANY_ELEMENT"), attributes, parent, null);
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.ALL_ELEMENT_TAG, false))
-    { //
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-      manager.add(new Separator());
-      attributes = new ArrayList();
-      attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewName(parent, XSDConstants.ELEMENT_ELEMENT_TAG, "Element", false)));
-      attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-      addCreateElementAction(manager, XSDConstants.ELEMENT_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ELEMENT"), attributes, parent, null);
-      addCreateElementRefAction(manager, XSDConstants.ELEMENT_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ELEMENT_REF"), parent, null);
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, false))
-    { //
-      boolean annotationExists = addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent,
-          parent.getFirstChild());
-      boolean anyAttributeExists = elementExists(XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, parent);
-      Node anyAttributeNode = null;
-      manager.add(new Separator());
-      if (anyAttributeExists)
-      {
-        anyAttributeNode = getFirstChildNodeIfExists(parent, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, false);
-        attributes = new ArrayList();
-        attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewName(parent, XSDConstants.ATTRIBUTE_ELEMENT_TAG, "Attribute", false)));
-        attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-        addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE"), attributes, parent, anyAttributeNode);
-        attributes = null;
-        addCreateElementRefAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_REFERENCE"), parent, anyAttributeNode);
-        addCreateElementRefAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF"), parent, anyAttributeNode);
-      }
-      else
-      {
-        attributes = new ArrayList();
-        attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewName(parent, XSDConstants.ATTRIBUTE_ELEMENT_TAG, "Attribute", false)));
-        attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-        addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE"), attributes, parent, parent.getLastChild());
-        attributes = null;
-        addCreateElementRefAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_REFERENCE"), parent, parent.getLastChild());
-        addCreateElementRefAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF"), parent, parent.getLastChild());
-      }
-      attributes = null;
-      addCreateElementActionIfNotExist(manager, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANY_ATTRIBUTE"), attributes, parent, null);
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.NOTATION_ELEMENT_TAG, false))
-    { //
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, null);
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false))
-    { //
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-      boolean restrictionExists = elementExists(XSDConstants.RESTRICTION_ELEMENT_TAG, parent);
-      boolean unionExists = elementExists(XSDConstants.UNION_ELEMENT_TAG, parent);
-      boolean listExists = elementExists(XSDConstants.LIST_ELEMENT_TAG, parent);
-      if (!(restrictionExists || unionExists || listExists))
-      {
-        attributes = new ArrayList();
-        attributes.add(new DOMAttribute(XSDConstants.BASE_ATTRIBUTE, getBuiltInStringQName()));
-        addCreateElementActionIfNotExist(manager, XSDConstants.RESTRICTION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_RESTRICTION"), attributes, parent, null);
-        attributes = null;
-        attributes = new ArrayList();
-        attributes.add(new DOMAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE, getBuiltInStringQName()));
-        addCreateElementActionIfNotExist(manager, XSDConstants.UNION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_UNION"), attributes, parent, null);
-        attributes = null;
-        attributes = new ArrayList();
-        attributes.add(new DOMAttribute(XSDConstants.ITEMTYPE_ATTRIBUTE, getBuiltInStringQName()));
-        addCreateElementActionIfNotExist(manager, XSDConstants.LIST_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_LIST"), attributes, parent, null);
-        attributes = null;
-      }
-      if (XSDDOMHelper.inputEquals(parent.getParentNode(), XSDConstants.ELEMENT_ELEMENT_TAG, false))
-      {
-        manager.add(new Separator());
-        attributes = new ArrayList();
-        attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalTypeName("SimpleType")));
-        addMoveAnonymousGlobal(manager, XSDConstants.SIMPLETYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_MAKE_ANONYMOUS_TYPE_GLOBAL"), attributes, parent, null);
-        attributes = null;
-      }
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.GROUP_ELEMENT_TAG, false))
-    { //
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-      addCreateElementActionIfNotExist(manager, XSDConstants.SEQUENCE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_CONTENT_MODEL"), attributes, parent, null);
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, false))
-    { //
-      boolean annotationExists = false;
-      boolean contentExists = false;
-      boolean complexOrSimpleContentExists = false;
-      boolean anyAttributeExists = false;
-      Node annotationNode = null;
-      Node contentNode = null;
-      Node anyAttributeNode = null;
-      NodeList children = parent.getChildNodes();
-      for (int i = 0; i < children.getLength(); i++)
-      {
-        Node child = children.item(i);
-        if (child != null && child instanceof Element)
-        {
-          if (XSDDOMHelper.inputEquals((Element) child, XSDConstants.ANNOTATION_ELEMENT_TAG, false))
-          {
-            annotationNode = child;
-            annotationExists = true;
-          }
-          else if (XSDDOMHelper.inputEquals((Element) child, XSDConstants.SEQUENCE_ELEMENT_TAG, false) || XSDDOMHelper.inputEquals((Element) child, XSDConstants.ALL_ELEMENT_TAG, false)
-              || XSDDOMHelper.inputEquals((Element) child, XSDConstants.CHOICE_ELEMENT_TAG, false) || XSDDOMHelper.inputEquals((Element) child, XSDConstants.GROUP_ELEMENT_TAG, true)
-              || XSDDOMHelper.inputEquals((Element) child, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false) || XSDDOMHelper.inputEquals((Element) child, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
-          {
-            contentExists = true;
-            contentNode = child;
-            if (XSDDOMHelper.inputEquals((Element) child, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false) || XSDDOMHelper.inputEquals((Element) child, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
-            {
-              complexOrSimpleContentExists = true;
-            }
-          }
-          else if (XSDDOMHelper.inputEquals((Element) child, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, false))
-          {
-            anyAttributeExists = true;
-            anyAttributeNode = child;
-          }
-        }
-      }
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-      manager.add(new Separator());
-      addSetBaseTypeAction(manager, parent);
-      XSDConcreteComponent concreteComponent = getXSDSchema().getCorrespondingComponent(parent);
-      if (annotationExists)
-      {
-        if (!contentExists)
-        {
-          // Add content model
-          // addCreateElementAction(manager, XSDConstants.SEQUENCE_ELEMENT_TAG,
-          // XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_CONTENT_MODEL"),
-          // attributes, parent, annotationNode.getNextSibling());
-          if (concreteComponent != null)
-          {
-            AddModelGroupAction addModelGroupAction = new AddModelGroupAction(concreteComponent, XSDCompositor.SEQUENCE_LITERAL);
-            addModelGroupAction.setEnabled(!isReadOnly);
-            manager.add(addModelGroupAction);
-            
-            addModelGroupAction = new AddModelGroupAction(concreteComponent, XSDCompositor.CHOICE_LITERAL);
-            addModelGroupAction.setEnabled(!isReadOnly);
-            manager.add(addModelGroupAction);
-            
-            addModelGroupAction = new AddModelGroupAction(concreteComponent, XSDCompositor.ALL_LITERAL);
-            addModelGroupAction.setEnabled(!isReadOnly);
-            manager.add(addModelGroupAction);
-
-          }
-          // Temporarily remove this until we provide a graphical rep of these
-          // components
-          //          addCreateSimpleContentAction(manager,
-          // XSDConstants.SIMPLECONTENT_ELEMENT_TAG,
-          // XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_SIMPLE_CONTENT"),
-          // attributes,
-          // parent, annotationNode.getNextSibling());
-          //          addCreateSimpleContentAction(manager,
-          // XSDConstants.COMPLEXCONTENT_ELEMENT_TAG,
-          // XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_COMPLEX_CONTENT"),
-          // attributes,
-          // parent, annotationNode.getNextSibling());
-          addCreateElementRefAction(manager, XSDConstants.GROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ADD_GROUP_REF"), parent, annotationNode.getNextSibling());
-          attributes = null;
-        }
-      }
-      else
-      {
-        if (!contentExists)
-        {
-          // Add content model
-          // addCreateElementAction(manager, XSDConstants.SEQUENCE_ELEMENT_TAG,
-          // XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_CONTENT_MODEL"),
-          // attributes, parent, parent.getFirstChild());
-          if (concreteComponent != null)
-          {
-            AddModelGroupAction addModelGroupAction = new AddModelGroupAction(concreteComponent, XSDCompositor.SEQUENCE_LITERAL);
-            addModelGroupAction.setEnabled(!isReadOnly);
-            manager.add(addModelGroupAction);
-            
-            addModelGroupAction = new AddModelGroupAction(concreteComponent, XSDCompositor.CHOICE_LITERAL);
-            addModelGroupAction.setEnabled(!isReadOnly);
-            manager.add(addModelGroupAction);
-            
-            addModelGroupAction = new AddModelGroupAction(concreteComponent, XSDCompositor.ALL_LITERAL);
-            addModelGroupAction.setEnabled(!isReadOnly);
-            manager.add(addModelGroupAction);
-
-          }
-          // Temporarily remove this until we provide a graphical rep of these
-          // components
-          //          addCreateSimpleContentAction(manager,
-          // XSDConstants.SIMPLECONTENT_ELEMENT_TAG,
-          // XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_SIMPLE_CONTENT"),
-          // attributes,
-          // parent, parent.getFirstChild());
-          //          addCreateSimpleContentAction(manager,
-          // XSDConstants.COMPLEXCONTENT_ELEMENT_TAG,
-          // XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_COMPLEX_CONTENT"),
-          // attributes,
-          // parent, parent.getFirstChild());
-          addCreateElementRefAction(manager, XSDConstants.GROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ADD_GROUP_REF"), parent, parent.getFirstChild());
-          attributes = null;
-        }
-      }
-      manager.add(new Separator());
-      if (anyAttributeExists)
-      {
-        if (!complexOrSimpleContentExists)
-        {
-//          attributes = new ArrayList();
-//          attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewName(parent, XSDConstants.ATTRIBUTE_ELEMENT_TAG, "Attribute", false)));
-//          attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-//          addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE"), attributes, parent, anyAttributeNode);
-//          attributes = null;
-//          // ARE ATTRIBUTE GROUPS ALLOWED ?
-//          //          addCreateElementAction(manager,
-//          // XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG,
-//          // "_UI_ACTION_ADD_ATTRIBUTE_GROUP", attributes, parent,
-//          // anyAttributeNode);
-//          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_REFERENCE"), parent, anyAttributeNode);
-//          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF"), parent, anyAttributeNode);
-        }
-      }
-      else
-      {
-        if (!complexOrSimpleContentExists)
-        {
-//          attributes = new ArrayList();
-//          attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewName(parent, XSDConstants.ATTRIBUTE_ELEMENT_TAG, "Attribute", false)));
-//          attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-//          addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE"), attributes, parent, parent.getLastChild());
-//          attributes = null;
-//          // ARE ATTRIBUTE GROUPS ALLOWED ?
-//          //          addCreateElementAction(manager,
-//          // XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG,
-//          // "_UI_ACTION_ADD_ATTRIBUTE_GROUP", attributes, parent,
-//          // parent.getLastChild());
-//          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_REFERENCE"), parent, parent.getLastChild());
-//          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF"), parent, parent.getLastChild());
-//          attributes = null;
-//          addCreateElementActionIfNotExist(manager, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANY_ATTRIBUTE"), attributes, parent, parent.getLastChild());
-        }
-      }
-      if (XSDDOMHelper.inputEquals(parent.getParentNode(), XSDConstants.ELEMENT_ELEMENT_TAG, false))
-      {
-        manager.add(new Separator());
-        attributes = new ArrayList();
-        attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalTypeName("ComplexType")));
-        addMoveAnonymousGlobal(manager, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_MAKE_ANONYMOUS_TYPE_GLOBAL"), attributes, parent, null);
-        attributes = null;
-      }
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
-    { //
-      XSDDOMHelper xsdDOMHelper = new XSDDOMHelper();
-      Element derivedByNode = xsdDOMHelper.getDerivedByElement(parent);
-      String derivedByName = xsdDOMHelper.getDerivedByName(parent);
-      boolean annotationExists = addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent,
-          parent.getFirstChild());
-      manager.add(new Separator());
-      if (derivedByNode == null)
-      {
-        TypesHelper typesHelper = new TypesHelper(getXSDSchema());
-        String firstType = "";
-        List listOfCT = typesHelper.getUserComplexTypeNamesList();
-        if (listOfCT.size() > 0)
-        {
-          firstType = (String) (listOfCT).get(0);
-        }
-        attributes = new ArrayList();
-        attributes.add(new DOMAttribute(XSDConstants.BASE_ATTRIBUTE, firstType));
-        addCreateElementActionIfNotExist(manager, XSDConstants.RESTRICTION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_RESTRICTION"), attributes, parent, null);
-        addCreateElementActionIfNotExist(manager, XSDConstants.EXTENSION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_EXTENSION"), attributes, parent, null);
-      }
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
-    { //
-      XSDDOMHelper xsdDOMHelper = new XSDDOMHelper();
-      Element derivedByNode = xsdDOMHelper.getDerivedByElement(parent);
-      String derivedByName = xsdDOMHelper.getDerivedByName(parent);
-      boolean annotationExists = addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent,
-          parent.getFirstChild());
-      manager.add(new Separator());
-      if (derivedByNode == null)
-      {
-        TypesHelper typesHelper = new TypesHelper(getXSDSchema());
-        String firstType = "";
-        List listOfCT = typesHelper.getUserComplexTypeNamesList();
-        if (listOfCT.size() > 0)
-        {
-          firstType = (String) (listOfCT).get(0);
-        }
-        attributes = new ArrayList();
-        attributes.add(new DOMAttribute(XSDConstants.BASE_ATTRIBUTE, firstType));
-        addCreateElementActionIfNotExist(manager, XSDConstants.RESTRICTION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_RESTRICTION"), attributes, parent, null);
-        addCreateElementActionIfNotExist(manager, XSDConstants.EXTENSION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_EXTENSION"), attributes, parent, null);
-      }
-      /*
-       * for combined SimpleContent and derivedBy nodes (but without
-       * restrictions) XSDDOMHelper xsdDOMHelper = new XSDDOMHelper(); Element
-       * derivedByNode = xsdDOMHelper.getDerivedByElement(parent); String
-       * derivedByName = xsdDOMHelper.getDerivedByName(parent);
-       * 
-       * if (derivedByNode != null) { if (derivedByName.equals("restriction")) {
-       * addCreateElementActionIfNotExist(manager,
-       * XSDConstants.SIMPLETYPE_ELEMENT_TAG, "_UI_ACTION_ADD_SIMPLE_TYPE",
-       * attributes, derivedByNode, relativeNode); }
-       * addCreateElementActionIfNotExist(manager,
-       * XSDConstants.ANNOTATION_ELEMENT_TAG, "_UI_ACTION_ADD_ANNOTATION",
-       * attributes, derivedByNode, relativeNode);
-       * addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG,
-       * "_UI_ACTION_ADD_ATTRIBUTE", attributes, derivedByNode, relativeNode);
-       * attributes = new ArrayList(); attributes.add(new
-       * DOMAttribute(XSDConstants.REF_ATTRIBUTE, ""));
-       * addCreateElementAction(manager,
-       * XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG,
-       * "_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF", attributes, derivedByNode,
-       * relativeNode); attributes = new ArrayList();
-       * addCreateElementActionIfNotExist(manager,
-       * XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, "_UI_ACTION_ADD_ANY_ATTRIBUTE",
-       * attributes, derivedByNode, relativeNode); } else { TypesHelper
-       * typesHelper = new TypesHelper(getXSDSchema()); String firstType =
-       * (String)(typesHelper.getBuiltInTypeNamesList()).get(0); attributes =
-       * new ArrayList(); attributes.add(new
-       * DOMAttribute(XSDConstants.BASE_ATTRIBUTE, firstType));
-       * 
-       * addCreateElementActionIfNotExist(manager,
-       * XSDConstants.ANNOTATION_ELEMENT_TAG, "_UI_ACTION_ADD_ANNOTATION",
-       * attributes, parent, relativeNode);
-       * addCreateElementActionIfNotExist(manager,
-       * XSDConstants.RESTRICTION_ELEMENT_TAG, "_UI_ACTION_ADD_RESTRICTION",
-       * attributes, parent, relativeNode);
-       * addCreateElementActionIfNotExist(manager,
-       * XSDConstants.EXTENSION_ELEMENT_TAG, "_UI_ACTION_ADD_EXTENSION",
-       * attributes, parent, relativeNode); }
-       */
-      //      addCreateElementActionIfNotExist(manager,
-      // XSDConstants.SEQUENCE_ELEMENT_TAG,
-      // "_UI_ACTION_ADD_CONTENT_MODEL", attributes, parent, relativeNode);
-      //      attributes = new ArrayList();
-      //      attributes.add(new DOMAttribute(XSDConstants.REF_ATTRIBUTE, ""));
-      //      addCreateElementActionIfNotExist(manager,
-      // XSDConstants.GROUP_ELEMENT_TAG,
-      // "_UI_ADD_GROUP_REF", attributes, parent, relativeNode);
-      //      addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG,
-      // "_UI_ACTION_ADD_ATTRIBUTE", attributes, parent, relativeNode);
-      //      attributes = new ArrayList();
-      //      attributes.add(new DOMAttribute(XSDConstants.REF_ATTRIBUTE, ""));
-      //      addCreateElementAction(manager,
-      // XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG,
-      // "_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF", attributes, parent,
-      // relativeNode);
-      //      addCreateElementActionIfNotExist(manager,
-      // XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, "_UI_ACTION_ADD_ANY_ATTRIBUTE",
-      // attributes, parent, relativeNode);
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.RESTRICTION_ELEMENT_TAG, false))
-    {
-      Element parentNode = (Element) parent.getParentNode();
-      // <simpleContent>
-      //    <restriction>
-      //      ...
-      if (XSDDOMHelper.inputEquals(parentNode, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
-      {
-        boolean annotationExists = false;
-        boolean anyAttributeExists = false;
-        Node anyAttributeNode = null;
-        anyAttributeExists = elementExists(XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, parent);
-        annotationExists = addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent
-            .getFirstChild());
-        if (annotationExists)
-        {
-          Node annotationNode = getFirstChildNodeIfExists(parent, XSDConstants.ANNOTATION_ELEMENT_TAG, false);
-          //addCreateLocalSimpleTypeActionIfNotExist(manager,
-          // XSDConstants.SIMPLETYPE_ELEMENT_TAG,
-          // XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_LOCAL_SIMPLE_TYPE"),
-          // attributes, parent, annotationNode.getNextSibling());
-        }
-        else
-        {
-          //addCreateLocalSimpleTypeActionIfNotExist(manager,
-          // XSDConstants.SIMPLETYPE_ELEMENT_TAG,
-          // XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_LOCAL_SIMPLE_TYPE"),
-          // attributes, parent, parent.getFirstChild());
-        }
-        /*
-         * addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG,
-         * "_UI_ACTION_ADD_ATTRIBUTE", attributes, parent, relativeNode);
-         * attributes = new ArrayList(); attributes.add(new
-         * DOMAttribute(XSDConstants.REF_ATTRIBUTE, ""));
-         * addCreateElementAction(manager,
-         * XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG,
-         * "_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF", attributes, parent,
-         * relativeNode); attributes = new ArrayList();
-         * addCreateElementActionIfNotExist(manager,
-         * XSDConstants.ANYATTRIBUTE_ELEMENT_TAG,
-         * "_UI_ACTION_ADD_ANY_ATTRIBUTE", attributes, parent, relativeNode);
-         */
-        manager.add(new Separator());
-        if (anyAttributeExists)
-        {
-          anyAttributeNode = getFirstChildNodeIfExists(parent, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, false);
-          attributes = new ArrayList();
-          attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewName(parent, XSDConstants.ATTRIBUTE_ELEMENT_TAG, "Attribute", false)));
-          attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-          addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE"), attributes, parent, anyAttributeNode);
-          attributes = null;
-          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_REFERENCE"), parent, anyAttributeNode);
-          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF"), parent, anyAttributeNode);
-        }
-        else
-        {
-          attributes = new ArrayList();
-          attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewName(parent, XSDConstants.ATTRIBUTE_ELEMENT_TAG, "Attribute", false)));
-          attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-          addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE"), attributes, parent, parent.getLastChild());
-          attributes = null;
-          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_REFERENCE"), parent, parent.getLastChild());
-          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF"), parent, parent.getLastChild());
-        }
-        attributes = null;
-        addCreateElementActionIfNotExist(manager, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANY_ATTRIBUTE"), attributes, parent, parent.getLastChild());
-      }
-      // <simpleType>
-      //    <restriction>
-      //      ...
-      else if (XSDDOMHelper.inputEquals(parentNode, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false))
-      {
-        boolean annotationExists = false;
-        attributes = null;
-        annotationExists = addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent
-            .getFirstChild());
-        if (annotationExists)
-        {
-          Node annotationNode = getFirstChildNodeIfExists(parent, XSDConstants.ANNOTATION_ELEMENT_TAG, false);
-          addCreateLocalSimpleTypeActionIfNotExist(manager, XSDConstants.SIMPLETYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_LOCAL_SIMPLE_TYPE"), attributes, parent, annotationNode
-              .getNextSibling());
-        }
-        else
-        {
-          addCreateLocalSimpleTypeActionIfNotExist(manager, XSDConstants.SIMPLETYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_LOCAL_SIMPLE_TYPE"), attributes, parent, parent
-              .getFirstChild());
-        }
-        manager.add(new Separator());
-        addCreateElementAction(manager, XSDConstants.PATTERN_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_PATTERN"), attributes, parent, null);
-        addCreateElementAction(manager, XSDConstants.ENUMERATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ENUM"), attributes, parent, null);
-        addEnumsAction(manager, XSDConstants.ENUMERATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ENUMS"), attributes, parent, null);
-      }
-      // <complexContent>
-      //    <restriction>
-      //      ...
-      else if (XSDDOMHelper.inputEquals(parentNode, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
-      {
-        boolean annotationExists = false;
-        boolean anyAttributeExists = false;
-        Node anyAttributeNode = null;
-        boolean sequenceExists = elementExists(XSDConstants.SEQUENCE_ELEMENT_TAG, parent);
-        boolean choiceExists = elementExists(XSDConstants.CHOICE_ELEMENT_TAG, parent);
-        boolean allExists = elementExists(XSDConstants.ALL_ELEMENT_TAG, parent);
-        boolean groupExists = elementExists(XSDConstants.GROUP_ELEMENT_TAG, parent);
-        anyAttributeExists = elementExists(XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, parent);
-        annotationExists = addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent
-            .getFirstChild());
-        manager.add(new Separator());
-        if (annotationExists)
-        {
-          if (!(sequenceExists || choiceExists || allExists || groupExists))
-          {
-            Node annotationNode = getFirstChildNodeIfExists(parent, XSDConstants.ANNOTATION_ELEMENT_TAG, false);
-            addCreateElementActionIfNotExist(manager, XSDConstants.SEQUENCE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_CONTENT_MODEL"), attributes, parent, annotationNode
-                .getNextSibling());
-            //            addCreateGroupAction(manager, XSDConstants.GROUP_ELEMENT_TAG,
-            // "_UI_ACTION_ADD_GROUP", attributes, parent,
-            // annotationNode.getNextSibling());
-            addCreateElementRefAction(manager, XSDConstants.GROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ADD_GROUP_REF"), parent, annotationNode.getNextSibling());
-          }
-        }
-        else
-        {
-          if (!(sequenceExists || choiceExists || allExists || groupExists))
-          {
-            addCreateElementActionIfNotExist(manager, XSDConstants.SEQUENCE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_CONTENT_MODEL"), attributes, parent, parent.getFirstChild());
-            //            addCreateGroupAction(manager, XSDConstants.GROUP_ELEMENT_TAG,
-            // "_UI_ACTION_ADD_GROUP", attributes, parent,
-            // parent.getFirstChild());
-            addCreateElementRefAction(manager, XSDConstants.GROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ADD_GROUP_REF"), parent, parent.getFirstChild());
-          }
-        }
-        manager.add(new Separator());
-        if (anyAttributeExists)
-        {
-          anyAttributeNode = getFirstChildNodeIfExists(parent, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, false);
-          attributes = new ArrayList();
-          attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewName(parent, XSDConstants.ATTRIBUTE_ELEMENT_TAG, "Attribute", false)));
-          attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-          addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE"), attributes, parent, anyAttributeNode);
-          attributes = null;
-          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_REFERENCE"), parent, anyAttributeNode);
-          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF"), parent, anyAttributeNode);
-        }
-        else
-        {
-          attributes = new ArrayList();
-          attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewName(parent, XSDConstants.ATTRIBUTE_ELEMENT_TAG, "Attribute", false)));
-          attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-          addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE"), attributes, parent, parent.getLastChild());
-          attributes = null;
-          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_REFERENCE"), parent, parent.getLastChild());
-          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF"), parent, parent.getLastChild());
-        }
-        attributes = null;
-        addCreateElementActionIfNotExist(manager, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANY_ATTRIBUTE"), attributes, parent, parent.getLastChild());
-      }
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.EXTENSION_ELEMENT_TAG, false))
-    { //
-      Element parentNode = (Element) parent.getParentNode();
-      // <simpleContent>
-      //    <extension>
-      //      ...
-      if (XSDDOMHelper.inputEquals(parentNode, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
-      {
-        boolean annotationExists = false;
-        boolean anyAttributeExists = false;
-        Node anyAttributeNode = null;
-        anyAttributeExists = elementExists(XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, parent);
-        annotationExists = addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent
-            .getFirstChild());
-        manager.add(new Separator());
-        if (anyAttributeExists)
-        {
-          anyAttributeNode = getFirstChildNodeIfExists(parent, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, false);
-          attributes = new ArrayList();
-          attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewName(parent, XSDConstants.ATTRIBUTE_ELEMENT_TAG, "Attribute", false)));
-          attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-          addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE"), attributes, parent, anyAttributeNode);
-          attributes = null;
-          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_REFERENCE"), parent, anyAttributeNode);
-          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF"), parent, anyAttributeNode);
-        }
-        else
-        {
-          attributes = new ArrayList();
-          attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewName(parent, XSDConstants.ATTRIBUTE_ELEMENT_TAG, "Attribute", false)));
-          attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-          addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE"), attributes, parent, parent.getLastChild());
-          attributes = null;
-          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_REFERENCE"), parent, parent.getLastChild());
-          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF"), parent, parent.getLastChild());
-        }
-        attributes = null;
-        addCreateElementActionIfNotExist(manager, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANY_ATTRIBUTE"), attributes, parent, parent.getLastChild());
-      }
-      // <complexContent>
-      //    <extension>
-      //      ...
-      else if (XSDDOMHelper.inputEquals(parentNode, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
-      {
-        boolean annotationExists = false;
-        boolean anyAttributeExists = false;
-        Node anyAttributeNode = null;
-        boolean sequenceExists = elementExists(XSDConstants.SEQUENCE_ELEMENT_TAG, parent);
-        boolean choiceExists = elementExists(XSDConstants.CHOICE_ELEMENT_TAG, parent);
-        boolean allExists = elementExists(XSDConstants.ALL_ELEMENT_TAG, parent);
-        boolean groupExists = elementExists(XSDConstants.GROUP_ELEMENT_TAG, parent);
-        anyAttributeExists = elementExists(XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, parent);
-        annotationExists = addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent
-            .getFirstChild());
-        manager.add(new Separator());
-        if (annotationExists)
-        {
-          if (!(sequenceExists || choiceExists || allExists || groupExists))
-          {
-            Node annotationNode = getFirstChildNodeIfExists(parent, XSDConstants.ANNOTATION_ELEMENT_TAG, false);
-            addCreateElementActionIfNotExist(manager, XSDConstants.SEQUENCE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_CONTENT_MODEL"), attributes, parent, annotationNode
-                .getNextSibling());
-            //            addCreateGroupAction(manager, XSDConstants.GROUP_ELEMENT_TAG,
-            // XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_GROUP"), attributes,
-            // parent,
-            // annotationNode.getNextSibling());
-            addCreateElementRefAction(manager, XSDConstants.GROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ADD_GROUP_REF"), parent, annotationNode.getNextSibling());
-          }
-        }
-        else
-        {
-          if (!(sequenceExists || choiceExists || allExists || groupExists))
-          {
-            addCreateElementActionIfNotExist(manager, XSDConstants.SEQUENCE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_CONTENT_MODEL"), attributes, parent, parent.getFirstChild());
-            //            addCreateGroupAction(manager, XSDConstants.GROUP_ELEMENT_TAG,
-            // XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_GROUP"), attributes,
-            // parent,
-            // parent.getFirstChild());
-            addCreateElementRefAction(manager, XSDConstants.GROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ADD_GROUP_REF"), parent, parent.getFirstChild());
-          }
-        }
-        manager.add(new Separator());
-        if (anyAttributeExists)
-        {
-          anyAttributeNode = getFirstChildNodeIfExists(parent, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, false);
-          attributes = new ArrayList();
-          attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewName(parent, XSDConstants.ATTRIBUTE_ELEMENT_TAG, "Attribute", false)));
-          attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-          addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE"), attributes, parent, anyAttributeNode);
-          attributes = null;
-          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_REFERENCE"), parent, anyAttributeNode);
-          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF"), parent, anyAttributeNode);
-        }
-        else
-        {
-          attributes = new ArrayList();
-          attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewName(parent, XSDConstants.ATTRIBUTE_ELEMENT_TAG, "Attribute", false)));
-          attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-          addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE"), attributes, parent, parent.getLastChild());
-          attributes = null;
-          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_REFERENCE"), parent, parent.getLastChild());
-          addCreateElementRefAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF"), parent, parent.getLastChild());
-        }
-        attributes = null;
-        addCreateElementActionIfNotExist(manager, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANY_ATTRIBUTE"), attributes, parent, parent.getLastChild());
-      }
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.REDEFINE_ELEMENT_TAG, false))
-    { //
-      addCreateElementAction(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, null);
-      addCreateElementAction(manager, XSDConstants.SIMPLETYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_SIMPLE_TYPE"), attributes, parent, null);
-      addCreateElementAction(manager, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_COMPLEX_TYPE"), attributes, parent, null);
-      addCreateGroupAction(manager, XSDConstants.GROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_GROUP"), attributes, parent, null);
-      addCreateElementAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP"), attributes, parent, null);
-      manager.add(new Separator());
-      addOpenSchemaAction(manager, XSDEditorPlugin.getXSDString("_UI_ACTION_OPEN_SCHEMA"), parent);
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.LIST_ELEMENT_TAG, false))
-    { //
-      boolean annotationExists = addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent,
-          parent.getFirstChild());
-      manager.add(new Separator());
-      addCreateLocalSimpleTypeActionIfNotExist(manager, XSDConstants.SIMPLETYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_LOCAL_SIMPLE_TYPE"), attributes, parent, null);
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.UNION_ELEMENT_TAG, false))
-    { //
-      boolean annotationExists = addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent,
-          parent.getFirstChild());
-      manager.add(new Separator());
-      addCreateLocalSimpleTypeAction(manager, XSDConstants.SIMPLETYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_LOCAL_SIMPLE_TYPE"), attributes, parent, null);
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.UNIQUE_ELEMENT_TAG, false))
-    { //
-      boolean annotationExists = addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent,
-          parent.getFirstChild());
-      manager.add(new Separator());
-      attributes = new ArrayList();
-      attributes.add(new DOMAttribute(XSDConstants.XPATH_ATTRIBUTE, ""));
-      if (annotationExists)
-      {
-        Node annotationNode = getFirstChildNodeIfExists(parent, XSDConstants.ANNOTATION_ELEMENT_TAG, false);
-        addCreateElementActionIfNotExist(manager, XSDConstants.SELECTOR_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_SELECTOR"), attributes, parent, annotationNode.getNextSibling());
-      }
-      else
-      {
-        addCreateElementActionIfNotExist(manager, XSDConstants.SELECTOR_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_SELECTOR"), attributes, parent, parent.getFirstChild());
-      }
-      attributes = new ArrayList();
-      attributes.add(new DOMAttribute(XSDConstants.XPATH_ATTRIBUTE, ""));
-      addCreateElementAction(manager, XSDConstants.FIELD_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_FIELD"), attributes, parent, null);
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.KEYREF_ELEMENT_TAG, false))
-    { //
-      boolean annotationExists = addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent,
-          parent.getFirstChild());
-      manager.add(new Separator());
-      attributes = new ArrayList();
-      attributes.add(new DOMAttribute(XSDConstants.XPATH_ATTRIBUTE, ""));
-      if (annotationExists)
-      {
-        Node annotationNode = getFirstChildNodeIfExists(parent, XSDConstants.ANNOTATION_ELEMENT_TAG, false);
-        addCreateElementActionIfNotExist(manager, XSDConstants.SELECTOR_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_SELECTOR"), attributes, parent, annotationNode.getNextSibling());
-      }
-      else
-      {
-        addCreateElementActionIfNotExist(manager, XSDConstants.SELECTOR_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_SELECTOR"), attributes, parent, parent.getFirstChild());
-      }
-      attributes = new ArrayList();
-      attributes.add(new DOMAttribute(XSDConstants.XPATH_ATTRIBUTE, ""));
-      addCreateElementAction(manager, XSDConstants.FIELD_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_FIELD"), attributes, parent, null);
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.KEY_ELEMENT_TAG, false))
-    { //
-      boolean annotationExists = addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent,
-          parent.getFirstChild());
-      manager.add(new Separator());
-      attributes = new ArrayList();
-      attributes.add(new DOMAttribute(XSDConstants.XPATH_ATTRIBUTE, ""));
-      if (annotationExists)
-      {
-        Node annotationNode = getFirstChildNodeIfExists(parent, XSDConstants.ANNOTATION_ELEMENT_TAG, false);
-        addCreateElementActionIfNotExist(manager, XSDConstants.SELECTOR_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_SELECTOR"), attributes, parent, annotationNode.getNextSibling());
-      }
-      else
-      {
-        addCreateElementActionIfNotExist(manager, XSDConstants.SELECTOR_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_SELECTOR"), attributes, parent, parent.getFirstChild());
-      }
-      attributes = new ArrayList();
-      attributes.add(new DOMAttribute(XSDConstants.XPATH_ATTRIBUTE, ""));
-      addCreateElementAction(manager, XSDConstants.FIELD_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_FIELD"), attributes, parent, null);
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.IMPORT_ELEMENT_TAG, false))
-    {
-      addCreateElementActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-      manager.add(new Separator());
-      addOpenSchemaAction(manager, XSDEditorPlugin.getXSDString("_UI_ACTION_OPEN_SCHEMA"), parent);
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.SELECTOR_ELEMENT_TAG, false))
-    {
-      addCreateElementActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.FIELD_ELEMENT_TAG, false))
-    {
-      addCreateElementActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.INCLUDE_ELEMENT_TAG, false))
-    {
-      addCreateElementActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-      manager.add(new Separator());
-      addOpenSchemaAction(manager, XSDEditorPlugin.getXSDString("_UI_ACTION_OPEN_SCHEMA"), parent);
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.ANY_ELEMENT_TAG, false))
-    {
-      addCreateElementActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, false))
-    {
-      addCreateElementActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.ATTRIBUTE_ELEMENT_TAG, false))
-    {
-      addCreateElementActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-      addCreateLocalSimpleTypeActionIfNotExist(manager, XSDConstants.SIMPLETYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_LOCAL_SIMPLE_TYPE"), attributes, parent, null);
-    }
-    // Facets all have optional annotation nodes
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.MINEXCLUSIVE_ELEMENT_TAG, false))
-    {
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.MININCLUSIVE_ELEMENT_TAG, false))
-    {
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.MAXEXCLUSIVE_ELEMENT_TAG, false))
-    {
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.MAXINCLUSIVE_ELEMENT_TAG, false))
-    {
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.TOTALDIGITS_ELEMENT_TAG, false))
-    {
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.FRACTIONDIGITS_ELEMENT_TAG, false))
-    {
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.LENGTH_ELEMENT_TAG, false))
-    {
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.MINLENGTH_ELEMENT_TAG, false))
-    {
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.MAXLENGTH_ELEMENT_TAG, false))
-    {
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.ENUMERATION_ELEMENT_TAG, false))
-    {
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.WHITESPACE_ELEMENT_TAG, false))
-    {
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.PATTERN_ELEMENT_TAG, false))
-    {
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, true))
-    {
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.ATTRIBUTE_ELEMENT_TAG, true))
-    {
-      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-    }
-    else if (XSDDOMHelper.inputEquals(parent, XSDConstants.ELEMENT_ELEMENT_TAG, true))
-    {
-      // TODO common this up with the non-ref case
-//      addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-      XSDConcreteComponent xsdConcreteComponent = (XSDConcreteComponent)getXSDSchema().getCorrespondingComponent(parent);
-      if (xsdConcreteComponent instanceof XSDElementDeclaration)
-      {
-        XSDElementDeclaration xsdElementDeclaration = (XSDElementDeclaration)xsdConcreteComponent;
-        XSDElementDeclaration resolvedElementDeclaration = xsdElementDeclaration.getResolvedElementDeclaration();
-        if (resolvedElementDeclaration.getRootContainer() == xsdSchema)
-        {
-          parent = resolvedElementDeclaration.getElement(); 
-        
-          Element parentNode = (Element) parent.getParentNode();
-
-          boolean isGlobalElement = false;
-          if (XSDDOMHelper.inputEquals(parentNode, XSDConstants.SCHEMA_ELEMENT_TAG, false))
-          {
-            isGlobalElement = true;
-          }
-          boolean annotationExists = addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent,
-              parent.getFirstChild());
-          boolean simpleTypeExists = elementExists(XSDConstants.SIMPLETYPE_ELEMENT_TAG, parent);
-          boolean complexTypeExists = elementExists(XSDConstants.COMPLEXTYPE_ELEMENT_TAG, parent);
-          manager.add(new Separator());
-          if (annotationExists)
-          {
-            Node annotationNode = getFirstChildNodeIfExists(parent, XSDConstants.ANNOTATION_ELEMENT_TAG, false);
-            if (!(simpleTypeExists || complexTypeExists) && annotationNode != null)
-            {
-              //addCreateLocalSimpleTypeActionIfNotExist(manager,
-              // XSDConstants.SIMPLETYPE_ELEMENT_TAG,
-              // XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_LOCAL_SIMPLE_TYPE"),
-              // attributes, parent, annotationNode.getNextSibling());
-              //addCreateLocalComplexTypeActionIfNotExist(manager,
-              // XSDConstants.COMPLEXTYPE_ELEMENT_TAG, "Add Local Complex Type",
-              // attributes, parent, annotationNode.getNextSibling());
-              manager.add(new Separator());
-            }
-          }
-          else
-          {
-            // Should still be able to add the content models if the anonymous type
-            // exists,
-            // ie. with attributes
-            //        if (!(simpleTypeExists || complexTypeExists))
-            //        {
-            //addCreateLocalSimpleTypeActionIfNotExist(manager,
-            // XSDConstants.SIMPLETYPE_ELEMENT_TAG,
-            // XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_LOCAL_SIMPLE_TYPE"),
-            // attributes, parent, parent.getFirstChild());
-            //addCreateLocalComplexTypeActionIfNotExist(manager,
-            // XSDConstants.COMPLEXTYPE_ELEMENT_TAG, "Add Local Complex Type",
-            // attributes, parent, parent.getFirstChild());
-            XSDConcreteComponent concreteComponent = getXSDSchema().getCorrespondingComponent(parent);
-            if (concreteComponent != null)
-            {
-              AddModelGroupAction addModelGroupAction = new AddModelGroupAction(concreteComponent, XSDCompositor.SEQUENCE_LITERAL);
-              addModelGroupAction.setEnabled(!isReadOnly);
-              manager.add(addModelGroupAction);
-              
-              addModelGroupAction = new AddModelGroupAction(concreteComponent, XSDCompositor.CHOICE_LITERAL);
-              addModelGroupAction.setEnabled(!isReadOnly);
-              manager.add(addModelGroupAction);
-              
-              addModelGroupAction = new AddModelGroupAction(concreteComponent, XSDCompositor.ALL_LITERAL);
-              addModelGroupAction.setEnabled(!isReadOnly);
-              manager.add(addModelGroupAction);
-              
-              manager.add(new Separator());
-            }
-            //        }
-          }
-    //      attributes = new ArrayList();
-    //      attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, "New_Unique"));
-    //      addCreateIdentityConstraintsAction(manager, XSDConstants.UNIQUE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_UNIQUE"), attributes, parent, null);
-    //      attributes = new ArrayList();
-    //      attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, "New_Key"));
-    //      addCreateIdentityConstraintsAction(manager, XSDConstants.KEY_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_KEY"), attributes, parent, null);
-    //      attributes = new ArrayList();
-    //      attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, "New_KeyRef"));
-    //      addCreateIdentityConstraintsAction(manager, XSDConstants.KEYREF_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_KEY_REF"), attributes, parent, null);
-          XSDDOMHelper domHelper = new XSDDOMHelper();
-          Element anonymousType = (Element) domHelper.getChildNode(parent, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-          if (anonymousType != null)
-          {
-            manager.add(new Separator());
-            attributes = new ArrayList();
-            attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalTypeName("ComplexType")));
-            addMoveAnonymousGlobal(manager, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_MAKE_ANONYMOUS_TYPE_GLOBAL"), attributes, anonymousType, null);
-            attributes = null;
-          }
-          anonymousType = (Element) domHelper.getChildNode(parent, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-          if (anonymousType != null)
-          {
-            manager.add(new Separator());
-            attributes = new ArrayList();
-            attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalTypeName("SimpleType")));
-            addMoveAnonymousGlobal(manager, XSDConstants.SIMPLETYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_MAKE_ANONYMOUS_TYPE_GLOBAL"), attributes, anonymousType, null);
-            attributes = null;
-          }
-        }
-      }
-    }
-    /*
-     * These have none else if (XSDDOMHelper.inputEquals(parent,
-     * XSDConstants.DOCUMENTATION_ELEMENT_TAG, false)) { } else if
-     * (XSDDOMHelper.inputEquals(parent, XSDConstants.APPINFO_ELEMENT_TAG,
-     * false)) { }
-     */
-    
-    XSDConcreteComponent concreteComponent = getXSDSchema().getCorrespondingComponent(parent);
-    if (concreteComponent instanceof XSDNamedComponent)
-    {
-      if (selectionProvider instanceof XSDSelectionManager)
-      {
-        if (sourceContext instanceof AbstractEditPartViewer)
-        {
-          AbstractEditPartViewer viewer = (AbstractEditPartViewer)sourceContext;
-        
-          Object obj = viewer.getSelectedEditParts().get(0);
-          
-          if (obj instanceof GraphicalEditPart)
-          {
-            boolean canEdit = true;
-            if (obj instanceof ElementDeclarationEditPart)
-            {
-              XSDElementDeclaration elem = ((ElementDeclarationEditPart)obj).getXSDElementDeclaration();
-              if (elem.isElementDeclarationReference())
-              {
-                canEdit = false;
-              }
-            }
-            else if (obj instanceof ModelGroupDefinitionEditPart)
-            {
-              XSDModelGroupDefinition group = ((ModelGroupDefinitionEditPart)obj).getXSDModelGroupDefinition();
-              if (group.isModelGroupDefinitionReference())
-              {
-                canEdit = false;
-              }
-            }
-            else if (obj instanceof ComplexTypeDefinitionEditPart)
-            {
-              XSDComplexTypeDefinition ct = ((ComplexTypeDefinitionEditPart)obj).getXSDComplexTypeDefinition();
-              if (ct.getName() == null) // anonymous
-              {
-                canEdit = false;
-              }
-            }
-            else if (obj instanceof TopLevelComponentEditPart)
-            {
-              canEdit = true;
-            }
-            else
-            {
-              canEdit = false;
-            }
-            if (canEdit)
-            {
-              GraphRenameAction graphRenameAction = new GraphRenameAction((XSDNamedComponent)concreteComponent, (GraphicalEditPart)obj);
-              manager.add(graphRenameAction);
-            }
-          }
-        }
-      }
-    }
-  }
-
-  protected void addContextInsertItems(IMenuManager manager, Element parent, Element currentElement, Node relativeNode)
-  {
-    ArrayList attributes = null;
-    if (XSDDOMHelper.inputEquals(currentElement, XSDConstants.INCLUDE_ELEMENT_TAG, false) || XSDDOMHelper.inputEquals(currentElement, XSDConstants.IMPORT_ELEMENT_TAG, false)
-        || XSDDOMHelper.inputEquals(currentElement, XSDConstants.REDEFINE_ELEMENT_TAG, false) || XSDDOMHelper.inputEquals(currentElement, XSDConstants.ANNOTATION_ELEMENT_TAG, false))
-    {
-      if (XSDDOMHelper.inputEquals(parent, XSDConstants.SCHEMA_ELEMENT_TAG, false))
-      {
-        attributes = new ArrayList();
-        attributes.add(new DOMAttribute(XSDConstants.SCHEMALOCATION_ATTRIBUTE, ""));
-        addCreateElementAction(manager, XSDConstants.INCLUDE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_INCLUDE"), attributes, parent, relativeNode);
-        addCreateElementAction(manager, XSDConstants.IMPORT_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_IMPORT"), null, parent, relativeNode);
-        addCreateElementAction(manager, XSDConstants.REDEFINE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_REDEFINE"), attributes, parent, relativeNode);
-        attributes = null;
-        addCreateElementAction(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), null, parent, relativeNode);
-      }
-    }
-    else if (XSDDOMHelper.inputEquals(currentElement, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false))
-    {
-      if (XSDDOMHelper.inputEquals(parent, XSDConstants.SCHEMA_ELEMENT_TAG, false))
-      {
-        addSchemaElementItems(manager, parent, relativeNode);
-      }
-      //      else if (XSDDOMHelper.inputEquals(parent,
-      // XSDConstants.LIST_ELEMENT_TAG,
-      // false))
-      //      {
-      //        addCreateElementAction(manager, XSDConstants.SIMPLETYPE_ELEMENT_TAG,
-      // "_UI_ACTION_ADD_SIMPLE_TYPE", attributes, parent, relativeNode);
-      //      }
-      else if (XSDDOMHelper.inputEquals(parent, XSDConstants.UNION_ELEMENT_TAG, false))
-      {
-        addCreateLocalSimpleTypeAction(manager, XSDConstants.SIMPLETYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_LOCAL_SIMPLE_TYPE"), attributes, parent, relativeNode);
-      }
-    }
-    else if (XSDDOMHelper.inputEquals(currentElement, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, false))
-    {
-      if (XSDDOMHelper.inputEquals(parent, XSDConstants.SCHEMA_ELEMENT_TAG, false))
-      {
-        addSchemaElementItems(manager, parent, relativeNode);
-      }
-    }
-    else if (XSDDOMHelper.inputEquals(currentElement, XSDConstants.GROUP_ELEMENT_TAG, false))
-    {
-      if (XSDDOMHelper.inputEquals(parent, XSDConstants.SCHEMA_ELEMENT_TAG, false))
-      {
-        addSchemaElementItems(manager, parent, relativeNode);
-      }
-    }
-    else if (XSDDOMHelper.inputEquals(currentElement, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, false))
-    {
-      if (XSDDOMHelper.inputEquals(parent, XSDConstants.SCHEMA_ELEMENT_TAG, false))
-      {
-        addSchemaElementItems(manager, parent, relativeNode);
-      }
-    }
-    else if (XSDDOMHelper.inputEquals(currentElement, XSDConstants.ELEMENT_ELEMENT_TAG, false))
-    {
-      if (XSDDOMHelper.inputEquals(parent, XSDConstants.SCHEMA_ELEMENT_TAG, false))
-      {
-        addSchemaElementItems(manager, parent, relativeNode);
-      }
-    }
-    else if (XSDDOMHelper.inputEquals(currentElement, XSDConstants.ATTRIBUTE_ELEMENT_TAG, false))
-    {
-      if (XSDDOMHelper.inputEquals(parent, XSDConstants.SCHEMA_ELEMENT_TAG, false))
-      {
-        addSchemaElementItems(manager, parent, relativeNode);
-      }
-    }
-    else if (XSDDOMHelper.inputEquals(currentElement, XSDConstants.NOTATION_ELEMENT_TAG, false))
-    {
-      if (XSDDOMHelper.inputEquals(parent, XSDConstants.SCHEMA_ELEMENT_TAG, false))
-      {
-        addSchemaElementItems(manager, parent, relativeNode);
-      }
-    }
-    else if (XSDDOMHelper.inputEquals(currentElement, XSDConstants.DOCUMENTATION_ELEMENT_TAG, false))
-    {
-      addCreateElementAction(manager, XSDConstants.DOCUMENTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_DOC"), attributes, parent, relativeNode);
-      addCreateElementAction(manager, XSDConstants.APPINFO_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_APP_INFO"), attributes, parent, relativeNode);
-    }
-    else if (XSDDOMHelper.inputEquals(currentElement, XSDConstants.APPINFO_ELEMENT_TAG, false))
-    {
-      addCreateElementAction(manager, XSDConstants.DOCUMENTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_DOC"), attributes, parent, relativeNode);
-      addCreateElementAction(manager, XSDConstants.APPINFO_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_APP_INFO"), attributes, parent, relativeNode);
-    }
-  }
-
-  protected String getNewGlobalName(String elementTag, String description)
-  {
-    return getNewGlobalName(elementTag, description, false);
-  }
-
-  protected String getNewGlobalTypeName(String description)
-  {
-    return getNewGlobalName(null, description, true);
-  }
-
-  protected String getNewGlobalName(String elementTag, String description, boolean isSimpleOrComplexType)
-  {  
-     return getNewName(getXSDSchema().getDocument(), elementTag, description, isSimpleOrComplexType);
-  }
-
-  // TODO.. .we need to rewrite this code to me model driven... not document driven
-  //
-  protected String getNewName(Node parentNode, String elementTag, String description, boolean isSimpleOrComplexType)
-  {
-    NodeList list = null;
-    NodeList typeList2 = null;
-    // if the global name is for a simple or complex type, we ignore the
-    // elementTag and populate 2 lists
-    // one to look for all simple types and the other to look for all complex
-    // types
-    if (isSimpleOrComplexType)
-    {
-      if (parentNode instanceof Document)
-      {
-        list = ((Document) parentNode).getElementsByTagNameNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-        typeList2 = ((Document) parentNode).getElementsByTagNameNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-      }
-      else if (parentNode instanceof Element)
-      {
-        list = ((Element) parentNode).getElementsByTagNameNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-        typeList2 = ((Element) parentNode).getElementsByTagNameNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-      }
-    }
-    else
-    {
-      if (parentNode instanceof Document)
-      {
-        list = ((Document) parentNode).getElementsByTagNameNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, elementTag);
-      }
-      else if (parentNode instanceof Element)
-      {
-        list = ((Element) parentNode).getElementsByTagNameNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, elementTag);
-      }
-    }
-    String name = "New" + description;
-    if (list == null || list.getLength() == 0 && (typeList2 != null && typeList2.getLength() == 0))
-    {
-      return name;
-    }
-    for (int i = 1; i < 100; i++)
-    {
-      boolean newName = false;
-      for (int j = 0; j < list.getLength(); j++)
-      {
-        String currName = ((Element) list.item(j)).getAttribute(XSDConstants.NAME_ATTRIBUTE);
-        if (currName == null || currName.length() == 0)
-        {
-          continue;
-        }
-        if (currName.equals(name))
-        {
-          name = "New" + description + String.valueOf(i);
-          newName = true;
-          break;
-        }
-      }
-      // if there is another type list and we haven't created a new name, then
-      // check the type list
-      if (typeList2 != null && !newName)
-      {
-        for (int j = 0; j < typeList2.getLength(); j++)
-        {
-          String currName = ((Element) typeList2.item(j)).getAttribute(XSDConstants.NAME_ATTRIBUTE);
-          if (currName == null || currName.length() == 0)
-          {
-            continue;
-          }
-          if (currName.equals(name))
-          {
-            name = "New" + description + String.valueOf(i);
-            break;
-          }
-        }
-      }
-    }
-    return name;
-  }
-
-  protected String getFirstGlobalElementTagName(String elementTag)
-  {
-    //XMLModel model = getXMLModel();
-    //if (model != null)
-    {
-      String targetNamespace = "";
-      XSDSchema schema = getXSDSchema();
-      TypesHelper helper = new TypesHelper(schema);
-      String prefix = "";
-      if (schema != null)
-      {
-        prefix = helper.getPrefix(schema.getTargetNamespace(), true);
-      }
-      // get the schema node
-      NodeList slist = schema.getDocument().getElementsByTagNameNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, XSDConstants.SCHEMA_ELEMENT_TAG);
-      Node schemaNode = null;
-      if (slist != null && slist.getLength() > 0)
-      {
-        schemaNode = slist.item(0);
-      }
-      NodeList list = null;
-      // get the schema's direct children - hence, globals
-      if (schemaNode != null)
-      {
-        list = schemaNode.getChildNodes();
-      }
-      String name = null;
-      if (list != null)
-      {
-        // Performance issue perhaps?
-        for (int i = 0; i < list.getLength(); i++)
-        {
-          if (list.item(i) instanceof Element)
-          {
-            if (list.item(i).getLocalName().equals(elementTag))
-            {
-              name = ((Element) list.item(i)).getAttribute(XSDConstants.NAME_ATTRIBUTE);
-              if (name != null && name.length() > 0)
-              {
-                return prefix + name;
-              }
-            }
-          }
-        }
-      }
-      if (elementTag.equals(XSDConstants.ELEMENT_ELEMENT_TAG))
-      {
-        return helper.getGlobalElement(schema);
-      }
-      else if (elementTag.equals(XSDConstants.ATTRIBUTE_ELEMENT_TAG))
-      {
-        return helper.getGlobalAttribute(schema);
-      }
-      else if (elementTag.equals(XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG))
-      {
-        return helper.getGlobalAttributeGroup(schema);
-      }
-      else if (elementTag.equals(XSDConstants.GROUP_ELEMENT_TAG))
-      {
-        return helper.getModelGroup(schema);
-      }
-    }
-    return null;
-  }
-
-  protected void addSchemaElementItems(IMenuManager manager, Element parent, Node relativeNode)
-  {
-    ArrayList attributes = null;
-    // Add Edit Namespaces menu action
-    //////////////// Externalize String below!!!!!
-    XSDEditNamespacesAction nsAction = new XSDEditNamespacesAction(XSDEditorPlugin.getXSDString("_UI_ACTION_EDIT_NAMESPACES"), parent, relativeNode, getXSDSchema());
-    manager.add(nsAction);
-    manager.add(new Separator());
-    DOMAttribute nameAttribute = new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalTypeName("ComplexType"));
-    attributes = new ArrayList();
-    attributes.add(nameAttribute);
-    Action action = addCreateElementAction(manager, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_COMPLEX_TYPE"), attributes, parent, relativeNode);
-    ((CreateElementAction) action).setIsGlobal(true);
-    attributes = new ArrayList();
-    attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalTypeName("SimpleType")));
-    action = addCreateElementAction(manager, XSDConstants.SIMPLETYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_SIMPLE_TYPE"), attributes, parent, relativeNode);
-    ((CreateElementAction) action).setIsGlobal(true);
-    attributes = new ArrayList();
-    attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalName(XSDConstants.ELEMENT_ELEMENT_TAG, "GlobalElement")));
-    attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-    action = addCreateElementAction(manager, XSDConstants.ELEMENT_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_GLOBAL_ELEMENT"), attributes, parent, relativeNode);
-    ((CreateElementAction) action).setIsGlobal(true);
-    attributes = new ArrayList();
-    attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalName(XSDConstants.ATTRIBUTE_ELEMENT_TAG, "GlobalAttribute")));
-    attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-    action = addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_GLOBAL_ATTRIBUTE"), attributes, parent, relativeNode);
-    ((CreateElementAction) action).setIsGlobal(true);
-    attributes = new ArrayList();
-    attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalName(XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, "AttributeGroup")));
-    action = addCreateElementAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP"), attributes, parent, relativeNode);
-    ((CreateElementAction) action).setIsGlobal(true);
-    attributes = new ArrayList();
-    attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalName(XSDConstants.GROUP_ELEMENT_TAG, "Group")));
-    CreateGroupAction groupAction = addCreateGroupAction(manager, XSDConstants.GROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_GROUP"), attributes, parent, relativeNode);
-    groupAction.setIsGlobal(true);
-    attributes = new ArrayList();
-    attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalName(XSDConstants.NOTATION_ELEMENT_TAG, "Notation")));
-    attributes.add(new DOMAttribute(XSDConstants.PUBLIC_ATTRIBUTE, ""));
-    action = addCreateElementAction(manager, XSDConstants.NOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_NOTATION"), attributes, parent, relativeNode);
-    ((CreateElementAction) action).setIsGlobal(true);
-    action = addCreateElementAction(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), null, parent, relativeNode);
-    ((CreateElementAction) action).setIsGlobal(true);
-  }
-
-  // returns whether element exists already
-  protected boolean addCreateElementActionIfNotExist(IMenuManager manager, String elementTag, String label, List attributes, Element parent, Node relativeNode)
-  {
-    //    if
-    // (!(parent.getElementsByTagNameNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001,
-    // elementTag).getLength() > 0))
-    //    XSDDOMHelper helper = new XSDDOMHelper();
-    //    if (helper.getChildNode(parent, elementTag) == null)
-    if (getFirstChildNodeIfExists(parent, elementTag, false) == null)
-    {
-      addCreateElementAction(manager, elementTag, label, attributes, parent, relativeNode);
-      return false;
-    }
-    return true;
-  }
-
-  protected Action addCreateElementAction(IMenuManager manager, String elementTag, String label, List attributes, Element parent, Node relativeNode)
-  {
-    CreateElementAction action = new CreateElementAction(label);
-    action.setElementTag(elementTag);
-    action.setAttributes(attributes);
-    action.setParentNode(parent);
-    action.setRelativeNode(relativeNode);
-    action.setXSDSchema(getXSDSchema());
-    action.setSelectionProvider(selectionProvider);
-    action.setEnabled(!isReadOnly);
-    action.setSourceContext(sourceContext);
-    manager.add(action);
-    return action;
-  }
-
-  protected void addCreateElementAction(IMenuManager manager, String elementTag, String label, List attributes, Element parent, Node relativeNode, boolean isEnabled)
-  {
-    Action action = addCreateElementAction(manager, elementTag, label, attributes, parent, relativeNode);
-    action.setEnabled(isEnabled);
-  }
-
-  protected void addCreateElementRefAction(IMenuManager manager, String elementTag, String label, Element parent, Node relativeNode)
-  {
-    ArrayList attributes = new ArrayList();
-    String ref = getFirstGlobalElementTagName(elementTag);
-    attributes.add(new DOMAttribute(XSDConstants.REF_ATTRIBUTE, ref));
-    Action action = addCreateElementAction(manager, elementTag, label, attributes, parent, relativeNode);
-    action.setEnabled(ref != null);
-    if (ref != null)
-    {
-      action.setEnabled(!isReadOnly);
-    }
-  }
-
-  protected void addCreateSimpleContentAction(IMenuManager manager, String elementTag, String label, List attributes, Element parent, Node relativeNode)
-  {
-    //    if
-    // (!(parent.getElementsByTagNameNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001,
-    // elementTag).getLength() > 0))
-    if (getFirstChildNodeIfExists(parent, elementTag, false) == null)
-    {
-      CreateSimpleContentAction action = new CreateSimpleContentAction(label, getXSDSchema());
-      action.setElementTag(elementTag);
-      action.setAttributes(attributes);
-      action.setParentNode(parent);
-      action.setRelativeNode(relativeNode);
-      action.setEnabled(!isReadOnly);
-      manager.add(action);
-    }
-  }
-
-  protected CreateGroupAction addCreateGroupAction(IMenuManager manager, String elementTag, String label, List attributes, Element parent, Node relativeNode)
-  {
-    CreateGroupAction action = new CreateGroupAction(label, getXSDSchema());
-    action.setElementTag(elementTag);
-    action.setAttributes(attributes);
-    action.setParentNode(parent);
-    action.setRelativeNode(relativeNode);
-    action.setXSDSchema(getXSDSchema());
-    action.setSelectionProvider(selectionProvider);
-    action.setEnabled(!isReadOnly);
-    action.setSourceContext(sourceContext);
-    manager.add(action);
-    return action;
-  }
-
-  protected void addCreateIdentityConstraintsAction(IMenuManager manager, String elementTag, String label, List attributes, Element parent, Node relativeNode)
-  {
-    CreateIdentityConstraintsAction action = new CreateIdentityConstraintsAction(label, getXSDSchema());
-    action.setElementTag(elementTag);
-    action.setAttributes(attributes);
-    action.setParentNode(parent);
-    action.setRelativeNode(relativeNode);
-    action.setXSDSchema(getXSDSchema());
-    action.setSelectionProvider(selectionProvider);
-    action.setEnabled(!isReadOnly);
-    manager.add(action);
-  }
-
-  protected void addEnumsAction(IMenuManager manager, String elementTag, String label, List attributes, Element parent, Node relativeNode)
-  {
-    AddEnumsAction action = new AddEnumsAction(label);
-    action.setElementTag(elementTag);
-    action.setAttributes(attributes);
-    action.setParentNode(parent);
-    action.setRelativeNode(relativeNode);
-    action.setDescription(XSDEditorPlugin.getXSDString("_UI_ENUMERATIONS_DIALOG_TITLE"));
-    action.setEnabled(!isReadOnly);
-    manager.add(action);
-  }
-
-  protected Action addCreateSimpleTypeAction(IMenuManager manager, String elementTag, String label, List attributes, Element parent, Node relativeNode)
-  {
-    CreateSimpleTypeAction action = new CreateSimpleTypeAction(label);
-    action.setElementTag(elementTag);
-    action.setAttributes(attributes);
-    action.setParentNode(parent);
-    action.setRelativeNode(relativeNode);
-    action.setXSDSchema(getXSDSchema());
-    action.setSelectionProvider(selectionProvider);
-    action.setEnabled(!isReadOnly);
-    action.setSourceContext(sourceContext);
-    manager.add(action);
-    return action;
-  }
-
-  protected boolean addCreateLocalSimpleTypeActionIfNotExist(IMenuManager manager, String elementTag, String label, List attributes, Element parent, Node relativeNode)
-  {
-    //    if
-    // (!(parent.getElementsByTagNameNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001,
-    // elementTag).getLength() > 0))
-    //    XSDDOMHelper helper = new XSDDOMHelper();
-    //    if (helper.getChildNode(parent, elementTag) == null)
-    if (getFirstChildNodeIfExists(parent, elementTag, false) == null)
-    {
-      addCreateLocalSimpleTypeAction(manager, elementTag, label, attributes, parent, relativeNode);
-      return false;
-    }
-    return true;
-  }
-
-  protected void addSetBaseTypeAction(IMenuManager manager, Element element)
-  {
-    SetBaseTypeAction action = new SetBaseTypeAction(XSDEditorPlugin.getXSDString("_UI_ACTION_SET_BASE_TYPE"));// +
-    // "...");
-    action.setComplexTypeElement(element);
-    action.setXSDSchema(getXSDSchema());
-    action.setEnabled(!isReadOnly);
-    manager.add(action);
-  }
-
-  protected void addCreateLocalSimpleTypeAction(IMenuManager manager, String elementTag, String label, List attributes, Element parent, Node relativeNode)
-  {
-    CreateLocalSimpleTypeAction action = new CreateLocalSimpleTypeAction(label);
-    action.setElementTag(elementTag);
-    action.setAttributes(attributes);
-    action.setParentNode(parent);
-    action.setRelativeNode(relativeNode);
-    action.setXSDSchema(getXSDSchema());
-    action.setSelectionProvider(selectionProvider);
-    action.setEnabled(!isReadOnly);
-    manager.add(action);
-  }
-
-  protected boolean addCreateLocalComplexTypeActionIfNotExist(IMenuManager manager, String elementTag, String label, List attributes, Element parent, Node relativeNode)
-  {
-    if (getFirstChildNodeIfExists(parent, elementTag, false) == null)
-    {
-      addCreateLocalComplexTypeAction(manager, elementTag, label, attributes, parent, relativeNode);
-      return false;
-    }
-    return true;
-  }
-
-  protected void addCreateLocalComplexTypeAction(IMenuManager manager, String elementTag, String label, List attributes, Element parent, Node relativeNode)
-  {
-    CreateLocalComplexTypeAction action = new CreateLocalComplexTypeAction(label);
-    action.setElementTag(elementTag);
-    action.setAttributes(attributes);
-    action.setParentNode(parent);
-    action.setRelativeNode(relativeNode);
-    action.setXSDSchema(getXSDSchema());
-    action.setSelectionProvider(selectionProvider);
-    action.setEnabled(!isReadOnly);
-    manager.add(action);
-  }
-
-  protected boolean addCreateAnnotationActionIfNotExist(IMenuManager manager, String elementTag, String label, List attributes, Element parent, Node relativeNode)
-  {
-    //    if
-    // (!(parent.getElementsByTagNameNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001,
-    // elementTag).getLength() > 0))
-    //    XSDDOMHelper helper = new XSDDOMHelper();
-    //    if (helper.getChildNode(parent, elementTag) == null)
-    // CS... I comment the
-    //
-    //if (getFirstChildNodeIfExists(parent, elementTag, false) == null)
-    //{
-    //  addCreateAnnotationAction(manager,elementTag,label,attributes,parent,relativeNode);
-    //  return false;
-    //}
-    //return true;
-    return false;
-  }
-
-  protected void addOpenSchemaAction(IMenuManager manager, String label, Element parent)
-  {
-    OpenSchemaAction openAction = new OpenSchemaAction(label, getXSDSchema().getCorrespondingComponent(parent));
-    manager.add(openAction);
-  }
-
-  protected void addMoveAnonymousGlobal(IMenuManager manager, String elementTag, String label, List attributes, Element parent, Node relativeNode)
-  {
-    MakeAnonymousGlobal action = new MakeAnonymousGlobal(label, parent, getXSDSchema());
-    action.setElementTag(elementTag);
-    action.setAttributes(attributes);
-    action.setParentNode(getXSDSchema().getElement());
-    action.setRelativeNode(relativeNode);
-    action.setEnabled(!isReadOnly);
-    manager.add(action);
-  }
-
-  protected void addCreateAnnotationAction(IMenuManager manager, String elementTag, String label, List attributes, Element parent, Node relativeNode)
-  {
-    CreateAnnotationAction action = new CreateAnnotationAction(label);
-    action.setElementTag(elementTag);
-    action.setAttributes(attributes);
-    action.setParentNode(parent);
-    action.setRelativeNode(relativeNode);
-    action.setEnabled(!isReadOnly);
-    manager.add(action);
-  }
-
-  protected Node getFirstChildNodeIfExists(Node parent, String elementTag, boolean isRef)
-  {
-    if (parent == null)
-      return null;
-    NodeList children = parent.getChildNodes();
-    Node targetNode = null;
-    for (int i = 0; i < children.getLength(); i++)
-    {
-      Node child = children.item(i);
-      if (child != null && child instanceof Element)
-      {
-        if (XSDDOMHelper.inputEquals((Element) child, elementTag, isRef))
-        {
-          targetNode = child;
-          break;
-        }
-      }
-    }
-    return targetNode;
-  }
-
-  protected boolean elementExists(String elementTag, Element parent)
-  {
-    if (!(parent.getElementsByTagNameNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, elementTag).getLength() > 0))
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * Returns the deleteAction.
-   * 
-   * @return DeleteAction
-   */
-  public DeleteAction getDeleteAction()
-  {
-    return deleteAction;
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDMultiPageEditorPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDMultiPageEditorPart.java
deleted file mode 100644
index 0673533..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDMultiPageEditorPart.java
+++ /dev/null
@@ -1,726 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.List;
-
-import org.eclipse.core.internal.resources.ResourceException;
-import org.eclipse.core.resources.IMarker;
-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.NullProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextInputListener;
-import org.eclipse.swt.events.ShellAdapter;
-import org.eclipse.swt.events.ShellEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorActionBarContributor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IStorageEditorInput;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IGotoMarker;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.part.MultiPageEditorSite;
-import org.eclipse.wst.sse.core.IStructuredModel;
-import org.eclipse.wst.sse.core.exceptions.SourceEditingRuntimeException;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.wst.xml.core.XMLPreferenceNames;
-import org.eclipse.wst.xml.ui.StructuredTextEditorXML;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-public class XSDMultiPageEditorPart extends MultiPageEditorPart implements IPropertyListener
-{
-
-  /**
-   * 
-   */
-  public XSDMultiPageEditorPart()
-  {
-    super();
-  }
-  
-  /**
-   * Internal part activation listener
-   */
-  class PartListener extends ShellAdapter implements IPartListener {
-    private IWorkbenchPart fActivePart;
-    private boolean fIsHandlingActivation = false;
-
-    private void handleActivation() {
-
-      if (fIsHandlingActivation)
-        return;
-
-      if (fActivePart == XSDMultiPageEditorPart.this) {
-        fIsHandlingActivation = true;
-        try {
-          safelySanityCheckState();
-        }
-        finally {
-          fIsHandlingActivation = false;
-        }
-      }
-    }
-
-    /**
-     * @see IPartListener#partActivated(IWorkbenchPart)
-     */
-    public void partActivated(IWorkbenchPart part) {
-      fActivePart = part;
-      handleActivation();
-    }
-
-    /**
-     * @see IPartListener#partBroughtToTop(IWorkbenchPart)
-     */
-    public void partBroughtToTop(IWorkbenchPart part) {
-    }
-
-    /**
-     * @see IPartListener#partClosed(IWorkbenchPart)
-     */
-    public void partClosed(IWorkbenchPart part) {
-    }
-
-    /**
-     * @see IPartListener#partDeactivated(IWorkbenchPart)
-     */
-    public void partDeactivated(IWorkbenchPart part) {
-      fActivePart = null;
-    }
-
-    /**
-     * @see IPartListener#partOpened(IWorkbenchPart)
-     */
-    public void partOpened(IWorkbenchPart part) {
-    }
-
-    /*
-     * @see ShellListener#shellActivated(ShellEvent)
-     */
-    public void shellActivated(ShellEvent e) {
-      handleActivation();
-    }
-  }
-
-  class TextInputListener implements ITextInputListener {
-    public void inputDocumentAboutToBeChanged(IDocument oldInput, IDocument newInput) {
-    }
-
-    public void inputDocumentChanged(IDocument oldInput, IDocument newInput) {
-    }
-  }
-
-  /** The source page index. */
-  private int fSourcePageIndex;
-  /** The text editor. */
-  private StructuredTextEditor fTextEditor;
-
-  private PartListener partListener;
-
-
-  /*
-   * This method is just to make firePropertyChanged accessbible from some
-   * (anonomous) inner classes.
-   */
-  protected void _firePropertyChange(int property) {
-    super.firePropertyChange(property);
-  }
-
-  /**
-   * Adds the source page of the multi-page editor.
-   */
-  protected void addSourcePage() throws PartInitException {
-    try {
-      fSourcePageIndex = addPage(fTextEditor, getEditorInput());
-      setPageText(fSourcePageIndex, XSDEditorPlugin.getXSDString("_UI_TAB_SOURCE")); //$NON-NLS-1$
-      // the update's critical, to get viewer selection manager and
-      // highlighting to work
-      fTextEditor.update();
-  
-      firePropertyChange(PROP_TITLE);
-  
-      // Changes to the Text Viewer's document instance should also force an
-      // input refresh
-      fTextEditor.getTextViewer().addTextInputListener(new TextInputListener());
-    }
-    catch (PartInitException exception) {
-      // dispose editor
-      dispose();
-
-      throw new SourceEditingRuntimeException(SSECorePlugin.getResourceString("An_error_has_occurred_when1_ERROR_")); //$NON-NLS-1$
-    }
-  }
-
-
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.part.MultiPageEditorPart#createPages()
-   */
-  protected void createPages()
-  {
-    try
-    {
-      // source page MUST be created before design page, now
-      createSourcePage();
-      addSourcePage();
-      setActivePage();
-
-    // future_TODO: add a catch block here for any exception the design
-    // page throws and convert it into a more informative message.
-    }
-    catch (PartInitException e) {
-      throw new RuntimeException(e);
-    }
-  }
-
-  /**
-   * @see org.eclipse.ui.part.MultiPageEditorPart#createSite(org.eclipse.ui.IEditorPart)
-   */
-  protected IEditorSite createSite(IEditorPart editor) {
-    IEditorSite site = null;
-    if (editor == fTextEditor) {
-      site = new MultiPageEditorSite(this, editor) {
-        /**
-         * @see org.eclipse.ui.part.MultiPageEditorSite#getActionBarContributor()
-         */
-        public IEditorActionBarContributor getActionBarContributor() {
-          IEditorActionBarContributor contributor = super.getActionBarContributor();
-          IEditorActionBarContributor multiContributor = XSDMultiPageEditorPart.this.getEditorSite().getActionBarContributor();
-//          if (multiContributor instanceof XMLMultiPageEditorActionBarContributor) {
-//            contributor = ((XMLMultiPageEditorActionBarContributor) multiContributor).sourceViewerActionContributor;
-//          }
-          return contributor;
-        }
-      };
-    }
-    else {
-      site = super.createSite(editor);
-    }
-    return site;
-  }
-
-  /**
-   * Creates the source page of the multi-page editor.
-   */
-  protected void createSourcePage() throws PartInitException {
-    fTextEditor = createTextEditor();
-    fTextEditor.setEditorPart(this);
-
-    // Set the SourceViewerConfiguration now so the text editor won't use
-    // the default configuration first
-    // and switch to the StructuredTextViewerConfiguration later.
-    // DMW removed setSourceViewerConfiguration 3/26/2003 since added
-    // createPartControl to our text editor.
-    // fTextEditor.setSourceViewerConfiguration();
-    fTextEditor.addPropertyListener(this);
-  }
-
-  /**
-   * Method createTextEditor.
-   * 
-   * @return StructuredTextEditor
-   */
-  protected StructuredTextEditor createTextEditor() {
-    return new StructuredTextEditorXML();
-  }
-
-  public void dispose()
-  {
-    IWorkbenchWindow window = getSite().getWorkbenchWindow();
-    window.getPartService().removePartListener(partListener);
-    window.getShell().removeShellListener(partListener);
-
-    getSite().getPage().removePartListener(partListener);
-    if (fTextEditor != null) {
-      fTextEditor.removePropertyListener(this);
-    }
-
-    // moved to last when added window ... seems like
-    // we'd be in danger of losing some data, like site,
-    // or something.
-    super.dispose();
-  }
-
-  /*
-   * (non-Javadoc) Saves the contents of this editor. <p> Subclasses must
-   * override this method to implement the open-save-close lifecycle for an
-   * editor. For greater details, see <code> IEditorPart </code></p>
-   * 
-   * @see IEditorPart
-   */
-  public void doSave(IProgressMonitor monitor) {
-    fTextEditor.doSave(monitor);
-    //    // this is a temporary way to force validation.
-    //    // when the validator is a workbench builder, the following lines
-    // can be removed
-    //    if (fDesignViewer != null)
-    //      fDesignViewer.saveOccurred();
-
-  }
-
-  /*
-   * (non-Javadoc) Saves the contents of this editor to another object. <p>
-   * Subclasses must override this method to implement the open-save-close
-   * lifecycle for an editor. For greater details, see <code> IEditorPart
-   * </code></p>
-   * 
-   * @see IEditorPart
-   */
-  public void doSaveAs() {
-    fTextEditor.doSaveAs();
-    // 253619
-    // following used to be executed here, but is
-    // now called "back" from text editor (since
-    // mulitiple paths to the performSaveAs in StructuredTextEditor.
-    //doSaveAsForStructuredTextMulitPagePart();
-  }
-
-  private void editorInputIsAcceptable(IEditorInput input) throws PartInitException {
-    if (input instanceof IFileEditorInput) {
-      // verify that it can be opened
-      CoreException[] coreExceptionArray = new CoreException[1];
-      if (fileDoesNotExist((IFileEditorInput) input, coreExceptionArray)) {
-        // todo use message formatter for {0}
-        Throwable coreException = coreExceptionArray[0];
-        if (coreException instanceof ResourceException) {
-          // I'm assuming this is always 'does not exist'
-          // we'll refresh local go mimic behavior of default
-          // editor, where the
-          // troublesome file is refreshed (and will cause it to
-          // 'disappear' from Navigator.
-          try {
-            ((IFileEditorInput) input).getFile().refreshLocal(IResource.DEPTH_ZERO, new NullProgressMonitor());
-          }
-          catch (CoreException ce) {
-            // very unlikely
-//            Logger.logException(ce);
-          }
-          throw new PartInitException(SSECorePlugin.getResourceString("23concat_EXC_", (new Object[]{input.getName()}))); //$NON-NLS-1$
-          //$NON-NLS-1$ = "Resource {0} does not exist."
-        }
-        else {
-          throw new PartInitException(SSECorePlugin.getResourceString("32concat_EXC_", (new Object[]{input.getName()}))); //$NON-NLS-1$
-          //$NON-NLS-1$ = "Editor could not be open on {0}"
-        }
-      }
-    }
-    else if (input instanceof IStorageEditorInput) {
-      InputStream contents = null;
-      try {
-        contents = ((IStorageEditorInput) input).getStorage().getContents();
-      }
-      catch (CoreException noStorageExc) {
-      }
-      if (contents == null) {
-        throw new PartInitException(SSECorePlugin.getResourceString("32concat_EXC_", (new Object[]{input.getName()}))); //$NON-NLS-1$
-      }
-      else {
-        try {
-          contents.close();
-        }
-        catch (IOException e) {
-        }
-      }
-    }
-  }
-
-  //  void doSaveAsForStructuredTextMulitPagePart() {
-  //    setPageText(getActivePage(), fTextEditor.getTitle());
-  //    setInput(fTextEditor.getEditorInput());
-  //    if (fDesignViewer != null) {
-  //      //fDesignViewer.setEditorInput(fTextEditor.getEditorInput());
-  //      fDesignViewer.setModel(getModel());
-  //      fDesignViewer.saveAsOccurred();
-  //    }
-  //    // even though we've set title etc., several times already!
-  //    // only now is all prepared for it.
-  //    firePropertyChange(IWorkbenchPart.PROP_TITLE);
-  //    firePropertyChange(PROP_DIRTY);
-  //  }
-  /*
-   * (non-Javadoc) Initializes the editor part with a site and input. <p>
-   * Subclasses of <code> EditorPart </code> must implement this method.
-   * Within the implementation subclasses should verify that the input type
-   * is acceptable and then save the site and input. Here is sample code:
-   * </p><pre> if (!(input instanceof IFileEditorInput)) throw new
-   * PartInitException("Invalid Input: Must be IFileEditorInput");
-   * setSite(site); setInput(editorInput); </pre>
-   */
-  protected boolean fileDoesNotExist(IFileEditorInput input, Throwable[] coreException) {
-    boolean result = false;
-    InputStream inStream = null;
-    if ((!(input.exists())) || (!(input.getFile().exists()))) {
-      result = true;
-    }
-    else {
-      try {
-        inStream = input.getFile().getContents(true);
-      }
-      catch (CoreException e) {
-        // very likely to be file not found
-        result = true;
-        coreException[0] = e;
-      }
-      finally {
-        if (input != null) {
-          try {
-            if (inStream != null) {
-              inStream.close();
-            }
-          }
-          catch (IOException e) {
-
-          }
-        }
-      }
-    }
-    return result;
-  }
-
-  public Object getAdapter(Class key) {
-    Object result = null;
-
-      // DMW: I'm bullet-proofing this because
-      // its been reported (on 4.03 version) a null pointer sometimes
-      // happens here on startup, when an editor has been left
-      // open when workbench shutdown.
-      if (fTextEditor != null) {
-        result = fTextEditor.getAdapter(key);
-      }
-    return result;
-  }
-
-  /**
-   * IExtendedMarkupEditor method
-   */
-  public Node getCaretNode() {
-    if (getTextEditor() == null)
-      return null;
-
-    return getTextEditor().getCaretNode();
-  }
-
-  /**
-   * IExtendedSimpleEditor method
-   */
-  public int getCaretPosition() {
-    if (getTextEditor() == null)
-      return -1;
-
-    return getTextEditor().getCaretPosition();
-  }
-
-  /**
-   * IExtendedSimpleEditor method
-   */
-  public IDocument getDocument() {
-    if (getTextEditor() == null)
-      return null;
-
-    return getTextEditor().getDocument();
-  }
-
-  /**
-   * IExtendedMarkupEditor method
-   */
-  public Document getDOMDocument() {
-    if (getTextEditor() == null)
-      return null;
-
-    return getTextEditor().getDOMDocument();
-  }
-
-  /**
-   * IExtendedSimpleEditor method
-   */
-  public IEditorPart getEditorPart() {
-    return this;
-  }
-
-  protected IStructuredModel getModel() {
-    IStructuredModel model = null;
-    if (fTextEditor != null)
-      model = fTextEditor.getModel();
-    return model;
-  }
-
-  protected IPreferenceStore getPreferenceStore() {
-    return XSDEditorPlugin.getPlugin().getPreferenceStore();
-  }
-
-  /**
-   * IExtendedMarkupEditor method
-   */
-  public List getSelectedNodes() {
-    if (getTextEditor() == null)
-      return null;
-    return getTextEditor().getSelectedNodes();
-  }
-
-  /**
-   * IExtendedSimpleEditor method
-   */
-  public Point getSelectionRange() {
-    if (getTextEditor() == null)
-      return new Point(-1, -1);
-
-    return getTextEditor().getSelectionRange();
-  }
-
-  public StructuredTextEditor getTextEditor() {
-    return fTextEditor;
-  }
-
-  /*
-   * (non-Javadoc) Method declared on IWorkbenchPart.
-   */
-  public String getTitle() {
-    String title = null;
-    if (getTextEditor() == null) {
-      if (getEditorInput() != null) {
-        title = getEditorInput().getName();
-      }
-    }
-    else {
-      title = getTextEditor().getTitle();
-    }
-    if (title == null) {
-      title = getPartName();
-    }
-    return title;
-  }
-
-  /*
-   * (non-Javadoc) Sets the cursor and selection state for this editor to
-   * the passage defined by the given marker. <p> Subclasses may override.
-   * For greater details, see <code> IEditorPart </code></p>
-   * 
-   * @see IEditorPart
-   */
-  public void gotoMarker(IMarker marker) {
-    // (pa) 20020217 this was null when opening an editor that was
-    // already open
-    if (fTextEditor != null) {
-      IGotoMarker markerGotoer = (IGotoMarker) fTextEditor.getAdapter(IGotoMarker.class);
-      markerGotoer.gotoMarker(marker);
-    }
-  }
-
-  public void init(IEditorSite site, IEditorInput input) throws PartInitException {
-    editorInputIsAcceptable(input);
-    try {
-      super.init(site, input);
-      if (partListener == null) {
-        partListener = new PartListener();
-      }
-      //getSite().getPage().addPartListener(partListner);
-      // we want to listen for our own activation
-      IWorkbenchWindow window = getSite().getWorkbenchWindow();
-      window.getPartService().addPartListener(partListener);
-      window.getShell().addShellListener(partListener);
-    }
-    catch (Exception e) {
-      if (e instanceof SourceEditingRuntimeException) {
-        Throwable t = ((SourceEditingRuntimeException) e).getOriginalException();
-        if (t instanceof IOException) {
-          System.out.println(t);
-          // file not found
-        }
-      }
-    }
-    setPartName(input.getName());
-  }
-
-  /*
-   * (non-Javadoc) Returns whether the "save as" operation is supported by
-   * this editor. <p> Subclasses must override this method to implement the
-   * open-save-close lifecycle for an editor. For greater details, see
-   * <code> IEditorPart </code></p>
-   * 
-   * @see IEditorPart
-   */
-  public boolean isSaveAsAllowed() {
-    return fTextEditor != null && fTextEditor.isSaveAsAllowed();
-  }
-
-  /*
-   * (non-Javadoc) Returns whether the contents of this editor should be
-   * saved when the editor is closed. <p> This method returns <code> true
-   * </code> if and only if the editor is dirty ( <code> isDirty </code> ).
-   * </p>
-   */
-  public boolean isSaveOnCloseNeeded() {
-    // overriding super class since it does a lowly isDirty!
-    if (fTextEditor != null)
-      return fTextEditor.isSaveOnCloseNeeded();
-    return isDirty();
-  }
-
-  /**
-   * Notifies this multi-page editor that the page with the given id has
-   * been activated. This method is called when the user selects a different
-   * tab.
-   * 
-   * @param newPageIndex
-   *            the index of the activated page
-   */
-  protected void pageChange(int newPageIndex) {
-    super.pageChange(newPageIndex);
-
-    saveLastActivePageIndex(newPageIndex);
-  }
-
-  /**
-   * Posts the update code "behind" the running operation.
-   */
-  protected void postOnDisplayQue(Runnable runnable) {
-    IWorkbench workbench = PlatformUI.getWorkbench();
-    IWorkbenchWindow[] windows = workbench.getWorkbenchWindows();
-    if (windows != null && windows.length > 0) {
-      Display display = windows[0].getShell().getDisplay();
-      display.asyncExec(runnable);
-    }
-    else
-      runnable.run();
-  }
-
-  /**
-   * Indicates that a property has changed.
-   * 
-   * @param source
-   *            the object whose property has changed
-   * @param propId
-   *            the id of the property which has changed; property ids are
-   *            generally defined as constants on the source class
-   */
-  public void propertyChanged(Object source, int propId) {
-    switch (propId) {
-      // had to implement input changed "listener" so that
-      // strucutedText could tell it containing editor that
-      // the input has change, when a 'resource moved' event is
-      // found.
-      case IEditorPart.PROP_INPUT :
-      case IEditorPart.PROP_DIRTY : {
-        if (source == fTextEditor) {
-          if (fTextEditor.getEditorInput() != getEditorInput()) {
-            setInput(fTextEditor.getEditorInput());
-            // title should always change when input changes.
-            // create runnable for following post call
-            Runnable runnable = new Runnable() {
-              public void run() {
-                _firePropertyChange(IWorkbenchPart.PROP_TITLE);
-              }
-            };
-            // Update is just to post things on the display queue
-            // (thread). We have to do this to get the dirty
-            // property to get updated after other things on the
-            // queue are executed.
-            postOnDisplayQue(runnable);
-          }
-        }
-        break;
-      }
-      case IWorkbenchPart.PROP_TITLE : {
-        // update the input if the title is changed
-        if (source == fTextEditor) {
-          if (fTextEditor.getEditorInput() != getEditorInput()) {
-            setInput(fTextEditor.getEditorInput());
-          }
-        }
-        break;
-      }
-      default : {
-        // propagate changes. Is this needed? Answer: Yes.
-        if (source == fTextEditor) {
-          firePropertyChange(propId);
-        }
-        break;
-      }
-    }
-
-  }
-
-  protected void safelySanityCheckState() {
-    // If we're called before editor is created, simply ignore since we
-    // delegate this function to our embedded TextEditor
-    if (getTextEditor() == null)
-      return;
-
-    getTextEditor().safelySanityCheckState(getEditorInput());
-
-  }
-
-  protected void saveLastActivePageIndex(int newPageIndex) {
-    // save the last active page index to preference manager
-    getPreferenceStore().setValue(XMLPreferenceNames.LAST_ACTIVE_PAGE, newPageIndex);
-  }
-
-  /**
-   * Sets the currently active page.
-   */
-  protected void setActivePage() {
-    // retrieve the last active page index from preference manager
-    int activePageIndex = getPreferenceStore().getInt(XMLPreferenceNames.LAST_ACTIVE_PAGE);
-
-    // We check this range since someone could hand edit the XML
-    // preference file to an invalid value ... which I know from
-    // experience :( ... if they do, we'll reset to default and continue
-    // rather than throw an assertion error in the setActivePage(int)
-    // method.
-    if (activePageIndex < 0 || activePageIndex >= getPageCount()) {
-      activePageIndex = fSourcePageIndex;
-    }
-    setActivePage(activePageIndex);
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.ui.part.EditorPart#setInput(org.eclipse.ui.IEditorInput)
-   */
-  protected void setInput(IEditorInput input) {
-    // If driven from the Source page, it's "model" may not be up to date
-    // with the input just yet. We'll rely on later notification from the
-    // TextViewer to set us straight
-    super.setInput(input);
-    setPartName(input.getName());
-  }
-
-  /**
-   * IExtendedMarkupEditor method
-   */
-  public IStatus validateEdit(Shell context) {
-    if (getTextEditor() == null)
-      return new Status(IStatus.ERROR, XSDEditorPlugin.PLUGIN_ID, IStatus.INFO, "", null); //$NON-NLS-1$
-
-    return getTextEditor().validateEdit(context);
-  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDSelectionManager.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDSelectionManager.java
deleted file mode 100644
index 22f0354..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDSelectionManager.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-
-public class XSDSelectionManager implements ISelectionProvider, ISelectionChangedListener
-{
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-   */
-  public void addSelectionChangedListener(ISelectionChangedListener listener)
-  {
-    listenerList.add(listener);
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ISelectionProvider#getSelection()
-   */
-  public ISelection getSelection()
-  {
-    return currentSelection;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ISelectionProvider#removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-   */
-  public void removeSelectionChangedListener(ISelectionChangedListener listener)
-  {
-    listenerList.remove(listener);
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection)
-   */
-  public void setSelection(ISelection selection)
-  {
-    setSelection(selection, this);
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
-   */
-  public void selectionChanged(SelectionChangedEvent event)
-  {
-    if (enableNotify)
-    {
-      setSelection(event.getSelection(), event.getSelectionProvider());
-    }
-  }
-
-  
-  protected List listenerList = new ArrayList();
-  protected ISelection currentSelection;
-  protected boolean enableNotify = true;
-
-  public void setSelection(ISelection selection, ISelectionProvider source)
-  {  
-//	  System.out.println("SelectionManager.setSelection() " + selection + ", " + source);
-    if (enableNotify)
-    {
-      currentSelection = selection;
-      enableNotify = false;
-      try
-      {
-        SelectionChangedEvent event = new SelectionChangedEvent(source, selection);
-        List copyOfListenerList = new ArrayList(listenerList);
-        for (Iterator i = copyOfListenerList.iterator(); i.hasNext(); )
-        {
-          ISelectionChangedListener listener = (ISelectionChangedListener)i.next();
-          listener.selectionChanged(event);
-        }
-      }
-      finally
-      {
-        enableNotify = true;
-      }
-    }
-  }      
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDTextEditor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDTextEditor.java
deleted file mode 100644
index 7b7931e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDTextEditor.java
+++ /dev/null
@@ -1,405 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.jface.text.source.IVerticalRuler;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.wst.common.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.eclipse.wst.sse.ui.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.edit.util.StructuredTextEditorActionConstants;
-import org.eclipse.wst.sse.ui.internal.openon.OpenOnAction;
-import org.eclipse.wst.sse.ui.view.events.INodeSelectionListener;
-import org.eclipse.wst.sse.ui.view.events.NodeSelectionChangedEvent;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xml.ui.StructuredTextEditorXML;
-import org.eclipse.wst.xsd.ui.internal.properties.section.XSDTabbedPropertySheetPage;
-import org.eclipse.wst.xsd.ui.internal.provider.CategoryAdapter;
-import org.eclipse.wst.xsd.ui.internal.provider.XSDAdapterFactoryLabelProvider;
-import org.eclipse.wst.xsd.ui.internal.provider.XSDContentProvider;
-import org.eclipse.wst.xsd.ui.internal.provider.XSDModelAdapterFactoryImpl;
-import org.eclipse.wst.xsd.ui.internal.util.SelectionAdapter;
-import org.eclipse.xsd.XSDComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class XSDTextEditor extends StructuredTextEditorXML implements INodeSelectionListener, ISelectionChangedListener
-{
-  protected XSDSelectionManager xsdSelectionManager;
-  protected XSDModelAdapterFactoryImpl xsdModelAdapterFactory;
-  protected static XSDAdapterFactoryLabelProvider adapterFactoryLabelProvider;
-  protected InternalSelectionProvider internalSelectionProvider = new InternalSelectionProvider();
-
-  public XSDTextEditor(XSDEditor xsdEditor)
-  {
-    super();
-    xsdSelectionManager = xsdEditor.getSelectionManager();
-    xsdSelectionManager.addSelectionChangedListener(this);
-
-    setHelpContextId(XSDEditorContextIds.XSDE_SOURCE_VIEW);
-    
-    xsdModelAdapterFactory = new XSDModelAdapterFactoryImpl();
-    adapterFactoryLabelProvider = new XSDAdapterFactoryLabelProvider(xsdModelAdapterFactory);
-  }
-  
-  public void dispose()
-  {
-    super.dispose();
-    xsdSelectionManager.removeSelectionChangedListener(this);
-  }
-  
-  public XSDModelAdapterFactoryImpl getXSDModelAdapterFactory()
-  {
-    return xsdModelAdapterFactory;
-  }
-
-  public static XSDAdapterFactoryLabelProvider getLabelProvider()
-  {
-    return adapterFactoryLabelProvider;
-  }
-
-	public Object getAdapter(Class required) {
-	  
-		if (IPropertySheetPage.class.equals(required))
-    {
-	    fPropertySheetPage = new XSDTabbedPropertySheetPage(getXSDEditor());
-      
-	    ((XSDTabbedPropertySheetPage)fPropertySheetPage).setXSDModelAdapterFactory(xsdModelAdapterFactory);
-      ((XSDTabbedPropertySheetPage)fPropertySheetPage).setSelectionManager(getXSDEditor().getSelectionManager());
-	    ((XSDTabbedPropertySheetPage)fPropertySheetPage).setXSDSchema(getXSDSchema());
-
-      return fPropertySheetPage;
-		}
-		else if (IContentOutlinePage.class.equals(required))
-		{
-			if (fOutlinePage == null || fOutlinePage.getControl() == null || fOutlinePage.getControl().isDisposed())
-			{
-				XSDContentOutlinePage outlinePage = new XSDContentOutlinePage(this);
-        XSDContentProvider xsdContentProvider = new XSDContentProvider(xsdModelAdapterFactory);
-        xsdContentProvider.setXSDSchema(getXSDSchema());
-	      outlinePage.setContentProvider(xsdContentProvider);
-	      outlinePage.setLabelProvider(adapterFactoryLabelProvider);
-				outlinePage.setModel(getXSDSchema().getDocument());
-				
-				// Update outline selection from source editor selection:
-	      getViewerSelectionManager().addNodeSelectionListener(this);
-	      internalSelectionProvider.addSelectionChangedListener(getViewerSelectionManager());
-	      internalSelectionProvider.setEventSource(outlinePage);
-
-				fOutlinePage = outlinePage;
-			}
-			return fOutlinePage;
-		}
-	
-		return super.getAdapter(required);
-	}
-  
-  XSDModelQueryContributor xsdModelQueryContributor = new XSDModelQueryContributor();
-
-  protected XSDContentOutlinePage outlinePage;
-
-  /*
-   * @see StructuredTextEditor#getContentOutlinePage()
-   */
-  public IContentOutlinePage getContentOutlinePage()
-  {
-    return fOutlinePage;
-  }
-
-  // used to map selections from the outline view to the source view
-  // this class thinks of selections in terms of DOM element
-  class InternalSelectionProvider extends SelectionAdapter
-  {
-    protected Object getObjectForOtherModel(Object object)
-    {
-      Node node = null;
-
-      if (object instanceof Node)
-      {
-        node = (Node)object;
-      }
-      else if (object instanceof XSDComponent)
-      {
-        node = ((XSDComponent)object).getElement();
-      }
-      else if (object instanceof CategoryAdapter)
-      {
-        node = ((CategoryAdapter)object).getXSDSchema().getElement();
-      }
-
-      // the text editor can only accept sed nodes!
-      //
-      if (!(node instanceof XMLNode))
-      {
-        node = null;
-      }
-      return node;
-    }
-  }
-
-  public void selectionChanged(SelectionChangedEvent event)
-  {
-    // here we convert the model selection to a node selection req'd for the source view
-    //
-    internalSelectionProvider.setSelection(event.getSelection());
-  }
-
-  public void nodeSelectionChanged(NodeSelectionChangedEvent event)
-  {
-    // here we convert an node seleciton to a model selection as req'd by the other views
-    //
-    if (!event.getSource().equals(internalSelectionProvider) && getXSDEditor().getActiveEditorPage() != null)
-    {
-      Element element = null;
-      List list = event.getSelectedNodes();
-      for (Iterator i = list.iterator(); i.hasNext();)
-      {
-        Node node = (Node)i.next();
-        if (node != null)
-        {
-	        if (node.getNodeType() == Node.ELEMENT_NODE)
-	        {
-	          element = (Element)node;
-	          break;
-	        }
-	        else if (node.getNodeType() == Node.ATTRIBUTE_NODE)
-	        {
-	          element = ((Attr)node).getOwnerElement();
-	          break;
-	        }
-        }
-      }
-
-      Object o = element;
-      if (element != null)
-      {
-        Object modelObject = getXSDSchema().getCorrespondingComponent(element);
-        if (modelObject != null)
-        {
-          o = modelObject;
-        }
-      }
-
-      if (o != null)
-      {
-        xsdSelectionManager.setSelection(new StructuredSelection(o), internalSelectionProvider);
-      }
-      else
-      {
-        xsdSelectionManager.setSelection(new StructuredSelection(), internalSelectionProvider);
-      }
-    }
-  }
-
-  
-  /*
-   * @see ITextEditor#doRevertToSaved()
-   */
-  public void doRevertToSaved()
-  {
-    super.doRevertToSaved();
-  }
-
-  /*
-   * @see StructuredTextEditor#update()
-   */
-  public void update()
-  {
-    super.update();
-    if (outlinePage != null)
-     outlinePage.setModel(getModel());
-  }
-
-  protected Composite client;
-  
-  protected void addOpenOnSelectionListener()
-  {
-    getTextViewer().getTextWidget().addKeyListener(new KeyAdapter()
-    {
-      /**
-         * @see org.eclipse.swt.events.KeyListener#keyReleased(org.eclipse.swt.events.KeyEvent)
-         */
-      public void keyReleased(KeyEvent arg0)
-      {
-        if (arg0.keyCode == SWT.F3)
-        {
-          getXSDEditor().getOpenOnSelectionHelper().openOnSelection();
-        }
-      }
-
-    });
-  }
-
- // private static Color dividerColor;
-
-	protected ISourceViewer createSourceViewer(Composite parent, IVerticalRuler verticalRuler, int styles) {
-
-		fAnnotationAccess= createAnnotationAccess();
-		fOverviewRuler= createOverviewRuler(getSharedColors());
-
-		StructuredTextViewer sourceViewer = createStructedTextViewer(parent, verticalRuler, styles);
-		initSourceViewer(sourceViewer);
-
-    // end of super createSourceViewer
-		
-    //StructuredAnnotationAccess annotationAccess = new StructuredAnnotationAccess();
-	 // DefaultMarkerAnnotationAccess annotationAccess = new DefaultMarkerAnnotationAccess();
-		
-	//  ISharedTextColors sharedColors = getTextColorsCache();
-////  fOverviewRuler = new OverviewRuler(annotationAccess, OVERVIEW_RULER_WIDTH, sharedColors);
-	//  fOverviewRuler = new OverviewRuler(createAnnotationAccess(), 12, sharedColors);
-	  
-//	  fOverviewRuler.addHeaderAnnotationType(StructuredAnnotationType.ERROR);
-//	  fOverviewRuler.addHeaderAnnotationType(StructuredAnnotationType.WARNING);
-	  
-	 // fSourceViewerDecorationSupport = new SourceViewerDecorationSupport(sourceViewer, fOverviewRuler, annotationAccess, sharedColors);
-    //configureSourceViewerDecorationSupport(fSourceViewerDecorationSupport);    
-
-// The following method was removed
-//    sourceViewer.setEditor(this);
-
-		return sourceViewer;
-	}
-
-  /*
-   * @see StructuredTextEditor#setModel(IFileEditorInput)
-   */
-  public void setModel(IFileEditorInput input)
-  {                     
-    super.setModel(input);
-    if (getModel() instanceof XMLModel)
-    {
-      xsdModelQueryContributor.setModel((XMLModel)getModel());
-    }
-    file = input.getFile();
-  }
-
-  protected IFile file;
-
-
-  /**
-   * Gets the xsdSchema.
-   * @return Returns a XSDSchema
-   */
-  public XSDSchema getXSDSchema()
-  {
-    return ((XSDEditor)getEditorPart()).getXSDSchema();
-  }
-  
-  public XSDEditor getXSDEditor()
-  {
-    return (XSDEditor)getEditorPart();
-  }
- 
-  /**
-   * @see org.eclipse.ui.texteditor.AbstractTextEditor#safelySanityCheckState(IEditorInput)
-   */
-	public void safelySanityCheckState(IEditorInput input)
-  {
-    super.safelySanityCheckState(input);
-  }
-
-  protected class WrappedOpenFileAction extends OpenOnAction
-  {
-    /**
-     * Constructor for WrappedAction.
-     * @param bundle
-     * @param prefix
-     * @param editor
-     */
-    public WrappedOpenFileAction(
-      ResourceBundle bundle,
-      String prefix,
-      ITextEditor editor)
-    {
-      super(bundle, prefix, editor);
-    }
-
-    /**
-     * @see org.eclipse.jface.action.IAction#run()
-     */
-    public void run()
-    {
-      if (!getXSDEditor().getOpenOnSelectionHelper().openOnSelection())
-      {
-        super.run();
-      }
-    }
-  }
-  
-  protected WrappedOpenFileAction wrappedAction;
-  private static final String DOT = "."; //$NON-NLS-1$
-  
-  /**
-   * @see org.eclipse.ui.texteditor.AbstractTextEditor#createActions()
-   */
-  protected void createActions()
-  {
-    super.createActions();
-    addOpenOnSelectionListener();
-    ResourceBundle resourceBundle = SSECorePlugin.getDefault().getResourceBundle(); //ResourceBundle.getBundle(RESOURCE_BUNDLE_NAME);
-    
-    wrappedAction = new WrappedOpenFileAction(resourceBundle, StructuredTextEditorActionConstants.ACTION_NAME_OPEN_FILE + DOT, this);
-    setAction(StructuredTextEditorActionConstants.ACTION_NAME_OPEN_FILE, wrappedAction);
-   
-  }
-    
-
-  class XSDModelQueryContributor extends AbstractXSDModelQueryContributor
-  {
-    public AbstractXSDDataTypeValueExtension createXSDDataTypeValueExtension(ModelQuery modelQuery)
-    {
-      return new XSDDataTypeValueExtension(modelQuery);
-    }
-  }
- 
-
-  class XSDDataTypeValueExtension extends AbstractXSDDataTypeValueExtension
-  {                             
-    public XSDDataTypeValueExtension(ModelQuery modelQuery)
-    {
-      super(modelQuery);
-    }
-
-    public String getId()
-    {
-      return "XSDDataTypeValueExtension";
-    }
-     
-    protected XSDSchema getEnclosingXSDSchema(Element element)
-    {
-      return getXSDSchema();
-    }   
-  }
-
-}
-
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDURIConverter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDURIConverter.java
deleted file mode 100644
index 58f639b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDURIConverter.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.impl.URIConverterImpl;
-import org.eclipse.wst.xml.uriresolver.util.IdResolver;
-import org.eclipse.wst.xml.uriresolver.util.IdResolverImpl;
-
-public class XSDURIConverter extends URIConverterImpl
-{
-  IFile resourceFile;
-  public XSDURIConverter(IFile resourceFile)
-  {
-    super();
-    this.resourceFile = resourceFile;
-  }
-  
-  /**
-   * @see org.eclipse.emf.ecore.resource.URIConverter#createInputStream(URI)
-   */
-  public InputStream createInputStream(URI uri) throws IOException
-  {
-    String scheme = uri.scheme();
-    URI mappedURI = uri;
-    if (scheme != null && !scheme.equals("file") && !scheme.equals("platform"))
-    // if ("http".equals(scheme))
-    {
-      String theURI = uri.toString();
-      IdResolver idResolver = new IdResolverImpl(theURI);
-      String result = idResolver.resolveId("/", null, theURI);
-      if (result != null)
-      {
-        mappedURI = createURI(result);
-      }  
-    }  
-    return super.createURLInputStream(mappedURI);
-  }
-  
-  public static URI createURI(String uriString)
-  {
-    if (hasProtocol(uriString))
-      return URI.createURI(uriString);
-    else
-      return URI.createFileURI(uriString);
-  }
-  
-  private static boolean hasProtocol(String uri)
-  {
-    boolean result = false;     
-    if (uri != null)
-    {
-      int index = uri.indexOf(":");
-      if (index != -1 && index > 2) // assume protocol with be length 3 so that the'C' in 'C:/' is not interpreted as a protocol
-      {
-        result = true;
-      }
-    }
-    return result;
-  }
-
-  private String getRelativePathToSchema(String a, String b)
-  {
-    String result;
-    if (b.startsWith(a))
-    {
-      result = b.substring(a.length() + 1);
-      return result;
-    }
-    else
-    {
-      return b;
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/AbstractAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/AbstractAction.java
deleted file mode 100644
index b421416..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/AbstractAction.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.xsd.XSDConcreteComponent;
-
-public class AbstractAction extends Action
-{
-  XSDConcreteComponent xsdConcreteComponent;
-
-  /**
-   * @param text
-   */
-  public AbstractAction(String text, XSDConcreteComponent xsdConcreteComponent)
-  {
-    super(text);
-    this.xsdConcreteComponent = xsdConcreteComponent;
-  }
-
-  /**
-   * @param text
-   * @param image
-   */
-  public AbstractAction(String text, ImageDescriptor image, XSDConcreteComponent xsdConcreteComponent)
-  {
-    super(text, image);
-    this.xsdConcreteComponent = xsdConcreteComponent;
-  }
-
-  /**
-   * @param text
-   * @param style
-   */
-  public AbstractAction(String text, int style)
-  {
-    super(text, style);
-  }
-  
-  public DocumentImpl getDocument()
-  {
-    return (DocumentImpl) xsdConcreteComponent.getElement().getOwnerDocument();
-  }
-    
-  public void beginRecording(String description)
-  {
-    getDocument().getModel().beginRecording(this, description);
-  }
-  
-  public void endRecording()
-  {
-    DocumentImpl doc = (DocumentImpl) getDocument();
-    
-    doc.getModel().endRecording(this);    
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/AddAttributeAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/AddAttributeAction.java
deleted file mode 100644
index f1a9f3f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/AddAttributeAction.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.wst.xsd.ui.internal.commands.AddAttributeDeclarationCommand;
-import org.eclipse.xsd.XSDConcreteComponent;
-
-public class AddAttributeAction extends AbstractAction
-{
-  protected AddAttributeDeclarationCommand command;
-  
-  public AddAttributeAction(String text, XSDConcreteComponent parent)
-  {
-    super(text, parent);
-    command = new AddAttributeDeclarationCommand(parent);
-  }
-
-  public AddAttributeAction(String text, ImageDescriptor image, XSDConcreteComponent parent)
-  {
-    super(text, image, parent);
-    command = new AddAttributeDeclarationCommand(parent);
-  }
-
-  public void run()
-  {
-    beginRecording(getText());
-    command.run();
-    
-    endRecording();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/AddEnumsAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/AddEnumsAction.java
deleted file mode 100644
index ecc2f4b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/AddEnumsAction.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.wst.xsd.ui.internal.widgets.EnumerationsDialog;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-
-/**
- * Pattern is scoped to Enum Type
- */
-public class AddEnumsAction extends CreateElementAction
-{
-  public AddEnumsAction(String label)
-  {
-  	super(label);
-  }
- 
-  public Element createAndAddNewChildElement(String token)
-  {
-    String prefix = parentNode.getPrefix();
-    prefix = (prefix == null) ? "" : (prefix + ":");
-    Element childNode = getDocument().createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, prefix + elementTag);
-    if (getAttributes() != null)
-    {
-      List attributes = getAttributes();
-      for (int i = 0; i < attributes.size(); i++)
-      {
-        DOMAttribute attr = (DOMAttribute) attributes.get(i);
-        childNode.setAttribute(attr.getName(), attr.getValue());
-      }
-    }
-    if (getRelativeNode() == null)
-    {
-      parentNode.appendChild(childNode);
-    }
-    else
-    {
-      ((Element)parentNode).insertBefore(childNode,getRelativeNode());
-    }
-    childNode.setAttribute("value", token);
-    return childNode;
-  }    
-  
-  public void run()
-  {
-    Display display = Display.getCurrent();
-    // if it is null, get the default one
-    display = display == null ? Display.getDefault() : display;
-    Shell parentShell = display.getActiveShell();
-    EnumerationsDialog dialog = new EnumerationsDialog(parentShell);
-    dialog.setBlockOnOpen(true);
-    int result = dialog.open();
-
-    if (result == Window.OK) 
-    {
-      beginRecording(getDescription());
-
-      String text = dialog.getText();
-      String delimiter = dialog.getDelimiter();
-      StringTokenizer tokenizer = new StringTokenizer(text, delimiter);
-      while (tokenizer.hasMoreTokens()) 
-      {
-        String token = tokenizer.nextToken();
-        if (dialog.isPreserveWhitespace() == false) 
-        {
-          token = token.trim();
-        }
-
-        Element child = createAndAddNewChildElement(token);
-        formatChild(child);        
-      }
-      endRecording();
-    }
-  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/AddModelGroupAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/AddModelGroupAction.java
deleted file mode 100644
index ac31566..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/AddModelGroupAction.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.wst.xsd.ui.internal.commands.AddModelGroupCommand;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDCompositor;
-import org.eclipse.xsd.XSDConcreteComponent;
-
-
-public class AddModelGroupAction extends Action
-{
-   protected AddModelGroupCommand command;
-   protected XSDConcreteComponent parent;
-  
-   public static String getLabel(XSDCompositor compositor)
-   {
-     String result = XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_SEQUENCE"); //$NON-NLS-1$
-     if (compositor != null)
-     {
-       if (compositor == XSDCompositor.CHOICE_LITERAL)
-       {
-         result = XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_CHOICE");  //$NON-NLS-1$
-       }
-       else if (compositor == XSDCompositor.ALL_LITERAL)
-       {
-         result = XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ALL");//$NON-NLS-1$
-       }  
-     }
-     return result;
-   }
-  
-   public AddModelGroupAction(XSDConcreteComponent parent, XSDCompositor compositor)
-   {
-     command = new AddModelGroupCommand(parent, compositor);
-     this.parent = parent;
-     setText(getLabel(compositor));     
-   }   
-   
-   public void run()
-   {
-     DocumentImpl doc = (DocumentImpl) parent.getElement().getOwnerDocument();
-     doc.getModel().beginRecording(this, getText());
-     command.run();
-     doc.getModel().endRecording(this);
-   }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/AddSchemaNodeAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/AddSchemaNodeAction.java
deleted file mode 100644
index 31a8950..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/AddSchemaNodeAction.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditor;
-
-
-public class AddSchemaNodeAction extends Action
-{
-  /**
-   * Constructor for AddSchemaNodeAction.
-   */
-  public AddSchemaNodeAction()
-  {
-    super();
-  }
-
-  /**
-   * Constructor for AddSchemaNodeAction.
-   * @param text
-   */
-  public AddSchemaNodeAction(String text)
-  {
-    super(text);
-  }
-
-  /**
-   * Constructor for AddSchemaNodeAction.
-   * @param text
-   * @param image
-   */
-  public AddSchemaNodeAction(String text, ImageDescriptor image)
-  {
-    super(text, image);
-  }
-
-  public void setEditor(XSDEditor editor)
-  {
-    this.editor = editor;
-  }
-  
-  protected XSDEditor editor;
-  
-  /**
-   * @see org.eclipse.jface.action.IAction#run()
-   */
-  public void run()
-  {
-    editor.createDefaultSchemaNode();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/BackAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/BackAction.java
deleted file mode 100644
index 0ab518d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/BackAction.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDGraphViewer;
-import org.eclipse.xsd.XSDSchema;
-
-/**
- * @author kchong
- *
- * <a href="mailto:kchong@ca.ibm.com">kchong@ca.ibm.com</a>
- *
- */
-public class BackAction extends Action
-{
-  ISelectionProvider selectionProvider;
-  XSDGraphViewer xsdGraphViewer;
-  XSDSchema xsdSchema;
-  
-  /**
-   * 
-   */
-  public BackAction()
-  {
-    super();
-  }
-
-  /**
-   * @param text
-   */
-  public BackAction(String text)
-  {
-    super(text);
-  }
-
-  public BackAction(String text, XSDGraphViewer viewer)
-  {
-    super(text);
-    xsdGraphViewer = viewer;
-  }
-  
-  /**
-   * @param text
-   * @param image
-   */
-  public BackAction(String text, ImageDescriptor image)
-  {
-    super(text, image);
-  }
-
-  /**
-   * @param text
-   * @param style
-   */
-  public BackAction(String text, int style)
-  {
-    super(text, style);
-  }
-
-  public void setSelectionProvider(ISelectionProvider selectionProvider)
-  {
-    this.selectionProvider = selectionProvider;
-  }
-
-  public void setXSDSchema(XSDSchema xsdSchema)
-  {
-    this.xsdSchema = xsdSchema;
-  }
-  
-  /*
-   * @see IAction#run()
-   */
-  public void run()
-  {
-    StructuredSelection selection = new StructuredSelection(xsdSchema);
-    selectionProvider.setSelection(selection);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateAnnotationAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateAnnotationAction.java
deleted file mode 100644
index 698d433..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateAnnotationAction.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class CreateAnnotationAction extends CreateElementAction
-{
-  XSDSchema xsdSchema;
-  Element documentationNode;
-
-  public CreateAnnotationAction()
-  {
-    super();
-  }
-
-  public CreateAnnotationAction(String text)
-  {
-    super(text);
-  }
-
-  public CreateAnnotationAction(String text, ImageDescriptor image)
-  {
-    super(text, image);
-  }
-
-  public Element createAndAddNewChildElement()
-  {
-    Element childNode = super.createAndAddNewChildElement();
-
-    String prefix = parentNode.getPrefix();
-    prefix = (prefix == null) ? "" : (prefix + ":");
-    documentationNode = getDocument().createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, prefix + XSDConstants.DOCUMENTATION_ELEMENT_TAG);
-    childNode.appendChild(documentationNode);
-
-    formatChild(childNode);
-    formatChild(documentationNode);
-    formatChild(childNode);
-    
-    return childNode;
-  }
-  
-}
-
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateAttributeAndRequired.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateAttributeAndRequired.java
deleted file mode 100644
index 6a634e2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateAttributeAndRequired.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import java.util.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.wst.sse.core.format.IStructuredFormatProcessor;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xml.core.format.FormatProcessorXML;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDSchema;
-import org.w3c.dom.Element;
-
-/*
- * Class which creates an Attribute and necessary Elements required before
- * an Attribute can be added.  For example, if we wish to add an Attribute
- * to a GlobalElement without a ComplexType, a ComplexType will be created.
- */
-public class CreateAttributeAndRequired extends Action {
-	String elementTag;
-	String label;
-	List attributes;
-	XSDSchema xsdSchema;
-	ISelectionProvider selectionProvider;
-	Object parent;
-	
-	public CreateAttributeAndRequired(String elementTag, String label, List attributes, XSDSchema xsdSchema, ISelectionProvider selProvider, Object parent) {
-		super(label);
-		
-		this.elementTag = elementTag;
-		this.label = label;
-		this.attributes = attributes;
-		this.xsdSchema = xsdSchema;
-		this.selectionProvider = selProvider;
-		this.parent = parent;
-	}
-
-	public void run() {
-		if (parent instanceof XSDElementDeclaration) {
-			XSDElementDeclaration ed = (XSDElementDeclaration) parent;
-			beginRecording(ed.getElement());
-	        ed.setTypeDefinition(null);
-	      	XSDComplexTypeDefinition td = XSDFactory.eINSTANCE.createXSDComplexTypeDefinition();
-	        ed.setAnonymousTypeDefinition(td);
-			
-		    CreateElementAction action = new CreateElementAction(label);		    
-		    action.setElementTag(elementTag);
-		    action.setAttributes(attributes);
-		    action.setParentNode(td.getElement());
-		    action.setRelativeNode(null);
-		    action.setXSDSchema(xsdSchema);
-		    action.setSelectionProvider(selectionProvider);
-		    action.run();
-		    
-		    formatChild(td.getElement());
-        if (td.getAttributeContents().size() > 0)
-        {
-		      selectObject(td.getAttributeContents().get(0));
-        }
-		    endRecording(ed.getElement());
-		}
-	}
-
-	protected void beginRecording(Element element) {
-		((DocumentImpl) element.getOwnerDocument()).getModel().beginRecording(this, getText());
-	}
-	
-	protected void endRecording(Element element) {
-		((DocumentImpl) element.getOwnerDocument()).getModel().endRecording(this);
-	}
-	
-	public void selectObject(Object object) {
-	    if (selectionProvider != null)
-	    {
-	        selectionProvider.setSelection(new StructuredSelection(object));
-	    }
-	}
-	
-	  protected void formatChild(Element child)
-	  {
-	    if (child instanceof XMLNode)
-	    {
-	      XMLModel model = ((XMLNode)child).getModel();
-	      try
-	      {
-	        // tell the model that we are about to make a big model change
-	        model.aboutToChangeModel();
-	        
-		      IStructuredFormatProcessor formatProcessor = new FormatProcessorXML();
-			    formatProcessor.formatNode(child);
-	      }
-	      finally
-	      {
-	        // tell the model that we are done with the big model change
-	        model.changedModel(); 
-	      }
-	    }
-	  }
-}
-
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateElementAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateElementAction.java
deleted file mode 100644
index 3190d53..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateElementAction.java
+++ /dev/null
@@ -1,365 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-import java.util.List;
-
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.ui.parts.AbstractEditPartViewer;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.sse.core.format.IStructuredFormatProcessor;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xml.core.format.FormatProcessorXML;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.ComplexTypeDefinitionEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.ElementDeclarationEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.ModelGroupDefinitionEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.TopLevelComponentEditPart;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-public class CreateElementAction extends Action
-{
-  protected String description;
-  protected Element parentNode;
-
-  protected ISelectionProvider selectionProvider;
-  protected XSDSchema xsdSchema;
-
-  protected Object sourceContext;
-
-  /**
-   * Constructor for CreateElementAction.
-   */
-  public CreateElementAction()
-  {
-    super();
-  }
-  /**
-   * Constructor for CreateElementAction.
-   * @param text
-   */
-  public CreateElementAction(String text)
-  {
-    super(text);
-  }
-  /**
-   * Constructor for CreateElementAction.
-   * @param text
-   * @param image
-   */
-  public CreateElementAction(String text, ImageDescriptor image)
-  {
-    super(text, image);
-  }
-
-  public void setXSDSchema(XSDSchema xsdSchema)
-  {
-    this.xsdSchema = xsdSchema;
-  }
-  
-  public void setSelectionProvider(ISelectionProvider selectionProvider)
-  {
-    this.selectionProvider = selectionProvider;
-  }
-
-  public void setSourceContext(Object sourceContext)
-  {
-    this.sourceContext = sourceContext;
-  }
-  
-  /**
-   * Gets the parentNode.
-   * @return Returns a Element
-   */
-  public Element getParentNode()
-  {
-    return parentNode;
-  }
-
-  /**
-   * Sets the parentNode.
-   * @param parentNode The parentNode to set
-   */
-  public void setParentNode(Element parentNode)
-  {
-    this.parentNode = parentNode;
-  }
-
-  boolean isGlobal = false;
-  
-  public void setIsGlobal(boolean isGlobal)
-  {
-    this.isGlobal = isGlobal;
-  }
-  
-  public boolean getIsGlobal()
-  {
-    return isGlobal;
-  }
-
-  protected Node relativeNode;
-  protected String elementTag;
-  public void setElementTag(String elementTag)
-  {
-    this.elementTag = elementTag;
-  }
-  
-  public DocumentImpl getDocument()
-  {
-    return (DocumentImpl) getParentNode().getOwnerDocument();
-  }
-    
-  public void beginRecording(String description)
-  {
-    getDocument().getModel().beginRecording(this, description);
-  }
-  
-  public void endRecording()
-  {
-    DocumentImpl doc = (DocumentImpl) getDocument();
-    
-    doc.getModel().endRecording(this);    
-  }
-  
-  public Element createAndAddNewChildElement()
-  {
-    String prefix = parentNode.getPrefix();
-    prefix = (prefix == null) ? "" : (prefix + ":");
-    Element childNode = getDocument().createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, prefix + elementTag);
-    if (getAttributes() != null)
-    {
-      List attributes = getAttributes();
-      for (int i = 0; i < attributes.size(); i++)
-      {
-        DOMAttribute attr = (DOMAttribute) attributes.get(i);
-        childNode.setAttribute(attr.getName(), attr.getValue());
-      }
-    }
-    if (getRelativeNode() == null)
-    {
-      parentNode.appendChild(childNode);
-    }
-    else
-    {
-      ((Element)parentNode).insertBefore(childNode,getRelativeNode());
-    }
-    
-    if (isGlobal && getRelativeNode() == null)
-    {
-      Text textNode = getDocument().createTextNode("\n\n");
-      parentNode.appendChild(textNode);
-    }
-    else if (isGlobal && getRelativeNode() != null)
-    {
-      Text textNode = getDocument().createTextNode("\n\n");
-      parentNode.insertBefore(textNode, getRelativeNode());
-    }
-
-    formatChild(childNode);
-    
-    return childNode;
-  }    
-    
-  protected void formatChild(Element child)
-  {
-    if (child instanceof XMLNode)
-    {
-      XMLModel model = ((XMLNode)child).getModel();
-      try
-      {
-        // tell the model that we are about to make a big model change
-        model.aboutToChangeModel();
-        
-	      IStructuredFormatProcessor formatProcessor = new FormatProcessorXML();
-		    formatProcessor.formatNode(child);
-      }
-      finally
-      {
-        // tell the model that we are done with the big model change
-        model.changedModel(); 
-      }
-    }
-  }
-  /*
-   * @see IAction#run()
-   */
-  public void run()
-  {
-    beginRecording(getDescription());
-    final Element child = createAndAddNewChildElement();
-    endRecording();
-
-    if (selectionProvider != null)
-    {
-      final XSDConcreteComponent comp = xsdSchema.getCorrespondingComponent(child);
-//      selectionProvider.setSelection(new StructuredSelection(comp));
-      
-    Runnable runnable = new Runnable()
-    {
-      public void run()
-      {
-        if (comp instanceof XSDAttributeDeclaration)
-        {
-          if (((XSDAttributeDeclaration)comp).getContainer() instanceof XSDAttributeUse)
-          {
-            if (comp.getContainer().getContainer() instanceof XSDAttributeGroupDefinition)
-            {
-              selectionProvider.setSelection(new StructuredSelection(comp.getContainer()));
-            }
-            else if (comp.getContainer().getContainer() instanceof XSDComplexTypeDefinition)
-            {
-              if (XSDDOMHelper.inputEquals((Element)child, XSDConstants.ATTRIBUTE_ELEMENT_TAG, true))
-              {
-                selectionProvider.setSelection(new StructuredSelection(comp.getContainer()));
-              }
-              else
-              {
-                selectionProvider.setSelection(new StructuredSelection(comp));
-              }
-            }
-            else
-            {
-              selectionProvider.setSelection(new StructuredSelection(comp));
-            }
-          }
-          else
-          {
-            selectionProvider.setSelection(new StructuredSelection(comp));
-          }
-        }
-        else
-        {
-          selectionProvider.setSelection(new StructuredSelection(comp));
-        }
-        if (comp instanceof XSDNamedComponent)
-        {
-          if (sourceContext instanceof AbstractEditPartViewer)
-          {
-            AbstractEditPartViewer viewer = (AbstractEditPartViewer)sourceContext;
-          
-            Object obj = viewer.getSelectedEditParts().get(0);
-            
-            if (obj instanceof GraphicalEditPart)
-            {
-              if (obj instanceof ElementDeclarationEditPart)
-              {
-                XSDElementDeclaration elem = ((ElementDeclarationEditPart)obj).getXSDElementDeclaration();
-                if (!elem.isElementDeclarationReference())
-                {
-                  ((ElementDeclarationEditPart)obj).doEditName();
-                }
-              }
-              else if (obj instanceof ModelGroupDefinitionEditPart)
-              {
-                XSDModelGroupDefinition group = ((ModelGroupDefinitionEditPart)obj).getXSDModelGroupDefinition();
-                if (!group.isModelGroupDefinitionReference())
-                {
-                  ((ModelGroupDefinitionEditPart)obj).doEditName();
-                }
-              }
-              else if (obj instanceof ComplexTypeDefinitionEditPart)
-              {
-                XSDComplexTypeDefinition ct = ((ComplexTypeDefinitionEditPart)obj).getXSDComplexTypeDefinition();
-                if (ct.getName() != null)
-                {
-                  ((ComplexTypeDefinitionEditPart)obj).doEditName();
-                }
-              }
-              else if (obj instanceof TopLevelComponentEditPart)
-              {
-                ((TopLevelComponentEditPart)obj).doEditName();
-              }
-            }
-
-          }
-        }
-      }
-    };
-    Display.getDefault().timerExec(50,runnable);
-    }
-  }
-
-  /**
-   * Gets the relativeNode.
-   * @return Returns a Element
-   */
-  public Node getRelativeNode()
-  {
-    return relativeNode;
-  }
-
-  /**
-   * Sets the relativeNode.
-   * @param relativeNode The relativeNode to set
-   */
-  public void setRelativeNode(Node relativeNode)
-  {
-    this.relativeNode = relativeNode;
-  }
-
-  /**
-   * Gets the description.
-   * @return Returns a String
-   */
-  public String getDescription()
-  {
-    if (description == null)
-    {
-      return getText();
-    }
-    return description;
-  }
-
-  /**
-   * Sets the description.
-   * @param description The description to set
-   */
-  public void setDescription(String description)
-  {
-    this.description = description;
-  }
-
-  protected List attributes;
-  /**
-   * Gets the nameAttribute.
-   * @return Returns a String
-   */
-  public List getAttributes()
-  {
-    return attributes;
-  }
-
-  /**
-   * Sets the attributes.
-   * @param attributes The attributes to set
-   */
-  public void setAttributes(List attributes)
-  {
-    this.attributes = attributes;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateGroupAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateGroupAction.java
deleted file mode 100644
index f9eadae..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateGroupAction.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-
-public class CreateGroupAction extends CreateElementAction
-{
-  XSDSchema xsdSchema;
-
-  /**
-   * Constructor for CreateGroupAction.
-   */
-  public CreateGroupAction()
-  {
-    super();
-  }
-  /**
-   * Constructor for CreateGroupAction.
-   * @param text
-   */
-  public CreateGroupAction(String text)
-  {
-    super(text);
-  }
-  /**
-   * Constructor for CreateGroupAction.
-   * @param text
-   * @param XSDSchema
-   */
-  public CreateGroupAction(String text, XSDSchema xsdSchema)
-  {
-    super(text);
-    this.xsdSchema = xsdSchema;
-  }
-  /**
-   * Constructor for CreateGroupAction.
-   * @param text
-   * @param image
-   */
-  public CreateGroupAction(String text, ImageDescriptor image)
-  {
-    super(text, image);
-  }
-
-  public Element createAndAddNewChildElement()
-  {
-    XSDConcreteComponent xsdComp = xsdSchema.getCorrespondingComponent(parentNode);
-    Element childNode = super.createAndAddNewChildElement();
-
-    String prefix = parentNode.getPrefix();
-    prefix = (prefix == null) ? "" : (prefix + ":");
-    Element contentModelNode = getDocument().createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, prefix + XSDConstants.SEQUENCE_ELEMENT_TAG);
-    childNode.appendChild(contentModelNode);
-
-    formatChild(childNode);
-    
-    xsdComp.setElement(parentNode);
-    
-    return childNode;
-  }
-}
-
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateIdentityConstraintsAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateIdentityConstraintsAction.java
deleted file mode 100644
index ca933f3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateIdentityConstraintsAction.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class CreateIdentityConstraintsAction extends CreateElementAction
-{
-  XSDSchema xsdSchema;
-
-  /**
-   * Constructor for CreateIdentityConstraintsAction.
-   */
-  public CreateIdentityConstraintsAction()
-  {
-    super();
-  }
-  /**
-   * Constructor for CreateIdentityConstraintsAction.
-   * @param text
-   */
-  public CreateIdentityConstraintsAction(String text)
-  {
-    super(text);
-  }
-  /**
-   * Constructor for CreateIdentityConstraintsAction.
-   * @param text
-   * @param XSDSchema
-   */
-  public CreateIdentityConstraintsAction(String text, XSDSchema xsdSchema)
-  {
-    super(text);
-    this.xsdSchema = xsdSchema;
-  }
-  /**
-   * Constructor for CreateIdentityConstraintsAction.
-   * @param text
-   * @param image
-   */
-  public CreateIdentityConstraintsAction(String text, ImageDescriptor image)
-  {
-    super(text, image);
-  }
-
-  public Element createAndAddNewChildElement()
-  {
-    Element childNode = super.createAndAddNewChildElement();
-
-    String prefix = parentNode.getPrefix();
-    prefix = (prefix == null) ? "" : (prefix + ":");
-    Element selectorNode = getDocument().createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, prefix + XSDConstants.SELECTOR_ELEMENT_TAG);
-
-    DOMAttribute attr = new DOMAttribute(XSDConstants.XPATH_ATTRIBUTE, "");
-    selectorNode.setAttribute(attr.getName(), attr.getValue());
-
-    childNode.appendChild(selectorNode);
-
-    return childNode;
-  }
-	
-}
-
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateLocalComplexTypeAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateLocalComplexTypeAction.java
deleted file mode 100644
index e8b0cd0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateLocalComplexTypeAction.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-
-public class CreateLocalComplexTypeAction extends CreateElementAction
-{
-  /**
-   * Constructor for CreateLocalComplexTypeAction.
-   */
-  public CreateLocalComplexTypeAction()
-  {
-    super();
-  }
-  /**
-   * Constructor for CreateLocalComplexTypeAction.
-   * @param text
-   */
-  public CreateLocalComplexTypeAction(String text)
-  {
-    super(text);
-  }
-  /**
-   * Constructor for CreateLocalComplexTypeAction.
-   * @param text
-   * @param image
-   */
-  public CreateLocalComplexTypeAction(String text, ImageDescriptor image)
-  {
-    super(text, image);
-  }
-
-  public Element createAndAddNewChildElement()
-  {  
-    XSDConcreteComponent xsdComp = xsdSchema.getCorrespondingComponent(parentNode);
-    
-    Element childNode = super.createAndAddNewChildElement();
-  
-    if (XSDDOMHelper.inputEquals(parentNode, XSDConstants.ELEMENT_ELEMENT_TAG, false))  
-    {  
-      parentNode.removeAttribute(XSDConstants.TYPE_ATTRIBUTE);  
-    }  
-                                                      
-    String prefix = parentNode.getPrefix();
-    prefix = (prefix == null) ? "" : (prefix + ":");
-    childNode.appendChild(getDocument().createElement(prefix + XSDConstants.SEQUENCE_ELEMENT_TAG));
-    
-    formatChild(childNode);
-    
-    xsdComp.setElement(parentNode);
-
-    return childNode;
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateLocalSimpleTypeAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateLocalSimpleTypeAction.java
deleted file mode 100644
index d2e1065..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateLocalSimpleTypeAction.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class CreateLocalSimpleTypeAction extends CreateElementAction
-{
-  XSDSchema xsdSchema;
-
-  /**
-   * Constructor for CreateLocalSimpleTypeAction.
-   */
-  public CreateLocalSimpleTypeAction()
-  {
-    super();
-  }
-  /**
-   * Constructor for CreateLocalSimpleTypeAction.
-   * @param text
-   */
-  public CreateLocalSimpleTypeAction(String text)
-  {
-    super(text);
-  }
-
-  /**
-   * Constructor for CreateLocalSimpleTypeAction.
-   * @param text
-   * @param image
-   */
-  public CreateLocalSimpleTypeAction(String text, ImageDescriptor image)
-  {
-    super(text, image);
-  }
-
-  public Element createAndAddNewChildElement()
-  {
-    Element childNode = super.createAndAddNewChildElement();
-
-    if (XSDDOMHelper.inputEquals(parentNode, XSDConstants.UNION_ELEMENT_TAG, false))
-    {
-//      parentNode.removeAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE);
-    }
-    else if (XSDDOMHelper.inputEquals(parentNode, XSDConstants.LIST_ELEMENT_TAG, false))
-    {
-      parentNode.removeAttribute(XSDConstants.ITEMTYPE_ATTRIBUTE);
-    }
-    else if (XSDDOMHelper.inputEquals(parentNode, XSDConstants.ATTRIBUTE_ELEMENT_TAG, false))
-    {
-      parentNode.removeAttribute(XSDConstants.TYPE_ATTRIBUTE);
-    }
-    else if (XSDDOMHelper.inputEquals(parentNode, XSDConstants.RESTRICTION_ELEMENT_TAG, false))
-    {
-      Node parent = parentNode.getParentNode();
-      if (XSDDOMHelper.inputEquals(parent, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false))
-      {
-        parentNode.removeAttribute(XSDConstants.BASE_ATTRIBUTE);
-      }
-    }
-    else if (XSDDOMHelper.inputEquals(parentNode, XSDConstants.ELEMENT_ELEMENT_TAG, false))
-    {
-      parentNode.removeAttribute(XSDConstants.TYPE_ATTRIBUTE);
-    }
-    
-    formatChild(childNode);
-    
-    return childNode;
-  }
-}
-
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateSimpleContentAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateSimpleContentAction.java
deleted file mode 100644
index 9c49936..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateSimpleContentAction.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-/**
- * @version   1.0
- * @author
- */
-public class CreateSimpleContentAction extends CreateElementAction
-{
-  XSDSchema xsdSchema;
-  //IDocument document;
-
-  /**
-   * Constructor for CreateSimpleContentAction.
-   */
-  public CreateSimpleContentAction()
-  {
-    super();
-  }
-  /**
-   * Constructor for CreateSimpleContentAction.
-   * @param text
-   */
-  public CreateSimpleContentAction(String text)
-  {
-    super(text);
-  }
-  /**
-   * Constructor for CreateSimpleContentAction.
-   * @param text
-   * @param XSDSchema
-   */
-  public CreateSimpleContentAction(String text, XSDSchema xsdSchema)
-  {
-    super(text);
-    this.xsdSchema = xsdSchema;
-  }
-  /**
-   * Constructor for CreateSimpleContentAction.
-   * @param text
-   * @param image
-   */
-  public CreateSimpleContentAction(String text, ImageDescriptor image)
-  {
-    super(text, image);
-  }
-
-  public Element createAndAddNewChildElement()
-  {
-    Element childNode = super.createAndAddNewChildElement();
-
-    String prefix = parentNode.getPrefix();
-    prefix = (prefix == null) ? "" : (prefix + ":");
-    Element derivedByNode = getDocument().createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, prefix + "restriction");
-    childNode.appendChild(derivedByNode);
-    Element sequence = null;
-
-    if (XSDDOMHelper.inputEquals(childNode, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
-    {
-      sequence = getDocument().createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, prefix + "sequence");
-      derivedByNode.appendChild(sequence);
-    }
-
-    // now add the required base attribute for the derived by node
-    TypesHelper typesHelper = new TypesHelper(xsdSchema);
-    List listOfCT = typesHelper.getUserComplexTypeNamesList();
-    String firstType = "";
-    if (listOfCT.size() > 0)
-    {
-      firstType = (String)(listOfCT).get(0);
-    }
-    DOMAttribute attr = new DOMAttribute(XSDConstants.BASE_ATTRIBUTE, firstType);
-    derivedByNode.setAttribute(attr.getName(), attr.getValue());
-
-    formatChild(derivedByNode);
-    if (sequence != null)
-    {
-      formatChild(sequence);
-      formatChild(derivedByNode);
-    }
-    formatChild(childNode);
-
-    
-    return childNode;
-  }
-
-  /*
-   * @see IAction#run()
-   */
-  public void run()
-  {
-    ArrayList message = new ArrayList();
-    beginRecording(getDescription());
-
-    Element child = createAndAddNewChildElement();
-    endRecording();
-
-    NodeList children = parentNode.getChildNodes();
-/*
-    for (int i=0; i < children.getLength(); i++)
-    {
-      Node aChild = children.item(i);
-      if (aChild != null && aChild instanceof Element)
-      {
-        if (XSDDOMHelper.inputEquals((Element)aChild, XSDConstants.ATTRIBUTE_ELEMENT_TAG, false) ||
-            XSDDOMHelper.inputEquals((Element)aChild, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, true))
-        {
-          // REMOVE ATTRIBUTES AND ATTRIBUTE GROUP REFS FROM COMPLEX TYPES LIST OF CHILDREN
-          message.addElement(new ModelMessage
-                                 (XSDPlugin.getSchemaString("_INFO_REMOVE_ATTRIBUTE_FROM") +
-              " <" + parentNode.getAttribute("name") + ">", aChild));
-        }
-      }
-    }
-    domainModel.createMarkers(message);
-*/
-    for (int i=0; i < children.getLength(); i++)
-    {
-      Node aChild = children.item(i);
-      if (aChild != null && aChild instanceof Element)
-      {
-        if (XSDDOMHelper.inputEquals((Element)aChild, XSDConstants.ATTRIBUTE_ELEMENT_TAG, false) ||
-            XSDDOMHelper.inputEquals((Element)aChild, XSDConstants.ATTRIBUTE_ELEMENT_TAG, true) ||
-            XSDDOMHelper.inputEquals((Element)aChild, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, false) ||
-            XSDDOMHelper.inputEquals((Element)aChild, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, true))
-        {
-          // REMOVE ATTRIBUTES AND ATTRIBUTE GROUP REFS FROM COMPLEX TYPES LIST OF CHILDREN
-// KCPort TODO
-//          ErrorMessage aTask = new ErrorMessage();
-//          Node parent = aChild;
-//          if (parent instanceof NodeImpl)
-//          {
-//            aTask.setModelObject(parent);
-//          }
-//          aTask.setLocalizedMessage(XSDPlugin.getSchemaString("_INFO_REMOVE_ATTRIBUTE_FROM") + " <" + parentNode.getAttribute("name") + ">");
-//          message.add(aTask);
-        }
-      }
-    }    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateSimpleTypeAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateSimpleTypeAction.java
deleted file mode 100644
index 5e5c29c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/CreateSimpleTypeAction.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-public class CreateSimpleTypeAction extends CreateElementAction
-{
-  /**
-   * 
-   */
-  public CreateSimpleTypeAction()
-  {
-    super();
-  }
-
-  /**
-   * @param text
-   */
-  public CreateSimpleTypeAction(String text)
-  {
-    super(text);
-  }
-  
-  public CreateSimpleTypeAction(String text, XSDSchema xsdSchema)
-  {
-    super(text);
-    this.xsdSchema = xsdSchema;
-  }
-
-  /**
-   * @param text
-   * @param image
-   */
-  public CreateSimpleTypeAction(String text, ImageDescriptor image)
-  {
-    super(text, image);
-  }
-  
-  public Element createAndAddNewChildElement()
-  {
-    XSDConcreteComponent xsdComp = xsdSchema.getCorrespondingComponent(parentNode);
-    Element childNode = super.createAndAddNewChildElement();
-
-    String prefix = parentNode.getPrefix();
-    prefix = (prefix == null) ? "" : (prefix + ":");
-    Element contentModelNode = getDocument().createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, prefix + XSDConstants.RESTRICTION_ELEMENT_TAG);
-    contentModelNode.setAttribute(XSDConstants.BASE_ATTRIBUTE, prefix + "string");
-    childNode.appendChild(contentModelNode);
-
-    formatChild(childNode);
-    
-    xsdComp.setElement(parentNode);
-    
-    return childNode;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/DOMAttribute.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/DOMAttribute.java
deleted file mode 100644
index 5580b40..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/DOMAttribute.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-// TODO Remove this
-
-/**
- * @version 	1.0
- * @author
- */
-public class DOMAttribute
-{
-  /**
-   * Constructor for DOMAttribute.
-   */
-  public DOMAttribute()
-  {
-    super();
-  }
-  
-  /**
-   * Constructor for DOMAttribute.
-   */
-  public DOMAttribute(String name, String value)
-  {
-    super();
-    this.name = name;
-    this.value = value;
-  }
-  
-  protected String name, value;
-  /**
-   * Gets the value.
-   * @return Returns a String
-   */
-  public String getValue()
-  {
-    return value;
-  }
-
-  /**
-   * Sets the value.
-   * @param value The value to set
-   */
-  public void setValue(String value)
-  {
-    this.value = value;
-  }
-
-  /**
-   * Gets the name.
-   * @return Returns a String
-   */
-  public String getName()
-  {
-    return name;
-  }
-
-  /**
-   * Sets the name.
-   * @param name The name to set
-   */
-  public void setName(String name)
-  {
-    this.name = name;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/DeleteAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/DeleteAction.java
deleted file mode 100644
index 097a4a3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/DeleteAction.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
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import java.util.Iterator;
-
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.actions.SelectionListenerAction;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.refactor.delete.BaseGlobalCleanup;
-import org.eclipse.wst.xsd.ui.internal.refactor.delete.GlobalAttributeCleanup;
-import org.eclipse.wst.xsd.ui.internal.refactor.delete.GlobalAttributeGroupCleanup;
-import org.eclipse.wst.xsd.ui.internal.refactor.delete.GlobalElementCleanup;
-import org.eclipse.wst.xsd.ui.internal.refactor.delete.GlobalGroupCleanup;
-import org.eclipse.wst.xsd.ui.internal.refactor.delete.GlobalSimpleOrComplexTypeCleanup;
-import org.eclipse.wst.xsd.ui.internal.refactor.delete.XSDExternalFileCleanup;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDImport;
-import org.eclipse.xsd.XSDInclude;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDRedefine;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Node;
-
-
-public class DeleteAction extends SelectionListenerAction
-{
-  protected IEditorPart editor;
-  protected XSDSchema xsdSchema;
-  protected ISelectionProvider selectionProvider;
-  protected XSDConcreteComponent parentXSDComponent;
-  
-  /**
-   * Constructor for DeleteAction.
-   * @param text
-   */
-  public DeleteAction(String text, IEditorPart editor, XSDSchema xsdSchema)
-  {
-    super(text);
-    this.editor = editor;
-    this.xsdSchema = xsdSchema;
-  }
-  
-  public void setSelectionProvider(ISelectionProvider selectionProvider)
-  {
-    this.selectionProvider = selectionProvider;
-  }
-  
-  public IEditorPart getEditor()
-  {
-    return editor;
-  }
-  
-  public XSDSchema getSchema()
-  {
-    return xsdSchema;
-  }
-  
-  public void setXSDSchema(XSDSchema xsdSchema)
-  {
-    this.xsdSchema = xsdSchema;
-  }
-  
-  /*
-   * @see IAction#run()
-   */
-  public void run()
-  {
-    IStructuredSelection selection = getStructuredSelection();
-    
-    if (selection.isEmpty())
-    {
-      return;
-    }
-    
-    Iterator iter = selection.iterator();
-    DocumentImpl doc = null;
-    while (iter.hasNext())
-    {
-      Object obj = iter.next();
-      Node node = null;
-      if (obj instanceof Node)
-      {
-        node = (Node)obj;
-      }
-      else if (obj instanceof XSDConcreteComponent)
-      {
-        xsdSchema = ((XSDConcreteComponent)obj).getSchema();
-        
-        node = ((XSDConcreteComponent)obj).getElement();
-        if (node instanceof XMLNode)
-        {
-          parentXSDComponent = ((XSDConcreteComponent)obj).getContainer();
-        
-          if (parentXSDComponent instanceof XSDParticle)
-          {
-            // need to get the modelGroup
-            parentXSDComponent = parentXSDComponent.getContainer();
-          }
-        }
-
-      }
-      if (!XSDDOMHelper.inputEquals(node, XSDConstants.SCHEMA_ELEMENT_TAG, false))
-      {
-        if (node instanceof XMLNode)
-        {
-          if (doc == null)
-          {
-            doc = (DocumentImpl) node.getOwnerDocument();
-            doc.getModel().beginRecording(this, XSDEditorPlugin.getXSDString("_UI_ACTION_DELETE_NODES"));
-          }
-    
-          boolean refresh = cleanupReferences(node);
-          if (node != null)
-          {
-            XSDDOMHelper.removeNodeAndWhitespace(node);
-          }
-          
-          // Workaround to reset included elements in XSD model
-          if (refresh)
-          {
-  //          getEditor().reparseSchema();
-  //          getEditor().getGraphViewer().setSchema(getEditor().getXSDSchema());
-          }
-        }
-      }
-    }
-    
-    if (parentXSDComponent != null && selectionProvider != null)
-    {
-      selectionProvider.setSelection(new StructuredSelection(parentXSDComponent));
-    }
-    
-    if (doc != null)
-    {
-      doc.getModel().endRecording(this);
-    }
-  }
-
-  protected boolean cleanupReferences(Node deletedNode)
-  {
-    boolean refresh = false;
-    XSDConcreteComponent comp = getSchema().getCorrespondingComponent(deletedNode);
-    
-    if (comp instanceof XSDInclude ||
-        comp instanceof XSDImport ||
-        comp instanceof XSDRedefine)
-    {
-      XSDSchema resolvedSchema = ((XSDSchemaDirective)comp).getResolvedSchema();
-      XSDSchema referencedSchema = null;
-      if (comp instanceof XSDInclude)
-      {
-        referencedSchema = ((XSDInclude)comp).getIncorporatedSchema();
-        refresh = true;
-      }
-      else if (comp instanceof XSDRedefine)
-      {
-        referencedSchema = ((XSDRedefine)comp).getIncorporatedSchema();
-        refresh = true;
-      }
-      else if (comp instanceof XSDImport)
-      {
-        XSDImport imp = (XSDImport)comp;
-        referencedSchema = ((XSDImport)comp).getResolvedSchema();
-        refresh = true;
-      }
-
-      if (referencedSchema != null)
-      {
-        XSDExternalFileCleanup cleanHelper = new XSDExternalFileCleanup(referencedSchema);
-        cleanHelper.visitSchema(getSchema());
-        // populate messages
-// TODO        getEditor().createTasksInTaskList(cleanHelper.getMessages());
-      }
-      if (comp instanceof XSDImport)
-      {
-        TypesHelper typesHelper = new TypesHelper(getSchema());
-        typesHelper.updateMapAfterDelete((XSDImport)comp);
-      }
-    }
-    else if (getSchema().equals(comp.getContainer()))
-    {
-      BaseGlobalCleanup cleanHelper = null;
-      // Only need to clean up references if the component being deleted is global scoped
-      if (comp instanceof XSDElementDeclaration)
-      {
-        cleanHelper = new GlobalElementCleanup(comp);
-      }
-      else if (comp instanceof XSDModelGroupDefinition)
-      {
-        cleanHelper = new GlobalGroupCleanup(comp);
-      }
-      else if (comp instanceof XSDTypeDefinition)
-      {
-        cleanHelper = new GlobalSimpleOrComplexTypeCleanup(comp);
-      }
-      else if (comp instanceof XSDAttributeDeclaration)
-      {
-        cleanHelper = new GlobalAttributeCleanup(comp);
-      }
-      else if (comp instanceof XSDAttributeGroupDefinition)
-      {
-        cleanHelper = new GlobalAttributeGroupCleanup(comp);
-      }
-      
-      
-      if (cleanHelper != null)
-      {
-        cleanHelper.visitSchema(getSchema());
-      }
-    }
-    return refresh;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/GraphRenameAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/GraphRenameAction.java
deleted file mode 100644
index 4576bfa..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/GraphRenameAction.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.jface.action.Action;
-import org.eclipse.wst.xsd.ui.internal.commands.RenameCommand;
-import org.eclipse.xsd.XSDNamedComponent;
-
-
-public class GraphRenameAction extends Action
-{
-  protected RenameCommand command;
-  
-  public GraphRenameAction(XSDNamedComponent namedComponent, GraphicalEditPart editPart)
-  {
-    command = new RenameCommand(namedComponent, editPart);
-    setText("Rename");
-  }
-
-  public void run()
-  {
-    command.run();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/ISchemaEditorActionConstants.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/ISchemaEditorActionConstants.java
deleted file mode 100644
index 6033b72..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/ISchemaEditorActionConstants.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-public interface ISchemaEditorActionConstants
-{
-  public static final String RETARGET_VALIDATE_SCHEMA_ACTION_ID = "retargetValidateSchemaAction"; //$NON-NLS-1$
-  public static final String RETARGET_RELOAD_DEPENDENCIES_ACTION_ID = "retargetReloadDependenciesAction"; //$NON-NLS-1$
-  public static final String RETARGET_GENERATE_JAVA_ACTION_ID = "retargetGenerateJavaAction"; //$NON-NLS-1$
-  public static final String RETARGET_GENERATE_DTD_ACTION_ID = "retargetGenerateDtdAction"; //$NON-NLS-1$
-  public static final String RETARGET_GENERATE_XML_ACTION_ID = "retargetGenerateXMLAction"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/MakeAnonymousGlobal.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/MakeAnonymousGlobal.java
deleted file mode 100644
index 9a9638a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/MakeAnonymousGlobal.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-public class MakeAnonymousGlobal extends CreateElementAction
-{
-	XSDSchema xsdSchema;
-	Element type;
-	
-	public MakeAnonymousGlobal(String text, Element type, XSDSchema xsdSchema)
-	{
-		super(text);
-		this.xsdSchema = xsdSchema;
-		this.type = type;
-		isGlobal = true;
-	}
-
-	public Element createAndAddNewChildElement()
-	{
-		// create the new global type
-		Element childNode = super.createAndAddNewChildElement();
-    // add the anonymous type's children to the new global type
-		if (type.hasChildNodes())
-		{        
-			NodeList nodes = type.getChildNodes();
-			// use clones so we don't have a refresh problem
-			for (int i = 0; i < nodes.getLength(); i++)
-			{
-				Node node = nodes.item(i);       
-				childNode.appendChild(node.cloneNode(true));
-			}
-		}
-
-    // clean up the element whose type was anonymous
-    // and set its type attribute to the new global type
-		TypesHelper helper = new TypesHelper(xsdSchema);
-		String prefix = helper.getPrefix(xsdSchema.getTargetNamespace(), true);
-		helper = null;
-		
-		Element parentElementOfAnonymousType = (Element)type.getParentNode();
-
-		parentElementOfAnonymousType.removeChild(type);
-		parentElementOfAnonymousType.setAttribute(XSDConstants.TYPE_ATTRIBUTE, prefix + childNode.getAttribute(XSDConstants.NAME_ATTRIBUTE));
-
-		formatChild(childNode);
-		
-    return childNode;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/ModelMessage.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/ModelMessage.java
deleted file mode 100644
index aa30618..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/ModelMessage.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import org.w3c.dom.Node;
-
-public class ModelMessage
-{
-  protected String message;
-  protected Node node;
-
-  public ModelMessage(String message, Node node)
-  {
-    this.message = message;
-    this.node = node;
-  }
-
-  public String getMessage()
-  {
-    return message;
-  }
-
-  public Node getNode()
-  {
-    return node;
-  }
-}
-
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/MoveAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/MoveAction.java
deleted file mode 100644
index 741f7d0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/MoveAction.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-public class MoveAction extends Action
-{
-  protected List selectedNodes;
-  protected Node parentNode;
-  protected Node refChild;
-
-  /**
-   * Constructor for DeleteAction.
-   * @param text
-   */
-  public MoveAction(Node parentNode, List selectedNodes, Node refChild)
-  {
-    this.parentNode = parentNode;
-    this.selectedNodes = selectedNodes;
-    this.refChild = refChild;
-  }    
-
-  public MoveAction(XSDConcreteComponent parentComponent, List selectedComponents, XSDConcreteComponent refChildComponent)
-  {
-    selectedNodes = new ArrayList(selectedComponents.size());
-    for (Iterator i = selectedComponents.iterator(); i.hasNext(); )
-    {
-      XSDConcreteComponent concreteComponent = (XSDConcreteComponent)i.next();
-      selectedNodes.add(concreteComponent.getElement());
-    }
-    parentNode = parentComponent.getElement();
-    refChild = refChildComponent != null ? refChildComponent.getElement() : null;
-  }
-                   
-  public boolean canMove()
-  {                           
-    // TODO... there are likely more restriction to consider here
-    boolean result = true;
-    for (Iterator i = selectedNodes.iterator(); i.hasNext(); )
-    {
-      Node child = (Node)i.next();
-      if (isDecendantOrSelf(child, parentNode)) 
-      {
-        result = false;
-        break;
-      }
-    }   
-    return result;
-  }           
-                  
-  protected boolean isDecendantOrSelf(Node potentialParent, Node node)
-  { 
-    boolean result = false;
-    while (node != null)
-    {
-      if (node == potentialParent)    
-      {
-        result = true;
-        break;
-      }           
-      node = node.getParentNode();
-    }
-    return result;
-  }
-
-
-  protected void beginRecording()
-  {
-    XMLModel model = getModel();      
-    if (model != null)
-    {
-      model.beginRecording(this, "Move");
-    }
-  }
-  
-  protected void endRecording()
-  {
-    XMLModel model = getModel();      
-    if (model != null)
-    {
-      model.endRecording(this);    
-    }
-  }
-
-  protected XMLModel getModel()
-  {
-    XMLModel model = null;
-    if (parentNode instanceof XMLNode)
-    {                            
-      model = ((XMLNode)parentNode).getModel();
-    }
-    return model;
-  }
-  
-
-     
-  /*
-   * @see IAction#run()
-   */
-  public void run()
-  {                            
-    beginRecording();
-    try
-    {
-      for (Iterator i = selectedNodes.iterator(); i.hasNext(); )
-      {
-        Node child = (Node)i.next();
-        repositionBefore(parentNode, child, refChild);
-      }   
-    }
-    catch (Exception e)
-    {         
-      e.printStackTrace();
-    }
-    endRecording();
-  }
-
-
-  public void repositionBefore(Node parent, Node child, Node refChild)
-  {   
-    // TODO... when the refChild (inserting as the last element) we need to
-    // special case the way we preserve indentation 
-    Node oldParent = child.getParentNode();
-    if (oldParent != null && refChild != child)
-    {  
-      // consider any indentation text node that preceeds the child
-      //      
-      Node textNode = isWhitespaceTextNode(child.getPreviousSibling()) ? child.getPreviousSibling() : null;
-
-      // remove the child
-      //
-      oldParent.removeChild(child);
-      
-      // Instead of inserting the child immediatlely infront of the refChild, we first check to see if there
-      // is an indentation text node preceeding the refChild.  If we find such a node, we perform the insertion
-      // so that the child is inserted before the indentation text node.
-      Node adjustedRefChild = refChild;
-      if (refChild != null && isWhitespaceTextNode(refChild.getPreviousSibling()))
-      {
-        adjustedRefChild = refChild.getPreviousSibling();
-      }
-          
-      // reposition the child and any indentation text node 
-      //
-      parent.insertBefore(child, adjustedRefChild);
-      if (textNode != null)
-      {
-        oldParent.removeChild(textNode);
-        parent.insertBefore(textNode, child);
-      }
-    }
-  }     
-    
-
-  protected static boolean isWhitespaceTextNode(Node node)
-  {
-    boolean result = false;
-    if (node != null && node.getNodeType() == Node.TEXT_NODE)
-    {
-      String data = ((Text)node).getData();
-      result = (data == null || data.trim().length() == 0);
-    }   
-    return result;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/OpenSchemaAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/OpenSchemaAction.java
deleted file mode 100644
index 6ba1ee9..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/OpenSchemaAction.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.wst.xml.uriresolver.util.URIHelper;
-import org.eclipse.wst.xsd.ui.internal.util.OpenOnSelectionHelper;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.impl.XSDImportImpl;
-import org.w3c.dom.Node;
-
-
-public class OpenSchemaAction extends Action
-{
-  XSDConcreteComponent component;
-  public OpenSchemaAction(String label, XSDConcreteComponent component)
-  {
-    super(label);
-    this.component = component;
-  }
-
-  public void run()
-  {
-    if (component != null)
-    {
-      revealObject();
-    }
-  }
-
-  boolean lastResult = false;
-  protected boolean revealObject()
-  {
-    Node element = component.getElement();
-    String schemaLocation = "";
-    XSDSchemaDirective dir;
-    if (component instanceof XSDSchemaDirective)
-    {
-      dir = (XSDSchemaDirective)component;
-      // force load of imported schema
-      if (dir instanceof XSDImportImpl)
-      {
-        ((XSDImportImpl)dir).importSchema();
-      }
-      if (dir.getResolvedSchema() != null)
-      {
-        schemaLocation = URIHelper.removePlatformResourceProtocol(dir.getResolvedSchema().getSchemaLocation());
-        if (schemaLocation != null)
-        {
-          OpenOnSelectionHelper.openXSDEditor(schemaLocation);
-        }
-      }
-    }
-    return lastResult;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/ReloadDependenciesAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/ReloadDependenciesAction.java
deleted file mode 100644
index 73e239f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/ReloadDependenciesAction.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditor;
-
-
-public class ReloadDependenciesAction extends Action
-{
-  /**
-   * Constructor for ReloadDependenciesAction.
-   */
-  public ReloadDependenciesAction()
-  {
-    super();
-  }
-
-  /**
-   * Constructor for ReloadDependenciesAction.
-   * @param text
-   */
-  public ReloadDependenciesAction(String text)
-  {
-    super(text);
-  }
-
-  /**
-   * Constructor for ReloadDependenciesAction.
-   * @param text
-   * @param image
-   */
-  public ReloadDependenciesAction(String text, ImageDescriptor image)
-  {
-    super(text, image);
-  }
-
-  public void setEditor(XSDEditor editor)
-  {
-    this.editor = editor;
-  }
-  
-  protected XSDEditor editor;
-  
-  public void run()
-  {
-    editor.reparseSchema();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/SetBaseTypeAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/SetBaseTypeAction.java
deleted file mode 100644
index 27bbabb..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/SetBaseTypeAction.java
+++ /dev/null
@@ -1,384 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.wst.sse.core.format.IStructuredFormatProcessor;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xml.core.format.FormatProcessorXML;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.wst.xsd.ui.internal.widgets.SetBaseTypeDialog;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-public class SetBaseTypeAction extends Action
-{
-  XSDSchema xsdSchema;
-  Element element;
-  String type = "";
-  String derivedByString = "";
-  XSDDOMHelper domHelper;
-  
-  /**
-   * Constructor for SetBaseTypeAction.
-   */
-  public SetBaseTypeAction()
-  {
-    super();
-    domHelper = new XSDDOMHelper();
-  }
-  /**
-   * Constructor for SetBaseTypeAction.
-   * @param arg0
-   */
-  public SetBaseTypeAction(String arg0)
-  {
-    super(arg0);
-    domHelper = new XSDDOMHelper();
-  }
-  /**
-   * Constructor for SetBaseTypeAction.
-   * @param arg0
-   * @param arg1
-   */
-  public SetBaseTypeAction(String arg0, ImageDescriptor arg1)
-  {
-    super(arg0, arg1);
-    domHelper = new XSDDOMHelper();
-  }
-  /**
-   * Constructor for SetBaseTypeAction.
-   * @param arg0
-   * @param arg1
-   */
-  public SetBaseTypeAction(String arg0, int arg1)
-  {
-    super(arg0, arg1);
-    domHelper = new XSDDOMHelper();
-  }
-
-  
-  public void setXSDSchema(XSDSchema schema)
-  {
-    this.xsdSchema = schema;    
-  }
-
-  public void setComplexTypeElement(Element element)
-  {
-    this.element = element;
-  }
-  
-  public void setType(String type)
-  {
-    this.type = type; 
-  }
-
-  public void setDerivedBy(String derivedByString)
-  {
-    this.derivedByString = derivedByString;
-  }
-
-  public void run()
-  {
-    Display display = Display.getCurrent();
-    // if it is null, get the default one
-    display = display == null ? Display.getDefault() : display;
-    Shell parentShell = display.getActiveShell();
-
-    SetBaseTypeDialog dialog = new SetBaseTypeDialog(parentShell, xsdSchema, element);
-    dialog.setBlockOnOpen(true);
-
-    Element contentModelElement = domHelper.getContentModelFromParent(element);    
-    if (contentModelElement != null)
-    {
-      // to set the current values to show in the dialog
-      if (XSDDOMHelper.inputEquals(contentModelElement, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false) ||
-          XSDDOMHelper.inputEquals(contentModelElement, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
-      {
-        Element derivedByElement = domHelper.getDerivedByElementFromComplexType(element);
-        if (derivedByElement != null)
-        {
-          String currentBaseType = derivedByElement.getAttribute(XSDConstants.BASE_ATTRIBUTE);
-          dialog.setCurrentBaseType(currentBaseType);
-          dialog.setCurrentDerivedBy(derivedByElement.getLocalName());
-        }
-        else
-        {
-          dialog.setCurrentBaseType("");
-          dialog.setCurrentDerivedBy("");
-        }
-      }
-    }
-
-    int result = dialog.open();
-    
-    if (result == Window.OK) 
-    {
-      type = dialog.getBaseType();
-      derivedByString = dialog.getDerivedBy();
-      performAction();
-    }
-  }
-
-  XSDTypeDefinition newTypeDefinition = null;
-  public XSDTypeDefinition getXSDTypeDefinition()
-  {
-    return newTypeDefinition;
-  }
-
-  public void performAction()
-  {
-    TypesHelper helper = new TypesHelper(xsdSchema);
-
-    XSDConcreteComponent xsdComp = xsdSchema.getCorrespondingComponent(element);
-    
-    Element contentModelElement = domHelper.getContentModelFromParent(element);
-    boolean contentModelExists = true;
-    if (contentModelElement == null)
-    {
-      contentModelExists = false;
-    }
-
-//  get XSD component of the new type chosen
-    newTypeDefinition = null;
-    for (Iterator i = xsdSchema.getTypeDefinitions().iterator(); i.hasNext(); )
-    {
-      XSDTypeDefinition typeDef = (XSDTypeDefinition)i.next();
-      if (typeDef.getQName().equals(type))
-      {
-        newTypeDefinition = typeDef;
-        break;
-      }
-    }
-   
-    boolean needsComplexContent = false;
-    boolean needsSimpleContent = false;
-
-    if (helper.getBuiltInTypeNamesList().contains(type) ||
-       helper.getUserSimpleTypeNamesList().contains(type))
-//    if (newTypeDefinition instanceof XSDSimpleTypeDefinition)
-    {
-      needsSimpleContent = true; 
-    }        
-    else if (newTypeDefinition instanceof XSDComplexTypeDefinition)
-    {
-      needsComplexContent = true;
-//      XSDComplexTypeDefinition newCTObj = (XSDComplexTypeDefinition)newTypeDefinition;
-//      XSDContentTypeCategory category = newCTObj.getContentTypeCategory();
-    }
-    
-    beginRecording(XSDEditorPlugin.getXSDString("_UI_LABEL_SET_BASE_TYPE"), element);
-    String prefix = element.getPrefix();
-    prefix = (prefix == null) ? "" : (prefix + ":");
-
-    DOMAttribute attr = new DOMAttribute(XSDConstants.BASE_ATTRIBUTE, type);
-    boolean hasChildrenElements = domHelper.hasElementChildren(element);
-    if (!contentModelExists) // if no content model exists, then add the new nodes
-    {
-      if (helper.getBuiltInTypeNamesList().contains(type) ||
-          helper.getUserSimpleTypeNamesList().contains(type))
-      {
-        updateModelAndDerivedByKind(prefix + XSDConstants.SIMPLECONTENT_ELEMENT_TAG, prefix + XSDConstants.EXTENSION_ELEMENT_TAG, attr);
-      }
-      else if (helper.getUserComplexTypeNamesList().contains(type))
-      {
-        if (derivedByString.equals("")) // default
-        {
-          derivedByString = XSDConstants.EXTENSION_ELEMENT_TAG;
-        }
-        Element derivedByElement = updateModelAndDerivedByKind(prefix + XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, prefix + derivedByString, attr);
-        Element newModelGroupElement = element.getOwnerDocument().createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, prefix + XSDConstants.SEQUENCE_ELEMENT_TAG);
-        derivedByElement.appendChild(newModelGroupElement);
-        formatChild(derivedByElement);
-      }
-    }
-    else  // else there is a content model
-    {
-      if (type.equals(""))  // the chosen type is blank, ie. there is no base type
-      {
-        Element derivedByElement = domHelper.getDerivedByElementFromComplexType(element);
-        Element sourceContentModelElement = domHelper.getContentModelFromParent(derivedByElement);
-        // Retain the content model if there is one from the complex or simple content derive by element
-        if (XSDDOMHelper.inputEquals(sourceContentModelElement, XSDConstants.SEQUENCE_ELEMENT_TAG, false) ||
-            XSDDOMHelper.inputEquals(sourceContentModelElement, XSDConstants.CHOICE_ELEMENT_TAG, false) ||
-            XSDDOMHelper.inputEquals(sourceContentModelElement, XSDConstants.ALL_ELEMENT_TAG, false))
-        {      
-          Element newNode = domHelper.cloneElement(element, sourceContentModelElement);
-          element.replaceChild(newNode, contentModelElement);
-          formatChild(element); 
-        }
-        else // otherwise just add the nodes
-        {
-          XSDDOMHelper.removeNodeAndWhitespace(contentModelElement);
-          Element newSequenceElement = element.getOwnerDocument().createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, prefix + XSDConstants.SEQUENCE_ELEMENT_TAG);
-          element.appendChild(newSequenceElement);
-          formatChild(newSequenceElement);
-        }
-      }           
-      else // a base type is specified
-      {
-        Element sequenceChoiceOrAllElement = null;  // copy the model to reposition it off of the new derived by element
-        if (XSDDOMHelper.inputEquals(contentModelElement, XSDConstants.SEQUENCE_ELEMENT_TAG, false) ||
-            XSDDOMHelper.inputEquals(contentModelElement, XSDConstants.CHOICE_ELEMENT_TAG, false) ||
-            XSDDOMHelper.inputEquals(contentModelElement, XSDConstants.ALL_ELEMENT_TAG, false))
-        {
-           sequenceChoiceOrAllElement = domHelper.cloneElement(element, contentModelElement);
-        }
-
-        if (needsComplexContent)
-        {
-          if (!(XSDDOMHelper.inputEquals(contentModelElement, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false)))
-          {
-            domHelper.changeContentModel(element, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, sequenceChoiceOrAllElement);
-            contentModelElement = domHelper.getContentModelFromParent(element);
-          }          
-        }
-        if (needsSimpleContent)
-        {
-          if (!(XSDDOMHelper.inputEquals(contentModelElement, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false)))
-          {
-            // we don't want to append the element content to a simple content
-            sequenceChoiceOrAllElement = null;
-            domHelper.changeContentModel(element, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, sequenceChoiceOrAllElement);
-            contentModelElement = domHelper.getContentModelFromParent(element);
-          }
-        }
-
-        Element derivedByElement = domHelper.getDerivedByElementFromComplexType(element);        
-        if (derivedByElement == null)
-        {
-          if (derivedByString == null || (derivedByString != null && derivedByString.equals("")))
-          {
-            derivedByString = XSDConstants.EXTENSION_ELEMENT_TAG;  // since there is no derivedByElement
-          }
-          derivedByElement = element.getOwnerDocument().createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, derivedByString);
-          contentModelElement.appendChild(derivedByElement);
-          formatChild(contentModelElement);
-          if (sequenceChoiceOrAllElement != null)
-          {
-            derivedByElement.appendChild(sequenceChoiceOrAllElement);
-            formatChild(derivedByElement);
-          }
-        }
-        else
-        {
-          if (helper.getBuiltInTypeNamesList().contains(type) ||
-              helper.getUserSimpleTypeNamesList().contains(type))
-          {
-            derivedByString = XSDConstants.EXTENSION_ELEMENT_TAG;
-            Element aContentModelElement = domHelper.getContentModelFromParent(derivedByElement);
-            if (aContentModelElement != null)
-            {
-              XSDDOMHelper.removeNodeAndWhitespace(aContentModelElement);
-            }
-          }
-          domHelper.changeDerivedByType(contentModelElement, derivedByString, type);
-        }
-        derivedByElement.setAttribute(attr.getName(), attr.getValue());
-      }
-    }
-    
-    xsdComp.setElement(element);
-    endRecording(element);
-  }
-
-  private Element updateModelAndDerivedByKind(String modelType, String derivedByKind, DOMAttribute attr)
-  {
-    Element newContentModelElement = element.getOwnerDocument().createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, modelType);
-    element.appendChild(newContentModelElement);
-
-    Element newDerivedByElement = element.getOwnerDocument().createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, derivedByKind);
-    newContentModelElement.appendChild(newDerivedByElement);
-
-    newDerivedByElement.setAttribute(attr.getName(), attr.getValue());
-    
-    NodeList children = element.getChildNodes();
-    int length = children.getLength();
-    ArrayList nodesToRemove = new ArrayList();
-    for (int i = 0; i < length; i++)
-    {
-      Node node = children.item(i);
-      if (XSDDOMHelper.inputEquals(node, XSDConstants.ATTRIBUTE_ELEMENT_TAG, false) ||
-          XSDDOMHelper.inputEquals(node, XSDConstants.ATTRIBUTE_ELEMENT_TAG, true) ||
-          XSDDOMHelper.inputEquals(node, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, true) ||
-          XSDDOMHelper.inputEquals(node, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, false))
-      {
-        newDerivedByElement.appendChild(node.cloneNode(true));
-        nodesToRemove.add(node);
-      }
-    }
-    for (Iterator i = nodesToRemove.iterator(); i.hasNext(); )
-    {
-      XSDDOMHelper.removeNodeAndWhitespace((Node)i.next());
-    }
-    
-    formatChild(newContentModelElement);
-
-    return newDerivedByElement;
-  }
-
-  protected void formatChild(Element child)
-  {
-    if (child instanceof XMLNode)
-    {
-      XMLModel model = ((XMLNode)child).getModel();
-      try
-      {
-        // tell the model that we are about to make a big model change
-        model.aboutToChangeModel();
-        
-        IStructuredFormatProcessor formatProcessor = new FormatProcessorXML();
-        formatProcessor.formatNode(child);
-      }
-      finally
-      {
-        // tell the model that we are done with the big model change
-        model.changedModel(); 
-      }
-    }
-
-  }
-
-  public DocumentImpl getDocument(Element element)
-  {
-    return (DocumentImpl) element.getOwnerDocument();
-  }
-
-  public void beginRecording(String description, Element element)
-  {
-    getDocument(element).getModel().beginRecording(this, description);
-  }
-  
-  public void endRecording(Element element)
-  {
-    DocumentImpl doc = (DocumentImpl) getDocument(element);
-    
-    doc.getModel().endRecording(this);    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/XSDEditNamespacesAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/XSDEditNamespacesAction.java
deleted file mode 100644
index 4669904..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/actions/XSDEditNamespacesAction.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.wst.common.contentmodel.util.DOMNamespaceInfoManager;
-import org.eclipse.wst.common.contentmodel.util.NamespaceInfo;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.wst.xml.ui.actions.ReplacePrefixAction;
-import org.eclipse.wst.xml.ui.util.XMLCommonResources;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.SchemaPrefixChangeHandler;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.TargetNamespaceChangeHandler;
-import org.eclipse.wst.xsd.ui.internal.util.XSDSchemaHelper;
-import org.eclipse.wst.xsd.ui.internal.widgets.XSDEditSchemaInfoDialog;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class XSDEditNamespacesAction extends Action {
-	private Element element;
-	private Node node;
-	private String resourceLocation;
-	private XSDSchema xsdSchema;
-    private DOMNamespaceInfoManager namespaceInfoManager = new DOMNamespaceInfoManager();
-	
-	public XSDEditNamespacesAction(String label, Element element, Node node) {
-		super();
-		setText(label);
-		
-		this.element = element;
-		this.node = node;
-		///////////////////// This needs to be changed....
-		this.resourceLocation = "dummy";		
-	}
-	
-	public XSDEditNamespacesAction(String label, Element element, Node node, XSDSchema schema) {
-		this (label, element, node);
-		xsdSchema = schema;
-	}
-	
-	public void run() {
-		if (element != null)
-		{   
-		      Shell shell = XMLCommonResources.getInstance().getWorkbench().getActiveWorkbenchWindow().getShell();
-		      String targetNamespace = null;
-		      if (xsdSchema != null) {
-		      	targetNamespace = xsdSchema.getTargetNamespace();
-		      }
-		      XSDEditSchemaInfoDialog dialog = new XSDEditSchemaInfoDialog(shell, new Path(resourceLocation), targetNamespace); 
-
-		      List namespaceInfoList = namespaceInfoManager.getNamespaceInfoList(element);
-		      List oldNamespaceInfoList = NamespaceInfo.cloneNamespaceInfoList(namespaceInfoList);
-
-		      // here we store a copy of the old info for each NamespaceInfo
-		      // this info will be used in createPrefixMapping() to figure out how to update the document 
-		      // in response to these changes
-		      for (Iterator i = namespaceInfoList.iterator(); i.hasNext(); )
-		      {
-		        NamespaceInfo info = (NamespaceInfo)i.next();
-		        NamespaceInfo oldCopy = new NamespaceInfo(info);
-		        info.setProperty("oldCopy", oldCopy);
-		      }
-		                              
-		      dialog.setNamespaceInfoList(namespaceInfoList);   
-		      dialog.create();      
-		      //dialog.getShell().setSize(500, 300);
-		      dialog.getShell().setText("Edit Schema Information");
-//		      dialog.getShell().setText(XMLCommonResources.getInstance().getString("_UI_MENU_EDIT_SCHEMA_INFORMATION_TITLE"));
-		      dialog.setBlockOnOpen(true);                                 
-		      dialog.open();
-          String xsdPrefix = "";    
-
-		      if (dialog.getReturnCode() == Window.OK)
-		      {
-            Element xsdSchemaElement = xsdSchema.getElement();
-            DocumentImpl doc = (DocumentImpl) xsdSchemaElement.getOwnerDocument();
-            
-            List newInfoList = dialog.getNamespaceInfoList();
-
-		        // see if we need to rename any prefixes
-		        Map prefixMapping = createPrefixMapping(oldNamespaceInfoList, namespaceInfoList);
-            
-            Map map2 = new Hashtable();
-            String xsdNS = "";
-            for (Iterator iter = newInfoList.iterator(); iter.hasNext(); )
-            {
-              NamespaceInfo ni = (NamespaceInfo)iter.next();
-              String pref = ni.prefix;
-              String uri = ni.uri;
-              if (pref == null) pref = "";
-              if (uri == null) uri = "";
-              if (XSDConstants.isSchemaForSchemaNamespace(uri))
-              {
-                xsdPrefix = pref;
-              }
-              map2.put(pref, uri);
-            }
-           
-		        if (map2.size() > 0)
-		        {
-		        	try {
-                
-                doc.getModel().beginRecording(this, XSDEditorPlugin.getXSDString("_UI_NAMESPACE_CHANGE"));
-
-                if (xsdPrefix != null && xsdPrefix.length() == 0)
-                {
-                  xsdSchema.setSchemaForSchemaQNamePrefix(null);
-                }
-                else
-                {
-                  xsdSchema.setSchemaForSchemaQNamePrefix(xsdPrefix);
-                }
-                
-                SchemaPrefixChangeHandler spch = new SchemaPrefixChangeHandler(xsdSchema, xsdPrefix);
-                spch.resolve();
-
-                xsdSchema.setTargetNamespace(dialog.getTargetNamespace());
-                
-                namespaceInfoManager.removeNamespaceInfo(element);
-                namespaceInfoManager.addNamespaceInfo(element, newInfoList, false);
-               
-//                manager.getModel().aboutToChangeModel();
-			          ReplacePrefixAction replacePrefixAction = new ReplacePrefixAction(null, element, prefixMapping);
-			          replacePrefixAction.run();
-                
-                TargetNamespaceChangeHandler targetNamespaceChangeHandler = new TargetNamespaceChangeHandler(xsdSchema, targetNamespace, dialog.getTargetNamespace());
-                targetNamespaceChangeHandler.resolve();
-
-				    	} catch (Exception e){ e.printStackTrace(); }finally {
-//				      manager.getModel().changedModel();
-
-                XSDSchemaHelper.updateElement(xsdSchema);
-                doc.getModel().endRecording(this);
-			     		}
-		        }
-		   }      
-          
-		}
-	}
-	
-	 protected Map createPrefixMapping(List oldList, List newList)
-	  {          
-	    Map map = new Hashtable();
-
-	    Hashtable oldURIToPrefixTable = new Hashtable();
-	    for (Iterator i = oldList.iterator(); i.hasNext(); )
-	    {    
-	      NamespaceInfo oldInfo = (NamespaceInfo)i.next();                    
-	      oldURIToPrefixTable.put(oldInfo.uri, oldInfo);
-	    }
-	    
-	    for (Iterator i = newList.iterator(); i.hasNext(); )
-	    {
-	      NamespaceInfo newInfo = (NamespaceInfo)i.next();
-	      NamespaceInfo oldInfo = (NamespaceInfo)oldURIToPrefixTable.get(newInfo.uri != null ? newInfo.uri : ""); 
-
-
-	      // if oldInfo is non null ... there's a matching URI in the old set
-	      // we can use its prefix to detemine out mapping
-	      //
-	      // if oldInfo is null ...  we use the 'oldCopy' we stashed away 
-	      // assuming that the user changed the URI and the prefix
-	      if (oldInfo == null)                                            
-	      {
-	        oldInfo = (NamespaceInfo)newInfo.getProperty("oldCopy");           
-	      } 
-
-	      if (oldInfo != null)
-	      {
-	        String newPrefix = newInfo.prefix != null ? newInfo.prefix : "";
-	        String oldPrefix = oldInfo.prefix != null ? oldInfo.prefix : "";
-	        if (!oldPrefix.equals(newPrefix))
-	        {
-	          map.put(oldPrefix, newPrefix);    
-	        }
-	      }      
-	    }        
-	    return map;
-	  }
-   
-//    private void updateAllNodes(Element element, String prefix)
-//    {
-//      element.setPrefix(prefix);
-//      NodeList list = element.getChildNodes();
-//      if (list != null)
-//      {
-//        for (int i=0; i < list.getLength(); i++)
-//        {
-//          Node child = list.item(i);
-//          if (child != null && child instanceof Element)
-//          {
-//            child.setPrefix(prefix);
-//            if (child.hasChildNodes())
-//            {
-//              updateAllNodes((Element)child, prefix);
-//            }
-//          }
-//        }
-//      }   
-//    }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/AbstractCommand.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/AbstractCommand.java
deleted file mode 100644
index 9d8c0a1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/AbstractCommand.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.commands;
-
-import org.eclipse.wst.sse.core.format.IStructuredFormatProcessor;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xml.core.format.FormatProcessorXML;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.w3c.dom.Element;
-
-public abstract class AbstractCommand 
-{
-  private XSDConcreteComponent parent;
-  private XSDConcreteComponent model;
-
-  protected AbstractCommand(XSDConcreteComponent parent)
-  {
-    this.parent = parent;
-  }
-  
-  public abstract void run();
-
-  protected XSDConcreteComponent getParent()
-  {
-    return parent;
-  }
-  
-  public XSDConcreteComponent getModelObject()
-  {
-    return model;
-  }
-  
-  protected void setModelObject(XSDConcreteComponent model)
-  {
-    this.model = model;
-  }
-  
-  // Establish part-whole relationship
-  protected abstract boolean adopt(XSDConcreteComponent model);
-
-  protected void formatChild(Element child)
-  {
-    if (child instanceof XMLNode)
-    {
-      XMLModel model = ((XMLNode)child).getModel();
-      try
-      {
-        // tell the model that we are about to make a big model change
-        model.aboutToChangeModel();
-        
-        IStructuredFormatProcessor formatProcessor = new FormatProcessorXML();
-        formatProcessor.formatNode(child);
-      }
-      finally
-      {
-        // tell the model that we are done with the big model change
-        model.changedModel(); 
-      }
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/AddAttributeDeclarationCommand.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/AddAttributeDeclarationCommand.java
deleted file mode 100644
index 7be73f0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/AddAttributeDeclarationCommand.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.commands;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-public class AddAttributeDeclarationCommand extends AbstractCommand
-{
-  XSDAttributeDeclaration refAttribute = null;
-  /**
-   * @param parent
-   */
-  public AddAttributeDeclarationCommand(XSDConcreteComponent parent)
-  {
-    super(parent);
-  }
-
-  public AddAttributeDeclarationCommand(XSDConcreteComponent parent, XSDAttributeDeclaration ref)
-  {
-    super(parent);
-    this.refAttribute = ref;
-  }
-
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.xsd.ui.internal.commands.AbstractCommand#run()
-   */
-  public void run()
-  {
-    XSDConcreteComponent parent = getParent();
-    if (parent instanceof XSDComplexTypeDefinition)
-    {
-      XSDComplexTypeDefinition ct = (XSDComplexTypeDefinition)parent;
-
-      XSDAttributeDeclaration attribute = XSDFactory.eINSTANCE.createXSDAttributeDeclaration();
-      attribute.setName(getNewName("Attribute")); //$NON-NLS-1$
-      attribute.setTypeDefinition(ct.getSchema().getSchemaForSchema().resolveSimpleTypeDefinition("string")); //$NON-NLS-1$
-      
-      XSDAttributeUse attributeUse = XSDFactory.eINSTANCE.createXSDAttributeUse();
-      attributeUse.setAttributeDeclaration(attribute);
-      attributeUse.setContent(attribute);
-      
-      if (ct.getAttributeContents() != null)
-      {
-        ct.getAttributeContents().add(attributeUse);
-        formatChild(attribute.getElement());
-      }
-    }
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.xsd.ui.internal.commands.AbstractCommand#adopt(org.eclipse.xsd.XSDConcreteComponent)
-   */
-  protected boolean adopt(XSDConcreteComponent model)
-  {
-    return false;
-  }
-  
-  ArrayList names;
-  
-  protected String getNewName(String description)
-  {
-    String candidateName = "New" + description; //$NON-NLS-1$
-    StringBuffer candidateNameSB = new StringBuffer("New" + description); //$NON-NLS-1$
-    XSDConcreteComponent parent = getParent();
-    names = new ArrayList();
-    int i = 1;
-    if (parent instanceof XSDComplexTypeDefinition)
-    {
-      XSDComplexTypeDefinition ct = (XSDComplexTypeDefinition)parent;
-      walkUpInheritance(ct);
-
-      boolean ready = false;
-      while (!ready)
-      {
-        ready = true;
-        for (Iterator iter = names.iterator(); iter.hasNext(); )
-        {
-          String attrName = (String)iter.next();
-          if (candidateName.equals(attrName))
-          {
-            ready = false;
-            candidateName = "New" + description + String.valueOf(i); //$NON-NLS-1$
-            i++;
-          }
-        }
-      }
-    }
-    return candidateName;
-  }
-  
-  private void walkUpInheritance(XSDComplexTypeDefinition ct)
-  {
-    updateNames(ct);
-    XSDTypeDefinition typeDef = ct.getBaseTypeDefinition();
-    if (ct != ct.getRootType())
-    {
-      if (typeDef instanceof XSDComplexTypeDefinition)
-      {
-        XSDComplexTypeDefinition ct2 = (XSDComplexTypeDefinition)typeDef;
-        walkUpInheritance(ct2);
-      }
-    }
-  }
-
-  private void updateNames(XSDComplexTypeDefinition ct)
-  {
-    Iterator iter = ct.getAttributeContents().iterator();
-    while (iter.hasNext())
-    {
-      Object obj = iter.next();
-      if (obj instanceof XSDAttributeUse)
-      {
-        XSDAttributeUse use = (XSDAttributeUse)obj;
-        XSDAttributeDeclaration attr = use.getAttributeDeclaration();
-        String attrName = attr.getName();
-        if (attrName != null)
-        {
-          names.add(attrName);
-        }
-      }
-    }
-
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/AddComplexTypeDefinitionCommand.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/AddComplexTypeDefinitionCommand.java
deleted file mode 100644
index 72da36a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/AddComplexTypeDefinitionCommand.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.commands;
-
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDSchema;
-
-public final class AddComplexTypeDefinitionCommand extends AbstractCommand
-{
-  private String name;
-  
-  public AddComplexTypeDefinitionCommand
-    (XSDConcreteComponent parent,
-     String name)
-  {
-    super(parent);
-    this.name = name; // this may be null for anonymous type
-  }
-	  
-  public void run()
-  {
-  	XSDComplexTypeDefinition typeDef = 
-      XSDFactory.eINSTANCE.createXSDComplexTypeDefinition();
-    typeDef.setName(name);
-    	
-    if (adopt(typeDef))
-      setModelObject(typeDef);
-  }
-  
-  protected boolean adopt(XSDConcreteComponent model)
-  {
-  	XSDConcreteComponent parent = getParent();
-    if (parent instanceof XSDSchema)
-      ((XSDSchema)parent).getTypeDefinitions().add(model);
-    else if (parent instanceof XSDElementDeclaration)
-      ((XSDElementDeclaration)parent).setAnonymousTypeDefinition((XSDComplexTypeDefinition)model);
-    else
-      return false; // invalid parent
-    
-    return true;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/AddElementDeclarationCommand.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/AddElementDeclarationCommand.java
deleted file mode 100644
index cf161ec..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/AddElementDeclarationCommand.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.commands;
-
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDSchema;
-
-public final class AddElementDeclarationCommand extends AbstractCommand
-{
-  private String name; // element name
-  
-  public AddElementDeclarationCommand
-    (XSDConcreteComponent parent,
-     String name)
-  {
-    super(parent);
-    this.name = name;
-  }
-  
-  public void run()
-  {
-    XSDElementDeclaration elementDecl = 
-      XSDFactory.eINSTANCE.createXSDElementDeclaration();
-    elementDecl.setName(name);
-    
-    if (adopt(elementDecl))
-      setModelObject(elementDecl);
-  }
-
-  protected boolean adopt(XSDConcreteComponent model)
-  {
-  	XSDConcreteComponent parent = getParent();
-    if (parent instanceof XSDSchema)
-      ((XSDSchema)parent).getElementDeclarations().add(model);
-    else if (parent instanceof XSDParticle)
-      ((XSDParticle)parent).setContent((XSDElementDeclaration)model);
-    else
-      return false; // invalid parent
-    
-    return true;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/AddModelGroupCommand.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/AddModelGroupCommand.java
deleted file mode 100644
index f5518e2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/AddModelGroupCommand.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.commands;
-
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDCompositor;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-
-public class AddModelGroupCommand extends AbstractCommand
-{
-  protected XSDCompositor compositor;
-
-  public AddModelGroupCommand(XSDConcreteComponent parent, XSDCompositor compositor)
-  {
-    super(parent);
-    this.compositor = compositor;
-  }
-
-  public void run()
-  {
-    XSDConcreteComponent parent = getParent();
-    XSDConcreteComponent owner = null;
-    if (parent instanceof XSDElementDeclaration)
-    {
-      XSDElementDeclaration ed = (XSDElementDeclaration)parent;      
-      if (ed.getTypeDefinition() != null) 
-      {
-        if (ed.getAnonymousTypeDefinition() == null)
-        {
-          ed.setTypeDefinition(null);
-          XSDComplexTypeDefinition td = XSDFactory.eINSTANCE.createXSDComplexTypeDefinition();
-          ed.setAnonymousTypeDefinition(td);
-          owner = ed.getTypeDefinition();
-        }
-        else
-        {
-          XSDComplexTypeDefinition td = XSDFactory.eINSTANCE.createXSDComplexTypeDefinition();
-          ed.setAnonymousTypeDefinition(td);
-          owner = td;        
-        }
-      }        
-      else if (ed.getAnonymousTypeDefinition() == null)
-      {
-        XSDComplexTypeDefinition td = XSDFactory.eINSTANCE.createXSDComplexTypeDefinition();
-        ed.setAnonymousTypeDefinition(td);
-        owner = td;        
-      }
-      else if (ed.getAnonymousTypeDefinition() instanceof XSDComplexTypeDefinition)
-      {
-        owner = ed.getAnonymousTypeDefinition();
-      }
-      else if (ed.getAnonymousTypeDefinition() instanceof XSDSimpleTypeDefinition)
-      {
-        XSDComplexTypeDefinition td = XSDFactory.eINSTANCE.createXSDComplexTypeDefinition();
-        ed.setAnonymousTypeDefinition(td);
-        owner = td;        
-      }
-    }
-    else if (parent instanceof XSDModelGroup)
-    {
-      ((XSDModelGroup) parent).getContents().add(createModelGroup());
-    }
-    else if (parent instanceof XSDComplexTypeDefinition)
-    {
-      owner = ((XSDComplexTypeDefinition)parent);
-    }
-    if (owner != null)
-    {
-      XSDParticle particle = XSDFactory.eINSTANCE.createXSDParticle(); 
-      XSDModelGroup modelGroup = createModelGroup();
-      particle.setContent(modelGroup);
-
-      XSDComplexTypeDefinition ctd = (XSDComplexTypeDefinition)owner;
-      ctd.setContent(particle);
-      formatChild(parent.getElement());
-    }  
-  }
-
-  protected boolean adopt(XSDConcreteComponent model)
-  {
-    return false;
-  }
-  
-  protected XSDModelGroup createModelGroup()
-  {
-    XSDModelGroup modelGroup = XSDFactory.eINSTANCE.createXSDModelGroup();
-    modelGroup.setCompositor(compositor);
-    return modelGroup;
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/AddSimpleTypeDefinitionCommand.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/AddSimpleTypeDefinitionCommand.java
deleted file mode 100644
index b0c347b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/AddSimpleTypeDefinitionCommand.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.commands;
-
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-
-public final class AddSimpleTypeDefinitionCommand extends AbstractCommand
-{
-  private String name;
-  
-  public AddSimpleTypeDefinitionCommand
-    (XSDConcreteComponent parent,
-     String name)
-  {
-    super(parent);
-    this.name = name; // this may be null for anonymous type
-  }
-  
-  public void run()
-  {
-  	XSDSimpleTypeDefinition typeDef = 
-      XSDFactory.eINSTANCE.createXSDSimpleTypeDefinition();
-  	typeDef.setName(name);
-  	
-    if (adopt(typeDef))
-      setModelObject(typeDef);
-  }
-  
-  protected boolean adopt(XSDConcreteComponent model)
-  {
-  	XSDConcreteComponent parent = getParent();
-    if (parent instanceof XSDSchema)
-      ((XSDSchema)parent).getTypeDefinitions().add(model);
-    else if (parent instanceof XSDElementDeclaration)
-      ((XSDElementDeclaration)parent).setAnonymousTypeDefinition((XSDSimpleTypeDefinition)model);
-    else if (parent instanceof XSDAttributeDeclaration)
-      ((XSDAttributeDeclaration)parent).setAnonymousTypeDefinition((XSDSimpleTypeDefinition)model);
-    else
-      return false; // invalid parent
-    
-    return true;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/RenameCommand.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/RenameCommand.java
deleted file mode 100644
index ade4b77..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/commands/RenameCommand.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.commands;
-
-import org.eclipse.draw2d.Label;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.ComplexTypeDefinitionEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.ElementDeclarationEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.ModelGroupDefinitionEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.TopLevelComponentEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.SimpleDirectEditPolicy;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDNamedComponent;
-
-
-/**
- * @author kchong
- *
- * <a href="mailto:kchong@ca.ibm.com">kchong@ca.ibm.com</a>
- *
- */
-public class RenameCommand
-{
-  protected SimpleDirectEditPolicy simpleDirectEditPolicy = new SimpleDirectEditPolicy();
-  Label label = new Label();
-  XSDNamedComponent namedComponent;
-  GraphicalEditPart editPart;
-  
-  public RenameCommand(XSDNamedComponent namedComponent, GraphicalEditPart editPart)
-  {
-    this.namedComponent = namedComponent;
-    this.editPart = editPart;
-  }
-
-  /* (non-Javadoc)
-   * @see com.ibm.xsd.edit.actions.AbstractCommand#run()
-   */
-  public void run()
-  {
-    if (editPart instanceof ElementDeclarationEditPart)
-    {
-      ElementDeclarationEditPart elementDeclarationEditPart = (ElementDeclarationEditPart)editPart;
-      elementDeclarationEditPart.doEditName();
-    }
-    else if (editPart instanceof TopLevelComponentEditPart)
-    {
-      TopLevelComponentEditPart topLevelEditPart = (TopLevelComponentEditPart)editPart;
-      topLevelEditPart.doEditName();
-    }
-    else if (editPart instanceof ComplexTypeDefinitionEditPart)
-    {
-      ((ComplexTypeDefinitionEditPart)editPart).doEditName();
-    }
-    else if (editPart instanceof ModelGroupDefinitionEditPart)
-    {
-      ((ModelGroupDefinitionEditPart)editPart).doEditName();
-    }
-  }
-
-  /* (non-Javadoc)
-   * @see com.ibm.xsd.edit.actions.AbstractCommand#adopt(org.eclipse.xsd.XSDConcreteComponent)
-   */
-  protected boolean adopt(XSDConcreteComponent model)
-  {
-    return false;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dnd/BaseDragNodesCommand.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dnd/BaseDragNodesCommand.java
deleted file mode 100644
index 142d4ed..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dnd/BaseDragNodesCommand.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.dnd;
-
-import java.util.Collection;
-
-import org.eclipse.wst.common.ui.dnd.DefaultDragAndDropCommand;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Node;
-
-
-public abstract class BaseDragNodesCommand extends DefaultDragAndDropCommand
-{
-  /**
-   * Constructor for BaseDragNodesCommand.
-   * @param target
-   * @param location
-   * @param operations
-   * @param operation
-   * @param sources
-   */
-  public BaseDragNodesCommand(
-    Object target,
-    float location,
-    int operations,
-    int operation,
-    Collection sources)
-  {
-    super(target, location, operations, operation, sources);
-  }
-
-  protected boolean isDirectSchemaChild(Node node)
-  {
-    Node parent = node.getParentNode();
-    if (XSDDOMHelper.inputEquals(parent, XSDConstants.SCHEMA_ELEMENT_TAG, false) &&
-        parent.getParentNode().equals(parent.getOwnerDocument()))
-    {
-      return true;
-    }
-    return false;
-  } 
-  
-  protected boolean isSiblingNodes(Node first, Node second)
-  {
-    if (first.getParentNode() != null)
-    {
-      return first.getParentNode().equals(second.getParentNode());
-    }
-    return false;
-  }
-  
-  protected void beginRecording()
-  {
-    if (target != null)
-    {
-      XMLModel model = getModel((Node)target);
-      
-      if (model != null)
-      {
-        model.beginRecording(this, "Move");
-      }
-    }
-  }
-  
-  protected void endRecording()
-  {
-    if (target != null)
-    {
-      XMLModel model = getModel((Node)target);
-      
-      if (model != null)
-      {
-        model.endRecording(this);
-      }
-    }
-  }
-  protected XMLModel getModel(Node node)
-  {
-    Object object = node.getOwnerDocument();
-    if (object instanceof DocumentImpl)
-    {
-      return ((DocumentImpl) object).getModel();
-    }
-    return null;
-  }
-  
-  protected void moveNode(Node referenceNode, Node nodeToMove, boolean isBefore)
-  {
-    XSDDOMHelper.moveNode(referenceNode, nodeToMove, isBefore);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dnd/DragNodesCommand.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dnd/DragNodesCommand.java
deleted file mode 100644
index b3692cf..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dnd/DragNodesCommand.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.dnd;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xml.core.format.NodeFormatter;
-import org.w3c.dom.Node;
-
-public class DragNodesCommand extends BaseDragNodesCommand
-{
-  /**
-   * Constructor for DragNodesCommand.
-   * @param target
-   * @param location
-   * @param operations
-   * @param operation
-   * @param sources
-   */
-  public DragNodesCommand(
-    Object target,
-    float location,
-    int operations,
-    int operation,
-    Collection sources)
-  {
-    super(target, location, operations, operation, sources);
-  }
-
-  /**
-   * @see org.eclipse.wst.common.ui.dnd.DragAndDropCommand#canExecute()
-   */
-  public boolean canExecute()
-  {
-    if (sources.size() > 0)
-    {
-      Node firstSource = (Node) sources.toArray()[0];
-      return isSiblingNodes((Node) target, firstSource);
-    }
-    return false;
-//    return isDirectSchemaChild((Node)target);
-  }
-
-  
-  /**
-   * @see org.eclipse.wst.common.ui.dnd.DragAndDropCommand#execute()
-   */
-  public void execute()
-  {
-  	NodeFormatter formatProcessor = new NodeFormatter();
-    Node referenceNode = (Node) target;
-    Iterator iter = sources.iterator();
-    beginRecording();
-
-    while (iter.hasNext()) 
-    {
-      Node node = (Node) iter.next();
-      if (isSiblingNodes(referenceNode,node)) 
-      {
-        moveNode(referenceNode, node, !isAfter());
-        formatProcessor.format((XMLNode)node);
-      }
-    }
-//    formatProcessor.format((XMLNode)referenceNode.getParentNode());
-    endRecording();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dnd/XSDDragAndDropManager.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dnd/XSDDragAndDropManager.java
deleted file mode 100644
index b00c642..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dnd/XSDDragAndDropManager.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.dnd;
-
-import java.util.Collection;
-
-import org.eclipse.wst.common.ui.dnd.DragAndDropCommand;
-import org.eclipse.wst.common.ui.dnd.DragAndDropManager;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Node;
-
-public class XSDDragAndDropManager implements DragAndDropManager
-{
-  /**
-   * Constructor for XSDDragAndDropManager.
-   */
-  public XSDDragAndDropManager()
-  {
-  }
-  
-  protected boolean isDirectSchemaChild(Node node)
-  {
-    Node parent = node.getParentNode();
-    if (XSDDOMHelper.inputEquals(parent, XSDConstants.SCHEMA_ELEMENT_TAG, false) &&
-        parent.getParentNode().equals(parent.getOwnerDocument()))
-    {
-      return true;
-    }
-    return false;
-  } 
-
-  /**
-   * @see org.eclipse.wst.common.ui.dnd.DragAndDropManager#createCommand(Object, float, int, int, Collection)
-   */
-  public DragAndDropCommand createCommand(
-    Object target,
-    float location,
-    int operations,
-    int operation,
-    Collection source)
-  {
-    if (target instanceof Node) 
-    {
-      Node node = (Node) target;
-//      if (isDirectSchemaChild(node))
-//      {
-        return new DragNodesCommand(target, location, operations, operation, source);
-//      }
-    }
-    return null;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/editparts/AbstractComponentViewerRootEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/editparts/AbstractComponentViewerRootEditPart.java
deleted file mode 100644
index caef397..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/editparts/AbstractComponentViewerRootEditPart.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.gef.util.editparts;
-                                      
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Panel;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.wst.xsd.ui.internal.gef.util.figures.ContainerLayout;
-              
-
-public abstract class AbstractComponentViewerRootEditPart extends AbstractGraphicalEditPart 
-{
-  protected final static String MESSAGE_PLACE_HOLDER = "MESSAGE_PLACE_HOLDER";
-  protected Object input;              
-
-  public void setInput(Object input)
-  {
-    this.input = input;
-    refreshChildren();
-  }
-
-  protected IFigure createFigure()
-  {
-    Panel panel = new Panel();
-    ContainerLayout layout = new ContainerLayout();
-    layout.setBorder(60);
-    panel.setLayoutManager(layout);
-    return panel;
-  }   
-           
-
-  protected List getModelChildren() 
-  {               
-    List list = new ArrayList();
-    if (input != null)
-    {
-      list.add(input);
-    }
-    else
-    {
-      list.add(MESSAGE_PLACE_HOLDER);
-    }
-    return list;
-  }         
-
-  protected abstract EditPart createChild(Object model);
-  
-  protected void createEditPolicies()
-  {  
-  }             
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/ConnectedEditPartFigure.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/ConnectedEditPartFigure.java
deleted file mode 100644
index f25f677..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/ConnectedEditPartFigure.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.gef.util.figures;
-           
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-
-              
-public class ConnectedEditPartFigure extends ContainerFigure implements IConnectedEditPartFigure
-{                 
-  protected EditPart editPart;
-  protected boolean childConnectionsEnabled = true;
-  protected List connectedFigures = new ArrayList();
-  protected int connectionType = RIGHT_CONNECTION;
-    
-  public ConnectedEditPartFigure(EditPart editPart)
-  {
-    this.editPart = editPart;    
-  }     
-
-  public void setChildConnectionsEnabled(boolean enabled)
-  {
-    childConnectionsEnabled = enabled;
-  }          
-
-  protected IConnectedEditPartFigure getParentGraphNodeFigure()
-  {
-    IConnectedEditPartFigure result = null;
-    for (EditPart parentEditPart = editPart.getParent(); parentEditPart != null; parentEditPart = parentEditPart.getParent())
-    {                                                              
-      IFigure figure = ((AbstractGraphicalEditPart)parentEditPart).getFigure();    
-      if (figure instanceof IConnectedEditPartFigure)
-      {                                                            
-        IConnectedEditPartFigure graphNodeFigure = (IConnectedEditPartFigure)figure;
-        if (graphNodeFigure.getConnectionFigure() != null)
-        {
-          result = graphNodeFigure;
-          break;
-        }
-      }          
-    }          
-    return result;
-  }
-
-  public void addNotify()                     
-  {           
-    super.addNotify();
-    if (getConnectionFigure() != null)
-    {
-      IConnectedEditPartFigure parentGraphNodeFigure = getParentGraphNodeFigure();
-      if (parentGraphNodeFigure != null)
-      {   
-        parentGraphNodeFigure.addConnectedFigure(this);
-      }   
-    }
-  }   
-
-  public void removeNotify()
-  {
-    super.removeNotify();
-    if (getConnectionFigure() != null)
-    {
-      IConnectedEditPartFigure parentGraphNodeFigure = getParentGraphNodeFigure();
-      if (parentGraphNodeFigure != null)
-      {   
-        parentGraphNodeFigure.removeConnectedFigure(this);
-      }   
-    }
-  }   
-
-  public void addConnectedFigure(IConnectedEditPartFigure figure)
-  {   
-    if (childConnectionsEnabled) 
-    {  
-      // this test is required since we sometimes receive the 'addNotify' call twice
-      //
-      if (!connectedFigures.contains(figure))
-      {
-        connectedFigures.add(figure);
-      }
-    }
-  }
-
-  public void removeConnectedFigure(IConnectedEditPartFigure figure)
-  {
-    if (childConnectionsEnabled) 
-    { 
-      connectedFigures.remove(figure);
-    }
-  }    
-                    
-  public IFigure getSelectionFigure()
-  {
-    return this;
-  }
-
-  public IFigure getConnectionFigure()
-  {
-    return this;
-  }
-
-  public List getConnectedFigures(int type)
-  {
-    List list = new ArrayList();
-    for (Iterator i = connectedFigures.iterator(); i.hasNext(); )
-    {           
-      IConnectedEditPartFigure figure = (IConnectedEditPartFigure)i.next();
-      //if (type == 0 || type == figure.getConnectionType())
-      {
-        list.add(figure);
-      }      
-    }
-    return list;
-  }                               
-
-  public int getConnectionType()
-  {
-    return connectionType;
-  }
-
-  public void setConnectionType(int type)
-  {
-    connectionType = type;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/ConnectionRenderingFigure.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/ConnectionRenderingFigure.java
deleted file mode 100644
index 7192108..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/ConnectionRenderingFigure.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.gef.util.figures;
-        
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.PointList;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.GraphicalEditPart;
-              
-
-public class ConnectionRenderingFigure extends RectangleFigure
-{               
-  protected boolean isOutlined = true;
-  protected IFigure primaryLayer;
-
-  public ConnectionRenderingFigure(IFigure primaryLayer)
-  {
-    setOpaque(false);                   
-    this.primaryLayer = primaryLayer;
-    //setFocusTraversable(false); 
-    //setEnabled(false); 
-  }
-           
-  protected boolean isMouseEventTarget()
-  {
-    return false;
-  }        
-
-  public boolean containsPoint(int x, int y)
-  {
-    return false;
-  }
-
-  protected void fillShape(Graphics graphics)
-  { 
-    graphics.setForegroundColor(ColorConstants.black);
-    drawLines(graphics, primaryLayer);
-  }
-
-  protected void outlineShape(Graphics graphics)
-  { 
-    if (isOutlined)
-    {
-      super.outlineShape(graphics);
-    }
-  } 
-
-  protected void drawLines(Graphics graphics, IFigure figure)
-  {      
-    if (figure instanceof IConnectedEditPartFigure)
-    {
-      IConnectedEditPartFigure graphNodeFigure = (IConnectedEditPartFigure)figure;         
-      List connectedFigures = graphNodeFigure.getConnectedFigures(IConnectedEditPartFigure.RIGHT_CONNECTION);
-      int connectedFiguresSize = connectedFigures.size();              
-
-      if (connectedFiguresSize > 0) 
-      {                                         
-        IConnectedEditPartFigure firstGraphNodeFigure = (IConnectedEditPartFigure)connectedFigures.get(0);
-        Rectangle r = graphNodeFigure.getConnectionFigure().getBounds();    
-          
-        int x1 = r.x + r.width;
-        int y1 = r.y + r.height/2;
-                                                                                   
-        int startOfChildBox = firstGraphNodeFigure.getConnectionFigure().getBounds().x;
-        int x2 = x1 + (startOfChildBox - x1) / 3;
-        int y2 = y1;
-      
-        if (connectedFiguresSize == 1)
-        {
-          graphics.drawLine(x1, y1, startOfChildBox, y2);   
-        }
-        else // (connectedFigures.length > 1)
-        { 
-          graphics.drawLine(x1, y1, x2, y2);
-
-          int minY = Integer.MAX_VALUE;
-          int maxY = -1;
-
-          for (Iterator i = connectedFigures.iterator(); i.hasNext(); )
-          {                                 
-            IConnectedEditPartFigure connectedFigure = (IConnectedEditPartFigure)i.next();
-            Rectangle childConnectionRectangle = connectedFigure.getConnectionFigure().getBounds();
-            int y = childConnectionRectangle.y + childConnectionRectangle.height / 2;
-            minY = Math.min(minY, y);
-            maxY = Math.max(maxY, y);
-            graphics.drawLine(x2, y, childConnectionRectangle.x, y);
-          }                   
-          graphics.drawLine(x2, minY, x2, maxY);
-        }                          
-      }                             
-    }            
-
-    //boolean visitChildren = true;
-    List children = figure.getChildren();
-    for (Iterator i = children.iterator(); i.hasNext(); )
-    {
-      IFigure child = (IFigure)i.next();
-      drawLines(graphics, child);
-    }
-  }    
-
-  // This method supports the preview connection line function related to drag and drop
-  //     
-  public PointList getConnectionPoints(GraphicalEditPart parentEditPart, GraphicalEditPart childRefEditPart, Rectangle draggedFigureBounds)
-  {           
-    PointList pointList = new PointList();                         
-    int[] data = new int[1];
-    Point a = getConnectionPoint(parentEditPart, childRefEditPart, data);
-    if (a != null)
-    {   
-      int draggedFigureBoundsY = draggedFigureBounds.y + draggedFigureBounds.height/2;
-
-      pointList.addPoint(a); 
-      //pointList.addPoint(new Point(draggedFigureBounds.x, draggedFigureBoundsY));
-      
-      if (data[0] == 0) // insert between 2 items
-      {                                         
-        int x = a.x + (draggedFigureBounds.x - a.x)/2;
-        pointList.addPoint(new Point(x, a.y));
-        pointList.addPoint(new Point(x, draggedFigureBoundsY));        
-        pointList.addPoint(new Point(draggedFigureBounds.x, draggedFigureBoundsY));
-      }
-      else // insert at first or last position
-      {
-        pointList.addPoint(new Point(a.x, draggedFigureBoundsY));   
-        pointList.addPoint(new Point(draggedFigureBounds.x, draggedFigureBoundsY));
-      }
-    }       
-    return pointList;
-  }
-
-         
-  // This method supports the preview connection line function related to drag and drop
-  //     
-  protected Point getConnectionPoint(GraphicalEditPart parentEditPart, GraphicalEditPart childRefEditPart, int[] data)
-  {                      
-    Point point = null;     
-    List childList = parentEditPart.getChildren();         
-                                                                                                                                               
-    if (parentEditPart.getFigure() instanceof IConnectedEditPartFigure && childList.size() > 0)
-    {   
-      point = new Point();
-
-      GraphicalEditPart prev = null;    
-      GraphicalEditPart next = null;
-                               
-      for (Iterator i = childList.iterator(); i.hasNext(); )
-      {             
-        Object o = i.next();    
-        if (o instanceof GraphicalEditPart)
-        {
-          GraphicalEditPart childEditPart = (GraphicalEditPart)o;
-          if (childEditPart.getFigure() instanceof IConnectedEditPartFigure)
-          {
-            if (childEditPart == childRefEditPart)
-            {
-              next = childEditPart;
-              break;
-            }                                           
-            prev = childEditPart;
-          }
-        }
-      }                            
-                          
-
-      if (next != null && prev != null)
-      {                   
-        int ya = getConnectedEditPartConnectionBounds(prev).getCenter().y;
-        int yb = getConnectedEditPartConnectionBounds(next).getCenter().y;
-        point.y = ya + (yb - ya)/2;   
-        data[0] = 0;
-      }                               
-      else if (prev != null) // add it last
-      {
-        point.y = getConnectedEditPartConnectionBounds(prev).getCenter().y;
-        data[0] = 1;
-      }
-      else if (next != null) // add it first!
-      {                           
-        point.y = getConnectedEditPartConnectionBounds(next).getCenter().y;
-        data[0] = -1;
-      }
-          
-      if (next != null || prev != null)
-      {
-        GraphicalEditPart child = prev != null ? prev : next;
-        int startOfChildBox = getConnectedEditPartConnectionBounds(child).x;
-        Rectangle r = getConnectedEditPartConnectionBounds(parentEditPart);  
-        int x1 = r.x + r.width;
-        point.x = x1 + (startOfChildBox - x1) / 3;
-      }
-    }    
-    return point;
-  }
-
-  protected Rectangle getConnectedEditPartConnectionBounds(GraphicalEditPart editPart)
-  {
-    return ((IConnectedEditPartFigure)editPart.getFigure()).getConnectionFigure().getBounds();
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/ContainerFigure.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/ContainerFigure.java
deleted file mode 100644
index d7a77ac..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/ContainerFigure.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.gef.util.figures;
-            
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.RectangleFigure;
-              
-public class ContainerFigure extends RectangleFigure implements IExpandable
-{               
-  protected boolean isOutlined = false;
-  protected boolean isExpanded = true;
-
-  public ContainerFigure()
-  {
-    setLayoutManager(new ContainerLayout());
-    setFill(false);
-  }
-
-  public void doLayout()
-  {
-	  layout();
-	  setValid(true);
-  }  
-          
-  public ContainerLayout getContainerLayout()
-  {
-    return (ContainerLayout)getLayoutManager();
-  }           
-
-  public void setOutlined(boolean isOutlined)
-  {
-    this.isOutlined = isOutlined;
-  }     
-
-  protected void outlineShape(Graphics graphics)
-  { 
-    if (isOutlined)
-    {
-      super.outlineShape(graphics);
-    }
-  }
-
-  public boolean isExpanded()
-  {
-    return isExpanded;
-  }
-  
-  public void setExpanded(boolean isExpanded)
-  {
-    this.isExpanded = isExpanded;
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/ContainerLayout.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/ContainerLayout.java
deleted file mode 100644
index 12f654b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/ContainerLayout.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.gef.util.figures;
-                   
-import java.util.List;
-
-import org.eclipse.draw2d.AbstractLayout;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-              
-
-public class ContainerLayout extends AbstractLayout
-{                                         
-  protected boolean isHorizontal;
-  protected int spacing = 0;
-  protected int border = 0; 
-
-  public ContainerLayout()
-  { 
-    this(true, 0); 
-  }             
-
-  public ContainerLayout(boolean isHorizontal, int spacing)
-  {
-    this.isHorizontal = isHorizontal;   
-    this.spacing = spacing;
-  }  
-
-  public void setHorizontal(boolean isHorizontal)
-  {
-    this.isHorizontal = isHorizontal;
-  }  
-
-  public void setSpacing(int spacing)
-  {
-    this.spacing = spacing;
-  }  
-
-  public void setBorder(int border)
-  {
-    this.border = border;
-  }  
-
-  protected int alignFigure(IFigure parent, IFigure child)
-  { 
-    return -1;
-  }
-
-  /**
-   * Calculates and returns the preferred size of the container 
-   * given as input.
-   * 
-   * @param figure  Figure whose preferred size is required.
-   * @return  The preferred size of the passed Figure.
-   * @since 2.0
-   */
-  protected Dimension calculatePreferredSizeHelper(IFigure parent)
-  { 
-    Dimension	preferred = new Dimension();
-  	List children = parent.getChildren();
-		                                        
-	  for (int i=0; i < children.size(); i++)
-    {
-		  IFigure child = (IFigure)children.get(i);      
-    
-      Dimension	childSize = child.getPreferredSize();
-	  
-      if (isHorizontal)
-      {
-		    preferred.width += childSize.width;
-		    preferred.height = Math.max(preferred.height, childSize.height);
-      }
-      else
-      {  
-        preferred.height += childSize.height;
-        preferred.width = Math.max(preferred.width, childSize.width);
-      }
-	  }   
-
-    int childrenSize = children.size();
-    if (childrenSize > 1)
-    {                      
-      if (isHorizontal)    
-      {
-        preferred.width += spacing * (childrenSize - 1);
-      }
-      else
-      {
-		    preferred.height += spacing * (childrenSize - 1);
-      } 
-    }
-                          
-    preferred.width += border * 2;
-    preferred.height += border * 2;
-	  preferred.width += parent.getInsets().getWidth();
-	  preferred.height += parent.getInsets().getHeight();       
-  
-  	return preferred;
-  }
-
-  protected Dimension calculatePreferredSize(IFigure parent, int width, int height)
-  {    
-    Dimension	preferred = null;                                              
-                                  
-    // Here we ensure that an unexpanded container is given a size of (0,0)
-    //
-    if (parent instanceof IExpandable)
-    {
-      IExpandable expandableFigure = (IExpandable)parent;
-      if (!expandableFigure.isExpanded())
-      {
-        preferred = new Dimension(); 
-      }
-    }   
-    
-    if (preferred == null)
-    {
-	    preferred = calculatePreferredSizeHelper(parent);    
-    }
-    
-    return preferred;
-  }
-     
-
-  protected void adjustLayoutLocation(IFigure parent, Dimension dimension)
-  {     
-  }   
-
-  public void layout(IFigure parent)
-  {       
-  	List children = parent.getChildren();
- 
-    int rx = 0;
-    Dimension	dimension = new Dimension();                                          
-
-
-	  for (int i=0; i < children.size(); i++)
-    {
-		  IFigure child = (IFigure)children.get(i);
-		  Dimension	childSize = child.getPreferredSize();
-      if (isHorizontal)
-      {   
-        dimension.height = Math.max(dimension.height, childSize.height);
-        rx += childSize.width;
-      }
-      else
-      {
-        dimension.width = Math.max(dimension.width, childSize.width);
-      }
-    }
-
-	  //dimension.width += parent.getInsets().left;
-    //dimension.height += parent.getInsets().top;
-
-    if (isHorizontal)
-    {
-      dimension.height += border*2;
-    	dimension.width += border;
-    }
-    else
-    {
-      dimension.width += border*2;
-    	dimension.height += border;
-    }
-    adjustLayoutLocation(parent, dimension);    
-
-    for (int i=0; i < children.size(); i++)
-    {
-      IFigure child = (IFigure)children.get(i);
-	    Dimension	childSize = child.getPreferredSize();
-        
-      if (isHorizontal)
-      {   
-        int y = -1; 
-    
-        y = alignFigure(parent, child);
-    
-        if (y == -1)
-        {
-           y = (dimension.height - childSize.height) / 2;                                      
-        }                      
-                                                   
-        Rectangle rectangle = new Rectangle(dimension.width, y, childSize.width, childSize.height);
-        rectangle.translate(parent.getClientArea().getLocation());                           
-
-
-        child.setBounds(rectangle);                           
-	      dimension.width += childSize.width; 
-        dimension.width += spacing;       
-
-        if (child instanceof SpacingFigure)
-        {          
-          int availableHorizontalSpace = parent.getClientArea().width - rx;
-          dimension.width += availableHorizontalSpace;
-        }           
-      }
-      else
-      {
-        Rectangle rectangle = new Rectangle(0, dimension.height, childSize.width, childSize.height);
-	      rectangle.translate(parent.getClientArea().getLocation());                                  
-        
-
-        child.setBounds(rectangle);  
-        dimension.height += childSize.height;
-        dimension.height += spacing;
-      }
-	  }	      
-  }                                      
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/FillLayout.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/FillLayout.java
deleted file mode 100644
index 1b2976b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/FillLayout.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.gef.util.figures;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.AbstractLayout;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-
-
-public class FillLayout extends AbstractLayout
-{         
-  protected boolean isHorizontal = false;                    
-  protected int spacing = 0;
-  public Dimension min;
-
-  public FillLayout(){}     
-  
-  public FillLayout(int spacing)
-  { 
-    this.spacing = spacing; 
-  }
-  
-  public void setHorizontal(boolean isHorizontal)
-  {
-   this.isHorizontal = isHorizontal;
-  }
-  
-  /**
-   * Calculates and returns the preferred size of the input container.
-   * This is the size of the largest child of the container, as all
-   * other children fit into this size.
-   *
-   * @param figure  Container figure for which preferred size is required.
-   * @return  The preferred size of the input figure.
-   * @since 2.0
-   */
-
-  protected Dimension calculatePreferredSize(IFigure figure, int width, int height)
-  {	                 
-    Dimension d = calculatePreferredClientAreaSize(figure);
-  	d.expand(figure.getInsets().getWidth(),
-  	         figure.getInsets().getHeight());
-  	d.union(getBorderPreferredSize(figure));
-  	return d;
-  } 
-  
-  protected Dimension calculatePreferredClientAreaSize(IFigure figure)
-  {
-    Dimension d = new Dimension();
-  	List children = figure.getChildren(); 
-  
-  
-  	for (Iterator i = children.iterator(); i.hasNext(); )
-    {
-  		IFigure child = (IFigure)i.next();
-      Dimension childSize = child.getPreferredSize();
-  
-      if (isHorizontal)
-      {
-        d.width += childSize.width;
-        d.height = Math.max(childSize.height, d.height);
-      }
-      else
-      {
-        d.height += childSize.height;
-        d.width = Math.max(childSize.width, d.width);
-      }
-  	}	 
-  
-                     
-    int childrenSize = children.size();       
-    if (childrenSize > 0)
-    {
-      if (isHorizontal)
-      {
-        d.width += spacing * (childrenSize - 1); 
-      }
-      else
-      {
-        d.height += spacing * (childrenSize - 1);  
-      }
-    }       
-      
-    if (min != null)
-    {
-      d.width = Math.max(d.width, min.width);
-      d.height = Math.max(d.height, min.height);
-    }
-    return d;
-  }
-  
-  /*
-   * Returns the minimum size required by the input container.
-   * This is the size of the largest child of the container, as all
-   * other children fit into this size.
-   */
-  public Dimension getMinimumSize(IFigure figure, int width, int height)
-  {
-  	Dimension d = new Dimension();
-  	List children = figure.getChildren();
-  	IFigure child;
-
-  	for (int i=0; i < children.size(); i++)
-    {
-  		child = (IFigure)children.get(i);
-  		d.union(child.getMinimumSize());
-  	}
-  	d.expand(figure.getInsets().getWidth(),
-  	         figure.getInsets().getHeight());
-  	return d;
-  }
-  
-  public Dimension getPreferredSize(IFigure figure, int width, int height)
-  {
-  	return calculatePreferredSize(figure, width, height);
-  }
-  
-  /*
-   * Lays out the children on top of each other with
-   * their sizes equal to that of the available
-   * paintable area of the input container figure.
-   */
-  public void layout(IFigure figure)
-  {                         
-    Dimension	preferredSize = calculatePreferredClientAreaSize(figure);
-  	Rectangle r = figure.getClientArea().getCopy();
-  	List children = figure.getChildren();
-
-    int nChildren = children.size();                                                          
-    int extraHorizontalSpace = r.width - preferredSize.width;
-
-  	for (Iterator i = children.iterator(); i.hasNext(); )
-    {
-  		IFigure child = (IFigure)i.next();
-      Dimension preferredChildSize = child.getPreferredSize();
-         
-      if (isHorizontal)
-      {                       
-        int w = preferredChildSize.width + (extraHorizontalSpace / nChildren);
-  		  child.setBounds(new Rectangle(r.x, r.y, w, Math.max(preferredSize.height, r.height)));
-        r.x += w + spacing;
-      }
-      else
-      {
-  		  child.setBounds(new Rectangle(r.x, r.y, Math.max(preferredSize.width, r.width), preferredChildSize.height));
-        r.y += preferredChildSize.height + spacing;
-      }
-  	}
-  }   
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/IConnectedEditPartFigure.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/IConnectedEditPartFigure.java
deleted file mode 100644
index 4c778d7..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/IConnectedEditPartFigure.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.gef.util.figures;
-            
-import java.util.List;
-
-import org.eclipse.draw2d.IFigure;
-
-public interface IConnectedEditPartFigure extends IConnectedFigure
-{                       
-  public static final int UP_CONNECTION = 1; 
-  public static final int DOWN_CONNECTION = 2;
-  public static final int LEFT_CONNECTION = 3;
-  public static final int RIGHT_CONNECTION = 4;
-
-  public IFigure getSelectionFigure();
-  public IFigure getConnectionFigure();
-  public List getConnectedFigures(int type);
-  public int getConnectionType();      
-  public void addConnectedFigure(IConnectedEditPartFigure figure);
-  public void removeConnectedFigure(IConnectedEditPartFigure figure);
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/IConnectedFigure.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/IConnectedFigure.java
deleted file mode 100644
index 4a6d7de..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/IConnectedFigure.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.gef.util.figures;
-            
-import org.eclipse.draw2d.IFigure;
-
-public interface IConnectedFigure extends IFigure
-{                       
-  public IFigure getConnectionFigure();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/IConnectionRenderingViewer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/IConnectionRenderingViewer.java
deleted file mode 100644
index 6ed611d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/IConnectionRenderingViewer.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.gef.util.figures;
-
-public interface IConnectionRenderingViewer
-{        
-  public ConnectionRenderingFigure getConnectionRenderingFigure();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/IExpandable.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/IExpandable.java
deleted file mode 100644
index 161581b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/IExpandable.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.gef.util.figures;  
-
-import org.eclipse.draw2d.IFigure;
-
-public interface IExpandable extends IFigure
-{
-  boolean isExpanded(); 
-  void setExpanded(boolean isExpanded);
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/SpacingFigure.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/SpacingFigure.java
deleted file mode 100644
index e245d69..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/gef/util/figures/SpacingFigure.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.gef.util.figures;
-            
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-              
-public class SpacingFigure extends RectangleFigure
-{  
-  public SpacingFigure()
-  {
-    setFill(false);
-    setPreferredSize(new Dimension(0, 0));
-  }
-  
-  //protected void outlineShape(Graphics graphics)
-  //{ 
-  //}                                              
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/BaseGraphicalViewer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/BaseGraphicalViewer.java
deleted file mode 100644
index f471d52..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/BaseGraphicalViewer.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph;
-
-import java.util.Iterator;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.StackLayout;
-import org.eclipse.gef.DefaultEditDomain;
-import org.eclipse.gef.EditDomain;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.KeyHandler;
-import org.eclipse.gef.LayerConstants;
-import org.eclipse.gef.editparts.ScalableRootEditPart;
-import org.eclipse.gef.tools.SelectionTool;
-import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.wst.xsd.ui.internal.XSDEditor;
-import org.eclipse.wst.xsd.ui.internal.XSDMenuListener;
-import org.eclipse.wst.xsd.ui.internal.gef.util.figures.ConnectionRenderingFigure;
-import org.eclipse.wst.xsd.ui.internal.gef.util.figures.IConnectionRenderingViewer;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.CenterLayout;
-import org.eclipse.xsd.XSDConcreteComponent;
-
-
-/**
- * @author ernest
- *
- * To change this generated comment go to 
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-public abstract class BaseGraphicalViewer extends ScrollingGraphicalViewer implements IConnectionRenderingViewer
-{
-  protected FigureCanvasKeyboardHandler figureCanvasKeyboardHandler;
-
-  protected EditDomain editDomain;
-
-  protected boolean isInputEnabled = true;
-
-  protected boolean isSelectionEnabled = true;
-
-  protected ISelectionProvider menuSelectionProvider;
-
-  protected GraphContextMenuProvider menuProvider;
-
-  protected XSDEditor editor;
-
-  protected XSDConcreteComponent input;
-
-  protected ConnectionRenderingFigure connectionRenderingFigure;
-
-  public BaseGraphicalViewer(XSDEditor editor, ISelectionProvider selectionProvider)
-  {
-    super();
-    this.editor = editor;
-    menuSelectionProvider = selectionProvider;
-  }
-  
-  public ConnectionRenderingFigure getConnectionRenderingFigure()
-  {
-    return connectionRenderingFigure;
-  }
-
-  public void setInputEnabled(boolean enabled)
-  {
-    isInputEnabled = enabled;
-  }
-
-  public void setSelectionEnabled(boolean enabled)
-  {
-    isSelectionEnabled = enabled;
-  }
-
-  public XSDMenuListener getMenuListener()
-  {
-    return menuProvider.getMenuListener();
-  }
-
-  protected static Color white = null;
-  protected void hookControl()
-  {                     
-    super.hookControl();
-  
-    if (white == null)
-    {
-      white = new Color(getControl().getDisplay(), 255, 255, 255);
-    }
-    getControl().setBackground(white); 
-  
-    editDomain = new DefaultEditDomain(null);
-    ((DefaultEditDomain)editDomain).setDefaultTool(new SelectionTool());
-    editDomain.loadDefaultTool();
-    editDomain.addViewer(this);
-  
-    //jvh - gef port - moved this from below so it is available when adding context menu below
-    menuProvider = new GraphContextMenuProvider(this, menuSelectionProvider, editor.getXSDTextEditor());
-    setContextMenu(menuProvider);
-  
-    // add context menu to the graph
-    MenuManager manager = new MenuManager();
-    manager.addMenuListener(getMenuListener());  //jvh - gef port
-    manager.setRemoveAllWhenShown(true);
-    Menu menu = manager.createContextMenu(getControl());
-    getControl().setMenu(menu);
-    
-    KeyAdapter keyListener = new KeyAdapter()
-    {
-      /**
-       * @see org.eclipse.swt.events.KeyAdapter#keyReleased(KeyEvent)
-       */
-      public void keyReleased(KeyEvent e)
-      {
-        if (e.character == SWT.DEL)
-        {
-          getMenuListener().getDeleteAction().run();
-        }
-      }
-    };
-  
-    setKeyHandler(new XSDGraphicalViewerKeyHandler(this).setParent(new KeyHandler()));
-    
-//    getControl().addKeyListener(keyListener);
-
-    figureCanvasKeyboardHandler = new FigureCanvasKeyboardHandler(this);
-    getFigureCanvas().addKeyListener(figureCanvasKeyboardHandler);
-    
-  	getRootEditPart().activate();		
-                       
-  	ScalableRootEditPart graphicalRootEditPart = (ScalableRootEditPart)getRootEditPart();
-     
-    // set the layout for the primary layer so that the children are always centered
-    //
-    graphicalRootEditPart.getLayer(LayerConstants.PRIMARY_LAYER).setLayoutManager(new CenterLayout());
-  
-    // add the ConnectionRenderingFigure which is responsible for drawing all of the lines in the view
-    //                       
-    IFigure figure = graphicalRootEditPart.getLayer(LayerConstants.HANDLE_LAYER);
-    figure.setLayoutManager(new StackLayout());          
-    connectionRenderingFigure = new ConnectionRenderingFigure(graphicalRootEditPart.getLayer(LayerConstants.PRIMARY_LAYER));      
-    figure.add(connectionRenderingFigure);
-  
-    figure.validate();      
-  }
-
-  public XSDConcreteComponent getInput()
-  {
-    return input;
-  }
-
-  protected EditPart getEditPart(EditPart parent, Object object)
-  {
-    EditPart result = null;
-    for (Iterator i = parent.getChildren().iterator(); i.hasNext(); )
-    {
-      EditPart editPart = (EditPart)i.next();
-      if (editPart.getModel() == object)
-      {  
-        result = editPart;
-        break;
-      }
-    }             
-  
-    if (result == null)
-    { 
-      for (Iterator i = parent.getChildren().iterator(); i.hasNext(); )
-      {
-        EditPart editPart = getEditPart((EditPart)i.next(), object);
-        if (editPart != null)
-        {
-          result = editPart;
-          break;
-        }
-      }            
-    }
-  
-    return result;
-  }
-  
-  public abstract void setInput(XSDConcreteComponent comp);
-  
-  public abstract void setSelection(XSDConcreteComponent comp);
-  
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/FigureCanvasKeyboardHandler.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/FigureCanvasKeyboardHandler.java
deleted file mode 100644
index 012e15e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/FigureCanvasKeyboardHandler.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph;
-
-import org.eclipse.draw2d.FigureCanvas;
-import org.eclipse.draw2d.RangeModel;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.CategoryEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.TopLevelComponentEditPart;
-
-public class FigureCanvasKeyboardHandler extends KeyAdapter
-{
-  public static final int H_SCROLL_INCREMENT = 5;
-  public static final int V_SCROLL_INCREMENT = 30;
-
-  BaseGraphicalViewer viewer;
-  
-  /**
-   * Constructor for FigureCanvasKeyboardHandler.
-   */
-  public FigureCanvasKeyboardHandler(BaseGraphicalViewer viewer)
-  {
-    super();
-    this.viewer = viewer;
-  }
-
-  public void keyPressed(KeyEvent e)
-  {
-    Widget w = e.widget;
-    if (w instanceof FigureCanvas)
-    {
-      processKey(e.keyCode, (FigureCanvas)w);
-      update();
-    }
-  }
-
-  private void processKey(int keyCode, FigureCanvas figureCanvas)
-  {
-    switch (keyCode)
-    {
-      case SWT.ARROW_DOWN :
-        scrollVertical(figureCanvas, false);
-        break;
-      case SWT.ARROW_UP :
-        scrollVertical(figureCanvas, true);
-        break;
-      case SWT.ARROW_LEFT :
-        scrollHorizontal(figureCanvas, true);
-        break;
-      case SWT.ARROW_RIGHT :
-        scrollHorizontal(figureCanvas, false);
-        break;
-      case SWT.PAGE_UP :
-        scrollPage(figureCanvas, true);
-        break;
-      case SWT.PAGE_DOWN :
-        scrollPage(figureCanvas, false);
-        break;
-    }
-  }
-
-  private int verifyScrollBarOffset(RangeModel model, int value)
-  {
-    value = Math.max(model.getMinimum(), value);
-    return Math.min(model.getMaximum() - model.getExtent(), value);
-  }
-
-  private void scrollVertical(FigureCanvas figureCanvas, boolean up)
-  {
-    Point location = figureCanvas.getViewport().getViewLocation();
-    int vOffset = up ? -V_SCROLL_INCREMENT : V_SCROLL_INCREMENT;
-    int x = verifyScrollBarOffset(figureCanvas.getViewport().getHorizontalRangeModel(), location.x);
-    int y = verifyScrollBarOffset(figureCanvas.getViewport().getVerticalRangeModel(), location.y + vOffset);
-    figureCanvas.scrollSmoothTo(x, y);
-  }
-
-  private void scrollHorizontal(FigureCanvas figureCanvas, boolean left)
-  {
-    Point location = figureCanvas.getViewport().getViewLocation();
-    int hOffset = left ? -H_SCROLL_INCREMENT : H_SCROLL_INCREMENT;
-    int x = verifyScrollBarOffset(figureCanvas.getViewport().getHorizontalRangeModel(), location.x + hOffset);
-    int y = verifyScrollBarOffset(figureCanvas.getViewport().getVerticalRangeModel(), location.y);
-    figureCanvas.scrollSmoothTo(x, y);
-  }
-
-  private void scrollPage(FigureCanvas figureCanvas, boolean up)
-  {
-    Rectangle clientArea = figureCanvas.getClientArea();
-    int increment = up ? -clientArea.height : clientArea.height;
-    Point location = figureCanvas.getViewport().getViewLocation();
-    int x = verifyScrollBarOffset(figureCanvas.getViewport().getHorizontalRangeModel(), location.x);
-    int y = verifyScrollBarOffset(figureCanvas.getViewport().getVerticalRangeModel(), location.y + increment);
-    figureCanvas.scrollSmoothTo(x, y);
-  }
-  
-  private void update()
-  {
-    StructuredSelection s = (StructuredSelection)viewer.getSelection();
-    Object newSelectedEditPart = s.getFirstElement();
-
-    if (newSelectedEditPart instanceof TopLevelComponentEditPart)
-    {
-      TopLevelComponentEditPart topLevel = (TopLevelComponentEditPart) newSelectedEditPart;
-      CategoryEditPart categoryEP = (CategoryEditPart) topLevel.getParent();
-      categoryEP.scrollTo(topLevel);
-      viewer.reveal((TopLevelComponentEditPart)newSelectedEditPart);
-    }                           
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/GraphContextMenuProvider.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/GraphContextMenuProvider.java
deleted file mode 100644
index 3215418..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/GraphContextMenuProvider.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph;
-
-import org.eclipse.gef.ContextMenuProvider;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.wst.xsd.ui.internal.XSDMenuListener;
-import org.eclipse.wst.xsd.ui.internal.XSDTextEditor;
-
-
-public class GraphContextMenuProvider extends ContextMenuProvider
-{
-
-  XSDMenuListener xsdMenuListener;
-  
-  /**
-   * Constructor for GraphContextMenuProvider.
-   * @param selectionProvider
-   * @param editor
-   */
-  public GraphContextMenuProvider(
-    EditPartViewer viewer,
-    ISelectionProvider selectionProvider,
-    XSDTextEditor editor)
-  {
-    super(viewer);
-    this.viewer = viewer;
-    xsdMenuListener = new XSDMenuListener(selectionProvider);
-    xsdMenuListener.setSourceContext(viewer);
-  }
-
-  public XSDMenuListener getMenuListener()
-  {
-      return xsdMenuListener;
-  }
-
-  
-  /**
-   * @see org.eclipse.gef.ui.parts.ContextMenuProvider#buildContextMenu(org.eclipse.jface.action.IMenuManager, org.eclipse.gef.EditPartViewer)
-   */
-  public void buildContextMenu(IMenuManager arg0)
-  {
-    xsdMenuListener.menuAboutToShow(arg0);
-  }
-  
-  protected EditPartViewer viewer;
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/GraphicsConstants.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/GraphicsConstants.java
deleted file mode 100644
index 691996d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/GraphicsConstants.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * A collection of color-related constants.
- */
-public interface GraphicsConstants 
-{                          
-  public final static Display display = Display.getDefault();
-  public final static Color categoryBorderColor     = new Color(null, 118, 134, 164);
-  public final static Color elementBorderColor      = new Color(null, 138, 154, 184);
-  public final static Color elementBackgroundColor  = new Color(null, 236, 242, 252);  
-  public final static Color elementLabelColor       = new Color(null,  80,  96, 144);
-  public final static Color readOnlyBorderColor     = new Color(null, 164, 164, 164); 
-
-  public final static Color readOnlyBackgroundColor = ColorConstants.white;
-
-  public final static Font  smallFont               = new Font(Display.getCurrent(), "Small Fonts", 6, SWT.NONE); 
-  public final static Font  medium                  = new Font(Display.getCurrent(), "Tahoma", 8, SWT.NONE); 
-  public final static Font  mediumBoldFont          = new Font(Display.getCurrent(), "Tahoma", 8, SWT.BOLD); 
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/LinkedGraphViewer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/LinkedGraphViewer.java
deleted file mode 100644
index 09645a1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/LinkedGraphViewer.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xsd.ui.internal.XSDEditor;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.w3c.dom.Element;
-
-
-
-public class LinkedGraphViewer
-{
-  
-  protected ISelectionProvider menuSelectionProvider;
-  protected XSDEditor editor;
-  protected BaseGraphicalViewer majorViewer, minorViewer;
-  
-  /**
-   * 
-   */
-  public LinkedGraphViewer(XSDEditor editor, ISelectionProvider selectionProvider)
-  {
-    menuSelectionProvider = selectionProvider;
-    this.editor = editor;
-  }
-
-  public void setMajorViewer(BaseGraphicalViewer majorViewer)
-  {
-    this.majorViewer = majorViewer;
-  }
-
-  public void setMinorViewer(BaseGraphicalViewer minorViewer)
-  {
-    this.minorViewer = minorViewer;
-  }
-  
-  protected Composite control;
-  protected SashForm sashForm;
-  
-  public Control createControl(Composite parent)
-  {
-    //control = new Composite(parent, SWT.DEFAULT);
-   
-    control = sashForm = new SashForm(parent, SWT.VERTICAL | SWT.BORDER);
-    sashForm.setLayoutData(ViewUtility.createFill());
-    
-    majorViewer.createControl(sashForm);
-    minorViewer.createControl(sashForm);
-//    control.setLayout(new GridLayout());
-//    control.setLayoutData(ViewUtility.createFill());
-    return control;
-  }
-  
-  public void addSelectionChangedListener(ISelectionChangedListener selectionListener)
-  {
-    if (majorViewer != null)
-    {
-      majorViewer.addSelectionChangedListener(selectionListener);
-      majorViewer.addSelectionChangedListener(majorViewerListener);
-    }
-    if (minorViewer != null)
-    {
-      minorViewer.addSelectionChangedListener(selectionListener);
-    }
-  }
-  
-  /**
-   * @return Composite
-   */
-  public Composite getControl()
-  {
-    return control;
-  }
-
-  /**
-   * 
-   */
-  protected XSDConcreteComponent getInput()
-  {
-    return majorViewer.getInput();
-  }
-
-  /**
-   * @param schema
-   */
-  protected void setInput(XSDConcreteComponent input)
-  {
-    majorViewer.setInput(input);
-    minorViewer.setInput(input);
-  }
-
-  /**
-   * @param component
-   */
-  public void setSelection(XSDConcreteComponent component)
-  {
-    majorViewer.setSelection(component);
-  }
-
-  protected MajorViewerSelectionChangedListener majorViewerListener = new MajorViewerSelectionChangedListener();
-  
-  private class MajorViewerSelectionChangedListener implements ISelectionChangedListener
-  {
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
-     */
-    public void selectionChanged(SelectionChangedEvent event)
-    {
-      ISelection editPartSelection = event.getSelection();
-      List nodeList = new ArrayList();
-      if (editPartSelection instanceof IStructuredSelection)
-      {
-        for (Iterator i = ((IStructuredSelection)editPartSelection).iterator(); i.hasNext(); )
-        {
-          EditPart editPart = (EditPart)i.next();
-          if (editPart != null)
-          {
-            Object model = editPart.getModel();
-            if (model instanceof XSDConcreteComponent)
-            {
-              Element element = ((XSDConcreteComponent)model).getElement();
-
-              // this test ensures that we don't attempt to select an element for an external schema
-              //
-              if (element instanceof XMLNode)
-              {
-                // now update the minor viewer based on the selected component in the major viewer
-                minorViewer.setInput((XSDConcreteComponent)model);
-                minorViewer.setSelection((XSDConcreteComponent)model);
-              }
-            }
-          }
-        }
-      }                
-    }
-
-  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/PrintGraphAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/PrintGraphAction.java
deleted file mode 100644
index 53df913..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/PrintGraphAction.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph;
-             
-import org.eclipse.jface.action.Action;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.printing.PrintDialog;
-import org.eclipse.swt.printing.Printer;
-import org.eclipse.swt.printing.PrinterData;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-
-
-public class PrintGraphAction extends Action
-{ 
-  protected XSDComponentViewer componentViewer;
-
-  public PrintGraphAction(XSDComponentViewer componentViewer)
-  {
-    super("Print");
-    this.componentViewer = componentViewer;
-  } 
-
-  public void run()
-  {
-    try
-    {
-      PrintDialog dialog = new PrintDialog(Display.getCurrent().getActiveShell());
-      PrinterData data = dialog.open();
-      Printer printer = new Printer(data);
-                                                   
-      Control control = componentViewer.getControl();
-      Display display = Display.getCurrent();
-      Image graphImage = new Image(display, control.getSize().x, control.getSize().y);
-      GC graphGC = new GC(control);
-      graphGC.copyArea(graphImage, 0, 0);
-        
-      ImageData graphImageData = graphImage.getImageData();
-      graphImageData.transparentPixel = -1;
-        
-      Point screenDPI = display.getDPI();
-      Point printerDPI = printer.getDPI();
-      int scaleFactor = printerDPI.x / screenDPI.x;
-      Rectangle trim = printer.computeTrim(0, 0, 0, 0);
-      if (printer.startJob("Print XML Schema Graph")) 
-      {
-        GC gc = new GC(printer);
-        if (printer.startPage()) 
-        {
-          gc.drawImage(
-            graphImage,
-            0,
-            0,
-            graphImageData.width,
-            graphImageData.height,
-            -trim.x,
-            -trim.y,
-            scaleFactor * graphImageData.width,
-            scaleFactor * graphImageData.height);
-          printer.endPage();
-        }
-        printer.endJob();
-      }
-      printer.dispose();
-      graphGC.dispose();
-    }    
-    catch (Exception e)
-    {
-      e.printStackTrace();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDChildUtility.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDChildUtility.java
deleted file mode 100644
index 887889c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDChildUtility.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.XSDWildcard;
-import org.eclipse.xsd.util.XSDSwitch;
-              
-
-public class XSDChildUtility
-{              
-  static public List getModelChildren(Object model)
-  {                     
-    XSDChildVisitor visitor = new XSDChildVisitor(model);
-    visitor.visitXSDObject(model); 
-    return visitor.list;
-  }    
-   
-  static public List getImmediateDerivedTypes(XSDComplexTypeDefinition complexType)
-  {
-    ArrayList typesDerivedFrom = new ArrayList();
-
-    // A handy convenience method quickly gets all 
-    // typeDefinitions within our schema; note that 
-    // whether or not this returns types in included, 
-    // imported, or redefined schemas is subject to change
-    List typedefs = complexType.getSchema().getTypeDefinitions();
-
-    for (Iterator iter = typedefs.iterator(); iter.hasNext(); )
-    {
-      XSDTypeDefinition typedef = (XSDTypeDefinition)iter.next();
-      // Walk the baseTypes from this typedef seeing if any 
-      // of them match the requested one
-      if (complexType.equals(typedef.getBaseType()))
-      {
-        // We found it, return the original one and continue
-        typesDerivedFrom.add(typedef);
-      }
-    }
-    return typesDerivedFrom;
-  }
-  // TODO... use the XSDVisitor defined in xsdeditor.util instead
-  //          
-  public static class XSDChildVisitor extends XSDVisitor
-  {
-    Object root;
-    List list = new ArrayList();
-
-    public XSDChildVisitor(Object root)
-    {
-      this.root = root;
-    }                  
-
-    public void visitXSDModelGroup(XSDModelGroup xsdModelGroup)
-    {
-      if (xsdModelGroup != root)
-      {
-        list.add(xsdModelGroup);
-      }                         
-      else
-      {
-        super.visitXSDModelGroup(xsdModelGroup);
-      }
-    }
-
-    public void visitXSDModelGroupDefinition(XSDModelGroupDefinition xsdModelGroupDefinition)
-    {
-      if (xsdModelGroupDefinition != root)
-      {
-        list.add(xsdModelGroupDefinition);
-      }                         
-      else
-      {
-        super.visitXSDModelGroupDefinition(xsdModelGroupDefinition);
-      }
-    }
-
-    public void visitXSDElementDeclaration(XSDElementDeclaration xsdElementDeclaration)
-    {
-      if (xsdElementDeclaration != root)
-      {
-        list.add(xsdElementDeclaration);
-      }                         
-      else
-      {
-        super.visitXSDElementDeclaration(xsdElementDeclaration);
-      }
-    }
-
-    public void visitXSDComplexTypeDefinition(XSDComplexTypeDefinition xsdComplexTypeDefinition)
-    {
-      if (xsdComplexTypeDefinition != root)
-      {                                    
-        if (xsdComplexTypeDefinition.getName() != null || getModelChildren(xsdComplexTypeDefinition).size() > 0)
-        {
-          list.add(xsdComplexTypeDefinition);
-        }
-      }                         
-      else
-      {
-        super.visitXSDComplexTypeDefinition(xsdComplexTypeDefinition);
-      }
-    }    
-
-    public void visitXSDWildcard(XSDWildcard xsdWildCard)
-    {
-      if (xsdWildCard != root)
-      {                                    
-        list.add(xsdWildCard);        
-      }                         
-      else
-      {
-        super.visitXSDWildcard(xsdWildCard);
-      }
-    }
-  }
-               
-
-  public static class XSDVisitor
-  { 
-    int indent = 0;
-                 
-    public void visitXSDObject(Object object)
-    {           
-      if (object == null)
-        return;
-
-      XSDSwitch theSwitch = new XSDSwitch()
-      {   
-        public Object caseXSDComplexTypeDefinition(XSDComplexTypeDefinition object)
-        {
-          visitXSDComplexTypeDefinition(object);
-          return null;
-        } 
-
-        public Object caseXSDAttributeUse(XSDAttributeUse object)
-        {
-          visitXSDAttributeUse(object);
-          return null;
-        }
-
-        public Object caseXSDElementDeclaration(XSDElementDeclaration object)
-        {
-          visitXSDElementDeclaration(object);
-          return null;
-        }
-
-        public Object caseXSDModelGroupDefinition(XSDModelGroupDefinition object)
-        {
-          visitXSDModelGroupDefinition(object);
-          return super.caseXSDModelGroupDefinition(object);
-        }
-
-        public Object caseXSDModelGroup(XSDModelGroup object)
-        {
-          visitXSDModelGroup(object);
-          return super.caseXSDModelGroup(object);
-        }
-
-        public Object caseXSDParticle(XSDParticle object)
-        { 
-          visitXSDParticle(object);
-          return null;
-        } 
-
-        public Object caseXSDSchema(XSDSchema object)
-        { 
-          visitXSDSchema(object);
-          return null;
-        } 
-
-        public Object caseXSDWildcard(XSDWildcard object)
-        { 
-          visitXSDWildcard(object);
-          return null;
-        } 
-      };
-      theSwitch.doSwitch((EObject)object);
-    }
-         
-    public void visitXSDAttributeUse(XSDAttributeUse xsdAttributeUse)
-    {  
-//      printIndented("@" + xsdAttributeUse.getAttributeDeclaration().getName());
-    }
-
-    public void visitXSDSchema(XSDSchema xsdSchema)
-    {         
-//      printIndented("XSDSchema");
-      indent += 2;
-      for (Iterator iterator = xsdSchema.getElementDeclarations().iterator(); iterator.hasNext(); )
-      {
-        visitXSDObject(iterator.next());
-      }
-      indent -= 2;
-    }
-
-    public void visitXSDElementDeclaration(XSDElementDeclaration xsdElementDeclaration)
-    {      
-//      printIndented(xsdElementDeclaration.getName());
-      indent += 2;         
-      XSDTypeDefinition td = xsdElementDeclaration.getTypeDefinition();
-      if (td == null)
-      {
-        td = xsdElementDeclaration.getAnonymousTypeDefinition();
-      }                       
-      visitXSDObject(td);
-      indent -= 2;
-    }
-   
-    public void visitXSDComplexTypeDefinition(XSDComplexTypeDefinition xsdComplexTypeDefinition)
-    {
-//      printIndented("XSDComplexTypeDefinition : " + xsdComplexTypeDefinition.getContent());
-      indent += 2;
-      for (Iterator i = xsdComplexTypeDefinition.getAttributeUses().iterator(); i.hasNext(); )
-      {        
-        visitXSDObject((XSDAttributeUse)i.next());
-      }
-      visitXSDObject(xsdComplexTypeDefinition.getContent());
-      indent -= 2;
-    }
-
-    public void visitXSDModelGroup(XSDModelGroup xsdModelGroup)
-    {
-//      printIndented("XSDModelGroup");
-      indent += 2;
-      for (Iterator iterator = xsdModelGroup.getContents().iterator(); iterator.hasNext(); )
-      {
-        visitXSDObject(iterator.next());
-      } 
-      indent -= 2;
-    }     
-
-    public void visitXSDModelGroupDefinition(XSDModelGroupDefinition xsdModelGroupDefinition)
-    {
-//      printIndented("XSDModelGroupDefinition");
-      indent += 2;
-      visitXSDObject(xsdModelGroupDefinition.getResolvedModelGroupDefinition().getModelGroup());
-      indent -= 2;
-    }
-
-    public void visitXSDParticle(XSDParticle xsdParticle)
-    {
-//      printIndented("XSDParticle");
-      indent += 2;                 
-      if (xsdParticle.getContent() != null)
-        visitXSDObject(xsdParticle.getContent());
-      indent -= 2;
-    } 
-
-    public void visitXSDWildcard(XSDWildcard object)
-    { 
-//      printIndented("XSDWildcard");
-    }
-
-    public void printIndented(String string)
-    { 
-      //String spaces = "";
-      //for (int i = 0; i < indent; i++)
-      //{
-      //  spaces += " ";
-      //}               
-      //System.out.println(spaces + string);      
-    }
-  } 
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDComponentViewer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDComponentViewer.java
deleted file mode 100644
index c5aa0b2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDComponentViewer.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph;
-             
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.wst.xsd.ui.internal.XSDEditor;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.ComponentViewerRootEditPart;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDSchema;
-
-
-public class XSDComponentViewer extends BaseGraphicalViewer
-{               
-  protected ComponentViewerRootEditPart componentViewerRootEditPart;
-  public XSDComponentViewer(XSDEditor editor, ISelectionProvider menuSelectionProvider)
-  {
-    super(editor, menuSelectionProvider);       
-  }        
-
-  public void setInput(XSDConcreteComponent component)
-  {               
-    if (isInputEnabled)
-    {
-      input = null;         
-
-      if (component instanceof XSDElementDeclaration || 
-          component instanceof XSDSchema ||
-          component instanceof XSDModelGroup ||   
-          component instanceof XSDModelGroupDefinition ||
-          component instanceof XSDComplexTypeDefinition)
-      {            
-        input = component;
-      }
-      
-      componentViewerRootEditPart.setInput(input);
-      if (!(input instanceof XSDSchema))
-      {
-        editor.getGraphViewer().backButton.setEnabled(true);
-      }
-    }
-  }     
-
-  public void setSelection(XSDConcreteComponent component)
-  {                    
-    if (isSelectionEnabled)
-    {                      
-      //System.out.println("XSDComponentViewer.setSelection(" + component + ")");
-      List editPartList = new ArrayList();    
-      StructuredSelection selection = new StructuredSelection();
-      if (component instanceof XSDElementDeclaration || 
-          component instanceof XSDSchema ||
-          component instanceof XSDModelGroup ||        
-          component instanceof XSDModelGroupDefinition ||
-          component instanceof XSDComplexTypeDefinition)
-      {                     
-        if (component != null)
-        {
-          EditPart editPart = getEditPart(componentViewerRootEditPart, component);    
-          if (editPart != null)
-          { 
-            // TODO ... take a look at this to figure our why a newly added component
-            // seems to have the wrong bounds at this point... is this a layout issue?           
-            // As a temp hack I'm ignoring the selection of component with bounds (x, y) == (0, 0)
-            // Perhaps a delayed selection is required?
-            Rectangle bounds = ((GraphicalEditPart)editPart).getFigure().getBounds();
-            if (bounds.x > 0 || bounds.y > 0)
-            {
-              editPartList.add(editPart); 
-            }
-          } 
-        }    
-      }              
-      setSelection(new StructuredSelection(editPartList));
-    }
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.gef.ui.parts.AbstractEditPartViewer#hookControl()
-   */
-  protected void hookControl()
-  {
-    super.hookControl();
-    componentViewerRootEditPart = new ComponentViewerRootEditPart();
-    setContents(componentViewerRootEditPart);
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDGraphUtil.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDGraphUtil.java
deleted file mode 100644
index a19f20b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDGraphUtil.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph;
-
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.w3c.dom.Element;
-              
-
-public class XSDGraphUtil
-{                        
-  public static boolean isEditable(Object model)
-  {                    
-    boolean result = false;
-    if (model instanceof XSDConcreteComponent)
-    {
-      Element element = ((XSDConcreteComponent)model).getElement();
-      // this test ensures that we don't attempt to select an element for an external schema
-      //
-      if (element instanceof XMLNode)
-      {
-         result = true;
-      }
-    }                      
-    return result;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDGraphViewer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDGraphViewer.java
deleted file mode 100644
index a15cfc7..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDGraphViewer.java
+++ /dev/null
@@ -1,598 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.custom.ViewForm;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.wst.xsd.ui.internal.XSDEditor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.XSDSelectionManager;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.TopLevelComponentEditPart;
-import org.eclipse.wst.xsd.ui.internal.provider.CategoryAdapter;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-import org.eclipse.xsd.XSDAttributeGroupContent;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDNotationDeclaration;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDWildcard;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-public class XSDGraphViewer implements ISelectionChangedListener
-{
-  protected PageBook pageBook;
-  protected Control componentViewerControl;
-  protected Control inheritanceViewerControl;
-  protected Control subGroupsViewerControl;
-  protected XSDComponentViewer componentViewer;
-  protected XSDInheritanceViewer inheritanceViewer;
-  protected XSDSubstitutionGroupsViewer subGroupsViewer;
-  protected XSDSelectionManager xsdSelectionManager;
-  protected XSDSchema schema;
-  protected InternalSelectionProvider internalSelectionProvider = new InternalSelectionProvider();
-  protected XSDEditor editor;
-  protected PrintGraphAction printGraphAction;
-  protected SashForm sashForm;
-  protected ToolItem backButton;
-
-  public XSDGraphViewer(XSDEditor editor)
-  {
-    super();
-    this.editor = editor;
-  }
-
-  public void setSchema(XSDSchema schema)
-  {
-    this.schema = schema;
-  }
-  ToolBar graphToolBar; // the toolbar at the top of the graph view
-  ToolItem toolItem; // the view tool item
-  ViewForm form; // view form for holding all the views
-  Composite frameBar; // The composite that contains the toolbar
-  Composite c; // temporary blank page. Clean this up when all views completed
-  LinkedGraphViewer linkInheritanceViewer;
-
-  protected void createInheritanceViewer(Composite parent)
-  {
-    linkInheritanceViewer = new LinkedGraphViewer(editor, internalSelectionProvider);
-    BaseGraphicalViewer graphViewer = new XSDInheritanceViewer(editor, internalSelectionProvider);
-    linkInheritanceViewer.setMajorViewer(graphViewer);
-    graphViewer = new XSDComponentViewer(editor, editor.getSelectionManager());
-    linkInheritanceViewer.setMinorViewer(graphViewer);
-    linkInheritanceViewer.createControl(parent);
-  }
-  LinkedGraphViewer linkSubstitutionGroupViewer;
-
-  protected void createSubstitutionGroupViewer(Composite parent)
-  {
-    linkSubstitutionGroupViewer = new LinkedGraphViewer(editor, internalSelectionProvider);
-    BaseGraphicalViewer graphViewer = new XSDSubstitutionGroupsViewer(editor, internalSelectionProvider);
-    linkSubstitutionGroupViewer.setMajorViewer(graphViewer);
-    graphViewer = new XSDComponentViewer(editor, internalSelectionProvider);
-    linkSubstitutionGroupViewer.setMinorViewer(graphViewer);
-    linkSubstitutionGroupViewer.createControl(parent);
-  }
-  static private Color dividerColor;
-
-  public Control createControl(Composite parent)
-  {
-    pageBook = new PageBook(parent, 0);
-    
-    //componentViewer = new XSDComponentViewer(editor, internalSelectionProvider);
-    componentViewer = new XSDComponentViewer(editor, editor.getSelectionManager());
-    ViewUtility util = new ViewUtility();
-    final Composite client;
-    String designLayoutPosition = XSDEditorPlugin.getPlugin().getDesignLayoutPosition();
-    form = new ViewForm(pageBook, SWT.NONE);
-    frameBar = new Composite(form, SWT.NONE);
-    org.eclipse.swt.layout.GridLayout frameLayout = new org.eclipse.swt.layout.GridLayout();
-    frameLayout.marginWidth = 0;
-    frameLayout.marginHeight = 0;
-    frameBar.setLayout(frameLayout);
-    graphToolBar = new ToolBar(frameBar, SWT.FLAT);
-    graphToolBar.addTraverseListener(new TraverseListener()
-    {
-      public void keyTraversed(TraverseEvent e)
-      {
-        if (e.detail == SWT.TRAVERSE_MNEMONIC)
-          e.doit = false;
-      }
-    });
-    backButton = new ToolItem(graphToolBar, SWT.PUSH);
-    backButton.setImage(XSDEditorPlugin.getXSDImage("icons/back.gif")); //$NON-NLS-1$
-    backButton.setToolTipText(XSDEditorPlugin.getXSDString("_UI_HOVER_BACK_TO_SCHEMA_VIEW")); //$NON-NLS-1$
-    backButton.setEnabled(false);
-    backButton.addSelectionListener(new SelectionAdapter()
-    {
-      public void widgetSelected(SelectionEvent e)
-      {
-        editor.getGraphViewer().setInput(editor.getXSDSchema());
-        // internalSelectionProvider.setSelection(new StructuredSelection(editor.getXSDSchema()));
-        editor.getSelectionManager().setSelection(new StructuredSelection(editor.getXSDSchema()));
-      }
-    });
-    // TEMPORARILY REMOVE DIFFERENT VIEWS
-    //    toolItem = new ToolItem(graphToolBar, SWT.DROP_DOWN);
-    //
-    //    // set default to containment
-    //// toolItem.setText(XSDEditorPlugin.getXSDString("_UI_CONTAINMENT"));
-    //    toolItem.addSelectionListener(new SelectionAdapter()
-    //    {
-    //      public void widgetSelected(SelectionEvent e)
-    //      {
-    //        Menu menu = new Menu(graphToolBar);
-    //        if (menu != null)
-    //        {
-    //          if (!showGraphMenu(menu))
-    //          {
-    //            frameBar.setVisible(false);
-    //            return;
-    //          }
-    //          Rectangle b = toolItem.getBounds();
-    //          org.eclipse.swt.graphics.Point p = toolItem.getParent().toDisplay(new
-    // org.eclipse.swt.graphics.Point(b.x, b.y + b.height));
-    //          menu.setLocation(p.x, p.y);
-    //          menu.setVisible(true);
-    //        }
-    //      }
-    //    });
-    form.setTopLeft(frameBar);
-    //    createInheritanceViewer(form);
-    //    createSubstitutionGroupViewer(form);
-    componentViewerControl = componentViewer.createControl(form);
-    //inheritanceViewerControl = inheritanceViewer.createControl(form);
-    //subGroupsViewerControl = subGroupsViewer.createControl(form);
-    c = ViewUtility.createComposite(form, 1);
-    form.setContent(componentViewerControl);
-    // componentViewerControl.setData("layout ratio", new Float(0.65));
-    form.setData("layout ratio", new Float(0.65));
-    if (dividerColor == null)
-    {
-      dividerColor = new Color(componentViewerControl.getDisplay(), 143, 141, 138);
-    }
-    //KCPort
-    //    client.addPaintListener(new PaintListener()
-    //    {
-    //      /**
-    //       * @see org.eclipse.swt.events.PaintListener#paintControl(PaintEvent)
-    //       */
-    //      public void paintControl(PaintEvent e)
-    //      {
-    //        Object source = e.getSource();
-    //        if (source instanceof Composite)
-    //        {
-    //          Composite comp = (Composite)source;
-    //          Rectangle boundary = comp.getClientArea();
-    //          e.gc.setForeground(dividerColor);
-    //          e.gc.drawLine(boundary.x, boundary.y, boundary.x + boundary.width,
-    // boundary.y);
-    //          editor.setDesignWeights(sashForm.getWeights(), true);
-    //        }
-    //      }
-    //    });
-    // KCPort
-    //    designView = new DesignViewer(editor);
-    //    final Control design = designView.createControl(client);
-    //    design.setLayoutData(ViewUtility.createFill());
-    //    client.setData("layout ratio", new Float(0.35));
-    //    enableDesignView(editor.isCombinedDesignAndSourceView());
-    //    pageBook.showPage(sashForm);
-    pageBook.showPage(form);
-    componentViewer.addSelectionChangedListener(internalSelectionProvider);
-    //inheritanceViewer.addSelectionChangedListener(this);
-    // Temporarily remove graph tool bar
-    //    linkInheritanceViewer.addSelectionChangedListener(this);
-    //    linkSubstitutionGroupViewer.addSelectionChangedListener(this);
-    printGraphAction = new PrintGraphAction(componentViewer);
-    return pageBook;
-    //    return form;
-  }
-
-  private boolean showGraphMenu(Menu menu)
-  {
-    MenuItem containmentMenuItem = new MenuItem(menu, SWT.RADIO);
-    containmentMenuItem.setText(XSDEditorPlugin.getXSDString("_UI_CONTAINMENT"));
-    containmentMenuItem.addSelectionListener(new SelectionAdapter()
-    {
-      public void widgetSelected(SelectionEvent e)
-      {
-        toolItem.setText(XSDEditorPlugin.getXSDString("_UI_CONTAINMENT"));
-        frameBar.layout(true);
-        graphToolBar.layout(true);
-        form.setContent(componentViewerControl);
-        // retrieve latest input which could have changed...from designView ??
-        // get it directly?
-        // KCPort
-        //        setInput(designView.getInput());
-      }
-    });
-    MenuItem inheritanceMenuItem = new MenuItem(menu, SWT.RADIO);
-    inheritanceMenuItem.setText(XSDEditorPlugin.getXSDString("_UI_INHERITANCE"));
-    inheritanceMenuItem.addSelectionListener(new SelectionAdapter()
-    {
-      public void widgetSelected(SelectionEvent e)
-      {
-        toolItem.setText(XSDEditorPlugin.getXSDString("_UI_INHERITANCE"));
-        frameBar.layout(true);
-        graphToolBar.layout(true);
-        //        form.setContent(inheritanceViewerControl);
-        form.setContent(linkInheritanceViewer.getControl());
-        if (linkInheritanceViewer.getInput() == null)
-        {
-          linkInheritanceViewer.setInput(schema);
-        }
-      }
-    });
-    MenuItem subGroupsMenuItem = new MenuItem(menu, SWT.RADIO);
-    subGroupsMenuItem.setText(XSDEditorPlugin.getXSDString("_UI_SUBSTITUTION_GROUPS"));
-    subGroupsMenuItem.addSelectionListener(new SelectionAdapter()
-    {
-      public void widgetSelected(SelectionEvent e)
-      {
-        toolItem.setText(XSDEditorPlugin.getXSDString("_UI_SUBSTITUTION_GROUPS"));
-        frameBar.layout(true);
-        graphToolBar.layout(true);
-        form.setContent(linkSubstitutionGroupViewer.getControl());
-        // retrieve latest input which could have changed...from designView ??
-        // get it directly?
-        //        setInput(designView.getInput());
-        if (linkSubstitutionGroupViewer.getInput() == null)
-        {
-          linkSubstitutionGroupViewer.setInput(schema);
-        }
-      }
-    });
-    if (toolItem.getText().equals(XSDEditorPlugin.getXSDString("_UI_CONTAINMENT")))
-    {
-      containmentMenuItem.setSelection(true);
-    }
-    else if (toolItem.getText().equals(XSDEditorPlugin.getXSDString("_UI_INHERITANCE")))
-    {
-      inheritanceMenuItem.setSelection(true);
-    }
-    else if (toolItem.getText().equals(XSDEditorPlugin.getXSDString("_UI_SUBSTITUTION_GROUPS")))
-    {
-      subGroupsMenuItem.setSelection(true);
-    }
-    return true;
-  }
-
-  public Action getPrintGraphAction()
-  {
-    return printGraphAction;
-  }
-
-  public void updateDesignLayout(int newLayout)
-  {
-    sashForm.setOrientation(newLayout);
-    sashForm.layout();
-  }
-
-  public SashForm getSashForm()
-  {
-    return sashForm;
-  }
-
-  public void enableDesignView(boolean enable)
-  {
-  }
-
-  public XSDComponentViewer getComponentViewer()
-  {
-    return componentViewer;
-  }
-  
-  public void setBackButtonEnabled(boolean state)
-  {
-    backButton.setEnabled(state);
-  }
-
-  public void setInput(Object object)
-  {
-    if (object instanceof XSDConcreteComponent)
-    {
-      XSDConcreteComponent xsdComp = (XSDConcreteComponent) object;
-      if (xsdComp instanceof XSDSchema)
-      {
-        setBackButtonEnabled(false);
-      }
-      else
-      {
-        setBackButtonEnabled(true);
-      }
-      componentViewer.setInput(xsdComp);
-      componentViewer.setSelection(xsdComp);
-    }   
-  }
-
-  protected boolean isDeleted(XSDConcreteComponent component)
-  {
-    boolean result = false;
-    if (component != null && component.getElement() != null)
-    {
-      result = component.getElement().getParentNode() == null;
-    }
-    return result;
-  }
-
-  public void setSelectionManager(XSDSelectionManager newSelectionManager)
-  {
-    // disconnect from old one
-    if (xsdSelectionManager != null)
-    {
-      xsdSelectionManager.removeSelectionChangedListener(this);
-      internalSelectionProvider.removeSelectionChangedListener(xsdSelectionManager);
-    }
-    xsdSelectionManager = newSelectionManager;
-    // connect to new one
-    if (xsdSelectionManager != null)
-    {
-      xsdSelectionManager.addSelectionChangedListener(this);
-      internalSelectionProvider.addSelectionChangedListener(xsdSelectionManager);
-    }
-  }
-
-  // this method is called by the SelectionManager to notify the graph view
-  // that the editor selection has changed
-  //
-  public void selectionChanged(SelectionChangedEvent event)
-  {
-    // here we check the selection source to ensure that this selection came
-    // from a different view (not from the graph view)
-    if (event.getSource() != getComponentViewer())
-    { 
-      handleSelection(event, true);
-    }
-  }
-
-  protected XSDConcreteComponent getTopLevelComponent(XSDConcreteComponent component)
-  {
-    XSDConcreteComponent prev = component;
-    XSDConcreteComponent container = component;
-    while ( container != null && !(container instanceof XSDSchema))
-    {
-      prev = container;     
-      container = container.getContainer();
-    }
-    return container != null ? prev : null;
-  }
-  
-  // TODO.. we need to clean this method up and add comments to clarify what's going on
-  //
-  protected void handleSelection(SelectionChangedEvent event, boolean isSelectionRequired)
-  {
-    StructuredSelection s = (StructuredSelection)event.getSelection();
-    Object obj = s.getFirstElement();
-    if (obj instanceof XSDConcreteComponent)
-    {
-      XSDConcreteComponent selectedComponent = (XSDConcreteComponent)obj;
-      Object currentInput = getComponentViewer().getInput();
-      
-      // in this case we're looking at a top level view
-      // so if the selection is a 'non-top-level' component we need to do a set input
-      XSDSchema topLevelSchema = null;
-      if (currentInput instanceof XSDSchema)
-      {
-        if (selectedComponent instanceof XSDSchema || 
-            selectedComponent.getContainer() instanceof XSDSchema)
-        {
-          topLevelSchema = (XSDSchema)currentInput;
-        }
-      }
-      if (selectedComponent instanceof XSDSchemaDirective || 
-          selectedComponent instanceof XSDNotationDeclaration)      
-      {
-        topLevelSchema = selectedComponent.getSchema();
-      }
-      else if (selectedComponent instanceof XSDAttributeGroupContent ||
-               selectedComponent instanceof XSDWildcard)
-      {
-        if (selectedComponent.getContainer() instanceof XSDAttributeGroupDefinition)
-        {
-          topLevelSchema = selectedComponent.getSchema();
-        }
-      }
-      else if (selectedComponent instanceof XSDSimpleTypeDefinition)
-      {
-        XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)selectedComponent;
-        EditPart editPart = componentViewer.getEditPart(componentViewer.getRootEditPart(), st);
-        if (editPart == null)
-        {
-          if (st.getContainer() == editor.getXSDSchema())
-          {
-            topLevelSchema = selectedComponent.getSchema();
-          }
-        }
-      }
-      
-      if (topLevelSchema != null)
-      {
-        setInput(topLevelSchema);
-        // TODO... this is not 'quite' right
-        // it should be possible to view in
-      }  
-      else
-      { 
-        EditPart editPart = getComponentViewer().getEditPart(getComponentViewer().getRootEditPart(), obj);
-        if (editPart == null)
-        {  
-          XSDConcreteComponent topLevelComponent = getTopLevelComponent(selectedComponent);
-          if (topLevelComponent != null)
-          {
-            setInput(topLevelComponent);  
-          }
-        }  
-      }  
-      // now we handle the selection
-      //
-      if (isSelectionRequired)
-      {  
-        EditPart editPart = getComponentViewer().getRootEditPart();        
-        EditPart newSelectedEditPart = getComponentViewer().getEditPart(editPart, obj);
-        if (newSelectedEditPart != null)
-        {
-          if (newSelectedEditPart instanceof TopLevelComponentEditPart)
-          {
-            ((TopLevelComponentEditPart)newSelectedEditPart).setScroll(true);
-          }
-          getComponentViewer().setSelection(new StructuredSelection(newSelectedEditPart));
-        }
-      }      
-    }
-    else if (obj instanceof CategoryAdapter)
-    {
-      setInput(((CategoryAdapter)obj).getXSDSchema());  
-    }
-  }
-
-  protected Element getElementNode(Node node)
-  {
-    while (!(node instanceof Element))
-    {
-      if (node instanceof Attr)
-      {
-        node = ((Attr) node).getOwnerElement();
-      }
-      else if (node instanceof Text)
-      {
-        Node sibling = node.getNextSibling();
-        if (sibling == null)
-        {
-          break;
-        }
-        node = sibling;
-      }
-      else
-      {
-        Node parent = node.getParentNode();
-        if (parent == null)
-        {
-          break;
-        }
-        node = node.getParentNode();
-      }
-    }
-    return node instanceof Element ? (Element) node : null;
-  }
-
-
-
-  // This class listens to the graph view and converts edit part selection
-  // events
-  // into XSD component selection events that can be 'fired' to the
-  // selectionManager
-  //
-  class InternalSelectionProvider implements ISelectionProvider, ISelectionChangedListener
-  {
-    protected List listenerList = new ArrayList();
-    protected ISelection selection = new StructuredSelection();
-
-    public void addSelectionChangedListener(ISelectionChangedListener listener)
-    {
-      listenerList.add(listener);
-    }
-
-    public void removeSelectionChangedListener(ISelectionChangedListener listener)
-    {
-      listenerList.remove(listener);
-    }
-
-    public ISelection getSelection()
-    {
-      return selection;
-    }
-
-    protected void notifyListeners(SelectionChangedEvent event)
-    {
-      for (Iterator i = listenerList.iterator(); i.hasNext();)
-      {
-        ISelectionChangedListener listener = (ISelectionChangedListener) i.next();
-        listener.selectionChanged(event);
-      }
-    }
-
-    public StructuredSelection convertSelectionFromEditPartToModel(ISelection editPartSelection)
-    {
-      List selectedModelObjectList = new ArrayList();
-      if (editPartSelection instanceof IStructuredSelection)
-      {
-        for (Iterator i = ((IStructuredSelection) editPartSelection).iterator(); i.hasNext();)
-        {
-          Object obj = i.next();
-          Object model = null;
-          if (obj instanceof EditPart)
-          {
-            EditPart editPart = (EditPart) obj;
-            model = editPart.getModel();
-            // Convert category to XSDSchema
-            // if (editPart instanceof CategoryEditPart)
-            // {
-            //   model = ((Category)((CategoryEditPart)editPart).getModel()).getXSDSchema();
-            // }
-          }
-          else if (obj instanceof XSDConcreteComponent)
-          {
-            //cs .. not sure why would we'd ever hit this case?
-            model = obj;
-          }
-          if (model != null)//&& model instanceof XSDConcreteComponent)
-          {
-            selectedModelObjectList.add(model);
-          }
-        }
-      }
-      return new StructuredSelection(selectedModelObjectList);
-    }
-
-    public void setSelection(ISelection selection)
-    {
-      this.selection = selection;
-    }
-
-    // This method gets called when an edit part in the graph view is selected
-    //
-    public void selectionChanged(SelectionChangedEvent event)
-    {
-      ISelection newSelection = convertSelectionFromEditPartToModel(event.getSelection());
-      this.selection = newSelection;
-      SelectionChangedEvent newEvent = new SelectionChangedEvent(getComponentViewer(), newSelection);
-      notifyListeners(newEvent);
-    }
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDGraphicalViewerKeyHandler.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDGraphicalViewerKeyHandler.java
deleted file mode 100644
index b6c8026..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDGraphicalViewerKeyHandler.java
+++ /dev/null
@@ -1,352 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph;
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.ConnectionEditPart;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.GraphicalViewer;
-import org.eclipse.gef.KeyHandler;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.ExpandableGraphNodeEditPart;
-
-
-public class XSDGraphicalViewerKeyHandler extends KeyHandler
-{
-    public XSDGraphicalViewerKeyHandler(GraphicalViewer viewer)
-    {
-      this.viewer = viewer;
-    }
-    
-    private WeakReference cachedNode;
-    int counter;
-    private GraphicalViewer viewer;
-
-    private boolean acceptConnection(KeyEvent event)
-    {
-      return event.character == '/'
-        || event.character == '?'
-        || event.character == '\\'
-        || event.character == '|';
-    }
-    private boolean acceptIntoContainer(KeyEvent event)
-    {
-      return (((event.stateMask & SWT.ALT) != 0)
-        && (event.keyCode == SWT.ARROW_RIGHT)) || (event.keyCode == SWT.ARROW_RIGHT);
-//      return (event.keyCode == SWT.ARROW_RIGHT);
-    }
-    private boolean acceptLeaveConnection(KeyEvent event)
-    {
-      int key = event.keyCode;
-      if (getFocus() instanceof ConnectionEditPart)
-        if ((key == SWT.ARROW_UP)
-          || (key == SWT.ARROW_RIGHT)
-          || (key == SWT.ARROW_DOWN)
-          || (key == SWT.ARROW_LEFT))
-          return true;
-      return false;
-    }
-    private boolean acceptLeaveContents(KeyEvent event)
-    {
-      int key = event.keyCode;
-      return getFocus() == getViewer().getContents()
-        && ((key == SWT.ARROW_UP)
-          || (key == SWT.ARROW_RIGHT)
-          || (key == SWT.ARROW_DOWN)
-          || (key == SWT.ARROW_LEFT));
-    }
-    private boolean acceptOutOf(KeyEvent event)
-    {
-      return (((event.stateMask & SWT.ALT) != 0) && (event.keyCode == SWT.ARROW_LEFT)) || (event.keyCode == SWT.ARROW_LEFT);
-//      return (event.keyCode == SWT.ARROW_LEFT);
-    }
-    private ConnectionEditPart findConnection(
-      GraphicalEditPart node,
-      ConnectionEditPart current,
-      boolean forward)
-    {
-      List connections = new ArrayList(node.getSourceConnections());
-      connections.addAll(node.getTargetConnections());
-      if (connections.isEmpty())
-        return null;
-      if (forward)
-        counter++;
-      else
-        counter--;
-      while (counter < 0)
-        counter += connections.size();
-      counter %= connections.size();
-      return (ConnectionEditPart) connections.get(counter % connections.size());
-    }
-    /*
-     * pStart is a point in absolute coordinates.
-     */
-    private GraphicalEditPart findSibling(
-      List siblings,
-      Point pStart,
-      int direction,
-      EditPart exclude)
-    {
-      GraphicalEditPart epCurrent;
-      GraphicalEditPart epFinal = null;
-      IFigure figure;
-      Point pCurrent;
-      int distance = Integer.MAX_VALUE;
-      Iterator iter = siblings.iterator();
-      while (iter.hasNext())
-      {
-        epCurrent = (GraphicalEditPart) iter.next();
-        if (epCurrent == exclude)
-          continue;
-        figure = epCurrent.getFigure();
-        pCurrent = getInterestingPoint(figure);
-        figure.translateToAbsolute(pCurrent);
-        if (pStart.getPosition(pCurrent) != direction)
-          continue;
-        int d = pCurrent.getDistanceOrthogonal(pStart);
-        if (d < distance)
-        {
-          distance = d;
-          epFinal = epCurrent;
-        }
-      }
-      return epFinal;
-    }
-    Point getInterestingPoint(IFigure figure)
-    {
-//      return figure.getBounds().getCenter();
-      return figure.getBounds().getTopLeft();
-    }
-    /**
-     * Returns the cached node.  It is possible that the node is not longer in the viewer but has
-     * not been garbage collected yet.
-     */
-    private GraphicalEditPart getCachedNode()
-    {
-      if (cachedNode == null)
-        return null;
-      if (cachedNode.isEnqueued())
-        return null;
-      return (GraphicalEditPart) cachedNode.get();
-    }
-    GraphicalEditPart getFocus()
-    {
-      return (GraphicalEditPart) getViewer().getFocusEditPart();
-    }
-    List getNavigationSiblings()
-    {
-      return getFocus().getParent().getChildren();
-    }
-    protected GraphicalViewer getViewer()
-    {
-      return viewer;
-    }
-    public boolean keyPressed(KeyEvent event)
-    {
-      if (event.character == ' ')
-      {
-        processSelect(event);
-        return true;
-      }
-      else if (acceptIntoContainer(event))
-      {
-        navigateIntoContainer(event);
-        return true;
-      }
-      else if (acceptOutOf(event))
-      {
-        navigateOut(event);
-        return true;
-      }
-      else if (acceptConnection(event))
-      {
-        navigateConnections(event);
-        return true;
-      }
-      else if (acceptLeaveConnection(event))
-      {
-        navigateOutOfConnection(event);
-        return true;
-      }
-      else if (acceptLeaveContents(event))
-      {
-        navigateIntoContainer(event);
-        return true;
-      }
-      switch (event.keyCode)
-      {
-        case SWT.ARROW_LEFT :
-          return navigateNextSibling(event, PositionConstants.WEST);
-        case SWT.ARROW_RIGHT :
-          return navigateNextSibling(event, PositionConstants.EAST);
-        case SWT.ARROW_UP :
-          return navigateNextSibling(event, PositionConstants.NORTH);
-        case SWT.ARROW_DOWN :
-          return navigateNextSibling(event, PositionConstants.SOUTH);
-        case SWT.HOME :
-          return navigateJumpSibling(event, PositionConstants.WEST);
-        case SWT.END :
-          return navigateJumpSibling(event, PositionConstants.EAST);
-        case SWT.PAGE_DOWN :
-          return navigateJumpSibling(event, PositionConstants.SOUTH);
-        case SWT.PAGE_UP :
-          return navigateJumpSibling(event, PositionConstants.NORTH);
-      }
-      return super.keyPressed(event);
-    }
-    private void navigateConnections(KeyEvent event)
-    {
-      GraphicalEditPart focus = getFocus();
-      ConnectionEditPart current = null;
-      GraphicalEditPart node = getCachedNode();
-      if (focus instanceof ConnectionEditPart)
-      {
-        current = (ConnectionEditPart) focus;
-        if (node == null
-          || (node != current.getSource() && node != current.getTarget()))
-        {
-          node = (GraphicalEditPart) current.getSource();
-          counter = 0;
-        }
-      }
-      else
-      {
-        node = focus;
-      }
-      setCachedNode(node);
-      boolean forward = event.character == '/' || event.character == '?';
-      ConnectionEditPart next = findConnection(node, current, forward);
-      navigateTo(next, event);
-    }
-    private void navigateIntoContainer(KeyEvent event)
-    {
-      GraphicalEditPart focus = getFocus();
-      List childList = focus.getChildren();
-
-      if (focus instanceof ExpandableGraphNodeEditPart)
-      {
-        if (!((ExpandableGraphNodeEditPart)focus).isExpanded())
-        {
-          ((ExpandableGraphNodeEditPart)focus).doPerformExpandOrCollapse();
-        }
-      }
-
-      Point tl = focus.getContentPane().getBounds().getTopLeft();
-      int minimum = Integer.MAX_VALUE;
-      int current;
-      GraphicalEditPart closestPart = null;
-      for (int i = 0; i < childList.size(); i++)
-      {
-        GraphicalEditPart ged = (GraphicalEditPart) childList.get(i);
-        Rectangle childBounds = ged.getFigure().getBounds();
-        current = (childBounds.x - tl.x) + (childBounds.y - tl.y);
-        if (current < minimum)
-        {
-          minimum = current;
-          closestPart = ged;
-        }
-      }
-      if (closestPart != null)
-        navigateTo(closestPart, event);
-    }
-    private boolean navigateJumpSibling(KeyEvent event, int direction)
-    {
-      return false;
-    }
-    private boolean navigateNextSibling(KeyEvent event, int direction)
-    {
-      GraphicalEditPart epStart = getFocus();
-      IFigure figure = epStart.getFigure();
-      Point pStart = getInterestingPoint(figure);
-      figure.translateToAbsolute(pStart);
-      EditPart next =
-        findSibling(getNavigationSiblings(), pStart, direction, epStart);
-      if (next == null)
-        return false;
-      navigateTo(next, event);
-      return true;
-    }
-    private void navigateOut(KeyEvent event)
-    {
-      if (getFocus() == null
-        || getFocus() == getViewer().getContents()
-        || getFocus().getParent() == getViewer().getContents())
-        return;
-
-      EditPart parent = getFocus().getParent();
-      if (((event.stateMask & SWT.ALT) != 0) && (event.keyCode == SWT.ARROW_LEFT))
-      {
-        if ((parent != null) && (parent instanceof ExpandableGraphNodeEditPart))
-        {
-          if (((ExpandableGraphNodeEditPart)parent).isExpanded())
-          {
-            ((ExpandableGraphNodeEditPart)parent).doPerformExpandOrCollapse();
-          }
-        }
-      }
-      navigateTo(parent, event);
-//      navigateTo(getFocus().getParent(), event);
-    }
-    private void navigateOutOfConnection(KeyEvent event)
-    {
-      GraphicalEditPart cached = getCachedNode();
-      ConnectionEditPart conn = (ConnectionEditPart) getFocus();
-      if (cached != null
-        && (cached == conn.getSource() || cached == conn.getTarget()))
-        navigateTo(cached, event);
-      else
-        navigateTo(conn.getSource(), event);
-    }
-    void navigateTo(EditPart part, KeyEvent event)
-    {
-      if (part == null)
-        return;
-      if ((event.stateMask & SWT.SHIFT) != 0)
-      {
-        getViewer().appendSelection(part);
-        getViewer().setFocus(part);
-      }
-      else if ((event.stateMask & SWT.CONTROL) != 0)
-        getViewer().setFocus(part);
-      else
-        getViewer().select(part);
-    }
-    private void processSelect(KeyEvent event)
-    {
-      EditPart part = getViewer().getFocusEditPart();
-      if ((event.stateMask & SWT.CONTROL) != 0
-        && part.getSelected() != EditPart.SELECTED_NONE)
-      {
-        getViewer().deselect(part);
-      }
-      else
-      {
-        getViewer().appendSelection(part);
-      }
-      getViewer().setFocus(part);
-    }
-    private void setCachedNode(GraphicalEditPart node)
-    {
-      if (node == null)
-        cachedNode = null;
-      else
-        cachedNode = new WeakReference(node);
-    }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDInheritanceViewer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDInheritanceViewer.java
deleted file mode 100644
index 71a8205..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDInheritanceViewer.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph;
-             
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.wst.xsd.ui.internal.XSDEditor;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.SubstitutionGroupViewerRootEditPart;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDSchema;
-
-
-public class XSDInheritanceViewer extends BaseGraphicalViewer
-{               
-  protected SubstitutionGroupViewerRootEditPart inheritanceViewerRootEditPart;
-  public XSDInheritanceViewer(XSDEditor editor, ISelectionProvider menuSelectionProvider)
-  {
-    super(editor, menuSelectionProvider);       
-  }        
-
-  public void setInput(XSDConcreteComponent component)
-  {               
-    if (isInputEnabled)
-    {
-      input = null;         
-
-      if (component instanceof XSDSchema ||
-          component instanceof XSDComplexTypeDefinition)
-      {            
-        input = component;
-      }
-      
-      inheritanceViewerRootEditPart.setInput(input);       
-    }
-  }     
-
-  public void setSelection(XSDConcreteComponent component)
-  {                    
-    if (isSelectionEnabled)
-    {                      
-      //System.out.println("XSDComponentViewer.setSelection(" + component + ")");
-      List editPartList = new ArrayList();    
-      StructuredSelection selection = new StructuredSelection();
-      if (component instanceof XSDElementDeclaration || 
-          component instanceof XSDSchema ||
-          component instanceof XSDModelGroup ||        
-          component instanceof XSDModelGroupDefinition ||
-          component instanceof XSDComplexTypeDefinition)
-      {                     
-        if (component != null)
-        {
-          EditPart editPart = getEditPart(inheritanceViewerRootEditPart, component);    
-          if (editPart != null)
-          { 
-            // TODO ... take a look at this to figure our why a newly added component
-            // seems to have the wrong bounds at this point... is this a layout issue?           
-            // As a temp hack I'm ignoring the selection of component with bounds (x, y) == (0, 0)
-            // Perhaps a delayed selection is required?
-            Rectangle bounds = ((GraphicalEditPart)editPart).getFigure().getBounds();
-            if (bounds.x > 0 || bounds.y > 0)
-            {
-              editPartList.add(editPart); 
-            }
-          } 
-        }    
-      }              
-      setSelection(new StructuredSelection(editPartList));
-    }
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.gef.ui.parts.AbstractEditPartViewer#hookControl()
-   */
-  protected void hookControl()
-  {
-    super.hookControl();
-    inheritanceViewerRootEditPart = new SubstitutionGroupViewerRootEditPart();
-    setContents(inheritanceViewerRootEditPart);
-  }
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDSubstitutionGroupChildUtility.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDSubstitutionGroupChildUtility.java
deleted file mode 100644
index 9fa84bd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDSubstitutionGroupChildUtility.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.xsd.XSDElementDeclaration;
-
-/**
- * @author ernest
- *
- * To change this generated comment go to 
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-public class XSDSubstitutionGroupChildUtility
-{
-
-  /**
-   * @param declaration
-   * @return List
-   */
-  public static List getModelChildren(XSDElementDeclaration declaration)
-  {
-    ArrayList children = new ArrayList();
-    List substitutionGroup = declaration.getSubstitutionGroup();
-    for (int i = 0, size = substitutionGroup.size(); i < size; i++)
-    {
-      XSDElementDeclaration element = (XSDElementDeclaration) substitutionGroup.get(i);
-      if (declaration.equals(element.getSubstitutionGroupAffiliation()))
-      {
-        children.add(element);
-      }
-    }
-    return children;
-    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDSubstitutionGroupsViewer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDSubstitutionGroupsViewer.java
deleted file mode 100644
index 5598fdf..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/XSDSubstitutionGroupsViewer.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
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph;
-             
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.wst.xsd.ui.internal.XSDEditor;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.SubstitutionGroupViewerRootEditPart;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDSchema;
-
-
-public class XSDSubstitutionGroupsViewer extends BaseGraphicalViewer
-{               
-  protected SubstitutionGroupViewerRootEditPart subGroupViewerRootEditPart;
-  public XSDSubstitutionGroupsViewer(XSDEditor editor, ISelectionProvider menuSelectionProvider)
-  {
-    super(editor, menuSelectionProvider);       
-  }        
-
-  public void setInput(XSDConcreteComponent component)
-  {               
-    if (isInputEnabled)
-    {
-      input = null;         
-
-      if (component instanceof XSDElementDeclaration || 
-          component instanceof XSDSchema)
-      {            
-        input = component;
-      }
-      
-      subGroupViewerRootEditPart.setInput(input);       
-    }
-  }     
-
-  public void setSelection(XSDConcreteComponent component)
-  {                    
-    if (isSelectionEnabled)
-    {                      
-      //System.out.println("XSDComponentViewer.setSelection(" + component + ")");
-      List editPartList = new ArrayList();    
-      StructuredSelection selection = new StructuredSelection();
-      if (component instanceof XSDElementDeclaration || 
-          component instanceof XSDSchema ||
-          component instanceof XSDModelGroup ||        
-          component instanceof XSDModelGroupDefinition ||
-          component instanceof XSDComplexTypeDefinition)
-      {                     
-        if (component != null)
-        {
-          EditPart editPart = getEditPart(subGroupViewerRootEditPart, component);    
-          if (editPart != null)
-          { 
-            // TODO ... take a look at this to figure our why a newly added component
-            // seems to have the wrong bounds at this point... is this a layout issue?           
-            // As a temp hack I'm ignoring the selection of component with bounds (x, y) == (0, 0)
-            // Perhaps a delayed selection is required?
-            Rectangle bounds = ((GraphicalEditPart)editPart).getFigure().getBounds();
-            if (bounds.x > 0 || bounds.y > 0)
-            {
-              editPartList.add(editPart); 
-            }
-          } 
-        }    
-      }              
-      setSelection(new StructuredSelection(editPartList));
-    }
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.gef.ui.parts.AbstractEditPartViewer#hookControl()
-   */
-  protected void hookControl()
-  {
-    super.hookControl();
-    subGroupViewerRootEditPart = new SubstitutionGroupViewerRootEditPart();
-    setContents(subGroupViewerRootEditPart);
-  }
-
-}
-
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/BaseEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/BaseEditPart.java
deleted file mode 100644
index f98da1a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/BaseEditPart.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-                                 
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.GraphicsConstants;
-import org.eclipse.wst.xsd.ui.internal.graph.model.ModelAdapterListener;
-import org.eclipse.wst.xsd.ui.internal.graph.model.XSDModelAdapterFactory;
-
-
-public abstract class BaseEditPart extends AbstractGraphicalEditPart implements ModelAdapterListener, GraphicsConstants, IFeedbackHandler
-{
-	protected boolean isSelected = false;
-	/**
-	 * Activates the <code>EditPart</code> by setting the
-	 * appropriate flags, and activating its children.
-	 * activation signals to the EditPart that is should start observing
-	 * it's model, and that is should support editing at this time.
-	 * An EditPart will have a parent prior to activiation.
-	 * @see #deactivate()
-	 */
-	public void activate() 
-  {
-		super.activate();         
-    XSDModelAdapterFactory.addModelAdapterListener(getModel(), this);  
-	}
-	/** 
-	 * Apart from the deactivation done in super, the source
-	 * and target connections are deactivated, and the visual
-	 * part of the this is removed.
-	 *
-	 * @see #activate() 
-	 */
-	public void deactivate() 
-  {
-    XSDModelAdapterFactory.removeModelAdapterListener(getModel(), this);  
-		super.deactivate();
-	}   
-    
-  protected void createEditPolicies() 
-  {
-  }  
-
-  protected EditPart createChild(Object model) 
-  {
-    return XSDEditPartFactory.getInstance().createEditPart(this, model);
-  } 
-
-  public void propertyChanged(Object object, String property)
-  {                                                                                                  
-    refresh(); 
-  }    
-
-  //public BaseGraphicalViewer getBaseGraphicalViewer()
-  //{
-  //  return (BaseGraphicalViewer)getViewer();
-  //}
-
-  public IFigure getSelectionFigure()
-  {
-    return getFigure();
-  }
-  
-  
-  public void addFeedback()
-  {
-    isSelected = true;
-    refreshVisuals();
-  }
-
-  public void removeFeedback()
-  {
-    isSelected = false;
-    refreshVisuals();
-  }  
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/CategoryEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/CategoryEditPart.java
deleted file mode 100644
index afffaad..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/CategoryEditPart.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-                           
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.ScrollPane;
-import org.eclipse.draw2d.Viewport;
-import org.eclipse.draw2d.ViewportLayout;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.GraphicsConstants;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.SelectionHandlesEditPolicyImpl;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ContainerFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ContainerLayout;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.FillLayout;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.RoundedLineBorder;
-import org.eclipse.wst.xsd.ui.internal.graph.model.Category;
-
-
-public class CategoryEditPart extends BaseEditPart
-{
-  protected ScrollPane scrollpane;
-  protected Label label;
-  protected ContainerFigure outerPane, r;
-  protected SelectionHandlesEditPolicyImpl selectionHandlesEditPolicy;
-
-  public int getType()
-  {
-    return ((Category)getModel()).getGroupType();
-  }
-
-  protected IFigure createFigure()
-  {           
-    outerPane = new ContainerFigure();    
-    outerPane.setBorder(new RoundedLineBorder(1, 6));
-    outerPane.setForegroundColor(categoryBorderColor);
-
-    r = new ContainerFigure();  
-    r.setOutline(false);
-    r.setMinimumSize(new Dimension(0, 0));
-    r.setFill(true);
-    r.setBackgroundColor(GraphicsConstants.elementBackgroundColor);
-    outerPane.add(r);
-    
-    int minHeight = 250;
-    switch (getType())
-    {
-    	case Category.DIRECTIVES :
-		case Category.NOTATIONS :
-		{
-			minHeight = 50;
-			break;	
-		}
-		case Category.ATTRIBUTES :
-		case Category.GROUPS :		  
-		{
-			minHeight = 100;
-			break;
-		}
-    }
-    
-	final int theMinHeight = minHeight;
-    FillLayout outerLayout = new FillLayout()
-    {
-      protected Dimension calculatePreferredSize(IFigure parent, int width, int height)
-      {
-        Dimension d = super.calculatePreferredSize(parent, width, height);
-        d.union(new Dimension(100, theMinHeight));
-        return d;
-      }
-    };
-    //outerLayout.setHorizontal(false);
-    outerPane.setLayoutManager(outerLayout);
-    
-   
-    label = new Label();
-    label.setForegroundColor(ColorConstants.black);
-    label.setBorder(new MarginBorder(2, 4, 2, 4));
-    r.add(label); //Holder);
-
-    RectangleFigure line = new RectangleFigure();
-    line.setPreferredSize(20, 1);
-    outerPane.add(line);
-
-
-    scrollpane = new ScrollPane();
-    scrollpane.setForegroundColor(ColorConstants.black);
-    scrollpane.setVerticalScrollBarVisibility(ScrollPane.AUTOMATIC); //ScrollPane.ALWAYS);
-    outerPane.add(scrollpane);
-
-    ContainerFigure pane = new ContainerFigure();
-    pane.setBorder(new MarginBorder(5, 8, 5, 8));
-    ContainerLayout layout = new ContainerLayout();
-    layout.setHorizontal(false);
-    layout.setSpacing(0);
-    pane.setLayoutManager(layout);
-
-    Viewport viewport = new Viewport();
-    viewport.setContentsTracksHeight(true);
-    ViewportLayout viewportLayout = new ViewportLayout()
-    {
-      protected Dimension calculatePreferredSize(IFigure parent, int width, int height)
-      {
-        Dimension d = super.calculatePreferredSize(parent, width, height);
-        d.height = Math.min(d.height, theMinHeight - 25); //getViewer().getControl().getBounds().height);
-        return d;
-      }
-    };
-    viewport.setLayoutManager(viewportLayout);
-
-    scrollpane.setViewport(viewport);
-    scrollpane.setContents(pane);
-
-    return outerPane;
-  }  
-
-  protected List getModelChildren() 
-  {            
-    return ((Category)getModel()).getChildren();
-  }  
-        
-  public void refreshVisuals()
-  {
-    outerPane.setBorder(new RoundedLineBorder(isSelected ? ColorConstants.black : categoryBorderColor, isSelected ? 1 : 1, 6));
-    outerPane.repaint();
-// Uncomment this for coloured titles
-//    r.setBackgroundColor(isSelected ? ColorConstants.blue : GraphicsConstants.elementBackgroundColor);
-//    label.setForegroundColor(isSelected ? ColorConstants.white : ColorConstants.black);
-//    r.repaint();
-//    outerPane.setForegroundColor(isSelected ? ColorConstants.black : elementBorderColor);
-    
-    Category category = (Category)getModel();
-    // temp hack --- added empty space to make the min width of groups bigger  
-    label.setText("  " + category.getName() + "                                                    ");
-  } 
-  
-  public ScrollPane getScrollPane()
-  {
-    return scrollpane;
-  }
-  
-  public IFigure getContentPane()
-  {
-    return scrollpane.getContents();
-  }  
-
-  public void scrollTo(AbstractGraphicalEditPart topLevel)
-  {
-    Rectangle topLevelBounds = topLevel.getFigure().getBounds();
-    Rectangle categoryBounds = getFigure().getBounds();
-    int scrollValue = scrollpane.getVerticalScrollBar().getValue();
-    int location = topLevelBounds.y + scrollValue - categoryBounds.y;
-    scrollpane.scrollVerticalTo(location - categoryBounds.height/2);
-  }
-
-  protected EditPart createChild(Object model)
-  {
-    EditPart editPart = new TopLevelComponentEditPart();
-    editPart.setModel(model);
-    editPart.setParent(this);
-    return editPart;
-  }
-  
-  protected void createEditPolicies()
-  { 
-    selectionHandlesEditPolicy = new SelectionHandlesEditPolicyImpl();
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, selectionHandlesEditPolicy);   
-  }  
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ComplexTypeDefinitionEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ComplexTypeDefinitionEditPart.java
deleted file mode 100644
index daac88d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ComplexTypeDefinitionEditPart.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-                                      
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.gef.requests.LocationRequest;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDChildUtility;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDGraphUtil;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.ComponentNameDirectEditManager;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.SimpleDirectEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.CenteredIconFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ContainerFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.FillLayout;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.GraphNodeFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.RoundedLineBorder;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-
-              
-
-public class ComplexTypeDefinitionEditPart extends GraphNodeEditPart
-{
-  protected ContainerFigure contentFigure;   
-  protected Label label;     
-  protected SimpleDirectEditPolicy simpleDirectEditPolicy = new SimpleDirectEditPolicy();
-  protected CenteredIconFigure centeredIconFigure;  
-  protected RectangleFigure preceedingSpace;  
-  protected ContainerFigure contentPane;
-
-  public XSDComplexTypeDefinition getXSDComplexTypeDefinition()
-  {         
-    return (XSDComplexTypeDefinition)getModel();
-  }  
-
-  protected boolean isConnectedEditPart()
-  {
-    return false;
-  } 
-
-  protected GraphNodeFigure createGraphNodeFigure()  
-  {
-    XSDComplexTypeDefinition ctd = (XSDComplexTypeDefinition)getModel();
-    GraphNodeFigure figure = new GraphNodeFigure();
-
-    figure.getOutlinedArea().setBorder(new RoundedLineBorder(1, 6));
-    figure.getOutlinedArea().setFill(true);
-    figure.getOutlinedArea().setLayoutManager(new FillLayout(true));
-
-    figure.getInnerContentArea().getContainerLayout().setHorizontal(true);
-
-    preceedingSpace = new RectangleFigure();
-    preceedingSpace.setVisible(false);
-    figure.getInnerContentArea().add(preceedingSpace, 0);
-
-    contentPane = new ContainerFigure();
-    contentPane.getContainerLayout().setHorizontal(false); 
-    contentPane.getContainerLayout().setSpacing(5);   
-    contentPane.setBorder(new MarginBorder(5, 5, 5, 5));
-    figure.getInnerContentArea().add(contentPane);
-    
-    label = new Label();    
-    label.setBorder(new MarginBorder(0, 5, 5, 5));
-    figure.getIconArea().add(label);     
-    label.setFont(mediumBoldFont);
- 
-    figure.getInnerContentArea().getContainerLayout().setSpacing(5);   
-    figure.getInnerContentArea().setBorder(new MarginBorder(5, 5, 5, 5));
-    
-    return figure;
-  }      
-                                                                    
-  protected EditPart createChild(Object model) 
-  {   
-    EditPart editPart = null;                                     
-    if (model == getModel())
-    {
-      editPart = new ComplexTypeInheritedContentEditPart();
-      editPart.setModel(model);
-      editPart.setParent(this);
-    }
-    else
-    {
-      editPart = super.createChild(model);
-    }            
-    return editPart;
-  } 
-
-  protected List getModelChildren() 
-  {                           
-    List list = new ArrayList();
-
-    XSDComplexTypeDefinition ct = (XSDComplexTypeDefinition)getModel();
-
-    if (ct.getDerivationMethod().getName().equals("extension"))
-    {
-      list.add(getModel());
-    }  
-
-    list.addAll(XSDChildUtility.getModelChildren(getModel()));
-    return list;
-  }
-
-  public IFigure getContentPane()  
-  {
-    return contentPane;
-  }
-                        
-  protected void refreshVisuals()
-  { 
-    XSDComplexTypeDefinition ctd = (XSDComplexTypeDefinition)getModel();                   
-
-    String name = ctd.getName();
-    if (name == null)
-    {
-      try
-      {
-        if (label != null)
-        {
-          graphNodeFigure.getIconArea().remove(label);
-        }
-        label = null;
-      }
-      catch (Exception e)
-      {
-      }
-    }
-    else
-    {
-      if (label == null)
-      {
-        label = new Label();    
-        label.setBorder(new MarginBorder(0, 5, 5, 5));
-        ((GraphNodeFigure)getFigure()).getIconArea().add(label);     
-        label.setFont(mediumBoldFont);
-      }
-      graphNodeFigure.getIconArea().add(label);
-      label.setText(name);
-    }
-
-    // provides some room if we need to draw lines for the inherited
-    boolean includesInheritedContent = getModelChildren().contains(getModel());
-    preceedingSpace.setPreferredSize(includesInheritedContent ? new Dimension(10, 1) : new Dimension(0, 0));
-
-    if (XSDGraphUtil.isEditable(getModel()))
-    { 
-      graphNodeFigure.setForegroundColor(isSelected ? ColorConstants.black : elementBorderColor);
-      if (label != null)
-      label.setForegroundColor(elementBorderColor);
-    }
-    else
-    {
-      graphNodeFigure.setForegroundColor(isSelected ? ColorConstants.black : readOnlyBorderColor);
-      if (label != null)
-      label.setForegroundColor(readOnlyBorderColor);
-    }
-  }
-             
-  protected void performDirectEdit()
-  {  
-    ComponentNameDirectEditManager manager = new ComponentNameDirectEditManager(this, label, (XSDComplexTypeDefinition)getModel());   
-    simpleDirectEditPolicy.setDelegate(manager);
-    manager.show();
-  }    
-            
-
-  protected void createEditPolicies()
-  {  
-    super.createEditPolicies();
-  	installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, simpleDirectEditPolicy);
-  } 
-       
-
-  public void performRequest(Request request)
-  {
-  	if (request.getType() == RequestConstants.REQ_DIRECT_EDIT ||
-        request.getType() == RequestConstants.REQ_OPEN)
-    {     
-      if (XSDGraphUtil.isEditable(getModel()))
-      {                 
-        LocationRequest locationRequest = (LocationRequest)request;
-        Point p = locationRequest.getLocation();
-        
-        if (label != null && hitTest(label, p))
-        {
-  		    performDirectEdit();
-        }
-      }
-    }
-  }
-  
-  public void doEditName()
-  {
-    performDirectEdit();
-  }
-} 
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ComplexTypeInheritedContentEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ComplexTypeInheritedContentEditPart.java
deleted file mode 100644
index cfa8811..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ComplexTypeInheritedContentEditPart.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDChildUtility;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDGraphUtil;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.ComponentNameDirectEditManager;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.SimpleDirectEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ContainerFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.RoundedLineBorder;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-
-// This is a dashed box that displays the inherited content of a complex type
-//
-public class ComplexTypeInheritedContentEditPart extends BaseEditPart
-{
-  protected Label label;     
-  protected SimpleDirectEditPolicy simpleDirectEditPolicy = new SimpleDirectEditPolicy();
-  protected boolean isParentExpanded;
-               
-  public ComplexTypeInheritedContentEditPart()
-  {
-    super();
-  }   
-                 
-  public XSDComplexTypeDefinition getXSDComplexTypeDefinition()
-  {         
-    return (XSDComplexTypeDefinition)getModel();
-  }
-                  
-  protected IFigure createFigure()
-  {                            
-    ContainerFigure figure = new ContainerFigure();
-    figure.getContainerLayout().setHorizontal(false);
-    figure.getContainerLayout().setBorder(5);
-    figure.getContainerLayout().setSpacing(5);
-    figure.setBorder(new RoundedLineBorder(ColorConstants.gray, 1, 6, Graphics.LINE_DASH));
-    return figure;
-  }    
-           
-  protected List getModelChildren() 
-  {                                              
-    XSDComplexTypeDefinition ct = (XSDComplexTypeDefinition)getModel();
-
-    List list = new ArrayList();
-
-    if (ct.getDerivationMethod().getName().equals("extension") && !isParentExpanded)
-    {
-      XSDTypeDefinition type = ct.getBaseTypeDefinition();
-      Iterator iter = XSDChildUtility.getModelChildren(type).iterator();
-      boolean cont = true;
-      while (cont)
-      {
-        while (iter.hasNext())
-        {
-          list.add(0, iter.next());
-        }
-        
-        if (type instanceof XSDComplexTypeDefinition)
-        {
-          XSDComplexTypeDefinition ctd = (XSDComplexTypeDefinition)type;
-          type = ctd.getBaseTypeDefinition();
-                    
-					// defect 264957 - workbench hangs when modifying complex content
-					// Since we don't filter out the current complexType from
-					// the combobox, we can potentially have an endless loop
-					if (ctd == type)
-					{
-						cont = false;
-						break;
-					}
-
-          if (ctd.getDerivationMethod().getName().equals("extension"))
-          {
-            iter = XSDChildUtility.getModelChildren(type).iterator();
-          }
-          else
-          {
-            cont = false;
-          }
-        }
-        else
-        {
-          cont = false;
-        }
-      }
-    }
-    return list;
-  }
-
-  protected void refreshVisuals()
-  { 
-    XSDComplexTypeDefinition ctd = (XSDComplexTypeDefinition)getModel();
-    List children = getModelChildren();
-    figure.setVisible(children.size() > 0);   
-    // todo set preferredSize to 0 ?
-  }
-
-  protected void performDirectEdit()
-  {
-    // Why are we allowing direct editing when the label is null?
-    // Should remove the policy
-    if (label != null)
-    {
-      ComponentNameDirectEditManager manager = new ComponentNameDirectEditManager(this, label, (XSDComplexTypeDefinition)getModel());   
-      simpleDirectEditPolicy.setDelegate(manager);
-      manager.show();
-    }
-  }    
-            
-
-  protected void createEditPolicies()
-  {  
-    super.createEditPolicies();
-    installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, simpleDirectEditPolicy);
-  } 
-       
-
-  public void performRequest(Request request)
-  {
-    if (request.getType() == RequestConstants.REQ_DIRECT_EDIT)
-    {     
-      if (XSDGraphUtil.isEditable(getModel()))
-      {
-        performDirectEdit();
-      }
-    }
-  } 
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ComponentViewerRootEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ComponentViewerRootEditPart.java
deleted file mode 100644
index fa8d191..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ComponentViewerRootEditPart.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-                                      
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Panel;
-import org.eclipse.gef.EditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ContainerLayout;
-
-              
-
-public class ComponentViewerRootEditPart extends BaseEditPart
-{
-  protected final static String MESSAGE_PLACE_HOLDER = "MESSAGE_PLACE_HOLDER";
-  protected Object input;              
-
-  public void setInput(Object input)
-  {
-    this.input = input;
-    refreshChildren();
-  }
-
-  protected IFigure createFigure()
-  {
-    Panel panel = new Panel();
-    ContainerLayout layout = new ContainerLayout();
-    layout.setBorder(60);
-    panel.setLayoutManager(layout);
-    return panel;
-  }   
-           
-
-  protected List getModelChildren() 
-  {               
-    List list = new ArrayList();
-    if (input != null)
-    {
-      list.add(input);
-    }
-    else
-    {
-      list.add(MESSAGE_PLACE_HOLDER);
-    }
-    return list;
-  }         
-
-  protected EditPart createChild(Object model) 
-  { 
-    EditPart editPart = null;
-    if (model == MESSAGE_PLACE_HOLDER)
-    {
-      editPart = new MessageEditPart();
-      editPart.setModel(model);
-    }
-    else
-    {
-      editPart = super.createChild(model);
-    }
-    return editPart;
-  } 
-
-  protected void createEditPolicies()
-  {  
-  }             
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ElementDeclarationEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ElementDeclarationEditPart.java
deleted file mode 100644
index 1ccb786..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ElementDeclarationEditPart.java
+++ /dev/null
@@ -1,425 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-                                   
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.LineBorder;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.gef.requests.LocationRequest;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.gef.util.figures.SpacingFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDChildUtility;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDGraphUtil;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDSubstitutionGroupChildUtility;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDSubstitutionGroupsViewer;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.ComboBoxCellEditorManager;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.ComponentNameDirectEditManager;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.SimpleDirectEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.TypeReferenceDirectEditManager;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ContainerFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ExpandableGraphNodeFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.FillLayout;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.GraphNodeFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.model.XSDModelAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-              
-
-public class ElementDeclarationEditPart extends ExpandableGraphNodeEditPart
-{
-  public Label label;  
-  protected Label contentIconLabel;
-  protected Label typeValueLabel;
-  protected SimpleDirectEditPolicy simpleDirectEditPolicy = new SimpleDirectEditPolicy();
-  protected boolean isContentIconLabelSelected = false;
-
-  protected final static String ELEMENT_TYPE_PLACE_HOLDER = "ELEMENT_TYPE_PLACE_HOLDER";
-
-  public XSDParticle getXSDParticle()
-  {
-    Object o = getXSDElementDeclaration().getContainer(); 
-    return (o instanceof XSDParticle) ? (XSDParticle)o : null;
-  }        
-
-  public XSDElementDeclaration getXSDElementDeclaration()
-  {         
-    return (XSDElementDeclaration)getModel();
-  }
-     
-  protected boolean isDefaultExpanded()
-  {
-    // hack to expand up to its content.  The previous test didn't appear to work
-    int depth = 0;
-    for (EditPart part = this; part != null; part = part.getParent())
-    {
-      depth++;
-    }      
-    return depth <= 3;
-  }
-                     
-  protected GraphNodeFigure createGraphNodeFigure()
-  {
-    ExpandableGraphNodeFigure figure = new ExpandableGraphNodeFigure();
-
-    figure.getOutlinedArea().setFill(true);
-    figure.getOutlinedArea().setLayoutManager(new FillLayout());
-
-    label = new Label();    
-    figure.getIconArea().add(label);     
-    label.setFont(mediumBoldFont);
-    
-    SpacingFigure spacingFigure = new SpacingFigure();
-    figure.getIconArea().add(spacingFigure);
-    
-    contentIconLabel = new Label();
-    //contentIcon.setBorder(new MarginBorder(2, 2, 2, 10));
-    figure.getIconArea().add(contentIconLabel);
-
-    // A sneaky null check.... getViewer() does a getRoot(), but getRoot() might be null
-    // same with getParent()
-    if (getParent() != null && getRoot() != null && getViewer() instanceof XSDSubstitutionGroupsViewer)
-    {
-      figure.getOuterContentArea().getContainerLayout().setSpacing(5);
-    }
-    else
-    {  
-      RectangleFigure line = new RectangleFigure();
-      line.setPreferredSize(20, 1);   
-      figure.getOutlinedArea().add(line, 1);
-
-      figure.getInnerContentArea().setLayoutManager(new FillLayout(2));
-      figure.getInnerContentArea().setBorder(new MarginBorder(2,2,2,1));
-
-      ContainerFigure labelGroup = new ContainerFigure();   
-      Label typeLabel = new Label("type");
-      labelGroup.add(typeLabel);
-      labelGroup.setBorder(new MarginBorder(0, 4, 0, 4));      
-
-      Label equalsLabel = new Label(" = ");
-      labelGroup.add(equalsLabel);
-
-      typeValueLabel = new Label();                         
-      labelGroup.add(typeValueLabel);
-      figure.getOutlinedArea().add(labelGroup, 2);
-    }
-    return figure;
-  }          
-
-  protected ExpandableGraphNodeFigure getExpandableGraphNodeFigure()
-  {
-    return (ExpandableGraphNodeFigure)graphNodeFigure;
-  }                                            
-                    
-  protected List getModelChildren() 
-  {
-    XSDTypeDefinition typeDef = getXSDElementDeclaration().getTypeDefinition();
-    
-    // Special case simple type.   Need to add it to the list as well
-    List list = new ArrayList();
-    if (typeDef instanceof XSDSimpleTypeDefinition)
-    {
-      list.add((XSDSimpleTypeDefinition)typeDef);
-      if (getExpandableGraphNodeFigure().isExpanded())
-      {
-        list.addAll(getModelChildrenHelper());
-      }
-      return list;
-    }
-    return getExpandableGraphNodeFigure().isExpanded() ? getModelChildrenHelper() : Collections.EMPTY_LIST;
-  }  
-                       
-  protected List getModelChildrenHelper()
-  {
-    if (getViewer() instanceof XSDSubstitutionGroupsViewer)
-    {
-      return XSDSubstitutionGroupChildUtility.getModelChildren(getXSDElementDeclaration().getResolvedElementDeclaration());
-    }
-    else
-    {
-      return XSDChildUtility.getModelChildren(getXSDElementDeclaration().getResolvedElementDeclaration());
-    }
-  }           
-                
-  protected void refreshContentIcon()
-  {
-    String iconName = null;
-    XSDTypeDefinition td = getXSDElementDeclaration().getResolvedElementDeclaration().getTypeDefinition();
-
-    if (td instanceof XSDComplexTypeDefinition)
-    {
-      XSDComplexTypeDefinition complexTypeDefinition = (XSDComplexTypeDefinition)td;
-      if (complexTypeDefinition.getAttributeUses().size() > 0)
-      {
-        iconName = "icons/XSDAttribute.gif";  
-      }  
-    }  
-    Image image = iconName != null ? XSDEditorPlugin.getXSDImage(iconName) : null;
-    contentIconLabel.setIcon(image);    
-  }
-
-  protected void refreshVisuals()
-  { 
-    String text = getXSDElementDeclaration().isElementDeclarationReference() ?
-                  getXSDElementDeclaration().getResolvedElementDeclaration().getQName(getXSDElementDeclaration().getSchema()) :
-                  getXSDElementDeclaration().getName();
-
-    label.setText(text);
-    
-    ContainerFigure rectangle = graphNodeFigure.getOutlinedArea();
-    if (XSDGraphUtil.isEditable(getXSDElementDeclaration()))
-    {
-      rectangle.setBorder(new LineBorder(isSelected ? ColorConstants.black : elementBorderColor, 2));
-      rectangle.setBackgroundColor(elementBackgroundColor);
-      rectangle.setForegroundColor(elementBorderColor);
-      
-      graphNodeFigure.getInnerContentArea().setForegroundColor(ColorConstants.black);
-      if (XSDGraphUtil.isEditable(getXSDElementDeclaration().getResolvedElementDeclaration()))
-      { 
-        // give label 'editable' colour
-        graphNodeFigure.getInnerContentArea().setForegroundColor(elementLabelColor);    
-      }
-      else
-      {   
-        // give label 'read only' colour
-        graphNodeFigure.getInnerContentArea().setForegroundColor(elementBorderColor);
-      }
-      label.setBackgroundColor(elementBackgroundColor);
-      label.setForegroundColor(elementLabelColor);
-    }
-    else
-    {
-      rectangle.setBorder(new LineBorder(isSelected ? ColorConstants.black : readOnlyBorderColor, 2));
-      rectangle.setBackgroundColor(readOnlyBackgroundColor);
-      rectangle.setForegroundColor(readOnlyBorderColor);
-      graphNodeFigure.getInnerContentArea().setForegroundColor(readOnlyBorderColor);     
-      label.setBackgroundColor(readOnlyBackgroundColor);
-    }
-                                                                                   
-    if (getXSDElementDeclaration().isElementDeclarationReference())
-    {
-      label.setIcon(XSDEditorPlugin.getXSDImage("icons/GraphViewElementRef.gif"));
-      label.setBorder(new MarginBorder(0, 0, 0, 4)); 
-    }
-    else
-    {                     
-      label.setIcon(null);
-      label.setBorder(new MarginBorder(0, 6, 0, 4));
-    }
-    
-    if (getXSDParticle() != null)
-    { 
-      refreshOccurenceLabel(getXSDParticle().getMinOccurs(), getXSDParticle().getMaxOccurs());
-    }                      
-     
-   
-    if (typeValueLabel != null)
-    {
-      XSDElementDeclaration ed = getXSDElementDeclaration();
-      if (ed.getElement() != null)
-      {
-        String type = ed.getElement().getAttribute("type");
-        if (type == null)
-        {
-          type = "";
-        }
-        if (!getXSDElementDeclaration().isElementDeclarationReference())
-				{   
-          typeValueLabel.setText(type.equals("") ? "<anonymous>" : type);
-				}
-        else // if it is a ref, we show the resolved type
-        {
-        	String resolvedType = "";
-        	if (ed.getResolvedElementDeclaration() != null)
-        	{
-        		if (ed.getResolvedElementDeclaration().getTypeDefinition() != null)
-        	  {
-        	    resolvedType = ed.getResolvedElementDeclaration().getTypeDefinition().getQName(ed.getSchema());
-              
-              // if null, it has an anonymous type that has no resolved type
-              if (resolvedType == null)
-              {
-                resolvedType = "<anonymous>";
-              }
-        	  }
-        	}
-          typeValueLabel.setText(resolvedType);
-				}
-      }
-    }
-    refreshContentIcon();
-  } 
- 
-                                                                        
-  public void performRequest(Request request)
-  {
-  	if (request.getType() == RequestConstants.REQ_DIRECT_EDIT ||
-        request.getType() == RequestConstants.REQ_OPEN)
-    {                                        
-      if (XSDGraphUtil.isEditable(getXSDElementDeclaration()))
-      {
-        if (request instanceof LocationRequest)
-        {
-          LocationRequest locationRequest = (LocationRequest)request;
-          Point p = locationRequest.getLocation();
-          isContentIconLabelSelected = false;
-          
-          if (hitTest(label, p))
-          {
-  		      performDirectEditForLabel();
-          }
-          else if (hitTest(typeValueLabel, p))
-          {                             
-   		      performDirectEditForTypeValueLabel();
-          }
-        }
-      }
-    }
-  } 
-         
-  private void performDirectEditForTypeValueLabel()
-  {
-		if (!getXSDElementDeclaration().isElementDeclarationReference())
-		{    
-      TypeReferenceDirectEditManager manager = new TypeReferenceDirectEditManager(this, getXSDElementDeclaration(), typeValueLabel);   
-      simpleDirectEditPolicy.setDelegate(manager);
-      manager.show();
-		}
-		// just ignore type edit for element ref's
-  }                                                                
-
-                                                       
-  private void performDirectEditForLabel()
-  {    
-    if (getXSDElementDeclaration().isElementDeclarationReference())   
-    {
-      ComboBoxCellEditorManager manager = new ComboBoxCellEditorManager(this, label)
-      {
-         protected List computeComboContent()
-         {             
-           XSDSchema schema = getXSDElementDeclaration().getSchema();
-           List globalElementNameList = new ArrayList();
-           if (schema != null)
-           {
-             TypesHelper typesHelper = new TypesHelper(schema);
-             globalElementNameList = typesHelper.getGlobalElements();
-           }                                           
-           return globalElementNameList;
-         }
-
-         public void performModify(String value)
-         { 
-           getXSDElementDeclaration().getElement().setAttribute("ref", value);
-         }
-      };
-      simpleDirectEditPolicy.setDelegate(manager);
-      manager.show();
-    }
-    else
-    {
-      ComponentNameDirectEditManager manager = new ComponentNameDirectEditManager(this, label, getXSDElementDeclaration());   
-      simpleDirectEditPolicy.setDelegate(manager);
-      manager.show();
-    }
-  }                                
-  
-
-  protected void createEditPolicies()
-  {  
-    super.createEditPolicies();
-  	installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, simpleDirectEditPolicy);
-  }
-  
-  
-  public void activate() 
-  {
-    super.activate();
-    if (getXSDParticle() != null)
-    {
-      XSDModelAdapterFactory.addModelAdapterListener(getXSDParticle(), this);
-    }
-  }
-  /** 
-   * Apart from the deactivation done in super, the source
-   * and target connections are deactivated, and the visual
-   * part of the this is removed.
-   *
-   * @see #activate() 
-   */
-  public void deactivate() 
-  {
-    if (getXSDParticle() != null)
-    {
-      XSDModelAdapterFactory.removeModelAdapterListener(getXSDParticle(), this);
-    }
-    super.deactivate();
-  }   
-
-  public boolean isContentIconLabelSelected()
-  {
-    return isContentIconLabelSelected;
-  }
-
-  protected void addChildVisual(EditPart childEditPart, int index)
-  {
-    IFigure child = ((GraphicalEditPart)childEditPart).getFigure();
-    if (childEditPart instanceof SimpleTypeDefinitionEditPart)
-    {
-      graphNodeFigure.getIconArea().add(child, index+ 1);
-      SpacingFigure spacingFigure = new SpacingFigure();
-      graphNodeFigure.getIconArea().add(spacingFigure, index+1);
-    }
-    else
-    {
-      getContentPane().add(child, index);
-    }
-  }
-  
-  protected void removeChildVisual(EditPart childEditPart)
-  {
-    IFigure child = ((GraphicalEditPart)childEditPart).getFigure();
-    if (childEditPart instanceof SimpleTypeDefinitionEditPart)
-    {
-      graphNodeFigure.getIconArea().remove(child);
-    }    
-    else
-    {
-      super.removeChildVisual(childEditPart);
-    }
-  }
-
-  public void doEditName()
-  {
-    ComponentNameDirectEditManager manager = new ComponentNameDirectEditManager(this, label, getXSDElementDeclaration());
-    simpleDirectEditPolicy.setDelegate(manager);
-    manager.show();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ExpandableGraphNodeEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ExpandableGraphNodeEditPart.java
deleted file mode 100644
index 1ad4057..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ExpandableGraphNodeEditPart.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-                                        
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.ActionEvent;
-import org.eclipse.draw2d.ActionListener;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.LayoutManager;
-import org.eclipse.draw2d.MouseEvent;
-import org.eclipse.draw2d.MouseListener;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ExpandableGraphNodeFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.GraphNodeFigure;
-
-                  
-
-public abstract class ExpandableGraphNodeEditPart extends RepeatableGraphNodeEditPart implements MouseListener, ActionListener
-{
-  protected boolean needToPerformDefaultExpansion = true;
-   
-  protected GraphNodeFigure createGraphNodeFigure()
-  {
-    return new ExpandableGraphNodeFigure();     
-  }
-
-  protected void addGraphNodeFigureListeners()
-  {                                                                    
-    getExpandableGraphNodeFigure().getInteractor().addMouseListener(this); 
-  }  
-            
-  protected ExpandableGraphNodeFigure getExpandableGraphNodeFigure()
-  {
-    return (ExpandableGraphNodeFigure)graphNodeFigure;
-  } 
-
-  public IFigure getContentPane()  
-  {
-    return getExpandableGraphNodeFigure().getOuterContentArea();
-  }
-    
-  protected boolean isDefaultExpanded()
-  {
-    return false;
-  }
-
-  protected boolean hasChildren()
-  {
-    return getModelChildrenHelper().size() > 0;
-  }         
-
-  protected abstract List getModelChildrenHelper();
-      
-
-  protected List getModelChildren() 
-  {                                                                             
-    return getExpandableGraphNodeFigure().isExpanded() ? getModelChildrenHelper() : Collections.EMPTY_LIST;
-  }  
-
-  protected void refreshChildren()
-  {    
-    if (needToPerformDefaultExpansion && isDefaultExpanded())
-    {
-      needToPerformDefaultExpansion = false;   
-      performExpandOrCollapseHelper();
-
-      super.refreshChildren();
-
-      EditPart root = getRoot();
-      if (root instanceof AbstractGraphicalEditPart)
-      {         
-        getContentPane().setVisible(true); 
-                    
-        IFigure rootFigure = ((AbstractGraphicalEditPart)root).getFigure();
-        invalidateAll(rootFigure);
-        rootFigure.validate();
-        rootFigure.repaint();
-      }     
-      getExpandableGraphNodeFigure().getInteractor().repaint();
-    } 
-    else
-    {
-      super.refreshChildren(); 
-    }   
-    getExpandableGraphNodeFigure().getInteractor().setVisible(hasChildren());
-  }
-
-
-  protected void performExpandOrCollapseHelper()
-  {
-    boolean isButtonExpanded = !getExpandableGraphNodeFigure().isExpanded();
-    getExpandableGraphNodeFigure().setExpanded(isButtonExpanded);
-  }
-
-  public void doPerformExpandOrCollapse()
-  {
-    performExpandOrCollapse();
-  }  
-  
-  public boolean isExpanded()
-  {
-    return getExpandableGraphNodeFigure().isExpanded();
-  }
-
-  protected void performExpandOrCollapse()
-  {
-    performExpandOrCollapseHelper();                              
-
-    boolean isButtonExpanded = getExpandableGraphNodeFigure().isExpanded();
-
-    refreshChildren();
-
-    EditPart root = getRoot();
-    if (root instanceof AbstractGraphicalEditPart)
-    {         
-      getContentPane().setVisible(isButtonExpanded); 
-                       
-      IFigure rootFigure = ((AbstractGraphicalEditPart)root).getFigure();
-      invalidateAll(rootFigure);
-      rootFigure.validate();
-      rootFigure.repaint();
-    }      
-    getExpandableGraphNodeFigure().getInteractor().repaint();
-  }
-
-  
-  protected void refreshOccurenceLabel(int min, int max)
-  {
-    super.refreshOccurenceLabel(min, max);
-
-    // TODO: revisit the 'hack' to understand why we need to do this 
-    // in order to get the view to layout propetly
-    //
-    IFigure thisFigure = getFigure();
-    invalidateAll(thisFigure);
-    thisFigure.validate();
-    thisFigure.repaint();
-  }
-
-  protected void invalidateAll(IFigure figure)
-  {
-    figure.invalidate();   
-    LayoutManager manager = figure.getLayoutManager();
-    if (manager != null)
-    {
-      manager.invalidate();
-    }
-    for (Iterator i = figure.getChildren().iterator(); i.hasNext(); )
-    {
-      IFigure child = (IFigure)i.next();
-      invalidateAll(child);
-    }
-  } 
-
-  
-  // implements MouseListener
-  // 
-  public void mouseDoubleClicked(MouseEvent me) 
-  {
-  }
-
-  public void mousePressed(MouseEvent me) 
-  {                             
-    me.consume();
-    needToPerformDefaultExpansion = false;
-    performExpandOrCollapse();  
-  }
-
-  public void mouseReleased(MouseEvent me) 
-  {
-  } 
-
-  public void actionPerformed(ActionEvent event) 
-  {                      
-    performExpandOrCollapse();
-  }   
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/GraphNodeEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/GraphNodeEditPart.java
deleted file mode 100644
index ce6ad0a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/GraphNodeEditPart.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-                                        
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.DragTracker;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.requests.LocationRequest;
-import org.eclipse.wst.xsd.ui.internal.gef.util.figures.ConnectedEditPartFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.GraphNodeDragTracker;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.SelectionHandlesEditPolicyImpl;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.GraphNodeFigure;
-
-              
-
-public abstract class GraphNodeEditPart extends BaseEditPart
-{
-  protected GraphNodeFigure graphNodeFigure;
-  protected SelectionHandlesEditPolicyImpl selectionHandlesEditPolicy;
-                                 
-  protected boolean isConnectedEditPart()
-  {
-    return true;
-  }
-
-  protected IFigure createFigure()
-  {                           
-    IFigure result = graphNodeFigure = createGraphNodeFigure();    
-    addGraphNodeFigureListeners();
-
-    if (isConnectedEditPart())
-    {
-      ConnectedEditPartFigure connectedEditPartFigure = createConnectedEditPartFigure();                                    
-      connectedEditPartFigure.add(graphNodeFigure);
-      result = connectedEditPartFigure;
-    }
-    return result;
-  }       
-           
-  protected ConnectedEditPartFigure createConnectedEditPartFigure()
-  {
-    ConnectedEditPartFigure connectedEditPartFigure = new ConnectedEditPartFigure(this)
-    {
-      public IFigure getSelectionFigure()
-      {
-        return graphNodeFigure.getOutlinedArea();
-      }
-
-      public IFigure getConnectionFigure()
-      {
-        return graphNodeFigure.getConnectionFigure();
-      }
-    };
-    return connectedEditPartFigure;
-  }                                
-
-  protected abstract GraphNodeFigure createGraphNodeFigure();           
-  
-  protected void addGraphNodeFigureListeners()
-  {
-  }
- 
-  public IFigure getSelectionFigure()
-  {
-    return graphNodeFigure.getOutlinedArea();
-  }
-
-  public Rectangle getConnectionRectangle()
-  {
-    return graphNodeFigure.getConnectionRectangle();
-  }
-
-  protected void createEditPolicies()
-  { 
-    //installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new NonResizableEditPolicy());    
-    selectionHandlesEditPolicy = new SelectionHandlesEditPolicyImpl();
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, selectionHandlesEditPolicy);   
-  }  
-
-  public DragTracker getDragTracker(Request request)
-  {
-    return new GraphNodeDragTracker((EditPart)this);
-  }   
-
- protected EditPart getApplicableEditPart(EditPart editPart, Point p)
-  {        
-    while (true)
-    {    
-      EditPart parent = null;
-      if (editPart instanceof GraphNodeEditPart)
-      {                                  
-        IFigure f = ((GraphNodeEditPart)editPart).getSelectionFigure();
-        if (!hitTest(f, p))
-        {                                 
-          parent = editPart.getParent();        
-        }             
-      }   
-
-      if (parent != null)
-      {
-        editPart = parent;
-      }                   
-      else
-      {
-        break;
-      }
-    }         
-    return editPart;
-  }
-
-  public EditPart getTargetEditPart(Request request)   
-  { 
-    EditPart editPart = null;
-    if (request.getType() == REQ_SELECTION)
-    {                                                                       
-      if (request instanceof LocationRequest)
-      {
-        LocationRequest locationRequest = (LocationRequest)request;
-        Point p = locationRequest.getLocation();
-        editPart = getApplicableEditPart(this, p);
-      }
-    }
-    return (editPart != null) ? editPart : super.getTargetEditPart(request);
-  }   
-
-  public boolean hitTest(IFigure target, Point location)
-  {
-    Rectangle b = target.getBounds().getCopy();
-    target.translateToAbsolute(b);  
-    return b.contains(location);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/IFeedbackHandler.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/IFeedbackHandler.java
deleted file mode 100644
index 24a0537..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/IFeedbackHandler.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-
-public interface IFeedbackHandler
-{
-  public void addFeedback();
-  public void removeFeedback();
-}              
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/MessageEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/MessageEditPart.java
deleted file mode 100644
index bbb7f92..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/MessageEditPart.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-                          
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-
-              
-
-public class MessageEditPart extends BaseEditPart
-{
-  public MessageEditPart()
-  {
-  }   
-  
-  protected IFigure createFigure()
-  {                            
-    Label label = new Label(XSDEditorPlugin.getXSDString("_UI_GRAPH_VIEW_NOT_AVAILABLE"));         
-    return label;
-  }    
-
-  protected List getModelChildren() 
-  {                  
-    return Collections.EMPTY_LIST;
-  }   
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ModelGroupDefinitionEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ModelGroupDefinitionEditPart.java
deleted file mode 100644
index af5804a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ModelGroupDefinitionEditPart.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-                                      
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDChildUtility;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDGraphUtil;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.ComboBoxCellEditorManager;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.ComponentNameDirectEditManager;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.SimpleDirectEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.GraphNodeFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.RepeatableGraphNodeFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.RoundedLineBorder;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDSchema;
-
-              
-public class ModelGroupDefinitionEditPart extends RepeatableGraphNodeEditPart
-{
-  protected Label label;     
-  protected SimpleDirectEditPolicy simpleDirectEditPolicy = new SimpleDirectEditPolicy();
-
-  public XSDModelGroupDefinition getXSDModelGroupDefinition()
-  {
-    return (XSDModelGroupDefinition)getModel();
-  } 
-
-  protected boolean isConnectedEditPart()
-  {
-    return false;
-  }          
-
-  public XSDParticle getXSDParticle()
-  {                    
-    Object o = getXSDModelGroupDefinition().getContainer();
-    return (o instanceof XSDParticle) ? (XSDParticle)o : null;
-  }
-             
-  protected GraphNodeFigure createGraphNodeFigure()
-  {
-    RepeatableGraphNodeFigure figure = new RepeatableGraphNodeFigure();                                                        
-    figure.getOutlinedArea().setBorder(new RoundedLineBorder(1, 6));
-    figure.getInnerContentArea().setBorder(new MarginBorder(10, 0, 10, 0));
-
-    label = new Label();    
-    label.setFont(mediumBoldFont); 
-    figure.getIconArea().add(label);     
-
-
-    return figure;
-  }  
- 
-  public IFigure getContentPane()  
-  {
-    return graphNodeFigure.getInnerContentArea();
-  }
-           
-  protected List getModelChildren() 
-  {                                             
-    return XSDChildUtility.getModelChildren(getModel());  
-  }
-
-  protected void createEditPolicies()
-  {     
-    super.createEditPolicies();
-  	installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, simpleDirectEditPolicy);
-  }             
-             
-  protected void refreshVisuals()
-  { 
-    super.refreshVisuals();                                                                
-  
-    if (getXSDModelGroupDefinition().isModelGroupDefinitionReference())
-    {
-      label.setText(getXSDModelGroupDefinition().getResolvedModelGroupDefinition().getQName());
-      label.setIcon(XSDEditorPlugin.getXSDImage("icons/GraphViewElementRef.gif"));
-      label.setBorder(new MarginBorder(0, 0, 0, 4)); 
-
-      // todo update occurence label
-      //
-    }
-    else
-    {               
-      label.setText(getXSDModelGroupDefinition().getName());      
-      label.setIcon(null);
-      label.setBorder(new MarginBorder(0, 6, 0, 4));
-    }
-                       
-    if (XSDGraphUtil.isEditable(getModel()))
-    { 
-      graphNodeFigure.getOutlinedArea().setForegroundColor(isSelected ? ColorConstants.black : elementBorderColor);
-      label.setForegroundColor(elementLabelColor);
-    }
-    else
-    {
-      graphNodeFigure.getOutlinedArea().setForegroundColor(readOnlyBackgroundColor);
-      label.setForegroundColor(readOnlyBackgroundColor);
-    }   
-
-    refreshOccurenceLabel(getXSDParticle());
-  }
- 
-
-  protected void performDirectEdit()
-  {              
-    if (getXSDModelGroupDefinition().isModelGroupDefinitionReference())
-    {
-      ComboBoxCellEditorManager manager = new ComboBoxCellEditorManager(this, label)
-      {
-         protected List computeComboContent()
-         {             
-           XSDSchema schema = getXSDModelGroupDefinition().getSchema();
-           List nameList = new ArrayList();
-           if (schema != null)
-           {
-             TypesHelper typesHelper = new TypesHelper(schema);
-             nameList = typesHelper.getModelGroups();
-           }                                           
-           return nameList;
-         }
-
-         public void performModify(String value)
-         {  
-           Display.getCurrent().asyncExec(new DelayedModelGroupRenameAction(getXSDModelGroupDefinition(), value));
-         }
-      };                                          
-      simpleDirectEditPolicy.setDelegate(manager);
-      manager.show();
-    }
-    else 
-    {
-      ComponentNameDirectEditManager manager = new ComponentNameDirectEditManager(this, label, getXSDModelGroupDefinition());           
-      simpleDirectEditPolicy.setDelegate(manager);
-      manager.show();
-    }
-  }  
-       
-
-  protected class DelayedModelGroupRenameAction implements Runnable
-  {
-     XSDModelGroupDefinition modelGroupDefinition;                                     
-     String value;
-
-     DelayedModelGroupRenameAction(XSDModelGroupDefinition modelGroupDefinition, String value)
-     {
-       this.modelGroupDefinition = modelGroupDefinition;
-       this.value = value;
-     }
-
-     public void run()
-     {
-       modelGroupDefinition.getElement().setAttribute("ref", value);
-     }
-  }
-    
-
-  public void performRequest(Request request)
-  {
-  	if (request.getType() == RequestConstants.REQ_DIRECT_EDIT)
-    {     
-      if (XSDGraphUtil.isEditable(getModel()))
-      {
-  		  performDirectEdit();
-      }
-    }
-  }    
- 
-  // TODO... I added this as a quick fix to makesure the title gets redrawn when the groupRef is changed
-  // we should probably fix the ModelListenerUtil to fire both call both 'change' methods for the ref property
-  //public void modelChildrenChanged()
-  //{   
-  //  super.modelChildrenChanged();                                              
-  //  refreshVisuals(); 
-  //} 
-
-  public void doEditName()
-  {
-    ComponentNameDirectEditManager manager = new ComponentNameDirectEditManager(this, label, getXSDModelGroupDefinition());           
-    simpleDirectEditPolicy.setDelegate(manager);
-    manager.show();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ModelGroupEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ModelGroupEditPart.java
deleted file mode 100644
index b793eba..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ModelGroupEditPart.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-                          
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDChildUtility;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDGraphUtil;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.DragAndDropEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.CenteredIconFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ContainerFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ExpandableGraphNodeFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.GraphNodeFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.RoundedLineBorder;
-import org.eclipse.wst.xsd.ui.internal.graph.model.XSDModelAdapterFactory;
-import org.eclipse.xsd.XSDCompositor;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDParticle;
-
-              
-
-public class ModelGroupEditPart extends ExpandableGraphNodeEditPart
-{
-  protected CenteredIconFigure centeredIconFigure;
- 
-  protected static Color editableBackgroundColor = null;
-  protected static Color editableForegroundColor = null;
-  protected static Color nonEditableForegroundColor = null;
-
-  public XSDParticle getXSDParticle()
-  {                    
-    Object o = getXSDModelGroup().getContainer();
-    return (o instanceof XSDParticle) ? (XSDParticle)o : null;
-  }
-
-  public XSDModelGroup getXSDModelGroup()
-  {
-    return (XSDModelGroup)getModel();
-  }           
-
-  protected GraphNodeFigure createGraphNodeFigure()
-  {
-    ExpandableGraphNodeFigure figure = new ExpandableGraphNodeFigure();      
-
-    centeredIconFigure = new CenteredIconFigure();
-    centeredIconFigure.setPreferredSize(new Dimension(32, 20)); 
-    //centeredIconFigure.setBackgroundColor(new Color(Display.getCurrent(), 255, 0, 0)); 
-    figure.getIconArea().add(centeredIconFigure);   
-    //figure.getIconArea().setLayout(new CenterLayout());
-
-    ContainerFigure outlinedArea = figure.getOutlinedArea();                        
-    outlinedArea.setBorder(new RoundedLineBorder(1, 10));   
-    //outlinedArea.setPreferredSize(new Dimension(32, 20)); 
-                         
-    // set layout so that children are aligned vertically with some spacing
-    //
-    figure.getOuterContentArea().getContainerLayout().setHorizontal(false);  
-    figure.getOuterContentArea().getContainerLayout().setSpacing(10);
-
-    return figure;
-  }    
-
-  protected List getModelChildrenHelper()
-  {
-    return XSDChildUtility.getModelChildren(getXSDModelGroup());
-  }  
- 
-  protected void refreshVisuals()
-  {         
-    String iconName = "icons/XSDSequence.gif";    
-    switch (getXSDModelGroup().getCompositor().getValue())
-    {
-      case XSDCompositor.ALL   : { iconName = "icons/XSDAll.gif"; break; }
-      case XSDCompositor.CHOICE   : { iconName = "icons/XSDChoice.gif"; break; }
-      case XSDCompositor.SEQUENCE : { iconName = "icons/XSDSequence.gif"; break; }
-    }
-    centeredIconFigure.image = XSDEditorPlugin.getXSDImage(iconName);
-    centeredIconFigure.repaint();
-                                                          
-
-    ContainerFigure outlinedArea = graphNodeFigure.getOutlinedArea() ;    
-    if (XSDGraphUtil.isEditable(getXSDModelGroup()))
-    {
-      if (editableForegroundColor == null) 
-        editableForegroundColor = new Color(Display.getCurrent(), 120, 152, 184);
-
-      if (editableBackgroundColor == null) 
-        editableBackgroundColor = new Color(Display.getCurrent(), 232, 240, 248);
-       
-      outlinedArea.setForegroundColor(isSelected ? ColorConstants.black : editableForegroundColor);
-      outlinedArea.setBackgroundColor(editableBackgroundColor);
-    }
-    else
-    {                                          
-      if (nonEditableForegroundColor == null) 
-        nonEditableForegroundColor = new Color(Display.getCurrent(), 164, 164, 164);    
-        
-      outlinedArea.setForegroundColor(isSelected ? ColorConstants.black : nonEditableForegroundColor);
-      outlinedArea.setBackgroundColor(ColorConstants.white);
-    }  
-
-    refreshOccurenceLabel(getXSDParticle());
-  }        
-
-  protected boolean isChildLayoutHorizontal()
-  {
-    return false;
-  } 
-
-  protected boolean isDefaultExpanded()
-  {        
-    return isPossibleCycle() ? false : true;
-  }  
-                                                                                         
-  // This test ensures that we don't end up with an infinite default expansion (e.g. when a group contains a cyclic group ref)
-  // TODO... we probably need some more extensible 'OO' way of computing this information
-  protected boolean isPossibleCycle()
-  {        
-    boolean result = false;
-    if (getParent() instanceof ModelGroupDefinitionEditPart)
-    {                                                      
-      ModelGroupDefinitionEditPart group = (ModelGroupDefinitionEditPart)getParent();
-      for (EditPart parent = group.getParent(); parent != null; parent = parent.getParent())
-      {
-        if (parent.getModel() instanceof ElementDeclarationEditPart)
-        {
-          break;
-        }       
-        else 
-        {
-          if (parent.getModel() == group.getModel())
-          {
-            result = true;
-            break;
-          }
-        }
-      }      
-    }      
-    return result;
-  } 
-       
-  protected void createEditPolicies()
-  { 
-    super.createEditPolicies();
-    installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new DragAndDropEditPolicy(getViewer(), selectionHandlesEditPolicy));      
-  }
-  
-  public void activate() 
-  {
-    super.activate();
-    if (getXSDParticle() != null)
-    {
-      XSDModelAdapterFactory.addModelAdapterListener(getXSDParticle(), this);
-    }
-  }
-  /** 
-   * Apart from the deactivation done in super, the source
-   * and target connections are deactivated, and the visual
-   * part of the this is removed.
-   *
-   * @see #activate() 
-   */
-  public void deactivate() 
-  {
-    if (getXSDParticle() != null)
-    {
-      XSDModelAdapterFactory.removeModelAdapterListener(getXSDParticle(), this);
-    }
-    super.deactivate();
-  }   
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/RepeatableGraphNodeEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/RepeatableGraphNodeEditPart.java
deleted file mode 100644
index 6fdf7d6..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/RepeatableGraphNodeEditPart.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-                                        
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.DragAndDropEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.GraphNodeFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.RepeatableGraphNodeFigure;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDSchema;
-
-                  
-
-public class RepeatableGraphNodeEditPart extends GraphNodeEditPart
-{
-  protected RepeatableGraphNodeFigure getRepeatableGraphNodeFigure()
-  {
-    return (RepeatableGraphNodeFigure)graphNodeFigure;
-  }
-  
-  protected GraphNodeFigure createGraphNodeFigure()
-  {
-    return new RepeatableGraphNodeFigure();                                                        
-  }   
-      
-  protected void refreshOccurenceLabel(XSDParticle particle)
-  {  
-    if (particle != null)
-    { 
-      refreshOccurenceLabel(particle.getMinOccurs(), particle.getMaxOccurs());
-    }
-  }
-
-  protected void refreshOccurenceLabel(int min, int max)
-  {                     
-    if (min == 1 && max == 1)
-    {
-      getRepeatableGraphNodeFigure().getOccurenceLabel().setText("");
-    }
-    else
-    {
-      String maxString = max == -1 ? "*" : "" + max;
-      getRepeatableGraphNodeFigure().getOccurenceLabel().setText(min + ".." + maxString);
-    }
-    getRepeatableGraphNodeFigure().getOccurenceLabel().repaint();
-  }
-
-  protected void createEditPolicies()
-  { 
-    super.createEditPolicies();
-    
-    if (getModel() instanceof XSDElementDeclaration) {
-    	Object parent = ((XSDElementDeclaration) getModel()).eContainer();
-    	
-    	if (!(parent instanceof XSDSchema)) {
-    		installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new DragAndDropEditPolicy(getViewer(), selectionHandlesEditPolicy));      
-    	}
-    }
-    else {
-    	installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new DragAndDropEditPolicy(getViewer(), selectionHandlesEditPolicy));
-    }
-  }  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/RootComplexTypeDefinitionEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/RootComplexTypeDefinitionEditPart.java
deleted file mode 100644
index 853a2df..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/RootComplexTypeDefinitionEditPart.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-                                   
-import java.util.List;
-
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDChildUtility;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDGraphUtil;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDInheritanceViewer;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.ComponentNameDirectEditManager;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.SelectionHandlesEditPolicyImpl;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.SimpleDirectEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ExpandableGraphNodeFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.FillLayout;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.GraphNodeFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.RoundedLineBorder;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-
-              
-
-public class RootComplexTypeDefinitionEditPart extends ExpandableGraphNodeEditPart
-{                      
-  public Label label;  
-  protected SimpleDirectEditPolicy simpleDirectEditPolicy = new SimpleDirectEditPolicy();                              
-        
-
-  protected GraphNodeFigure createGraphNodeFigure()
-  {
-    ExpandableGraphNodeFigure figure = new ExpandableGraphNodeFigure();
-    figure.getOutlinedArea().setBorder(new RoundedLineBorder(1, 6));
-    figure.getOutlinedArea().setLayoutManager(new FillLayout());
-    figure.getOutlinedArea().setFill(true);
-    
-    if (getViewer() instanceof XSDInheritanceViewer)
-    {
-      figure.getOuterContentArea().getContainerLayout().setSpacing(10);
-    }
-
-    label = new Label();       
-    label.setFont(mediumBoldFont);
-    label.setBorder(new MarginBorder(5, 8, 5, 8));  
-    figure.getIconArea().add(label);  
-
-    return figure;
-  }          
-   
-                                                                                   
-  protected void refreshVisuals()
-  { 
-    super.refreshVisuals();                                                                
-
-    XSDComplexTypeDefinition ctd = (XSDComplexTypeDefinition)getModel();                   
-    label.setText(ctd.getName() != null ? ctd.getName(): "");
-
-    if (XSDGraphUtil.isEditable(ctd))
-    { 
-      figure.setForegroundColor(elementBorderColor);
-      label.setForegroundColor(elementBorderColor);
-    }
-    else
-    {
-      figure.setForegroundColor(readOnlyBorderColor);
-      label.setForegroundColor(readOnlyBorderColor);
-    }
-  }
-
-
-  protected List getModelChildrenHelper()
-  {
-    XSDComplexTypeDefinition ct = (XSDComplexTypeDefinition)getModel();
-    if (getViewer() instanceof XSDInheritanceViewer)
-    {
-      return XSDChildUtility.getImmediateDerivedTypes(ct);
-    }
-    else
-    {
-      return XSDChildUtility.getModelChildren(getModel());
-    }
-  }     
-
-
-  protected void createEditPolicies()
-  {  
-    SelectionHandlesEditPolicyImpl policy = new SelectionHandlesEditPolicyImpl();
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, policy);     
-  	installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, simpleDirectEditPolicy);
-  }  
-        
-
-  protected void performDirectEdit()
-  {                                  
-    ComponentNameDirectEditManager manager = new ComponentNameDirectEditManager(this, label, (XSDComplexTypeDefinition)getModel());     
-    simpleDirectEditPolicy.setDelegate(manager);
-    manager.show();
-  }    
-
-
-  public void performRequest(Request request)
-  {
-  	if (request.getType() == RequestConstants.REQ_DIRECT_EDIT)
-    {
-      if (XSDGraphUtil.isEditable(getModel()))
-      {
-  		  performDirectEdit();
-      }
-    }
-  } 
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/RootModelGroupDefinitionEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/RootModelGroupDefinitionEditPart.java
deleted file mode 100644
index 35f4486..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/RootModelGroupDefinitionEditPart.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-                                   
-import java.util.List;
-
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDChildUtility;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDGraphUtil;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.ComponentNameDirectEditManager;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.SelectionHandlesEditPolicyImpl;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.SimpleDirectEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ExpandableGraphNodeFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.FillLayout;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.GraphNodeFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.RoundedLineBorder;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-
-              
-public class RootModelGroupDefinitionEditPart extends ExpandableGraphNodeEditPart
-{                      
-  public Label label;  
-  protected SimpleDirectEditPolicy simpleDirectEditPolicy = new SimpleDirectEditPolicy();                              
-                     
-
-  protected GraphNodeFigure createGraphNodeFigure()
-  {
-    ExpandableGraphNodeFigure figure = new ExpandableGraphNodeFigure();
-    figure.getOutlinedArea().setBorder(new RoundedLineBorder(1, 6));
-    figure.getOutlinedArea().setLayoutManager(new FillLayout());
-    figure.getOutlinedArea().setFill(true);
-
-    label = new Label();       
-    label.setFont(mediumBoldFont);
-    label.setBorder(new MarginBorder(5, 8, 5, 8));  
-    figure.getIconArea().add(label);  
-
-    return figure;
-  }  
-                                                                          
-  protected void refreshVisuals()
-  { 
-    super.refreshVisuals();                                                                
-
-    XSDModelGroupDefinition mgd = (XSDModelGroupDefinition)getModel();                      
-    String name = mgd.getResolvedModelGroupDefinition().getName();                  
-    label.setText(name);
-
-    if (XSDGraphUtil.isEditable(getModel()))
-    { 
-      figure.setForegroundColor(elementBorderColor);
-      label.setForegroundColor(elementBorderColor);
-    }
-    else
-    {
-      figure.setForegroundColor(readOnlyBorderColor);
-      label.setForegroundColor(readOnlyBorderColor);
-    }
-  }  
-
-  protected List getModelChildrenHelper()
-  {
-    return XSDChildUtility.getModelChildren(getModel());
-  }   
-
-
-  protected void createEditPolicies()
-  {  
-    SelectionHandlesEditPolicyImpl policy = new SelectionHandlesEditPolicyImpl();
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, policy);     
-  	installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, simpleDirectEditPolicy);
-  }  
-        
-
-  protected void performDirectEdit()
-  {                                  
-    ComponentNameDirectEditManager manager = new ComponentNameDirectEditManager(this, label, ((XSDModelGroupDefinition)getModel()).getResolvedModelGroupDefinition());           
-    simpleDirectEditPolicy.setDelegate(manager);
-    manager.show();
-  }    
-
-
-  public void performRequest(Request request)
-  {
-  	if (request.getType() == RequestConstants.REQ_DIRECT_EDIT)
-    {
-      if (XSDGraphUtil.isEditable(getModel()))
-      {
-  		  performDirectEdit();
-      }
-    }
-  } 
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/SchemaDirectiveEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/SchemaDirectiveEditPart.java
deleted file mode 100644
index c0697d5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/SchemaDirectiveEditPart.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.CenteredIconFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ContainerFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.FillLayout;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.RoundedLineBorder;
-import org.eclipse.xsd.XSDSchemaDirective;
-
-
-public class SchemaDirectiveEditPart extends BaseEditPart
-{
-  protected CenteredIconFigure centeredIconFigure;
-  protected Label label;
-  /**
-   * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
-   */
-  protected IFigure createFigure()
-  {
- 
-    ContainerFigure figure = new ContainerFigure();
-
-    figure.setLayoutManager(new FillLayout());
-    figure.setBorder(new RoundedLineBorder(1, 8));
-
-    ContainerFigure fig = new ContainerFigure();
-    fig.setLayoutManager(new FillLayout());
-    fig.setBorder(new MarginBorder(10, 0, 10, 0));
-    figure.add(fig);
-
-
-    label = new Label();    
-    label.setBorder(new MarginBorder(4, 2, 2, 10));
-    fig.add(label);        
-
-    return figure;
-  }  
- 
-  public void refreshVisuals()
-  {
-    XSDSchemaDirective directive = (XSDSchemaDirective)getModel();
-    String schemaLocation = directive.getSchemaLocation();
-    if (schemaLocation == null) schemaLocation = "(" + XSDEditorPlugin.getXSDString("_UI_LABEL_NO_LOCATION_SPECIFIED") + ")";
-    if (schemaLocation.equals("")) schemaLocation = "(" + XSDEditorPlugin.getXSDString("_UI_LABEL_NO_LOCATION_SPECIFIED") + ")";
-    label.setText("  " + directive.getElement().getLocalName() + " " + schemaLocation);
-  } 
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/SchemaEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/SchemaEditPart.java
deleted file mode 100644
index b23821c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/SchemaEditPart.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.gef.EditPart;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.graph.GraphicsConstants;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ContainerFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.FillLayout;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.RoundedLineBorder;
-import org.eclipse.wst.xsd.ui.internal.graph.model.Category;
-import org.eclipse.wst.xsd.ui.internal.graph.model.XSDModelAdapterFactory;
-import org.eclipse.xsd.XSDSchema;
-
-public class SchemaEditPart extends BaseEditPart
-{
-  protected ContainerFigure containerFigure;
-  protected Label label;
-
-  //protected ContainerFigure childExpansionContainer;
-  public IFigure getContentPane()
-  {
-    return containerFigure;
-  }
-
-  protected IFigure createFigure()
-  {
-    ContainerFigure outer = new ContainerFigure();
-    outer.setBorder(new RoundedLineBorder(1, 6));
-    outer.setForegroundColor(categoryBorderColor);
-    FillLayout fillLayout = new FillLayout(4);
-    outer.setLayoutManager(fillLayout); 
-    //outer.getContainerLayout().setHorizontal(false);
-    
-    ContainerFigure r = new ContainerFigure();  
-    r.setOutline(false);
-    r.setMinimumSize(new Dimension(0, 0));
-    r.setFill(true);
-    r.setBackgroundColor(GraphicsConstants.elementBackgroundColor);
-    outer.add(r);
-    
-	final int theMinHeight = 200;
-    FillLayout outerLayout = new FillLayout()
-    {
-      protected Dimension calculatePreferredSize(IFigure parent, int width, int height)
-      {
-        Dimension d = super.calculatePreferredSize(parent, width, height);
-        d.union(new Dimension(100, theMinHeight));
-        return d;
-      }
-    };
-    outerLayout.setHorizontal(false);
-    outer.setLayoutManager(outerLayout);
-    
-    label = new Label();
-    label.setForegroundColor(ColorConstants.black);
-    label.setBorder(new MarginBorder(2, 4, 2, 4));    
-    r.add(label);
-    
-    RectangleFigure line = new RectangleFigure();
-    line.setPreferredSize(20, 1);
-    outer.add(line);
-    
-    containerFigure = new ContainerFigure();
-    //containerFigure.setBackgroundColor(ColorConstants.red);
-    containerFigure.setBorder(new MarginBorder(4, 4, 4, 4));
-    fillLayout = new FillLayout(4);
-    containerFigure.setLayoutManager(fillLayout);
-    //containerFigure.setLayoutManager(new FillLayout(false));
-    /*
-     * FlowLayout layout1 = new FlowLayout(false); layout1.setMajorSpacing(0);
-     * layout1.setMinorSpacing(0); layout1.setStretchMinorAxis(true);
-     * containerFigure.setLayoutManager(layout1);
-     */
-    outer.add(containerFigure);
-    //childExpansionContainer = new ContainerFigure();
-    //childExpansionContainer.getContainerLayout().setHorizontal(false);
-    //childExpansionContainer.setOutlined(true);
-    return outer;
-  }
-
-  protected List getModelChildren()
-  {
-    XSDSchema schema = (XSDSchema) getModel();
-    List list = new ArrayList();
-    list.add(CategoryRowEditPart.DIRECTIVES_AND_NOTATIONS);
-    list.add(CategoryRowEditPart.ELEMENTS_AND_TYPES);
-    list.add(CategoryRowEditPart.MODEL_GROUPS_AND_ATTRIBUTES);      
-    return list;
-  }
-
-  protected EditPart createChild(Object model)
-  {
-    CategoryRowEditPart result = new CategoryRowEditPart();
-    result.setModel(model);
-    result.setParent(this);
-    result.setSchema((XSDSchema)getModel());
-    return result;
-  }
-  
-
-  protected void refreshVisuals()
-  {
-    super.refreshVisuals();
-    String targetNamespaceValue = ((XSDSchema)getModel()).getTargetNamespace();
-    if (targetNamespaceValue == null || targetNamespaceValue.length() == 0)
-    {
-      targetNamespaceValue = XSDEditorPlugin.getXSDString("_UI_GRAPH_XSDSCHEMA_NO_NAMESPACE");
-    }     
-    label.setText(XSDEditorPlugin.getXSDString("_UI_GRAPH_XSDSCHEMA") + " : " + targetNamespaceValue);
-  }
-}
-
-class CategoryRowEditPart extends BaseEditPart
-{  
-  public static final int[] ELEMENTS_AND_TYPES = {Category.ELEMENTS, Category.TYPES };
-  public static final int[] DIRECTIVES_AND_NOTATIONS =  {Category.DIRECTIVES, Category.NOTATIONS };
-  public static final int[] MODEL_GROUPS_AND_ATTRIBUTES = {Category.GROUPS, Category.ATTRIBUTES};//, Category.COMPLEX_TYPES };
-  
-  protected XSDSchema schema;
-  protected Figure contentPane;
-  
-  protected IFigure createFigure()
-  {
-    ContainerFigure containerFigure = new ContainerFigure();
-    //containerFigure.setBackgroundColor(ColorConstants.red);
-    containerFigure.setFill(true);
-    containerFigure.setBorder(new MarginBorder(4, 4, 4, 4));
-    org.eclipse.wst.xsd.ui.internal.gef.util.figures.FillLayout fillLayout = new org.eclipse.wst.xsd.ui.internal.gef.util.figures.FillLayout(4);
-    fillLayout.setHorizontal(true);
-    containerFigure.setLayoutManager(fillLayout);
-    //containerFigure.setLayoutManager(new FillLayout(4));
-    return containerFigure;
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#getContentPane()
-   */
-  public IFigure getContentPane()
-  {
-    return super.getContentPane();
-  }
-
-  public XSDSchema getSchema()
-  {
-    return schema;
-  }
-
-  public void setSchema(XSDSchema schema)
-  {
-    this.schema = schema;
-  }
-  
-
-  protected List getModelChildren()
-  {
-    List categoryList = (List) XSDModelAdapterFactory.getAdapter(schema).getProperty(schema, "groups");
-    return filterCategoryList(categoryList);
-  }
-  
-  protected List filterCategoryList(List list)
-  {
-    List result = new ArrayList();
-    int[] categoryTypes = (int[])getModel();
-    for (Iterator i = list.iterator(); i.hasNext(); )
-    {
-      Category category = (Category)i.next();
-      if (isMatching(categoryTypes, category))
-      {
-        result.add(category);
-      }
-    }
-    return result;
-  }
-  
-  private boolean isMatching(int[] categoryTypes, Category category)
-  {
-    boolean result = false;
-    for (int i = 0; i < categoryTypes.length; i++)
-    {
-      if (categoryTypes[i] == category.getGroupType())
-      {
-        result = true;
-        break;
-      }
-    }
-    return result;
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/SimpleTypeDefinitionEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/SimpleTypeDefinitionEditPart.java
deleted file mode 100644
index 27c52e3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/SimpleTypeDefinitionEditPart.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.ImageFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MouseEvent;
-import org.eclipse.draw2d.MouseMotionListener;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.SelectionHandlesEditPolicyImpl;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.RoundedLineBorder;
-
-public class SimpleTypeDefinitionEditPart extends BaseEditPart implements MouseMotionListener
-{
-  protected Label label;
-  protected SelectionHandlesEditPolicyImpl selectionHandlesEditPolicy;
-
-  ImageFigure figure;
-  Color color;
-  
-  protected IFigure createFigure()
-  {
-    String iconName = "icons/XSDSimpleType.gif";
-    Image image = XSDEditorPlugin.getXSDImage(iconName);
-  
-    figure = new ImageFigure(image);
-    RoundedLineBorder lb = new RoundedLineBorder(1, 6);
-    figure.setOpaque(true);
-    figure.setBorder(lb);
-    figure.setBackgroundColor(ColorConstants.white);
-    figure.setForegroundColor(elementBorderColor);
-    figure.addMouseMotionListener(this);
-    return figure;
-  }
-
-  protected void refreshVisuals()
-  {
-    // figure.setBorder(new RoundedLineBorder(isSelected ? ColorConstants.black : elementBackgroundColor, 1, 6));
-    ((RoundedLineBorder)figure.getBorder()).setColor(isSelected ? ColorConstants.black : elementBackgroundColor);
-    figure.repaint();
-  }
-  
-  protected boolean isConnectedEditPart()
-  {
-    return false;
-  }
-
-  protected void createEditPolicies()
-  { 
-    selectionHandlesEditPolicy = new SelectionHandlesEditPolicyImpl();
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, selectionHandlesEditPolicy);   
-  }  
-
-  public void deactivate() 
-  {
-    figure.removeMouseMotionListener(this);
-    super.deactivate();
-    if (color != null)
-    {
-      color.dispose();
-    }
-  }
-  
-  public void mouseDragged(MouseEvent me)
-  {
-  }
-
-  public void mouseEntered(MouseEvent me)
-  {
-//    ((RoundedLineBorder)figure.getBorder()).setColor(ColorConstants.blue);
-//    figure.setBackgroundColor(elementBorderColor);
-//    figure.repaint();
-  }
-
-  public void mouseExited(MouseEvent me)
-  {
-//    ((RoundedLineBorder)figure.getBorder()).setColor(elementBackgroundColor);
-//    figure.setBackgroundColor(elementBackgroundColor);
-//    figure.repaint();
-  }
-
-  public void mouseHover(MouseEvent me)
-  {
-  }
-
-  public void mouseMoved(MouseEvent me)
-  {
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/SubstitutionGroupViewerRootEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/SubstitutionGroupViewerRootEditPart.java
deleted file mode 100644
index 3899e8e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/SubstitutionGroupViewerRootEditPart.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-                                      
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Panel;
-import org.eclipse.gef.EditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ContainerLayout;
-
-              
-
-public class SubstitutionGroupViewerRootEditPart extends BaseEditPart
-{
-  protected final static String MESSAGE_PLACE_HOLDER = "MESSAGE_PLACE_HOLDER";
-  protected Object input;              
-
-  public void setInput(Object input)
-  {
-    this.input = input;
-    refreshChildren();
-  }
-
-  protected IFigure createFigure()
-  {
-    Panel panel = new Panel();
-    ContainerLayout layout = new ContainerLayout();
-    layout.setBorder(60);
-    panel.setLayoutManager(layout);
-    return panel;
-  }   
-           
-
-  protected List getModelChildren() 
-  {               
-    List list = new ArrayList();
-    if (input != null)
-    {
-      list.add(input);
-    }
-    else
-    {
-      list.add(MESSAGE_PLACE_HOLDER);
-    }
-    return list;
-  }         
-
-  protected EditPart createChild(Object model) 
-  { 
-    EditPart editPart = null;
-    if (model == MESSAGE_PLACE_HOLDER)
-    {
-      editPart = new MessageEditPart();
-      editPart.setModel(model);
-    }
-    else
-    {
-      editPart = super.createChild(model);
-    }
-    return editPart;
-  } 
-
-  protected void createEditPolicies()
-  {  
-  }             
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/TopLevelComponentEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/TopLevelComponentEditPart.java
deleted file mode 100644
index 2d96719..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/TopLevelComponentEditPart.java
+++ /dev/null
@@ -1,316 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.gef.editpolicies.SelectionEditPolicy;
-import org.eclipse.gef.requests.LocationRequest;
-import org.eclipse.gef.ui.parts.AbstractEditPartViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.xsd.ui.internal.gef.util.editparts.AbstractComponentViewerRootEditPart;
-import org.eclipse.wst.xsd.ui.internal.gef.util.figures.FillLayout;
-import org.eclipse.wst.xsd.ui.internal.graph.GraphicsConstants;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDComponentViewer;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDGraphUtil;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.ComponentNameDirectEditManager;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.SelectionHandlesEditPolicyImpl;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.SimpleDirectEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ContainerFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.model.ModelAdapter;
-import org.eclipse.wst.xsd.ui.internal.graph.model.XSDModelAdapterFactory;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNamedComponent;
-
-
-public class TopLevelComponentEditPart extends BaseEditPart implements IFeedbackHandler
-{
-  protected Label label;
-  //protected Label arrowLabel;
-  protected ContainerFigure labelHolder = new ContainerFigure();
-  protected SelectionHandlesEditPolicyImpl selectionHandlesEditPolicy;
-  protected SimpleDirectEditPolicy simpleDirectEditPolicy = new SimpleDirectEditPolicy();
-  protected boolean isReadOnly;
-  protected boolean isSelected;
-  
-  protected IFigure createFigure()
-  {
-    ContainerFigure typeGroup = new ContainerFigure();
-    typeGroup.getContainerLayout().setHorizontal(true);
-
-    //arrowLabel = new Label();
-    //arrowLabel.setIcon(XSDEditorPlugin.getPlugin().getImage("icons/forward.gif"));
-    //typeGroup.add(arrowLabel);
-
-    labelHolder = new ContainerFigure();
-    FillLayout fillLayout = new FillLayout();
-    labelHolder.setLayoutManager(fillLayout);
-    labelHolder.setFill(true);
-    typeGroup.add(labelHolder);
-
-    label = new Label();
-    label.setBorder(new MarginBorder(0, 2, 2, 1));
-    label.setForegroundColor(ColorConstants.black);
-    labelHolder.add(label);
-    
-    try
-	  {
-      // evil hack to provide underlines
-      Object model = getModel();
-      
-      boolean isLinux = java.io.File.separator.equals("/");
-      if (model instanceof XSDComplexTypeDefinition ||
-          model instanceof XSDElementDeclaration ||
-          model instanceof XSDModelGroupDefinition)
-      {
-        if (!isLinux)
-        {
-          FontData oldData = GraphicsConstants.medium.getFontData()[0];
-          FontData fontData = new FontData(oldData.getName(), oldData.getHeight(), SWT.NONE);
-
-            // TODO... clean this awful code up... we seem to be leaking here too
-            // we can't call this directly since the methods are OS dependant
-            // fontData.data.lfUnderline = 1
-            // so instead we use reflection
-            Object data = fontData.getClass().getField("data").get(fontData);
-//            System.out.println("data" + data.getClass());
-            data.getClass().getField("lfUnderline").setByte(data, (byte)1);
-            Font font = new Font(Display.getCurrent(), fontData);
-            label.setFont(font);        
-
-        }
-      }
-	  }
-    catch (Exception e)
-	  {
-
-	  }
-    //FontData data = label.getFont().getFontData()[0];
-    //data.data.lfUnderline = 1;
-    
-    //RectangleFigure line = new RectangleFigure();    
-    //line.setPreferredSize(2, 1);   
-    //labelHolder.add(line, 1);    
-    
-    //label.getFont().getFontData()[0].setStyle()
-    
-    return typeGroup;
-  }
-  
-  public void refreshVisuals()
-  {
-    ModelAdapter adapter = XSDModelAdapterFactory.getAdapter(getModel());
-    if (adapter != null)
-    {
-      // isReadOnly = Boolean.TRUE.equals(adapter.getProperty(getModel(), "isReadOnly"));
-      isReadOnly = !XSDGraphUtil.isEditable(getModel());
-      label.setForegroundColor(computeLabelColor());
-      label.setText((String)adapter.getProperty(getModel(), ModelAdapter.LABEL_PROPERTY));
-      Image image = (Image)adapter.getProperty(getModel(), ModelAdapter.IMAGE_PROPERTY);
-      if (image != null) label.setIcon(image);
-      //arrowLabel.setVisible(Boolean.TRUE.equals(adapter.getProperty(getModel(), "drillDown")));
-    }
-    else
-    {
-      label.setText("unknown object" + getModel().getClass().getName());
-      //arrowLabel.setVisible(false);
-    }
-
-    if (reselect)
-    {
-      getViewer().select(this);
-      setReselect(false);
-    }
-  }
-
-
-  public XSDNamedComponent getXSDNamedComponent()
-  {
-    return (XSDNamedComponent) getModel();
-  }
-
-  public List getModelChildren()
-  {
-    return Collections.EMPTY_LIST;
-  }
-  
-  protected void createEditPolicies()
-  { 
-    //installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new NonResizableEditPolicy());    
-    //selectionHandlesEditPolicy = new SelectionHandlesEditPolicyImpl();
-    //installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, selectionHandlesEditPolicy);  
-  	
-    SelectionHandlesEditPolicyImpl policy = new SelectionHandlesEditPolicyImpl();
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, policy);
-
-    SelectionEditPolicy feedBackSelectionEditPolicy = new SelectionEditPolicy()
-    {
-      protected void hideSelection()
-      {
-        EditPart editPart = getHost();
-        if (editPart instanceof IFeedbackHandler)
-        {
-          ((IFeedbackHandler)editPart).removeFeedback();
-        }
-      }
-
-      protected void showSelection()
-      {
-        EditPart editPart = getHost();
-        if (editPart instanceof IFeedbackHandler)
-        {
-          ((IFeedbackHandler)editPart).addFeedback();
-        }
-      }
-    };
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, feedBackSelectionEditPolicy);
-
-    installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, simpleDirectEditPolicy);
-  }  
-  
-  public Color computeLabelColor()
-  {
-    Color color = ColorConstants.black;
-    if (isSelected)
-    {
-      color = ColorConstants.white;
-    }
-    else if (isReadOnly)
-    {
-      color = ColorConstants.gray;
-    }
-    return color;
-  }
-
-
-  public void addFeedback()
-  {
-    isSelected = true;
-
-    labelHolder.setBackgroundColor(ColorConstants.black);
-    label.setForegroundColor(computeLabelColor());
-    labelHolder.setFill(true);
-    
-    if (doScroll)
-    {
-      CategoryEditPart categoryEP = (CategoryEditPart)getParent();
-      categoryEP.scrollTo(this);
-      setScroll(false);
-    }
-  }
-  
-  private boolean doScroll = false;
-  public void setScroll(boolean doScroll)
-  {
-    this.doScroll = doScroll;
-  }
-
-  public void removeFeedback()
-  {
-    isSelected = false;
-    labelHolder.setBackgroundColor(null);
-    label.setForegroundColor(computeLabelColor());
-    labelHolder.setFill(false);
-  }
-
-  public void performRequest(Request request)
-  {  
-    if (request.getType() == RequestConstants.REQ_DIRECT_EDIT ||
-        request.getType() == RequestConstants.REQ_OPEN)
-    {
-      
-      Object model = getModel();
-      if (model instanceof XSDComplexTypeDefinition ||
-          model instanceof XSDElementDeclaration ||
-          model instanceof XSDModelGroupDefinition)
-      {
-        if (request instanceof LocationRequest)
-        {
-          LocationRequest locationRequest = (LocationRequest)request;
-          Point p = locationRequest.getLocation();
-        
-          if (hitTest(labelHolder, p))
-          {
-            performDrillDownAction();
-          }              
-        }
-      }
-    }
-  }  
-
-  public boolean hitTest(IFigure target, Point location)
-  {
-    Rectangle b = target.getBounds().getCopy();
-    target.translateToAbsolute(b);  
-    return b.contains(location);
-  }  
-
-  protected void performDrillDownAction()
-  {                                                                                    
-    Runnable runnable = new Runnable()
-    {
-      public void run()
-      {
-        //((XSDComponentViewer)getViewer()).setInput((XSDConcreteComponent)getModel());
-        
-        EditPart editPart = ((AbstractEditPartViewer)getViewer()).getRootEditPart().getContents();
-        if (editPart instanceof AbstractComponentViewerRootEditPart)
-        {
-          AbstractComponentViewerRootEditPart rootEditPart = (AbstractComponentViewerRootEditPart)editPart;
-          rootEditPart.setInput((XSDConcreteComponent)getModel());
-        }
-        else if (editPart instanceof BaseEditPart)
-        {
-          ((XSDComponentViewer)getViewer()).setInput((XSDConcreteComponent)getModel());
-        }
-      }
-    };
-    Display.getCurrent().asyncExec(runnable);
-  }
-  
-  public void doEditName()
-  {
-    removeFeedback();
-    Object object = getModel();
-    if (object instanceof XSDNamedComponent)
-    {
-      ComponentNameDirectEditManager manager = new ComponentNameDirectEditManager(this, label, (XSDNamedComponent)object);
-      simpleDirectEditPolicy.setDelegate(manager);
-      manager.show();
-    }
-  }
-
-  
-  static boolean reselect = false;
-  
-  public void setReselect(boolean state)
-  {
-    reselect = state;
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/TypeEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/TypeEditPart.java
deleted file mode 100644
index 37a83e1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/TypeEditPart.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.SelectionHandlesEditPolicyImpl;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.SimpleDirectEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ContainerFigure;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-
-public class TypeEditPart extends BaseEditPart
-{
-  protected SimpleDirectEditPolicy simpleDirectEditPolicy = new SimpleDirectEditPolicy();
-
-  protected IFigure createFigure()
-  {
-    ContainerFigure typeGroup = new ContainerFigure();
-//    typeGroup.setBorder(new SimpleRaisedBorder(1));
-//    typeGroup.setBorder(new LineBorder(1));
-//    typeGroup.setBorder(new RoundedLineBorder(1,5));
-
-    Label typeLabel = new Label("type");
-    typeLabel.setBorder(new MarginBorder(0,2,2,1));
-    typeGroup.add(typeLabel);
-
-    return typeGroup;
-  }    
-
-  protected void refreshVisuals()
-  {                 
-    super.refreshVisuals();
-  }
-
-  public XSDTypeDefinition getXSDTypeDefinition()
-  {         
-    return (XSDTypeDefinition)getModel();
-  }
-
-                    
-  public List getModelChildren() 
-  {                   
-    return Collections.EMPTY_LIST;
-  }  
-
-  protected void createEditPolicies()
-  {        
-    SelectionHandlesEditPolicyImpl policy = new SelectionHandlesEditPolicyImpl();
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, policy);      
-  } 
-  
-               
-  public void performRequest(Request request)
-  {
-    super.performRequest(request);
-  }  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/WildcardEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/WildcardEditPart.java
deleted file mode 100644
index 53a86a1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/WildcardEditPart.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-                          
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.LineBorder;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDGraphUtil;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ContainerFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.GraphNodeFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.RepeatableGraphNodeFigure;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDWildcard;
-              
-
-public class WildcardEditPart extends RepeatableGraphNodeEditPart
-{
-  protected Label label;
-
-                             
-  public XSDParticle getXSDParticle()
-  {                    
-    Object o = getXSDWildcard().getContainer();
-    return (o instanceof XSDParticle) ? (XSDParticle)o : null;
-  }
-
-
-  public XSDWildcard getXSDWildcard()
-  {
-    return (XSDWildcard)getModel();
-  }
-
-   
-  protected GraphNodeFigure createGraphNodeFigure()
-  {
-    RepeatableGraphNodeFigure figure = new RepeatableGraphNodeFigure();                                                        
-    figure.setConnected(true);
-    figure.getOutlinedArea().setFill(true);
-
-    label = new Label();    
-    label.setText(XSDEditorPlugin.getXSDString("_UI_ANY_ELEMENT")); 
-    label.setBorder(new MarginBorder(0, 6, 0, 4));
-    label.setFont(mediumBoldFont);        
-
-    figure.getIconArea().add(label);     
-
-    return figure;
-  }  
- 
-      
-  protected void refreshVisuals()
-  {     
-    ContainerFigure rectangle = graphNodeFigure.getOutlinedArea();
-    if (XSDGraphUtil.isEditable(getModel()))
-    {
-      rectangle.setBorder(new LineBorder(2));
-      rectangle.setBackgroundColor(elementBackgroundColor);
-      rectangle.setForegroundColor(isSelected ? ColorConstants.black : elementBorderColor);
-
-      label.setBackgroundColor(elementBackgroundColor);
-      label.setForegroundColor(elementLabelColor);
-    }
-    else
-    {            
-      rectangle.setBorder(new LineBorder(readOnlyBorderColor, 2));
-      rectangle.setBackgroundColor(readOnlyBackgroundColor);
-      rectangle.setForegroundColor(isSelected ? ColorConstants.black : readOnlyBorderColor);
-   
-      label.setBackgroundColor(readOnlyBackgroundColor);
-      label.setForegroundColor(readOnlyBorderColor);
-    } 
-
-    refreshOccurenceLabel(getXSDParticle());
-  }      
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/XSDEditPartFactory.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/XSDEditPartFactory.java
deleted file mode 100644
index 5d6ed1e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/XSDEditPartFactory.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-                              
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDInheritanceViewer;
-import org.eclipse.wst.xsd.ui.internal.graph.model.Category;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDWildcard;
-
-
-
-public class XSDEditPartFactory implements EditPartFactory
-{   
-  protected static XSDEditPartFactory instance;
-                      
-  public static XSDEditPartFactory getInstance()
-  {
-    if (instance == null)
-    {               
-      instance = new XSDEditPartFactory();
-    }
-    return instance;
-  }
-  
-  public EditPart createEditPart(EditPart parent, Object model)
-  {
-    EditPart editPart = null;
-           
-    if (model instanceof Category)
-    {                                  
-      editPart = new CategoryEditPart();
-    }
-    else if (model instanceof XSDElementDeclaration)
-    {       
-      editPart = new ElementDeclarationEditPart();
-    }    
-    else if (model instanceof XSDComplexTypeDefinition)
-    {
-      if (parent.getViewer() instanceof XSDInheritanceViewer)
-      {
-        editPart = new RootComplexTypeDefinitionEditPart();
-      }
-      else
-      {
-        if (parent instanceof CategoryEditPart)
-          editPart = new RootComplexTypeDefinitionEditPart();
-        else
-          editPart = new ComplexTypeDefinitionEditPart();             
-      }
-    }      
-    else if (model instanceof XSDModelGroup)
-    {       
-      editPart = new ModelGroupEditPart();
-    }      
-    else if (model instanceof XSDModelGroupDefinition)
-    {       
-      if (parent instanceof CategoryEditPart)
-        editPart = new RootModelGroupDefinitionEditPart();
-      else
-        editPart = new ModelGroupDefinitionEditPart();
-    }  
-    else if (model instanceof XSDSchema)
-    {                                  
-      editPart = new SchemaEditPart();
-    }
-    else if (model instanceof XSDWildcard)
-    {                                  
-      editPart = new WildcardEditPart();
-    }
-    else if (model instanceof XSDSimpleTypeDefinition)
-    {
-      editPart = new SimpleTypeDefinitionEditPart();
-    }
-
-    if (editPart != null)   
-    {
-      editPart.setModel(model);
-      editPart.setParent(parent);
-    }
-    else
-    {      
-//      System.out.println("can't create editPart for " + model);
-//      Thread.dumpStack();
-    }
-    return editPart;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/ComboBoxCellEditorManager.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/ComboBoxCellEditorManager.java
deleted file mode 100644
index bf58f17..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/ComboBoxCellEditorManager.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editpolicies;
-                                                  
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.tools.CellEditorLocator;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.jface.viewers.ICellEditorListener;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-
-public abstract class ComboBoxCellEditorManager extends DirectEditManager implements DirectEditPolicyDelegate
-{
-  protected Label label;                                 
-
-  public ComboBoxCellEditorManager(GraphicalEditPart source,	Label label)
-  {
-	  super(source, ComboBoxCellEditor.class, new InternalCellEditorLocator(label));
-    this.label = label;                        
-  }
-
-  protected void initCellEditor() 
-  {                                             
-  	String initialLabelText = label.getText();   
-
-    CCombo combo = (CCombo)getCellEditor().getControl();
-   	combo.setFont(label.getFont());
-    combo.setForeground(label.getForegroundColor());
-    combo.setBackground(label.getBackgroundColor());
-    /*
-	combo.addKeyListener(new KeyAdapter() {
-			// hook key pressed - see PR 14201  
-			public void keyPressed(KeyEvent keyEvent) {
-				if (keyEvent.character == 'z') { 
-					getCellEditor().applyEditorValue();
-				}
-			}
-		});
-*/
-  ICellEditorListener cellEditorListener = new ICellEditorListener()
-  {
-    public void cancelEditor()
-    {
-//      System.out.println("cancelEditor");
-    }
-    public void applyEditorValue()
-    {
-//      System.out.println("applyEditorValue");
-    }
-    public void editorValueChanged(boolean old, boolean newState)
-    {
-//      System.out.println("editorValueChanged");
-    }
-  };
-  getCellEditor().addListener(cellEditorListener);
-
-    String[] item = combo.getItems();
-    int index = 0;
-    for (int i = 0; i < item.length; i++)
-    {
-      if (item[i].equals(initialLabelText))
-      {
-	      getCellEditor().setValue(new Integer(i));
-        break;
-      }
-    } 	
-  }	 
-         
-  // hack... for some reason the ComboBoxCellEditor does't fire an editorValueChanged to set the dirty flag
-  // unless we overide this method to return true, the manager is not notified of changes made in the cell editor
-  protected boolean isDirty()
-  {
-	  return true;
-  }
-
-  protected CellEditor createCellEditorOn(Composite composite)
-  { 
-    boolean isLabelTextInList = false;                                       
-    List list = computeComboContent();
-    for (Iterator i = list.iterator(); i.hasNext(); )
-    {
-      String string = (String)i.next();
-      if (string.equals(label.getText()))
-      {                               
-         isLabelTextInList = true;
-         break;
-      }
-    } 
-         
-    if (!isLabelTextInList)
-    {
-      list.add(label.getText());
-    }
-                                               
-    List sortedList = computeSortedList(list);
-    String[] stringArray = new String[sortedList.size()];
-    for (int i = 0; i < stringArray.length; i++)
-    {
-      stringArray[i] = (String)sortedList.get(i);
-    }
-    return new ComboBoxCellEditor(composite, stringArray);
-	}                                                                 
-
-  protected List computeSortedList(List list)
-  {
-    return list;
-  }
-
-  protected abstract List computeComboContent(); 
-
-  protected abstract void performModify(String value);
-
-  public static class InternalCellEditorLocator implements CellEditorLocator
-  {
-    protected Label label;
-
-    public InternalCellEditorLocator(Label label)
-    {
-      this.label = label;
-    }                   
-
-    public void relocate(CellEditor celleditor) 
-    {
-      CCombo combo = (CCombo)celleditor.getControl();  
-	    Point pref = combo.computeSize(-1, -1);
-	    Rectangle rect = label.getTextBounds().getCopy();
-	    label.translateToAbsolute(rect);
-	    combo.setBounds(rect.x-4, rect.y-1, pref.x+1, pref.y+1);
-    }
-  } 
-   
-  // implements DirectEditPolicyDelegate
-  // 
-  public void performEdit(CellEditor cellEditor)
-  {   
-    CCombo combo = (CCombo)getCellEditor().getControl();
-    int index = combo.getSelectionIndex();              
-    if (index != -1)
-    {      
-      String value = combo.getItem(index);
-      performModify(combo.getItem(index));
-    }  
-    else
-    {
-      String typedValue = combo.getText();	
-      if (combo.indexOf(typedValue) != -1)
-      {	      
-	    performModify(typedValue);
-      }      	
-      else
-      {
-      	String closeMatch = getCloseMatch(typedValue, combo.getItems());
-      	if (closeMatch != null)
-      	{
-		  performModify(closeMatch);      	
-      	}
-      	else
-      	{      	
-      	  Display.getCurrent().beep();
-      	}
-      }
-    }    	                                                
-  }
-  
-  protected String getCloseMatch(String value, String[] items)
-  {
-    int matchIndex = -1;
-
-    for (int i = 0; i < items.length; i++)
-    {
-    	String item = items[i];
-    	String a = getLocalName(value);
-    	String b = getLocalName(item);
-		  if (a.equalsIgnoreCase(b))
-		  { 
-			  matchIndex = i;
-			  break;				
-		  }	    	     
-    }  
-    return matchIndex != -1 ? items[matchIndex] : null;
-  }
-  
-  protected String getLocalName(String string)
-  {
-		int index = string.indexOf(":");
-	  return (index != -1) ? string.substring(index + 1) : string;  
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/ComponentNameDirectEditManager.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/ComponentNameDirectEditManager.java
deleted file mode 100644
index 87a9326..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/ComponentNameDirectEditManager.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editpolicies;
-                                                  
-import org.eclipse.draw2d.Label;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.TopLevelComponentEditPart;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalElementRenamer;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalGroupRenamer;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalSimpleOrComplexTypeRenamer;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDSwitch;
-
-
-
-public class ComponentNameDirectEditManager extends TextCellEditorManager
-{
-  protected XSDNamedComponent component;
-  protected static GraphicalEditPart mySource;
-
-  public ComponentNameDirectEditManager(GraphicalEditPart source,	Label label, XSDNamedComponent component)
-  {
-    super(source, label);  
-    this.component = component;
-    mySource = source;
-  }
-
-  public void performModify(final String value)
-  {
-    if (value.length() > 0)
-    {
-      DelayedRenameRunnable runnable = new DelayedRenameRunnable(component, value);
-      Display.getCurrent().asyncExec(runnable);
-    }
-  }      
-
-  protected static class DelayedRenameRunnable implements Runnable
-  {
-    protected XSDNamedComponent component;
-    protected String name;
-
-    public DelayedRenameRunnable(XSDNamedComponent component, String name)
-    {                                                               
-      this.component = component;
-      this.name = name;
-    }                                                              
-
-    public void run()
-    {                             
-      XSDSwitch xsdSwitch = new XSDSwitch()
-      {                   
-        public Object caseXSDTypeDefinition(XSDTypeDefinition object)
-        {
-          new GlobalSimpleOrComplexTypeRenamer(object, name).visitSchema(object.getSchema());
-          return null;
-        } 
-      
-        public Object caseXSDElementDeclaration(XSDElementDeclaration object)
-        {           
-          if (object.isGlobal())
-          {
-            new GlobalElementRenamer(object, name).visitSchema(object.getSchema());
-          }
-          return null;
-        }
-      
-        public Object caseXSDModelGroupDefinition(XSDModelGroupDefinition object)
-        {
-          new GlobalGroupRenamer(object, name).visitSchema(object.getSchema());
-          return null;
-        }
-      };
-      xsdSwitch.doSwitch(component); 
-      component.setName(name);
-      if (mySource instanceof TopLevelComponentEditPart)
-      {
-        ((TopLevelComponentEditPart)mySource).setReselect(true);        
-      }
-    }
-  }
-  
-  protected void bringDown()
-  {
-    if (mySource != null)
-    {
-      if (mySource instanceof TopLevelComponentEditPart)
-      {
-        ((TopLevelComponentEditPart)mySource).setReselect(true);        
-      }
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/DirectEditPolicyDelegate.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/DirectEditPolicyDelegate.java
deleted file mode 100644
index b5cce8b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/DirectEditPolicyDelegate.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editpolicies;
-   
-import org.eclipse.jface.viewers.CellEditor;
-
-public interface DirectEditPolicyDelegate
-{       
-  public void performEdit(CellEditor cellEditor);  
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/DragAndDropCommand.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/DragAndDropCommand.java
deleted file mode 100644
index e84f7e3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/DragAndDropCommand.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editpolicies;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.PointList;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-import org.eclipse.wst.xsd.ui.internal.actions.MoveAction;
-import org.eclipse.wst.xsd.ui.internal.gef.util.figures.IConnectionRenderingViewer;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.ComplexTypeDefinitionEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.GraphNodeEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.ModelGroupDefinitionEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.ModelGroupEditPart;
-import org.eclipse.xsd.XSDConcreteComponent;
-
-
-public class DragAndDropCommand extends Command //AbstractCommand
-{ 
-  protected EditPartViewer viewer;    
-  protected ChangeBoundsRequest request;
-  protected GraphNodeEditPart childRefEditPart;    
-  public GraphNodeEditPart parentEditPart; 
-  public Point location;
-  protected MoveAction action;    
-  protected boolean canExecute;
-
-  public DragAndDropCommand(EditPartViewer viewer, ChangeBoundsRequest request)
-  {
-    this.viewer = viewer;                    
-    this.request = request;
-
-    location = request.getLocation();   
-    EditPart target = viewer.findObjectAt(location); 
-  	((GraphicalEditPart)viewer.getRootEditPart()).getFigure().translateToRelative(location);
-     
-    List list = request.getEditParts();
-    if (list.size() > 0)
-    {           
-      parentEditPart = getParentEditPart(target);
-      if (parentEditPart != null)
-      {                                          
-        for (Iterator i = parentEditPart.getChildren().iterator(); i.hasNext(); )
-        {
-          EditPart child = (EditPart)i.next();
-          if (child instanceof GraphNodeEditPart)
-          {
-            GraphNodeEditPart childGraphNodeEditPart = (GraphNodeEditPart)child;
-            Rectangle rectangle = childGraphNodeEditPart.getSelectionFigure().getBounds();
-     
-            if (location.y < rectangle.getCenter().y)
-            {                                    
-              childRefEditPart = childGraphNodeEditPart;   
-              break;
-            }
-          }
-        } 
-            
-        List editPartsList = request.getEditParts();
-        List concreteComponentList = new ArrayList(editPartsList.size());
-        for (Iterator i = editPartsList.iterator(); i.hasNext(); )
-        {                                                       
-          EditPart editPart = (EditPart)i.next();
-          concreteComponentList.add((XSDConcreteComponent)editPart.getModel());
-        } 
-        XSDConcreteComponent refComponent = childRefEditPart != null ? (XSDConcreteComponent)childRefEditPart.getModel() : null;
-
-        action = new MoveAction((XSDConcreteComponent)parentEditPart.getModel(), concreteComponentList, refComponent);
-        canExecute = action.canMove();                                            
-      }            
-    }     
-  }
-             
-  protected GraphNodeEditPart getParentEditPart(EditPart target)
-  {
-    GraphNodeEditPart result = null;    
-    while (target != null)
-    {                     
-      if (target instanceof ModelGroupEditPart)
-      {
-        result = (GraphNodeEditPart)target;
-        break;
-      }
-      else if (target instanceof ComplexTypeDefinitionEditPart ||
-               target instanceof ModelGroupDefinitionEditPart)
-      {
-        List list = target.getChildren();
-        for (Iterator i = list.iterator(); i.hasNext(); )
-        {
-          Object child = i.next();
-          if (child instanceof ModelGroupEditPart)
-          {
-            result = (GraphNodeEditPart)child;
-            break;
-          }
-        }   
-        if (result != null)
-        {
-          break;
-        }
-      }
-      target = target.getParent();
-    }
-    return result;
-  }
-
-  public void execute()
-  {           
-    if (canExecute)
-    { 
-      action.run(); 
-    }
-  }     
-  
-  public void redo()
-  {
-
-  }  
-  
-  public void undo()
-  {
-  }     
-  
-  public boolean canExecute()
-  { 
-    return canExecute;
-  } 
-
-  public PointList getConnectionPoints(Rectangle draggedFigureBounds)
-  {             
-    PointList pointList = null;      
-    if (parentEditPart != null && childRefEditPart != null && viewer instanceof IConnectionRenderingViewer)
-    {                                
-      pointList = ((IConnectionRenderingViewer)viewer).getConnectionRenderingFigure().getConnectionPoints(parentEditPart, childRefEditPart, draggedFigureBounds);      
-    }               
-    return pointList != null ? pointList : new PointList();
-  }                                                                  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/DragAndDropEditPolicy.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/DragAndDropEditPolicy.java
deleted file mode 100644
index 18468c8..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/DragAndDropEditPolicy.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editpolicies;
-
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-
-public class DragAndDropEditPolicy extends org.eclipse.gef.editpolicies.GraphicalEditPolicy
-{ 
-  protected EditPartViewer viewer;    
-  protected SelectionHandlesEditPolicyImpl selectionHandlesEditPolicy;
-
-  public DragAndDropEditPolicy(EditPartViewer viewer, SelectionHandlesEditPolicyImpl selectionHandlesEditPolicy)
-  {
-    this.viewer = viewer;
-    this.selectionHandlesEditPolicy = selectionHandlesEditPolicy;
-  }
-
-  public boolean understandsRequest(Request req)
-  {
-	  return true;
-  }                           
-    
-  static int count2 = 0;
-  boolean theCommandResult = true;   
-  
-  public org.eclipse.gef.commands.Command getCommand(Request request)
-  {             
-    // this block is commented out to disable move for now
-    DragAndDropCommand command = null;                            
-    if (request instanceof ChangeBoundsRequest)
-    {
-      command = new DragAndDropCommand(viewer, (ChangeBoundsRequest)request);  
-      selectionHandlesEditPolicy.setDragAndDropCommand(command);
-    } 
-    return command;             
-  }                                                     
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/GraphNodeDragTracker.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/GraphNodeDragTracker.java
deleted file mode 100644
index 58fbaac..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/GraphNodeDragTracker.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editpolicies;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.tools.DragEditPartsTracker;
-
-                                   
-public class GraphNodeDragTracker extends DragEditPartsTracker 
-{                                     
-  protected EditPart editPart; 
-           
-  public GraphNodeDragTracker(EditPart editPart)
-  {
-    super(editPart);
-    this.editPart = editPart;
-  } 
-                                              
-  protected Command getCommand() 
-  { 
-	  Request request = getTargetRequest();
-    return editPart.getCommand(request); 
-  }
-} 
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/SelectionHandlesEditPolicyImpl.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/SelectionHandlesEditPolicyImpl.java
deleted file mode 100644
index d09b53a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/SelectionHandlesEditPolicyImpl.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
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editpolicies;
-                                 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.FigureUtilities;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Polyline;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.PointList;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.editpolicies.SelectionHandlesEditPolicy;
-import org.eclipse.gef.handles.MoveHandle;
-import org.eclipse.gef.handles.MoveHandleLocator;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.BaseEditPart;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.IFeedbackHandler;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.BogusLayout;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ContainerFigure;
-
-
-
-
-
-public class SelectionHandlesEditPolicyImpl	extends SelectionHandlesEditPolicy
-{
-  protected IFigure feedback;
-  protected Rectangle originalLocation;
-  protected DragAndDropCommand dragAndDropCommand;
-
-  protected List createSelectionHandles()
-  {              
-    List list = new ArrayList();
-    EditPart editPart = getHost();
-     
-    if (editPart instanceof GraphicalEditPart)
-    {
-      GraphicalEditPart graphicalEditPart = (GraphicalEditPart)editPart;
-      IFigure figure = (graphicalEditPart instanceof BaseEditPart) ? 
-                          ((BaseEditPart)graphicalEditPart).getSelectionFigure() :
-                          graphicalEditPart.getFigure();
-   
-      Cursor cursorFigure = figure.getCursor();
-      MoveHandleLocator loc = new MoveHandleLocator(figure);    
-      MoveHandle moveHandle = new MoveHandle(graphicalEditPart, loc);     
-      moveHandle.setCursor(cursorFigure);
-      list.add(moveHandle);
-    }
-
-    return list;
-  }   
-  
-
-  public boolean understandsRequest(Request request)
-  {    
-    boolean result = false;
-
-	  if (REQ_MOVE.equals(request.getType()))
-    {  
-		  result = false; // return false to disable move for now 
-    }
-    else
-    {
-	    result = super.understandsRequest(request);
-    }
-    return result;
-  }
-  
-
-  public org.eclipse.gef.commands.Command getCommand(Request request) 
-  {                                          
-    return null;  
-  }   
-
-  public void setDragAndDropCommand(DragAndDropCommand dragAndDropCommand)
-  {
-    this.dragAndDropCommand = dragAndDropCommand;
-  }
-
-  protected org.eclipse.gef.commands.Command getMoveCommand(ChangeBoundsRequest request) 
-  {
-	  ChangeBoundsRequest req = new ChangeBoundsRequest(REQ_MOVE_CHILDREN);
-	  req.setEditParts(getHost());
-	
-	  req.setMoveDelta(request.getMoveDelta());
-	  req.setSizeDelta(request.getSizeDelta());
-	  req.setLocation(request.getLocation());
-
-	  return getHost().getParent().getCommand(req);
-  } 
-
-  public void showSourceFeedback(Request request)
-  {  	
-	  if (REQ_MOVE.equals(request.getType()) ||
-		  REQ_ADD.equals(request.getType()))
-		  showChangeBoundsFeedback((ChangeBoundsRequest)request);
-  }
-
-  protected void showChangeBoundsFeedback(ChangeBoundsRequest request)
-  {
-  	IFigure p = getDragSourceFeedbackFigure();
-  	Rectangle r = originalLocation.getTranslated(request.getMoveDelta());
-  	Dimension resize = request.getSizeDelta();
-  	r.width += resize.width;
-  	r.height+= resize.height;
-  
-  	((GraphicalEditPart)getHost()).getFigure().translateToAbsolute(r);
-  	p.translateToRelative(r);
-                
-    Rectangle pBounds = r.getCopy();                            
-
-    if (dragAndDropCommand != null && dragAndDropCommand.canExecute())
-    {                     
-      int size = request.getEditParts().size();
-      if (size > 0 && request.getEditParts().get(size - 1) == getHost())
-      {         
-        PointList pointList = dragAndDropCommand.getConnectionPoints(r);
-        if (pointList != null && pointList.size() > 0)
-        {
-          polyLine.setPoints(pointList);
-          
-          Point firstPoint = pointList.getFirstPoint();
-          if (firstPoint != null)
-          {
-            pBounds = pBounds.getUnion(new Rectangle(firstPoint.x, firstPoint.y, 1, 1));
-          }
-        }
-      }
-    }
-    p.setBounds(pBounds);
-    ghostShape.setBounds(r);
-  	p.validate();
-  }        
-
-
-
-
-  protected IFigure getDragSourceFeedbackFigure() 
-  {
-    EditPart editPart = getHost(); 
-    if (feedback == null && editPart instanceof BaseEditPart)
-    {                                       
-      BaseEditPart baseEditPart = (BaseEditPart)editPart;
-		  originalLocation = new Rectangle(baseEditPart.getSelectionFigure().getBounds());
-		  feedback = createDragSourceFeedbackFigure(baseEditPart.getSelectionFigure());
-	  }
-	  return feedback;
-  }  
-    
-  Polyline polyLine;
-  RectangleFigure ghostShape;
-
-  protected IFigure createDragSourceFeedbackFigure(IFigure draggedFigure)
-  {
-		// Use a ghost rectangle for feedback  
-    ContainerFigure panel = new ContainerFigure(); 
-    panel.setLayoutManager(new BogusLayout());//new FreeformLayout());
-
-		ghostShape = new RectangleFigure();
-		FigureUtilities.makeGhostShape(ghostShape);
-		ghostShape.setLineStyle(Graphics.LINE_DASHDOT);
-		ghostShape.setForegroundColor(ColorConstants.white);
-    
-    Rectangle r = draggedFigure.getBounds();
-    panel.setOpaque(false);
-    panel.add(ghostShape);                 
-
-    polyLine = new Polyline();                         
-    //polyLine.setLineStyle(Graphics.LINE_DASHDOT);      
-    polyLine.setLineWidth(3);
-    panel.add(polyLine);
-
-    panel.setBounds(r);
-		ghostShape.setBounds(r);
-
-		addFeedback(panel);
-
-		return panel;
-	} 
-
-  public void deactivate()
-  {
-	  if (feedback != null)
-    {
-		  removeFeedback(feedback);
-		  feedback = null;
-	  }
-	  hideFocus();
-	  super.deactivate();
-  }
-
-  /**
-   * Erase feedback indicating that the receiver object is 
-   * being dragged.  This method is called when a drag is
-   * completed or cancelled on the receiver object.
-   * @param dragTracker org.eclipse.gef.tools.DragTracker The drag tracker of the tool performing the drag.
-   */
-  protected void eraseChangeBoundsFeedback(ChangeBoundsRequest request) 
-  {
-	  if (feedback != null) 
-    {		      
-		  removeFeedback(feedback);
-	  }
-	  feedback = null;
-	  originalLocation = null;
-  }
-
-  /**
-   * Erase feedback indicating that the receiver object is 
-   * being dragged.  This method is called when a drag is
-   * completed or cancelled on the receiver object.
-   * @param dragTracker org.eclipse.gef.tools.DragTracker The drag tracker of the tool performing the drag.
-   */
-  public void eraseSourceFeedback(Request request) 
-  {
-    if (REQ_MOVE.equals(request.getType()) ||  REQ_ADD.equals(request.getType()))
-    {
-		  eraseChangeBoundsFeedback((ChangeBoundsRequest)request);
-    }
-  }
-  
-  protected void hideSelection()
-  {
-    EditPart editPart = getHost();
-    if (editPart instanceof IFeedbackHandler)
-    {
-      ((IFeedbackHandler)editPart).removeFeedback();
-    }
-  }
-
-  protected void showSelection()
-  {
-    EditPart editPart = getHost();
-    if (editPart instanceof IFeedbackHandler)
-    {
-      ((IFeedbackHandler)editPart).addFeedback();
-    }
-  }  
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/SimpleDirectEditPolicy.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/SimpleDirectEditPolicy.java
deleted file mode 100644
index 531eef2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/SimpleDirectEditPolicy.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editpolicies;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editpolicies.DirectEditPolicy;
-import org.eclipse.gef.requests.DirectEditRequest;
-                                   
-public class SimpleDirectEditPolicy extends DirectEditPolicy 
-{
-  protected DirectEditPolicyDelegate delegate;
-
-  public void setDelegate(DirectEditPolicyDelegate delegate)
-  {                                           
-    this.delegate = delegate;
-  }
-
-  protected org.eclipse.gef.commands.Command getDirectEditCommand(final DirectEditRequest request) 
-  { 
-  	return new Command() //AbstractCommand()
-    {
-      public void execute()
-      {                       
-        if (delegate != null)
-        {
-          delegate.performEdit(request.getCellEditor());
-        }  
-      }     
-  
-      public void redo()
-      {
-      }  
-  
-      public void undo()
-      {
-      }     
-  
-      public boolean canExecute()
-      {
-        return true;
-      }
-    };
-  }
-  
-  protected void showCurrentEditValue(DirectEditRequest request) 
-  {      
-  	//hack to prevent async layout from placing the cell editor twice.
-  	getHostFigure().getUpdateManager().performUpdate();
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/TextCellEditorManager.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/TextCellEditorManager.java
deleted file mode 100644
index 6409937..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/TextCellEditorManager.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editpolicies;
-                                                  
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.tools.CellEditorLocator;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Text;
-
-public abstract class TextCellEditorManager extends DirectEditManager implements DirectEditPolicyDelegate
-{
-  protected Label label;                                 
-
-  public TextCellEditorManager(GraphicalEditPart source,	Label label)
-  {
-	  super(source, TextCellEditor.class, new InternalCellEditorLocator(label));
-    this.label = label;     
-  }
-
-  protected void initCellEditor() 
-  {                                             
-  	String initialLabelText = label.getText();
-  	getCellEditor().setValue(initialLabelText);
-  	Text text = (Text)getCellEditor().getControl();
-  	text.setFont(label.getFont());
-    text.setForeground(label.getForegroundColor());
-    text.setBackground(label.getBackgroundColor());
-  	text.selectAll();
-  }	          
-
-  protected abstract void performModify(String value);
-    
-  public static class InternalCellEditorLocator implements CellEditorLocator
-  {
-    protected Label label;
-
-    public InternalCellEditorLocator(Label label)
-    {
-      this.label = label;
-    }                   
-
-    public void relocate(CellEditor celleditor) 
-    {
-      Text text = (Text)celleditor.getControl();  
-	    Point sel = text.getSelection();
-	    Point pref = text.computeSize(-1, -1);
-	    Rectangle rect = label.getTextBounds().getCopy();
-	    label.translateToAbsolute(rect);
-	    text.setBounds(rect.x-4, rect.y-1, pref.x+1, pref.y+1);	
-	    text.setSelection(0);
-	    text.setSelection(sel); 
-    }
-  }    
-
-  // implements DirectEditPolicyDelegate
-  // 
-  public void performEdit(CellEditor cellEditor)
-  {
-    performModify((String)cellEditor.getValue());
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/TypeReferenceDirectEditManager.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/TypeReferenceDirectEditManager.java
deleted file mode 100644
index c62d1e9..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editpolicies/TypeReferenceDirectEditManager.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editpolicies;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.Label;
-import org.eclipse.gef.EditPart;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.BaseEditPart;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSchema;
-
-
-
-public class TypeReferenceDirectEditManager extends ComboBoxCellEditorManager
-{
-  protected BaseEditPart editPart;                                                
-  protected XSDElementDeclaration ed;
-
-  
-  public TypeReferenceDirectEditManager(BaseEditPart source,	XSDElementDeclaration ed, Label label)
-  {
-    super(source, label);  
-    editPart = source;               
-    this.ed = ed;
-  }
-
-  protected List computeComboContent()
-  {             
-    XSDSchema schema = ed.getSchema();
-    List typeNameList = new ArrayList();
-    if (schema != null)
-    {         
-      TypesHelper typesHelper = new TypesHelper(schema);
-      typeNameList.addAll(typesHelper.getUserSimpleTypeNamesList());
-      typeNameList.addAll(typesHelper.getUserComplexTypeNamesList());               
-      typeNameList.addAll(typesHelper.getBuiltInTypeNamesList());
-    }                        
-    return typeNameList;
-  }
-    
-  public void performModify(String value)
-  {                                               
-    // we need to perform an asyncExec here since the 'host' editpart may be removed
-    // as a side effect of performing the action
-    DelayedRenameRunnable runnable = new DelayedRenameRunnable(editPart, ed, value);
-    Display.getCurrent().asyncExec(runnable);   
-  }  
-   
-
-  protected List computeSortedList(List list)
-  {
-    return TypesHelper.sortList(list);
-  }
-
-  protected static class DelayedRenameRunnable implements Runnable
-  {
-    protected BaseEditPart editPart;                                                
-    protected EditPart editPartParent;
-    protected XSDElementDeclaration ed;
-    protected String name;
-
-    public DelayedRenameRunnable(BaseEditPart editPart, XSDElementDeclaration ed, String name)
-    {                                                               
-      this.editPart = editPart;
-      editPartParent = editPart.getParent();
-      this.ed = ed;
-      this.name = name;
-    }                                                              
-
-    public void run()
-    {                             
-      //BaseGraphicalViewer viewer = editPart.getBaseGraphicalViewer();
-      //viewer.setInputEnabled(false);
-      //viewer.setSelectionEnabled(false);      
-      if (name.equals("<anonymous>"))
-      {          
-        try
-        {
-          ed.getResolvedElementDeclaration().getElement().removeAttribute("type");
-        }
-        catch (Exception e)
-        {
-        }
-      }
-      else
-      {
-        if (ed.getResolvedElementDeclaration().getAnonymousTypeDefinition() != null) // isSetAnonymousTypeDefinition())
-        {
-          if (!(name.equals("<anonymous>")))
-          {
-            ed.getResolvedElementDeclaration().getElement().setAttribute("type", name);
-            XSDDOMHelper.updateElementToNotAnonymous(ed.getResolvedElementDeclaration().getElement());
-//            ed.getResolvedElementDeclaration().setAnonymousTypeDefinition(null);
-            return;
-          }
-        }
-        ed.getResolvedElementDeclaration().getElement().setAttribute("type", name);
-      }
-      //viewer.setInputEnabled(true);
-      //viewer.setSelectionEnabled(true);
-      //viewer.setSelection(new StructuredSelection(editPartParent));
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/BogusLayout.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/BogusLayout.java
deleted file mode 100644
index cfa8c75..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/BogusLayout.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.figures;
-
-import org.eclipse.draw2d.AbstractLayout;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-
-
-/**
- * Figures using the StackLayout as their layout manager have
- * their children placed on top of one another. Order of 
- * placement is determined by the order in which the children
- * were added, first child added placed on the bottom.
- */
-public class BogusLayout
-	extends AbstractLayout
-{
-                             
-protected int spacing;
-
-public BogusLayout(){}
-
-protected Dimension calculatePreferredSize(IFigure figure, int w, int h)
-{	                 
-  Dimension d = new Dimension();
-  return d;
-} 
-
-/*
- * Returns the minimum size required by the input container.
- * This is the size of the largest child of the container, as all
- * other children fit into this size.
- */
-/*jvh - final
-public Dimension getMinimumSize(IFigure figure){
-	return new Dimension();
-}
-
-public Dimension getPreferredSize(IFigure figure){
-	return new Dimension();
-}            */
-
-/*
- * Lays out the children on top of each other with
- * their sizes equal to that of the available
- * paintable area of the input container figure.
- */
-public void layout(IFigure figure){   
- 
-} 
- 
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/CenterLayout.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/CenterLayout.java
deleted file mode 100644
index 2932e6d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/CenterLayout.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.figures;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.AbstractLayout;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-
-
-/**
- * Figures using the StackLayout as their layout manager have
- * their children placed on top of one another. Order of 
- * placement is determined by the order in which the children
- * were added, first child added placed on the bottom.
- */
-public class CenterLayout
-	extends AbstractLayout
-{
-                             
-protected int spacing;
-
-public CenterLayout(){}
-public CenterLayout(int spacing){ this.spacing = spacing; }
-
-/**
- * Calculates and returns the preferred size of the input container.
- * This is the size of the largest child of the container, as all
- * other children fit into this size.
- *
- * @param figure  Container figure for which preferred size is required.
- * @return  The preferred size of the input figure.
- * @since 2.0
- */
-protected Dimension calculatePreferredSize(IFigure figure, int w, int h){
-	Dimension d = calculatePreferredClientAreaSize(figure);
-	/*d.expand(figure.getInsets().getWidth(),
-	         figure.getInsets().getHeight()); */
-        d.expand(w,
-	         h);
-	d.union(getBorderPreferredSize(figure));
-	return d;
-}
-
-protected Dimension calculatePreferredClientAreaSize(IFigure figure){
-	Dimension d = new Dimension();
-	List children = figure.getChildren();
-	for (Iterator i = children.iterator(); i.hasNext(); )
-  {
-		IFigure child = (IFigure)i.next();
-    Dimension childSize = child.getPreferredSize();
-    d.height += childSize.height;
-    d.width = Math.max(childSize.width, d.width);
-	}	                    
-  int childrenSize = children.size();       
-  if (childrenSize > 0)
-  {
-    d.height += spacing * children.size() - 1;
-  }
-	return d;
-}
-
-/*
- * Returns the minimum size required by the input container.
- * This is the size of the largest child of the container, as all
- * other children fit into this size.
- */
-public Dimension getMinimumSize(IFigure figure, int wHint, int hHint){
-	Dimension d = new Dimension();
-	List children = figure.getChildren();
-	IFigure child;
-	for (int i=0; i < children.size(); i++){
-		child = (IFigure)children.get(i);
-		d.union(child.getMinimumSize());
-	}
-	d.expand(figure.getInsets().getWidth(),
-	         figure.getInsets().getHeight());
-	return d;
-}
-
-public Dimension getPreferredSize(IFigure figure, int wHint, int hHint){
-	return calculatePreferredSize(figure, wHint, hHint);
-}
-
-
-/*
- * Lays out the children on top of each other with
- * their sizes equal to that of the available
- * paintable area of the input container figure.
- */
-public void layout(IFigure figure){
-	Rectangle r = figure.getClientArea();
-	List children = figure.getChildren();
-  
-  Dimension preferredClientAreaSize = calculatePreferredClientAreaSize(figure);
-  int x = r.x + (r.width - preferredClientAreaSize.width) / 2;
-  int y = r.y + (r.height - preferredClientAreaSize.height) / 2;
-
-	for (Iterator i = children.iterator(); i.hasNext(); )
-  {
-		IFigure child = (IFigure)i.next();
-    Dimension childSize = child.getPreferredSize();
-		child.setBounds(new Rectangle(x, y, childSize.width, childSize.height));
-    y += childSize.height + spacing;
-	}
-}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/CenteredIconFigure.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/CenteredIconFigure.java
deleted file mode 100644
index 3426bb0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/CenteredIconFigure.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.figures;
-            
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.graphics.Image;
-              
-
-public class CenteredIconFigure extends ContainerFigure
-{                                                
-  public Image image;  
-                               
-  public CenteredIconFigure()
-  {
-    super();
-    setFill(true);   
-  }
-
-  protected void fillShape(Graphics g)
-  {    
-    super.fillShape(g);    
-    if (image != null)
-    {                         
-      Rectangle r = getBounds();                                                         
-      Dimension imageSize = new Dimension(16, 16);
-      g.drawImage(image, r.x + (r.width - imageSize.width)/2, r.y + (r.height - imageSize.height)/2);
-    }
-  }          
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/ConnectionFigure.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/ConnectionFigure.java
deleted file mode 100644
index aaa05f1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/ConnectionFigure.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.figures;
-       
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.PointList;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.wst.xsd.ui.internal.graph.editparts.GraphNodeEditPart;
-
-              
-
-public class ConnectionFigure extends RectangleFigure
-{               
-  protected boolean isOutlined = true;
-  protected IFigure xsdFigure;
-
-  public ConnectionFigure(IFigure xsdFigure)
-  {
-    setOpaque(false);                   
-    this.xsdFigure = xsdFigure;
-    //setFocusTraversable(false); 
-    //setEnabled(false); 
-  }
-           
-  protected boolean isMouseEventTarget()
-  {
-    return false;
-  }        
-
-  public boolean containsPoint(int x, int y){return false;}
-
-  protected void fillShape(Graphics graphics)
-  { 
-    graphics.setForegroundColor(ColorConstants.black);
-    drawLines(graphics, xsdFigure);
-  }
-
-  protected void drawLines(Graphics graphics, IFigure figure)
-  {
-    if (figure instanceof GraphNodeFigure)
-    {
-      GraphNodeFigure graphNodeFigure = (GraphNodeFigure)figure;         
-      if (graphNodeFigure.isConnected() && graphNodeFigure.isExpanded())
-      {
-        List childList = graphNodeFigure.getChildGraphNodeFigures();
-        if (childList.size() > 0)
-        {                                         
-          Rectangle r = graphNodeFigure.getConnectionRectangle();    
-          
-          int x1 = r.x + r.width;
-          int y1 = r.y + r.height/2;
-          
-          int startOfChildBox = ((GraphNodeFigure)childList.get(0)).getConnectionRectangle().x;
-
-          int x2 = x1 + (startOfChildBox - x1) / 3;
-          int y2 = y1;
-                    
-          if (childList.size() > 1)
-          {                                 
-            graphics.drawLine(x1, y1, x2, y2);
-          
-            int minY = Integer.MAX_VALUE;
-            int maxY = -1;
-          
-            for (Iterator i = childList.iterator(); i.hasNext(); )
-            {
-              GraphNodeFigure childGraphNodeFigure = (GraphNodeFigure)i.next();
-              Rectangle childConnectionRectangle = childGraphNodeFigure.getConnectionRectangle();
-              int y = childConnectionRectangle.y + childConnectionRectangle.height / 2;
-             
-              minY = Math.min(minY, y);
-              maxY = Math.max(maxY, y);             
-              graphics.drawLine(x2, y, childConnectionRectangle.x, y);            
-            }                   
-            graphics.drawLine(x2, minY, x2, maxY);
-          }
-          else
-          {
-            graphics.drawLine(x1, y1, startOfChildBox, y2);
-          }
-        }                            
-      }                             
-    }
-
-    //boolean visitChildren = true;
-    List children = figure.getChildren();
-    for (Iterator i = children.iterator(); i.hasNext(); )
-    {
-      IFigure child = (IFigure)i.next();
-      drawLines(graphics, child);
-    }
-  }    
-
-
-  // This method supports the preview connection line function related to drag and drop
-  //     
-  public PointList getConnectionPoints(GraphNodeEditPart parentEditPart, GraphNodeEditPart childRefEditPart, Rectangle draggedFigureBounds)
-  {           
-    PointList pointList = new PointList();                         
-    int[] data = new int[1];
-    Point a = getConnectionPoint(parentEditPart, childRefEditPart, data);
-    if (a != null)
-    {   
-      int draggedFigureBoundsY = draggedFigureBounds.y + draggedFigureBounds.height/2;
-
-      pointList.addPoint(a); 
-      //pointList.addPoint(new Point(draggedFigureBounds.x, draggedFigureBoundsY));
-      
-      if (data[0] == 0) // insert between 2 items
-      {                                         
-        int x = a.x + (draggedFigureBounds.x - a.x)/2;
-        pointList.addPoint(new Point(x, a.y));
-        pointList.addPoint(new Point(x, draggedFigureBoundsY));        
-        pointList.addPoint(new Point(draggedFigureBounds.x, draggedFigureBoundsY));
-      }
-      else // insert at first or last position
-      {
-        pointList.addPoint(new Point(a.x, draggedFigureBoundsY));   
-        pointList.addPoint(new Point(draggedFigureBounds.x, draggedFigureBoundsY));
-      }
-    }       
-    return pointList;
-  }
-
-         
-  // This method supports the preview connection line function related to drag and drop
-  //     
-  protected Point getConnectionPoint(GraphNodeEditPart parentEditPart, GraphNodeEditPart childRefEditPart, int[] data)
-  {                      
-    Point point = null;     
-    List childList = parentEditPart.getChildren();         
-
-    //TreeNodeIconFigure icon = ((TreeNodeFigure)parent.getFigure()).treeNodeIconFigure;
-                                                                                                                                               
-    if (childList.size() > 0)
-    {   
-      point = new Point();
-
-      GraphNodeEditPart prev = null;    
-      GraphNodeEditPart next = null;
-                               
-      for (Iterator i = childList.iterator(); i.hasNext(); )
-      {             
-        Object o = i.next();    
-        if (o instanceof GraphNodeEditPart)
-        {
-          GraphNodeEditPart childEditPart = (GraphNodeEditPart)o;        
-          if (childEditPart == childRefEditPart)
-          {
-            next = childEditPart;
-            break;
-          }                                           
-          prev = childEditPart;
-        }
-      }                            
-
-      if (next != null && prev != null)
-      { 
-        int ya = prev.getConnectionRectangle().getCenter().y;
-        int yb = next.getConnectionRectangle().getCenter().y;
-        point.y = ya + (yb - ya)/2;   
-        data[0] = 0;
-      }                               
-      else if (prev != null) // add it last
-      {
-        point.y = prev.getConnectionRectangle().getCenter().y;
-        data[0] = 1;
-      }
-      else if (next != null) // add it first!
-      {                           
-        point.y = next.getConnectionRectangle().getCenter().y;
-        data[0] = -1;
-      }
-          
-      if (next != null || prev != null)
-      {
-        GraphNodeEditPart child = prev != null ? prev : next;
-        int startOfChildBox = child.getConnectionRectangle().x;
-        Rectangle r = parentEditPart.getConnectionRectangle();  
-        int x1 = r.x + r.width;
-        point.x = x1 + (startOfChildBox - x1) / 3;
-      }
-    }    
-    return point;
-  }
-         
-
-  protected void outlineShape(Graphics graphics)
-  { 
-    if (isOutlined)
-    {
-      super.outlineShape(graphics);
-    }
-  } 
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/ContainerFigure.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/ContainerFigure.java
deleted file mode 100644
index 8594005..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/ContainerFigure.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.figures;
-            
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.LayoutManager;
-import org.eclipse.draw2d.RectangleFigure;
-              
-public class ContainerFigure extends RectangleFigure
-{               
-  protected boolean isOutlined = false;
-
-  public ContainerFigure()
-  {
-    setLayoutManager(new ContainerLayout());
-    setFill(false);
-  }
-
-  public void doLayout()
-  {
-	  layout();
-	  setValid(true);
-  }  
-          
-  public ContainerLayout getContainerLayout()
-  {
-    return (ContainerLayout)getLayoutManager();
-  }           
-
-  public void setOutlined(boolean isOutlined)
-  {
-    this.isOutlined = isOutlined;
-  }     
-
-  protected void outlineShape(Graphics graphics)
-  { 
-    if (isOutlined)
-    {
-      super.outlineShape(graphics);
-    }
-  }
-  
-  
-  public void validate() 
-  {
-    if (isValid())
-    {
-      return;
-    }
-    super.validate();	
-    postLayout();
-  }
-
-
-  protected void postLayout()
-  {
-    LayoutManager layoutManager = getLayoutManager();
-    if (layoutManager instanceof PostLayoutManager)
-    {
-      ((PostLayoutManager)layoutManager).postLayout(this);    
-    }  
-  }  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/ContainerLayout.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/ContainerLayout.java
deleted file mode 100644
index 0a13f10..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/ContainerLayout.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.figures;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.AbstractLayout;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.wst.xsd.ui.internal.gef.util.figures.SpacingFigure;
-
-public class ContainerLayout extends AbstractLayout implements PostLayoutManager
-{                                         
-  protected boolean isHorizontal;
-  protected int spacing = 0;
-  protected int border = 0;
- 
-  public ContainerLayout()
-  { 
-    this(true, 0); 
-  }             
-
-  public ContainerLayout(boolean isHorizontal, int spacing)
-  {
-    this.isHorizontal = isHorizontal;   
-    this.spacing = spacing;
-  }  
-
-  public void setHorizontal(boolean isHorizontal)
-  {
-    this.isHorizontal = isHorizontal;
-  }  
-
-  public void setSpacing(int spacing)
-  {
-    this.spacing = spacing;
-  }  
-
-  public void setBorder(int border)
-  {
-    this.border = border;
-  }   
-
-  /**
-   * Calculates and returns the preferred size of the container 
-   * given as input.
-   * 
-   * @param figure  Figure whose preferred size is required.
-   * @return  The preferred size of the passed Figure.
-   * @since 2.0
-   */
-  protected Dimension calculatePreferredSize(IFigure parent, int w, int h)
-  { 
-    Dimension preferred = null;                                              
-                                  
-    // Here we ensure that an unexpanded container is given a size of (0,0)
-    //
-    if (parent instanceof GraphNodeContainerFigure)
-    {
-      GraphNodeContainerFigure graphNodeContainerFigure = (GraphNodeContainerFigure)parent;
-      if (!graphNodeContainerFigure.isExpanded())
-      {
-        preferred = new Dimension(); 
-      }
-    }   
-    
-    if (preferred == null)
-    {
-      preferred = new Dimension();
-      List children = parent.getChildren();
-                                            
-      for (int i=0; i < children.size(); i++)
-      {
-        IFigure child = (IFigure)children.get(i);      
-    
-        Dimension childSize = child.getPreferredSize();
-        /*
-        if (child instanceof Interactor)
-        {          
-          childSize.width = 9;
-          childSize.height = 9;
-        }*/  
-    
-        if (isHorizontal)
-        {
-          preferred.width += childSize.width;
-          preferred.height = Math.max(preferred.height, childSize.height);
-        }
-        else
-        {  
-          preferred.height += childSize.height;
-          preferred.width = Math.max(preferred.width, childSize.width);
-        }
-      }                                                 
-
-      int childrenSize = children.size();
-      if (childrenSize > 1)
-      {                      
-        if (isHorizontal)    
-        {
-          preferred.width += spacing * (childrenSize - 1);
-        }
-        else
-        {
-          preferred.height += spacing * (childrenSize - 1);
-        } 
-      }
-                            
-      preferred.width += border * 2;
-      preferred.height += border * 2;
-      preferred.width += parent.getInsets().getWidth();
-      preferred.height += parent.getInsets().getHeight();      
-    }
-    return preferred;
-  }
-
-                
-  protected int alignFigure(IFigure parent, IFigure child)
-  {         
-    int y = -1;                                                            
-    return y;
-  }
-
-  public void layout(IFigure parent)
-  {                        
-    List children = parent.getChildren();
-    Dimension preferred = new Dimension();
-
-    int rx = 0;
-    for (int i=0; i < children.size(); i++)
-    {
-      IFigure child = (IFigure)children.get(i);
-      Dimension childSize = child.getPreferredSize();
-      if (isHorizontal)
-      {   
-        preferred.height = Math.max(preferred.height, childSize.height);
-        rx += childSize.width;
-      }
-      else
-      {
-        preferred.width = Math.max(preferred.width, childSize.width);
-      }
-    }
-
-    if (isHorizontal)
-    {
-      preferred.height += border*2;
-      preferred.width += border;
-    }
-    else
-    {
-      preferred.width += border*2;
-      preferred.height += border;
-    }
-
-    int childrenSize = children.size(); 
-    for (int i=0; i < childrenSize; i++)
-    {
-      IFigure child = (IFigure)children.get(i);
-      Dimension childSize = child.getPreferredSize();
-      
-      if (isHorizontal)
-      {   
-        int y = alignFigure(parent, child);             
-
-      
-        if (y == -1)
-        {
-           y = (preferred.height - childSize.height) / 2;                                      
-        }      
-
-        Rectangle rectangle = new Rectangle(preferred.width, y, childSize.width, childSize.height);   
-        rectangle.translate(parent.getClientArea().getLocation());
-
-        child.setBounds(rectangle);         
-        preferred.width += childSize.width; 
-        preferred.width += spacing;   
-        
-        if (child instanceof SpacingFigure)
-        {          
-          int availableHorizontalSpace = parent.getClientArea().width - rx;
-          preferred.width += availableHorizontalSpace;
-        } 
-      }
-      else
-      {
-        Rectangle rectangle = new Rectangle(0, preferred.height, childSize.width, childSize.height);
-        rectangle.translate(parent.getClientArea().getLocation());
-        child.setBounds(rectangle);  
-        preferred.height += childSize.height;
-        preferred.height += spacing;
-      }
-    }     
-  }      
-  
-  public void postLayout(IFigure figure)
-  {       
-    // This method attempts to align a 'FloatableFigure' (e.g. an Element node) 
-    // with any content that it is connected to.  This way a chain of connected figures
-    // will be vertically aligned (e.g. element -> modelgroup -> element).  Any visible clipping of the
-    // figures in the graph is probably a result of a bug in this code that results in a 'FloatableFigure' being
-    // repositioned beyond the bounds of its parent.
-    //     
-    for (Iterator i = figure.getChildren().iterator(); i.hasNext();)
-    {
-      IFigure child = (IFigure)i.next();
-      if (child instanceof FloatableFigure)       
-      {        
-        FloatableFigure floatableFigure = (FloatableFigure)child;
-        GraphNodeFigure graphNodeFigure = floatableFigure.getGraphNodeFigure(); 
-        if (graphNodeFigure.isExpanded() && graphNodeFigure.getChildGraphNodeFigures().size() == 1)
-        {
-          GraphNodeFigure alignedChild = (GraphNodeFigure)graphNodeFigure.getChildGraphNodeFigures().get(0);      
-          Rectangle alignedChildBounds = alignedChild.getConnectionRectangle();                            
-          Rectangle childBounds = child.getBounds();
-        
-          int l = childBounds.y + childBounds.height/2;
-          int r = alignedChildBounds.y + alignedChildBounds.height/2;       
-          int delta = r - l;
-
-          fixUp(child, delta);
-        }          
-      }
-    }      
-  }      
-  
-  protected void fixUp(IFigure figure, int delta)
-  { 
-    Rectangle bounds = figure.getBounds();
-    bounds.y += delta;
-    figure.setBounds(bounds);
-      
-    for (Iterator i = figure.getChildren().iterator(); i.hasNext(); )
-    {
-      IFigure child = (IFigure)i.next();
-      fixUp(child, delta);
-    }                       
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/ExpandableGraphNodeFigure.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/ExpandableGraphNodeFigure.java
deleted file mode 100644
index e339103..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/ExpandableGraphNodeFigure.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.figures;
-            
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-              
-
-//  ------------------------------------------------------------
-//  | ExpandableGraphNodeFigure                                |
-//  |                                                          |
-//  |   ----------------------------------   ---------------   |
-//  |   | verticalGroup                  |   |             |   |
-//  |   |                                |   |             |   |
-//  |   | -----------------------------  |   |             |   |
-//  |   | | horizontalGroup           |  |   |             |   |
-//  |   | |                           |  |   |             |   |
-//  |   | | ---------------------     |  |   |             |   |
-//  |   | | | outlinedArea      |     |  |   |             |   |
-//  |   | | | ----------------- |     |  |   |  outer      |   |
-//  |   | | | | iconArea      | |     |  |   |  Content    |   |
-//  |   | | | ----------------- | [+] |  |   |  Area       |   |
-//  |   | | | ----------------- |     |  |   |             |   |
-//  |   | | | | innerContent  | |     |  |   |             |   |
-//  |   | | | ----------------- |     |  |   |             |   |
-//  |   | | ---------------------     |  |   |             |   |
-//  |   | -----------------------------  |   |             |   |
-//  |   |                                |   |             |   |
-//  |   |   ------------------           |   |             |   |
-//  |   |   | occurenceArea  |           |   |             |   |
-//  |   |   ------------------           |   |             |   |
-//  |   ----------------------------------   ---------------   |
-//  ------------------------------------------------------------
-
-public class ExpandableGraphNodeFigure extends RepeatableGraphNodeFigure
-{                        
-  protected ContainerFigure horizontalGroup;
-  protected Interactor interactor; 
-  protected ContainerFigure outerContentArea;
-
-  public boolean isExpanded()
-  {
-    return interactor.isExpanded();
-  }   
-
-  public void setExpanded(boolean isExpanded)
-  {
-    interactor.setExpanded(isExpanded);
-  }
-  
-  public ExpandableGraphNodeFigure()
-  {
-    super();    
-    isConnected = true;
-  }      
-
-  protected void createFigure()
-  {   
-    createPreceedingSpace(this);           
-    createVerticalGroup(this);
-    createHorizontalGroup(verticalGroup);
-    createOutlinedArea(horizontalGroup);   
-    createInteractor(horizontalGroup);
-    createOccurenceArea(verticalGroup);   
-    createOuterContentArea(this);
-  }
-  
-  protected void createVerticalGroup(IFigure parent)
-  {
-    verticalGroup = new FloatableFigure(this);
-    verticalGroup.getContainerLayout().setHorizontal(false);
-    parent.add(verticalGroup);
-  }
-
-  protected void createHorizontalGroup(IFigure parent)
-  {
-    horizontalGroup = new ContainerFigure();
-    parent.add(horizontalGroup);
-  }                 
-
-  protected void createInteractor(IFigure parent)
-  {
-    interactor = new Interactor();
-    interactor.setForegroundColor(ColorConstants.black);
-    interactor.setBackgroundColor(ColorConstants.white); 
-    parent.add(interactor);
-  } 
-
-  protected void createOuterContentArea(IFigure parent)
-  {
-    // create a small space between the interactor and the contentArea
-    //
-    RectangleFigure space = new RectangleFigure();
-    space.setVisible(false);
-    space.setPreferredSize(new Dimension(5, 10));
-    parent.add(space);   
-      
-    outerContentArea = new GraphNodeContainerFigure(this);
-    outerContentArea.getContainerLayout().setHorizontal(false);
-    parent.add(outerContentArea);
-  }
-
-  public Interactor getInteractor()
-  {
-    return interactor;
-  } 
-
-  public ContainerFigure getOuterContentArea()
-  {
-    return outerContentArea;
-  }
-     
-  public IFigure getConnectionFigure()
-  {
-    return horizontalGroup;
-  }
-
-  public Rectangle getConnectionRectangle()
-  {
-    return horizontalGroup.getBounds();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/FillLayout.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/FillLayout.java
deleted file mode 100644
index e358c0c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/FillLayout.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.figures;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.AbstractLayout;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-
-
-/**
- * Figures using the StackLayout as their layout manager have
- * their children placed on top of one another. Order of 
- * placement is determined by the order in which the children
- * were added, first child added placed on the bottom.
- */
-public class FillLayout extends AbstractLayout
-{
-         
-protected boolean isHorizontal = false;                    
-protected int spacing = 0;
-public Dimension min;  
-
-public FillLayout(){}     
-public FillLayout(boolean dummy){} 
-
-public FillLayout(int spacing)
-{ 
-  this.spacing = spacing; 
-}
-
-public void setHorizontal(boolean isHorizontal)
-{
- this.isHorizontal = isHorizontal;
-}
-
-/**
- * Calculates and returns the preferred size of the input container.
- * This is the size of the largest child of the container, as all
- * other children fit into this size.
- *
- * @param figure  Container figure for which preferred size is required.
- * @return  The preferred size of the input figure.
- * @since 2.0
- */
-protected Dimension calculatePreferredSize(IFigure figure, int w, int h)
-{	                 
-  Dimension d = calculatePreferredClientAreaSize(figure);
-	d.expand(figure.getInsets().getWidth(),
-	         figure.getInsets().getHeight());
-	//d.union(getBorderPreferredSize(figure));
-	return d;
-} 
-
-protected Dimension calculatePreferredClientAreaSize(IFigure figure)
-{
-  Dimension d = new Dimension();
-	List children = figure.getChildren(); 
-
-
-	for (Iterator i = children.iterator(); i.hasNext(); )
-  {
-		IFigure child = (IFigure)i.next();
-    Dimension childSize = child.getPreferredSize();
-
-    if (isHorizontal)
-    {
-      d.width += childSize.width;
-      d.height = Math.max(childSize.height, d.height);
-    }
-    else
-    {
-      d.height += childSize.height;
-      d.width = Math.max(childSize.width, d.width);
-    }
-	}	 
-
-                   
-  int childrenSize = children.size();       
-  if (childrenSize > 0)
-  {
-    if (isHorizontal)
-      d.width += spacing * (childrenSize - 1); 
-    else
-      d.height += spacing * (childrenSize - 1);
-  }       
-    
-  if (min != null)
-  {
-    d.width = Math.max(d.width, min.width);
-    d.height = Math.max(d.height, min.height);
-  }
-  return d;
-}
-
-/*
- * Returns the minimum size required by the input container.
- * This is the size of the largest child of the container, as all
- * other children fit into this size.
- */
-public Dimension getMinimumSize(IFigure figure, int w, int h)
-{
-	Dimension d = new Dimension();
-	List children = figure.getChildren();
-	IFigure child;
-	for (int i=0; i < children.size(); i++){
-		child = (IFigure)children.get(i);
-		d.union(child.getMinimumSize());
-	}
-	d.expand(figure.getInsets().getWidth(),
-	         figure.getInsets().getHeight());
-	return d;
-}
-
-public Dimension getPreferredSize(IFigure figure, int w, int h)
-{
-	return calculatePreferredSize(figure, w, h);
-}
-
-/*
- * Lays out the children on top of each other with
- * their sizes equal to that of the available
- * paintable area of the input container figure.
- */
-public void layout(IFigure figure){   
-                     
-  Dimension	preferredSize = calculatePreferredClientAreaSize(figure);
-	Rectangle r = figure.getClientArea().getCopy(); 
-
-	List children = figure.getChildren();
-                                        
-	for (Iterator i = children.iterator(); i.hasNext(); )
-  {
-		IFigure child = (IFigure)i.next();
-    Dimension childSize = child.getPreferredSize();
-
-    if (isHorizontal)
-    {
-		  child.setBounds(new Rectangle(r.x, r.y, childSize.width, Math.max(preferredSize.height, r.height)));
-      r.x += childSize.width + spacing;
-    }
-    else
-    {            
-		  child.setBounds(new Rectangle(r.x, r.y, Math.max(preferredSize.width, r.width), childSize.height));
-      r.y += childSize.height + spacing;
-    }
-	}
-}
-} 
- 
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/FloatableFigure.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/FloatableFigure.java
deleted file mode 100644
index c224145..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/FloatableFigure.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.figures;
-            
-              
-
-public class FloatableFigure extends ContainerFigure
-{               
-  public GraphNodeFigure graphNodeFigure;  
-
-  public FloatableFigure(GraphNodeFigure graphNodeFigure)
-  {                  
-    super();
-    this.graphNodeFigure = graphNodeFigure;
-  }   
-
-  public GraphNodeFigure getGraphNodeFigure()
-  {
-    return graphNodeFigure;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/GraphNodeContainerFigure.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/GraphNodeContainerFigure.java
deleted file mode 100644
index c06a655..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/GraphNodeContainerFigure.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.figures;
-            
-              
-
-public class GraphNodeContainerFigure extends ContainerFigure
-{               
-  public ExpandableGraphNodeFigure expandableGraphNodeFigure;  
-
-  public GraphNodeContainerFigure(ExpandableGraphNodeFigure expandableGraphNodeFigure)
-  {                  
-    super();
-    this.expandableGraphNodeFigure = expandableGraphNodeFigure;
-  }     
-
-  public boolean isExpanded()
-  {
-    return expandableGraphNodeFigure.isExpanded();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/GraphNodeFigure.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/GraphNodeFigure.java
deleted file mode 100644
index 3d9706d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/GraphNodeFigure.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.figures;
-            
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Rectangle;
-              
-
-//  ------------------------------
-//  | GraphNodeFigure            |
-//  |                            |
-//  | -------------------------  |
-//  | | vertical group        |  |
-//  | | --------------------- |  |
-//  | | | outlined area     | |  |
-//  | | | ----------------- | |  |
-//  | | | | icon area     | | |  |
-//  | | | ----------------- | |  |
-//  | | | ----------------- | |  |
-//  | | | | inner content | | |  |
-//  | | | ----------------- | |  |
-//  | | --------------------- |  |
-//  | -------------------------  |
-//  ------------------------------
-
-public class GraphNodeFigure extends ContainerFigure
-{                        
-  protected ContainerFigure verticalGroup; 
-  protected ContainerFigure outlinedArea;
-  protected ContainerFigure iconArea;
-  protected ContainerFigure innerContentArea; 
-         
-  protected boolean isConnected;
-  protected boolean isIsolated;
-
-  protected List childGraphNodeFigures = new ArrayList();
-  protected GraphNodeFigure parentGraphNodeFigure; 
-
-  public GraphNodeFigure()
-  { 
-    isIsolated = false;
-    createFigure();
-  }      
-
-  public boolean isExpanded()
-  {
-    return true;
-  }    
-
-  public boolean isConnected()
-  {
-    return isConnected;
-  }                    
-
-  public void setConnected(boolean isConnected)
-  {
-    this.isConnected = isConnected;
-  }
-
-  public void setIsIsolated(boolean isIsolated)
-  {
-    this.isIsolated = isIsolated; 
-  }
-
-  public boolean getIsIsolated()
-  {
-    return isIsolated; 
-  }
-
-  protected void createFigure()
-  {
-    createVerticalGroup(this);
-    createOutlinedArea(verticalGroup); 
-  }
-
-  protected void createVerticalGroup(IFigure parent)
-  {
-    verticalGroup = new ContainerFigure();
-    verticalGroup.getContainerLayout().setHorizontal(false);
-    parent.add(verticalGroup);
-  }
-
-  protected void createOutlinedArea(IFigure parent)
-  { 
-    outlinedArea = new ContainerFigure();
-    outlinedArea.getContainerLayout().setHorizontal(false);
-    parent.add(outlinedArea);      
-     
-    iconArea = new ContainerFigure();
-    outlinedArea.add(iconArea);
-
-    innerContentArea = new ContainerFigure();
-    innerContentArea.getContainerLayout().setHorizontal(false);
-    outlinedArea.add(innerContentArea);  
-  }   
-
-  public ContainerFigure getIconArea()
-  {
-    return iconArea;
-  }
-
-  public ContainerFigure getOutlinedArea()
-  {
-    return outlinedArea;
-  }
-
-  public ContainerFigure getInnerContentArea()
-  {
-    return innerContentArea;
-  } 
-
-  public IFigure getConnectionFigure()
-  {
-    return outlinedArea;
-  }
-
-  public Rectangle getConnectionRectangle()
-  {
-    return outlinedArea.getBounds();
-  }
-
-  public List getChildGraphNodeFigures()
-  {
-    return childGraphNodeFigures;
-  }
-
-  public void addNotify()                     
-  {
-    super.addNotify();                 
-    if (isConnected())
-    {
-      parentGraphNodeFigure = computeParentGraphNodeFigure(this);
-      if (parentGraphNodeFigure != null)
-      {   
-        parentGraphNodeFigure.getChildGraphNodeFigures().add(this);
-      }   
-    }
-  } 
-
-  public void removeNotify()
-  {     
-    super.removeNotify();
-    if (parentGraphNodeFigure != null)
-    {   
-      parentGraphNodeFigure.getChildGraphNodeFigures().remove(this);
-    }  
-  }
-
-  public GraphNodeFigure getParentGraphNodeFigure()
-  {
-    return parentGraphNodeFigure;
-  }  
-
-  public GraphNodeFigure computeParentGraphNodeFigure(IFigure figure)
-  {                   
-    GraphNodeFigure result = null;
-    IFigure parent = figure != null ? figure.getParent() : null;
-    while (parent != null)
-    {
-      if (parent instanceof GraphNodeFigure)
-      {    
-        GraphNodeFigure parentGraphNodeFigure = (GraphNodeFigure)parent;
-        if (parentGraphNodeFigure.isConnected())
-        {
-          result = (GraphNodeFigure)parent;
-          break;
-        }
-      }
-      parent = parent.getParent();
-    }   
-    return result;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/Interactor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/Interactor.java
deleted file mode 100644
index 7a64b8f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/Interactor.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.figures;
-            
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-
-/**
- * Interactor the +/- control commonly found in trees
- */
-public class Interactor extends RectangleFigure
-{
-  protected boolean isExpanded;
-
-  public Interactor()
-  {
-    super(); 
-    setPreferredSize(new Dimension(9, 9));               
-  }  
-
-  public void setExpanded(boolean isExpanded)
-  {                                         
-    this.isExpanded = isExpanded;
-  }
-
-  public boolean isExpanded()
-  {
-    return isExpanded;
-  }
-    
-  protected void fillShape(Graphics g)
-  {
-    super.fillShape(g);
-    Rectangle r = getBounds();                          
-    int mx = r.x + r.width / 2;
-    int my = r.y + r.height / 2;    
-    int s = 2;       
-    g.drawLine(r.x + s, my, r.x + r.width - s - 1, my); 
-    if (!isExpanded)
-    {
-      g.drawLine(mx, r.y + s, mx, r.y + r.height - s -1);
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/LabelFigure.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/LabelFigure.java
deleted file mode 100644
index 04c82b8..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/LabelFigure.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.figures;
-            
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.FigureUtilities;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-              
-
-public class LabelFigure extends Figure
-{                                                
-  protected String text = "";  
-  protected boolean isShowEmptyLabel = true;
-  protected int left = 4; 
-  protected int right = 4; 
-  protected int textHeight;
-  protected int textWidth;
-                       
-  public LabelFigure()
-  {
-    setPreferredSize(new Dimension());
-  }  
-
-  protected void setLeft(int left)
-  {
-    this.left = left;
-  }
-
-  protected void setRight(int right)
-  {
-    this.right = right;
-  }
-
-  public void setShowEmptyLabel(boolean isShowEmptyLabel)
-  {
-    this.isShowEmptyLabel = isShowEmptyLabel;
-  }     
-       
-
-  public void setText(String s)
-  { 
-	  if (s == null)
-		  s = "";
-
-    if (!text.equals(s))
-    {
-	    text = s;
-      if (text.length() > 0 || isShowEmptyLabel)
-      {
-        textHeight = FigureUtilities.getFontMetrics(getFont()).getHeight();
-        textWidth = FigureUtilities.getTextWidth(text, getFont());
-        textWidth = Math.max(textWidth, FigureUtilities.getTextWidth("abcdefg", getFont()));
-        setPreferredSize(new Dimension(textWidth + left + right, textHeight));
-      } 
-      else
-      {
-        setPreferredSize(new Dimension());
-      } 
-    }   
-    //revalidate(); 
-    //repaint();
-  }
-
-
-  
-  protected void paintFigure(Graphics graphics)
-  //protected void fillShape(Graphics graphics)
-  {  
-    super.paintFigure(graphics);
-    //super.fillShape(graphics);
-    if (text.length() > 0)
-    {
-      Rectangle r = getBounds();
-		  graphics.setForegroundColor(getForegroundColor());
-      graphics.drawString(text, left + r.x, r.y);// + (r.width - textWidth)/2, r.y + (r.height - textHeight)/2);           
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/PostLayoutManager.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/PostLayoutManager.java
deleted file mode 100644
index 21a1f54..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/PostLayoutManager.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.figures;
-
-import org.eclipse.draw2d.IFigure;
-
-
-public interface PostLayoutManager
-{
-  public void postLayout(IFigure figure);                    
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/RepeatableGraphNodeFigure.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/RepeatableGraphNodeFigure.java
deleted file mode 100644
index fd8d249..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/RepeatableGraphNodeFigure.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.figures;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.wst.xsd.ui.internal.graph.GraphicsConstants;
-
-
-              
-
-//  ------------------------------
-//  | RepeatableGraphNodeFigure  |
-//  |                            |
-//  | -------------------------  |
-//  | | vertical group        |  |
-//  | | --------------------- |  |
-//  | | | outlined area     | |  |
-//  | | | ----------------- | |  |
-//  | | | | icon area     | | |  |
-//  | | | ----------------- | |  |
-//  | | | ----------------- | |  |
-//  | | | | inner content | | |  |
-//  | | | ----------------- | |  |
-//  | | --------------------- |  |
-//  | |                       |  |
-//  | | ------------------    |  |
-//  | | | occurence area |    |  |
-//  | | ------------------    |  |
-//  | -------------------------  |
-//  ------------------------------
-
-public class RepeatableGraphNodeFigure extends GraphNodeFigure
-{                            
-  protected ContainerFigure occurenceArea;  
-  protected LabelFigure occurenceLabel; 
-
-  public RepeatableGraphNodeFigure()
-  {    
-    super();          
-  }     
-
-  protected void createFigure()
-  {                  
-    createPreceedingSpace(this);
-    createVerticalGroup(this);
-    createOutlinedArea(verticalGroup); 
-    createOccurenceArea(verticalGroup);
-  }
-
-  protected void createOccurenceArea(IFigure parent)
-  {
-    occurenceArea = new ContainerFigure();   
-    occurenceLabel = new LabelFigure();
-    occurenceLabel.setForegroundColor(ColorConstants.black);
-    occurenceLabel.setShowEmptyLabel(false);
-    occurenceLabel.setFont(GraphicsConstants.medium); 
-    occurenceArea.add(occurenceLabel);               
-    parent.add(occurenceArea);
-  }
-                                 
-  protected void createPreceedingSpace(IFigure parent)
-  {
-    // create a small space
-    RectangleFigure space = new RectangleFigure();
-    space.setVisible(false);
-    space.setPreferredSize(new Dimension(10, 10));
-    parent.add(space);  
-  } 
-
-  public LabelFigure getOccurenceLabel()
-  {
-    return occurenceLabel;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/RoundedLineBorder.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/RoundedLineBorder.java
deleted file mode 100644
index 75dbff7..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/RoundedLineBorder.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.figures;
-            
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.LineBorder;
-import org.eclipse.draw2d.geometry.Insets;
-import org.eclipse.swt.graphics.Color;
-              
-
-public class RoundedLineBorder extends LineBorder
-{               
-  protected int arcLength;   
-  protected int lineStyle = Graphics.LINE_SOLID;
-
-  public RoundedLineBorder(Color c, int width, int arcLength)
-  {
-	  super(c, width);     
-    this.arcLength = arcLength;
-  }
-
-  public RoundedLineBorder(int width, int arcLength)
-  {
-	  super(width);     
-    this.arcLength = arcLength;
-  }
-  
-  public RoundedLineBorder(Color c, int width, int arcLength, int lineStyle)
-  {
-    super(c, width);
-    this.arcLength = arcLength;
-    this.lineStyle = lineStyle;
-  }
-
-  public RoundedLineBorder(int width, int arcLength, int lineStyle)
-  {
-    super(width);
-    this.arcLength = arcLength;
-    this.lineStyle = lineStyle;
-  }
-
-  public void paint(IFigure figure, Graphics graphics, Insets insets)
-  {
-      int rlbWidth = getWidth();
-	  tempRect.setBounds(getPaintRectangle(figure, insets));
-  	if (rlbWidth%2 == 1)
-    {
-		  tempRect.width--;
-		  tempRect.height--;
-	  }
-	  tempRect.shrink(rlbWidth/2,rlbWidth/2);
-	  graphics.setLineWidth(rlbWidth);
-    graphics.setLineStyle(lineStyle);
-	  if (getColor() != null)
-		  graphics.setForegroundColor(getColor());
-	  graphics.drawRoundRectangle(tempRect, arcLength, arcLength);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/model/Category.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/model/Category.java
deleted file mode 100644
index bd99148..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/model/Category.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.model;
-                                   
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNotationDeclaration;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-
-public class Category implements ModelAdapter
-{
-  public final static int ATTRIBUTES = 1;
-  public final static int ELEMENTS = 2;
-  public final static int TYPES = 3;
-  public final static int GROUPS = 5;
-  public final static int DIRECTIVES = 6;
-  public final static int NOTATIONS = 7;
-  public final static int ATTRIBUTE_GROUPS = 8;
-  public final static int IDENTITY_CONSTRAINTS = 9;
-  public final static int ANNOTATIONS = 10;
-
-  
-  protected XSDSchema schema;
-  protected int groupType;
-
-  //public void modelNameChanged();
-  public Category(XSDSchema schema, int groupType)
-  {
-    this.schema = schema;
-    this.groupType = groupType;
-  }       
-
-  public int getGroupType()
-  {
-    return groupType;
-  }   
-
-  public XSDSchema getXSDSchema()
-  {
-    return schema;
-  }
-
-  public String getName()
-  {
-    String name = "";
-    switch (groupType)
-    {
-      case ATTRIBUTES       : { name = XSDEditorPlugin.getXSDString("_UI_GRAPH_ATTRIBUTES"); break; }
-      case NOTATIONS        : { name = XSDEditorPlugin.getXSDString("_UI_GRAPH_NOTATIONS"); break; }
-      case ELEMENTS         : { name = XSDEditorPlugin.getXSDString("_UI_GRAPH_ELEMENTS"); break; }
-      case TYPES             : { name = XSDEditorPlugin.getXSDString("_UI_GRAPH_TYPES"); break; }    
-      case GROUPS           : { name = XSDEditorPlugin.getXSDString("_UI_GRAPH_GROUPS"); break; }      
-      case DIRECTIVES       : { name = XSDEditorPlugin.getXSDString("_UI_GRAPH_DIRECTIVES"); break; }
-    }      
-    return name;
-  }
-              
-  public List getChildren()
-  {                      
-    List list = Collections.EMPTY_LIST;
-    switch (groupType)
-    {
-      case ATTRIBUTES       : { list = getAttributeList(); break; }
-      case NOTATIONS        : { list = getNotations(); break; }
-      case ELEMENTS         : { list = getGlobalElements(); break; }
-      case TYPES            : { list = getTypes();  break; }
-      case GROUPS           : { list = getGroups(); break; }
-      case DIRECTIVES       : { list = getDirectives(); break; }
-    }      
-    return list;
-  }
-  
-  private boolean isSameNamespace(String ns1, String ns2)
-  {
-    if (ns1 == null) ns1 = "";
-    if (ns2 == null) ns2 = "";
-    
-    if (ns1.equals(ns2))
-    {
-      return true;
-    }
-    return false;
-  }
-  
-  protected List getGlobalElements()
-  {
-    List elements = schema.getElementDeclarations();
-    List list = new ArrayList();
-    for (Iterator i = elements.iterator(); i.hasNext(); )
-    {
-      XSDElementDeclaration elem = (XSDElementDeclaration)i.next();
-      String targetNamespace = elem.getTargetNamespace();
-      if (isSameNamespace(elem.getTargetNamespace(),schema.getTargetNamespace()))
-      {
-        list.add(elem);
-      }
-    }                
-    return list;
-  }
-
-  protected List getTypes()
-  {
-    List allTypes = schema.getTypeDefinitions();
-    List list = new ArrayList();
-    for (Iterator i = allTypes.iterator(); i.hasNext(); )
-    {
-      XSDTypeDefinition td = (XSDTypeDefinition)i.next();
-      if (td instanceof XSDComplexTypeDefinition)
-      {
-        XSDComplexTypeDefinition ct = (XSDComplexTypeDefinition)td;
-        if (isSameNamespace(ct.getTargetNamespace(),schema.getTargetNamespace()))
-        {
-          list.add(ct);
-        }
-      }
-    }                
-
-//    List simpleTypes = schema.getTypeDefinitions();
-    for (Iterator i = allTypes.iterator(); i.hasNext(); )
-    {
-      XSDTypeDefinition td = (XSDTypeDefinition)i.next();
-      if (td instanceof XSDSimpleTypeDefinition)
-      {
-        XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)td;
-        if (isSameNamespace(st.getTargetNamespace(),schema.getTargetNamespace()))
-        {
-          list.add(st);
-        }
-      }
-    }                
-    return list;
-  }
-  
-  protected List getGroups()
-  {
-    List groups = schema.getModelGroupDefinitions();
-    List list = new ArrayList();
-    for (Iterator i = groups.iterator(); i.hasNext(); )
-    {
-      XSDModelGroupDefinition group = (XSDModelGroupDefinition)i.next();
-      if (isSameNamespace(group.getTargetNamespace(),schema.getTargetNamespace()))
-      {
-        list.add(group);
-      }
-    }                
-    return list;
-  }
-  
-  protected List getDirectives()
-  {                 
-    List list = new ArrayList();
-    for (Iterator i = schema.getContents().iterator(); i.hasNext(); )
-    {
-      Object o = i.next();
-      if (o instanceof XSDSchemaDirective)
-      {
-        list.add(o);
-      }
-    } 
-    return list;
-  }
-
-  protected List getAttributeList()
-  {
-    List attributesList = new ArrayList();
-    for (Iterator iter = schema.getAttributeDeclarations().iterator(); iter.hasNext(); )
-    {
-      Object o = iter.next();
-      if (o instanceof XSDAttributeDeclaration)
-      {
-        XSDAttributeDeclaration attr = (XSDAttributeDeclaration)o;
-        if (attr != null)
-        {
-          if (attr.getTargetNamespace() != null)
-          {
-            if (!(attr.getTargetNamespace().equals("http://www.w3.org/2001/XMLSchema-instance")))
-            {
-              if (isSameNamespace(attr.getTargetNamespace(), schema.getTargetNamespace()))
-              {
-                attributesList.add(attr);
-              }
-            }
-          }
-          else
-          {
-            if (isSameNamespace(attr.getTargetNamespace(),schema.getTargetNamespace()))
-            {
-              attributesList.add(attr);
-            }
-          }
-        }
-      }
-    }
-    return attributesList;
-  }
-
-  protected List getNotations()
-  {
-    List notations = schema.getNotationDeclarations();
-    List list = new ArrayList();
-    for (Iterator i = notations.iterator(); i.hasNext(); )
-    {
-      XSDNotationDeclaration notation = (XSDNotationDeclaration)i.next();
-      if (isSameNamespace(notation.getTargetNamespace(),schema.getTargetNamespace()))
-      {
-        list.add(notation);
-      }
-    }                
-    return list;
-  }
-  
-  //
-  protected List listenerList = new ArrayList();
-                                                                                           
-  public void addListener(ModelAdapterListener l)
-  {
-    listenerList.add(l);
-  }  
-
-  public void removeListener(ModelAdapterListener l)
-  {
-    listenerList.remove(l);
-  } 
-
-  public Object getProperty(Object modelObject, String propertyName)
-  {
-    return null;
-  }
-
-  public void firePropertyChanged(Object modelObject, String propertyName)
-  {
-    List newList = new ArrayList();
-    newList.addAll(listenerList);
-    for (Iterator i = newList.iterator(); i.hasNext(); )
-    {
-      ModelAdapterListener l = (ModelAdapterListener)i.next();                  
-      try
-      {
-        l.propertyChanged(modelObject, propertyName);
-      }
-      catch (Exception e)
-      {
-      }
-    }
-  }  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/model/ModelAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/model/ModelAdapter.java
deleted file mode 100644
index 3066987..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/model/ModelAdapter.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.model;
-
-
-
-public interface ModelAdapter
-{               
-  public static final String CHILDREN_PROPERTY = "CHILDREN_PROPERTY";
-  public static final String LABEL_PROPERTY = "LABEL_PROPERTY";
-  public static final String IMAGE_PROPERTY = "IMAGE_PROPERTY";
-  public static final String DETAIL_PROPERTY = "DETAIL_PROPERTY";
-                                       
-  public void addListener(ModelAdapterListener l);
-  public void removeListener(ModelAdapterListener l);
-  public Object getProperty(Object modelObject, String propertyName); 
-  public void firePropertyChanged(Object modelObject, String propertyName);
-}
-
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/model/ModelAdapterListener.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/model/ModelAdapterListener.java
deleted file mode 100644
index ff6e4db..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/model/ModelAdapterListener.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.model;
-
-
-
-public interface ModelAdapterListener
-{                             
-  public void propertyChanged(Object object, String property);
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/model/XSDModelAdapterFactory.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/model/XSDModelAdapterFactory.java
deleted file mode 100644
index 471aebb..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/model/XSDModelAdapterFactory.java
+++ /dev/null
@@ -1,511 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.model;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDChildUtility;
-import org.eclipse.wst.xsd.ui.internal.provider.XSDAbstractAdapter;
-import org.eclipse.wst.xsd.ui.internal.provider.XSDModelAdapterFactoryImpl;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDSwitch;
-
-
-
-
-public class XSDModelAdapterFactory
-{  
-  protected static XSDModelAdapterFactory instance;
-  protected static XSDAdapterFactoryImpl xsdAdapterFactoryImpl = new XSDAdapterFactoryImpl();
-                                              
-  public static XSDModelAdapterFactory getInstance()
-  {
-    if (instance == null)
-    {
-      instance = new XSDModelAdapterFactory();
-    }                                         
-    return instance;
-  }
-
-
-  public static ModelAdapter getAdapter(Object o)
-  {                             
-    ModelAdapter result = null;
-    if (o instanceof Notifier)
-    {                                
-      Notifier target = (Notifier)o;
-		  Adapter adapter = xsdAdapterFactoryImpl.adapt(target);
-      if (adapter instanceof XSDObjectAdapter)
-      {
-        result = (XSDObjectAdapter)adapter;
-      }
-    }                              
-    else if (o instanceof ModelAdapter)
-    {
-      result = (ModelAdapter)o;
-    }
-    return result;
-  }             
-    
-
-  public static XSDObjectAdapter getExisitingAdapter(Object xsdObject)
-  {  
-    XSDObjectAdapter result = null;
-    if (xsdObject instanceof Notifier)
-    {                                
-      Notifier target = (Notifier)xsdObject;
-		  Adapter adapter = EcoreUtil.getExistingAdapter(target,xsdAdapterFactoryImpl);
-      if (adapter instanceof XSDObjectAdapter)
-      {
-        result = (XSDObjectAdapter)adapter;
-      }
-    }
-    return result;
-  }
-   
-  //
-  //
-  //
-  public static class XSDAdapterFactoryImpl extends AdapterFactoryImpl
-  {
-    public Adapter createAdapter(Notifier target)
-    {
-      XSDSwitch xsdSwitch = new XSDSwitch()
-      {                   
-        public Object caseXSDElementDeclaration(XSDElementDeclaration object)
-        {
-          return new XSDElementDeclarationAdapter(object);
-        }
-
-        public Object caseXSDSchema(XSDSchema object) 
-        {
-          return new XSDSchemaAdapter(object);
-        }
-
-        public Object defaultCase(EObject object) 
-        {
-          return new XSDObjectAdapter();
-        }         
-      };
-      Object o = xsdSwitch.doSwitch((EObject)target);
-
-      Adapter result = null;
-      if (o instanceof Adapter)
-      {
-        result  = (Adapter)o;
-      }
-      else
-      {          
-//        System.out.println("did not create adapter for target : " + target);
-//        Thread.dumpStack();
-      }
-      return result;
-    }      
-                               
-
-    public Adapter adapt(Notifier target)
-    {
-      return adapt(target, this);
-    }
-  }
-    
-
- 
-  //
-  //
-  //
-  protected static class XSDObjectAdapter extends AdapterImpl implements ModelAdapter
-  {   
-    protected List listenerList = new ArrayList();
-    protected boolean isUpdating = false;
-                                  
-    public boolean isAdapterForType(Object type)
-    {
-      return type == xsdAdapterFactoryImpl;
-    }                                             
-                
-    public void addListener(ModelAdapterListener l)
-    {
-      listenerList.add(l);
-    }  
-
-    public void removeListener(ModelAdapterListener l)
-    {
-      listenerList.remove(l);
-    } 
-                
-    public Object getProperty(Object modelObject, String propertyName)
-    {
-      Object result = null;
-      if (ModelAdapter.LABEL_PROPERTY.equals(propertyName))
-      {
-      	result = "";
-      	// TODO... move this logic into each adapter
-      	//
-        if (modelObject instanceof XSDNamedComponent)
-        {
-      	  result = ((XSDNamedComponent)modelObject).getName();
-        }
-        else if (modelObject instanceof XSDSchemaDirective)
-        {
-       	  result = ((XSDSchemaDirective)modelObject).getSchemaLocation();
-          if (result == null) result = "(" + XSDEditorPlugin.getXSDString("_UI_LABEL_NO_LOCATION_SPECIFIED") + ")";
-          if (result.equals("")) result = "(" + XSDEditorPlugin.getXSDString("_UI_LABEL_NO_LOCATION_SPECIFIED") + ")";
-          return result;
-        }
-      }
-      else if ("drillDown".equals(propertyName))
-      {
-      	// TODO... move this logic into each adapter
-      	//   
-      	List list = XSDChildUtility.getModelChildren(modelObject);	
-      	result = list.size() > 0 ? Boolean.TRUE : Boolean.FALSE;      	   
-      }      
-      else if (ModelAdapter.IMAGE_PROPERTY.equals(propertyName))
-      {
-      	// result = XSDEditorPlugin.getDefault().getImage("icons/XSDElement.gif");
-        XSDModelAdapterFactoryImpl factory = new XSDModelAdapterFactoryImpl();
-        Adapter adapter = factory.createAdapter((Notifier)modelObject);
-        result = ((XSDAbstractAdapter)adapter).getImage(modelObject);
-      }	
-      return result;
-    }
-
-    public void firePropertyChanged(Object modelObject, String propertyName)
-    {
-      List newList = new ArrayList();
-      newList.addAll(listenerList);
-      for (Iterator i = newList.iterator(); i.hasNext(); )
-      {
-        ModelAdapterListener l = (ModelAdapterListener)i.next();                  
-        try
-        {
-          l.propertyChanged(modelObject, propertyName);
-        }
-        catch (Exception e)
-        {
-        }
-      }
-    }  
-
-    public void notifyChanged(Notification msg)
-    {        
-      firePropertyChanged(msg.getNotifier(), null);
-    }     
-  }
-       
-
-     
-  //
-  //
-  //
-  protected static class XSDElementDeclarationAdapter extends XSDObjectAdapter implements ModelAdapterListener
-  {
-    protected XSDElementDeclaration ed;
-    protected XSDTypeDefinition typeDefinition;          
-
-    public XSDElementDeclarationAdapter(XSDElementDeclaration ed)
-    {
-      this.ed = ed;
-      updateTypeDefinition();
-    } 
-    
-    protected void updateTypeDefinition()
-    {
-      XSDTypeDefinition td = ed.getTypeDefinition();
-      td = (td instanceof XSDComplexTypeDefinition) ? td : null;
-      if (td != typeDefinition)
-      {                     
-        if (typeDefinition != null)
-        {
-          XSDObjectAdapter adapter = (XSDObjectAdapter)xsdAdapterFactoryImpl.adapt(typeDefinition);
-          adapter.removeListener(this);
-        }
-        typeDefinition = td;
-        if (typeDefinition != null)
-        {
-          XSDObjectAdapter adapter = (XSDObjectAdapter)xsdAdapterFactoryImpl.adapt(typeDefinition);
-          adapter.addListener(this);
-        }
-      }
-    } 
-
-
-    public void notifyChanged(Notification msg)
-    {
-      updateTypeDefinition();    
-      firePropertyChanged(msg.getNotifier(), null);                                                                          
-    } 
-
-
-    public void propertyChanged(Object object, String property)
-    {                         
-      // here we propagate typeDefinition changes to our listeners
-      firePropertyChanged(object, property);
-    }
-  }                         
-  
-
-  //
-  //
-  protected static class XSDSchemaAdapter extends XSDObjectAdapter
-  { 
-    protected XSDSchema schema;
-    protected List groups;            
-
-    public XSDSchemaAdapter(XSDSchema schema)
-    {
-      this.schema = schema;                         
-      groups = new ArrayList();                                       
-      groups.add(new Category(schema, Category.DIRECTIVES));
-      groups.add(new Category(schema, Category.ATTRIBUTES)); 
-      //groups.add(new Category(schema, Category.ATTRIBUTE_GROUPS));
-      groups.add(new Category(schema, Category.ELEMENTS));
-      groups.add(new Category(schema, Category.TYPES));
-      //groups.add(new Category(schema, Category.SIMPLE_TYPES));
-      groups.add(new Category(schema, Category.GROUPS));
-    }
-
-    public void notifyChanged(Notification msg)
-    {
-      super.notifyChanged(msg);
-      for (Iterator i = groups.iterator(); i.hasNext(); )
-      {
-        ModelAdapter group = (ModelAdapter)i.next();
-        group.firePropertyChanged(group, null);
-      }
-    }
-
-    public Object getProperty(Object modelObject, String propertyName)
-    {
-      Object result = null;
-      if ("groups".equals(propertyName))
-      { 
-        /*
-        List list = new ArrayList();
-        for (Iterator i = groups.iterator(); i.hasNext(); )
-        {
-          Category group = (Category)i.next();
-          if (group.getChildren().size() > 0)
-          {
-            list.add(group);
-          }
-        }
-        result = list;*/
-        result = groups;
-      }      
-      if (result == null)
-      {
-        result = super.getProperty(modelObject, propertyName);
-      }
-      return result;
-    }
-  }
-
-
-  public static void addModelAdapterListener(Object modelObject, ModelAdapterListener listener)
-  {                                                            
-    ModelAdapter modelAdapter = getModelAdapter(modelObject);
-    if (modelAdapter != null)
-    {
-      modelAdapter.addListener(listener);
-    }
-  }    
-
-
-  public static void removeModelAdapterListener(Object modelObject, ModelAdapterListener listener)
-  {                               
-    ModelAdapter modelAdapter = getModelAdapter(modelObject);
-    if (modelAdapter != null)
-    {
-      modelAdapter.removeListener(listener);
-    }
-  }   
-
-  protected static ModelAdapter getModelAdapter(Object modelObject)
-  {
-    ModelAdapter modelAdapter = null;                         
-    if (modelObject instanceof Notifier)
-    {
-      modelAdapter = (ModelAdapter)xsdAdapterFactoryImpl.adapt((Notifier)modelObject);
-    } 
-    else if (modelObject instanceof ModelAdapter)
-    {
-      modelAdapter = (ModelAdapter)modelObject;
-    } 
-    return modelAdapter;
-  }      
-}
-    
-
-
-// --------------------------------------------------------------------------------------------
-// todo... revist this stuff
-// --------------------------------------------------------------------------------------------
-
-  /*                   
-  public static void handleTypeChange(XSDTypeDefinition td, XSDSchema schema, int change)
-  {                                    
-    try
-    {
-      TypeFindingSchemaVisitor visitor = new TypeFindingSchemaVisitor(schema, td, change == Notification.ADD);
-      List list = visitor.findElementsUsingType(schema);          
-      
-      if (change == Notification.REMOVE)          
-      {
-        visitor.removeMatchingReferences();
-      }
-      else if (change == Notification.ADD)          
-      {
-        visitor.setMatchingReferences();
-      }
-      else
-      {
-        visitor.cleanUpTypeMismatches();        
-      }
-      
-      for (Iterator i = list.iterator(); i.hasNext(); )
-      {
-        Object o = i.next();  
-        XSDObjectAdapter adapter = getExisitingAdapter(o);
-        if (adapter != null)
-        { 
-          adapter.fireChildrenChangedNotification();
-        }
-      }          
-    }
-    catch (Exception e)
-    {
-      e.printStackTrace();
-    }
-  }
-          
-
-  protected static class TypeFindingSchemaVisitor extends org.eclipse.wst.xsd.utility.XSDVisitor
-  {                           
-    protected XSDTypeDefinition td;
-    protected List list = new ArrayList();   
-    protected XSDSchema schema;                            
-    protected boolean matchByName;
-
-    public TypeFindingSchemaVisitor(XSDSchema schema, XSDTypeDefinition td, boolean matchByName)
-    {
-      this.td = td;                                 
-      this.schema = schema;
-      this.matchByName = matchByName;
-    }
-
-    public void visitElementDeclaration(XSDElementDeclaration ed)
-    {                                  
-      if (ed.getTypeDefinition() == td)
-      {                
-        list.add(ed);        
-      }  
-      else if (matchByName)
-      {          
-        String[] name = getDOMName(ed);
-        if (name[0].equals(td.getTargetNamespace()) && name[1].equals(td.getName()))
-        {
-          list.add(ed);
-        }
-      }
-    } 
-
-    public List findElementsUsingType(XSDSchema schema)
-    {
-      if (td != null)
-      {
-        visitSchema(schema);
-      }    
-      return list;
-    }   
-
-    public List getMatchingTypeList()
-    {
-      return list;
-    } 
-
-    public String[] getDOMName(XSDElementDeclaration ed)
-    {      
-      String[] result = new String[2];
-      org.w3c.dom.Element domElement = ed.getElement();
-      String typeName = domElement.getAttribute("type");
-      if (typeName != null && !typeName.endsWith(td.getName()))
-      {             
-        int index = typeName.indexOf(":");                                      
-        String prefix = index == -1 ? "" : typeName.substring(0, index);   
-        result[0] = (String)schema.getQNamePrefixToNamespaceMap().get(prefix);
-        if (result[0] == null) result[0] = "";
-        if (result[1] == null) result[1] = "";
-        result[1] = index == -1 ? typeName : typeName.substring(index + 1);
-      }  
-      else
-      {
-        result[0] = "";
-        result[1] = "";
-      }
-      return result;
-    }
-    
-    
-    public void cleanUpTypeMismatches()
-    {
-      for (Iterator i = list.iterator(); i.hasNext(); )
-      {
-        XSDElementDeclaration ed = (XSDElementDeclaration)i.next();
-        XSDTypeDefinition candidateTd = ed.getTypeDefinition();
-        if (candidateTd != null && candidateTd.getName() != null)
-        {
-          String[] result = getDOMName(ed);
-          ed.setTypeDefinition((XSDTypeDefinition)schema.resolveComplexTypeDefinition(result[0], result[1]));         
-        }
-      }
-    }
-    
-    public void removeMatchingReferences()
-    {
-      for (Iterator i = list.iterator(); i.hasNext(); )
-      {
-        XSDElementDeclaration ed = (XSDElementDeclaration)i.next();
-        String[] result = getDOMName(ed);          
-        if (ed.getElement() != null)
-        {
-          // NOTE ... this forces the model to reset the ed's XSDTypeDefinition without causing the
-          // DOM element's 'type' attribute to be set to null
-          ed.elementAttributesChanged(ed.getElement());
-        }
-      }
-    }
-    
-    public void setMatchingReferences()
-    {
-      for (Iterator i = list.iterator(); i.hasNext(); )
-      {
-        XSDElementDeclaration ed = (XSDElementDeclaration)i.next();
-        ed.setTypeDefinition(td);
-      }
-    }    
-  } */   
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/GenerateDtd.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/GenerateDtd.gif
deleted file mode 100644
index ac58c1e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/GenerateDtd.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/GenerateJava.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/GenerateJava.gif
deleted file mode 100644
index 2375c65..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/GenerateJava.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/GraphViewElementRef.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/GraphViewElementRef.gif
deleted file mode 100644
index d535dac..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/GraphViewElementRef.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/NewXSD.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/NewXSD.gif
deleted file mode 100644
index 47f6730..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/NewXSD.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/RegexWizardArrow.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/RegexWizardArrow.gif
deleted file mode 100644
index 3d550a3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/RegexWizardArrow.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/ValidateXSD.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/ValidateXSD.gif
deleted file mode 100644
index 2b347ac..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/ValidateXSD.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAll.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAll.gif
deleted file mode 100644
index 6d74e80..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAll.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAnnotate.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAnnotate.gif
deleted file mode 100644
index d2108c0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAnnotate.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAny.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAny.gif
deleted file mode 100644
index a39f93c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAny.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAnyAttribute.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAnyAttribute.gif
deleted file mode 100644
index 5280cc2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAnyAttribute.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAppInfo.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAppInfo.gif
deleted file mode 100644
index 2da001e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAppInfo.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAttribute.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAttribute.gif
deleted file mode 100644
index 79d49d0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAttribute.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAttributeGroup.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAttributeGroup.gif
deleted file mode 100644
index 648462f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAttributeGroup.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAttributeGroupRef.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAttributeGroupRef.gif
deleted file mode 100644
index a89fa8f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAttributeGroupRef.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAttributeRef.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAttributeRef.gif
deleted file mode 100644
index 8365af2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDAttributeRef.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDChoice.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDChoice.gif
deleted file mode 100644
index 89ba825..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDChoice.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDComplexContent.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDComplexContent.gif
deleted file mode 100644
index 41c68dd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDComplexContent.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDComplexType.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDComplexType.gif
deleted file mode 100644
index 007f852..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDComplexType.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDDoc.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDDoc.gif
deleted file mode 100644
index d349a05..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDDoc.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDElement.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDElement.gif
deleted file mode 100644
index dd45f08..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDElement.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDElementRef.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDElementRef.gif
deleted file mode 100644
index 749acfc..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDElementRef.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDExtension.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDExtension.gif
deleted file mode 100644
index 0cfb807..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDExtension.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDField.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDField.gif
deleted file mode 100644
index 378e43e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDField.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDFile.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDFile.gif
deleted file mode 100644
index 3900f1b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDFile.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDGlobalAttribute.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDGlobalAttribute.gif
deleted file mode 100644
index 79d49d0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDGlobalAttribute.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDGlobalElement.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDGlobalElement.gif
deleted file mode 100644
index dd45f08..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDGlobalElement.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDGroup.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDGroup.gif
deleted file mode 100644
index 555ef53..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDGroup.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDGroupRef.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDGroupRef.gif
deleted file mode 100644
index 3621342..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDGroupRef.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDImport.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDImport.gif
deleted file mode 100644
index 9e44ce5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDImport.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDInclude.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDInclude.gif
deleted file mode 100644
index b26c527..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDInclude.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDKey.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDKey.gif
deleted file mode 100644
index 04032a9..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDKey.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDKeyRef.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDKeyRef.gif
deleted file mode 100644
index ee5829d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDKeyRef.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDNotation.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDNotation.gif
deleted file mode 100644
index ce9df98..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDNotation.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDRedefine.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDRedefine.gif
deleted file mode 100644
index 56964c1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDRedefine.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSelector.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSelector.gif
deleted file mode 100644
index 2399a58..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSelector.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSequence.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSequence.gif
deleted file mode 100644
index 8bf3f97..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSequence.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimpleContent.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimpleContent.gif
deleted file mode 100644
index 7ef38df..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimpleContent.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimpleEnum.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimpleEnum.gif
deleted file mode 100644
index 11d7958..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimpleEnum.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimpleList.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimpleList.gif
deleted file mode 100644
index d08e78f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimpleList.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimplePattern.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimplePattern.gif
deleted file mode 100644
index a113cf4..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimplePattern.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimpleRestrict.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimpleRestrict.gif
deleted file mode 100644
index 38bc12e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimpleRestrict.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimpleType.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimpleType.gif
deleted file mode 100644
index 75f33c2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimpleType.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimpleUnion.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimpleUnion.gif
deleted file mode 100644
index 292adaf..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDSimpleUnion.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDUnique.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDUnique.gif
deleted file mode 100644
index 5a8a650..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/XSDUnique.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/back.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/back.gif
deleted file mode 100644
index 24d1a27..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/back.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/browsebutton.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/browsebutton.gif
deleted file mode 100644
index 13dae59..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/browsebutton.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/forward.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/forward.gif
deleted file mode 100644
index eab699e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/forward.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/generate_xml.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/generate_xml.gif
deleted file mode 100644
index f2e3635..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/generate_xml.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/regx_wiz.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/regx_wiz.gif
deleted file mode 100644
index 789d137..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/regx_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/reloadgrammar.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/reloadgrammar.gif
deleted file mode 100644
index c705db0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/reloadgrammar.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/sort.gif b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/sort.gif
deleted file mode 100644
index 3c65dc4..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/icons/sort.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/preferences/XSDPreferencePage.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/preferences/XSDPreferencePage.java
deleted file mode 100644
index 0506798..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/preferences/XSDPreferencePage.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.preferences;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorContextIds;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-
-public class XSDPreferencePage extends PreferencePage implements IWorkbenchPreferencePage, Listener 
-{
-  Text indentTextField;
-  String indentString;
-  Text schemaNsPrefixField;
-  Text defaultTargetNamespaceText;
-  Button qualifyXSDLanguage;
-
-  /**
-   * Creates preference page controls on demand.
-   *   @param parent  the parent for the preference page
-   */
-  protected Control createContents(Composite parent)
-  {
-    WorkbenchHelp.setHelp(parent, XSDEditorContextIds.XSDP_PREFERENCE_PAGE);
-
-    Group group = createGroup(parent, 2);   
-    group.setText(XSDEditorPlugin.getXSDString("_UI_TEXT_XSD_NAMESPACE_PREFIX"));
-
-    qualifyXSDLanguage = ViewUtility.createCheckBox(group, XSDEditorPlugin.getXSDString("_UI_QUALIFY_XSD"));
-    ViewUtility.createLabel(group, " ");
-
-    createLabel(group, XSDEditorPlugin.getXSDString("_UI_TEXT_XSD_DEFAULT_PREFIX"));
-    schemaNsPrefixField = createTextField(group);
-    schemaNsPrefixField.addKeyListener(new KeyAdapter()
-    {
-      public void keyPressed(KeyEvent e)
-      {
-        setValid(true);
-      }      
-    });
-    
-    createLabel(group, XSDEditorPlugin.getXSDString("_UI_TEXT_XSD_DEFAULT_TARGET_NAMESPACE"));
-    defaultTargetNamespaceText = createTextField(group);
-
-    initializeValues();
-
-    return new Composite(parent, SWT.NULL);
-  }
-
-  private Group createGroup(Composite parent, int numColumns) 
-  {
-    Group group = new Group(parent, SWT.NULL);
-
-    GridLayout layout = new GridLayout();
-    layout.numColumns = numColumns;
-    group.setLayout(layout);
-
-    GridData data = new GridData();
-    data.verticalAlignment = GridData.FILL;
-    data.horizontalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = true;
-    group.setLayoutData(data);
-    
-    return group;
-  }
-
-  private Text createTextField(Composite parent) 
-  {
-     Text text = new Text(parent, SWT.SINGLE | SWT.BORDER);
-     GridData data = new GridData();
-     data.verticalAlignment = GridData.FILL;
-     data.horizontalAlignment = GridData.FILL;
-     data.grabExcessHorizontalSpace = true;
-     text.setLayoutData(data);
-
-     return text;
-  }
-
-  private Label createLabel(Composite parent, String text) 
-  {
-    Label label = new Label(parent, SWT.LEFT);
-    label.setText(text);
-    
-    GridData data = new GridData();
-    data.verticalAlignment = GridData.CENTER;
-    data.horizontalAlignment = GridData.FILL;
-    label.setLayoutData(data);
-    
-    return label;
-  }
-  
-  /**
-   * Does anything necessary because the default button has been pressed.
-   */
-  protected void performDefaults() 
-  {
-    super.performDefaults();
-    initializeDefaults();
-    checkValues();
-  }
-
-  /**
-   * Do anything necessary because the OK button has been pressed.
-   *  @return whether it is okay to close the preference page
-   */
-  public boolean performOk() 
-  {
-    if (checkValues())
-    {
-      storeValues();    
-      return true;
-    }
-    return false;
-  }
-
-  protected void performApply()
-  {
-    if (checkValues())
-    {
-      storeValues();    
-    }
-  }
-
-  /**
-   * Handles events generated by controls on this page.
-   *   @param e  the event to handle
-   */
-  public void handleEvent(Event e) 
-  {
-    Widget source = e.widget;
-  }
-
-  /**
-   * @see IWorkbenchPreferencePage
-   */
-  public void init(IWorkbench workbench)
-  { 
-  }
-
-  /** 
-   * The indent is stored in the preference store associated with the XML Schema Model
-   */
-  public IPreferenceStore getPreferenceStore()
-  {
-    return XSDEditorPlugin.getPlugin().getPreferenceStore();
-  }
-
-  /**
-   * Initializes states of the controls using default values
-   * in the preference store.
-   */
-  private void initializeDefaults() 
-  {
-    schemaNsPrefixField.setText(getPreferenceStore().getDefaultString(XSDEditorPlugin.CONST_XSD_DEFAULT_PREFIX_TEXT));
-    qualifyXSDLanguage.setSelection(getPreferenceStore().getDefaultBoolean(XSDEditorPlugin.CONST_XSD_LANGUAGE_QUALIFY));
-    defaultTargetNamespaceText.setText(getPreferenceStore().getString(XSDEditorPlugin.CONST_DEFAULT_TARGET_NAMESPACE));
-  }
-
-  /**
-   * Initializes states of the controls from the preference store.
-   */
-  private void initializeValues() 
-  {
-    IPreferenceStore store = getPreferenceStore();
-    schemaNsPrefixField.setText(store.getString(XSDEditorPlugin.CONST_XSD_DEFAULT_PREFIX_TEXT));
-    qualifyXSDLanguage.setSelection(store.getBoolean(XSDEditorPlugin.CONST_XSD_LANGUAGE_QUALIFY));
-    defaultTargetNamespaceText.setText(store.getString(XSDEditorPlugin.CONST_DEFAULT_TARGET_NAMESPACE));
-  }
-
-  /**
-   * Stores the values of the controls back to the preference store.
-   */
-  private void storeValues() 
-  {
-    IPreferenceStore store = getPreferenceStore();
-
-    store.setValue(XSDEditorPlugin.CONST_XSD_DEFAULT_PREFIX_TEXT, getXMLSchemaPrefix());
-    store.setValue(XSDEditorPlugin.CONST_XSD_LANGUAGE_QUALIFY, getQualify());
-    store.setValue(XSDEditorPlugin.CONST_DEFAULT_TARGET_NAMESPACE, getXMLSchemaTargetNamespace());
-
-    XSDEditorPlugin.getPlugin().savePluginPreferences();
-  }
-
-  public String getXMLSchemaPrefix()
-  {
-    String prefix = schemaNsPrefixField.getText();
-    if (prefix == null || prefix.equals("")) 
-    {
-      return "xsd";
-    }
-    return prefix;
-  }
-
-  public boolean getQualify()
-  {
-    return qualifyXSDLanguage.getSelection();
-  }
-  
-  /**
-   * Get the xml schema default target namespace
-   */
-  public String getXMLSchemaTargetNamespace()
-  {
-  	String targetNamespace = defaultTargetNamespaceText.getText();
-    if (targetNamespace == null || targetNamespace.equals("")) 
-    {
-      return XSDEditorPlugin.DEFAULT_TARGET_NAMESPACE;
-    }
-    return targetNamespace;
-  }
-  
-  public boolean checkValues()
-  {
-// KCPort TODO    String errorMessage = ValidateHelper.checkXMLName(schemaNsPrefixField.getText());
-	 String errorMessage = null;
-
-    if (errorMessage == null || errorMessage.length() == 0)
-    {
-      setErrorMessage(null);
-      setValid(true);
-      return true;
-    }
-    else
-    {
-      setErrorMessage(XSDEditorPlugin.getXSDString("_ERROR_LABEL_INVALID_PREFIX"));
-      setValid(false);
-      return false;
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AnyAttributePropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AnyAttributePropertySource.java
deleted file mode 100644
index 0f4e7e7..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AnyAttributePropertySource.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-
-
-public class AnyAttributePropertySource extends BasePropertySource implements IPropertySource
-{
-  private String[] namespaceComboValues = {
-              "",
-              "##any",
-              "##other",
-              "##targetNamespace",
-              "##local"
-  };
-  
-  private String[] processContentsComboValues = {
-              "",
-              XSDEditorPlugin.getXSDString("_UI_COMBO_LAX"),
-              XSDEditorPlugin.getXSDString("_UI_COMBO_SKIP"),
-              XSDEditorPlugin.getXSDString("_UI_COMBO_STRICT")
-  };
-  public AnyAttributePropertySource()
-  {
-  }
-
-  public AnyAttributePropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-    
-  public AnyAttributePropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-
-    XSDComboBoxPropertyDescriptor namespaceDescriptor = new XSDComboBoxPropertyDescriptor(
-        XSDConstants.NAMESPACE_ATTRIBUTE,
-        XSDConstants.NAMESPACE_ATTRIBUTE,
-        namespaceComboValues);
-    list.add(namespaceDescriptor);
-    
-    XSDComboBoxPropertyDescriptor processContentsDescriptor = new XSDComboBoxPropertyDescriptor(
-        XSDConstants.PROCESSCONTENTS_ATTRIBUTE,
-        XSDConstants.PROCESSCONTENTS_ATTRIBUTE,
-        processContentsComboValues);
-    list.add(processContentsDescriptor);
-    
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-    {
-      result = element.getAttribute((String) id);
-      if (result == null)
-      {
-        result = "";
-      }
-      return result;
-    }
-    return "";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value == null)
-    {
-      value = "";
-    }
-    if (value instanceof String)
-    {
-      if (((String) id).equals(XSDConstants.NAMESPACE_ATTRIBUTE))
-      {
-        String namespace = (String)value;
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_NAMESPACE_CHANGE"), element);
-        if (namespace != null && namespace.length() > 0)
-        {
-          element.setAttribute(XSDConstants.NAMESPACE_ATTRIBUTE, namespace);
-        }
-        else
-        {
-          element.removeAttribute(XSDConstants.NAMESPACE_ATTRIBUTE);
-        }
-        endRecording(element);
-      }
-      else if (((String) id).equals(XSDConstants.PROCESSCONTENTS_ATTRIBUTE))
-      {
-        String processContents = (String)value;
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_PROCESSCONTENTS_CHANGE"), element);
-        if (processContents != null && processContents.length() > 0)
-        {
-          element.setAttribute(XSDConstants.PROCESSCONTENTS_ATTRIBUTE, processContents);
-        }
-        else
-        {
-          element.removeAttribute(XSDConstants.PROCESSCONTENTS_ATTRIBUTE);
-        }
-        endRecording(element);
-      }
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-
-  }
-
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AnyContentPropertyDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AnyContentPropertyDescriptor.java
deleted file mode 100644
index b11ef1e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AnyContentPropertyDescriptor.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.DialogCellEditor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorContextIds;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-import org.w3c.dom.CharacterData;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class AnyContentPropertyDescriptor extends PropertyDescriptor
-{
-  Element element;
-  /**
-   * @param id
-   * @param displayName
-   */
-  public AnyContentPropertyDescriptor(Object id, String displayName, Element element)
-  {
-    super(id, displayName);
-    this.element = element;
-  }
-  
-  public CellEditor createPropertyEditor(Composite parent)
-  {
-    CellEditor editor = new AnyContentDialogCellEditor(parent);
-    if (getValidator() != null)
-      editor.setValidator(getValidator());
-    return editor;
-  }
-
-  public class AnyContentDialogCellEditor extends DialogCellEditor {
-
-    /**
-     * Creates a new Font dialog cell editor parented under the given control.
-     * The cell editor value is <code>null</code> initially, and has no 
-     * validator.
-     *
-     * @param parent the parent control
-     */
-    protected AnyContentDialogCellEditor(Composite parent) {
-      super(parent);
-    }
-
-    /**
-     * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(Control)
-     */
-    protected Object openDialogBox(Control cellEditorWindow)
-    {
-      Shell shell = Display.getCurrent().getActiveShell();
-      
-      AnyContentDialog dialog = new AnyContentDialog(shell);
-      dialog.setBlockOnOpen(true);
-      dialog.create();
-      
-      String value = (String)getValue();
-
-      int result = dialog.open();
-
-      if (result == Window.OK)
-      {
-        return dialog.getComment();
-      }
-      return value;
-    }
-
-  }
-
-  public class AnyContentDialog extends org.eclipse.jface.dialogs.Dialog
-  {
-    protected Text commentField;
-    protected Button okButton, cancelButton;
-    private String comment;
-    
-    public AnyContentDialog(Shell shell)
-    {
-      super(shell);
-    }
-
-    protected void configureShell(Shell shell)
-    {
-      super.configureShell(shell);
-    }
-
-    protected void buttonPressed(int buttonId)
-    {
-      if (buttonId == Dialog.OK)
-      {
-        comment = commentField.getText();
-      }
-      super.buttonPressed(buttonId);
-    }
-
-    public String getComment() { return comment; }
-
-    //
-    // Create the controls
-    //
-    public Control createDialogArea(Composite parent)
-    {
-      int tabIndex = 0;
-      Composite client = (Composite)super.createDialogArea(parent);
-      getShell().setText("Content for " + element.getLocalName());
-      
-      commentField = ViewUtility.createMultiTextField(client, 400, 200, true);
-      
-      WorkbenchHelp.setHelp(commentField, XSDEditorContextIds.XSDE_ANNOTATION_COMMENT);
-      commentField.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_COMMENT"));
-
-      String initialString = (String)getInitialContent();
-      commentField.setText(initialString);
-      return client;
-    }
-
-    private Object getInitialContent()
-    {
-      Object result = null;
-      if (element.hasChildNodes())
-       {
-        // if the element is Text
-        Node node = element.getFirstChild();
-        if (node instanceof CharacterData)
-         {
-          result = ((CharacterData)node).getData();
-        }
-      }
-      else
-       {
-        result = "";
-      }
-      return result;
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AnyElementPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AnyElementPropertySource.java
deleted file mode 100644
index df43637..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AnyElementPropertySource.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-
-
-public class AnyElementPropertySource
-  extends BasePropertySource
-  implements IPropertySource
-{
-
-  private String[] namespaceComboValues = {
-        "",
-        "##any",
-        "##other",
-        "##targetNamespace",
-        "##local"
-  };
-  
-  private String[] processContentsComboValues = {
-     "",
-     XSDEditorPlugin.getXSDString("_UI_COMBO_LAX"),
-     XSDEditorPlugin.getXSDString("_UI_COMBO_SKIP"),
-     XSDEditorPlugin.getXSDString("_UI_COMBO_STRICT")
-  };
-  
-  /**
-   * 
-   */
-  public AnyElementPropertySource()
-  {
-    super();
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public AnyElementPropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-  /**
-   * @param xsdSchema
-   */
-  public AnyElementPropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-
-    XSDComboBoxPropertyDescriptor namespaceDescriptor = new XSDComboBoxPropertyDescriptor(
-        XSDConstants.NAMESPACE_ATTRIBUTE,
-        XSDConstants.NAMESPACE_ATTRIBUTE,
-        namespaceComboValues);
-    list.add(namespaceDescriptor);
-    
-    XSDComboBoxPropertyDescriptor processContentsDescriptor = new XSDComboBoxPropertyDescriptor(
-        XSDConstants.PROCESSCONTENTS_ATTRIBUTE,
-        XSDConstants.PROCESSCONTENTS_ATTRIBUTE,
-        processContentsComboValues);
-    list.add(processContentsDescriptor);
-
-// These are moved to the tabbed properties general section     
-//    PropertyDescriptor minOccursDescriptor =
-//    new TextPropertyDescriptor(
-//        XSDConstants.MINOCCURS_ATTRIBUTE,
-//        XSDConstants.MINOCCURS_ATTRIBUTE);
-//    list.add(minOccursDescriptor);
-//    PropertyDescriptor maxOccursDescriptor =
-//    new TextPropertyDescriptor(
-//        XSDConstants.MAXOCCURS_ATTRIBUTE,
-//        XSDConstants.MAXOCCURS_ATTRIBUTE);
-//    list.add(maxOccursDescriptor);
-    
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-    {
-      result = element.getAttribute((String) id);
-      if (result == null)
-      {
-        result = "";
-      }
-      return result;
-
-//      if (((String) id).equals(XSDConstants.NAMESPACE_ATTRIBUTE))
-//       {
-//      }
-//      else if (((String) id).equals(XSDConstants.PROCESSCONTENTS_ATTRIBUTE))
-//       {
-//      }      
-    }
-    return "";
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value == null)
-     {
-      value = "";
-    }
-    if (value instanceof String)
-    {
-      if (((String) id).equals(XSDConstants.MAXOCCURS_ATTRIBUTE))
-      {
-        String max = (String)value;
-        String min = element.getAttribute(XSDConstants.MINOCCURS_ATTRIBUTE);
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_MAXOCCURS_CHANGE"), element);
-        if (max.length() > 0)
-        {
-          element.setAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE, max);
-        }
-        else
-        {
-          element.removeAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE);
-        }
-        endRecording(element);
-      }
-      else if (((String) id).equals(XSDConstants.MINOCCURS_ATTRIBUTE))
-      {
-        String min = (String)value;
-        String max = element.getAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE);
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_MINOCCURS_CHANGE"), element);
-        if (min.length() > 0)
-        {
-          element.setAttribute(XSDConstants.MINOCCURS_ATTRIBUTE, min);
-        }
-        else
-        {
-          element.removeAttribute(XSDConstants.MINOCCURS_ATTRIBUTE);
-        }
-        endRecording(element);
-      }
-      else if (((String) id).equals(XSDConstants.NAMESPACE_ATTRIBUTE))
-      {
-        String namespace = (String)value;
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_NAMESPACE_CHANGE"), element);
-        if (namespace.length() > 0)
-        {
-          element.setAttribute(XSDConstants.NAMESPACE_ATTRIBUTE, namespace);
-        }
-        else
-        {
-          element.removeAttribute(XSDConstants.NAMESPACE_ATTRIBUTE);
-        }
-        endRecording(element);
-      }
-      else if (((String) id).equals(XSDConstants.PROCESSCONTENTS_ATTRIBUTE))
-      {
-        String processContents = (String)value;
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_PROCESSCONTENTS_CHANGE"), element);
-        if (processContents.length() > 0)
-        {
-          element.setAttribute(XSDConstants.PROCESSCONTENTS_ATTRIBUTE, processContents);
-        }
-        else
-        {
-          element.removeAttribute(XSDConstants.PROCESSCONTENTS_ATTRIBUTE);
-        }
-        endRecording(element);
-      }
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AppInfoPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AppInfoPropertySource.java
deleted file mode 100644
index b99c768..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AppInfoPropertySource.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.CharacterData;
-import org.w3c.dom.Node;
-
-public class AppInfoPropertySource
-  extends BasePropertySource
-  implements IPropertySource
-{
-  public static String CONTENT = "Content";
-
-  /**
-   * 
-   */
-  public AppInfoPropertySource()
-  {
-    super();
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public AppInfoPropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-  /**
-   * @param xsdSchema
-   */
-  public AppInfoPropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-    // Create a descriptor and set a category
-    PropertyDescriptor sourceDescriptor =
-      new TextPropertyDescriptor(
-        XSDConstants.SOURCE_ATTRIBUTE,
-        XSDConstants.SOURCE_ATTRIBUTE);
-    list.add(sourceDescriptor);
-    AnyContentPropertyDescriptor contentDescriptor =
-      new AnyContentPropertyDescriptor(
-        CONTENT,
-        CONTENT,
-        element);
-    list.add(contentDescriptor);
-
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-    {
-      if (((String) id).equals(CONTENT))
-      {
-        try
-        {
-          if (element.hasChildNodes())
-          {
-            // if the element is Text
-            Node node = element.getFirstChild();
-            if (node instanceof CharacterData)
-            {
-              return ((CharacterData)node).getData();
-            }
-          }
-          else
-          {
-            return "";
-          }
-        }
-        catch (Exception e)
-        {
-            
-        }
-
-      }
-      else
-      {
-        result = element.getAttribute((String) id);
-      }
-    }
-    if (result == null)
-    {
-      result = "";
-    }
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value != null)
-    {
-      if (value instanceof String)
-      {
-        if (((String)id).equals(XSDConstants.SOURCE_ATTRIBUTE))
-        {
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_SOURCE_ATTRIBUTE_CHANGE"), element);
-          if (((String)value).length() > 0)
-          {
-            element.setAttribute(XSDConstants.SOURCE_ATTRIBUTE, (String)value);
-          }
-          else
-          {
-            element.removeAttribute(XSDConstants.SOURCE_ATTRIBUTE);
-          }
-          endRecording(element);
-        }
-        else if (((String)id).equals(CONTENT))
-        {
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_COMMENT_CHANGE"), element);
-          try
-          {
-            if (element.hasChildNodes())
-            {
-              // if the element is Text
-              Node node = element.getFirstChild();
-              if (node instanceof CharacterData)
-              {
-                ((CharacterData)node).setData((String)value);
-              }
-            }
-            else
-            {
-              if (((String)value).length() > 0)
-              {
-                Node childNode = element.getOwnerDocument().createTextNode((String)value);
-                element.appendChild(childNode);
-              }
-            }
-            endRecording(element);
-          }
-          catch (Exception e)
-          {
-            
-          }
-        }
-        else  // shouldn't be here
-        {
-          element.setAttribute((String) id, (String) value);
-        }
-      }
-      else if (value instanceof Integer)
-      {
-      }
-    }
-    else
-    {
-      element.removeAttribute((String) id);
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AttributeGroupRefPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AttributeGroupRefPropertySource.java
deleted file mode 100644
index 74ca702..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AttributeGroupRefPropertySource.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class AttributeGroupRefPropertySource
-  extends BasePropertySource
-  implements IPropertySource
-{
-  private String[] refComboValues = { "" };
-  /**
-   * 
-   */
-  public AttributeGroupRefPropertySource()
-  {
-    super();
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public AttributeGroupRefPropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-  /**
-   * @param xsdSchema
-   */
-  public AttributeGroupRefPropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  
-  public void setInput(Element element)
-  {
-    this.element = element;
-    TypesHelper helper = new TypesHelper(xsdSchema);
-    java.util.List items = helper.getGlobalAttributes();
-      
-    if (XSDDOMHelper.inputEquals(element, XSDConstants.ATTRIBUTE_ELEMENT_TAG, true))
-    {
-      items = helper.getGlobalAttributes();
-//      WorkbenchHelp.setHelp(client, XSDEditorContextIds.XSDE_ATTRIBUTE_REF_DESIGN_VIEW);
-//      WorkbenchHelp.setHelp(refCombo, XSDEditorContextIds.XSDE_ATTRIBUTE_REF_NAME);      
-    }
-    else if (XSDDOMHelper.inputEquals(element, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, true))
-    {
-      items = helper.getGlobalAttributeGroups();
-//      WorkbenchHelp.setHelp(client, XSDEditorContextIds.XSDE_ATTRIBUTE_GROUP_REF_DESIGN_VIEW);
-//      WorkbenchHelp.setHelp(refCombo, XSDEditorContextIds.XSDE_ATTRIBUTE_GROUP_REF_NAME);
-    }
-    int size = items.size() + 1;
-    refComboValues = new String[size];
-    refComboValues[0] = "";
-    if (items != null)
-    {
-      for (int i = 0; i < items.size(); i++)
-      {
-        refComboValues[i + 1] = (String) items.get(i);
-      }
-    }
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-    // Create a descriptor and set a category
-    XSDComboBoxPropertyDescriptor refDescriptor =
-    new XSDComboBoxPropertyDescriptor(
-        XSDConstants.REF_ATTRIBUTE,
-        XSDConstants.REF_ATTRIBUTE,
-        refComboValues);
-    list.add(refDescriptor);
-
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-    {
-      result = element.getAttribute((String) id);
-      if (result == null)
-      {
-        result = "";
-      }
-//      if (((String) id).equals(XSDConstants.REF_ATTRIBUTE))
-//      {
-//      }
-      return result;
-    }
-    return "";
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value == null)
-     {
-      value = "";
-    }
-    if (value instanceof String)
-    {
-      if (((String) id).equals(XSDConstants.REF_ATTRIBUTE))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_ATTRIBUTEGROUP_REF_CHANGE"), element);
-        element.setAttribute(XSDConstants.REF_ATTRIBUTE, (String) value);
-        endRecording(element);
-      }
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AttributePropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AttributePropertySource.java
deleted file mode 100644
index f89b2f0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AttributePropertySource.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalAttributeRenamer;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-
-public class AttributePropertySource
-  extends BasePropertySource
-  implements IPropertySource
-{
-  private String[] useComboValues =
-  {
-        "",
-        "prohibited",   // XSDEditorPlugin.getXSDString("_UI_COMBO_BOX_PROHIBITED"),
-        "optional",   // XSDEditorPlugin.getXSDString("_UI_COMBO_BOX_OPTIONAL"),
-        "required"  // XSDEditorPlugin.getXSDString("_UI_COMBO_BOX_REQUIRED")
-  };
-
-  protected String formComboValues[] =
-  {
-        "",
-        XSDEditorPlugin.getXSDString("_UI_COMBO_UNQUALIFIED"),
-        XSDEditorPlugin.getXSDString("_UI_COMBO_QUALIFIED")
-  };
-  
-  
-  /**
-   * 
-   */
-  public AttributePropertySource()
-  {
-    super();
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public AttributePropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-  /**
-   * @param xsdSchema
-   */
-  public AttributePropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-    // Create a descriptor and set a category
-    PropertyDescriptor nameDescriptor = new TextPropertyDescriptor(XSDConstants.NAME_ATTRIBUTE, XSDConstants.NAME_ATTRIBUTE);
-    list.add(nameDescriptor);
-//    nameDescriptor.setCategory(XSDEditorPlugin.getXSDString("_UI_LABEL_GENERAL"));
-    TypesPropertyDescriptor typeDescriptor = new TypesPropertyDescriptor(
-      XSDConstants.TYPE_ATTRIBUTE,
-      XSDConstants.TYPE_ATTRIBUTE,
-      element, xsdSchema);
-    list.add(typeDescriptor);
-//    typeDescriptor.setCategory(XSDEditorPlugin.getXSDString("_UI_LABEL_GENERAL"));
-
-    Attr fixedAttr = element.getAttributeNode(XSDConstants.FIXED_ATTRIBUTE);
-    Attr defaultAttr = element.getAttributeNode(XSDConstants.DEFAULT_ATTRIBUTE);
-    String str;
-    if (fixedAttr != null)
-     {
-      str = XSDConstants.FIXED_ATTRIBUTE;
-    }
-    else if (defaultAttr != null)
-     {
-      str = XSDConstants.DEFAULT_ATTRIBUTE;
-    }
-    else
-     {
-      str = XSDConstants.FIXED_ATTRIBUTE + "/" + XSDConstants.DEFAULT_ATTRIBUTE;
-    }
-    
-    FixedOrDefaultTextPropertyDescriptor fixedOrDefaultDescriptor =
-    new FixedOrDefaultTextPropertyDescriptor(
-        str, 
-        str,
-        element);
-    list.add(fixedOrDefaultDescriptor);
-//    fixedOrDefaultDescriptor.setCategory(XSDEditorPlugin.getXSDString("_UI_LABEL_OTHER"));
-    
-    Object parentNode = element.getParentNode();
-    if (XSDDOMHelper.inputEquals(parentNode, XSDConstants.SCHEMA_ELEMENT_TAG, false))
-    {
-    }
-    else
-    {
-      XSDComboBoxPropertyDescriptor useDescriptor =
-      new XSDComboBoxPropertyDescriptor(
-          XSDConstants.USE_ATTRIBUTE,
-          XSDConstants.USE_ATTRIBUTE,
-          useComboValues);
-      list.add(useDescriptor);
-//      useDescriptor.setCategory(XSDEditorPlugin.getXSDString("_UI_LABEL_OTHER"));
-      XSDComboBoxPropertyDescriptor formDescriptor =
-      new XSDComboBoxPropertyDescriptor(
-          XSDConstants.FORM_ATTRIBUTE,
-          XSDConstants.FORM_ATTRIBUTE,
-          formComboValues);
-      list.add(formDescriptor);
-//      formDescriptor.setCategory(XSDEditorPlugin.getXSDString("_UI_LABEL_OTHER"));
-    }
-    
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-    {
-      result = element.getAttribute((String) id);
-      if (result == null)
-      {
-        result = "";
-      }
-      if (((String) id).equals(XSDConstants.TYPE_ATTRIBUTE))
-      {
-        if (result.equals(""))
-        {
-          if (checkForAnonymousType(element))
-          {
-            return "**anonymous**";
-          }
-          else
-          {
-            return XSDEditorPlugin.getXSDString("_UI_NO_TYPE"); 
-          }
-        }
-        else
-         {
-          return result;
-        }
-      }
-      return result;
-    }
-    return "";
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value == null)
-    {
-      value = "";
-    }
-    if (value instanceof String)
-    {
-      if (((String) id).equals(XSDConstants.TYPE_ATTRIBUTE))
-      {
-//        beginRecording(XSDEditorPlugin.getXSDString("_UI_TYPE_CHANGE"), element);
-//        element.setAttribute(XSDConstants.TYPE_ATTRIBUTE, (String)value);
-//        updateElementToNotAnonymous(element);
-//        endRecording(element);
-      }
-      else if (((String) id).equals(XSDConstants.NAME_ATTRIBUTE))
-      { 
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_ATTRIBUTE_NAME_CHANGE"), element);
-        // now rename any references to this element
-        if (xsdSchema != null)
-         {
-          XSDConcreteComponent comp = xsdSchema.getCorrespondingComponent(element);
-          if (comp != null && comp instanceof XSDAttributeDeclaration && comp.getRootContainer().equals(xsdSchema))
-          {
-            XSDAttributeDeclaration xsdAttributeDeclaration = (XSDAttributeDeclaration)comp;
-            xsdAttributeDeclaration.setName((String)value);
-            GlobalAttributeRenamer renamer = new GlobalAttributeRenamer(xsdAttributeDeclaration, (String)value);
-            renamer.visitSchema(xsdSchema);
-          }
-        }
-        element.setAttribute(XSDConstants.NAME_ATTRIBUTE, (String)value);
-        endRecording(element);
-      }
-      else if (((String) id).equals(XSDConstants.FIXED_ATTRIBUTE) || ((String) id).equals(XSDConstants.DEFAULT_ATTRIBUTE))
-      {            
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_ATTRIBUTE_VALUE_CHANGE"), element);
-        if (((String)value).equals(""))
-         {
-          element.removeAttribute((String)id);
-        }
-        else
-        {  
-          element.setAttribute((String) id, (String) value);
-        }
-        endRecording(element);
-      }
-      else if (((String) id).equals(XSDConstants.USE_ATTRIBUTE))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_ATTRIBUTE_USE_CHANGE"), element);
-        if (((String)value).equals(""))
-        {
-          element.removeAttribute(XSDConstants.USE_ATTRIBUTE);
-        }
-        else
-        {  
-          element.setAttribute((String) id, (String)value);
-        }
-        endRecording(element);
-      }
-      else if (((String) id).equals(XSDConstants.FORM_ATTRIBUTE))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_ATTRIBUTE_FORM_CHANGE"), element);
-        if (((String)value).equals(""))
-        {
-          element.removeAttribute(XSDConstants.FORM_ATTRIBUTE);
-        }
-        else
-        {
-          element.setAttribute(XSDConstants.FORM_ATTRIBUTE, (String)value);
-        }
-        endRecording(element);
-      }
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-    
-  }
-  
-  boolean checkForAnonymousType(Element element)
-  {
-    NodeList list = element.getElementsByTagNameNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-    if (list.getLength() > 0)
-     {
-      return true;
-    }
-    return false;
-  }  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AttributesTable.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AttributesTable.java
deleted file mode 100644
index f80e72e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/AttributesTable.java
+++ /dev/null
@@ -1,331 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-//import java.text.Collator;
-//import java.util.Comparator;
-//import java.util.List;
-//
-//import org.eclipse.jface.viewers.CellEditor;
-//import org.eclipse.jface.viewers.ColumnPixelData;
-//import org.eclipse.jface.viewers.ICellModifier;
-//import org.eclipse.jface.viewers.ILabelProvider;
-//import org.eclipse.jface.viewers.IStructuredContentProvider;
-//import org.eclipse.jface.viewers.ITableLabelProvider;
-//import org.eclipse.jface.viewers.LabelProvider;
-//import org.eclipse.jface.viewers.TableLayout;
-//import org.eclipse.jface.viewers.TableViewer;
-//import org.eclipse.jface.viewers.TextCellEditor;
-//import org.eclipse.jface.viewers.Viewer;
-//import org.eclipse.swt.SWT;
-//import org.eclipse.swt.events.MouseAdapter;
-//import org.eclipse.swt.events.MouseEvent;
-//import org.eclipse.swt.graphics.Image;
-//import org.eclipse.swt.widgets.Composite;
-//import org.eclipse.swt.widgets.Control;
-//import org.eclipse.swt.widgets.Table;
-//import org.eclipse.swt.widgets.TableColumn;
-//import org.eclipse.swt.widgets.TableItem;
-//import org.eclipse.ui.IEditorPart;
-//import org.eclipse.ui.views.properties.ComboBoxPropertyDescriptor;
-//import org.eclipse.ui.views.properties.IPropertyDescriptor;
-//import org.eclipse.ui.views.properties.IPropertySource;
-//import org.w3c.dom.Element;
-
-public class AttributesTable // extends TableViewer implements ICellModifier
-{
-//	protected static final String PROPERTY = "property"; //$NON-NLS-1$
-//	protected static final String VALUE = "value"; //$NON-NLS-1$
-//
-//	protected IEditorPart editorPart;
-//	protected String[] columnProperties = {PROPERTY, VALUE};
-//	protected PropertyTableProvider tableProvider = new PropertyTableProvider(this);
-//	protected CellEditor cellEditor;
-//	//protected StringComboBoxCellEditor comboCellEditor;
-//	protected IPropertySource propertySource;
-//
-//	public AttributesTable(IEditorPart editorPart, Composite parent)
-//	{
-//		super(new Table(parent, SWT.FULL_SELECTION | SWT.MULTI | SWT.FLAT | SWT.H_SCROLL | SWT.V_SCROLL));   
-//				 this.editorPart = editorPart;               
-//		getTable().setLinesVisible(true);
-//		getTable().setHeaderVisible(true);  
-//    
-//		setContentProvider(tableProvider);
-//		setLabelProvider(tableProvider);
-//		setColumnProperties(columnProperties);
-//
-//		for (int i = 0; i < columnProperties.length; i++)
-//		{
-//			TableColumn column = new TableColumn(getTable(), SWT.NONE, i);
-//			column.setText(columnProperties[i]);
-//			column.setAlignment(SWT.LEFT);
-//		}      
-//
-////		TableLayout layout = new TableLayout(); 
-////		ColumnWeightData data = new ColumnWeightData(40, 40, true);
-////		layout.addColumnData(data);
-////    
-////		ColumnWeightData data2 = new ColumnWeightData(80, 80, true);
-////		layout.addColumnData(data2);                       
-//
-//		TableLayout layout = new TableLayout();
-//		layout.addColumnData(new ColumnPixelData(130,true));
-//		layout.addColumnData(new ColumnPixelData(130,true));
-//		getTable().setLayout(layout);
-//		
-//         
-//		cellEditor = new TextCellEditor(getTable());                            
-//		resetCellEditors();           
-//
-//		setCellModifier(this);    
-//	}  
-//
-//	public void setPropertySource(IPropertySource propertySource)
-//	{
-//		this.propertySource = propertySource;
-//	}
-//
-//  /* (non-Javadoc)
-//   * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object, java.lang.String)
-//   */
-//  public boolean canModify(Object element, String property)
-//  {
-//		return property.equals(VALUE);
-//  }
-//  
-//  /* (non-Javadoc)
-//   * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object, java.lang.String)
-//   */
-//  public Object getValue(Object element, String property)
-//  {
-//		int column = 0;
-//		if (property.equals(columnProperties[0]))
-//		{
-//			column = 0;
-//		}
-//		else if (property.equals(columnProperties[1]))
-//		{
-//			column = 1;
-//		}    
-//		return tableProvider.getColumnValue(element, column);
-// }
-//
-//  /* (non-Javadoc)
-//   * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object, java.lang.String, java.lang.Object)
-//   */
-//  public void modify(Object element, String property, Object value)
-//  {
-//		TableItem item = (TableItem)element;
-//  	IPropertyDescriptor propertyDescriptor = (IPropertyDescriptor)item.getData();
-//              
-//	// if the new value is the same as the old value, the user has only clicked
-//	// on the cell in the course of 'browsing' ... so don't edit the value
-//	  Object oldValue = getValue(propertyDescriptor, property);       
-//	  if (value != null && !value.equals(oldValue)) 
-//	  {      
-//				 // we assume the value is empty that the attribute should be removed
-//				 // todo... we probably need to look at this in more detail
-//				 if (value instanceof String && ((String)value).length() == 0)
-//				 {
-//								value = null;
-//				 }
-//				 propertySource.setPropertyValue(propertyDescriptor.getId(), value);    
-//	  }                       
-//  }
-//
-//      
-//	protected void hookControl(Control control) {
-//	  // we need to hook up our own mouse listener first
-//				 // so that we can update the cellEditors before
-//				 // the 'internal' listener tries to get hold of them
-//			 Table tableControl = (Table)control;
-//				 tableControl.addMouseListener(new MouseAdapter() {
-//								public void mouseDown(MouseEvent e) {
-//								  System.out.println("Mouse down");
-//										   updateCellEditors();
-//								}
-//				 });
-//		  super.hookControl(control);
-//	}                                
-//
-//	protected void updateCellEditors()
-//	{
-//		CellEditor[] cellEditors = new CellEditor[2];
-//		cellEditors[0] = cellEditor;
-//		cellEditors[1] = cellEditor;
-//
-//		Element element = (Element)getInput();
-//              
-//		IPropertyDescriptor[] propertyDescriptors = propertySource.getPropertyDescriptors();
-//		int index = getTable().getSelectionIndex();
-//		if (index >= 0 && index < propertyDescriptors.length)
-//		{
-//			CellEditor[] oldCellEditors = getCellEditors();
-//			CellEditor oldCellEditor = (oldCellEditors.length > 1) ? oldCellEditors[1] : null;
-//			if (oldCellEditor != null && oldCellEditor != cellEditor)
-//			{
-//			 oldCellEditor.deactivate();
-//			 oldCellEditor.dispose();
-//			}
-//			cellEditors[1] = propertyDescriptors[index].createPropertyEditor(getTable());     
-//		}  
-//		setCellEditors(cellEditors);     
-//
-////		IPropertyDescriptor[] propertyDescriptors = propertySource.getPropertyDescriptors();
-////
-//// 		int index = getTable().getSelectionIndex();
-//// 		//cellEditor.dispose();
-////
-////		if (index >= 0 && index < propertyDescriptors.length)
-////		{
-////      cellEditor = propertyDescriptors[index].createPropertyEditor(getTable());
-////			Control control = cellEditor.getControl();
-////			if (control == null) {
-////				cellEditor.deactivate();
-////				cellEditor = null;
-////				return;
-////			}
-////			setCellEditors(new CellEditor[] {null, cellEditor});
-////			cellEditor.activate();
-////			cellEditor.setFocus();
-////		}
-//	}
-//                 
-//
-//	public String[] getStringArray(List list)
-//	{
-//		String[] result = new String[list.size()];
-//		for (int i = 0; i < result.length; i++)
-//		{
-//			result[i] = (String)list.get(i);
-//		}
-//		return result;
-//	}
-//                                   
-//	protected void resetCellEditors()
-//	{
-//			 CellEditor[] cellEditors = new CellEditor[2];
-//			 cellEditors[0] = null;
-//			 cellEditors[1] = cellEditor;
-//			 setCellEditors(cellEditors);  
-//	}
-//
-//
-//	class PropertyTableProvider extends LabelProvider implements ITableLabelProvider, IStructuredContentProvider
-//	{                  
-//		protected TableViewer viewer;
-//
-//		PropertyTableProvider(TableViewer viewer)
-//		{
-//			this.viewer = viewer;
-//		}
-//		
-//		public void inputChanged(Viewer viewer, Object oldInput, Object newInput)  
-//		{
-////		 resetCellEditors();                         
-////			if (newInput instanceof XMLElement)
-////			{      
-////					 propertySource = new ExtensiblePropertySource(editorPart, (XMLElement)newInput);
-////			} 
-////			if (newInput instanceof Element)
-////			{
-////				if (XSDDOMHelper.inputEquals(newInput, XSDConstants.ELEMENT_ELEMENT_TAG, false))
-////				{  
-////				  propertySource = new ElementPropertySource((Element)newInput, viewer);
-////				}
-////				else
-////				{  
-////  				 propertySource = new ReadOnlyPropertySource(editorPart, (Element)newInput);
-////				}
-////			}
-////			else
-////			{
-////						 propertySource = null;
-////			}          
-//		}
-//
-//		public Image getColumnImage(Object element, int columnIndex)
-//		{  
-//			return null;
-//		}      
-//
-//		public Object getColumnValue(Object o, int columnIndex)  
-//		{ 
-//			IPropertyDescriptor propertyDescriptor = (IPropertyDescriptor)o;
-//			if (columnIndex == 0)
-//			{
-//			  return propertyDescriptor.getId();
-//			}
-//			else
-//			{  
-//			  return propertySource.getPropertyValue(propertyDescriptor.getId());
-//			}
-//		}
-//		  
-//		public String getColumnText(Object o, int columnIndex)  
-//		{ 
-//			IPropertyDescriptor propertyDescriptor = (IPropertyDescriptor)o;
-//			// (columnIndex == 1 && propertyDescriptor instanceof XSDComboBoxPropertyDescriptor)
-//			if ((columnIndex == 1 && propertyDescriptor instanceof OptionsComboBoxPropertyDescriptor) ||
-//			   (columnIndex == 1 && propertyDescriptor instanceof ComboBoxPropertyDescriptor))
-//			{
-//			  ILabelProvider lp = propertyDescriptor.getLabelProvider();
-//			  if (lp != null)
-//		  	{
-//			    return lp.getText(propertyDescriptor.getId());
-//		  	}
-//			}
-//			
-//			Object id = propertyDescriptor.getId();
-//      String attribute = "";
-//		  if (id != null && attribute instanceof String)
-//      {
-//        attribute = (String)id;
-//      }
-//      Object value = propertySource.getPropertyValue(attribute);
-//      String attributeValue = "";
-//      if (value != null)
-//      {
-//        attributeValue = (String)value;
-//      }
-//
-//      return (columnIndex == 0) ? attribute : attributeValue;
-//			
-////			  return (columnIndex == 0) ? propertyDescriptor.getId().toString() : propertySource.getPropertyValue(propertyDescriptor.getId()).toString();
-//		}  
-//
-//		public Object[] getElements(Object o)
-//		{         
-//						Object[] result = propertySource.getPropertyDescriptors();
-//						// For some strange reson the ViewerSorter doesn't seem to be working for this table
-//						// As a workaround we sort them in this method before returning them to the viewer
-////						if (result.length > 0)
-////						{
-////									 Arrays.sort(result, new InternalComparator());
-////						}
-//						return result;
-//		}
-//	}
-//
-//	class InternalComparator implements Comparator
-//	{
-//			 public int compare(Object e1, Object e2) 
-//			 {
-//							IPropertyDescriptor p1 = (IPropertyDescriptor)e1;
-//							IPropertyDescriptor p2 = (IPropertyDescriptor)e2;
-//							String p1Name = p1.getDisplayName();
-//							String p2Name = p2.getDisplayName();
-//							return Collator.getInstance().compare(p1.getDisplayName(), p2.getDisplayName());
-//			 }         
-//	}
-//
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/BasePropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/BasePropertySource.java
deleted file mode 100644
index 9d92d18..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/BasePropertySource.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.wst.xml.core.NameValidator;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDSchema;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-public abstract class BasePropertySource implements IPropertySource
-{
-	protected Element element;
-	protected Viewer viewer;
-	protected IPropertyDescriptor[] propertyDescriptors;
-	protected XSDSchema xsdSchema;
-	protected String [] trueFalseComboValues = {
-		"",
-		"false",
-		"true"
-	};
-
-  public BasePropertySource()
-  {
-    
-  }
-
-  public DocumentImpl getDocument(Element element)
-  {
-    return (DocumentImpl) element.getOwnerDocument();
-  }
-  
-  public void beginRecording(String description, Element element)
-  {
-    getDocument(element).getModel().beginRecording(this, description);
-  }
-  
-  public void endRecording(Element element)
-  {
-    DocumentImpl doc = (DocumentImpl) getDocument(element);
-    
-    doc.getModel().endRecording(this);    
-  }
-  
-  
-  public BasePropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    this.viewer = viewer;
-    this.xsdSchema = xsdSchema;
-  }
-  
-  public BasePropertySource(XSDSchema xsdSchema)
-  {
-    this.xsdSchema = xsdSchema;
-  }
-  
-  public void setViewer(Viewer viewer)
-  {
-    this.viewer = viewer;
-  }
-
-  public void setInput(Element element)
-  {
-    this.element = element;
-  }
-
-  protected XSDDOMHelper domHelper = new XSDDOMHelper();
-  /**
-   * Gets the domHelper.
-   * @return Returns a XSDDomHelper
-   */
-  public XSDDOMHelper getDomHelper()
-  {
-    return domHelper;
-  }
-  
-	protected boolean hasElementChildren(Node parentNode)
-	{
-		boolean hasChildrenElements = false;
-		if (parentNode != null && parentNode.hasChildNodes())
-		{
-			NodeList nodes = parentNode.getChildNodes();
-			for (int i = 0; i < nodes.getLength(); i++)
-			{
-				if (nodes.item(i) instanceof Element)
-				{
-					hasChildrenElements = true;
-					break;
-				}
-			}
-		}
-		return hasChildrenElements;
-	}
-  
-  protected boolean validateName(String name)
-  {
-    return NameValidator.isValid(name);
-  }
-
-  // TODO
-  protected boolean validateLanguage(String lang)
-  {
-    return true;
-  }
-  
-  // TODO  
-  protected boolean validatePrefix(String prefix)
-  {
-    return true;
-  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ComplexTypePropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ComplexTypePropertySource.java
deleted file mode 100644
index 7cb09e9..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ComplexTypePropertySource.java
+++ /dev/null
@@ -1,380 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.actions.SetBaseTypeAction;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalSimpleOrComplexTypeRenamer;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class ComplexTypePropertySource
-  extends BasePropertySource
-  implements IPropertySource
-{
-  private String DERIVED_BY_ID = "derived by"; // XSDEditorPlugin.getXSDString("_UI_LABEL_DERIVED_BY"); 
-  private String BASE_TYPE_ID = "base type"; //  XSDEditorPlugin.getXSDString("_UI_LABEL_BASE_TYPE");
-  
-  private String[] blockOrFinalComboValues = 
-  {
-    "",
-    "#all",
-    "extension",
-    "restriction"
-  };
-  
-  private String derivedByChoicesComboValues[] =
-  {
-        "",
-        XSDConstants.RESTRICTION_ELEMENT_TAG,
-        XSDConstants.EXTENSION_ELEMENT_TAG
-  };
-  
-  /**
-   * 
-   */
-  public ComplexTypePropertySource()
-  {
-    super();
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public ComplexTypePropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-  /**
-   * @param xsdSchema
-   */
-  public ComplexTypePropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-    // Create a descriptor and set a category
-    boolean isAnonymousType = checkForAnonymousType(element);
-// The three properties name, base type and derived by have been moved to the general tab
-//    if (isAnonymousType)
-//    {
-//      PropertyDescriptor nameDescriptor =
-//      new PropertyDescriptor(
-//          XSDConstants.NAME_ATTRIBUTE,
-//          XSDConstants.NAME_ATTRIBUTE);
-//      list.add(nameDescriptor);
-//    }
-//    else
-//    {
-//      PropertyDescriptor nameDescriptor =
-//      new TextPropertyDescriptor(
-//          XSDConstants.NAME_ATTRIBUTE,
-//          XSDConstants.NAME_ATTRIBUTE);
-//      list.add(nameDescriptor);
-//    }
-
-    Element contentModelElement = getDomHelper().getContentModelFromParent(element);
-//    SimpleContentPropertyDescriptor typeDescriptor = new SimpleContentPropertyDescriptor(
-//        BASE_TYPE_ID,
-//        BASE_TYPE_ID,
-//        contentModelElement, xsdSchema);
-//    list.add(typeDescriptor);
-//    XSDComboBoxPropertyDescriptor derivedByDescriptor =
-//    new XSDComboBoxPropertyDescriptor(
-//        DERIVED_BY_ID,
-//        DERIVED_BY_ID,
-//        derivedByChoicesComboValues);
-//    list.add(derivedByDescriptor);
-    
-    XSDComboBoxPropertyDescriptor abstractDescriptor =
-    new XSDComboBoxPropertyDescriptor(
-        XSDConstants.ABSTRACT_ATTRIBUTE,
-        XSDConstants.ABSTRACT_ATTRIBUTE,
-        trueFalseComboValues);
-    list.add(abstractDescriptor);
-
-    XSDComboBoxPropertyDescriptor mixedDescriptor =
-    new XSDComboBoxPropertyDescriptor(
-        XSDConstants.MIXED_ATTRIBUTE,
-        XSDConstants.MIXED_ATTRIBUTE,
-        trueFalseComboValues);
-    list.add(mixedDescriptor);
-        
-    XSDComboBoxPropertyDescriptor blockDescriptor =
-    new XSDComboBoxPropertyDescriptor(
-        XSDConstants.BLOCK_ATTRIBUTE,
-        XSDConstants.BLOCK_ATTRIBUTE,
-        blockOrFinalComboValues);
-    list.add(blockDescriptor);
-    XSDComboBoxPropertyDescriptor finalDescriptor =
-    new XSDComboBoxPropertyDescriptor(
-        XSDConstants.FINAL_ATTRIBUTE,
-        XSDConstants.FINAL_ATTRIBUTE,
-        blockOrFinalComboValues);
-    list.add(finalDescriptor);
-    
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-
-  public void setInput(Element element)
-  {
-    this.element = element;
-    
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-    {
-      String attributeName = (String)id;
-      result = element.getAttribute((String) id);
-      Element contentModelElement = getDomHelper().getContentModelFromParent(element);    
-      String baseType = getDomHelper().getBaseType(contentModelElement);
-      
-      if (result == null)
-      {
-        result = "";
-      }
-      
-      if (attributeName.equals(DERIVED_BY_ID))
-      {
-        return getDomHelper().getDerivedByName(contentModelElement);
-      }
-      else if (attributeName.equals(BASE_TYPE_ID))
-      {
-        if (baseType != null)
-        {
-          return baseType;
-        }
-        else
-        {
-          return "";
-        }
-      }
-      else if (attributeName.equals(XSDConstants.NAME_ATTRIBUTE))
-      {
-        String name = element.getAttribute(XSDConstants.NAME_ATTRIBUTE);
-        
-        boolean isAnonymousType = checkForAnonymousType(element);
-        if (isAnonymousType)
-        {
-          return "**anonymous**";
-        }
-        else
-        {
-          return name;
-        }
-      }
-        
-      return result;
-//      if (((String) id).equals(XSDConstants.ABSTRACT_ATTRIBUTE)
-//          || ((String) id).equals(XSDConstants.MIXED_ATTRIBUTE))
-//      {
-//      }
-//      else if (((String) id).equals(XSDConstants.BLOCK_ATTRIBUTE))
-//       {
-//      }
-//      else if (((String) id).equals(XSDConstants.FINAL_ATTRIBUTE))
-//      {
-//      }
-    }
-    return "";
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value == null)
-    {
-      value = "";
-    }
-    if (value instanceof String)
-    {
-      String newValue = (String)value;
-      String attributeName = (String)id;
-      
-      if (attributeName.equals(XSDConstants.NAME_ATTRIBUTE))
-      {
-        if (validateName(newValue))
-        {
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_COMPLEXTYPE_NAME_CHANGE"), element);
-          if (newValue.length() > 0)
-          {
-            // now rename any references to this type
-            if (xsdSchema != null)
-            {
-              XSDConcreteComponent comp = xsdSchema.getCorrespondingComponent(element);
-              if (comp != null && comp instanceof XSDComplexTypeDefinition && comp.getContainer().equals(xsdSchema))
-              {
-//                XSDComplexTypeDefinition ct = (XSDComplexTypeDefinition)comp;
-//                ct.setName(newValue);
-                GlobalSimpleOrComplexTypeRenamer renamer = new GlobalSimpleOrComplexTypeRenamer((XSDNamedComponent)comp, newValue);
-                renamer.visitSchema(xsdSchema);
-              }
-            }
-            element.setAttribute(XSDConstants.NAME_ATTRIBUTE, newValue);
-          }
-          else
-          {
-            element.removeAttribute(XSDConstants.NAME_ATTRIBUTE);
-          }
-          endRecording(element);
-        }
-      }
-      else if (attributeName.equals(DERIVED_BY_ID))
-      {
-        Element contentModelElement = getDomHelper().getContentModelFromParent(element);
-        String baseType = getDomHelper().getBaseType(contentModelElement);
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_DERIVEDBY_CHANGE"), element);
-        Element derivedByElem = getDomHelper().getDerivedByElement(element);
-        getDomHelper().changeDerivedByType(contentModelElement, newValue, baseType);
-        endRecording(element);
-      }
-      else if (attributeName.equals(BASE_TYPE_ID))
-      {
-        String derivedBy = getDomHelper().getDerivedByName(element);
-        
-        SetBaseTypeAction setBaseTypeAction = new SetBaseTypeAction(XSDEditorPlugin.getXSDString("_UI_LABEL_SET_BASE_TYPE"));
-        setBaseTypeAction.setXSDSchema(xsdSchema);
-        setBaseTypeAction.setComplexTypeElement(element);
-        setBaseTypeAction.setType(newValue);
-        setBaseTypeAction.setDerivedBy(derivedBy);
-        setBaseTypeAction.performAction();
-
-//        handleBaseTypeComboChange(newValue);
-        
-      }
-      else
-      {
-        if (attributeName.equals(XSDConstants.ABSTRACT_ATTRIBUTE))
-        {
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_COMPLEXTYPE_ABSTRACT_CHANGE"), element);
-        }
-        else if (attributeName.equals(XSDConstants.MIXED_ATTRIBUTE))
-        {
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_COMPLEXTYPE_MIXED_CHANGE"), element);
-        }
-        else if (attributeName.equals(XSDConstants.BLOCK_ATTRIBUTE))
-        {
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_COMPLEXTYPE_BLOCK_CHANGE"), element);
-        }
-        else if (attributeName.equals(XSDConstants.FINAL_ATTRIBUTE))
-        {
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_COMPLEXTYPE_FINAL_CHANGE"), element);
-        }
-        
-        if (newValue.length() > 0)
-        {
-          element.setAttribute((String) id,  (String)value);
-        }
-        else
-        {
-          element.removeAttribute((String) id);
-        }
-        endRecording(element);
-      }
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-    
-  }
-
-  boolean checkForAnonymousType(Element element)
-  {
-    Object parentElement = (Object)element.getParentNode();
-    boolean isAnonymous = false;
-    if (parentElement != null)
-    {
-      if (XSDDOMHelper.inputEquals(parentElement, XSDConstants.ELEMENT_ELEMENT_TAG, false))
-      {
-        isAnonymous = true; 
-      }
-    }
-    return isAnonymous;
-  }
-  
-  
-//  private void handleBaseTypeComboChange(String newType)
-//  {
-//    String tempChoice = newType;
-//    TypesHelper helper = new TypesHelper(xsdSchema);
-//    if (helper.getBuiltInTypeNamesList().contains(tempChoice) ||
-//        helper.getUserSimpleTypeNamesList().contains(tempChoice))
-//    {
-//      derivedByCombo.setText(XSDConstants.EXTENSION_ELEMENT_TAG);
-//      derivedByCombo.setEnabled(false);
-//    }
-//    else if (helper.getUserComplexTypeNamesList().contains(tempChoice))
-//     {
-//      Element contentModelElement = getDomHelper().getContentModelFromParent(element);    
-//      String derivedByString = getDomHelper().getDerivedByName(contentModelElement);
-//      derivedByCombo.setText(derivedByString);
-//      derivedByCombo.setEnabled(true); 
-//    }
-//    else
-//     {
-//      derivedByCombo.setText("");
-//      derivedByCombo.setEnabled(false); 
-//    }
-//  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/DocumentationPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/DocumentationPropertySource.java
deleted file mode 100644
index 06e9ef7..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/DocumentationPropertySource.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.CharacterData;
-import org.w3c.dom.Node;
-
-
-public class DocumentationPropertySource
-  extends BasePropertySource
-  implements IPropertySource
-{
-  public static String CONTENT = "Content";
-  
-  /**
-   * 
-   */
-  public DocumentationPropertySource()
-  {
-    super();
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public DocumentationPropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-
-  }
-  /**
-   * @param xsdSchema
-   */
-  public DocumentationPropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-    // Create a descriptor and set a category
-    PropertyDescriptor languageDescriptor =
-    new TextPropertyDescriptor(
-        "xml:lang",
-        "xml:lang"
-        );
-    list.add(languageDescriptor);
-    PropertyDescriptor sourceDescriptor =
-    new TextPropertyDescriptor(
-        XSDConstants.SOURCE_ATTRIBUTE,
-        XSDConstants.SOURCE_ATTRIBUTE);
-    list.add(sourceDescriptor);
-    AnyContentPropertyDescriptor contentDescriptor =
-    new AnyContentPropertyDescriptor(
-        CONTENT,
-        CONTENT,
-        element);
-    list.add(contentDescriptor);
-
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-     {
-      if (((String) id).equals(CONTENT))
-       {
-        try
-        {
-          if (element.hasChildNodes())
-           {
-            // if the element is Text
-            Node node = element.getFirstChild();
-            if (node instanceof CharacterData)
-             {
-              return ((CharacterData)node).getData();
-            }
-          }
-          else
-           {
-            return "";
-          }
-        }
-        catch (Exception e)
-        {
-          
-        }
-
-      }
-      else
-       {
-        result = element.getAttribute((String) id);
-      }
-    }
-    if (result == null)
-     {
-      result = "";
-    }
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value != null)
-    {
-      if (value instanceof String)
-      {
-        String newValue = (String)value;
-        if (((String)id).equals("xml:lang"))
-        {
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_DOCUMENTATION_LANG_CHANGE"), element);
-          if (newValue.length() > 0)
-          {
-            if (validateLanguage(newValue))
-            {
-              element.setAttribute("xml:lang", newValue);
-            }
-          }
-          else
-          {
-            // clearErrorMessage();
-            element.removeAttribute("xml:lang");
-          }
-          endRecording(element);
-        }
-        else if (((String)id).equals(XSDConstants.SOURCE_ATTRIBUTE))
-        {
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_DOCUMENTATION_SOURCE_CHANGE"), element);
-          if (newValue.length() > 0)
-          {
-            element.setAttribute(XSDConstants.SOURCE_ATTRIBUTE, newValue);
-          }
-          else
-          {
-            element.removeAttribute(XSDConstants.SOURCE_ATTRIBUTE);
-          }
-          endRecording(element);
-        }
-        else if (((String)id).equals(CONTENT))
-        {
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_DOCUMENTATION_COMMENT_CHANGE"), element);
-          try
-          {
-            if (element.hasChildNodes())
-            {
-              // if the element is Text
-              Node node = element.getFirstChild();
-              if (node instanceof CharacterData)
-              {
-                ((CharacterData)node).setData(newValue);
-              }
-            }
-            else
-            {
-              if (newValue.length() > 0)
-              {
-                Node childNode = element.getOwnerDocument().createTextNode(newValue);
-                element.appendChild(childNode);
-              }
-            }
-            endRecording(element);
-          }
-          catch (Exception e)
-          {
-            
-          }
-        }
-        else  // shouldn't be here
-        {
-          element.setAttribute((String) id, newValue);
-        }
-      }
-      else if (value instanceof Integer)
-      {
-      }
-    }
-    else
-    {
-      element.removeAttribute((String) id);
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
- 
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/DynamicCellEditor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/DynamicCellEditor.java
deleted file mode 100644
index b09526a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/DynamicCellEditor.java
+++ /dev/null
@@ -1,1174 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.ACC;
-import org.eclipse.swt.accessibility.AccessibleAdapter;
-import org.eclipse.swt.accessibility.AccessibleControlAdapter;
-import org.eclipse.swt.accessibility.AccessibleControlEvent;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.accessibility.AccessibleTextAdapter;
-import org.eclipse.swt.accessibility.AccessibleTextEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.TypedListener;
-
-public class DynamicCellEditor extends Composite
-{
-	Text text;
-	List list;
-	int maxItemCount = 5;
-	Shell popup;
-	Button arrow;
-	boolean hasFocus;
-	
-  public DynamicCellEditor(Composite parent, int style) {
-	super (parent, checkStyle (style));
-	
-	style = getStyle();
-	
-	int textStyle = SWT.SINGLE;
-	if ((style & SWT.READ_ONLY) != 0) textStyle |= SWT.READ_ONLY;
-	if ((style & SWT.FLAT) != 0) textStyle |= SWT.FLAT;
-	text = new Text (this, textStyle);
-	
-	popup = new Shell (getShell (), SWT.NO_TRIM);
-	
-	int listStyle = SWT.SINGLE | SWT.V_SCROLL;
-	if ((style & SWT.FLAT) != 0) listStyle |= SWT.FLAT;
-	if ((style & SWT.RIGHT_TO_LEFT) != 0) listStyle |= SWT.RIGHT_TO_LEFT;
-	if ((style & SWT.LEFT_TO_RIGHT) != 0) listStyle |= SWT.LEFT_TO_RIGHT;
-	list = new List (popup, listStyle);
-	
-	int arrowStyle = SWT.ARROW | SWT.DOWN;
-	if ((style & SWT.FLAT) != 0) arrowStyle |= SWT.FLAT;
-	arrow = new Button (this, arrowStyle);
-
-	Listener listener = new Listener () {
-		public void handleEvent (Event event) {
-			if (popup == event.widget) {
-				popupEvent (event);
-				return;
-			}
-			if (text == event.widget) {
-				textEvent (event);
-				return;
-			}
-			if (list == event.widget) {
-				listEvent (event);
-				return;
-			}
-			if (arrow == event.widget) {
-				arrowEvent (event);
-				return;
-			}
-			if (DynamicCellEditor.this == event.widget) {
-				comboEvent (event);
-				return;
-			}
-
-		}
-	};
-	
-	int [] comboEvents = {SWT.Dispose, SWT.Move, SWT.Resize};
-	for (int i=0; i<comboEvents.length; i++) this.addListener (comboEvents [i], listener);
-	
-	int [] popupEvents = {SWT.Close, SWT.Paint, SWT.Deactivate};
-	for (int i=0; i<popupEvents.length; i++) popup.addListener (popupEvents [i], listener);
-	
-	int [] textEvents = {SWT.KeyDown, SWT.KeyUp, SWT.Modify, SWT.MouseDown, SWT.MouseUp, SWT.Traverse, SWT.FocusIn, SWT.FocusOut};
-	for (int i=0; i<textEvents.length; i++) text.addListener (textEvents [i], listener);
-	
-	int [] listEvents = {SWT.MouseUp, SWT.Selection, SWT.Traverse, SWT.KeyDown, SWT.KeyUp, SWT.FocusIn, SWT.FocusOut};
-	for (int i=0; i<listEvents.length; i++) list.addListener (listEvents [i], listener);
-	
-	int [] arrowEvents = {SWT.Selection, SWT.FocusIn, SWT.FocusOut};
-	for (int i=0; i<arrowEvents.length; i++) arrow.addListener (arrowEvents [i], listener);
-	
-	initAccessible();
-}
-static int checkStyle (int style) {
-	int mask = SWT.BORDER | SWT.READ_ONLY | SWT.FLAT | SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT;
-	return style & mask;
-}
-/**
-* Adds an item.
-* <p>
-* The item is placed at the end of the list.
-* Indexing is zero based.
-*
-* @param string the new item
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_NULL_ARGUMENT)
-*	when the string is null
-* @exception org.eclipse.swt.SWTError(ERROR_ITEM_NOT_ADDED)
-*	when the item cannot be added
-*/
-public void add (String string) {
-	checkWidget();
-	if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-	list.add (string);
-}
-/**
-* Adds an item at an index.
-* <p>
-* The item is placed at an index in the list.
-* Indexing is zero based.
-*
-* This operation will fail when the index is
-* out of range.
-*
-* @param string the new item
-* @param index the index for the item
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_NULL_ARGUMENT)
-*	when the string is null
-* @exception org.eclipse.swt.SWTError(ERROR_ITEM_NOT_ADDED)
-*	when the item cannot be added
-*/
-public void add (String string, int index) {
-	checkWidget();
-	if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-	list.add (string, index);
-}
-/**	 
-* Adds the listener to receive events.
-* <p>
-*
-* @param listener the listener
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_NULL_ARGUMENT)
-*	when listener is null
-*/
-public void addModifyListener (ModifyListener listener) {;
-	checkWidget();
-	if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-	TypedListener typedListener = new TypedListener (listener);
-	addListener (SWT.Modify, typedListener);
-}
-/**	 
-* Adds the listener to receive events.
-* <p>
-*
-* @param listener the listener
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_NULL_ARGUMENT)
-*	when listener is null
-*/
-public void addSelectionListener(SelectionListener listener) {
-	checkWidget();
-	if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-	TypedListener typedListener = new TypedListener (listener);
-	addListener (SWT.Selection,typedListener);
-	addListener (SWT.DefaultSelection,typedListener);
-}
-void arrowEvent (Event event) {
-	switch (event.type) {
-		case SWT.FocusIn: {
-			if (hasFocus) return;
-			hasFocus = true;
-			if (getEditable ()) text.selectAll ();
-			Event e = new Event();
-			e.time = event.time;
-			notifyListeners(SWT.FocusIn, e);
-			break;
-		}
-		case SWT.FocusOut: {
-			event.display.asyncExec(new Runnable() {
-				public void run() {
-					if (DynamicCellEditor.this.isDisposed()) return;
-					Control focusControl = getDisplay().getFocusControl();
-					if (focusControl == list || focusControl == text) return;
-					hasFocus = false;
-					Event e = new Event();
-					notifyListeners(SWT.FocusOut, e);
-				}
-			});
-			break;
-		}
-		case SWT.Selection: {
-			dropDown (!isDropped ());
-			break;
-		}
-	}
-}
-/**
-* Clears the current selection.
-* <p>
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-*/
-public void clearSelection () {
-	checkWidget();
-	text.clearSelection ();
-	list.deselectAll ();
-}
-void comboEvent (Event event) {
-	switch (event.type) {
-		case SWT.Dispose:
-			if (popup != null && !popup.isDisposed ()) popup.dispose ();
-			popup = null;  
-			text = null;  
-			list = null;  
-			arrow = null;
-			break;
-		case SWT.Move:
-			dropDown(false);
-			break;
-		case SWT.Resize:
-			internalLayout();
-			break;
-	}
-}
-
-public Point computeSize (int wHint, int hHint, boolean changed) {
-	checkWidget();
-	int width = 0, height = 0;
-	Point textSize = text.computeSize (wHint, SWT.DEFAULT, changed);
-	Point arrowSize = arrow.computeSize(SWT.DEFAULT, SWT.DEFAULT, changed);
-	Point listSize = list.computeSize (wHint, SWT.DEFAULT, changed);
-	int borderWidth = getBorderWidth();
-	
-	height = Math.max (hHint, Math.max(textSize.y, arrowSize.y)  + 2*borderWidth);
-	width = Math.max (wHint, Math.max(textSize.x + arrowSize.x + 2*borderWidth, listSize.x + 2)  );
-	return new Point (width, height);
-}
-/**
-* Deselects an item.
-* <p>
-* If the item at an index is selected, it is
-* deselected.  If the item at an index is not
-* selected, it remains deselected.  Indices
-* that are out of range are ignored.  Indexing
-* is zero based.
-*
-* @param index the index of the item
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-*/
-public void deselect (int index) {
-	checkWidget();
-	list.deselect (index);
-}
-/**
-* Deselects all items.
-* <p>
-*
-* If an item is selected, it is deselected.
-* If an item is not selected, it remains unselected.
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-*/
-public void deselectAll () {
-	checkWidget();
-	list.deselectAll ();
-}
-void dropDown (boolean drop) {
-	if (drop == isDropped ()) return;
-	if (!drop) {
-		popup.setVisible (false);
-		text.setFocus();
-		return;
-	}
-
-	int index = list.getSelectionIndex ();
-	if (index != -1) list.setTopIndex (index);
-	Display display = getDisplay ();
-	Rectangle listRect = list.getBounds ();
-	Rectangle parentRect = display.map (getParent (), null, getBounds());
-	Point comboSize = getSize ();
-	Rectangle displayRect = getMonitor().getClientArea();
-	int width = Math.max (comboSize.x, listRect.width + 2);
-	int height = listRect.height + 2;
-	int x = parentRect.x;
-	int y = parentRect.y + comboSize.y;
-	if (y + height > displayRect.y + displayRect.height) y = parentRect.y - height;
-	popup.setBounds (x, y, width, height);
-	popup.setVisible (true);
-	list.setFocus();
-}
-public Control [] getChildren () {
-	checkWidget();
-	return new Control [0];
-}
-boolean getEditable () {
-	return text.getEditable ();
-}
-/**
-* Gets an item at an index.
-* <p>
-* Indexing is zero based.
-*
-* This operation will fail when the index is out
-* of range or an item could not be queried from
-* the OS.
-*
-* @param index the index of the item
-* @return the item
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_CANNOT_GET_ITEM)
-*	when the operation fails
-*/
-public String getItem (int index) {
-	checkWidget();
-	return list.getItem (index);
-}
-/**
-* Gets the number of items.
-* <p>
-* This operation will fail if the number of
-* items could not be queried from the OS.
-*
-* @return the number of items in the widget
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_CANNOT_GET_COUNT)
-*	when the operation fails
-*/
-public int getItemCount () {
-	checkWidget();
-	return list.getItemCount ();
-}
-/**
-* Gets the height of one item.
-* <p>
-* This operation will fail if the height of
-* one item could not be queried from the OS.
-*
-* @return the height of one item in the widget
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_CANNOT_GET_ITEM_HEIGHT)
-*	when the operation fails
-*/
-public int getItemHeight () {
-	checkWidget();
-	return list.getItemHeight ();
-}
-/**
-* Gets the items.
-* <p>
-* This operation will fail if the items cannot
-* be queried from the OS.
-*
-* @return the items in the widget
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_CANNOT_GET_ITEM)
-*	when the operation fails
-*/
-public String [] getItems () {
-	checkWidget();
-	return list.getItems ();
-}
-/**
-* Gets the selection.
-* <p>
-* @return a point representing the selection start and end
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-*/
-public Point getSelection () {
-	checkWidget();
-	return text.getSelection ();
-}
-/**
-* Gets the index of the selected item.
-* <p>
-* Indexing is zero based.
-* If no item is selected -1 is returned.
-*
-* @return the index of the selected item.
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-*/
-public int getSelectionIndex () {
-	checkWidget();
-	return list.getSelectionIndex ();
-}
-/**
-* Gets the widget text.
-* <p>
-* If the widget has no text, an empty string is returned.
-*
-* @return the widget text
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-*/
-public String getText () {
-	checkWidget();
-	return text.getText ();
-}
-/**
-* Gets the height of the combo's text field.
-* <p>
-* The operation will fail if the height cannot 
-* be queried from the OS.
-
-* @return the height of the combo's text field.
-* 
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_ERROR_CANNOT_GET_ITEM_HEIGHT)
-*	when the operation fails
-*/
-public int getTextHeight () {
-	checkWidget();
-	return text.getLineHeight();
-}
-/**
-* Gets the text limit.
-* <p>
-* @return the text limit
-* 
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-*/
-public int getTextLimit () {
-	checkWidget();
-	return text.getTextLimit ();
-}
-/**
-* Gets the index of an item.
-* <p>
-* The list is searched starting at 0 until an
-* item is found that is equal to the search item.
-* If no item is found, -1 is returned.  Indexing
-* is zero based.
-*
-* @param string the search item
-* @return the index of the item
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_NULL_ARGUMENT)
-*	when string is null
-*/
-public int indexOf (String string) {
-	checkWidget();
-	if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-	return list.indexOf (string);
-}
-/**
-* Gets the index of an item.
-* <p>
-* The widget is searched starting at start including
-* the end position until an item is found that
-* is equal to the search itenm.  If no item is
-* found, -1 is returned.  Indexing is zero based.
-*
-* @param string the search item
-* @param index the starting position
-* @return the index of the item
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_NULL_ARGUMENT)
-*	when string is null
-*/
-public int indexOf (String string, int start) {
-	checkWidget();
-	if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-	return list.indexOf (string, start);
-}
-
-void initAccessible() {
-	getAccessible().addAccessibleListener(new AccessibleAdapter() {
-		public void getHelp(AccessibleEvent e) {
-			e.result = getToolTipText();
-		}
-	});
-	
-	getAccessible().addAccessibleTextListener(new AccessibleTextAdapter() {
-		public void getCaretOffset(AccessibleTextEvent e) {
-			e.offset = text.getCaretPosition();
-		}
-	});
-	
-	getAccessible().addAccessibleControlListener(new AccessibleControlAdapter() {
-		public void getChildAtPoint(AccessibleControlEvent e) {
-			Point testPoint = toControl(new Point(e.x, e.y));
-			if (getBounds().contains(testPoint)) {
-				e.childID = ACC.CHILDID_SELF;
-			}
-		}
-		
-		public void getLocation(AccessibleControlEvent e) {
-			Rectangle location = getBounds();
-			Point pt = toDisplay(new Point(location.x, location.y));
-			e.x = pt.x;
-			e.y = pt.y;
-			e.width = location.width;
-			e.height = location.height;
-		}
-		
-		public void getChildCount(AccessibleControlEvent e) {
-			e.detail = 0;
-		}
-		
-		public void getRole(AccessibleControlEvent e) {
-			e.detail = ACC.ROLE_COMBOBOX;
-		}
-		
-		public void getState(AccessibleControlEvent e) {
-			e.detail = ACC.STATE_NORMAL;
-		}
-
-		public void getValue(AccessibleControlEvent e) {
-			e.result = getText();
-		}
-	});
-}
-boolean isDropped () {
-	return popup.getVisible ();
-}
-public boolean isFocusControl () {
-	checkWidget();
-	if (text.isFocusControl() || arrow.isFocusControl() || list.isFocusControl() || popup.isFocusControl()) {
-		return true;
-	} else {
-		return super.isFocusControl();
-	}
-}
-
-//public boolean isListVisible()
-//{
-//  checkWidget();
-//  return list.isVisible();
-//}
-
-void internalLayout () {
-	if (isDropped ()) dropDown (false);
-	
-	Rectangle rect = getClientArea();
-	int width = rect.width;
-	int height = rect.height;
-	Point arrowSize = arrow.computeSize(SWT.DEFAULT, height);
-	text.setBounds (0, 0, width - arrowSize.x, height);
-	arrow.setBounds (width - arrowSize.x, 0, arrowSize.x, arrowSize.y);
-	
-	Point size = getSize();
-	int itemCount = list.getItemCount();
-	itemCount = (itemCount == 0) ? maxItemCount : Math.min(maxItemCount, itemCount);
-	int itemHeight = list.getItemHeight () * itemCount;
-	Point listSize = list.computeSize (SWT.DEFAULT, itemHeight);
-	list.setBounds (1, 1, Math.max (size.x - 2, listSize.x), listSize.y);
-}
-void listEvent (Event event) {
-	switch (event.type) {
-		case SWT.FocusIn: {
-			if (hasFocus) return;
-			hasFocus = true;
-			if (getEditable ()) text.selectAll ();
-			Event e = new Event();
-			e.time = event.time;
-			notifyListeners(SWT.FocusIn, e);
-			break;
-		}
-		case SWT.FocusOut: {
-			event.display.asyncExec(new Runnable() {
-				public void run() {
-					if (DynamicCellEditor.this.isDisposed()) return;
-					Control focusControl = getDisplay().getFocusControl();
-					if (focusControl == text || focusControl == arrow || focusControl == list) return;
-					hasFocus = false;
-					Event e = new Event();
-					notifyListeners(SWT.FocusOut, e);
-				}
-			});
-			break;
-		}
-		case SWT.MouseUp: {
-			if (event.button != 1) return;
-			dropDown (false);
-			break;
-		}
-		case SWT.Selection: {
-			int index = list.getSelectionIndex ();
-			if (index == -1) return;
-			text.setText (list.getItem (index));
-			text.selectAll ();
-			list.setSelection(index);
-			Event e = new Event();
-			e.time = event.time;
-			e.stateMask = event.stateMask;
-			e.doit = event.doit;
-			notifyListeners(SWT.Selection, e);
-			event.doit = e.doit;
-			break;
-		}
-		case SWT.Traverse: {
-			switch (event.detail) {
-				case SWT.TRAVERSE_TAB_NEXT:
-				case SWT.TRAVERSE_RETURN:
-				case SWT.TRAVERSE_ESCAPE:
-				case SWT.TRAVERSE_ARROW_PREVIOUS:
-				case SWT.TRAVERSE_ARROW_NEXT:
-					event.doit = false;
-					break;
-			}
-			Event e = new Event();
-			e.time = event.time;
-			e.detail = event.detail;
-			e.doit = event.doit;
-			e.keyCode = event.keyCode;
-			notifyListeners(SWT.Traverse, e);
-			event.doit = e.doit;
-			break;
-		}
-		case SWT.KeyUp: {		
-			Event e = new Event();
-			e.time = event.time;
-			e.character = event.character;
-			e.keyCode = event.keyCode;
-			e.stateMask = event.stateMask;
-			notifyListeners(SWT.KeyUp, e);
-			break;
-		}
-		case SWT.KeyDown: {
-			if (event.character == SWT.ESC) { 
-				// escape key cancels popup list
-				dropDown (false);
-			}
-			if (event.character == SWT.CR || event.character == '\t') {
-				// Enter and Tab cause default selection
-				dropDown (false);
-				Event e = new Event();
-				e.time = event.time;
-				e.stateMask = event.stateMask;
-				notifyListeners(SWT.DefaultSelection, e);
-			}
-			//At this point the widget may have been disposed.
-			// If so, do not continue.
-			if (isDisposed()) break;
-			Event e = new Event();
-			e.time = event.time;
-			e.character = event.character;
-			e.keyCode = event.keyCode;
-			e.stateMask = event.stateMask;
-			notifyListeners(SWT.KeyDown, e);
-			break;
-			
-		}
-	}
-}
-void popupEvent(Event event) {
-	switch (event.type) {
-		case SWT.Paint:
-			// draw black rectangle around list
-			Rectangle listRect = list.getBounds();
-			Color black = getDisplay().getSystemColor(SWT.COLOR_BLACK);
-			event.gc.setForeground(black);
-			event.gc.drawRectangle(0, 0, listRect.width + 1, listRect.height + 1);
-			break;
-		case SWT.Close:
-			event.doit = false;
-			dropDown (false);
-			break;
-		case SWT.Deactivate:
-			dropDown (false);
-			break;
-	}
-}
-public void redraw () {
-	super.redraw();
-	text.redraw();
-	arrow.redraw();
-	if (popup.isVisible()) list.redraw();
-}
-public void redraw (int x, int y, int width, int height, boolean all) {
-	super.redraw(x, y, width, height, true);
-}
-
-/**
-* Removes an item at an index.
-* <p>
-* Indexing is zero based.
-*
-* This operation will fail when the index is out
-* of range or an item could not be removed from
-* the OS.
-*
-* @param index the index of the item
-* @return the selection state
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_ITEM_NOT_REMOVED)
-*	when the operation fails
-*/
-public void remove (int index) {
-	checkWidget();
-	list.remove (index);
-}
-/**
-* Removes a range of items.
-* <p>
-* Indexing is zero based.  The range of items
-* is from the start index up to and including
-* the end index.
-*
-* This operation will fail when the index is out
-* of range or an item could not be removed from
-* the OS.
-*
-* @param start the start of the range
-* @param end the end of the range
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_ITEM_NOT_REMOVED)
-*	when the operation fails
-*/
-public void remove (int start, int end) {
-	checkWidget();
-	list.remove (start, end);
-}
-/**
-* Removes an item.
-* <p>
-* This operation will fail when the item
-* could not be removed from the OS.
-*
-* @param string the search item
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_NULL_ARGUMENT)
-*	when string is null
-* @exception org.eclipse.swt.SWTError(ERROR_ITEM_NOT_REMOVED)
-*	when the operation fails
-*/
-public void remove (String string) {
-	checkWidget();
-	if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-	list.remove (string);
-}
-/**
-* Removes all items.
-* <p>
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-*/
-public void removeAll () {
-	checkWidget();
-	text.setText (""); //$NON-NLS-1$
-	list.removeAll ();
-}
-/**	 
-* Removes the listener.
-* <p>
-*
-* @param listener the listener
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_NULL_ARGUMENT)
-*	when listener is null
-*/
-public void removeModifyListener (ModifyListener listener) {
-	checkWidget();
-	if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-	removeListener(SWT.Modify, listener);	
-}
-/**	 
-* Removes the listener.
-* <p>
-*
-* @param listener the listener
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_NULL_ARGUMENT)
-*	when listener is null
-*/
-public void removeSelectionListener (SelectionListener listener) {
-	checkWidget();
-	if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-	removeListener(SWT.Selection, listener);
-	removeListener(SWT.DefaultSelection,listener);	
-}
-/**
-* Selects an item.
-* <p>
-* If the item at an index is not selected, it is
-* selected. Indices that are out of
-* range are ignored.  Indexing is zero based.
-*
-* @param index the index of the item
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-*/
-public void select (int index) {
-	checkWidget();
-	if (index == -1) {
-		list.deselectAll ();
-		text.setText (""); //$NON-NLS-1$
-		return;
-	}
-	if (0 <= index && index < list.getItemCount()) {
-		if (index != getSelectionIndex()) {
-			text.setText (list.getItem (index));
-			text.selectAll ();
-			list.select (index);
-			list.showSelection ();
-		}
-	}
-}
-public void setBackground (Color color) {
-	super.setBackground(color);
-	if (text != null) text.setBackground(color);
-	if (list != null) list.setBackground(color);
-	if (arrow != null) arrow.setBackground(color);
-}
-public boolean setFocus () {
-	checkWidget();
-	return text.setFocus ();
-}
-public void setFont (Font font) {
-	super.setFont (font);
-	text.setFont (font);
-	list.setFont (font);
-	internalLayout ();
-}
-public void setForeground (Color color) {
-	super.setForeground(color);
-	if (text != null) text.setForeground(color);
-	if (list != null) list.setForeground(color);
-	if (arrow != null) arrow.setForeground(color);
-}
-/**
-* Sets the text of an item; indexing is zero based.
-*
-* This operation will fail when the index is out
-* of range or an item could not be changed in
-* the OS.
-*
-* @param index the index for the item
-* @param string the item
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_NULL_ARGUMENT)
-*	when items is null
-* @exception org.eclipse.swt.SWTError(ERROR_ITEM_NOT_MODIFIED)
-*	when the operation fails
-*/
-public void setItem (int index, String string) {
-	checkWidget();
-	if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-	list.setItem (index, string);
-}
-/**
-* Sets all items.
-*
-* @param items the array of items
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_NULL_ARGUMENT)
-*	when items is null
-* @exception org.eclipse.swt.SWTError(ERROR_ITEM_NOT_ADDED)
-*	when the operation fails
-*/
-public void setItems (String [] items) {
-	checkWidget();
-	if (items == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-	int style = getStyle();
-	if ((style & SWT.READ_ONLY) != 0) text.setText (""); //$NON-NLS-1$
-	list.setItems (items);
-}
-/**
-* Sets the new selection.
-*
-* @param selection point representing the start and the end of the new selection
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_NULL_ARGUMENT)
-*	when selection is null
-*/
-public void setSelection (Point selection) {
-	checkWidget();
-	if (selection == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-	text.setSelection (selection.x, selection.y);
-}
-
-/**
-* Sets the widget text.
-*
-* @param string the widget text
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_NULL_ARGUMENT)
-*	when string is null
-*/
-public void setText (String string) {
-	checkWidget();
-	if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-	int index = list.indexOf (string);
-	if (index == -1) {
-		list.deselectAll ();
-		text.setText (string);
-		return;
-	}
-	text.setText (string);
-	text.selectAll ();
-	list.setSelection (index);
-	list.showSelection ();
-}
-/**
-* Sets the text limit.
-* 
-* @param limit new text limit
-*
-* @exception org.eclipse.swt.SWTError(ERROR_THREAD_INVALID_ACCESS)
-*	when called from the wrong thread
-* @exception org.eclipse.swt.SWTError(ERROR_WIDGET_DISPOSED)
-*	when the widget has been disposed
-* @exception org.eclipse.swt.SWTError(ERROR_CANNOT_BE_ZERO)
-*	when limit is 0
-*/
-public void setTextLimit (int limit) {
-	checkWidget();
-	text.setTextLimit (limit);
-}
-
-public void setToolTipText (String string) {
-	checkWidget();
-	super.setToolTipText(string);
-	arrow.setToolTipText (string);
-	text.setToolTipText (string);		
-}
-
-public void setVisible (boolean visible) {
-	super.setVisible(visible);
-	if (!visible) popup.setVisible(false);
-}
-
-void textEvent (Event event) {
-	switch (event.type) {
-		case SWT.FocusIn: {
-			if (hasFocus) return;
-			hasFocus = true;
-			if (getEditable ()) text.selectAll ();
-			Event e = new Event();
-			e.time = event.time;
-			notifyListeners(SWT.FocusIn, e);
-			break;
-		}
-		case SWT.FocusOut: {
-			event.display.asyncExec(new Runnable() {
-				public void run() {
-					if (DynamicCellEditor.this.isDisposed()) return;
-					Control focusControl = getDisplay().getFocusControl();
-					if (focusControl == list || focusControl == arrow) return;
-					hasFocus = false;
-					Event e = new Event();
-					notifyListeners(SWT.FocusOut, e);
-				}
-			});
-			break;
-		}
-		case SWT.KeyDown: {
-			
-			if (event.character == SWT.ESC) { // escape key cancels popup list
-				dropDown (false);
-			}
-			if (event.character == SWT.CR) {
-				dropDown (false);
-				Event e = new Event();
-				e.time = event.time;
-				e.stateMask = event.stateMask;
-				notifyListeners(SWT.DefaultSelection, e);
-			}
-			//At this point the widget may have been disposed.
-			// If so, do not continue.
-			if (isDisposed()) break;
-			
-			if (event.keyCode == SWT.ARROW_UP || event.keyCode == SWT.ARROW_DOWN) {
-				int oldIndex = getSelectionIndex ();
-				if (event.keyCode == SWT.ARROW_UP) {
-					select (Math.max (oldIndex - 1, 0));
-				} else {
-					select (Math.min (oldIndex + 1, getItemCount () - 1));
-				}
-		
-				if (oldIndex != getSelectionIndex ()) {
-					Event e = new Event();
-					e.time = event.time;
-					e.stateMask = event.stateMask;
-					notifyListeners(SWT.Selection, e);
-				}
-				//At this point the widget may have been disposed.
-				// If so, do not continue.
-				if (isDisposed()) break;
-			}
-			
-			// Further work : Need to add support for incremental search in 
-			// pop up list as characters typed in text widget
-						
-			Event e = new Event();
-			e.time = event.time;
-			e.character = event.character;
-			e.keyCode = event.keyCode;
-			e.stateMask = event.stateMask;
-			notifyListeners(SWT.KeyDown, e);
-			break;
-		}
-		case SWT.KeyUp: {
-			Event e = new Event();
-			e.time = event.time;
-			e.character = event.character;
-			e.keyCode = event.keyCode;
-			e.stateMask = event.stateMask;
-			notifyListeners(SWT.KeyUp, e);
-			break;
-		}
-		case SWT.Modify: {
-			list.deselectAll ();
-			Event e = new Event();
-			e.time = event.time;
-			notifyListeners(SWT.Modify, e);
-			break;
-		}
-		case SWT.MouseDown: {
-			if (event.button != 1) return;
-			if (text.getEditable ()) return;
-			boolean dropped = isDropped ();
-			text.selectAll ();
-			if (!dropped) setFocus ();
-			dropDown (!dropped);
-			break;
-		}
-		case SWT.MouseUp: {
-			if (event.button != 1) return;
-			if (text.getEditable ()) return;
-			text.selectAll ();
-			break;
-		}
-		case SWT.Traverse: {		
-			switch (event.detail) {
-				case SWT.TRAVERSE_RETURN:
-				case SWT.TRAVERSE_ARROW_PREVIOUS:
-				case SWT.TRAVERSE_ARROW_NEXT:
-					// The enter causes default selection and
-					// the arrow keys are used to manipulate the list contents so
-					// do not use them for traversal.
-					event.doit = false;
-					break;
-			}
-			
-			Event e = new Event();
-			e.time = event.time;
-			e.detail = event.detail;
-			e.doit = event.doit;
-			e.keyCode = event.keyCode;
-			notifyListeners(SWT.Traverse, e);
-			event.doit = e.doit;
-			break;
-		}
-	}
-}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ElementPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ElementPropertySource.java
deleted file mode 100644
index 1eba5d9..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ElementPropertySource.java
+++ /dev/null
@@ -1,546 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalElementRenamer;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class ElementPropertySource extends BasePropertySource implements IPropertySource
-{
-  private static final String PROPERTY_NAME = "org.eclipse.wst.xsd.ui.internal.name";
-  private String[] blockComboValues =
-    { "", "#all", "extension", "restriction", "substitution" };
-  private String[] finalComboValues =
-    { "", "#all", "extension", "restriction" };
-  private String[] substitutionGroupComboValues = { "" };
-  private String[] formComboValues =
-  {
-      "",
-      XSDEditorPlugin.getXSDString("_UI_COMBO_UNQUALIFIED"),
-      XSDEditorPlugin.getXSDString("_UI_COMBO_QUALIFIED")
-  };
-
-  public ElementPropertySource()
-  {
-    super();
-  }
-
-  public ElementPropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  
-  public ElementPropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-
-  public void setInput(Element element)
-  {
-    this.element = element;
-    TypesHelper helper = new TypesHelper(xsdSchema);
-    List globals = helper.getGlobalElements();
-    int size = globals.size() + 1;
-    substitutionGroupComboValues = new String[size];
-    substitutionGroupComboValues[0] = "";
-    if (globals != null)
-    {
-      for (int k = 0; k < globals.size(); k++)
-      {
-        substitutionGroupComboValues[k + 1] = (String) globals.get(k);
-      }
-    }
-  }
-
-  /*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-	 */
-  public Object getEditableValue()
-  {
-//    return element.getNodeName();
-    return null;
-  }
-
-  /*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-	 */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    Object parentNode = element.getParentNode();
-    boolean isGlobalElement = XSDDOMHelper.inputEquals(parentNode, XSDConstants.SCHEMA_ELEMENT_TAG, false);
-    
-    List list = new ArrayList();
-    // Create a descriptor and set a category
-//  These have been moved to the general tab
-//    PropertyDescriptor nameDescriptor =
-//      new TextPropertyDescriptor(
-//        XSDConstants.NAME_ATTRIBUTE,
-//        XSDConstants.NAME_ATTRIBUTE);
-//    list.add(nameDescriptor);
-//    TypesPropertyDescriptor typeDescriptor = new TypesPropertyDescriptor(
-//        XSDConstants.TYPE_ATTRIBUTE,
-//        XSDConstants.TYPE_ATTRIBUTE,
-//        element, xsdSchema);
-//    list.add(typeDescriptor);
-    if (isGlobalElement)
-    {
-      XSDComboBoxPropertyDescriptor abstractDescriptor =
-        new XSDComboBoxPropertyDescriptor(
-          XSDConstants.ABSTRACT_ATTRIBUTE,
-          XSDConstants.ABSTRACT_ATTRIBUTE,
-          trueFalseComboValues);
-      list.add(abstractDescriptor);
-    }
-    if (!isGlobalElement)
-    {
-      PropertyDescriptor minOccursDescriptor =
-        new TextPropertyDescriptor(
-          XSDConstants.MINOCCURS_ATTRIBUTE,
-          XSDConstants.MINOCCURS_ATTRIBUTE);
-      list.add(minOccursDescriptor);
-    
-      PropertyDescriptor maxOccursDescriptor =
-        new TextPropertyDescriptor(
-          XSDConstants.MAXOCCURS_ATTRIBUTE,
-          XSDConstants.MAXOCCURS_ATTRIBUTE);
-      list.add(maxOccursDescriptor);
-    }
-    XSDComboBoxPropertyDescriptor nillableDescriptor =
-      new XSDComboBoxPropertyDescriptor(
-        XSDConstants.NILLABLE_ATTRIBUTE,
-        XSDConstants.NILLABLE_ATTRIBUTE,
-        trueFalseComboValues);
-    list.add(nillableDescriptor);
-    XSDComboBoxPropertyDescriptor blockDescriptor =
-      new XSDComboBoxPropertyDescriptor(
-        XSDConstants.BLOCK_ATTRIBUTE,
-        XSDConstants.BLOCK_ATTRIBUTE,
-        blockComboValues);
-    list.add(blockDescriptor);
-    if (isGlobalElement)
-    {      
-      XSDComboBoxPropertyDescriptor finalDescriptor =
-        new XSDComboBoxPropertyDescriptor(
-          XSDConstants.FINAL_ATTRIBUTE,
-          XSDConstants.FINAL_ATTRIBUTE,
-          finalComboValues);
-      list.add(finalDescriptor);
-      XSDComboBoxPropertyDescriptor substitutionGroupDescriptor =
-        new XSDComboBoxPropertyDescriptor(
-          XSDConstants.SUBSTITUTIONGROUP_ATTRIBUTE,
-          XSDConstants.SUBSTITUTIONGROUP_ATTRIBUTE,
-          substitutionGroupComboValues);
-      list.add(substitutionGroupDescriptor);
-    }
-    if (!isGlobalElement)
-    {
-      XSDComboBoxPropertyDescriptor formDescriptor =
-        new XSDComboBoxPropertyDescriptor(
-          XSDConstants.FORM_ATTRIBUTE,
-          XSDConstants.FORM_ATTRIBUTE,
-          formComboValues);
-      list.add(formDescriptor);
-    }
-
-    Attr fixedAttr = element.getAttributeNode(XSDConstants.FIXED_ATTRIBUTE);
-    Attr defaultAttr = element.getAttributeNode(XSDConstants.DEFAULT_ATTRIBUTE);
-    String str;
-    if (fixedAttr != null)
-    {
-      str = XSDConstants.FIXED_ATTRIBUTE;
-    }
-    else if (defaultAttr != null)
-    {
-      str = XSDConstants.DEFAULT_ATTRIBUTE;
-    }
-    else
-    {
-      str = XSDConstants.FIXED_ATTRIBUTE + "/" + XSDConstants.DEFAULT_ATTRIBUTE;
-    }
-    
-    FixedOrDefaultTextPropertyDescriptor fixedOrDefaultDescriptor =
-      new FixedOrDefaultTextPropertyDescriptor(
-        str, 
-        str,
-        element);
-    list.add(fixedOrDefaultDescriptor);
-
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-    //    return propertyDescriptors;
-  }
-
-  /*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-	 */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-    {
-      String attributeName = (String)id;
-      result = element.getAttribute(attributeName);
-      if (result == null)
-      {
-        result = "";
-      }
-      if (attributeName.equals(XSDConstants.TYPE_ATTRIBUTE))
-      {
-        boolean isAnonymous = checkForAnonymousType(element);
-        if (isAnonymous)
-        {
-          return "**anonymous**";
-        }
-        if (result.equals(""))
-        {
-          result = XSDEditorPlugin.getXSDString("_UI_NO_TYPE");
-        }
-        return result;
-      }
-      else if (attributeName.equals(XSDConstants.MAXOCCURS_ATTRIBUTE) 
-        || attributeName.equals(XSDConstants.MINOCCURS_ATTRIBUTE)
-        || attributeName.equals(XSDConstants.SUBSTITUTIONGROUP_ATTRIBUTE)
-        || attributeName.equals(XSDConstants.FORM_ATTRIBUTE)
-        || attributeName.equals(XSDConstants.ABSTRACT_ATTRIBUTE)
-        || attributeName.equals(XSDConstants.NILLABLE_ATTRIBUTE)
-        || attributeName.equals(XSDConstants.BLOCK_ATTRIBUTE)
-        || attributeName.equals(XSDConstants.FINAL_ATTRIBUTE)
-        || attributeName.equals(XSDConstants.FIXED_ATTRIBUTE) 
-        || attributeName.equals(XSDConstants.DEFAULT_ATTRIBUTE)
-        || attributeName.equals(XSDConstants.NAME_ATTRIBUTE))
-      {
-        return result;
-      }
-    }
-    return "";
-  }
-
-  /*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-	 */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-
-  /*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-	 */
-  public void resetPropertyValue(Object id)
-  {
-  }
-
-  /*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object,
-	 *      java.lang.Object)
-	 */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value == null)
-    {
-      value = "";
-    }
-    if (value instanceof String)
-    {
-      String newValue = (String)value;
-      String attributeName = (String)id;
-      
-      if (attributeName.equals(XSDConstants.MAXOCCURS_ATTRIBUTE))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_MAXOCCURS_CHANGE"), element);
-      }
-      else if (attributeName.equals(XSDConstants.MINOCCURS_ATTRIBUTE))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_MINOCCURS_CHANGE"), element);      
-      }
-      else if (attributeName.equals(XSDConstants.SUBSTITUTIONGROUP_ATTRIBUTE))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_ELEMENT_SUBSTITUTIONGROUP_CHANGE"), element);
-      }
-      else if (attributeName.equals(XSDConstants.FORM_ATTRIBUTE))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_ELEMENT_FORM_CHANGE"), element);
-      }
-      else if (attributeName.equals(XSDConstants.ABSTRACT_ATTRIBUTE))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_ELEMENT_ABSTRACT_CHANGE"), element);
-      }
-      else if (attributeName.equals(XSDConstants.NILLABLE_ATTRIBUTE))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_ELEMENT_NILLABLE_CHANGE"), element);
-      }
-      else if (attributeName.equals(XSDConstants.BLOCK_ATTRIBUTE))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_ELEMENT_BLOCK_CHANGE"), element);
-      }
-      else if (attributeName.equals(XSDConstants.FINAL_ATTRIBUTE))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_ELEMENT_FINAL_CHANGE"), element);
-      }
-      else if (attributeName.equals(XSDConstants.FIXED_ATTRIBUTE) || attributeName.equals(XSDConstants.DEFAULT_ATTRIBUTE))
-      {  
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_ELEMENT_VALUE_CHANGE"), element);
-      }
-      else if (attributeName.equals(XSDConstants.NAME_ATTRIBUTE))
-      {
-        if (validateName(newValue))
-        {
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_ELEMENT_NAME_CHANGE"), element);
-          // now rename any references to this element
-          if (xsdSchema != null)
-          {
-            XSDConcreteComponent comp = xsdSchema.getCorrespondingComponent(element);
-            if (comp != null && comp instanceof XSDElementDeclaration && comp.getContainer().equals(xsdSchema))
-            {
-              GlobalElementRenamer renamer = new GlobalElementRenamer((XSDNamedComponent)comp, newValue);
-              renamer.visitSchema(xsdSchema);
-            }
-          }
-        }
-      }
-      else if (attributeName.equals(XSDConstants.TYPE_ATTRIBUTE))
-      {
-        // put logic in descriptor/cell editor
-//          beginRecording(XSDEditorPlugin.getXSDString("_UI_ELEMENT_TYPE_CHANGE"), element);
-      }
-    
-      if (newValue.length() > 0)
-      {
-        element.setAttribute((String) id, (String) value);
-      }
-      else
-      {
-        if (!attributeName.equals(XSDConstants.NAME_ATTRIBUTE))
-        {
-          element.removeAttribute((String) id);
-        }
-      }
-      endRecording(element);
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-
-  }
-
-  boolean checkForAnonymousType(Element element)
-  {
-    /* Using Ed's model to check
-     boolean isAnonymous = false;
-
-     XSDConcreteComponent component = getXSDSchema().getCorrespondingComponent(element);
-     if (component instanceof XSDElementDeclaration)
-     {
-     XSDElementDeclaration xsdElem = (XSDElementDeclaration)component;
-     isAnonymous = xsdElem.isSetAnonymousTypeDefinition();
-     }
-     return isAnonymous;
-     */
-
-    boolean isAnonymous = false;
-
-    Node aNode = getDomHelper().getChildNode(element, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-    if (aNode != null)
-     {
-      return true;
-    }
-    aNode = getDomHelper().getChildNode(element, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-    if (aNode != null)
-     {
-      isAnonymous = true;
-    }
-    return isAnonymous;
-  }
-  
-  
-//  void updateElementToAnonymous(Element element, String xsdType)
-//  {
-//    String prefix = element.getPrefix();
-//    prefix = (prefix == null) ? "" : (prefix + ":");
-//
-//    updateElementToNotAnonymous(element);
-//    boolean hasChildrenElements = hasElementChildren(element);
-//
-//    Element childNode = null;
-//    if (xsdType.equals(XSDConstants.COMPLEXTYPE_ELEMENT_TAG))
-//     {
-//      childNode = element.getOwnerDocument().createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, prefix + XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-//    }
-//    else if (xsdType.equals(XSDConstants.SIMPLETYPE_ELEMENT_TAG))
-//     {
-//      childNode = element.getOwnerDocument().createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, prefix + XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-//    }
-//
-//    element.appendChild(childNode);
-//    formatChild(childNode, hasChildrenElements);    
-//
-//
-//    /* Using Ed's model to do the above
-//     XSDConcreteComponent component = getXSDSchema().getCorrespondingComponent(element);
-//     if (component instanceof XSDElementDeclaration)
-//     {
-//     XSDElementDeclaration xsdElem = (XSDElementDeclaration)component;
-//     XSDFactoryImpl factory = new XSDFactoryImpl();
-//     XSDComplexTypeDefinition complex = factory.createXSDComplexTypeDefinition();
-//     XSDSimpleTypeDefinition simple = factory.createXSDSimpleTypeDefinition();
-//
-//     Node child = element.getFirstChild();
-//     if (XSDDOMHelper.inputEquals(child, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false) ||
-//     XSDDOMHelper.inputEquals(child, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, false))
-//     {
-//     element.removeChild(child);
-//     }
-//     
-//     FormatProcessor formatProcessor = new FormatProcessor();
-//     if (xsdType.equals(XSDConstants.COMPLEXTYPE_ELEMENT_TAG))
-//     {
-//     xsdElem.setAnonymousTypeDefinition(complex);
-//     Element elem = complex.getElement();
-//     formatProcessor.formatWithSiblingIndent((XMLNode)elem);
-//     }
-//     else if (xsdType.equals(XSDConstants.SIMPLETYPE_ELEMENT_TAG))
-//     {
-//     xsdElem.setAnonymousTypeDefinition(simple);
-//     Element elem = simple.getElement();  
-//     formatProcessor.formatWithSiblingIndent((XMLNode)elem);
-//     }
-//     }
-//     component.updateElement();
-//     */
-//  }
-//
-//  boolean isSTAnonymous(Element element)
-//  {
-//    Node aNode = getDomHelper().getChildNode(element, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-//    if (aNode != null)
-//     {
-//      if (XSDDOMHelper.inputEquals(aNode, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false))
-//       {
-//        return true;
-//      }
-//    }
-//    return false;
-//  }  
-//
-//  boolean isCTAnonymous(Element element)
-//  {
-//    Node aNode = getDomHelper().getChildNode(element, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-//    if (aNode != null)
-//     {
-//      if (XSDDOMHelper.inputEquals(aNode, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, false))
-//       {
-//        return true;
-//      }
-//    }
-//    return false;
-//  }  
-//
-//  XSDTypeDefinition getAnonymousTypeDefinition(Element element)
-//  {
-//    Node typeDefinitionNode = getDomHelper().getChildNode(element, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-//    if (typeDefinitionNode == null)
-//     {
-//      typeDefinitionNode = getDomHelper().getChildNode(element, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-//    }
-//    if (typeDefinitionNode != null)
-//     {
-//      XSDConcreteComponent component = getXSDSchema().getCorrespondingComponent(typeDefinitionNode);
-//      if (component instanceof XSDTypeDefinition)
-//       {
-//        return (XSDTypeDefinition)component;
-//      }
-//    }
-//    return null;    
-//
-//    /*    XSDConcreteComponent component = getXSDSchema().getCorrespondingComponent(element);
-//     if (component instanceof XSDElementDeclaration)
-//     {
-//     XSDElementDeclaration xsdElem = (XSDElementDeclaration)component;
-//
-//     return xsdElem.getAnonymousTypeDefinition();
-//     }
-//     return null;
-//     */
-//  }
-//
-//  void updateElementToNotAnonymous(Element element)
-//  {
-//    NodeList children = element.getChildNodes();
-//    if (children != null)
-//     {
-//      for (int i = 0; i < children.getLength(); i++)
-//       {
-//        Node node = (Node)children.item(i);
-//        if (node instanceof Element)
-//         {
-//          if (node.getLocalName().equals(XSDConstants.SIMPLETYPE_ELEMENT_TAG) ||
-//              node.getLocalName().equals(XSDConstants.COMPLEXTYPE_ELEMENT_TAG))
-//           {
-//            XSDDOMHelper.removeNodeAndWhitespace(node);
-//            i=0;
-//          }
-//        }
-//      }
-//    }
-//    /*    XSDConcreteComponent component = getXSDSchema().getCorrespondingComponent(element);
-//     if (component instanceof XSDElementDeclaration)
-//     {
-//     XSDElementDeclaration xsdElem = (XSDElementDeclaration)component;
-//     if (xsdElem.isSetAnonymousTypeDefinition())
-//     {
-//     xsdElem.unsetAnonymousTypeDefinition();
-//     xsdElem.setAnonymousTypeDefinition(null);
-//     }
-//     }
-//     component.updateElement();
-//     */
-//  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/EnumerationPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/EnumerationPropertySource.java
deleted file mode 100644
index 65124f7..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/EnumerationPropertySource.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-
-
-public class EnumerationPropertySource
-  extends BasePropertySource
-  implements IPropertySource
-{
-  /**
-   * 
-   */
-  public EnumerationPropertySource()
-  {
-    super();
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public EnumerationPropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-  /**
-   * @param xsdSchema
-   */
-  public EnumerationPropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-    // Create a descriptor and set a category
-    PropertyDescriptor nameDescriptor =
-    new TextPropertyDescriptor(
-        XSDConstants.VALUE_ATTRIBUTE,
-        XSDConstants.VALUE_ATTRIBUTE);
-    list.add(nameDescriptor);
-
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-     {
-      result = element.getAttribute((String) id);
-    }
-    if (result == null)
-     {
-      result = "";
-    }
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value != null)
-    {
-      if (value instanceof String)
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_ENUM_VALUE_CHANGE"), element);
-        element.setAttribute(XSDConstants.VALUE_ATTRIBUTE, (String)value);
-        endRecording(element);
-      }
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/FixedOrDefaultTextPropertyDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/FixedOrDefaultTextPropertyDescriptor.java
deleted file mode 100644
index 21e09aa..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/FixedOrDefaultTextPropertyDescriptor.java
+++ /dev/null
@@ -1,307 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.DialogCellEditor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorContextIds;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-
-
-public class FixedOrDefaultTextPropertyDescriptor extends PropertyDescriptor
-{
-  protected static String choice = "";
-  Element element;
-  /**
-   * @param id
-   * @param displayName
-   */
-  public FixedOrDefaultTextPropertyDescriptor(Object id, String displayName, Element element)
-  {
-    super(id, displayName);
-    this.element = element;
-  }
-  
-  public CellEditor createPropertyEditor(Composite parent)
-  {
-    CellEditor editor = new FixedOrDefaultTextCellEditor(parent);
-    if (getValidator() != null)
-      editor.setValidator(getValidator());
-    return editor;
-  }
-
-//    public void setChoice(String newChoice)
-//    {
-//      choice = newChoice;
-//    }
-
-  public Object getId()
-  {
-    Attr fixedAttr = element.getAttributeNode(XSDConstants.FIXED_ATTRIBUTE);
-    Attr defaultAttr = element.getAttributeNode(XSDConstants.DEFAULT_ATTRIBUTE);
-    if (fixedAttr != null)
-    {
-      choice = "fixed";
-    }
-    else if (defaultAttr != null) // what if both attributes were specified?  Use default...
-    {
-      choice = "default";
-    }
-    else
-    {
-      choice = "";
-    }
-
-    if (choice.equals("fixed"))
-     {
-      return "fixed";
-    }
-    else if (choice.equals("default"))
-     {
-      return "default";
-    }
-    else
-     {
-      return super.getId();
-    }
-  }
-  
-  public String getDisplayName()
-  {
-    Attr fixedAttr = element.getAttributeNode(XSDConstants.FIXED_ATTRIBUTE);
-    Attr defaultAttr = element.getAttributeNode(XSDConstants.DEFAULT_ATTRIBUTE);
-    if (fixedAttr != null)
-    {
-      choice = "fixed";
-    }
-    else if (defaultAttr != null) // what if both attributes were specified?  Use default...
-     {
-      choice = "default";
-    }
-    else
-    {
-      choice = "fixed/default";
-    }
-
-    if (choice.equals("fixed"))
-     {
-      return "fixed";
-    }
-    else if (choice.equals("default"))
-     {
-      return "default";
-    }
-    else
-     {
-      return super.getDisplayName();
-    }
-  }
-
-  class FixedOrDefaultTextCellEditor extends DialogCellEditor
-  {
-    public FixedOrDefaultTextCellEditor(Composite parent)
-    {
-      super(parent);
-    }
-
-    protected Object openDialogBox(Control cellEditorWindow)
-    {
-	    Shell shell = Display.getCurrent().getActiveShell();
-	    
-	    FixedOrDefaultDialog dialog = new FixedOrDefaultDialog(shell);
-
-	    dialog.setBlockOnOpen(true);
-	    dialog.create();
-	    
-	    String value = (String)getValue();
-	
-	    int result = dialog.open();
-	    
-	    if (result == Window.OK)
-	    {
-	      String newValue = dialog.getValue();
-        fireApplyEditorValue();
-	    }
-	    deactivate();
-      return null;
-	  }
-  }
-  
-  class FixedOrDefaultDialog extends Dialog implements SelectionListener
-  {
-    private int FIXED = 0;
-    private int DEFAULT = 1;
-    private int type;
-    private int value;
-    protected Button fixedButton, defaultButton;
-    protected Text valueField;
-    protected String valueString = "";
-    
-    public FixedOrDefaultDialog(Shell shell)
-    {
-      super(shell);
-    }
-
-    protected void configureShell(Shell shell)
-    {
-      super.configureShell(shell);
-    }
-
-    protected void buttonPressed(int buttonId)
-    {
-      if (buttonId == Dialog.OK)
-      {
-        valueString = valueField.getText();
-        applyEditorValueAndDeactivate();
-      }
-      super.buttonPressed(buttonId);
-    }
-
-    public String getValue() { return valueString; }
-    public String getType() { return type == FIXED? "fixed" : "default"; }
-
-    //
-    // Create the controls
-    //
-    public Control createDialogArea(Composite parent)
-    {
-      Composite client = (Composite)super.createDialogArea(parent);
-      getShell().setText("Fixed/Default Value");
-
-      GridLayout gl = new GridLayout(1, true);
-//      gl.marginHeight = 0;
-//      gl.marginWidth = 0;
-//      gl.horizontalSpacing = 0;
-//      gl.verticalSpacing = 0;
-      client.setLayout(gl);
-
-      GridData gd = new GridData();
-      gd.grabExcessHorizontalSpace = true;
-      gd.grabExcessVerticalSpace = true;
-      gd.horizontalAlignment = GridData.FILL;
-      gd.verticalAlignment = GridData.FILL;
-      gd.horizontalIndent = 0;
-      client.setLayoutData(gd);
-      
-//      isTextReadOnly = false;
-
-      fixedButton = ViewUtility.createRadioButton(client, XSDEditorPlugin.getXSDString("_UI_FIXED"));
-//    WorkbenchHelp.setHelp(fixedButton, XSDEditorContextIds.XSDE_ELEMENT_FIXED);
-      
-      defaultButton = ViewUtility.createRadioButton(client, XSDEditorPlugin.getXSDString("_UI_DEFAULT"));
-//    WorkbenchHelp.setHelp(defaultButton, XSDEditorContextIds.XSDE_ELEMENT_DEFAULT);
-
-      valueField = ViewUtility.createTextField(client, 30);
-      
-//    WorkbenchHelp.setHelp(valueField, XSDEditorContextIds.XSDE_ELEMENT_VALUE);
-//    valueField.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_ELEMENT_VALUE"));
-
-      WorkbenchHelp.setHelp(fixedButton, XSDEditorContextIds.XSDE_ATTRIBUTE_FIXED);
-      WorkbenchHelp.setHelp(defaultButton, XSDEditorContextIds.XSDE_ATTRIBUTE_DEFAULT);
-      // WorkbenchHelp.setHelp(valueField, XSDEditorContextIds.XSDE_ATTRIBUTE_VALUE);
-      
-      Attr fixedAttr = element.getAttributeNode(XSDConstants.FIXED_ATTRIBUTE);
-      Attr defaultAttr = element.getAttributeNode(XSDConstants.DEFAULT_ATTRIBUTE);
-
-      if (fixedAttr != null)
-      {
-        fixedButton.setSelection(true);
-        defaultButton.setSelection(false);
-        choice = "fixed";
-        type = FIXED;
-        valueField.setText(element.getAttribute("fixed"));
-        valueField.setFocus();
-        valueField.selectAll();
-      }
-      if (defaultAttr != null) // what if both attributes were specified?  Use default...
-       {
-        fixedButton.setSelection(false);
-        defaultButton.setSelection(true);
-        choice = "default";
-        type = DEFAULT;
-        valueField.setText(element.getAttribute("default"));
-        valueField.setFocus();
-        valueField.selectAll();
-      }
-
-      fixedButton.addSelectionListener(this);
-      defaultButton.addSelectionListener(this);
-      return client;
-    }
-
-    void applyEditorValueAndDeactivate()
-    {
-      String value = valueField.getText();
-      if (value != null && value.length() > 0)
-      {
-        choice = type == FIXED? "fixed" : "default";
-      }
-      if (value != null && value.length() > 0)
-      {
-        if (choice.equals("fixed"))
-        {
-          element.removeAttribute(XSDConstants.DEFAULT_ATTRIBUTE);
-          element.setAttribute(XSDConstants.FIXED_ATTRIBUTE, value);
-        }
-        else if (choice.equals("default"))
-        {
-          element.removeAttribute(XSDConstants.FIXED_ATTRIBUTE);
-          element.setAttribute(XSDConstants.DEFAULT_ATTRIBUTE, value);
-        }
-      }
-      if (value.equals(""))
-      {
-        choice = "";
-        element.removeAttribute(XSDConstants.DEFAULT_ATTRIBUTE);
-        element.removeAttribute(XSDConstants.FIXED_ATTRIBUTE);
-      }
-    }
-
-    public void widgetSelected(SelectionEvent e)
-    {
-      if (e.widget == fixedButton && fixedButton.getSelection())
-      {
-        type = FIXED;
-        choice = "fixed";
-      }
-      else if (e.widget == defaultButton && defaultButton.getSelection())
-      {
-        type = DEFAULT;
-        choice = "default";
-      }
-    }
-
-  	public void widgetDefaultSelected(SelectionEvent e)
-    {
-    }
-
-  }
-  
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/GroupRefPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/GroupRefPropertySource.java
deleted file mode 100644
index 7f10f66..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/GroupRefPropertySource.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-
-public class GroupRefPropertySource
-  extends BasePropertySource
-  implements IPropertySource
-{
-  private String[] refComboValues = { "" };
-  /**
-   * 
-   */
-  public GroupRefPropertySource()
-  {
-    super();
-  }
-  
-//  public void setReferenceComboContextHelp(String contextId)
-//  {
-//    WorkbenchHelp.setHelp(refCombo, contextId);
-//  }
-  
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public GroupRefPropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-  /**
-   * @param xsdSchema
-   */
-  public GroupRefPropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  
-  public void setInput(Element element)
-  {
-    this.element = element;
-    TypesHelper helper = new TypesHelper(xsdSchema);
-    java.util.List items = helper.getGlobalElements();
-    if (XSDDOMHelper.inputEquals(element, XSDConstants.GROUP_ELEMENT_TAG, true))
-    {
-      items = helper.getModelGroups();
-      // Need tooltip for Group Ref
-//        minimumField.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_ELEMENT_MINIMUM"));
-//        WorkbenchHelp.setHelp(minimumField, XSDEditorContextIds.XSDE_GROUP_REF_MINIMUM);
-//        maximumField.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_ELEMENT_MAXIMUM"));
-//        WorkbenchHelp.setHelp(maximumField, XSDEditorContextIds.XSDE_GROUP_REF_MAXIMUM);
-    }
-    else if (XSDDOMHelper.inputEquals(element, XSDConstants.ELEMENT_ELEMENT_TAG, true))
-    {
-      items = helper.getGlobalElements();
-//        minimumField.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_ELEMENT_MINIMUM"));
-//        WorkbenchHelp.setHelp(minimumField, XSDEditorContextIds.XSDE_ELEMENT_REF_MINIMUM);
-//        maximumField.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_ELEMENT_MAXIMUM"));
-//        WorkbenchHelp.setHelp(maximumField, XSDEditorContextIds.XSDE_ELEMENT_REF_MAXIMUM);
-    }
-    
-    int size = items.size() + 1;
-    refComboValues = new String[size];
-    refComboValues[0] = "";
-    if (items != null)
-     {
-      for (int i = 0; i < items.size(); i++)
-       {
-        refComboValues[i + 1] = (String) items.get(i);
-      }
-    }
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-    XSDComboBoxPropertyDescriptor refDescriptor =
-    new XSDComboBoxPropertyDescriptor(
-        XSDConstants.REF_ATTRIBUTE,
-        XSDConstants.REF_ATTRIBUTE,
-        refComboValues);
-    list.add(refDescriptor);
-    
-    PropertyDescriptor minOccursDescriptor =
-    new TextPropertyDescriptor(
-        XSDConstants.MINOCCURS_ATTRIBUTE,
-        XSDConstants.MINOCCURS_ATTRIBUTE);
-    list.add(minOccursDescriptor);
-    PropertyDescriptor maxOccursDescriptor =
-    new TextPropertyDescriptor(
-        XSDConstants.MAXOCCURS_ATTRIBUTE,
-        XSDConstants.MAXOCCURS_ATTRIBUTE);
-    list.add(maxOccursDescriptor);
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-    {
-      result = element.getAttribute((String) id);
-      if (result == null)
-      {
-        result = "";
-      }
-      return result;
-      
-//      if (((String) id).equals(XSDConstants.REF_ATTRIBUTE))
-//      {
-//        return result;
-//      }
-    }
-    return "";
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value == null)
-    {
-      value = "";
-    }
-    if (value instanceof String)
-    {
-      String newValue = (String)value;
-      String attributeName = (String)id;
-      if (((String) id).equals(XSDConstants.MAXOCCURS_ATTRIBUTE))
-      {
-        String max = (String)value;
-        String min = element.getAttribute(XSDConstants.MINOCCURS_ATTRIBUTE);
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_MAXOCCURS_CHANGE"), element);
-        if (max.length() > 0)
-        {
-          element.setAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE, max);
-        }
-        else
-        {
-          element.removeAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE);
-        }
-        endRecording(element);
-      }
-      else if (((String) id).equals(XSDConstants.MINOCCURS_ATTRIBUTE))
-      {
-        String min = (String)value;
-        String max = element.getAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE);
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_MINOCCURS_CHANGE"), element);
-        if (min.length() > 0)
-        {
-          element.setAttribute(XSDConstants.MINOCCURS_ATTRIBUTE, min);
-        }
-        else
-        {
-          element.removeAttribute(XSDConstants.MINOCCURS_ATTRIBUTE);
-        }
-        endRecording(element);
-      }
-      else if (((String) id).equals(XSDConstants.REF_ATTRIBUTE))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_GROUP_REF_CHANGE"), element);
-        element.setAttribute((String) id, newValue);
-        endRecording(element);
-      }
-    }
-//    Runnable delayedUpdate = new Runnable()
-//    {
-//      public void run()
-//      {
-        if (viewer != null)
-          viewer.refresh();
-//      }
-//    };
-//    Display.getCurrent().asyncExec(delayedUpdate);
-    
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ImportPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ImportPropertySource.java
deleted file mode 100644
index 896c922..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ImportPropertySource.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorContextIds;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.refactor.delete.XSDExternalFileCleanup;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.XSDSchemaHelper;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDImport;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-
-public class ImportPropertySource
-  extends SchemaDirectiveHelperPropertySource
-  implements IPropertySource
-{
-  boolean isSetNamespace = false;
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public ImportPropertySource(Viewer viewer, XSDSchema xsdSchema, IFile currentIFile)
-  {
-    super(viewer, xsdSchema, false);
-    this.currentIFile = currentIFile;
-//     WorkbenchHelp.setHelp(controlsContainer, XSDEditorContextIds.XSDE_IMPORT_DESIGN_VIEW);
-//WorkbenchHelp.setHelp(selectButton, XSDEditorContextIds.XSDE_INCLUDE_HELPER_SELECT);
-//WorkbenchHelp.setHelp(prefixField, XSDEditorContextIds.XSDE_IMPORT_PREFIX);
-  }
-  /**
-   * @param xsdSchema
-   */
-  public ImportPropertySource(XSDSchema xsdSchema, IFile currentIFile)
-  {
-    super(xsdSchema, false);
-    this.currentIFile = currentIFile;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-    // Create a descriptor and set a category
-    
-    SchemaLocationPropertyDescriptor schemaLocationDescriptor =
-    new SchemaLocationPropertyDescriptor(
-      XSDConstants.SCHEMALOCATION_ATTRIBUTE,
-      XSDConstants.SCHEMALOCATION_ATTRIBUTE
-      );
-    schemaLocationDescriptor.setHelpContextIds(XSDEditorContextIds.XSDE_INCLUDE_HELPER_SELECT);
-    list.add(schemaLocationDescriptor);
-    
-    if (isSetNamespace)
-    {
-      PropertyDescriptor prefixDescriptor = 
-      new TextPropertyDescriptor(
-        "Prefix",
-        "Prefix");
-      prefixDescriptor.setHelpContextIds(XSDEditorContextIds.XSDE_IMPORT_PREFIX);
-      list.add(prefixDescriptor);
-    }
-    else
-    {
-      PropertyDescriptor prefixDescriptor = 
-      new PropertyDescriptor(
-        "Prefix",
-        "Prefix");
-      prefixDescriptor.setHelpContextIds(XSDEditorContextIds.XSDE_IMPORT_PREFIX);
-      list.add(prefixDescriptor);
-    }
-
-    PropertyDescriptor namespaceDescriptor = 
-    new PropertyDescriptor(
-        XSDConstants.NAMESPACE_ATTRIBUTE,
-        XSDConstants.NAMESPACE_ATTRIBUTE);
-    list.add(namespaceDescriptor);  
-
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-    {
-      result = element.getAttribute((String) id);
-      String attributeName = (String)id;
-      if (result == null)
-       {
-        result = "";
-      }
-
-      if (attributeName.equals("Prefix"))
-       {
-        TypesHelper helper = new TypesHelper(xsdSchema);
-        String aPrefix = helper.getPrefix(element.getAttribute(XSDConstants.NAMESPACE_ATTRIBUTE), false);
-        if (aPrefix != null && aPrefix.length() > 0)
-        {
-          return aPrefix;
-        }
-        return "";        
-      }
-      else
-       {
-        return result;
-      }
-    }
-    return "";
-    
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value == null)
-     {
-      value = "";
-    }
-    if (value instanceof String)
-    {
-      String newValue = (String)value;
-      TypesHelper typesHelper = new TypesHelper(xsdSchema);
-      String namespace = element.getAttribute(XSDConstants.NAMESPACE_ATTRIBUTE);
-      String oldPrefixValue = typesHelper.getPrefix(namespace, false);
-      
-      String schemaLocation = element.getAttribute(XSDConstants.SCHEMALOCATION_ATTRIBUTE);
-      if (((String) id).equals("Prefix"))
-      {
-        if (validatePrefix(newValue) &&  schemaLocation.length() > 0)
-        {
-          Map map = xsdSchema.getQNamePrefixToNamespaceMap();
-
-          if (map.containsKey(newValue))
-          {
-//          setErrorMessage(XSDEditorPlugin.getXSDString("_ERROR_LABEL_PREFIX_EXISTS"));
-          }
-          else
-          {
-            beginRecording(XSDEditorPlugin.getXSDString("_UI_PREFIX_CHANGE"), element);
-            
-            Element schemaElement = xsdSchema.getElement();
-            map.remove(oldPrefixValue);
-            map.put(newValue, namespace);
-            XSDSchemaHelper.updateElement(xsdSchema);
-
-            endRecording(element);  
-          }
-        }
-      }
-      else if (((String) id).equals(XSDConstants.SCHEMALOCATION_ATTRIBUTE))
-      { 
-        updateExternalModel((String)value, selectedIFile, selectedNamespace, selectedXSDSchema);
-      }
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-    
-  }
-  
-  public void setInput(Element element)
-  {
-    this.element = element;
-    String namespace = element.getAttribute(XSDConstants.NAMESPACE_ATTRIBUTE);
-    if (namespace != null && namespace.trim().length() > 0)
-    {
-      isSetNamespace = true;
-    }    
-    
-  }
-
-  protected void updateExternalModel(String newLocation, IFile newFile, String namespace, XSDSchema externalSchema)
-  {
-    if (xsdSchema == null) // in case we have a bad schema
-     {
-      return;
-    }
-    Element importElement = element;
-    if (namespace == null)
-    {
-      namespace = "";
-    }        
-    
-    XSDConcreteComponent comp = xsdSchema.getCorrespondingComponent(element);
-    if (comp instanceof XSDImport)
-    {
-      beginRecording(XSDEditorPlugin.getXSDString("_UI_IMPORT_CHANGE"), importElement);
-      java.util.Map map = xsdSchema.getQNamePrefixToNamespaceMap();
-      
-      // Referential integrity on old import
-      // How can we be sure that if the newlocation is the same as the oldlocation
-      // the file hasn't changed
-      
-      XSDSchema referencedSchema = ((XSDSchemaDirective)comp).getResolvedSchema();
-      if (referencedSchema != null)
-      {
-        XSDExternalFileCleanup cleanHelper = new XSDExternalFileCleanup(referencedSchema);
-        cleanHelper.visitSchema(xsdSchema);
-      }
-
-      Element schemaElement = xsdSchema.getElement();
-     
-//      String oldPrefix = prefixField.getText();
-//
-//      // Use the existing xmlns if available
-//      if (!map.containsValue(namespace))
-//      {
-//        if (oldPrefix.length() > 0)
-//        {
-//          schemaElement.removeAttribute("xmlns:"+oldPrefix);
-//          map.remove(oldPrefix);
-//        }
-//      }
-
-      XSDImport xsdImport = (XSDImport)comp;
-//      xsdImport.setSchemaLocation(null);
-//      xsdImport.setResolvedSchema(externalSchema);
-
-      // update the xmlns in the schema element first, and then update the import element next
-      // so that the last change will be in the import element.  This keeps the selection
-      // on the import element
-      TypesHelper helper = new TypesHelper(externalSchema);
-      String prefix = helper.getPrefix(namespace, false);
-      
-      boolean prefixAlreadyExists = false;
-      if (map.containsKey(prefix))
-      {
-        prefixAlreadyExists = true;
-      }
-      
-      if (prefix == null || (prefix !=null && prefix.length() == 0) || prefixAlreadyExists)
-      {
-        prefix = "pref";
-
-        int prefixExtension = 1;
-        while (map.containsKey(prefix) && prefixExtension < 100)
-         {
-          prefix = prefix + String.valueOf(prefixExtension);
-          prefixExtension++;
-        }
-      }
-
-      if (namespace.length() > 0)
-       {
-        // if ns already in map, use its corresponding prefix
-        if (map.containsValue(namespace))
-         {
-          TypesHelper typesHelper = new TypesHelper(xsdSchema);
-          prefix = typesHelper.getPrefix(namespace, false);
-        }
-        else // otherwise add to the map
-        {
-//          prefixMap.put(prefix, newLocation);
-          schemaElement.setAttribute("xmlns:"+prefix, namespace);
-        }
-      }
-
-      // Now update the import element's attributes
-      importElement.setAttribute(XSDConstants.SCHEMALOCATION_ATTRIBUTE, newLocation);
-      
-      if (!namespace.equals(""))
-       {
-        importElement.setAttribute(XSDConstants.NAMESPACE_ATTRIBUTE, namespace);
-      }
-      else
-       {
-        importElement.removeAttribute(XSDConstants.NAMESPACE_ATTRIBUTE);
-      }
-      
-//      if (getEditor() != null)
-//       {
-//        getEditor().reparseSchema();
-//        getEditor().getGraphViewer().setSchema(getXSDSchema());
-//      }
-
-      endRecording(importElement);
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/IncludePropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/IncludePropertySource.java
deleted file mode 100644
index bbc15e8..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/IncludePropertySource.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.wst.xsd.ui.internal.refactor.delete.XSDExternalFileCleanup;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDInclude;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class IncludePropertySource
-  extends SchemaDirectiveHelperPropertySource
-  implements IPropertySource
-{
-  /**
-   * 
-   */
-  public IncludePropertySource(IFile currentIFile)
-  {
-    super(true);
-    this.currentIFile = currentIFile;
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public IncludePropertySource(Viewer viewer, XSDSchema xsdSchema, IFile currentIFile)
-  {
-    super(viewer, xsdSchema, true);
-    this.currentIFile = currentIFile;
-  }
-  /**
-   * @param xsdSchema
-   */
-  public IncludePropertySource(XSDSchema xsdSchema, IFile currentIFile)
-  {
-    super(xsdSchema, true);
-    this.currentIFile = currentIFile;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-    // Create a descriptor and set a category
-    
-    SchemaLocationPropertyDescriptor schemaLocationDescriptor =
-    new SchemaLocationPropertyDescriptor(
-        XSDConstants.SCHEMALOCATION_ATTRIBUTE,
-        XSDConstants.SCHEMALOCATION_ATTRIBUTE);
-  
-    list.add(schemaLocationDescriptor);
-    
-
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-     {
-      result = element.getAttribute((String) id);
-      String attributeName = (String)id;
-      if (result == null)
-       {
-        result = "";
-      }
-      return result;
-    }
-    return "";
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value == null)
-    {
-      value = "";
-    }
-    if (value instanceof String)
-    {
-      if (((String) id).equals(XSDConstants.SCHEMALOCATION_ATTRIBUTE))
-      { 
-        //element.setAttribute(XSDConstants.SCHEMALOCATION_ATTRIBUTE, (String)value);
-        updateExternalModel((String)value, selectedIFile, selectedNamespace, selectedXSDSchema);
-      }
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-  }
-
-  protected void updateExternalModel(String newLocation, IFile newFile, String namespace, XSDSchema externalSchema)
-  {
-    Element includeElement = element;
-
-    String existingSchemaLocation = includeElement.getAttribute(XSDConstants.SCHEMALOCATION_ATTRIBUTE);
-
-//  beginRecording(XSDEditorPlugin.getXSDString("_UI_INCLUDE_CHANGE"), includeElement);
-    beginRecording("Include Change", includeElement);
-    includeElement.setAttribute(XSDConstants.SCHEMALOCATION_ATTRIBUTE, newLocation);
-    
-    // If there is no existing schemaLocation, then just set it
-    if (existingSchemaLocation == null)
-    {
-      return;
-    }
-
-    XSDConcreteComponent includeComponent = xsdSchema.getCorrespondingComponent(includeElement);
-    if (includeComponent instanceof XSDInclude)
-     {
-      XSDInclude include = (XSDInclude) includeComponent;
-
-      XSDSchema referencedSchema = include.getResolvedSchema();
-      if (referencedSchema != null)
-      {
-        XSDExternalFileCleanup cleanHelper = new XSDExternalFileCleanup(referencedSchema);
-        cleanHelper.visitSchema(xsdSchema);
-        
-        xsdSchema.update();
-        include.updateElement();
-      }
-      
-    }
-    endRecording(includeElement);    
-  }
-
-  
-// Redefine's version
-//  protected void updateExternalModel(IFile newFile, String namespace, XSDSchema externalSchema)
-//  {
-//    Element redefineElement = (Element) getNode();
-//
-//    redefineElement.setAttribute(XSDConstants.SCHEMALOCATION_ATTRIBUTE, locationField.getText());
-//
-//    String existingSchemaLocation = redefineElement.getAttribute(XSDConstants.SCHEMALOCATION_ATTRIBUTE);
-//
-//    // If there is no existing schemaLocation, then just set it and return
-//    if (existingSchemaLocation == null)
-//     {
-//      return;
-//    }
-//
-//    XSDConcreteComponent redefineComponent = getXSDSchema().getCorrespondingComponent(redefineElement);
-//    if (redefineComponent instanceof XSDRedefine)
-//     {
-//      XSDRedefine redefine = (XSDRedefine) redefineComponent;
-//      XSDExternalFileCleanup cleanup = new XSDExternalFileCleanup(redefine.getIncorporatedSchema());
-//      
-//      cleanup.visitSchema(getXSDSchema());
-//      if (getEditor() != null)
-//       {
-//// DisplayErrorInTaskList task = new DisplayErrorInTaskList(getEditor().getEditorIDocument(), getEditor().getFileResource(), cleanup.getMessages());
-//// task.run();
-//        
-//        // Workaround to reset included elements in XSD model
-//        getEditor().reparseSchema();
-//        getEditor().getGraphViewer().setSchema(getXSDSchema());
-//      }
-//    }
-//
-//    /* since we are reparsing, we don't need this
-//
-//     Iterator contents = getXSDSchema().getContents().iterator();
-//     while (contents.hasNext())
-//     {
-//     XSDSchemaContent content = (XSDSchemaContent)contents.next();
-//     if (content instanceof XSDSchemaDirective)
-//     {
-//     XSDSchemaDirective directive = (XSDSchemaDirective)content;
-//
-//     if (directive.getSchemaLocation().equals(oldSchemaLocation) && directive instanceof XSDRedefine)
-//     {
-//     directive.unsetSchemaLocation();
-//     directive.setSchemaLocation(locationField.getText());
-//     directive.unsetResolvedSchema();
-//     redefineElement.setAttribute(XSDConstants.SCHEMALOCATION_ATTRIBUTE, locationField.getText());
-//     getXSDSchema().updateDocument();
-//     XSDSchemaHelper.updateElement(directive);
-////          directive.updateElement();
-//     break;
-//     }
-//     }
-//     }
-//     */
-//  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/KeyrefPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/KeyrefPropertySource.java
deleted file mode 100644
index c3b4a4f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/KeyrefPropertySource.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.xsd.XSDIdentityConstraintDefinition;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-
-public class KeyrefPropertySource
-  extends BasePropertySource
-  implements IPropertySource
-{
-  private String[] refComboValues = { "" };
-  /**
-   * 
-   */
-  public KeyrefPropertySource()
-  {
-    super();
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public KeyrefPropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-  /**
-   * @param xsdSchema
-   */
-  public KeyrefPropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  
-  public void setInput(Element element)
-  {
-    this.element = element;
-    TypesHelper helper = new TypesHelper(xsdSchema);
-    java.util.List items = new ArrayList();
-
-    
-    if (xsdSchema != null)
-    {
-      Iterator iter = xsdSchema.getIdentityConstraintDefinitions().iterator();
-      String name = element.getAttribute(XSDConstants.NAME_ATTRIBUTE);
-      while (iter.hasNext())
-      {
-        XSDIdentityConstraintDefinition constraint = (XSDIdentityConstraintDefinition)iter.next();
-        if (name != null && !name.equals(""))
-         {
-          if (constraint.getName() != null)
-           {
-            if (!name.equals(constraint.getQName(xsdSchema)))
-            {
-              items.add(constraint.getQName(xsdSchema));
-            }
-          }
-        }
-        else
-         {
-          if (constraint.getName() != null)
-          {
-            items.add(constraint.getQName(xsdSchema));
-          }
-        }
-      }
-    }   
-    
-    int size = items.size() + 1;
-    refComboValues = new String[size];
-    refComboValues[0] = "";
-    if (items != null)
-     {
-      for (int i = 0; i < items.size(); i++)
-       {
-        refComboValues[i + 1] = (String) items.get(i);
-      }
-    }
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-    // Create a descriptor and set a category
-// This property is moved to the General Tab
-//    PropertyDescriptor nameDescriptor =
-//    new TextPropertyDescriptor(
-//        XSDConstants.NAME_ATTRIBUTE,
-//        XSDConstants.NAME_ATTRIBUTE);
-//    list.add(nameDescriptor);
-    
-    XSDComboBoxPropertyDescriptor refDescriptor =
-    new XSDComboBoxPropertyDescriptor(
-        XSDConstants.REFER_ATTRIBUTE,
-        XSDConstants.REFER_ATTRIBUTE,
-        refComboValues);
-    list.add(refDescriptor);
-    
-
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-
-    if (id instanceof String)
-     {
-      result = element.getAttribute((String) id);
-      if (result == null)
-       {
-        result = "";
-      }
-      return result;
-//      if (((String) id).equals(XSDConstants.REFER_ATTRIBUTE))
-//      {
-//        return result;
-//      }
-    }
-    return "";
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value == null)
-    {
-      value = "";
-    }
-    if (value instanceof String)
-    {
-      String newValue = (String)value;
-      if (((String) id).equals(XSDConstants.NAME_ATTRIBUTE))
-      {  
-        if (validateName(newValue))
-        {
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_KEYREF_NAME_CHANGE"), element);
-          element.setAttribute(XSDConstants.NAME_ATTRIBUTE, newValue);
-          endRecording(element);
-        }         
-      }
-      else if (((String) id).equals(XSDConstants.REFER_ATTRIBUTE))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_KEYREF_REFER_CHANGE"), element);
-        element.setAttribute((String) id, newValue);
-        endRecording(element);
-      }
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ModelGroupPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ModelGroupPropertySource.java
deleted file mode 100644
index 750b81d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ModelGroupPropertySource.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-public class ModelGroupPropertySource  // all or sequence or choice
-  extends BasePropertySource
-  implements IPropertySource
-{
-  private String[] modelGroupComboValues = { "sequence", "choice", "all" };
-  /**
-   * 
-   */
-  public ModelGroupPropertySource()
-  {
-    super();
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public ModelGroupPropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-  /**
-   * @param xsdSchema
-   */
-  public ModelGroupPropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-
-    XSDComboBoxPropertyDescriptor modelGroupDescriptor =
-    new XSDComboBoxPropertyDescriptor(
-        "model group",
-        "model group",
-        modelGroupComboValues);
-    list.add(modelGroupDescriptor);
-    
-    PropertyDescriptor minOccursDescriptor =
-    new TextPropertyDescriptor(
-        XSDConstants.MINOCCURS_ATTRIBUTE,
-        XSDConstants.MINOCCURS_ATTRIBUTE);
-    list.add(minOccursDescriptor);
-    PropertyDescriptor maxOccursDescriptor =
-    new TextPropertyDescriptor(
-        XSDConstants.MAXOCCURS_ATTRIBUTE,
-        XSDConstants.MAXOCCURS_ATTRIBUTE);
-    list.add(maxOccursDescriptor);
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-    {
-      result = element.getAttribute((String) id);
-      String attributeName = (String)id;
-      if (result == null)
-       {
-        result = "";
-      }
-      if (attributeName.equals("model group"))
-      {
-        result = element.getLocalName();
-        return result;
-      }
-    }
-    return "";
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    String property = (String)id;
-    if (value == null)
-    {
-      value = "";
-    }
-    if (value instanceof String)
-    {
-      String newValue = (String)value;
-      if (property.equals("model group"))
-       {
-        Document doc = element.getOwnerDocument();
-        Element parent = (Element)element.getParentNode();
-        String prefix = element.getPrefix();
-        prefix = prefix == null ? "" : prefix + ":";
-        Element newNode = null;
-        // int compositor = XSDCompositor.SEQUENCE;
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_GROUP_SCOPE_CHANGE"), parent);
-        changeContentModel(parent, newValue);
-        endRecording(parent);
-        XSDDOMHelper domHelper = new XSDDOMHelper();
-        setInput(domHelper.getContentModelFromParent(parent));
-      }
-      else if (property.equals(XSDConstants.MAXOCCURS_ATTRIBUTE))
-      {
-        String max = (String)value;
-        String min = element.getAttribute(XSDConstants.MINOCCURS_ATTRIBUTE);
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_MAXOCCURS_CHANGE"), element);
-        if (max.length() > 0)
-        {
-          element.setAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE, max);
-        }
-        else
-         {
-          element.removeAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE);
-        }
-        endRecording(element);
-      }
-      else if (((String) id).equals(XSDConstants.MINOCCURS_ATTRIBUTE))
-       {
-        String min = (String)value;
-        String max = element.getAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE);
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_MINOCCURS_CHANGE"), element);
-        if (min.length() > 0)
-        {
-          element.setAttribute(XSDConstants.MINOCCURS_ATTRIBUTE, min);
-        }
-        else
-        {
-          element.removeAttribute(XSDConstants.MINOCCURS_ATTRIBUTE);
-        }
-        endRecording(element);
-      }
-    }
-
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-    
-  }
-
-  public void setInput(Element element)
-  {
-    super.setInput(element);
-    
-    if (element != null)
-    {
-      boolean parentIsSequence = false;
-      boolean parentIsChoice = false;
-     
-      Object parent = element.getParentNode();
-      
-      if (XSDDOMHelper.inputEquals(parent, XSDConstants.SEQUENCE_ELEMENT_TAG, false))
-       {
-        parentIsSequence = true;
-      }
-      else if (XSDDOMHelper.inputEquals(parent, XSDConstants.CHOICE_ELEMENT_TAG, false))
-       {
-        parentIsChoice = true;
-      }
-      
-      if (parentIsChoice || parentIsSequence)
-      {
-        modelGroupComboValues = new String[2];
-        modelGroupComboValues[0] = XSDConstants.SEQUENCE_ELEMENT_TAG;
-        modelGroupComboValues[1] = XSDConstants.CHOICE_ELEMENT_TAG;
-      }
-      else
-      {
-        modelGroupComboValues = new String[3];
-        modelGroupComboValues[0] = XSDConstants.SEQUENCE_ELEMENT_TAG;
-        modelGroupComboValues[1] = XSDConstants.CHOICE_ELEMENT_TAG;
-        modelGroupComboValues[2] = XSDConstants.ALL_ELEMENT_TAG;
-      }
-    }      
-  }
-  
-  private void changeContentModel(Element parent, String contentModel)
-  {
-    Document doc = parent.getOwnerDocument();
-    XSDDOMHelper domHelper = new XSDDOMHelper();
-  
-    String prefix = parent.getPrefix();
-    prefix = prefix == null ? "" : prefix + ":";
-    
-    Element contentModelElement = domHelper.getContentModelFromParent(parent);
-  
-    if (contentModelElement.getLocalName().equals(contentModel))
-    {
-      return; // it's already the content model 
-    }
-  
-    Element newNode = doc.createElementNS(XSDDOMHelper.XMLSchemaURI, prefix + contentModel);
-  
-    if (contentModelElement.hasChildNodes())
-    {        
-      NodeList nodes = contentModelElement.getChildNodes();
-      // use clones so we don't have a refresh problem
-      for (int i = 0; i < nodes.getLength(); i++)
-      {
-        Node node = nodes.item(i);
-        newNode.appendChild(node.cloneNode(true)); 
-      }
-    }
-    parent.replaceChild(newNode, contentModelElement);
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/NamePropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/NamePropertySource.java
deleted file mode 100644
index bbfb786..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/NamePropertySource.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalAttributeGroupRenamer;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalGroupRenamer;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class NamePropertySource
-  extends BasePropertySource
-  implements IPropertySource
-{
-  /**
-   * 
-   */
-  public NamePropertySource()
-  {
-    super();
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public NamePropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-  /**
-   * @param xsdSchema
-   */
-  public NamePropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-
-// From attribute group    
-//    WorkbenchHelp.setHelp(client, XSDEditorContextIds.XSDE_ATTRIBUTE_GROUP_DESIGN_VIEW);
-//    WorkbenchHelp.setHelp(nameField, XSDEditorContextIds.XSDE_ATTRIBUTE_GROUP_NAME);
-
-// From unique
-//    WorkbenchHelp.setHelp(nameField, XSDEditorContextIds.XSDE_UNIQUE_BASE_NAME);
-
-// From key
-//    WorkbenchHelp.setHelp(nameField, XSDEditorContextIds.XSDE_UNIQUE_BASE_NAME);
-    
-// From group
-//     WorkbenchHelp.setHelp(controlsContainer, XSDEditorContextIds.XSDE_GROUP_DESIGN_VIEW);
-//     WorkbenchHelp.setHelp(nameField, XSDEditorContextIds.XSDE_GROUP_NAME);
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-    // Create a descriptor and set a category
-    PropertyDescriptor nameDescriptor =
-    new TextPropertyDescriptor(
-        XSDConstants.NAME_ATTRIBUTE,
-        XSDConstants.NAME_ATTRIBUTE);
-    list.add(nameDescriptor);
-
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-    {
-      result = element.getAttribute((String) id);
-    }
-    if (result == null)
-    {
-      result = "";
-    }
-    return result;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value != null)
-    {
-      if (value instanceof String)
-      {
-        String newValue = (String)value;
-        if (XSDDOMHelper.inputEquals(element, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, false))
-        {  
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_ATTRIBUTEGROUP_NAME_CHANGE"), element);
-
-          // now rename any references to this element
-          if (xsdSchema != null)
-          {
-            XSDConcreteComponent comp = xsdSchema.getCorrespondingComponent(element);
-            if (comp != null && comp instanceof XSDAttributeGroupDefinition && comp.getContainer().equals(xsdSchema))
-            {
-              GlobalAttributeGroupRenamer renamer = new GlobalAttributeGroupRenamer((XSDNamedComponent)comp, (String)value);
-              renamer.visitSchema(xsdSchema);
-            }
-          }
-          element.setAttribute(XSDConstants.NAME_ATTRIBUTE, (String)value);
-          endRecording(element);
-        }
-        else if (XSDDOMHelper.inputEquals(element, XSDConstants.UNIQUE_ELEMENT_TAG, false))
-        {
-          if (validateName(newValue))
-           {
-            beginRecording(XSDEditorPlugin.getXSDString("_UI_UNIQUE_NAME_CHANGE"), element);
-            if (newValue.length() > 0)
-            {
-              element.setAttribute(XSDConstants.NAME_ATTRIBUTE, newValue);
-            }
-            else
-            {
-              element.setAttribute(XSDConstants.NAME_ATTRIBUTE, "");
-            }
-            endRecording(element);
-          }
-        }
-        else if (XSDDOMHelper.inputEquals(element, XSDConstants.KEY_ELEMENT_TAG, false))
-        {
-          if (validateName(newValue))
-          {
-            beginRecording(XSDEditorPlugin.getXSDString("_UI_KEY_NAME_CHANGE"), element);
-            if (newValue.length() > 0)
-            {
-              element.setAttribute(XSDConstants.NAME_ATTRIBUTE, newValue);
-            }
-            else
-            {
-              element.setAttribute(XSDConstants.NAME_ATTRIBUTE, "");
-            }
-            endRecording(element);
-          }
-        }
-        else if (XSDDOMHelper.inputEquals(element, XSDConstants.GROUP_ELEMENT_TAG, false))
-        {
-          if (validateName(newValue))
-           {
-            beginRecording(XSDEditorPlugin.getXSDString("_UI_GROUP_NAME_CHANGE"), element);
-            // now rename any references to this element
-            if (xsdSchema != null)
-             {
-              XSDConcreteComponent comp = xsdSchema.getCorrespondingComponent(element);
-              if (comp != null && comp instanceof XSDModelGroupDefinition && comp.getContainer().equals(xsdSchema))
-              {
-                GlobalGroupRenamer renamer = new GlobalGroupRenamer((XSDNamedComponent)comp, newValue);
-                renamer.visitSchema(xsdSchema);
-              }
-            }
-            element.setAttribute(XSDConstants.NAME_ATTRIBUTE, newValue);
-            endRecording(element);
-          }
-          
-        }
-      }
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/NotationPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/NotationPropertySource.java
deleted file mode 100644
index 573d83d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/NotationPropertySource.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-
-
-public class NotationPropertySource
-  extends BasePropertySource
-  implements IPropertySource
-{
-  /**
-   * 
-   */
-  public NotationPropertySource()
-  {
-    super();
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public NotationPropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-  /**
-   * @param xsdSchema
-   */
-  public NotationPropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-    // Create a descriptor and set a category
-// Removed for tabbed properties
-//    PropertyDescriptor nameDescriptor =
-//    new TextPropertyDescriptor(
-//        XSDConstants.NAME_ATTRIBUTE,
-//        XSDConstants.NAME_ATTRIBUTE);
-//    list.add(nameDescriptor);
-
-    PropertyDescriptor publicDescriptor =
-    new TextPropertyDescriptor(
-        XSDConstants.PUBLIC_ATTRIBUTE,
-        XSDConstants.PUBLIC_ATTRIBUTE);
-    list.add(publicDescriptor);
-    
-    PropertyDescriptor systemDescriptor =
-    new TextPropertyDescriptor(
-        XSDConstants.SYSTEM_ATTRIBUTE,
-        XSDConstants.SYSTEM_ATTRIBUTE);
-    list.add(systemDescriptor);
-
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-    
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-    {
-      result = element.getAttribute((String) id);
-    }
-    if (result == null)
-    {
-      result = "";
-    }
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value == null)
-    {
-      value = "";
-    }
-    if (value instanceof String)
-    {
-      String newValue = (String)value;
-      if (((String)id).equals(XSDConstants.NAME_ATTRIBUTE))
-      {
-        if (validateName(newValue))
-        {
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_NOTATION_NAME_CHANGE"), element);
-          if (newValue.length() > 0)
-          {
-            element.setAttribute(XSDConstants.NAME_ATTRIBUTE, newValue);
-          }
-          else
-          {
-            element.setAttribute(XSDConstants.NAME_ATTRIBUTE, "");
-          }
-          endRecording(element);
-        }
-      }
-      else if (((String)id).equals(XSDConstants.PUBLIC_ATTRIBUTE))
-       {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_NOTATION_PUBLIC_CHANGE"), element);
-        if (newValue.length() > 0)
-        {
-          element.setAttribute(XSDConstants.PUBLIC_ATTRIBUTE, newValue);
-        }
-        else
-        {
-          element.setAttribute(XSDConstants.PUBLIC_ATTRIBUTE, "");
-        }
-        endRecording(element);
-      }
-      else if (((String)id).equals(XSDConstants.SYSTEM_ATTRIBUTE))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_NOTATION_SYSTEM_CHANGE"), element);
-        if (newValue.length() > 0)
-        {
-          element.setAttribute(XSDConstants.SYSTEM_ATTRIBUTE, newValue);
-        }
-        else
-        {
-          element.removeAttribute(XSDConstants.SYSTEM_ATTRIBUTE);
-        }
-        endRecording(element);
-      }
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/OptionsTextCellEditor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/OptionsTextCellEditor.java
deleted file mode 100644
index 3f0e591..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/OptionsTextCellEditor.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-
-
-public abstract class OptionsTextCellEditor extends CellEditor implements SelectionListener, KeyListener
-{
-	private Composite fEditor;
-	protected Text fText;
-  protected boolean isTextReadOnly;
-	Button moreButton;
-	Shell dialog;
-
-	private String fSelection;
-	protected Object fValue;
-	int selection;
-	Object typeObject;
-		
-	private class ComboCellLayout extends Layout 
-	{
-		public void layout(Composite editor, boolean force)
-		{
-			Rectangle bounds= editor.getClientArea();
-			Point size= moreButton.computeSize(SWT.DEFAULT, bounds.height, force);
-			fText.setBounds(0, 0, bounds.width - size.x, bounds.height);
-			moreButton.setBounds(bounds.width - size.x, 0, size.x, size.y);
-		}
-		
-		public Point computeSize(Composite editor, int wHint, int hHint, boolean force)
-		{
-			if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT)
-			{
-				return new Point(wHint, hHint);
-			}
-			Point size= fText.computeSize(SWT.DEFAULT, SWT.DEFAULT, force);
-//			size.x += moreButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, force).x;
-			return size;
-		}
-	}
-
-/**
- * Creates a new combo box cell editor with the given choices.
- */
-	 public OptionsTextCellEditor(Composite parent)
-	 {
-		 super(parent);
-		 fSelection = "";
-	 }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.CellEditor#createControl(org.eclipse.swt.widgets.Composite)
-   */
-	protected Control createControl(Composite parent)
-	{
-		fEditor = ViewUtility.createComposite(parent, 2);
-		fEditor.setLayout(new ComboCellLayout());
- 
-    if (isTextReadOnly)
-    {
-		  fText = new Text(fEditor, SWT.LEFT | SWT.READ_ONLY);
-    }
-    else
-    {
-      fText = new Text(fEditor, SWT.LEFT);
-    }
-//    fText.setEnabled(false);
-
-		fText.setBackground(parent.getBackground());
-		fText.setText("");
-    fText.addKeyListener(this);
-		fText.addFocusListener(new FocusAdapter()
-    {
-			public void focusLost(FocusEvent e)
-      {
-				if (!moreButton.isFocusControl())
-				{
-					OptionsTextCellEditor.this.focusLost();
-				}
-			}
-		});
-			
-		moreButton = ViewUtility.createPushButton(fEditor, "...");
-		moreButton.addSelectionListener(new SelectionAdapter()
-		{
-			public void widgetSelected(SelectionEvent e)
-			{
-				// System.out.println("More Button Clicked");
-				openDialog();
-			}
-		});
-    moreButton.addKeyListener(this);
-		moreButton.addFocusListener(new FocusAdapter() {
-			public void focusLost(FocusEvent e) {
-				if (!fText.isFocusControl() && (dialog==null || 
-								dialog.isDisposed() || 
-								(dialog!=null && !dialog.isFocusControl())))
-				{
-          // System.out.println("MoreButton focusLost");
-					OptionsTextCellEditor.this.focusLost();
-				}
-			}
-		});
-
-
-		setValueValid(true);
-
-		return fEditor;
-	}
-  
-  public void activate()
-  {
-    // System.out.println("Cell editor activated");
-    fText.setText(fValue == null ? "" : fValue.toString());
-  }
-
-	protected void focusLost() {
-		// System.out.println("CELLEDITOR FOCUS LOST");
-		if (isActivated()) {
-			applyEditorValueAndDeactivate();
-		}
-	}
-
-	void applyEditorValueAndDeactivate() {
-		//	must set the selection before getting value
-//		if (dialog != null  && !dialog.isDisposed())
-//		{
-//			dialog.close();
-//			dialog.dispose();
-//		}
-		fireApplyEditorValue();
-		deactivate();
-	}
-
-  public void keyPressed(KeyEvent e)
-  {
-    if (e.character == SWT.ESC)
-     { // Escape character
-      fireCancelEditor();
-    }
-    else if ((e.character == SWT.CR) || (e.character == SWT.LF))
-     { // Return key
-      applyEditorValueAndDeactivate();
-    }
-  }
-  
-  public void keyReleased(KeyEvent e)
-  {
-    
-  }
-  
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.CellEditor#doGetValue()
-   * Returns the cell editor's value.
-	 */
-	protected Object doGetValue() 
-	{
-		return fValue;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.CellEditor#doSetFocus()
-   * Set the focus to the cell editor's UI representation.
-   */
-	protected void doSetFocus()
-	{
-//		fButton.setFocus();
-//		System.out.println("doSetFocus() " + moreButton.setFocus());
-		fText.setFocus();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.CellEditor#doSetValue(java.lang.Object)
-	 * Sets the value of the cell editor to the given value.
-   */
-	protected void doSetValue(Object value)
-	{
-		fValue = value;
-	}
-
-  protected Point getButtonAbsoluteLocation()
-  {
-    Rectangle buttonBounds = moreButton.getBounds();
-    int x = buttonBounds.x;
-    int y = buttonBounds.y;
-    Control c = moreButton;
-    while (c != null)
-     {
-      c = c.getParent();
-      if (c == null)
-        break;
-      x += c.getBounds().x;
-      y += c.getBounds().y;
-    }
-    x += buttonBounds.width + 5;
-    y += buttonBounds.height;
-    Point p = new Point(x,y);
-    return p;
-  }
-  
-  protected void cancel()
-  {
-    dialog.close();
-    dialog.dispose();
-  }
-
-	protected abstract void openDialog();	
-  
-	public void widgetSelected(SelectionEvent e)
-	{
-	}
-	public void widgetDefaultSelected(SelectionEvent e)
-  {
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/PatternPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/PatternPropertySource.java
deleted file mode 100644
index 38f166a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/PatternPropertySource.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.DialogCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.wizards.RegexWizard;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-
-
-public class PatternPropertySource
-  extends BasePropertySource
-  implements IPropertySource
-{
-  /**
-   * 
-   */
-  public PatternPropertySource()
-  {
-    super();
-//    expressionField.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_PATTERN"));    
-//    WorkbenchHelp.setHelp(expressionField, XSDEditorContextIds.XSDE_PATTERN_VALUE);
-//    WorkbenchHelp.setHelp(activateWizardButton, XSDEditorContextIds.XSDE_PATTERN_REGULAR);
-//    activateWizardButton.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_REGEX_WIZARD_BUTTON"));
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public PatternPropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-  /**
-   * @param xsdSchema
-   */
-  public PatternPropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-    // Create a descriptor and set a category
-
-    PatternTextPropertyDescriptor patternDescriptor =
-    new PatternTextPropertyDescriptor(
-        XSDConstants.VALUE_ATTRIBUTE, 
-        XSDConstants.VALUE_ATTRIBUTE);
-    list.add(patternDescriptor);
-    
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-    {
-      result = element.getAttribute((String) id);
-    }
-    if (result == null)
-    {
-      result = "";
-    }
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value == null)
-    {
-      value = "";
-    }
-    if (value instanceof String)
-    {
-      if (((String) id).equals(XSDConstants.VALUE_ATTRIBUTE))
-      { 
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_PATTERN_VALUE_CHANGE"), element);
-        element.setAttribute(XSDConstants.VALUE_ATTRIBUTE, (String)value);
-        endRecording(element);
-      }
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-    
-  }
-
-  public class PatternTextPropertyDescriptor extends PropertyDescriptor
-  {
-    /**
-     * @param id
-     * @param displayName
-     */
-    public PatternTextPropertyDescriptor(Object id, String displayName)
-    {
-      super(id, displayName);
-    }
-    
-    public CellEditor createPropertyEditor(Composite parent)
-    {
-      // CellEditor editor = new PatternTextCellEditor(parent);
-      CellEditor editor = new PatternDialogCellEditor(parent);
-      if (getValidator() != null)
-        editor.setValidator(getValidator());
-      return editor;
-    }
-  }   
-
-  public class PatternDialogCellEditor extends DialogCellEditor {
-
-    /**
-     * Creates a new Font dialog cell editor parented under the given control.
-     * The cell editor value is <code>null</code> initially, and has no 
-     * validator.
-     *
-     * @param parent the parent control
-     */
-    protected PatternDialogCellEditor(Composite parent) {
-      super(parent);
-    }
-
-    /**
-     * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(Control)
-     */
-    protected Object openDialogBox(Control cellEditorWindow)
-    {
-      String initialValue = element.getAttribute(XSDConstants.VALUE_ATTRIBUTE);
-      if (initialValue == null)
-      {
-        initialValue = "";
-      }
-      RegexWizard wizard = new RegexWizard(initialValue);
-      Shell shell = Display.getCurrent().getActiveShell();
-      WizardDialog wizardDialog = new WizardDialog(shell, wizard);
-      wizardDialog.create();
-      
-      String value = (String)getValue();
-
-      int result = wizardDialog.open();
-
-      if (result == Window.OK)
-      {
-        return wizard.getPattern();
-      }
-      return value;
-    }
-
-  }
-  
-//  class PatternTextCellEditor extends OptionsTextCellEditor
-//  {
-//    protected Button fixedButton, defaultButton;
-//    
-//    public PatternTextCellEditor(Composite parent)
-//    {
-//      super(parent);
-//    }
-//
-//    protected Control createControl(Composite parent)
-//    {
-//      isTextReadOnly = false;
-//      return super.createControl(parent);
-//    }
-//
-//    protected void openDialog()
-//    {
-//      RegexWizard wizard = new RegexWizard(element.getAttribute(XSDConstants.VALUE_ATTRIBUTE));
-//      Shell shell = Display.getCurrent().getActiveShell();
-//      WizardDialog wizardDialog = new WizardDialog(shell, wizard);
-//      wizardDialog.create();
-//      
-//      dialog = wizardDialog.getShell();
-//      Display display = dialog.getDisplay();
-//      dialog.addShellListener(new ShellAdapter()
-//      {
-//        public void shellDeactivated(ShellEvent e)
-//        {
-//          cancel();
-//        }
-//      });
-//
-//      int result = wizardDialog.open();
-//
-//      if (result == Window.OK)
-//      {
-//        fText.setText(wizard.getPattern());
-//        applyEditorValueAndDeactivate();
-//      }
-//      
-//    }
-//
-//    protected void cancel()
-//    {
-//      super.cancel();
-//    }
-//
-//    void applyEditorValueAndDeactivate()
-//    {
-//      String value = fText.getText();
-//      doSetValue(value);
-//      fireApplyEditorValue();
-//      deactivate();
-//    }
-//    
-//    protected Object doGetValue()
-//    { 
-//      fValue = fText.getText();
-//      return fText.getText();
-//    }
-//
-//  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ReadOnlyPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ReadOnlyPropertySource.java
deleted file mode 100644
index 0f5cb7f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/ReadOnlyPropertySource.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-
-public class ReadOnlyPropertySource implements IPropertySource
-{
-	protected Element element;
-
-	public ReadOnlyPropertySource(IEditorPart editPart, Element element)
-	{
-			this.element = element;
-	}
-
-	public Object getEditableValue()
-	{
-			return null;
-	}
-
-	public IPropertyDescriptor[] getPropertyDescriptors()
-	{
-			List list = new ArrayList();
-			NamedNodeMap map = element.getAttributes();
-			int mapLength = map.getLength();
-			for (int i = 0; i < mapLength; i++)
-			{
-					Attr attr = (Attr) map.item(i);
-					list.add(new PropertyDescriptor(attr.getName(), attr.getName()));
-			}
-			IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-			list.toArray(result);
-			return result;
-	}
-
-	public Object getPropertyValue(Object id)
-	{
-			Object result = null;
-			if (id instanceof String)
-			{
-					result = element.getAttribute((String) id);
-			}
-			return result != null ? result : "";
-	}
-
-	public boolean isPropertySet(Object id)
-	{
-			return false;
-	}
-
-	public void resetPropertyValue(Object id)
-	{
-	}
-
-	public void setPropertyValue(Object id, Object value)
-	{
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SchemaDirectiveHelperPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SchemaDirectiveHelperPropertySource.java
deleted file mode 100644
index b8e1ed2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SchemaDirectiveHelperPropertySource.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.DialogCellEditor;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.navigator.ResourceNavigator;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.wst.common.ui.viewers.ResourceFilter;
-import org.eclipse.wst.xml.uriresolver.util.URIHelper;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.wizards.XSDSelectIncludeFileWizard;
-import org.eclipse.xsd.XSDSchema;
-
-public abstract class SchemaDirectiveHelperPropertySource
-  extends BasePropertySource
-{
-  protected IFile currentIFile;
-
-  IFile selectedIFile;
-  String selectedNamespace;
-  XSDSchema selectedXSDSchema;
-  boolean isInclude;
-  /**
-   * 
-   */
-  public SchemaDirectiveHelperPropertySource(boolean isInclude)
-  {
-    super();
-    this.isInclude = isInclude;
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public SchemaDirectiveHelperPropertySource(
-    Viewer viewer,
-    XSDSchema xsdSchema,
-    boolean isInclude)
-  {
-    super(viewer, xsdSchema);
-    this.isInclude = isInclude;
-  }
-  /**
-   * @param xsdSchema
-   */
-  public SchemaDirectiveHelperPropertySource(XSDSchema xsdSchema, boolean isInclude)
-  {
-    super(xsdSchema);
-    this.isInclude = isInclude;
-  }
-
-  
-  public class SchemaLocationPropertyDescriptor extends PropertyDescriptor
-  {
-    /**
-     * @param id
-     * @param displayName
-     */
-    public SchemaLocationPropertyDescriptor(Object id, String displayName)
-    {
-      super(id, displayName);
-    }
-    
-    public CellEditor createPropertyEditor(Composite parent)
-    {
-      CellEditor editor = new SchemaLocationDialogCellEditor(parent);
-      if (getValidator() != null)
-        editor.setValidator(getValidator());
-      return editor;
-    }
-  }
-
-  public class SchemaLocationDialogCellEditor extends DialogCellEditor {
-
-    /**
-     * Creates a new Font dialog cell editor parented under the given control.
-     * The cell editor value is <code>null</code> initially, and has no 
-     * validator.
-     *
-     * @param parent the parent control
-     */
-    protected SchemaLocationDialogCellEditor(Composite parent) {
-      super(parent);
-    }
-
-    /**
-     * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(Control)
-     */
-    protected Object openDialogBox(Control cellEditorWindow)
-    {
-      Shell shell = Display.getCurrent().getActiveShell();
-      
-//      oldSchemaLocation = locationField.getText().trim();
-//      IFile currentIFile = ((IFileEditorInput)getIEditorPart().getEditorInput()).getFile();
-      ViewerFilter filter = new ResourceFilter(new String[] { ".xsd" }, 
-      new IFile[] { currentIFile },
-      null);
-//
-
-      IViewPart viewParts[] = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getViews();
-      ResourceNavigator resourceNav = null;
-      for (int i = 0; i < viewParts.length; i++) 
-       {
-        if (viewParts[i] instanceof ResourceNavigator) 
-         {
-          resourceNav = (ResourceNavigator) viewParts[i];
-          break;
-        }
-      }
-      IStructuredSelection selection = StructuredSelection.EMPTY;
-      if (resourceNav != null)
-       {
-        selection = (IStructuredSelection)resourceNav.getViewSite().getSelectionProvider().getSelection();
-      }
-      
-      XSDSelectIncludeFileWizard fileSelectWizard = 
-      new XSDSelectIncludeFileWizard(xsdSchema, isInclude,
-          XSDEditorPlugin.getXSDString("_UI_FILEDIALOG_SELECT_XML_SCHEMA"),
-          XSDEditorPlugin.getXSDString("_UI_FILEDIALOG_SELECT_XML_DESC"),
-          filter,
-          selection);
-
-      WizardDialog wizardDialog = new WizardDialog(shell, fileSelectWizard);
-      wizardDialog.create();
-      wizardDialog.setBlockOnOpen(true);
-      int result = wizardDialog.open();
-
-      
-      String value = (String)getValue();
-      // System.out.println("VALUE IS *** = " + value);
-      if (result == Window.OK)
-      {
-        selectedIFile = fileSelectWizard.getResultFile();
-        String schemaFileString = value;
-        if (selectedIFile != null) 
-         {
-          schemaFileString = URIHelper.getRelativeURI(selectedIFile.getLocation(), currentIFile.getLocation());
-        }
-        else
-         {
-          schemaFileString = fileSelectWizard.getURL();
-        }
-
-//        updateExternalModel(selectedIFile, fileSelectWizard.getNamespace(), fileSelectWizard.getExternalSchema());
-        selectedNamespace = fileSelectWizard.getNamespace();
-        selectedXSDSchema = fileSelectWizard.getExternalSchema();
-        
-        return schemaFileString;
-      }
-      return value;
-    }
-  }
-
-  public IFile getSelectedIFile()
-  {
-    return selectedIFile;
-  }
-  
-  public String getSelectedNamespace()
-  {
-    return selectedNamespace;
-  }
-  
-  public XSDSchema getSelectedXSDSchema()
-  {
-    return selectedXSDSchema;
-  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SchemaPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SchemaPropertySource.java
deleted file mode 100644
index 051c3c8..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SchemaPropertySource.java
+++ /dev/null
@@ -1,530 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.TargetNamespaceChangeHandler;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.XSDSchemaHelper;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class SchemaPropertySource
-  extends BasePropertySource
-  implements IPropertySource
-{
-  private String oldPrefix = "";
-  private String oldNamespace = "";
-  
-  private String[] attributeFormDefaultComboValues =
-  { 
-    "",
-    XSDEditorPlugin.getXSDString("_UI_COMBO_UNQUALIFIED"),
-    XSDEditorPlugin.getXSDString("_UI_COMBO_QUALIFIED")
-  };
-  
-  private String[] elementFormDefaultComboValues =
-  {
-    "",
-    XSDEditorPlugin.getXSDString("_UI_COMBO_UNQUALIFIED"),
-    XSDEditorPlugin.getXSDString("_UI_COMBO_QUALIFIED")
-  };
-
-  private String[] blockDefaultComboValues =
-  {
-    "",
-    "#all",
-    "extension",
-    "restriction",
-    "substitution"
-  };
-
-  private String[] finalDefaultComboValues =
-  {
-    "",
-    "#all",
-    "extension",
-    "restriction"
-  };
-  
-  /**
-   * 
-   */
-  public SchemaPropertySource()
-  {
-    super();
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public SchemaPropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-  /**
-   * @param xsdSchema
-   */
-  public SchemaPropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-    // Create a descriptor and set a category
-// These have been moved to the General tab    
-//    PropertyDescriptor prefixDescriptor = 
-//    new TextPropertyDescriptor(
-//        "prefix",
-//        "prefix");
-//    list.add(prefixDescriptor);
-//    prefixDescriptor.setCategory("Namespace");
-//
-//    PropertyDescriptor targetNamespaceDescriptor = 
-//    new TextPropertyDescriptor(
-//        XSDConstants.TARGETNAMESPACE_ATTRIBUTE,
-//        XSDConstants.TARGETNAMESPACE_ATTRIBUTE);
-//    list.add(targetNamespaceDescriptor);
-//    targetNamespaceDescriptor.setCategory("Namespace");
-    
-    PropertyDescriptor versionDescriptor = 
-    new TextPropertyDescriptor(
-        XSDConstants.VERSION_ATTRIBUTE,
-        XSDConstants.VERSION_ATTRIBUTE);
-//    versionDescriptor.setDescription("Version attribute"); // XSDEditorPlugin.getXSDString("_UI_TOOLTIP_VERSION"));
-    list.add(versionDescriptor);
-    PropertyDescriptor xmlLangDescriptor = 
-    new TextPropertyDescriptor(
-        "xml:lang",
-        "xml:lang");
-    list.add(xmlLangDescriptor);
-    
-    XSDComboBoxPropertyDescriptor attributeFormDefaultDescriptor =
-    new XSDComboBoxPropertyDescriptor(
-        XSDConstants.ATTRIBUTEFORMDEFAULT_ATTRIBUTE,
-        XSDConstants.ATTRIBUTEFORMDEFAULT_ATTRIBUTE,
-        attributeFormDefaultComboValues);
-    list.add(attributeFormDefaultDescriptor);
-    
-    
-    XSDComboBoxPropertyDescriptor elementFormDefaultDescriptor =
-    new XSDComboBoxPropertyDescriptor(
-        XSDConstants.ELEMENTFORMDEFAULT_ATTRIBUTE,
-        XSDConstants.ELEMENTFORMDEFAULT_ATTRIBUTE,
-        elementFormDefaultComboValues);
-    list.add(elementFormDefaultDescriptor);
-    
-    XSDComboBoxPropertyDescriptor blockDefaultDescriptor =
-    new XSDComboBoxPropertyDescriptor(
-        XSDConstants.BLOCKDEFAULT_ATTRIBUTE,
-        XSDConstants.BLOCKDEFAULT_ATTRIBUTE,
-        blockDefaultComboValues);
-    list.add(blockDefaultDescriptor);
-    XSDComboBoxPropertyDescriptor finalDefaultDescriptor =
-    new XSDComboBoxPropertyDescriptor(
-        XSDConstants.FINALDEFAULT_ATTRIBUTE,
-        XSDConstants.FINALDEFAULT_ATTRIBUTE,
-        finalDefaultComboValues);
-    list.add(finalDefaultDescriptor);
-
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-    //    return propertyDescriptors;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-    {
-      result = element.getAttribute((String) id);
-      String attributeName = (String)id;
-      if (result == null)
-      {
-        result = "";
-      }
-
-      if (attributeName.equals("prefix"))
-      {
-        TypesHelper helper = new TypesHelper(xsdSchema);
-        String aPrefix = helper.getPrefix(element.getAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE), false);
-        // System.out.println("schema targetNS is " + xsdSchema.getTargetNamespace());
-        if (aPrefix != null && aPrefix.length() > 0)
-        {
-          return aPrefix;
-        }
-        return "";        
-      }
-      else
-      {
-        return result;
-      }
-    }
-    return "";
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value == null)
-    {
-      value = "";
-    }
-    if (value instanceof String)
-    {
-      String newValue = (String)value;
-      String attributeName = (String)id;
-      if (attributeName.equals("prefix"))
-      {
-        updatePrefix(newValue); 
-      }
-      else if (attributeName.equals(XSDConstants.TARGETNAMESPACE_ATTRIBUTE))
-      {
-        updateTargetNamespace(newValue);
-      }
-      else if (attributeName.equals("xml:lang"))
-      {
-        validateLanguage(newValue);
-        // return;  // we will accept the value even though it does not conform
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_SCHEMA_LANG_CHANGE"), element);
-      }
-      else if (attributeName.equals(XSDConstants.VERSION_ATTRIBUTE))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_SCHEMA_VERSION_CHANGE"), element);
-      }
-      else if (attributeName.equals(XSDConstants.ATTRIBUTEFORMDEFAULT_ATTRIBUTE))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_SCHEMA_ATTRIBUTEFORMDEFAULT_CHANGE"), element);
-      }
-      else if (attributeName.equals(XSDConstants.ELEMENTFORMDEFAULT_ATTRIBUTE))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_SCHEMA_ELEMENTFORMDEFAULT_CHANGE"), element); 
-      }
-      else if (attributeName.equals(XSDConstants.BLOCKDEFAULT_ATTRIBUTE))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_SCHEMA_BLOCKDEFAULT_CHANGE"), element); 
-      }
-      else if (attributeName.equals(XSDConstants.FINALDEFAULT_ATTRIBUTE))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_SCHEMA_FINALDEFAULT_CHANGE"), element);
-      }
-
-      if (!attributeName.equals("prefix") && !attributeName.equals(XSDConstants.TARGETNAMESPACE_ATTRIBUTE))
-      {        
-        if (newValue.equals(""))
-        {
-          element.removeAttribute(attributeName); 
-        }
-        else
-        {
-          element.setAttribute(attributeName, newValue);
-        }
-        endRecording(element);
-      }
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-        viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-    
-  }
-
-  public void setInput(Element element)
-  {
-    super.setInput(element);
-    
-    oldNamespace = "";
-    oldPrefix = "";
-    
-    if (element!= null)
-    {
-      String targetNamespace = element.getAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE);
-      oldNamespace = targetNamespace;
-
-      TypesHelper helper = new TypesHelper(xsdSchema);
-      String aPrefix = helper.getPrefix(targetNamespace, false);
-      if (aPrefix != null && aPrefix.length() > 0)
-      {
-        oldPrefix = aPrefix;
-      }
-    }
-
-//  For debugging
-//    System.out.println("old Prefix is " + oldPrefix);
-//    System.out.println("old NS is " + oldNamespace);
-    if (xsdSchema != null)
-    {
-      Map map = xsdSchema.getQNamePrefixToNamespaceMap();
-//      System.out.println("SetInput: Prefixes: " + map.values());
-//      System.out.println("SetInput: NS:" + map.keySet());
-    }
-    
-  }
-  
-  
-  private void updatePrefix(String newPrefix)
-  {
-    updateNamespaceInfo(newPrefix, oldNamespace);  
-  }
-  
-  private void updateTargetNamespace(String newTargetNamespace)
-  {
-    updateNamespaceInfo(oldPrefix, newTargetNamespace);
-  }
-  
-  private void updateNamespaceInfo(String newPrefix, String newTargetNamespace)
-  {
-//    System.out.println("\nold Prefix is " + oldPrefix);
-//    System.out.println("old NS is " + oldNamespace);
-//    System.out.println("new Prefix is " + newPrefix);
-//    System.out.println("new NS is " + newTargetNamespace);
-    
-    DocumentImpl doc = (DocumentImpl)element.getOwnerDocument();
-
-    String modelTargetNamespace = xsdSchema.getTargetNamespace();
-//    System.out.println("Model TargetNS is " + modelTargetNamespace);
-    if (modelTargetNamespace == null)
-    {
-      modelTargetNamespace = "";
-    }
-        
-    String targetNamespace = newTargetNamespace.trim(); 
-    String prefix = newPrefix.trim();
-
-    if (!validatePrefix(prefix) || !validateTargetNamespace(targetNamespace))
-    {
-      return;
-    }
-        
-    if (prefix.length() > 0 && targetNamespace.length() == 0)
-    {
-       // can't have blank targetnamespace and yet specify a prefix
-       return;
-    }
-
-    doc.getModel().beginRecording(this, "Target Namespace Change");
-    String xsdForXSDPrefix = xsdSchema.getSchemaForSchemaQNamePrefix();
-    Map map = xsdSchema.getQNamePrefixToNamespaceMap();
-
-// For debugging
-//        System.out.println("1. SW Map is " + map.values());
-//        System.out.println("1. SW Map keys are " + map.keySet());
-
-    // Check if prefix is blank
-    // if it is, then make sure we have a prefix 
-    // for schema for schema
-    if (prefix.length() == 0)
-    {
-      // if prefix for schema for schema is blank
-      // then set it to value specified in preference
-      // and update ALL nodes with this prefix
-      if (xsdForXSDPrefix == null || (xsdForXSDPrefix != null && xsdForXSDPrefix.trim().length() == 0))
-      {
-        // get preference prefix
-        xsdForXSDPrefix = XSDEditorPlugin.getPlugin().getXMLSchemaPrefix();
-        // get a unique prefix by checking what's in the map
-
-        xsdForXSDPrefix = getUniqueSchemaForSchemaPrefix(xsdForXSDPrefix, map);
-        element.setAttribute("xmlns:" + xsdForXSDPrefix, XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001);
-
-        updateAllNodes(element, xsdForXSDPrefix);
-            
-        // remove the old xmlns attribute for the schema for schema
-        if (element.getAttribute("xmlns") != null &&
-            element.getAttribute("xmlns").equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001))
-        {
-          element.removeAttribute("xmlns");
-        }
-      }
-    }
-
-    if (targetNamespace.length() > 0 ||
-       (targetNamespace.length() == 0 && prefix.length() == 0))
-    {
-      // clean up the old prefix for this schema
-      if (oldPrefix != null && oldPrefix.length() > 0)
-      {
-        element.removeAttribute("xmlns:"+oldPrefix);
-//            element.setAttribute("xmlns:" + prefix, targetNamespace);
-//            java.util.Map prefixToNameSpaceMap = xsdSchema.getQNamePrefixToNamespaceMap();
-//            prefixToNameSpaceMap.remove(oldPrefix);
-      }
-      else // if no prefix
-      {
-        if (element.getAttribute("xmlns") != null)
-        {
-          if (!element.getAttribute("xmlns").equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001))
-           {
-            element.removeAttribute("xmlns");
-          }
-        }
-      }
-    }
-
-    if (targetNamespace.length() > 0)
-    {
-      if (!modelTargetNamespace.equals(targetNamespace))
-      {
-        element.setAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE, targetNamespace);
-      }
-      // now set the new xmlns:prefix attribute
-      if (prefix.length() > 0)
-      {
-        element.setAttribute("xmlns:" + prefix, targetNamespace);
-      }
-      else
-      {
-        element.setAttribute("xmlns", targetNamespace);
-      }
-      // set the targetNamespace attribute
-    }
-    else // else targetNamespace is blank
-    {
-      if (prefix.length() == 0)
-      {
-        element.removeAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE);
-      }
-    }
-
-//    System.out.println("1.5 SW Map is " + map.values());
-//    System.out.println("1.5 SW Map keys are " + map.keySet());
-    
-    // do our own referential integrity
-    TargetNamespaceChangeHandler targetNamespaceChangeHandler = new TargetNamespaceChangeHandler(xsdSchema, oldNamespace, targetNamespace);
-    targetNamespaceChangeHandler.resolve();
-
-    oldPrefix = prefix;
-    oldNamespace = targetNamespace;
-    
-    XSDSchemaHelper.updateElement(xsdSchema);
-    
-    doc.getModel().endRecording(this);
-
-// For debugging
-        map = xsdSchema.getQNamePrefixToNamespaceMap();
-//        System.out.println("2. SW Map is " + map.values());
-//        System.out.println("2. SW Map keys are " + map.keySet());
-  }
-
-
-  private String getUniqueSchemaForSchemaPrefix(String xsdForXSDPrefix, Map map)
-  {
-    if (xsdForXSDPrefix == null || (xsdForXSDPrefix != null && xsdForXSDPrefix.trim().length() == 0))
-     {       
-      xsdForXSDPrefix = "xsd";
-    }
-    // ensure prefix is unique
-    int prefixExtension = 1;
-    while (map.containsKey(xsdForXSDPrefix) && prefixExtension < 100)
-     {
-      xsdForXSDPrefix = xsdForXSDPrefix + String.valueOf(prefixExtension);
-      prefixExtension++;
-    }
-    return xsdForXSDPrefix;
-  }
-
-  private void updateAllNodes(Element element, String prefix)
-  {
-    element.setPrefix(prefix);
-    NodeList list = element.getChildNodes();
-    if (list != null)
-    {
-      for (int i=0; i < list.getLength(); i++)
-      {
-        Node child = list.item(i);
-        if (child != null && child instanceof Element)
-        {
-          child.setPrefix(prefix);
-          if (child.hasChildNodes())
-          {
-            updateAllNodes((Element)child, prefix);
-          }
-        }
-      }
-    }   
-  }
-
-  protected boolean validateTargetNamespace(String ns)
-  {
-    // will allow blank namespace !!
-    if (ns.equals(""))
-     {
-      return true;
-    }
-    
-    String errorMessage = null;
-    try
-    {
-      URI testURI = new URI(ns);
-    }
-    catch (URISyntaxException e)
-    {
-      errorMessage = XSDEditorPlugin.getXSDString("_WARN_INVALID_TARGET_NAMESPACE");
-    }
-    
-    if (errorMessage == null || errorMessage.length() == 0)
-     {
-      return true;
-    }
-    return false;
-  }
-  
-}
-
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleContentPropertyDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleContentPropertyDescriptor.java
deleted file mode 100644
index 1948146..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleContentPropertyDescriptor.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.wst.xsd.ui.internal.properties.section.SimpleContentBaseTypeOptionsDialog;
-import org.eclipse.xsd.XSDSchema;
-import org.w3c.dom.Element;
-
-public class SimpleContentPropertyDescriptor extends TypesPropertyDescriptor
-{
-  public SimpleContentPropertyDescriptor(Object id, String displayName, Element element, XSDSchema xsdSchema)
-  {
-    super(id, displayName, element, xsdSchema);
-  }
-  
-  public CellEditor createPropertyEditor(Composite parent)
-  {
-    // CellEditor editor = new SimpleContentBaseTypeOptionsTextCellEditor(parent);
-    CellEditor editor = new SimpleContentBaseTypeDialogCellEditor(parent);
-    if (getValidator() != null)
-      editor.setValidator(getValidator());
-    return editor;
-  }
-  
-  public class SimpleContentBaseTypeDialogCellEditor extends TypesDialogCellEditor
-  {
-
-    /**
-     * Creates a new Font dialog cell editor parented under the given control.
-     * The cell editor value is <code>null</code> initially, and has no 
-     * validator.
-     *
-     * @param parent the parent control
-     */
-    protected SimpleContentBaseTypeDialogCellEditor(Composite parent)
-    {
-      super(parent);
-    }
-
-    protected Object openDialogBox(Control cellEditorWindow)
-    {
-	    Shell shell = Display.getCurrent().getActiveShell();
-	    
-	    // SimpleContentBaseTypeOptionsDialog dialog = new SimpleContentBaseTypeOptionsDialog(shell);
-	    SimpleContentBaseTypeOptionsDialog dialog = new SimpleContentBaseTypeOptionsDialog(shell, element, property, xsdSchema);
-
-	    dialog.setBlockOnOpen(true);
-	    dialog.create();
-	    
-	    String value = (String)getValue();
-	
-	    int result = dialog.open();
-	
-	    if (result == Window.OK)
-	    {
-	      value = dialog.getType();
-	      return value;
-	    }
-	    deactivate();
-	    return value;
-	  }
-  }
-
-//  class SimpleContentBaseTypeOptionsDialog extends TypesDialog
-//  {
-//    public SimpleContentBaseTypeOptionsDialog(Shell shell)
-//    {
-//      super(shell);
-//      showAnonymous = false;
-//    }
-//
-////    protected void ok()
-////    {
-////      TableItem[] items = table.getItems();
-////      selection = table.getSelectionIndex();
-////      if (items != null && items.length > 0 && selection >= 0)
-////       {
-////        typeObject = items[selection].getData();
-////      }
-////      System.out.println("typeObject is " + typeObject);
-////
-////      doSetValue(typeObject);
-////      applyEditorValueAndDeactivate();
-////      dialog.close();
-////    }
-//    
-//    public void handleSetInput()
-//    {
-//      XSDDOMHelper domHelper = new XSDDOMHelper();
-//      typeSection.getSimpleType().setSelection(false);
-//      typeSection.getUserSimpleType().setSelection(false);
-//      typeSection.getUserComplexType().setSelection(false);
-//      showAnonymous = false;
-//      if (element != null)
-//      {
-//        String derivedBy = domHelper.getDerivedByName(element);
-//        String baseType = domHelper.getBaseType(element);
-//        boolean derivedByRestriction = true;
-//        
-//        if (XSDDOMHelper.inputEquals(element, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
-//        {
-//          typeSection.getSimpleType().setEnabled(false);
-//          typeSection.getUserSimpleType().setEnabled(false);
-//          typeSection.getUserComplexType().setSelection(true);
-//
-//          previousType = 3;
-//        }
-//        else if (XSDDOMHelper.inputEquals(element, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
-//        {
-//          typeSection.getSimpleType().setEnabled(false);
-//          typeSection.getUserSimpleType().setEnabled(false);
-//
-//          if (derivedBy.equals("restriction"))
-//          {
-//            typeSection.getSimpleType().setEnabled(false);
-//            typeSection.getUserSimpleType().setEnabled(false);
-//            typeSection.getUserComplexType().setEnabled(true);
-//          }
-//          else if (derivedBy.equals("extension"))
-//          {
-//            derivedByRestriction = false;
-//            typeSection.getSimpleType().setEnabled(true);
-//            typeSection.getUserSimpleType().setEnabled(true);
-//            typeSection.getUserComplexType().setEnabled(true);
-//          }
-//        }
-//          
-//        if (derivedBy != null)
-//        {
-//            if (baseType != null && !baseType.equals(""))
-//            {
-//              Element parent = (Element)element.getParentNode();
-//              XSDConcreteComponent component = null;
-//              if (parent != null)
-//              {
-//                component = xsdSchema.getCorrespondingComponent(parent);
-//              }
-//              XSDTypeDefinition baseTypeDefinition = null;
-//              if (component instanceof XSDComplexTypeDefinition)
-//              {
-//                XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition)component;
-//                baseTypeDefinition = complexType.getBaseTypeDefinition();
-//              }               
-//
-//              if (typeSection.getBuiltInTypeNamesList(xsdSchema).contains(baseType) && !derivedByRestriction)
-//              {
-//                typeSection.getSimpleType().setSelection(true);
-//                populateBuiltInType();
-//                int i = typeSection.getBuiltInTypeNamesList(xsdSchema).indexOf(baseType);
-//                table.setSelection(i);
-//                previousType = 1;
-//              }
-//              else if (baseTypeDefinition instanceof XSDSimpleTypeDefinition && !derivedByRestriction)
-//              {
-//                typeSection.getUserSimpleType().setSelection(true);
-//                populateUserSimpleType();
-//                int i = typeSection.getUserSimpleTypeNamesList(xsdSchema).indexOf(baseType);
-//                if (showAnonymous)
-//                 {
-//                  table.setSelection(i + 1);
-//                }
-//                else
-//                 {
-//                  table.setSelection(i);
-//                }
-//                previousType = 2;
-//              }
-//              else if (baseTypeDefinition instanceof XSDComplexTypeDefinition)
-//              {
-//                typeSection.getUserComplexType().setSelection(true);
-//                populateUserComplexType();
-//                int i = typeSection.getUserComplexTypeNamesList(xsdSchema).indexOf(baseType);
-//                if (showAnonymous)
-//                 {
-//                  table.setSelection(i + 1);
-//                }
-//                else
-//                 {
-//                  table.setSelection(i);
-//                }
-//                previousType = 3;
-//              }
-//            }
-//            else
-//            {
-//              typeSection.getUserComplexType().setSelection(true);
-//              populateUserComplexType();
-//              table.setSelection(0);
-//            }
-//          }
-//
-//      }
-//    }
-//  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleContentPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleContentPropertySource.java
deleted file mode 100644
index f0233cd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleContentPropertySource.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class SimpleContentPropertySource
-  extends BasePropertySource
-  implements IPropertySource
-{
-  private String DERIVED_BY_ID = "derived by";  // XSDEditorPlugin.getXSDString("_UI_LABEL_DERIVED_BY"); 
-  private String BASE_TYPE_ID = "base";  // XSDEditorPlugin.getXSDString("_UI_LABEL_BASE_TYPE");
-  
-  private String derivedByChoicesComboValues[] =
-  {
-     "",
-     XSDConstants.RESTRICTION_ELEMENT_TAG,
-     XSDConstants.EXTENSION_ELEMENT_TAG
-  };
-  
-  /**
-   * 
-   */
-  public SimpleContentPropertySource()
-  {
-    super();
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public SimpleContentPropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-  /**
-   * @param xsdSchema
-   */
-  public SimpleContentPropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-    // Create a descriptor and set a category
-    
-    SimpleContentPropertyDescriptor typeDescriptor = new SimpleContentPropertyDescriptor(
-        BASE_TYPE_ID,
-        BASE_TYPE_ID,
-        element, xsdSchema);
-    list.add(typeDescriptor);
-    XSDComboBoxPropertyDescriptor derivedByDescriptor =
-    new XSDComboBoxPropertyDescriptor(
-        DERIVED_BY_ID,
-        DERIVED_BY_ID,
-        derivedByChoicesComboValues);
-    list.add(derivedByDescriptor);
-    
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-     {
-      if (((String) id).equals(DERIVED_BY_ID))
-      {
-        String derivedBy = getDomHelper().getDerivedByName(element);
-        if (derivedBy == null)
-         {
-          derivedBy = "";
-        }
-        return derivedBy;
-      }
-      else if (((String) id).equals(BASE_TYPE_ID))
-      {
-        String baseType = getDomHelper().getBaseType(element);
-        if (baseType == null)
-        {
-          baseType = "";
-        }
-        return baseType;
-      }
-    }
-    return "";
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value != null)
-    {
-      if (value instanceof String)
-      {
-        String origBaseType = getDomHelper().getBaseType(element);
-        String derivedBy = getDomHelper().getDerivedByName(element);
-        
-        if (((String) id).equals(BASE_TYPE_ID))
-        {            
-          Document doc = element.getOwnerDocument();
-          Element childElement = null;
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_TYPE_CHANGE"), element);        
-          getDomHelper().setDerivedByBaseType(element, derivedBy, (String)value);
-          endRecording(element);
-        }
-        else if (((String) id).equals(DERIVED_BY_ID))
-        {
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_DERIVEDBY_CHANGE"), element);
-          String newDerivedBy = (String)value;
-          if (newDerivedBy.equals(XSDConstants.RESTRICTION_ELEMENT_TAG))
-          {
-            String prefix = element.getPrefix();
-            String anyType = prefix == null? "anyType" : prefix + ":anyType"; 
-            getDomHelper().changeDerivedByType(element, (String)value, anyType);
-          }
-          else
-          {
-            Element derivedByElem = getDomHelper().getDerivedByElement(element);
-            if (checkForAnonymousType(derivedByElem))
-            {            
-// KCPort
-//            ArrayList message = new ArrayList();
-//            ErrorMessage aTask = new ErrorMessage();
-//            Node aNode = getDomHelper().getChildNode(derivedByElem, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-////////////// shall we remove the node and its children??
-////            getDomHelper().removeNodeAndWhitespace(aNode);
-//////////////
-////            if (aNode instanceof Element)
-////            {
-////              Element st = (Element)aNode;
-////             if (st instanceof NodeImpl)
-////              {
-////                aTask.setNode((NodeImpl)st);
-////              }
-////            }
-//            if (derivedByElem instanceof NodeImpl)
-//            {
-//              aTask.setModelObject(derivedByElem);
-//            }
-//            aTask.setLocalizedMessage(XSDEditorPlugin.getXSDString("_ERROR_REMOVE_LOCAL_SIMPLETYPE"));
-//            message.add(aTask);
-//            if (getEditor() != null)
-//            {
-//              getEditor().createTasksInTaskList(message);
-//            }
-            }   
-            getDomHelper().changeDerivedByType(element, (String)value, origBaseType);
-          }
-
-          
-          endRecording(element);
-//        setInput(element);
-        }
-      }
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-  }
-
-  boolean checkForAnonymousType(Element element)
-  {
-    boolean isAnonymous = false;
-
-    Node aNode = getDomHelper().getChildNode(element, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-    if (aNode != null)
-     {
-      return true;
-    }
-    return isAnonymous;
-  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleRestrictPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleRestrictPropertySource.java
deleted file mode 100644
index 38a8819..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleRestrictPropertySource.java
+++ /dev/null
@@ -1,362 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.actions.DOMAttribute;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.wst.xsd.ui.internal.util.XSDSchemaHelper;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDFacet;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.impl.XSDFactoryImpl;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class SimpleRestrictPropertySource
-  extends BasePropertySource
-  implements IPropertySource
-{
-  private String BASE_TYPE_ID = XSDEditorPlugin.getXSDString("_UI_LABEL_BASE_TYPE");
-  private String [] whiteSpaceComboChoices = { "", "preserve", "replace", "collapse" };
-  /**
-   * 
-   */
-  public SimpleRestrictPropertySource()
-  {
-    super();
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public SimpleRestrictPropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-  /**
-   * @param xsdSchema
-   */
-  public SimpleRestrictPropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-    // Create a descriptor and set a category
-    
-    SimpleContentPropertyDescriptor typeDescriptor = new SimpleContentPropertyDescriptor(
-        XSDConstants.BASE_ATTRIBUTE,
-        XSDConstants.BASE_ATTRIBUTE,
-        (Element)element.getParentNode(), xsdSchema);  // get the parent node!
-    list.add(typeDescriptor);
-    
-    Iterator facets = xsdSimpleType.getValidFacets().iterator();
-    
-    while(facets.hasNext())
-    {
-      String aValidFacet = (String)facets.next();
-      if (!(aValidFacet.equals(XSDConstants.PATTERN_ELEMENT_TAG) || aValidFacet.equals(XSDConstants.ENUMERATION_ELEMENT_TAG)))
-      {
-        if (aValidFacet.equals(XSDConstants.WHITESPACE_ELEMENT_TAG))
-        {
-          XSDComboBoxPropertyDescriptor whitespaceDescriptor = new XSDComboBoxPropertyDescriptor(
-              aValidFacet, aValidFacet, whiteSpaceComboChoices);
-          list.add(whitespaceDescriptor);
-        }
-        else
-        {  
-          list.add(new TextPropertyDescriptor(aValidFacet, aValidFacet));
-        }
-      }
-    }
-    
-    
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-    {
-      if (((String) id).equals(XSDConstants.BASE_ATTRIBUTE))
-      {
-        String baseType = element.getAttribute(XSDConstants.BASE_ATTRIBUTE);
-        if (baseType == null)
-        {
-          baseType = "";
-        }
-        return baseType;
-      }
-      else
-      {
-        String aFacet = (String)id;
-        Iterator facets = xsdSimpleType.getFacets().iterator();
-        
-        while(facets.hasNext())
-        {
-          XSDFacet aValidFacet = (XSDFacet)facets.next();
-          if (aValidFacet.getFacetName().equals(aFacet))
-          {
-            result = aValidFacet.getLexicalValue();
-            if (result == null)
-            {
-              result = "";
-            }
-            return result;
-          }
-        }
-      }
-    }
-    return "";
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value != null)
-     {
-      if (value instanceof String)
-      {
-        String newValue = (String)value;
-        String origBaseType = getDomHelper().getBaseType(element);
-        
-        if (((String) id).equals(XSDConstants.BASE_ATTRIBUTE))
-        {            
-          Document doc = element.getOwnerDocument();
-          Element childElement = null;
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_TYPE_CHANGE"), element);        
-
-          Element parent = (Element)element.getParentNode();
-          if (XSDDOMHelper.inputEquals(parent, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false))
-          {
-//            updateElementToNotAnonymous(element);
-          }
-          getDomHelper().setSimpleContentType(element, newValue);
-          endRecording(element);
-        }
-        else
-        {
-          Element simpleTypeElement = xsdSimpleType.getElement();
-          XSDDOMHelper xsdDOMHelper = new XSDDOMHelper();
-          Element derivedByElement = xsdDOMHelper.getDerivedByElement(simpleTypeElement);
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_FACET_CHANGE"), simpleTypeElement);
-          String prefix = simpleTypeElement.getPrefix();
-          prefix = (prefix == null) ? "" : (prefix + ":");
-
-          String aFacet = (String)id;
-          XSDFactoryImpl factory = new XSDFactoryImpl();
-
-          Element childNodeElement = null;
-          DOMAttribute valueAttr = null;
-          XSDFacet facet = null;
-          if (aFacet.equals(XSDConstants.TOTALDIGITS_ELEMENT_TAG))
-          {
-            facet = xsdSimpleType.getTotalDigitsFacet();
-          }
-          else if (aFacet.equals(XSDConstants.FRACTIONDIGITS_ELEMENT_TAG))
-          {
-            facet = xsdSimpleType.getFractionDigitsFacet();
-          }
-          else if (aFacet.equals(XSDConstants.WHITESPACE_ELEMENT_TAG))
-          {
-            facet = xsdSimpleType.getWhiteSpaceFacet();
-          }
-          else if (aFacet.equals(XSDConstants.MAXEXCLUSIVE_ELEMENT_TAG))
-          {
-            facet = xsdSimpleType.getMaxExclusiveFacet();
-          }
-          else if (aFacet.equals(XSDConstants.MAXINCLUSIVE_ELEMENT_TAG))
-          {
-            facet = xsdSimpleType.getMaxInclusiveFacet();
-          }
-          else if (aFacet.equals(XSDConstants.MINEXCLUSIVE_ELEMENT_TAG))
-          {
-            facet = xsdSimpleType.getMinExclusiveFacet();
-          }
-          else if (aFacet.equals(XSDConstants.MININCLUSIVE_ELEMENT_TAG))
-          {
-            facet = xsdSimpleType.getMinInclusiveFacet();
-          }
-          else if (aFacet.equals(XSDConstants.LENGTH_ELEMENT_TAG))
-          {
-            facet = xsdSimpleType.getLengthFacet();
-          }
-          else if (aFacet.equals(XSDConstants.MAXLENGTH_ELEMENT_TAG))
-          {
-            facet = xsdSimpleType.getMaxLengthFacet();
-          }
-          else if (aFacet.equals(XSDConstants.MINLENGTH_ELEMENT_TAG))
-          {
-            facet = xsdSimpleType.getMinLengthFacet();
-          }
-          
-          if (facet != null)
-          {
-            facet.setLexicalValue(newValue);
-          }
-          else
-          {
-            facet = (XSDFacet)factory.createXSDTotalDigitsFacet();
-            childNodeElement = (derivedByElement.getOwnerDocument()).createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, prefix + aFacet);
-            valueAttr = new DOMAttribute(XSDConstants.VALUE_ATTRIBUTE, "");
-            childNodeElement.setAttribute(valueAttr.getName(), valueAttr.getValue());
-            valueAttr.setValue(newValue);
-            childNodeElement.setAttribute(valueAttr.getName(), valueAttr.getValue());  
-            boolean hasChildrenElements = hasElementChildren(derivedByElement);
-            element.appendChild(childNodeElement);
-          //formatChild(childNodeElement, hasChildrenElements);    
-          }
-          XSDSchemaHelper.updateElement(xsdSimpleType);
-          if (facet != null)
-          {
-            XSDSchemaHelper.updateElement(facet);
-          }
-        }
-      }
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-
-  }
-
-  protected boolean isAnonymous;
-  protected XSDSimpleTypeDefinition xsdSimpleType;
-  public void setInput(Element element)
-  {
-    this.element = element;
-    if (xsdSchema == null)
-    {
-      return;
-    }
-    String type = element.getLocalName();
-
-    isAnonymous = checkForAnonymousType(element);
-    
-    int restrictionType = 0;  // 0 = SimpleType restriction
-    // 1 = SimpleContent restriction
-    // ComplexContent restriction different window
-    
-    if (XSDDOMHelper.inputEquals(element, XSDConstants.RESTRICTION_ELEMENT_TAG, false))
-    {
-      String baseType = element.getAttribute(XSDConstants.BASE_ATTRIBUTE);
-
-      XSDTypeDefinition baseTypeDefinition = null;
-
-      Element parent = (Element)element.getParentNode();
-      if (XSDDOMHelper.inputEquals(parent, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
-      {
-        restrictionType = 1;
-        Element grandparent = (Element)parent.getParentNode();
-        XSDConcreteComponent component = null;
-        if (grandparent != null)
-        {
-          component = xsdSchema.getCorrespondingComponent(grandparent);
-        }
-        if (component instanceof XSDComplexTypeDefinition)
-        {
-          XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition)component;
-          baseTypeDefinition = complexType.getBaseTypeDefinition();
-        }               
-      }
-      else if (XSDDOMHelper.inputEquals(parent, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false))
-      {
-        restrictionType = 0;
-        XSDConcreteComponent component = null;
-        if (parent != null)
-         {
-          component = xsdSchema.getCorrespondingComponent(parent);
-        }
-        if (component instanceof XSDSimpleTypeDefinition)
-         {
-          XSDSimpleTypeDefinition simpleType = (XSDSimpleTypeDefinition)component;
-          baseTypeDefinition = simpleType.getBaseTypeDefinition();
-        }
-      }
-
-      XSDConcreteComponent xsdConcreteComponent = null;
-      if (element.getParentNode() != null)
-      {
-        xsdConcreteComponent = xsdSchema.getCorrespondingComponent(element.getParentNode());
-      }
-
-      if (xsdConcreteComponent instanceof XSDSimpleTypeDefinition)
-      {
-        xsdSimpleType = (XSDSimpleTypeDefinition)xsdConcreteComponent;
-      }
-      //facetViewer.setInput(xsdSimpleType);
-    }
-  }
-
-  boolean checkForAnonymousType(Element element)
-  {
-    boolean isAnonymous = false;
-
-    Node aNode = getDomHelper().getChildNode(element, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-    if (aNode != null)
-    {
-      return true;
-    }
-    return isAnonymous;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypeListPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypeListPropertySource.java
deleted file mode 100644
index fc104c0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypeListPropertySource.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class SimpleTypeListPropertySource
-  extends BasePropertySource
-  implements IPropertySource
-{
-  /**
-   * 
-   */
-  public SimpleTypeListPropertySource()
-  {
-    super();
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public SimpleTypeListPropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-  /**
-   * @param xsdSchema
-   */
-  public SimpleTypeListPropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-    // Create a descriptor and set a category
-    TypesPropertyDescriptor typeDescriptor = new TypesPropertyDescriptor(
-          XSDConstants.ITEMTYPE_ATTRIBUTE,
-          XSDConstants.ITEMTYPE_ATTRIBUTE,
-          element, xsdSchema);
-        
-    typeDescriptor.setLabelProvider(new LabelProvider()
-    {
-      public String getText(Object element)
-      {
-        return (String) element;
-      }
-    });
-    list.add(typeDescriptor);
-    
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-    {
-      if (((String) id).equals(XSDConstants.ITEMTYPE_ATTRIBUTE))
-      {
-        result = element.getAttribute((String) id);
-        if (result == null)
-        {
-          result = "**anonymous**";
-        }
-        return result;
-      }
-    }
-    return "";
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value != null)
-     {
-      if (value instanceof String)
-      {
-        if (((String) id).equals(XSDConstants.ITEMTYPE_ATTRIBUTE))
-        { 
-          beginRecording("ItemType Change", element);
-          element.setAttribute(XSDConstants.ITEMTYPE_ATTRIBUTE, (String)value);
-          endRecording(element);
-        }
-      }
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypePropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypePropertySource.java
deleted file mode 100644
index 99885fa..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypePropertySource.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalSimpleOrComplexTypeRenamer;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Node;
-
-public class SimpleTypePropertySource
-  extends BasePropertySource
-  implements IPropertySource
-{
-  private boolean isAnonymous = false;
-  /**
-   * 
-   */
-  public SimpleTypePropertySource()
-  {
-    super();
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public SimpleTypePropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-  /**
-   * @param xsdSchema
-   */
-  public SimpleTypePropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    Node parent = element.getParentNode();
-    if (XSDDOMHelper.inputEquals(parent, XSDConstants.RESTRICTION_ELEMENT_TAG, false) ||
-        XSDDOMHelper.inputEquals(parent, XSDConstants.ELEMENT_ELEMENT_TAG, false) ||
-        XSDDOMHelper.inputEquals(parent, XSDConstants.UNION_ELEMENT_TAG, false) ||
-        XSDDOMHelper.inputEquals(parent, XSDConstants.LIST_ELEMENT_TAG, false) ||
-        XSDDOMHelper.inputEquals(parent, XSDConstants.ATTRIBUTE_ELEMENT_TAG, false))
-    {
-      isAnonymous = true;
-    }
-
-    List list = new ArrayList();
-    if (!isAnonymous)
-    {
-      // Create a descriptor and set a category
-      PropertyDescriptor nameDescriptor =
-      new TextPropertyDescriptor(
-          XSDConstants.NAME_ATTRIBUTE,
-          XSDConstants.NAME_ATTRIBUTE);
-      list.add(nameDescriptor);
-    }
-    else
-    {
-      PropertyDescriptor readOnly = new PropertyDescriptor(XSDConstants.NAME_ATTRIBUTE, XSDConstants.NAME_ATTRIBUTE);
-      list.add(readOnly);
-    }
-
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-    {
-      result = element.getAttribute((String) id);
-      if (isAnonymous)
-      {
-        result = "**anonymous**";
-      }
-    }
-    if (result == null)
-     {
-      result = "";
-    }
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value == null)
-    {
-      value = "";
-    }
-    if (value instanceof String)
-    {
-      String name = (String)value;
-      if (validateName(name))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_SIMPLETYPE_NAME_CHANGE"), element);
-        if (name != null && name.length() > 0)
-        {
-          // now rename any references to this type
-          if (xsdSchema != null)
-          {
-            XSDConcreteComponent comp = xsdSchema.getCorrespondingComponent(element);
-            if (comp != null && comp instanceof XSDSimpleTypeDefinition && comp.getContainer().equals(xsdSchema))
-            {
-//                ((XSDNamedComponent)comp).setName(name);
-              GlobalSimpleOrComplexTypeRenamer renamer = new GlobalSimpleOrComplexTypeRenamer((XSDNamedComponent)comp, name);
-              renamer.visitSchema(xsdSchema);
-            }
-          }
-          element.setAttribute(XSDConstants.NAME_ATTRIBUTE, name);
-        }
-        else
-        {
-          element.setAttribute(XSDConstants.NAME_ATTRIBUTE, "");
-        }
-        endRecording(element);
-      }
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypeUnionPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypeUnionPropertySource.java
deleted file mode 100644
index ec0adf7..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/SimpleTypeUnionPropertySource.java
+++ /dev/null
@@ -1,494 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.DialogCellEditor;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-import org.eclipse.wst.xsd.ui.internal.widgets.TypeSection;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-
-
-public class SimpleTypeUnionPropertySource
-  extends BasePropertySource
-  implements IPropertySource
-{
-  /**
-   * 
-   */
-  public SimpleTypeUnionPropertySource()
-  {
-    super();
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public SimpleTypeUnionPropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-  }
-  /**
-   * @param xsdSchema
-   */
-  public SimpleTypeUnionPropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-    // Create a descriptor and set a category
-    SimpleUnionMemberTypesPropertyDescriptor typeDescriptor = new SimpleUnionMemberTypesPropertyDescriptor(
-        XSDConstants.MEMBERTYPES_ATTRIBUTE,
-        XSDConstants.MEMBERTYPES_ATTRIBUTE);
-    
-    typeDescriptor.setLabelProvider(new LabelProvider()
-        {
-      public String getText(Object element)
-      {
-        return (String) element;
-      }
-    });
-    list.add(typeDescriptor);
-    
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-     {
-      if (((String) id).equals(XSDConstants.MEMBERTYPES_ATTRIBUTE))
-       {
-        result = element.getAttribute((String) id);
-        if (result == null)
-        { 
-          result = "";
-        }
-        return result;
-      }
-    }
-    return "";
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value == null)
-    {
-      value = "";
-    }
-    
-    if (value instanceof String)
-    {
-      String newValue = (String)value;
-      if (((String) id).equals(XSDConstants.MEMBERTYPES_ATTRIBUTE))
-      { 
-        beginRecording("MemberTypes Change", element);
-        if (newValue.length() > 0)
-        {
-          element.setAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE, (String)value);
-        }
-        else
-        {
-          element.removeAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE);  
-        }
-        endRecording(element);
-      }
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-    
-  }
-
-  
-  public class SimpleUnionMemberTypesPropertyDescriptor extends PropertyDescriptor
-  {
-    /**
-     * @param id
-     * @param displayName
-     */
-    public SimpleUnionMemberTypesPropertyDescriptor(Object id, String displayName)
-    {
-      super(id, displayName);
-    }
-    
-    public CellEditor createPropertyEditor(Composite parent)
-    {
-      CellEditor editor = new SimpleTypeUnionMemberTypesDialogCellEditor(parent);
-      if (getValidator() != null)
-        editor.setValidator(getValidator());
-      return editor;
-    }
-  }
-  
-  public class SimpleTypeUnionMemberTypesDialogCellEditor extends DialogCellEditor {
-
-    /**
-     * Creates a new Font dialog cell editor parented under the given control.
-     * The cell editor value is <code>null</code> initially, and has no 
-     * validator.
-     *
-     * @param parent the parent control
-     */
-    protected SimpleTypeUnionMemberTypesDialogCellEditor(Composite parent) {
-      super(parent);
-    }
-
-    /**
-     * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(Control)
-     */
-    protected Object openDialogBox(Control cellEditorWindow)
-    {
-      Shell shell = Display.getCurrent().getActiveShell();
-      
-      SimpleContentUniontMemberTypesDialog dialog = new SimpleContentUniontMemberTypesDialog(shell);
-      dialog.setBlockOnOpen(true);
-      dialog.create();
-      
-      String value = (String)getValue();
-
-      int result = dialog.open();
-
-      if (result == Window.OK)
-       {
-        return dialog.getResult();
-      }
-      return value;
-    }
-
-  }
-
-  public class SimpleContentUniontMemberTypesDialog extends org.eclipse.jface.dialogs.Dialog implements SelectionListener
-  {
-    Table table;
-    TypeSection typeSection;
-    Button addButton, removeButton;
-    org.eclipse.swt.widgets.List memberTypesList;
-    
-    private String result;
-    
-    public SimpleContentUniontMemberTypesDialog(Shell shell)
-    {
-      super(shell);
-    }
-
-    protected void configureShell(Shell shell)
-    {
-      super.configureShell(shell);
-    }
-
-    protected void buttonPressed(int buttonId)
-    {
-      if (buttonId == Dialog.OK)
-      {
-        StringBuffer sb = new StringBuffer();
-        int length = memberTypesList.getItemCount();
-        for (int i=0 ; i < length; i++)
-        {
-          sb.append(memberTypesList.getItem(i));
-          if (i < length - 1)
-          {
-            sb.append(" ");
-          }
-        }
-        result = sb.toString();
-      }
-      super.buttonPressed(buttonId);
-    }
-
-    public String getResult() { return result; }
-
-    //
-    // Create the controls
-    //
-    public Control createDialogArea(Composite parent)
-    {
-      int tabIndex = 0;
-      Composite client = (Composite)super.createDialogArea(parent);
-      getShell().setText("Union " + XSDConstants.MEMBERTYPES_ATTRIBUTE); 
-      
-      Label instructions = new Label(client, SWT.LEFT | SWT.WRAP);
-      instructions.setText("Select from the available types and add to the memberTypes list");
-      
-      Composite columnsComposite = new Composite(client, SWT.NONE);
-      GridLayout ccGL = new GridLayout();
-      ccGL.verticalSpacing = 0;
-      ccGL.horizontalSpacing = 0;
-      ccGL.marginHeight = 0;
-      ccGL.marginWidth = 0;
-      ccGL.makeColumnsEqualWidth = true;
-      ccGL.numColumns = 3;
-      columnsComposite.setLayout(ccGL);
-      
-      GridData ccGD = new GridData();
-      ccGD.grabExcessHorizontalSpace = true;
-      ccGD.horizontalAlignment = GridData.FILL;
-      columnsComposite.setLayoutData(ccGD);     
-                             
-      typeSection = new TypeSection(columnsComposite);
-      typeSection.setShowUserComplexType(false);
-
-      typeSection.createClient(columnsComposite);
-      typeSection.getSimpleType().setSelection(false);
-      typeSection.getSimpleType().addSelectionListener(this);
-      typeSection.getUserSimpleType().addSelectionListener(this);
-      
-      ViewUtility.createHorizontalFiller(columnsComposite, 1);
-      
-      Label memberListLabel = new Label(columnsComposite, SWT.LEFT);
-      memberListLabel.setText("memberTypes value:");
-      
-      Composite dataComposite = new Composite(client, SWT.NONE);
-      GridLayout dcGL = new GridLayout();
-      dcGL.verticalSpacing = 0;
-      dcGL.marginHeight = 0;
-      dcGL.marginWidth = 0;
-      dcGL.numColumns = 3;
-      dataComposite.setLayout(dcGL);
-      
-      GridData dcGD = new GridData();
-      dcGD.grabExcessHorizontalSpace = true;
-      dcGD.grabExcessVerticalSpace = true;
-      dataComposite.setLayoutData(dcGD);
-      
-      table = new Table(dataComposite,
-          SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); 
-      table.setHeaderVisible(false);
-      table.setLinesVisible(true);
-      GridData gd2 = new GridData();
-      gd2.grabExcessHorizontalSpace = true;
-      gd2.grabExcessVerticalSpace = true;
-      gd2.horizontalAlignment = GridData.FILL;
-      gd2.verticalAlignment = GridData.FILL;
-      gd2.heightHint = 200;
-      gd2.widthHint = 200;
-      table.setLayoutData(gd2);
-
-      // Fill table
-      handleSetInput();
-      int tableItemCount = table.getItemCount();
-
-      TableColumn tc = new TableColumn(table, SWT.LEFT);
-//      tc.setImage(XSDEditorPlugin.getXSDImage("icons/XSDElement.gif"));
-      //tc.setText("Available types:");
-      tc.setWidth(200);
-      tc.setResizable(true);
-      
-      Composite buttonComposite = new Composite(dataComposite, SWT.NONE);
-      GridLayout bcGL = new GridLayout();
-      bcGL.numColumns = 1;
-      buttonComposite.setLayout(bcGL);
-      addButton = new Button(buttonComposite, SWT.PUSH);
-      addButton.setText(">");
-      addButton.addSelectionListener(this);
-      removeButton = new Button(buttonComposite, SWT.PUSH);
-      removeButton.setText("<");
-      removeButton.addSelectionListener(this);
-      
-      Composite listComposite = new Composite(dataComposite, SWT.NONE);
-      GridLayout mtGL = new GridLayout();
-      mtGL.numColumns = 1;
-      mtGL.marginHeight = 0;
-      mtGL.marginWidth = 0;
-      mtGL.horizontalSpacing = 0;
-      mtGL.verticalSpacing = 0;
-      listComposite.setLayout(mtGL);
-
-      GridData mtGD = new GridData();
-      mtGD.grabExcessHorizontalSpace = true;
-      mtGD.grabExcessVerticalSpace = true;
-      mtGD.verticalAlignment = GridData.FILL;
-      mtGD.horizontalAlignment = GridData.FILL;
-      listComposite.setLayoutData(mtGD);
-      
-      memberTypesList = new org.eclipse.swt.widgets.List(listComposite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-      GridData mtlGD = new GridData();
-      mtlGD.grabExcessHorizontalSpace = true;
-      mtlGD.grabExcessVerticalSpace = true;
-      mtlGD.verticalAlignment = GridData.FILL;
-      mtlGD.horizontalAlignment = GridData.FILL;
-      mtlGD.heightHint = 200;
-      mtlGD.widthHint = 200;
-      memberTypesList.setLayoutData(mtlGD);
-      
-      initializeMemberListContent();
-      return client;
-    }
-
-    private void initializeMemberListContent()
-    {
-      String result = element.getAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE);
-      if (result == null)
-      {
-        return;
-      }
-      StringTokenizer token = new StringTokenizer(result);
-      while (token.hasMoreTokens())
-      {
-        memberTypesList.add(token.nextToken());
-      }
-    }
-  
-    public void widgetSelected(SelectionEvent e)
-    {
-      if (e.widget == typeSection.getSimpleType() && typeSection.getSimpleType().getSelection())
-       {
-        populateBuiltInType();
-      }
-      else if (e.widget == typeSection.getUserSimpleType() && typeSection.getUserSimpleType().getSelection())
-       {
-        populateUserSimpleType(false);
-      }
-      else if (e.widget == addButton)
-      {
-        TableItem[] items = table.getItems();
-        int selection = table.getSelectionIndex();
-        if (items != null && items.length > 0 && selection >= 0)
-        {
-          String typeToAdd = items[selection].getData().toString();
-          if (memberTypesList.indexOf(typeToAdd) < 0)
-          {
-            memberTypesList.add(items[selection].getData().toString());
-          }
-        }
-      }
-      else if (e.widget == removeButton)
-      {
-        String[] typesToRemove = memberTypesList.getSelection();
-        for (int i=0; i < typesToRemove.length; i++)
-        {
-          memberTypesList.remove(typesToRemove[i]);
-        }
-      }
-    }
-    
-    public void widgetDefaultSelected(SelectionEvent e)
-    {
-    }
-    
-    public void handleSetInput()
-    {
-      populateBuiltInType();
-    }
-    
-    public void populateBuiltInType()
-    {
-      table.removeAll();
-      List items = getBuiltInTypeNamesList();
-      for (int i = 0; i < items.size(); i++)
-       {
-        TableItem item = new TableItem(table, SWT.NONE);
-        item.setText(items.get(i).toString());
-        item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif"));
-        item.setData(items.get(i));
-      }
-    }
-
-    public void populateUserSimpleType(boolean showAnonymous)
-    {
-      table.removeAll();
-      if (showAnonymous)
-       {
-        TableItem anonymousItem = new TableItem(table, SWT.NONE);
-        anonymousItem.setText("**anonymous**");
-        anonymousItem.setData("**anonymous**");
-      }
-      List items = getUserSimpleTypeNamesList();
-      for (int i = 0; i < items.size(); i++)
-       {
-        TableItem item = new TableItem(table, SWT.NONE);
-        item.setText(items.get(i).toString());
-        item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif"));
-        item.setData(items.get(i));
-      }
-    }
-    
-    public java.util.List getBuiltInTypeNamesList()
-    {
-      TypesHelper helper = new TypesHelper(xsdSchema);
-      return helper.getBuiltInTypeNamesList();
-    }
-
-    public java.util.List getUserSimpleTypeNamesList()
-    {
-      TypesHelper helper = new TypesHelper(xsdSchema);
-      return helper.getUserSimpleTypeNamesList();
-    }
-  }
-  
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/TypesPropertyDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/TypesPropertyDescriptor.java
deleted file mode 100644
index 207e53a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/TypesPropertyDescriptor.java
+++ /dev/null
@@ -1,1160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.List;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.DialogCellEditor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.events.ShellAdapter;
-import org.eclipse.swt.events.ShellEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.wst.xsd.ui.internal.widgets.TypeSection;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-public class TypesPropertyDescriptor extends PropertyDescriptor
-{
-  Element element;
-  XSDSchema xsdSchema;
-  String property;
-  /**
-   * @param id
-   * @param displayName
-   */
-  public TypesPropertyDescriptor(Object id, String displayName, Element element, XSDSchema xsdSchema)
-  {
-    super(id, displayName);
-    this.property = (String)id;
-    this.element = element;
-    this.xsdSchema = xsdSchema;
-  }
-  
-  boolean showComplexTypes = true;
-
-  public CellEditor createPropertyEditor(Composite parent)
-  {
-    if (XSDDOMHelper.inputEquals(element, XSDConstants.ELEMENT_ELEMENT_TAG, false))
-    {
-      showComplexTypes = true;
-    }
-    else if (XSDDOMHelper.inputEquals(element, XSDConstants.ATTRIBUTE_ELEMENT_TAG, false) ||
-      XSDDOMHelper.inputEquals(element, XSDConstants.LIST_ELEMENT_TAG, false) ||
-      XSDDOMHelper.inputEquals(element, XSDConstants.UNION_ELEMENT_TAG, false))
-    {
-      showComplexTypes = false;
-    }
-    // CellEditor editor = new TypesOptionsTextCellEditor(parent);
-    CellEditor editor = new TypesDialogCellEditor(parent);
-    if (getValidator() != null)
-      editor.setValidator(getValidator());
-    return editor;
-  }
-
-  
-  public class TypesDialogCellEditor extends DialogCellEditor
-  {
-
-    /**
-     * Creates a new Font dialog cell editor parented under the given control.
-     * The cell editor value is <code>null</code> initially, and has no 
-     * validator.
-     *
-     * @param parent the parent control
-     */
-    protected TypesDialogCellEditor(Composite parent)
-    {
-      super(parent);
-    }
-
-    protected Object openDialogBox(Control cellEditorWindow)
-    {
-	    Shell shell = Display.getCurrent().getActiveShell();
-	    
-	    TypesDialog dialog = new TypesDialog(shell);
-
-	    dialog.setBlockOnOpen(true);
-	    dialog.create();
-	    
-	    String value = (String)getValue();
-	
-	    int result = dialog.open();
-	    
-	    if (result == Window.OK)
-	    {
-	      value = dialog.getType();
-        doSetValue(value);
-        fireApplyEditorValue();
-	    }
-	    deactivate();
-	    return null;
-	  }
-  }
-
-  public class TypesDialog extends org.eclipse.jface.dialogs.Dialog implements SelectionListener
-  {
-    String type;
-    Object typeObject;
-    Table table;
-
-    TypeSection typeSection;
-    boolean showAnonymous = true;
-    String previousStringType = "";
-    boolean isAnonymous;
-    int previousType;
-
-    
-    public TypesDialog(Shell shell)
-    {
-      super(shell);
-    }
-
-    protected void configureShell(Shell shell)
-    {
-      super.configureShell(shell);
-    }
-
-    protected void buttonPressed(int buttonId)
-    {
-      if (buttonId == Dialog.OK)
-      {
-        type = table.getItem(table.getSelectionIndex()).getText();
-        ok();
-      }
-      super.buttonPressed(buttonId);
-    }
-
-    public Object getTypeObject() { return typeObject; }
-    public String getType() { return type; }
-
-    //
-    // Create the controls
-    //
-    public Control createDialogArea(Composite parent)
-    {
-      int tabIndex = 0;
-      Composite client = (Composite)super.createDialogArea(parent);
-      getShell().setText("Available Types");
-
-      typeObject = null;
-      
-      GridLayout gl = new GridLayout(1, true);
-//      gl.marginHeight = 0;
-//      gl.marginWidth = 0;
-//      gl.horizontalSpacing = 0;
-//      gl.verticalSpacing = 0;
-      client.setLayout(gl);
-
-      GridData gd = new GridData();
-      gd.grabExcessHorizontalSpace = true;
-      gd.grabExcessVerticalSpace = true;
-      gd.horizontalAlignment = GridData.FILL;
-      gd.verticalAlignment = GridData.FILL;
-      gd.horizontalIndent = 0;
-      client.setLayoutData(gd);
-      
-      typeSection = new TypeSection(client);
-      typeSection.setShowUserComplexType(showComplexTypes);
-
-      typeSection.createClient(client);
-      typeSection.getSimpleType().setSelection(false);
-      typeSection.getSimpleType().addSelectionListener(this);
-      typeSection.getUserSimpleType().addSelectionListener(this);
-      if (showComplexTypes)
-      {
-        typeSection.getUserComplexType().addSelectionListener(this);
-      }
-
-      table = new Table(client,
-                        SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL); 
-      table.setHeaderVisible(false);
-      table.setLinesVisible(true);
-      
-      GridData gd2 = new GridData();
-      gd2.grabExcessHorizontalSpace = true;
-      gd2.grabExcessVerticalSpace = true;
-      gd2.horizontalAlignment = GridData.FILL;
-      gd2.heightHint = 200;
-      table.setLayoutData(gd2);
-
-      TableColumn tableColumn = new TableColumn(table, SWT.LEFT);
-//      tableColumn.setImage(XSDEditorPlugin.getXSDImage("icons/XSDElement.gif"));
-      tableColumn.setResizable(true);
-      tableColumn.setWidth(200);
-      
-
-      // Fill table and select input type
-      handleSetInput();
-
-      return client;
-    }
-    
-    public void widgetSelected(SelectionEvent e)
-    {
-      if (e.widget == typeSection.getSimpleType() && typeSection.getSimpleType().getSelection())
-      {
-        populateBuiltInType();
-      }
-      else if (e.widget == typeSection.getUserComplexType() && typeSection.getUserComplexType().getSelection())
-      {
-        populateUserComplexType();
-      }
-      else if (e.widget == typeSection.getUserSimpleType() && typeSection.getUserSimpleType().getSelection())
-      {
-        populateUserSimpleType();
-      }
-
-    }
-    
-  	public void widgetDefaultSelected(SelectionEvent e)
-    {
-    }
-
-    protected void ok()
-    {
-      TableItem[] items = table.getItems();
-      int selection = table.getSelectionIndex();
-      if (items != null && items.length > 0 && selection >= 0)
-      {
-        typeObject = items[selection].getData();
-      }
-//      System.out.println("typeObject is " + typeObject);
-
-//      beginRecording(XSDEditorPlugin.getXSDString("_UI_ELEMENT_TYPE_CHANGE"), element);
-//      beginRecording(XSDEditorPlugin.getXSDString("_UI_TYPE_CHANGE"), element);
-//      doSetValue(typeObject);
-//      applyEditorValueAndDeactivate();
-//      dialog.close();
-
-      if (!XSDDOMHelper.inputEquals(element, XSDConstants.UNION_ELEMENT_TAG, false))
-      {
-      if (typeObject.equals("**anonymous**"))
-      {
-        if (typeSection.getUserSimpleType().getSelection())
-        {
-          if (!previousStringType.equals("**anonymous**"))
-          {
-            updateElementToAnonymous(
-              element,
-              XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-          }
-        }
-        else
-        {
-          if (!previousStringType.equals("**anonymous**"))
-          {
-            updateElementToAnonymous(element, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-          }
-        }
-        // element.removeAttribute(XSDConstants.TYPE_ATTRIBUTE);
-        element.removeAttribute(property);
-      }
-      else
-      {
-        updateElementToNotAnonymous(element);
-        //element.setAttribute(XSDConstants.TYPE_ATTRIBUTE, typeObject.toString());
-        element.setAttribute(property, typeObject.toString());
-      }
-      }
-//      endRecording(element);
-
-      //implement dispose();
-//      table.removeAll();
-//      table.dispose();
-    }
-
-  	
-    public void handleSetInput()
-    {
-      table.removeAll();
-      isAnonymous = checkForAnonymousType(element);
-      // Attr attr = element.getAttributeNode(XSDConstants.TYPE_ATTRIBUTE);
-      Attr attr = element.getAttributeNode(property);
-      if (attr != null)
-      {
-        String value = attr.getValue();
-        if (typeSection.getBuiltInTypeNamesList(xsdSchema).contains(value))
-        {
-          typeSection.getSimpleType().setSelection(true);
-          populateBuiltInType();
-          int i = typeSection.getBuiltInTypeNamesList(xsdSchema).indexOf(value);
-          table.setSelection(i);
-          previousType = 1;
-        }
-        else if (typeSection.getUserSimpleTypeNamesList(xsdSchema).contains(value))
-        {
-          typeSection.getUserSimpleType().setSelection(true);
-          populateUserSimpleType();
-          int i = typeSection.getUserSimpleTypeNamesList(xsdSchema).indexOf(value);
-          if (showAnonymous)
-          {
-            table.setSelection(i + 1);
-          }
-          else
-          {
-            table.setSelection(i);
-          }
-          previousType = 2;
-        }
-        else if (typeSection.getUserComplexTypeNamesList(xsdSchema).contains(value))
-        {
-          typeSection.getUserComplexType().setSelection(true);
-          populateUserComplexType();
-          int i = typeSection.getUserComplexTypeNamesList(xsdSchema).indexOf(value);
-          if (showAnonymous)
-           {
-            table.setSelection(i + 1);
-          }
-          else
-           {
-            table.setSelection(i);
-          }
-          previousType = 3;
-        }
-        else // if it is type="" for an empty list of simple types
-          {
-          typeSection.getUserSimpleType().setSelection(true);
-          populateUserSimpleType();
-          previousType = 2;
-        }
-      }
-      else
-      {
-        if (isAnonymous)
-        {
-          if (isSTAnonymous(element))
-          {
-            typeSection.getUserSimpleType().setSelection(true);
-            populateUserSimpleType();
-            previousType = 2;
-          }
-          else
-          {
-            typeSection.getUserComplexType().setSelection(true);
-            populateUserComplexType();
-            previousType = 3;
-          }
-          table.setSelection(0); // anonymous
-          //        typeSection.getTypeList().setText("**anonymous**");
-        }
-        else
-        {
-          typeSection.getSimpleType().setSelection(true);
-          populateBuiltInType();
-          table.setSelection(0);
-          
-          //        typeSection.getTypeList().setEnabled(true);
-          //        typeSection.getSimpleType().setSelection(true);
-          //        typeSection.populateBuiltInType(xsdSchema);
-          //        typeSection.getTypeList().setText(XSDEditorPlugin.getXSDString("_UI_NO_TYPE"));
-          previousType = 1;
-        }
-      }
-      if (table.getSelection() != null && table.getSelection().length > 0)
-      {
-        previousStringType = (table.getSelection()[0]).getText();
-      }
-    }
-    
-    public void populateBuiltInType()
-    {
-      table.removeAll();
-      List items = getBuiltInTypeNamesList();
-      for (int i = 0; i < items.size(); i++)
-      {
-        TableItem item = new TableItem(table, SWT.NONE);
-        item.setText(items.get(i).toString());
-        item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif"));
-        item.setData(items.get(i));
-      }
-    }
-
-    public void populateUserComplexType()
-    {
-      table.removeAll();
-      if (showAnonymous)
-      {
-        TableItem anonymousItem = new TableItem(table, SWT.NONE);
-        anonymousItem.setText("**anonymous**");
-        anonymousItem.setData("**anonymous**");
-      }
-      List items = getUserComplexTypeNamesList();
-      for (int i = 0; i < items.size(); i++)
-      {
-        TableItem item = new TableItem(table, SWT.NONE);
-//        System.out.println("item " + i + " is " + item);
-        item.setText(items.get(i).toString());
-        item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDComplexType.gif"));
-        item.setData(items.get(i));
-      }
-    }
-
-    public void populateUserSimpleType()
-    {
-      table.removeAll();
-      if (showAnonymous)
-       {
-        TableItem anonymousItem = new TableItem(table, SWT.NONE);
-        anonymousItem.setText("**anonymous**");
-        anonymousItem.setData("**anonymous**");
-      }
-      List items = getUserSimpleTypeNamesList();
-      for (int i = 0; i < items.size(); i++)
-       {
-        TableItem item = new TableItem(table, SWT.NONE);
-        item.setText(items.get(i).toString());
-        item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif"));
-        item.setData(items.get(i));
-      }
-    }
-
-    boolean checkForAnonymousType(Element element)
-    {
-      /*
-       * Using Ed's model to check boolean isAnonymous = false;
-       * 
-       * XSDConcreteComponent component =
-       * getXSDSchema().getCorrespondingComponent(element); if (component
-       * instanceof XSDElementDeclaration) { XSDElementDeclaration xsdElem =
-       * (XSDElementDeclaration)component; isAnonymous =
-       * xsdElem.isSetAnonymousTypeDefinition(); } return isAnonymous;
-       */
-      XSDDOMHelper helper = new XSDDOMHelper();
-      boolean isAnonymous = false;
-      Node aNode =
-      helper.getChildNode(element, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-      if (aNode != null)
-       {
-        return true;
-      }
-      aNode = helper.getChildNode(element, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-      if (aNode != null)
-       {
-        isAnonymous = true;
-      }
-      return isAnonymous;
-    }
-
-    void updateElementToAnonymous(Element element, String xsdType)
-    {
-      String prefix = element.getPrefix();
-      prefix = (prefix == null) ? "" : (prefix + ":");
-      updateElementToNotAnonymous(element);
-      boolean hasChildrenElements = hasElementChildren(element);
-      Element childNode = null;
-      if (xsdType.equals(XSDConstants.COMPLEXTYPE_ELEMENT_TAG))
-       {
-        childNode = element.getOwnerDocument().createElementNS(
-            XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001,
-            prefix + XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-      }
-      else if (xsdType.equals(XSDConstants.SIMPLETYPE_ELEMENT_TAG))
-       {
-        childNode =
-        element.getOwnerDocument().createElementNS(
-            XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001,
-            prefix + XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-      }
-      element.appendChild(childNode);
-      //formatChild(childNode, hasChildrenElements);
-    }
-
-    boolean isSTAnonymous(Element element)
-    {
-      XSDDOMHelper helper = new XSDDOMHelper();
-      Node aNode =
-      helper.getChildNode(element, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-      if (aNode != null)
-       {
-        if (XSDDOMHelper
-            .inputEquals(aNode, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false))
-         {
-          return true;
-        }
-      }
-      return false;
-    }
-
-    boolean isCTAnonymous(Element element)
-    {
-      XSDDOMHelper helper = new XSDDOMHelper();
-      Node aNode = helper.getChildNode(element, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-      if (aNode != null)
-       {
-        if (XSDDOMHelper.inputEquals(aNode, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, false))
-         {
-          return true;
-        }
-      }
-      return false;
-    }
-
-    XSDTypeDefinition getAnonymousTypeDefinition(Element element)
-    {
-      XSDDOMHelper helper = new XSDDOMHelper();
-      Node typeDefinitionNode =
-      helper.getChildNode(element, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-      if (typeDefinitionNode == null)
-       {
-        typeDefinitionNode =
-        helper.getChildNode(element, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-      }
-      if (typeDefinitionNode != null)
-       {
-        XSDConcreteComponent component =
-        xsdSchema.getCorrespondingComponent(typeDefinitionNode);
-        if (component instanceof XSDTypeDefinition)
-         {
-          return (XSDTypeDefinition) component;
-        }
-      }
-      return null;
-    }
-
-    void updateElementToNotAnonymous(Element element)
-    {
-      if (element != null)
-      {
-	      NodeList children = element.getChildNodes();
-	      if (children != null)
-	       {
-	        for (int i = 0; i < children.getLength(); i++)
-	         {
-	          Node node = (Node) children.item(i);
-	          if (node instanceof Element)
-	           {
-	            if (node.getLocalName().equals(XSDConstants.SIMPLETYPE_ELEMENT_TAG)
-	                || node.getLocalName().equals(XSDConstants.COMPLEXTYPE_ELEMENT_TAG))
-	             {
-	              XSDDOMHelper.removeNodeAndWhitespace(node);
-	              i = 0;
-	            }
-	          }
-	        }
-	      }
-      }
-    }
-
-    public java.util.List getBuiltInTypeNamesList()
-    {
-      TypesHelper helper = new TypesHelper(xsdSchema);
-      return helper.getBuiltInTypeNamesList();
-    }
-
-    public java.util.List getUserSimpleTypeNamesList()
-    {
-      TypesHelper helper = new TypesHelper(xsdSchema);
-      return helper.getUserSimpleTypeNamesList();
-    }
-    
-    public java.util.List getUserComplexTypeNamesList()
-    {
-      TypesHelper helper = new TypesHelper(xsdSchema);
-      return helper.getUserComplexTypeNamesList();
-    }
-    
-	  protected boolean hasElementChildren(Node parentNode)
-	  {
-	    boolean hasChildrenElements = false;
-	    if (parentNode != null && parentNode.hasChildNodes())
-	    {
-	      NodeList nodes = parentNode.getChildNodes();
-	      for (int i = 0; i < nodes.getLength(); i++)
-	      {
-	        if (nodes.item(i) instanceof Element)
-	        {
-	          hasChildrenElements = true;
-	          break;
-	        }
-	      }
-	    }
-	    return hasChildrenElements;
-	  }
-
-  }
-
-  
-  
-  
-  
-  
-  
-  
-  class TypesOptionsTextCellEditor extends OptionsTextCellEditor
-  {
-    boolean showAnonymous = true;
-    
-    public TypesOptionsTextCellEditor(Composite parent)
-    {
-      super(parent);
-    }
-
-    protected Control createControl(Composite parent)
-    {
-      isTextReadOnly = true;
-      return super.createControl(parent);
-    }
-
-    Table table;
-    TypeSection typeSection;
-
-    protected void openDialog()
-    {
-      typeObject = null;
-      dialog = new Shell(XSDEditorPlugin.getPlugin().getWorkbench().getActiveWorkbenchWindow().getShell(), SWT.MODELESS);
-      Display display = dialog.getDisplay();
-      GridLayout gl = new GridLayout(1, true);
-      gl.marginHeight = 0;
-      gl.marginWidth = 0;
-      gl.horizontalSpacing = 0;
-      gl.verticalSpacing = 0;
-      dialog.setLayout(gl);
-      GridData gd = new GridData();
-      gd.grabExcessHorizontalSpace = true;
-      gd.grabExcessVerticalSpace = true;
-      gd.horizontalAlignment = GridData.FILL;
-      gd.verticalAlignment = GridData.FILL;
-      gd.horizontalIndent = 0;
-      dialog.setLayoutData(gd);
-
-      
-      
-      typeSection = new TypeSection(dialog);
-      typeSection.setShowUserComplexType(showComplexTypes);
-
-      typeSection.createClient(dialog);
-      typeSection.getSimpleType().setSelection(false);
-      typeSection.getSimpleType().addSelectionListener(this);
-      typeSection.getUserSimpleType().addSelectionListener(this);
-      if (showComplexTypes)
-      {
-        typeSection.getUserComplexType().addSelectionListener(this);
-      }
-
-      table = new Table(dialog,
-                        SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL); 
-      table.setHeaderVisible(false);
-      table.setLinesVisible(true);
-      GridData gd2 = new GridData();
-      gd2.grabExcessHorizontalSpace = true;
-      gd2.grabExcessVerticalSpace = true;
-      gd2.horizontalAlignment = GridData.FILL;
-      gd2.verticalAlignment = GridData.FILL;
-      table.setLayoutData(gd2);
-
-      // Fill table and select input type
-      handleSetInput();
-      int tableItemCount = table.getItemCount();
-
-      TableColumn tc = new TableColumn(table, SWT.LEFT);
-      tc.setImage(XSDEditorPlugin.getXSDImage("icons/XSDElement.gif"));
-      //tc.setText("Available types:");
-      tc.setResizable(false);
-
-      int MAX_ITEMS = 23;
-//      tc.pack();
-//      table.pack();
-      Rectangle tableBounds = table.getBounds();
-      tableBounds.height = Math.min(tableBounds.height, table.getItemHeight()*MAX_ITEMS);
-      table.setBounds(tableBounds);
-      dialog.pack();
-      
-      dialog.addShellListener(new ShellAdapter()
-      {
-        public void shellDeactivated(ShellEvent e)
-        {
-          cancel();
-        }
-      });
-
-      Rectangle dialogBounds = dialog.getBounds();
-      Point buttonLocation = getButtonAbsoluteLocation();
-      dialogBounds.x = buttonLocation.x;
-      dialogBounds.y = buttonLocation.y;
-
-      if (dialogBounds.height > 200)
-      {        
-        dialogBounds.height = 200;
-      }
-      if (dialogBounds.height < 100)
-      {
-        dialogBounds.height = 200;
-      }
-      if (dialogBounds.width > 200)
-      {
-        dialogBounds.width = typeSection.getUserComplexType().getBounds().width + 30;
-      }
-      dialog.setBounds(dialogBounds);
-      tc.setWidth(dialogBounds.width);
-
-      table.addKeyListener(new KeyAdapter()
-      {
-        public void keyPressed(KeyEvent e)
-        {
-          int keyCode = e.keyCode;
-          int stateMask = e.stateMask;
-          char character = e.character;
-          if (character == SWT.CR || character == SWT.LF)
-            ok();
-          else if (character == SWT.ESC)
-            cancel();
-        }
-      });
-
-      table.addMouseListener(new MouseAdapter()
-      {
-        public void mouseDoubleClick(MouseEvent e)
-        {
-          ok();
-        }
-        public void mouseDown(MouseEvent e)
-        {
-          ok();
-        }
-      });
-
-      try
-      {
-        dialog.open();
-        table.setFocus();
-        table.showSelection();
-        
-        while (!dialog.isDisposed())
-        {
-          if (!display.readAndDispatch())
-          {
-            display.sleep();
-          }
-        }
-      }
-      finally
-      {
-        if (!dialog.isDisposed())
-          cancel();
-      }
-    }
-    
-    public void widgetSelected(SelectionEvent e)
-    {
-      if (e.widget == typeSection.getSimpleType() && typeSection.getSimpleType().getSelection())
-      {
-        populateBuiltInType();
-      }
-      else if (e.widget == typeSection.getUserComplexType() && typeSection.getUserComplexType().getSelection())
-      {
-        populateUserComplexType();
-      }
-      else if (e.widget == typeSection.getUserSimpleType() && typeSection.getUserSimpleType().getSelection())
-      {
-        populateUserSimpleType();
-      }
-    }
-    
-    protected void cancel()
-    {
-      super.cancel();
-      table.dispose();
-    }
-
-    protected void ok()
-    {
-      TableItem[] items = table.getItems();
-      selection = table.getSelectionIndex();
-      if (items != null && items.length > 0 && selection >= 0)
-      {
-        typeObject = items[selection].getData();
-      }
-//      System.out.println("typeObject is " + typeObject);
-
-//      beginRecording(XSDEditorPlugin.getXSDString("_UI_ELEMENT_TYPE_CHANGE"), element);
-//      beginRecording(XSDEditorPlugin.getXSDString("_UI_TYPE_CHANGE"), element);
-      doSetValue(typeObject);
-      applyEditorValueAndDeactivate();
-      dialog.close();
-
-      if (!XSDDOMHelper.inputEquals(element, XSDConstants.UNION_ELEMENT_TAG, false))
-      {
-      if (typeObject.equals("**anonymous**"))
-      {
-        if (typeSection.getUserSimpleType().getSelection())
-        {
-          if (!previousStringType.equals("**anonymous**"))
-          {
-            updateElementToAnonymous(
-              element,
-              XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-          }
-        }
-        else
-        {
-          if (!previousStringType.equals("**anonymous**"))
-          {
-            updateElementToAnonymous(element, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-          }
-        }
-        // element.removeAttribute(XSDConstants.TYPE_ATTRIBUTE);
-        element.removeAttribute(property);
-      }
-      else
-      {
-        updateElementToNotAnonymous(element);
-        //element.setAttribute(XSDConstants.TYPE_ATTRIBUTE, typeObject.toString());
-        element.setAttribute(property, typeObject.toString());
-      }
-      }
-//      endRecording(element);
-
-      //implement dispose();
-      table.removeAll();
-      table.dispose();
-    }
-
-    String previousStringType = "";
-    boolean isAnonymous;
-    int previousType;
-
-    public void handleSetInput()
-    {
-      table.removeAll();
-      isAnonymous = checkForAnonymousType(element);
-      // Attr attr = element.getAttributeNode(XSDConstants.TYPE_ATTRIBUTE);
-      Attr attr = element.getAttributeNode(property);
-      if (attr != null)
-      {
-        String value = attr.getValue();
-        if (typeSection.getBuiltInTypeNamesList(xsdSchema).contains(value))
-        {
-          typeSection.getSimpleType().setSelection(true);
-          populateBuiltInType();
-          int i = typeSection.getBuiltInTypeNamesList(xsdSchema).indexOf(value);
-          table.setSelection(i);
-          previousType = 1;
-        }
-        else if (typeSection.getUserSimpleTypeNamesList(xsdSchema).contains(value))
-        {
-          typeSection.getUserSimpleType().setSelection(true);
-          populateUserSimpleType();
-          int i = typeSection.getUserSimpleTypeNamesList(xsdSchema).indexOf(value);
-          if (showAnonymous)
-          {
-            table.setSelection(i + 1);
-          }
-          else
-          {
-            table.setSelection(i);
-          }
-          previousType = 2;
-        }
-        else if (typeSection.getUserComplexTypeNamesList(xsdSchema).contains(value))
-        {
-          typeSection.getUserComplexType().setSelection(true);
-          populateUserComplexType();
-          int i = typeSection.getUserComplexTypeNamesList(xsdSchema).indexOf(value);
-          if (showAnonymous)
-           {
-            table.setSelection(i + 1);
-          }
-          else
-           {
-            table.setSelection(i);
-          }
-          previousType = 3;
-        }
-        else // if it is type="" for an empty list of simple types
-          {
-          typeSection.getUserSimpleType().setSelection(true);
-          populateUserSimpleType();
-          previousType = 2;
-        }
-      }
-      else
-      {
-        if (isAnonymous)
-        {
-          if (isSTAnonymous(element))
-          {
-            typeSection.getUserSimpleType().setSelection(true);
-            populateUserSimpleType();
-            previousType = 2;
-          }
-          else
-          {
-            typeSection.getUserComplexType().setSelection(true);
-            populateUserComplexType();
-            previousType = 3;
-          }
-          table.setSelection(0); // anonymous
-          //        typeSection.getTypeList().setText("**anonymous**");
-        }
-        else
-        {
-          typeSection.getSimpleType().setSelection(true);
-          populateBuiltInType();
-          table.setSelection(0);
-          
-          //        typeSection.getTypeList().setEnabled(true);
-          //        typeSection.getSimpleType().setSelection(true);
-          //        typeSection.populateBuiltInType(xsdSchema);
-          //        typeSection.getTypeList().setText(XSDEditorPlugin.getXSDString("_UI_NO_TYPE"));
-          previousType = 1;
-        }
-      }
-      if (table.getSelection() != null && table.getSelection().length > 0)
-      {
-        previousStringType = (table.getSelection()[0]).getText();
-      }
-    }
-    
-    public void populateBuiltInType()
-    {
-      table.removeAll();
-      List items = getBuiltInTypeNamesList();
-      for (int i = 0; i < items.size(); i++)
-      {
-        TableItem item = new TableItem(table, SWT.NONE);
-        item.setText(items.get(i).toString());
-        item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif"));
-        item.setData(items.get(i));
-      }
-    }
-
-    public void populateUserComplexType()
-    {
-      table.removeAll();
-      if (showAnonymous)
-      {
-        TableItem anonymousItem = new TableItem(table, SWT.NONE);
-        anonymousItem.setText("**anonymous**");
-        anonymousItem.setData("**anonymous**");
-      }
-      List items = getUserComplexTypeNamesList();
-      for (int i = 0; i < items.size(); i++)
-      {
-        TableItem item = new TableItem(table, SWT.NONE);
-//        System.out.println("item " + i + " is " + item);
-        item.setText(items.get(i).toString());
-        item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDComplexType.gif"));
-        item.setData(items.get(i));
-      }
-    }
-
-    public void populateUserSimpleType()
-    {
-      table.removeAll();
-      if (showAnonymous)
-       {
-        TableItem anonymousItem = new TableItem(table, SWT.NONE);
-        anonymousItem.setText("**anonymous**");
-        anonymousItem.setData("**anonymous**");
-      }
-      List items = getUserSimpleTypeNamesList();
-      for (int i = 0; i < items.size(); i++)
-       {
-        TableItem item = new TableItem(table, SWT.NONE);
-        item.setText(items.get(i).toString());
-        item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif"));
-        item.setData(items.get(i));
-      }
-    }
-
-    boolean checkForAnonymousType(Element element)
-    {
-      /*
-       * Using Ed's model to check boolean isAnonymous = false;
-       * 
-       * XSDConcreteComponent component =
-       * getXSDSchema().getCorrespondingComponent(element); if (component
-       * instanceof XSDElementDeclaration) { XSDElementDeclaration xsdElem =
-       * (XSDElementDeclaration)component; isAnonymous =
-       * xsdElem.isSetAnonymousTypeDefinition(); } return isAnonymous;
-       */
-      XSDDOMHelper helper = new XSDDOMHelper();
-      boolean isAnonymous = false;
-      Node aNode =
-      helper.getChildNode(element, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-      if (aNode != null)
-       {
-        return true;
-      }
-      aNode = helper.getChildNode(element, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-      if (aNode != null)
-       {
-        isAnonymous = true;
-      }
-      return isAnonymous;
-    }
-
-    void updateElementToAnonymous(Element element, String xsdType)
-    {
-      String prefix = element.getPrefix();
-      prefix = (prefix == null) ? "" : (prefix + ":");
-      updateElementToNotAnonymous(element);
-      boolean hasChildrenElements = hasElementChildren(element);
-      Element childNode = null;
-      if (xsdType.equals(XSDConstants.COMPLEXTYPE_ELEMENT_TAG))
-       {
-        childNode = element.getOwnerDocument().createElementNS(
-            XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001,
-            prefix + XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-      }
-      else if (xsdType.equals(XSDConstants.SIMPLETYPE_ELEMENT_TAG))
-       {
-        childNode =
-        element.getOwnerDocument().createElementNS(
-            XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001,
-            prefix + XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-      }
-      element.appendChild(childNode);
-      //formatChild(childNode, hasChildrenElements);
-    }
-
-    boolean isSTAnonymous(Element element)
-    {
-      XSDDOMHelper helper = new XSDDOMHelper();
-      Node aNode =
-      helper.getChildNode(element, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-      if (aNode != null)
-       {
-        if (XSDDOMHelper
-            .inputEquals(aNode, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false))
-         {
-          return true;
-        }
-      }
-      return false;
-    }
-
-    boolean isCTAnonymous(Element element)
-    {
-      XSDDOMHelper helper = new XSDDOMHelper();
-      Node aNode = helper.getChildNode(element, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-      if (aNode != null)
-       {
-        if (XSDDOMHelper.inputEquals(aNode, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, false))
-         {
-          return true;
-        }
-      }
-      return false;
-    }
-
-    XSDTypeDefinition getAnonymousTypeDefinition(Element element)
-    {
-      XSDDOMHelper helper = new XSDDOMHelper();
-      Node typeDefinitionNode =
-      helper.getChildNode(element, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-      if (typeDefinitionNode == null)
-       {
-        typeDefinitionNode =
-        helper.getChildNode(element, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-      }
-      if (typeDefinitionNode != null)
-       {
-        XSDConcreteComponent component =
-        xsdSchema.getCorrespondingComponent(typeDefinitionNode);
-        if (component instanceof XSDTypeDefinition)
-         {
-          return (XSDTypeDefinition) component;
-        }
-      }
-      return null;
-    }
-
-    void updateElementToNotAnonymous(Element element)
-    {
-      NodeList children = element.getChildNodes();
-      if (children != null)
-       {
-        for (int i = 0; i < children.getLength(); i++)
-         {
-          Node node = (Node) children.item(i);
-          if (node instanceof Element)
-           {
-            if (node.getLocalName().equals(XSDConstants.SIMPLETYPE_ELEMENT_TAG)
-                || node.getLocalName().equals(XSDConstants.COMPLEXTYPE_ELEMENT_TAG))
-             {
-              XSDDOMHelper.removeNodeAndWhitespace(node);
-              i = 0;
-            }
-          }
-        }
-      }
-    }
-
-    public java.util.List getBuiltInTypeNamesList()
-    {
-      TypesHelper helper = new TypesHelper(xsdSchema);
-      return helper.getBuiltInTypeNamesList();
-    }
-
-    public java.util.List getUserSimpleTypeNamesList()
-    {
-      TypesHelper helper = new TypesHelper(xsdSchema);
-      return helper.getUserSimpleTypeNamesList();
-    }
-    
-    public java.util.List getUserComplexTypeNamesList()
-    {
-      TypesHelper helper = new TypesHelper(xsdSchema);
-      return helper.getUserComplexTypeNamesList();
-    }
-    
-	  protected boolean hasElementChildren(Node parentNode)
-	  {
-	    boolean hasChildrenElements = false;
-	    if (parentNode != null && parentNode.hasChildNodes())
-	    {
-	      NodeList nodes = parentNode.getChildNodes();
-	      for (int i = 0; i < nodes.getLength(); i++)
-	      {
-	        if (nodes.item(i) instanceof Element)
-	        {
-	          hasChildrenElements = true;
-	          break;
-	        }
-	      }
-	    }
-	    return hasChildrenElements;
-	  }
-
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XPathPropertySource.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XPathPropertySource.java
deleted file mode 100644
index 9a5d893..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XPathPropertySource.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-
-
-public class XPathPropertySource
-  extends BasePropertySource
-  implements IPropertySource
-{
-  /**
-   * 
-   */
-  public XPathPropertySource()
-  {
-    super();
-  }
-  /**
-   * @param viewer
-   * @param xsdSchema
-   */
-  public XPathPropertySource(Viewer viewer, XSDSchema xsdSchema)
-  {
-    super(viewer, xsdSchema);
-// From Field     
-// WorkbenchHelp.setHelp(comp, XSDEditorContextIds.XSDE_UNIQUE_BASE_FIELDS_GROUP);
-//    fieldField.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_FIELD_TEXT"));
-//    WorkbenchHelp.setHelp(fieldField, XSDEditorContextIds.XSDE_UNIQUE_BASE_SOURCE);
-
-// From Selector
-// WorkbenchHelp.setHelp(comp, XSDEditorContextIds.XSDE_UNIQUE_BASE_SELECTOR_GROUP);
-// WorkbenchHelp.setHelp(selectorField, XSDEditorContextIds.XSDE_UNIQUE_BASE_SELECTOR);
-// selectorField.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_SELECTOR_TEXT"));
-    
-  }
-  /**
-   * @param xsdSchema
-   */
-  public XPathPropertySource(XSDSchema xsdSchema)
-  {
-    super(xsdSchema);
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-   */
-  public Object getEditableValue()
-  {
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-   */
-  public IPropertyDescriptor[] getPropertyDescriptors()
-  {
-    List list = new ArrayList();
-    // Create a descriptor and set a category
-    PropertyDescriptor xpathDescriptor =
-    new TextPropertyDescriptor(
-        XSDConstants.XPATH_ATTRIBUTE,
-        XSDConstants.XPATH_ATTRIBUTE);
-    list.add(xpathDescriptor);
-
-    IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-   */
-  public Object getPropertyValue(Object id)
-  {
-    Object result = null;
-    if (id instanceof String)
-     {
-      result = element.getAttribute((String) id);
-    }
-    if (result == null)
-     {
-      result = "";
-    }
-    return result;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-   */
-  public boolean isPropertySet(Object id)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-   */
-  public void resetPropertyValue(Object id)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-   */
-  public void setPropertyValue(Object id, Object value)
-  {
-    if (value != null)
-     {
-      if (value instanceof String)
-      {
-        if (XSDDOMHelper.inputEquals(element, XSDConstants.FIELD_ELEMENT_TAG, false))
-        {
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_FIELD_XPATH_CHANGE"), element);
-        }
-        else if (XSDDOMHelper.inputEquals(element, XSDConstants.SELECTOR_ELEMENT_TAG, false))
-        {
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_SELECTOR_XPATH_CHANGE"), element);
-        }
-        
-        element.setAttribute(XSDConstants.XPATH_ATTRIBUTE, (String)value);
-        endRecording(element);
-      }
-    }
-    Runnable delayedUpdate = new Runnable()
-    {
-      public void run()
-      {
-        if (viewer != null)
-          viewer.refresh();
-      }
-    };
-    Display.getCurrent().asyncExec(delayedUpdate);
-    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XSDComboBoxPropertyDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XSDComboBoxPropertyDescriptor.java
deleted file mode 100644
index b4d9cc2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XSDComboBoxPropertyDescriptor.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import java.text.MessageFormat;
-
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.PopupList;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-
-public class XSDComboBoxPropertyDescriptor extends PropertyDescriptor
-{
-	private String[] values;
-	
-	public XSDComboBoxPropertyDescriptor(Object id, String displayName, String[] valuesArray) {
-		super(id, displayName);
-		values = valuesArray;
-	}
-	/**
-	 * The <code>ComboBoxPropertyDescriptor</code> implementation of this 
-	 * <code>IPropertyDescriptor</code> method creates and returns a new
-	 * <code>ComboBoxCellEditor</code>.
-	 * <p>
-	 * The editor is configured with the current validator if there is one.
-	 * </p>
-	 */
-	public CellEditor createPropertyEditor(Composite parent) {
-    CellEditor editor = new XSDComboBoxCellEditor(parent, values);
-    //CellEditor editor = new StringComboBoxCellEditor(parent, values);
-		if (getValidator() != null)
-			editor.setValidator(getValidator());
-		return editor;
-	}
-	
-	public class XSDComboBoxCellEditor extends CellEditor
-	{
-		DynamicCellEditor comboBox;
-
-		private String fSelection;
-		protected String[] fItems;
-		protected Object fValue;
-		int selection;
-		Object typeObject;
-		
-		public void createItems(String[] items)
-		{
-			fItems = items;
-		}
-
-		public String[] getComboBoxItems()
-		{
-			return fItems;
-		}
-
-	/**
-	 * Creates a new combo box cell editor with the given choices.
-	 */
-		 public XSDComboBoxCellEditor(Composite parent, String[] items)
-		 {
-			 super(parent);
-			 fSelection = "";
-			 setItems(items);
-//			 fText.setText("");
-		 }
-
-		public void activate() {
-      if (doGetValue() != null)
-      {
-//			  int i = ((Integer)doGetValue()).intValue();
-//			  if (i >= 0)
-//		  	{
-//		  	  comboBox.setText(fItems[i]);
-//		  	}
-        comboBox.setText((String)fValue);
-			}
-		}
-
-		public void deactivate() {
-		  super.deactivate();
-		}
-
-		public void setItems(String[] items) {
-			Assert.isNotNull(items);
-			this.fItems = items;
-			populateComboBoxItems();
-		}
-
-		private void populateComboBoxItems() {
-			if (comboBox != null && fItems != null) {
-				comboBox.removeAll();
-				for (int i = 0; i < fItems.length; i++)
-					comboBox.add(fItems[i], i);
-
-				setValueValid(true);
-				selection = 0;
-			}
-		}
-
-	/**
-	 * Creates the actual UI representation.
-	 */
-
-		protected Control createControl(Composite parent)
-		{
-			comboBox = new DynamicCellEditor(parent, SWT.READ_ONLY |SWT.NONE | SWT.NO_TRIM);
-			comboBox.addKeyListener(new KeyAdapter() {
-				// hook key pressed - see PR 14201  
-				public void keyPressed(KeyEvent e) {
-//					System.out.println("Key e " + e);
-					keyReleaseOccured(e);
-				}
-			});
-
-			comboBox.addSelectionListener(new SelectionAdapter() {
-				public void widgetDefaultSelected(SelectionEvent event) {
-				}
-		
-				public void widgetSelected(SelectionEvent event) {
-//				  System.out.println("combo selected");
-					selection = comboBox.getSelectionIndex();
-					if (!comboBox.isDropped()) // allows user to traverse list using keyboard without applying value
-					applyEditorValueAndDeactivate();
-				}
-			});
-
-			comboBox.addTraverseListener(new TraverseListener() {
-				public void keyTraversed(TraverseEvent e) {
-//				  System.out.println("TRAVERSE e " + e);
-					if (e.detail == SWT.TRAVERSE_ESCAPE || e.detail == SWT.TRAVERSE_RETURN) {
-						e.doit = false;
-					}
-				}
-			});
-			
-      
-			comboBox.addFocusListener(new FocusAdapter() {
-				public void focusLost(FocusEvent e) {
-					XSDComboBoxCellEditor.this.focusLost();
-				}
-				public void focusGained(FocusEvent e) {
-//				  System.out.println("focusGained");
-				}
-			});
-		  setValueValid(true);
-			return comboBox;
-		}
-
-		protected void focusLost() {
-//		  System.out.println("CELLEDITOR FOCUS LOST");
-			if (isActivated()) {
-				applyEditorValueAndDeactivate();
-			}
-		}
-		
-		protected void keyReleaseOccured(KeyEvent keyEvent) {
-			if (keyEvent.character == '\u001b') { // Escape character
-			  comboBox.setText(""); // clear text
-				fireCancelEditor();
-			} else if (keyEvent.character == '\r') { // Return key
-				//fireApplyEditorValue();
-				applyEditorValueAndDeactivate();
-				deactivate();
-			}
-		}
-
-		void applyEditorValueAndDeactivate() {
-			//	must set the selection before getting value
-			selection = comboBox.getSelectionIndex();
-			if (selection < 0)
-			{
-			  deactivate();
-			  return;
-			}
-			// Object newValue = new Integer(selection);
-      Object newValue = fItems[selection];
-			markDirty();
-			boolean isValid = isCorrect(newValue);
-			setValueValid(isValid);
-			if (!isValid) {
-				// try to insert the current value into the error message.
-				setErrorMessage(
-					MessageFormat.format(getErrorMessage(), new Object[] {fItems[selection]})); 
-			}
-			doSetValue(newValue);
-			fireApplyEditorValue();
-			deactivate();
-		}
-
-    protected Object doGetValue() {
-      return fValue;
-      // otherwise limits to set of valid values
-//      Object index = super.doGetValue();
-//      int selection = -1;
-//      if (index instanceof Integer)
-//        selection = ((Integer) index).intValue();
-//      if (selection >= 0)
-//        return fItems[selection];
-//      else if (getControl() instanceof CCombo) {
-//        // retrieve the actual text as the list of valid items doesn't contain the value
-//        return ((CCombo) getControl()).getText();
-//      }
-//      return null;
-    }
-    private boolean fSettingValue = false;
-    protected void doSetValue(Object value) {
-      if (fSettingValue)
-        return;
-      fSettingValue = true;
-      if (value instanceof Integer) {
-        //super.doSetValue(value);
-        fValue = value;
-      }
-      else {
-        String stringValue = value.toString();
-        int selection = -1;
-        for (int i = 0; i < fItems.length; i++)
-          if (fItems[i].equals(stringValue))
-            selection = i;
-        if (selection >= 0)
-          //super.doSetValue(new Integer(selection));
-          fValue = stringValue;
-        else {
-          // super.doSetValue(new Integer(-1));
-          // fValue = new Integer(-1);
-          fValue = stringValue;
-          if (getControl() instanceof CCombo && !stringValue.equals(((CCombo) getControl()).getText())) {
-            // update the Text widget
-            ((CCombo) getControl()).setText(stringValue);
-          }
-        }
-      }
-      fSettingValue = false;
-    }		
-		
-	/**
-		* Returns the cell editor's value.
-		*/
-//		protected Object doGetValue() 
-//		{
-//			return fValue;
-//		}
-
-	/**
-	 * Set the focus to the cell editor's UI representation.
-	 */
-		protected void doSetFocus()
-		{
-//			fButton.setFocus();
-//      System.out.println("doSetFocus() " + moreButton.setFocus());
-      comboBox.setFocus();
-		}
-
-	/**
-	 * Sets the value of the cell editor to the given value.
-	 */
-//		protected void doSetValue(Object value)
-//		{
-//			fValue = value;
-//		}
-
-		protected void fillPopupList(PopupList list) 
-		{
-			String[] labels= new String[fItems.length];
-			for (int i= 0; i < labels.length; i++)
-			{
-				String item= fItems[i];
-				labels[i]= item;
-//				System.out.println(fItems[i]);
-				if (fSelection == null && fValue != null && fValue.equals(item)) 
-				{
-					fSelection = item;
-				}
-			}
-
-			list.setItems(labels);
-			if (fSelection != null) 
-			{
-//				fText.setText(fSelection);
-				list.select(fSelection);
-			}	
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XSDPropertySheetPage.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XSDPropertySheetPage.java
deleted file mode 100644
index 95ee94b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XSDPropertySheetPage.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.custom.ViewForm;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.views.properties.PropertySheet;
-import org.eclipse.ui.views.properties.PropertySheetPage;
-import org.eclipse.wst.sse.core.IStructuredModel;
-import org.eclipse.wst.sse.ui.ViewerSelectionManager;
-import org.eclipse.wst.sse.ui.view.events.INodeSelectionListener;
-import org.eclipse.wst.sse.ui.view.events.NodeSelectionChangedEvent;
-import org.eclipse.wst.sse.ui.views.properties.RemoveAction;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-public class XSDPropertySheetPage extends PropertySheetPage implements ISelectionChangedListener, INodeSelectionListener
-{
-  /**
-   * @param model
-   */
-
-  IEditorPart editorPart;
-	private ViewerSelectionManager fViewerSelectionManager;
-  IStructuredModel model;
-  protected RemoveAction fRemoveAction;
-  Control designControl;
-
-  public XSDPropertySheetPage(IStructuredModel model, IEditorPart editorPart)
-  {
-    super();
-    this.model = model;
-    this.editorPart = editorPart;
-  }
-
-  public void selectionChanged(SelectionChangedEvent event)
-  {
-		super.selectionChanged(null, event.getSelection());
-  }
-  
-	public void setViewerSelectionManager(ViewerSelectionManager viewerSelectionManager) {
-		// disconnect from old one
-		if (fViewerSelectionManager != null) {
-			fViewerSelectionManager.removeNodeSelectionListener(this);
-		}
-
-		fViewerSelectionManager = viewerSelectionManager;
-
-		// connect to new one
-		if (fViewerSelectionManager != null) {
-			fViewerSelectionManager.addNodeSelectionListener(this);
-		}
-	}
-
-	public void dispose() {
-		// disconnect from the ViewerSelectionManager
-		if (fViewerSelectionManager != null) {
-			fViewerSelectionManager.removeNodeSelectionListener(this);
-		}
-		super.dispose();
-	}
-
-	public void nodeSelectionChanged(NodeSelectionChangedEvent event) {
-		// multiple selection is unsupported
-		if (event.getSelectedNodes().size() > 1)
-		{
-			selectionChanged(null, StructuredSelection.EMPTY);
-		}
-		else if (event.getSelectedNodes().size() == 0)
-		{
-		  
-		}
-		else
-		{
-      Object item = event.getSelectedNodes().get(0);
-      if (item instanceof Text)
-      {
-        Node parent = ((Text)item).getParentNode();
-        selectionChanged(null, new StructuredSelection(parent));
-      }
-      else
-      {
-  			selectionChanged(null, new StructuredSelection(event.getSelectedNodes()));
-      }
-		}
-	}
-
-  private void setPropertiesTitle(PropertySheet thePart, String title)
-	{
-		Control control = thePart.getDefaultPage().getControl();
-		for (Composite parent = control.getParent(); parent != null; parent = parent.getParent())
-		{
-			if (parent instanceof ViewForm)
-			{
-				Control[] children = parent.getChildren();
-				if (children.length > 0 && children[0] instanceof CLabel)
-				{
-					CLabel clabel = (CLabel)children[0];
-  				clabel.setText(title);
-				}
-			}
-		}
-	}
-  
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XSDPropertySourceProvider.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XSDPropertySourceProvider.java
deleted file mode 100644
index 78e790b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/XSDPropertySourceProvider.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties;
-
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.IPropertySourceProvider;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class XSDPropertySourceProvider implements IPropertySourceProvider
-{
-  XSDSchema xsdSchema;
-  /**
-   * 
-   * @todo Generated comment
-   */
-  public XSDPropertySourceProvider()
-  {
-    super();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.IPropertySourceProvider#getPropertySource(java.lang.Object)
-   */
-  public IPropertySource getPropertySource(Object object)
-  {
-    if (object == null) return null;
-    
-    if (object instanceof XSDConcreteComponent)
-    {
-      XSDConcreteComponent component = (XSDConcreteComponent)object;
-      
-      xsdSchema = component.getSchema();
-      
-      if (component instanceof XSDElementDeclaration)
-      {
-        XSDElementDeclaration elementDeclaration = (XSDElementDeclaration)component;
-        if (elementDeclaration.isElementDeclarationReference())
-        {
-          component = elementDeclaration.getResolvedElementDeclaration();
-        }
-      }
-      
-      Element input = component.getElement(); 
-      
-      BasePropertySource bps = (BasePropertySource)getXSDPropertySource(input);
-      if (bps == null) return null;
-      
-      bps.setInput(input);
-      return bps;
-    }
-    return null;
-  }
-  
-  boolean showParent = false;
-  
-  public IPropertySource getXSDPropertySource(Object object)
-  {
-    Element input = (Element)object;
-
-    showParent = false;
-  
-    if (inputEquals(input, XSDConstants.ELEMENT_ELEMENT_TAG, false))
-    {
-      return new ElementPropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.ELEMENT_ELEMENT_TAG, true))
-    {
-      return new GroupRefPropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.SEQUENCE_ELEMENT_TAG, false) ||
-              inputEquals(input, XSDConstants.CHOICE_ELEMENT_TAG, false) ||
-              inputEquals(input, XSDConstants.ALL_ELEMENT_TAG, false))
-    {
-      return new ModelGroupPropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.ATTRIBUTE_ELEMENT_TAG, false))
-    {
-      return new AttributePropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.ATTRIBUTE_ELEMENT_TAG, true))
-    {
-      return new AttributeGroupRefPropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, false))
-    {
-      return new NamePropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, true))
-    {
-      return new AttributeGroupRefPropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.NOTATION_ELEMENT_TAG, false))
-    {
-      return new NotationPropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false))
-    {
-      return new SimpleTypePropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.GROUP_ELEMENT_TAG, false))
-    {
-      return new NamePropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.GROUP_ELEMENT_TAG, true))
-    {
-      return new GroupRefPropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.SCHEMA_ELEMENT_TAG, false))
-    {
-      return new SchemaPropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, false))
-    {
-      return new ComplexTypePropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.DOCUMENTATION_ELEMENT_TAG, false))
-    {
-      return new DocumentationPropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.APPINFO_ELEMENT_TAG, false))
-    {
-      return new AppInfoPropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
-    {
-      if (input != null && input instanceof Element)
-      {
-        Element parent = (Element)input;
-        XSDDOMHelper xsdDOMHelper = new XSDDOMHelper();
-        Element derivedByNode = xsdDOMHelper.getDerivedByElement(parent);
-        if (derivedByNode != null)
-        {
-          if (inputEquals(derivedByNode, XSDConstants.RESTRICTION_ELEMENT_TAG, false) || 
-              inputEquals(derivedByNode, XSDConstants.EXTENSION_ELEMENT_TAG, false))
-          {
-            return new SimpleContentPropertySource(xsdSchema);
-          }
-        }
-        else
-        {
-          return null;
-        }
-      }
-    }
-    else if (inputEquals(input, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
-    {
-      if (input != null && input instanceof Element)
-      {
-        Element parent = (Element)input;
-        XSDDOMHelper xsdDOMHelper = new XSDDOMHelper();
-        Element derivedByNode = xsdDOMHelper.getDerivedByElement(parent);
-        if (derivedByNode != null)
-        {
-          return new SimpleContentPropertySource(xsdSchema);
-        }
-        else
-        {
-          return null;
-        }
-      }
-    }
-    else if (inputEquals(input, XSDConstants.LIST_ELEMENT_TAG, false))
-    {
-      return new SimpleTypeListPropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.UNION_ELEMENT_TAG, false))
-    {
-      return new SimpleTypeUnionPropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.RESTRICTION_ELEMENT_TAG, false))
-    {
-      return createRestrictWindow(input, xsdSchema);
-    }
-    else if (XSDDOMHelper.isFacet(input))
-    {
-      if (input != null && input instanceof Element)
-      {
-        Node parent = ((Element)input).getParentNode();
-        if (inputEquals(parent, XSDConstants.RESTRICTION_ELEMENT_TAG, false))
-        {
-          return createRestrictWindow(input, xsdSchema);
-        } 
-      }
-    }
-    else if (inputEquals(input, XSDConstants.EXTENSION_ELEMENT_TAG, false))
-    {
-      if (input != null && input instanceof Element)
-      {
-        Node parent = ((Element)input).getParentNode();
-        if (inputEquals(parent, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false)
-            || inputEquals(parent, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
-        {
-          showParent = true;
-          return new SimpleContentPropertySource(xsdSchema);
-        }
-      }
-    }
-    else if (inputEquals(input, XSDConstants.PATTERN_ELEMENT_TAG, false))
-    {
-      return new PatternPropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.ENUMERATION_ELEMENT_TAG, false))
-    {
-      return new EnumerationPropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.ANY_ELEMENT_TAG, false))
-    {
-      return new AnyElementPropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, false))
-    {
-      return new AnyAttributePropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.UNIQUE_ELEMENT_TAG, false))
-    {
-      return new NamePropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.KEYREF_ELEMENT_TAG, false))
-    {
-      return new KeyrefPropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.SELECTOR_ELEMENT_TAG, false))
-    {
-      return new XPathPropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.FIELD_ELEMENT_TAG, false))
-    {
-      return new XPathPropertySource(xsdSchema);
-    }
-    else if (inputEquals(input, XSDConstants.KEY_ELEMENT_TAG, false))
-    {
-      return new NamePropertySource(xsdSchema);
-    }
-    else
-    {
-      return null;
-    }
-    return null;
-  }
-
-  protected IPropertySource createRestrictWindow(Object input, XSDSchema xsdSchema)
-  {
-    // special case where SimpleType restriction is different than SimpleContent restriction
-
-    if (input != null && input instanceof Element)
-    {
-      Node parent = ((Element)input).getParentNode();
-      if (inputEquals(parent, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false))
-      {
-        return new SimpleRestrictPropertySource(xsdSchema);
-      }
-      else if (inputEquals(parent, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
-      {
-        return new SimpleRestrictPropertySource(xsdSchema);
-      }
-      else if (inputEquals(parent, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
-      {
-        showParent = true;
-        return new SimpleContentPropertySource(xsdSchema);
-      }
-    }
-    return null;
-  }
-
-
-  protected boolean inputEquals(Object input, String tagname, boolean isRef)
-  {
-    return XSDDOMHelper.inputEquals(input, tagname, isRef);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AbstractSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AbstractSection.java
deleted file mode 100644
index 010bf73..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AbstractSection.java
+++ /dev/null
@@ -1,495 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.part.EditorActionBarContributor;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetPage;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.xml.core.NameValidator;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.actions.CreateElementAction;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class AbstractSection implements ISection, IPropertyChangeListener, Listener, SelectionListener
-{
-	private TabbedPropertySheetWidgetFactory factory;
-	protected IWorkbenchPart part;
-	protected ISelection selection;
-	protected Object input;
-  protected boolean doRefresh = true;
-	XSDSchema xsdSchema;
-  protected boolean isReadOnly = false;
-  private IStatusLineManager statusLine;
-  protected Composite composite;
-  protected int rightMarginSpace;
-  protected int tableMinimumWidth = 50;
- 
-  /**
-   * 
-   */
-  public AbstractSection()
-  {
-    super();
-  }
-  
-  public void createControls(Composite parent,	TabbedPropertySheetPage tabbedPropertySheetPage)
-  {
-    createControls(parent, tabbedPropertySheetPage.getWidgetFactory());
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-   */
-  public void createControls(Composite parent, TabbedPropertySheetWidgetFactory aFactory)
-  {
-		this.factory = aFactory;
-    GC gc = new GC(parent);
-    Point extent = gc.textExtent("  ...  ");
-    rightMarginSpace = extent.x;
-    gc.dispose();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISection#setInput(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public void setInput(IWorkbenchPart part, ISelection selection)
-  {
-		Assert.isTrue(selection instanceof IStructuredSelection);
-		this.part = part;
-		this.selection = selection;
-		Object input = ((IStructuredSelection)selection).getFirstElement();
-    this.input = input;
-    
-    if (input instanceof XSDConcreteComponent)
-    {
-      xsdSchema = ((XSDConcreteComponent)input).getSchema();
-      
-      Element element = ((XSDConcreteComponent)input).getElement();
-      if (element instanceof XMLNode)
-      {
-        isReadOnly = false;
-      }
-      else
-      {
-        isReadOnly = true;
-      }
-    }
-    statusLine = getStatusLine();
-    clearErrorMessage();
-
-//		refresh();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISection#aboutToBeShown()
-   */
-  public void aboutToBeShown()
-  {
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISection#aboutToBeHidden()
-   */
-  public void aboutToBeHidden()
-  {
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISection#dispose()
-   */
-  public void dispose()
-  {
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISection#getMinimumHeight()
-   */
-  public int getMinimumHeight()
-  {
-    return SWT.DEFAULT;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISection#shouldUseExtraSpace()
-   */
-  public boolean shouldUseExtraSpace()
-  {
-    return false;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISection#refresh()
-   */
-  public void refresh()
-  {
-  }
-
-  public Object getInput()
-  {
-    if (input instanceof Element)
-    {
-      input = xsdSchema.getCorrespondingComponent((Element)input);
-    }
-    return input;
-  }
-  
-  public XSDSchema getSchema()
-  {
-    return xsdSchema;
-  }
-  
-	/**
-	 * Get the widget factory.
-	 * @return the widget factory.
-	 */
-	public TabbedPropertySheetWidgetFactory getWidgetFactory() {
-		return factory;
-	}
-
-	public void propertyChange(PropertyChangeEvent event)
-	{
-    refresh();
-	}
-
-	
-  public void doWidgetDefaultSelected(SelectionEvent e)
-  {}
-  
-  public void doWidgetSelected(SelectionEvent e)
-  {}
-  
-  /**
-   * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(SelectionEvent)
-   */
-  public void widgetDefaultSelected(SelectionEvent e)
-  {
-    if (isListenerEnabled() &&
-        getInput() != null &&
-        !isInDoHandle &&
-        !isReadOnly) 
-    {
-      isInDoHandle = true;
-      doWidgetDefaultSelected(e);
-      isInDoHandle = false;
-    }
-    
-  }
-
-  /**
-   * @see org.eclipse.swt.events.SelectionListener#widgetSelected(SelectionEvent)
-   */
-  public void widgetSelected(SelectionEvent e)
-  {
-    if (isListenerEnabled() &&
-        getInput() != null &&
-        !isInDoHandle &&
-        !isReadOnly) 
-    {
-      isInDoHandle = true;
-      doWidgetSelected(e);
-      isInDoHandle = false;
-    }
-    
-  }
-  
-  boolean listenerEnabled = true;
-  /**
-   * Get the value of listenerEnabled.
-   * @return value of listenerEnabled.
-   */
-  public boolean isListenerEnabled() 
-  {
-    return listenerEnabled;
-  }
-  
-  /**
-   * Set the value of listenerEnabled.
-   * @param v  Value to assign to listenerEnabled.
-   */
-  public void setListenerEnabled(boolean  v) 
-  {
-    this.listenerEnabled = v;
-  }
-
-  public void handleEvent(Event event)
-  {
-    if (isListenerEnabled() && !isInDoHandle && !isReadOnly) 
-    {
-      isInDoHandle = true;
-      startDelayedEvent(event);
-      isInDoHandle = false;
-    } // end of if ()
-  }
-  
-  public void doHandleEvent(Event event)
-  {
-    
-  }
-  
-  protected DelayedEvent delayedTask;
-  
-  protected void startDelayedEvent(Event e)
-  {
-    if (delayedTask == null ||
-      delayedTask.getEvent() == null)
-    {
-      delayedTask = new DelayedEvent();
-      delayedTask.setEvent(e);
-      Display.getDefault().timerExec(500,delayedTask);
-    }
-    else
-    {
-      Event delayedEvent = delayedTask.getEvent();
-      
-      if (e.widget == delayedEvent.widget &&
-        e.type == delayedEvent.type)
-      {
-        // same event, just different data, delay new event
-        delayedTask.setEvent(null);
-      }
-      delayedTask = new DelayedEvent();
-      delayedTask.setEvent(e);
-      Display.getDefault().timerExec(500,delayedTask);
-    }
-  }
-  
-  class DelayedEvent implements Runnable
-  {
-    protected Event event;
-    
-    /*
-     * @see Runnable#run()
-     */
-    public void run()
-    {
-      if (event != null)
-      {
-        isInDoHandle = true;
-        doHandleEvent(event);
-        isInDoHandle = false;
-        event = null;
-      }
-    }
-    
-    /**
-     * Gets the event.
-     * @return Returns a Event
-     */
-    public Event getEvent()
-    {
-      return event;
-    }
-
-    /**
-     * Sets the event.
-     * @param event The event to set
-     */
-    public void setEvent(Event event)
-    {
-      this.event = event;
-    }
-
-  }
-
-  boolean isInDoHandle;
-  /**
-   * Get the value of isInDoHandle.
-   * @return value of isInDoHandle.
-   */
-  public boolean isInDoHandle() 
-  {
-    return isInDoHandle;
-  }
-
-  
-  protected IEditorPart getActiveEditor()
-  {
-    IWorkbench workbench = XSDEditorPlugin.getPlugin().getWorkbench();
-    IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-    IEditorPart editorPart = workbenchWindow.getActivePage().getActiveEditor();
-//    IEditorPart editorPart = part.getSite().getWorkbenchWindow().getActivePage().getActiveEditor();
-
-    return editorPart;
-  }
-
-  static protected IStatusLineManager getStatusLineManager(IEditorPart editorPart)
-  { 
-    IStatusLineManager result = null;
-    try
-    {                       
-      EditorActionBarContributor contributor = (EditorActionBarContributor)editorPart.getEditorSite().getActionBarContributor();
-      result = contributor.getActionBars().getStatusLineManager();
-    }
-    catch (Exception e)
-    {
-    }  
-    return result;
-  }
-
-  protected XSDDOMHelper domHelper = new XSDDOMHelper();
-  /**
-   * Gets the domHelper.
-   * @return Returns a XSDDomHelper
-   */
-  public XSDDOMHelper getDomHelper()
-  {
-    return domHelper;
-  }
-  
-  public DocumentImpl getDocument(Element element)
-  {
-    return (DocumentImpl) element.getOwnerDocument();
-  }
-
-  public void beginRecording(String description, Element element)
-  {
-    getDocument(element).getModel().beginRecording(this, description);
-  }
-  
-  public void endRecording(Element element)
-  {
-    DocumentImpl doc = (DocumentImpl) getDocument(element);
-    
-    doc.getModel().endRecording(this);    
-  }
-
-  protected boolean validateName(String name)
-  {
-    try
-    {
-      return NameValidator.isValid(name);
-    }
-    catch (Exception e)
-    {
-      return false;
-    }
-  }
-
-  // TODO
-  protected boolean validateLanguage(String lang)
-  {
-    return true;
-  }
-
-  // TODO
-  protected boolean validatePrefix(String prefix)
-  {
-    return true;
-  }
-
-  
-  protected Action getNewElementAction(String elementTag, String label, List attributes, Element parent, Node relativeNode)
-  {
-    CreateElementAction action = new CreateElementAction(label);
-    action.setElementTag(elementTag);
-    action.setAttributes(attributes);
-    action.setParentNode(parent);
-    action.setRelativeNode(relativeNode);
-    action.setXSDSchema(getSchema());
-    action.setSelectionProvider(null);
-    return action;
-  }
-
-  public void setErrorMessage(String message)
-  {
-    if (statusLine != null)
-    {
-      statusLine.setErrorMessage(message);
-      statusLine.update(true);
-    }
-  }
-
-  public void clearErrorMessage()
-  {
-    if (statusLine != null)
-    {
-      statusLine.setErrorMessage(null);
-      statusLine.update(false);
-    }
-  }
-
-  EditorActionBarContributor contributor;
-  protected IStatusLineManager getStatusLine()
-  {
-//    IWorkbench workbench = XSDEditorPlugin.getPlugin().getWorkbench();
-//    IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-    IEditorPart editorPart = part.getSite().getWorkbenchWindow().getActivePage().getActiveEditor();
-    
-    if (statusLine == null)
-    {
-      try
-      {                       
-        contributor = (EditorActionBarContributor)editorPart.getEditorSite().getActionBarContributor();
-        statusLine = contributor.getActionBars().getStatusLineManager();
-      }
-      catch (Exception e)
-      {
-      }  
-    }
-    return statusLine;
-  }
-  
-  /**
-   * Get the standard label width when labels for sections line up on the left
-   * hand side of the composite. We line up to a fixed position, but if a
-   * string is wider than the fixed position, then we use that widest string.
-   * 
-   * @param parent
-   *            The parent composite used to create a GC.
-   * @param labels
-   *            The list of labels.
-   * @return the standard label width.
-   */
-  protected int getStandardLabelWidth(Composite parent, String[] labels) {
-    int standardLabelWidth = 100;   // STANDARD_LABEL_WIDTH;
-    GC gc = new GC(parent);
-    int indent = gc.textExtent("XXX").x; //$NON-NLS-1$
-    for (int i = 0; i < labels.length; i++) {
-      int width = gc.textExtent(labels[i]).x;
-      if (width + indent > standardLabelWidth) {
-        standardLabelWidth = width + indent;
-      }
-    }
-    gc.dispose();
-    return standardLabelWidth;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AbstractSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AbstractSectionDescriptor.java
deleted file mode 100644
index 68bc6f7..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AbstractSectionDescriptor.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.wst.common.ui.properties.ISectionDescriptor;
-import org.eclipse.wst.common.ui.properties.ITypeMapper;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.w3c.dom.Element;
-
-public class AbstractSectionDescriptor implements ISectionDescriptor
-{
-  /**
-   * 
-   */
-  public AbstractSectionDescriptor()
-  {
-    super();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getId()
-   */
-  public String getId()
-  {
-    return "";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getFilter()
-   */
-  public ITypeMapper getFilter()
-  {
-    return null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-   */
-  public List getInputTypes()
-  {
-    List list = new ArrayList();
-    list.add(XSDConcreteComponent.class);
-    return list;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-   */
-  public ISection getSectionClass()
-  {
-    return null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-   */
-  public String getTargetTab()
-  {
-    return null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-  {
-    Object object = null;
-    if (selection instanceof StructuredSelection)
-    {
-      StructuredSelection structuredSelection = (StructuredSelection)selection;
-      object = structuredSelection.getFirstElement();
-      if (object instanceof XSDConcreteComponent || object instanceof Element)
-      {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getAfterSection()
-   */
-  public String getAfterSection()
-  {
-    return "";
-  }
-
-  protected boolean inputEquals(Object input, String tagname, boolean isRef)
-  {
-    return XSDDOMHelper.inputEquals(input, tagname, isRef);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AnnotationSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AnnotationSection.java
deleted file mode 100644
index 75da720..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AnnotationSection.java
+++ /dev/null
@@ -1,595 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDAnnotation;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDFacet;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDIdentityConstraintDefinition;
-import org.eclipse.xsd.XSDImport;
-import org.eclipse.xsd.XSDInclude;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNotationDeclaration;
-import org.eclipse.xsd.XSDRedefine;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.XSDWildcard;
-import org.eclipse.xsd.XSDXPathDefinition;
-import org.eclipse.xsd.impl.XSDFactoryImpl;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.CharacterData;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class AnnotationSection extends AbstractSection
-{
-  DocumentationWorkbookPage documentationPage;
-  AppInfoWorkbookPage appInfoPage;
-  XSDWorkbook workbook;
-  XSDFactory factory;
-  
-  /**
-   * 
-   */
-  public AnnotationSection()
-  {
-    super();
-    factory = new XSDFactoryImpl();
-  }
-
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-	{
-		super.createControls(parent, factory);
-//		Composite composite = getWidgetFactory().createFlatFormComposite(parent);
-//    Composite composite = new Composite(parent, SWT.NONE);
-		FormData data;
-
-    workbook = new XSDWorkbook(parent, SWT.BOTTOM | SWT.FLAT);
-    
-    documentationPage = new DocumentationWorkbookPage(workbook);
-    appInfoPage = new AppInfoWorkbookPage(workbook);
-
-    documentationPage.activate();
-    appInfoPage.activate();
-    workbook.setSelectedPage(documentationPage);
-  }
-
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh()
-	{
-    if (doRefresh)
-    {
-      if (documentationPage.getDocumentationText().isFocusControl() || appInfoPage.getAppInfoText().isFocusControl())
-      {
-        return;
-      }
-      
-      if (isReadOnly)
-      {
-        documentationPage.setEnabled(false);
-        appInfoPage.setEnabled(false);
-      }
-      else
-      {
-        documentationPage.setEnabled(true);
-        appInfoPage.setEnabled(true);
-      }
-      setListenerEnabled(false);
-	    Object input = getInput();
-	    if (input != null)
-	    {
-	      XSDAnnotation xsdAnnotation = getInputXSDAnnotation(false);
-        setInitialText(xsdAnnotation);
-      }
-      setListenerEnabled(true);
-	  }
-	}
-
-  
-  public void doHandleEvent(Event event)
-  {
-    Object input = getInput();
-    if (input != null)
-    {
-      XSDAnnotation xsdAnnotation = getInputXSDAnnotation(true);
-  
-      if (event.widget == documentationPage.getDocumentationText())
-      {
-        documentationPage.doHandleEvent(xsdAnnotation);
-      }
-      else if (event.widget == appInfoPage.getAppInfoText())
-      {
-        appInfoPage.doHandleEvent(xsdAnnotation);
-      }
-    }
-    
-  }
-  
-  protected XSDAnnotation getInputXSDAnnotation(boolean createIfNotExist)
-  {
-    XSDAnnotation xsdAnnotation = null;
-    
-    if (input instanceof XSDAttributeDeclaration)
-    {
-      XSDAttributeDeclaration xsdComp = (XSDAttributeDeclaration)input; 
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDAttributeGroupDefinition)
-    {
-      XSDAttributeGroupDefinition xsdComp = (XSDAttributeGroupDefinition)input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDElementDeclaration)
-    {
-      XSDElementDeclaration xsdComp = (XSDElementDeclaration)input; 
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDNotationDeclaration)
-    {
-      XSDNotationDeclaration xsdComp =(XSDNotationDeclaration)input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDXPathDefinition)
-    {
-      XSDXPathDefinition xsdComp = (XSDXPathDefinition)input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDModelGroup)
-    {
-      XSDModelGroup xsdComp = (XSDModelGroup)input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDModelGroupDefinition)
-    {
-      XSDModelGroupDefinition xsdComp = (XSDModelGroupDefinition)input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDIdentityConstraintDefinition)
-    {
-      XSDIdentityConstraintDefinition xsdComp = (XSDIdentityConstraintDefinition)input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDWildcard)
-    {
-      XSDWildcard xsdComp = (XSDWildcard)input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDSchema)
-    {
-      XSDSchema xsdComp = (XSDSchema)input;
-      List list = xsdComp.getAnnotations();
-      if (list.size() > 0)
-      {
-        xsdAnnotation = (XSDAnnotation)list.get(0);
-      }
-      else
-      {
-        if (createIfNotExist && xsdAnnotation == null)
-        {
-          xsdAnnotation = factory.createXSDAnnotation();
-          if (xsdComp.getContents() != null)
-          {
-            xsdComp.getContents().add(0, xsdAnnotation);
-          }
-        }
-      }
-      return xsdAnnotation;
-    }
-    else if (input instanceof XSDFacet)
-    {
-      XSDFacet xsdComp = (XSDFacet)input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDTypeDefinition)
-    {
-      XSDTypeDefinition xsdComp = (XSDTypeDefinition)input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDInclude)
-    {
-      XSDInclude xsdComp = (XSDInclude)input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDImport)
-    {
-      XSDImport xsdComp = (XSDImport)input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDRedefine)
-    {
-      XSDRedefine xsdComp = (XSDRedefine)input;
-      List list = xsdComp.getAnnotations();
-      if (list.size() > 0)
-      {
-        xsdAnnotation = (XSDAnnotation)list.get(0);
-      }
-      else
-      {
-        if (createIfNotExist && xsdAnnotation == null)
-        {
-// ?
-        }
-      }
-      return xsdAnnotation;
-    }
-    else if (input instanceof XSDAnnotation)
-    {
-      xsdAnnotation = (XSDAnnotation)input;
-    }
-    
-    if (createIfNotExist)
-    {
-      formatAnnotation(xsdAnnotation);
-    }
-
-    return xsdAnnotation;
-  }
-  
-  private void formatAnnotation(XSDAnnotation annotation)
-  {
-    Element element = annotation.getElement();
-    XSDDOMHelper.formatChild(element);
-  }
-  
-
-  public boolean shouldUseExtraSpace()
-  {
-    return true;
-  }
-
-  public void dispose()
-  {
-    factory = null;
-  }
-  
-  private void setInitialText(XSDAnnotation an)
-  {
-    if (documentationPage != null)
-    {
-      documentationPage.setText("");
-    }
-    if (appInfoPage != null)
-    {
-      appInfoPage.setText("");
-    }
-
-    if (an != null)
-    {
-      Element element = an.getElement();
-      try
-      {
-        if (element.hasChildNodes())
-         {
-          // if the element is Text
-          Element docElement = (Element)domHelper.getChildNode(element, XSDConstants.DOCUMENTATION_ELEMENT_TAG);
-          if (docElement != null)
-          {
-            Node node = docElement.getFirstChild();
-            if (node instanceof CharacterData)
-            {
-              documentationPage.setText( ((CharacterData)node).getData());
-            }
-          }
-          
-          Element appInfoElement = (Element)domHelper.getChildNode(element, XSDConstants.APPINFO_ELEMENT_TAG);
-          if (appInfoElement != null)
-          {
-            Node node = appInfoElement.getFirstChild();
-            if (node instanceof CharacterData)
-            {
-              appInfoPage.setText( ((CharacterData)node).getData());
-            }
-          }
-
-        }
-      }
-      catch (Exception e)
-      {
-        
-      }
-    }
-  }
-  
- 
-  class DocumentationWorkbookPage extends XSDWorkbookPage
-  {
-    Text documentationText;
-    Composite page1;
-    
-    public DocumentationWorkbookPage(XSDWorkbook workbook)
-    {
-      super(workbook);
-      this.getTabItem().setText("Documentation");
-    }
-
-    public void setText(String value)
-    {
-      documentationText.setText(value);
-    }
-    
-    public void setEnabled(boolean state)
-    {
-      page1.setEnabled(state);
-    }
-    
-    public String getText()
-    {
-      return documentationText.getText();
-    }
-    
-    public Text getDocumentationText()
-    {
-      return documentationText;
-    }
-    
-    public Control createControl (Composite parent)
-    {
-      page1 = getWidgetFactory().createFlatFormComposite(parent);
-      documentationText = getWidgetFactory().createText(page1, "", SWT.V_SCROLL | SWT.H_SCROLL);
-      documentationText.addListener(SWT.Modify, AnnotationSection.this);
-
-      FormData data = new FormData();
-      data.left = new FormAttachment(0, 0);
-      data.right = new FormAttachment(100, 0);
-      data.top = new FormAttachment(0, 0);
-      data.bottom = new FormAttachment(100, 0);
-      documentationText.setLayoutData(data);
-                  
-      return page1;
-    }
-    
-    public void doHandleEvent(XSDAnnotation xsdAnnotation)
-    {
-      if (xsdAnnotation != null)
-      {
-        Element element = xsdAnnotation.getElement();
-        List documentationList = xsdAnnotation.getUserInformation();
-        Element documentationElement = null;
-        if (documentationList.size() > 0)
-        {
-          documentationElement = (Element)documentationList.get(0);
-        }
-        
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_DOCUMENTATION_COMMENT_CHANGE"), element);
-        
-        if (documentationElement == null)
-        {
-          documentationElement = xsdAnnotation.createUserInformation(null);
-          element.appendChild(documentationElement);
-          XSDDOMHelper.formatChild(documentationElement);
-          // Defect in model....I create it but the model object doesn't appear to be updated
-          // Notice that it is fine for appinfo
-          xsdAnnotation.updateElement();
-          xsdAnnotation.setElement(element);
-        }
-        
-        String newValue = documentationText.getText();
-        if (documentationElement != null)
-        {
-          try
-          {
-            if (documentationElement.hasChildNodes())
-            {
-            // if the element is Text
-              Node node = documentationElement.getFirstChild();
-              if (node instanceof CharacterData)
-              {
-                ((CharacterData)node).setData(newValue);
-              }
-            }
-            else
-            {
-              if (newValue.length() > 0)
-              {
-                Node childNode = documentationElement.getOwnerDocument().createTextNode(newValue);
-                documentationElement.appendChild(childNode);
-              }
-            }
-          }
-          catch (Exception e)
-          {
-          
-          }
-        }
-        endRecording(element);
-      }    
-    }
-  }
-  
-  class AppInfoWorkbookPage extends XSDWorkbookPage
-  {
-    Text appInfoText;
-    Composite page2;
-    
-    public AppInfoWorkbookPage(XSDWorkbook workbook)
-    {
-      super(workbook);
-      this.getTabItem().setText("App Info");
-    }
-    
-    public void setText(String value)
-    {
-      appInfoText.setText(value);
-    }
-
-    public String getText()
-    {
-      return appInfoText.getText();
-    }
-
-    public Text getAppInfoText()
-    {
-      return appInfoText;
-    }
-
-    public void setEnabled(boolean state)
-    {
-      page2.setEnabled(state);
-    }
-
-    public Control createControl (Composite parent)
-    {
-      page2 = getWidgetFactory().createFlatFormComposite(parent);
-      appInfoText = getWidgetFactory().createText(page2, "", SWT.V_SCROLL | SWT.H_SCROLL);
-      appInfoText.addListener(SWT.Modify, AnnotationSection.this);
-      
-      FormData data = new FormData();
-      data.left = new FormAttachment(0, 0);
-      data.right = new FormAttachment(100, 0);
-      //data.top = new FormAttachment(documentationText, +ITabbedPropertyConstants.HSPACE);
-      data.top = new FormAttachment(0, 0);
-      data.bottom = new FormAttachment(100, 0);
-      appInfoText.setLayoutData(data);
-
-      return page2;
-    }
-    
-    public void doHandleEvent(XSDAnnotation xsdAnnotation)
-    {
-      if (xsdAnnotation != null)
-      {
-        Element element = xsdAnnotation.getElement();
-        List appInfoList = xsdAnnotation.getApplicationInformation();
-        
-        Element appInfoElement = null;
-        if (appInfoList.size() > 0)
-        {
-          appInfoElement = (Element)appInfoList.get(0);
-        }
-
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_COMMENT_CHANGE"), element);
-        if (appInfoElement == null)
-        {
-          appInfoElement = xsdAnnotation.createApplicationInformation(null);
-          element.appendChild(appInfoElement);
-          XSDDOMHelper.formatChild(appInfoElement);
-        }
-        
-        String newValue = appInfoText.getText();
-        if (appInfoElement != null)
-        {
-          try
-          {
-            if (appInfoElement.hasChildNodes())
-            {
-              // if the element is Text
-              Node node = appInfoElement.getFirstChild();
-              if (node instanceof CharacterData)
-              {
-                ((CharacterData)node).setData(newValue);
-              }
-            }
-            else
-            {
-              if (newValue.length() > 0)
-              {
-                Node childNode = appInfoElement.getOwnerDocument().createTextNode(newValue);
-                appInfoElement.appendChild(childNode);
-              }
-            }
-          }
-          catch (Exception e)
-          {
-
-          }
-          endRecording(element);          
-        }
-      }    
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AnnotationSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AnnotationSectionDescriptor.java
deleted file mode 100644
index e6bf7b8..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AnnotationSectionDescriptor.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.xsd.XSDAnnotation;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDFacet;
-import org.eclipse.xsd.XSDIdentityConstraintDefinition;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNotationDeclaration;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.XSDWildcard;
-import org.eclipse.xsd.XSDXPathDefinition;
-
-public class AnnotationSectionDescriptor extends AbstractSectionDescriptor
-{
-  /**
-   * 
-   */
-  public AnnotationSectionDescriptor()
-  {
-    super();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getId()
-   */
-  public String getId()
-  {
-    return "com.ibm.xsdeditor.section.annotation";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-   */
-  public List getInputTypes()
-  {
-    List list = new ArrayList();
-    list.add(XSDAnnotation.class);
-    return list;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-   */
-  public ISection getSectionClass()
-  {
-    return new AnnotationSection();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-   */
-  public String getTargetTab()
-  {
-    return "com.ibm.xmlwebservices.documentation";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-  {
-    Object object = null;
-    if (selection instanceof StructuredSelection)
-    {
-      StructuredSelection structuredSelection = (StructuredSelection)selection;
-      object = structuredSelection.getFirstElement();
-      if (object instanceof XSDAttributeDeclaration ||
-          object instanceof XSDAttributeGroupDefinition ||
-          object instanceof XSDElementDeclaration ||
-          object instanceof XSDNotationDeclaration ||
-          object instanceof XSDXPathDefinition ||
-          object instanceof XSDModelGroup ||
-          object instanceof XSDModelGroupDefinition ||
-          object instanceof XSDIdentityConstraintDefinition ||
-          object instanceof XSDWildcard ||
-          object instanceof XSDSchema ||
-          object instanceof XSDFacet || 
-          object instanceof XSDTypeDefinition ||
-          object instanceof XSDAnnotation ||
-          object instanceof XSDSchemaDirective)
-      {
-        return true;
-      }
-    }
-    return false;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AttributesViewContentProvider.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AttributesViewContentProvider.java
deleted file mode 100644
index 36526ee..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AttributesViewContentProvider.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.INotifyChangedListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.wst.xsd.ui.internal.provider.XSDAbstractAdapter;
-import org.eclipse.wst.xsd.ui.internal.provider.XSDAdapterFactoryLabelProvider;
-import org.eclipse.wst.xsd.ui.internal.provider.XSDModelAdapterFactoryImpl;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupContent;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.XSDWildcard;
-
-
-public class AttributesViewContentProvider implements ITreeContentProvider, ITableLabelProvider, ILabelProvider, INotifyChangedListener
-{
-  IEditorPart editorPart;
-
-  static XSDModelAdapterFactoryImpl xsdModelAdapterFactory = new XSDModelAdapterFactoryImpl(); // XSDTextEditor.getXSDModelAdapterFactory();
-  static XSDAdapterFactoryLabelProvider adapterFactoryLabelProvider = new XSDAdapterFactoryLabelProvider(xsdModelAdapterFactory);  // XSDTextEditor.getLabelProvider();
-  
-  XSDAbstractAdapter elementAdapter;
-  XSDAbstractAdapter ctAdapter;
-  XSDComplexTypeDefinition ct;
-  
-  /**
-   * 
-   */
-  public AttributesViewContentProvider()
-  {
-    super();
-//    if (xsdModelAdapterFactory instanceof IChangeNotifier)
-//    {
-//      ((IChangeNotifier)xsdModelAdapterFactory).addListener(this);
-//    }
-
-  }
-  
-  Viewer attributesViewer;
-  public AttributesViewContentProvider(IEditorPart editorPart, Viewer viewer)
-  {
-    super();
-    this.editorPart = editorPart;
-    this.attributesViewer = viewer;
-  }
-  
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-   */
-  public Object[] getChildren(Object inputElement)
-  {
-    List list = new ArrayList();
-    ct = null;
-    if (inputElement instanceof XSDElementDeclaration)
-    {
-      XSDElementDeclaration xsdElement = (XSDElementDeclaration)inputElement;
-      
-      if (elementAdapter != null)
-      {
-        elementAdapter.removeListener((INotifyChangedListener)this);
-      }
-      elementAdapter = (XSDAbstractAdapter)xsdModelAdapterFactory.adapt(xsdElement, xsdModelAdapterFactory);
-      elementAdapter.addListener((INotifyChangedListener)this);
-
-      if (xsdElement.getAnonymousTypeDefinition() instanceof XSDComplexTypeDefinition)
-      {
-        ct = (XSDComplexTypeDefinition)xsdElement.getAnonymousTypeDefinition();
-      }
-      else
-      {
-        XSDTypeDefinition xsdType = xsdElement.getTypeDefinition();
-        if (xsdType instanceof XSDComplexTypeDefinition)
-        {
-          ct = (XSDComplexTypeDefinition)xsdType;
-        }
-      }
-    }
-    else if (inputElement instanceof XSDComplexTypeDefinition)
-    {
-      ct = (XSDComplexTypeDefinition)inputElement;
-    }
-
-    if (ct != null)
-    {
-      if (ctAdapter != null)
-      {
-        ctAdapter.removeListener((INotifyChangedListener)this);
-      }
-      ctAdapter = (XSDAbstractAdapter)xsdModelAdapterFactory.adapt(ct, xsdModelAdapterFactory);
-      ctAdapter.addListener((INotifyChangedListener)this);
-      
-      XSDWildcard wildcard = ct.getAttributeWildcardContent();
-      if (wildcard != null)
-      {
-        list.add(wildcard);
-      }
-      
-      Iterator i = ct.getAttributeContents().iterator();
-      while (i.hasNext())
-      {
-        XSDAttributeGroupContent attributeGroupContent = (XSDAttributeGroupContent)i.next();
-        if (attributeGroupContent instanceof XSDAttributeGroupDefinition)
-        {
-          XSDAttributeGroupDefinition attributeGroupDefinition = (XSDAttributeGroupDefinition)attributeGroupContent;
-          XSDAbstractAdapter a = (XSDAbstractAdapter)xsdModelAdapterFactory.adapt(attributeGroupDefinition, xsdModelAdapterFactory);
-          a.removeListener((INotifyChangedListener)this);
- 	        a.addListener((INotifyChangedListener)this);
- 	        list.add(attributeGroupDefinition);
-        }
-        else if (attributeGroupContent instanceof XSDAttributeUse)
-        {
-          XSDAttributeUse attributeUse = (XSDAttributeUse)attributeGroupContent;
-          
-          XSDAttributeDeclaration attribute = attributeUse.getAttributeDeclaration();
-          
-          boolean isRef = XSDDOMHelper.isAttributeRef(ct.getElement(), attribute.getQName(), attribute.getTargetNamespace());
-         
-          if (isRef)
-          {
-            XSDAbstractAdapter a = (XSDAbstractAdapter)xsdModelAdapterFactory.adapt(attributeUse, xsdModelAdapterFactory);            
-            a.removeListener((INotifyChangedListener)this);
-   	        a.addListener((INotifyChangedListener)this);
-            list.add(attributeUse);
-          }
-          else
-          {
-            XSDAbstractAdapter a = (XSDAbstractAdapter)xsdModelAdapterFactory.adapt(attribute, xsdModelAdapterFactory);            
-            a.removeListener((INotifyChangedListener)this);
-   	        a.addListener((INotifyChangedListener)this);
-            list.add(attribute);
-          }
-        }
-      }
-    }
-    return list.toArray();
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-   */
-  public Object getParent(Object element)
-  {
-    return null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-   */
-  public boolean hasChildren(Object element)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
-   */
-  public Image getColumnImage(Object element, int columnIndex)
-  {
-    if (element instanceof XSDConcreteComponent)
-    {
-	    return adapterFactoryLabelProvider.getImage((XSDConcreteComponent)element);
-    }
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
-   */
-  public String getColumnText(Object element, int columnIndex)
-  {
-    if (element instanceof XSDConcreteComponent)
-    {
-	    XSDAbstractAdapter a = (XSDAbstractAdapter)xsdModelAdapterFactory.adapt((XSDConcreteComponent)element, xsdModelAdapterFactory);
-	    return a.getText((XSDConcreteComponent)element);
-    }
-    return ""; 
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-   */
-  public Image getImage(Object element)
-  {
-    if (element instanceof XSDConcreteComponent)
-    {
-	    return adapterFactoryLabelProvider.getImage((XSDConcreteComponent)element);
-    }
-    return null;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-   */
-  public String getText(Object element)
-  {
-    if (element instanceof XSDConcreteComponent)
-    {
-	    XSDAbstractAdapter a = (XSDAbstractAdapter)xsdModelAdapterFactory.adapt((XSDConcreteComponent)element, xsdModelAdapterFactory);
-	    return a.getText((XSDConcreteComponent)element);
-    }
-    return ""; 
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-   */
-  public Object[] getElements(Object inputElement)
-  {
-    return getChildren(inputElement);
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
-   */
-  public void dispose()
-  {
-    if (elementAdapter != null)
-    {
-      elementAdapter.removeListener(this);
-    }
-    if (ctAdapter != null)
-    {
-      ctAdapter.removeListener((INotifyChangedListener)this);
-    }
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-   */
-  Viewer viewer;
-  public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-  {
-//    System.out.println("input changed " + oldInput + "\n" + newInput);
-    this.viewer = viewer;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
-   */
-  public void addListener(ILabelProviderListener listener)
-  {
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
-   */
-  public boolean isLabelProperty(Object element, String property)
-  {
-    return false;
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
-   */
-  public void removeListener(ILabelProviderListener listener)
-  {
-  }
-
-  public void notifyChanged(Notification notification)
-  {
-    if (attributesViewer != null && !attributesViewer.getControl().isDisposed())
-    {
-      if (attributesViewer instanceof StructuredViewer)
-      {
-        attributesViewer.refresh();
-      }
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AttributesViewSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AttributesViewSection.java
deleted file mode 100644
index 8b79242..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AttributesViewSection.java
+++ /dev/null
@@ -1,460 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.INotifyChangedListener;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.PropertySheetPage;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.XSDMenuListener;
-import org.eclipse.wst.xsd.ui.internal.actions.AddAttributeAction;
-import org.eclipse.wst.xsd.ui.internal.actions.CreateAttributeAndRequired;
-import org.eclipse.wst.xsd.ui.internal.actions.DOMAttribute;
-import org.eclipse.wst.xsd.ui.internal.actions.DeleteAction;
-import org.eclipse.wst.xsd.ui.internal.properties.XSDPropertySourceProvider;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class AttributesViewSection extends AbstractSection implements ISelectionChangedListener
-{
-  AttributeTableTreeViewer viewer;
-  AttributesPropertySheetPage propertySheetPage;
-
-  /**
-   * 
-   */
-  public AttributesViewSection()
-  {
-    super();
-  }
-
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent,	TabbedPropertySheetWidgetFactory factory) {
-		super.createControls(parent, factory);
-		
-		composite =	getWidgetFactory().createFlatFormComposite(parent);
-    SashForm sashForm = new SashForm(composite, SWT.HORIZONTAL);
-
-    FormData data = new FormData();
-    data.top = new FormAttachment(0, 0);
-    data.left = new FormAttachment(0, 0);
-    data.right = new FormAttachment(100, 0);
-    data.bottom = new FormAttachment(100, 0);
-    sashForm.setLayoutData(data);
-    
-    viewer = new AttributeTableTreeViewer(sashForm);
-    propertySheetPage = new AttributesPropertySheetPage();
-    propertySheetPage.createControl(sashForm);
-
-		AttributesViewContentProvider provider = new AttributesViewContentProvider(getActiveEditor(), viewer); 
-		viewer.setContentProvider(provider);
-
-		viewer.setLabelProvider(provider);
-		viewer.addSelectionChangedListener(this);
-
-    propertySheetPage.setPropertySourceProvider(new XSDPropertySourceProvider());
-	}
-
-  public void setInput(IWorkbenchPart part, ISelection selection)
-  {
-    super.setInput(part, selection);
-    if (input instanceof XSDElementDeclaration)
-    {
-      XSDElementDeclaration elementDeclaration = (XSDElementDeclaration)input;
-      if (elementDeclaration.isElementDeclarationReference())
-      {
-        input = elementDeclaration.getResolvedElementDeclaration();
-        
-        isReadOnly = (!(elementDeclaration.getResolvedElementDeclaration().getRootContainer() == xsdSchema));
-      }
-    }
-  }
-  
-	public void selectionChanged(SelectionChangedEvent event)
-	{
-	  propertySheetPage.selectionChanged(part, event.getSelection());
-	}
-	
-	public void selectionChanged(IWorkbenchPart part, ISelection selection)
-	{
-	}
-
-  public void aboutToBeShown()
-  {
-		refresh();
-  }
-	
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh()
-	{
-    if (isReadOnly)
-    {
-      composite.setEnabled(false);
-    }
-    else
-    {
-      composite.setEnabled(true);
-    }
-    setListenerEnabled(false);
-	  if (viewer != null)
-	  {
-      viewer.setInput(getInput());
-      viewer.refresh();
-	  }
-    setListenerEnabled(true);
-	}
-	
-  public void dispose()
-  {
-//    if (propertySheetPage != null)
-//    {
-//      propertySheetPage.dispose();
-//      propertySheetPage = null;
-//    }
-//    if (viewer != null)
-//    {
-//      viewer = null;
-//    }
-  }
-
-  public boolean shouldUseExtraSpace()
-  {
-    return true;
-  }
-
-	
-	class AttributeTableTreeViewer extends TreeViewer // ExtendedTableTreeViewer
-	{
-	  public AttributeTableTreeViewer(Composite c)
-	  {
-	    super(c);
-	    
-	    MenuManager menuManager = new MenuManager("#popup");//$NON-NLS-1$
-	    menuManager.setRemoveAllWhenShown(true);
-	    Menu menu = menuManager.createContextMenu(getTree());
-	    getTree().setMenu(menu);
-
-	    XSDAttributeMenuListener menuListener = new XSDAttributeMenuListener(this);
-	    menuManager.addMenuListener(menuListener);
-
-	  }
-	  
-	  public class XSDAttributeMenuListener extends XSDMenuListener
-	  {
-	    public XSDAttributeMenuListener(TreeViewer viewer)
-	    {
-	      super(viewer);
-        selectionProvider = viewer;
-       
-	      deleteAction = new DeleteAction(XSDEditorPlugin.getXSDString("_UI_ACTION_DELETE"), AttributesViewSection.this.getActiveEditor(), getXSDSchema());
-        deleteAction.setSelectionProvider(selectionProvider);
-        selectionProvider.addSelectionChangedListener(deleteAction);
-	    }
-	    
-	    protected XSDSchema getXSDSchema()
-	    {
-        return xsdSchema;
-//        return getSchema();
-//	      XSDConcreteComponent xsdInput = (XSDConcreteComponent)AttributesViewSection.this.getInput();
-//	      return xsdInput.getSchema();
-	    }
-	    
-	    protected Object getSelectedElement()
-	    {
-        XSDComponent xsdInput = (XSDComponent)AttributesViewSection.this.getInput();
-        
-        if (xsdInput instanceof XSDElementDeclaration)
-        {
-          XSDElementDeclaration xsdElement = (XSDElementDeclaration)xsdInput;
-          XSDTypeDefinition xsdType = xsdElement.getType();
-          if (xsdType instanceof XSDComplexTypeDefinition)
-          {
-            XSDComplexTypeDefinition ct = (XSDComplexTypeDefinition)xsdType;
-            return ct;
-          }
-          return xsdElement;
-        }
-        else if (xsdInput instanceof XSDComplexTypeDefinition)
-        {
-          return xsdInput;
-        }
-
-        return null;
-	    }
-      
-      public void menuAboutToShow(IMenuManager manager)
-      {
-        updateXSDSchema();
-        if (xsdSchema == null)
-        {
-          return;
-        }
-
-        Object selectedElementObj = getSelectedElement();
-        
-        Element selectedElement = null;
-
-        if (selectedElementObj instanceof XSDComplexTypeDefinition)
-        {
-          selectedElement = ((XSDComplexTypeDefinition)selectedElementObj).getElement();
-        }
-        
-        addContextItems(manager, selectedElement, null);
-
-        if (!selectionProvider.getSelection().isEmpty())
-        {
-          // Add context menu items for selected element
-//          addContextItems(manager, selectedElement, null);
-          
-          manager.add(new Separator());
-          if (deleteAction != null)
-          {
-            deleteAction.setXSDSchema(getXSDSchema());
-            manager.add(deleteAction);
-          }
-        }
-      }
-	    
-	    protected void addContextItems(IMenuManager manager, Element parent, Node relativeNode)
-	    {
-	      ArrayList attributes = null;
-	      if (XSDDOMHelper.inputEquals(parent, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, false))
-	      { //
-	        boolean annotationExists = false;
-	        boolean contentExists = false;
-	        boolean complexOrSimpleContentExists = false;
-	        boolean anyAttributeExists = false;
-	        Node annotationNode = null;
-	        Element contentNode = null;
-	        Node anyAttributeNode = null;
-	        NodeList children = parent.getChildNodes();
-	        
-	        for (int i=0; i < children.getLength(); i++)
-	        {
-	          Node child = children.item(i);
-	          if (child != null && child instanceof Element)
-	          {
-	            if (XSDDOMHelper.inputEquals((Element)child, XSDConstants.ANNOTATION_ELEMENT_TAG, false))
-	            {
-	              annotationNode = child;
-	              annotationExists = true;
-	            }
-	            else if (XSDDOMHelper.inputEquals((Element)child, XSDConstants.SEQUENCE_ELEMENT_TAG, false) ||
-	                     XSDDOMHelper.inputEquals((Element)child, XSDConstants.ALL_ELEMENT_TAG, false) ||
-	                     XSDDOMHelper.inputEquals((Element)child, XSDConstants.CHOICE_ELEMENT_TAG, false) ||
-	                     XSDDOMHelper.inputEquals((Element)child, XSDConstants.GROUP_ELEMENT_TAG, true) ||
-	                     XSDDOMHelper.inputEquals((Element)child, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false) ||
-	                     XSDDOMHelper.inputEquals((Element)child, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
-	            {
-	              contentExists = true;
-	              contentNode = (Element)child;
-
-	              if (XSDDOMHelper.inputEquals((Element)child, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false) ||
-	                  XSDDOMHelper.inputEquals((Element)child, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
-	              {
-	                complexOrSimpleContentExists = true;
-	              }
-	            } 
-	            else if (XSDDOMHelper.inputEquals((Element)child, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, false))
-	            {
-	              anyAttributeExists = true;
-	              anyAttributeNode = child;
-	            }
-	          }
-	        }
-//	        addCreateAnnotationActionIfNotExist(manager, XSDConstants.ANNOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANNOTATION"), attributes, parent, parent.getFirstChild());
-//	        manager.add(new Separator());
-//	        addSetBaseTypeAction(manager, parent);
-//	        if (annotationExists)
-//	        {
-//	          if (!contentExists)
-//	          {
-//	            addCreateElementAction(manager, XSDConstants.SEQUENCE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_CONTENT_MODEL"), attributes, parent, annotationNode.getNextSibling());
-//	            addCreateSimpleContentAction(manager, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_SIMPLE_CONTENT"), attributes, parent, annotationNode.getNextSibling());
-//	            addCreateSimpleContentAction(manager, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_COMPLEX_CONTENT"), attributes, parent, annotationNode.getNextSibling());
-//	            addCreateElementRefAction(manager, XSDConstants.GROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ADD_GROUP_REF"), parent, annotationNode.getNextSibling());
-//	            attributes = null;
-//	          }
-//	        }
-//	        else
-//	        {
-//	          if (!contentExists)
-//	          {
-//	            addCreateElementAction(manager, XSDConstants.SEQUENCE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_CONTENT_MODEL"), attributes, parent, parent.getFirstChild());
-//	            addCreateSimpleContentAction(manager, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_SIMPLE_CONTENT"), attributes, parent, parent.getFirstChild());
-//	            addCreateSimpleContentAction(manager, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_COMPLEX_CONTENT"), attributes, parent, parent.getFirstChild());
-//	            addCreateElementRefAction(manager, XSDConstants.GROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ADD_GROUP_REF"), parent, parent.getFirstChild());
-//	            attributes = null;
-//	          }
-//	        }
-//
-//	        manager.add(new Separator());
-
-	        if (anyAttributeExists)
-	        {
-	          if (!complexOrSimpleContentExists)
-	          {
-	            attributes = new ArrayList();
-	            attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE,
-	                                            getNewName(parent, XSDConstants.ATTRIBUTE_ELEMENT_TAG, "Attribute", false)));
-	            attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-	            addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE"), attributes, parent, anyAttributeNode);
-	            attributes = null;
-//	   ARE ATTRIBUTE GROUPS ALLOWED ?
-//	            addCreateElementAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, "_UI_ACTION_ADD_ATTRIBUTE_GROUP", attributes, parent, anyAttributeNode);
-	            addCreateElementRefAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_REFERENCE"), parent, anyAttributeNode);
-	            addCreateElementRefAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF"), parent, anyAttributeNode);
-	          }
-	        }
-	        else
-	        {
-	          if (!complexOrSimpleContentExists)
-	          {
-	            attributes = new ArrayList();
-	            attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE,
-	                                            getNewName(parent, XSDConstants.ATTRIBUTE_ELEMENT_TAG, "Attribute", false)));
-	            attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-	            addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE"), attributes, parent, parent.getLastChild());
-	            attributes = null;
-	            addCreateElementRefAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_REFERENCE"), parent, parent.getLastChild());
-	            addCreateElementRefAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF"), parent, parent.getLastChild());
-	            attributes = null;
-	            addCreateElementActionIfNotExist(manager, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANY_ATTRIBUTE"), attributes, parent, parent.getLastChild());
-	          }
-            else
-            {
-              // new model based add attribute action
-              XSDComplexTypeDefinition xsdCT = (XSDComplexTypeDefinition)getXSDSchema().getCorrespondingComponent(parent);
-              manager.add(new AddAttributeAction(XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE"), xsdCT));
-
-              Element derivedByElement = domHelper.getDerivedByElement(contentNode);
-              if (derivedByElement != null)
-              {
-                attributes = null;
-                addCreateElementRefAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_REFERENCE"), derivedByElement, derivedByElement.getLastChild());
-                addCreateElementRefAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF"), derivedByElement, derivedByElement.getLastChild());
-                attributes = null;
-                addCreateElementActionIfNotExist(manager, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANY_ATTRIBUTE"), attributes, derivedByElement, derivedByElement.getLastChild());
-              }
-            }
-	        }
-	      }
-	      else if (parent == null) {	      
-	      	XSDElementDeclaration ed = (XSDElementDeclaration)input;      
-	      	if (ed.getTypeDefinition() != null) 
-	      	{
-	      		XSDComplexTypeDefinition td = XSDFactory.eINSTANCE.createXSDComplexTypeDefinition();
-	      	}
-	      
-	      	// Add Attribute
-	      	attributes = new ArrayList();
-	      	attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE,
-                                          getNewName(parent, XSDConstants.ATTRIBUTE_ELEMENT_TAG, "Attribute", false)));
-	      	attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
-	      	manager.add(new CreateAttributeAndRequired(XSDConstants.ATTRIBUTE_ELEMENT_TAG,
-					   XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE"),
-					   attributes,
-					   getXSDSchema(),
-					   selectionProvider,
-					   ed));
-	      	
-	      	// Add Attribute Reference
-	      	attributes = null;
-	      	attributes = new ArrayList();
-	        String ref = getFirstGlobalElementTagName(XSDConstants.ATTRIBUTE_ELEMENT_TAG);
-	        attributes.add(new DOMAttribute(XSDConstants.REF_ATTRIBUTE, ref));
-	      
-	        Action action = new CreateAttributeAndRequired(XSDConstants.ATTRIBUTE_ELEMENT_TAG,
-					   XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_REFERENCE"),
-					   attributes,
-					   getXSDSchema(),
-					   selectionProvider,
-					   ed);
-	        manager.add(action);
-	        action.setEnabled(ref != null);
-
-	        // Add Attribute Group Reference
-	        attributes = null;
-	      	attributes = new ArrayList();
-	        ref = getFirstGlobalElementTagName(XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG);
-	        attributes.add(new DOMAttribute(XSDConstants.REF_ATTRIBUTE, ref));
-	        
-	        action = new CreateAttributeAndRequired(XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG,
-					   XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF"),
-					   attributes,
-					   getXSDSchema(),
-					   selectionProvider,
-					   ed);
-
-	      	manager.add(action);
-	      	action.setEnabled(ref != null);
-	      	
-	      	// Add Any Attribute
-	      	attributes = null;
-	      	if (getFirstChildNodeIfExists(parent, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, false) == null)
-	        {
-	      		action = new CreateAttributeAndRequired(XSDConstants.ANYATTRIBUTE_ELEMENT_TAG,
-						   XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ANY_ATTRIBUTE"),
-						   attributes,
-						   getXSDSchema(),
-						   selectionProvider,
-						   ed);
-	      		manager.add(action);
-	         }
-	      }
-	    }
-	  }
-	}
-	
-	class AttributesPropertySheetPage extends PropertySheetPage implements INotifyChangedListener
-	{
-	  public AttributesPropertySheetPage()
-	  {
-	    super();
-	  }
-	  
-	  public void notifyChanged(Notification notification)
-	  {
-	    System.out.println("Notification");
-	  }
-	}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AttributesViewSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AttributesViewSectionDescriptor.java
deleted file mode 100644
index 51f233c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/AttributesViewSectionDescriptor.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-
-public class AttributesViewSectionDescriptor extends AbstractSectionDescriptor
-{
-  /**
-   * 
-   */
-  public AttributesViewSectionDescriptor()
-  {
-    super();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getId()
-   */
-  public String getId()
-  {
-    return "com.ibm.xsdeditor.section.attributes";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-   */
-  public List getInputTypes()
-  {
-    List list = new ArrayList();
-    list.add(XSDElementDeclaration.class);
-    return list;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-   */
-  public ISection getSectionClass()
-  {
-    return new AttributesViewSection();
-  }
-
-  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-  {
-    Object object = null;
-    if (selection instanceof StructuredSelection)
-    {
-      StructuredSelection structuredSelection = (StructuredSelection)selection;
-      object = structuredSelection.getFirstElement();
-      if (object instanceof XSDElementDeclaration)
-      {
-// Remove this to fix bug 3870 Element references should have the same properties as elements 
-//        XSDElementDeclaration elementDeclaration = (XSDElementDeclaration)object;
-//        if (elementDeclaration.isElementDeclarationReference())
-//        {
-//          return false;
-//        }
-        return true;
-      }
-      else if (object instanceof XSDComplexTypeDefinition)
-      {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-   */
-  public String getTargetTab()
-  {
-    return "com.ibm.xmlwebservices.attributes";
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getAfterSection()
-   */
-  public String getAfterSection()
-  {
-    return "";
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ComplexTypeSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ComplexTypeSection.java
deleted file mode 100644
index 4de57c5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ComplexTypeSection.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.common.ui.properties.ITabbedPropertyConstants;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.actions.SetBaseTypeAction;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class ComplexTypeSection extends AbstractSection
-{
-  private String DERIVED_BY_ID = "derived by"; // XSDEditorPlugin.getXSDString("_UI_LABEL_DERIVED_BY"); //$NON-NLS-1$ 
-  private String BASE_TYPE_ID = "base type"; //  XSDEditorPlugin.getXSDString("_UI_LABEL_BASE_TYPE"); //$NON-NLS-1$
-  private String derivedByChoicesComboValues[] =
-  {
-        "",
-        XSDConstants.RESTRICTION_ELEMENT_TAG,
-        XSDConstants.EXTENSION_ELEMENT_TAG
-  };
-
-  /**
-   * 
-   */
-  public ComplexTypeSection()
-  {
-    super();
-  }
-
-	Text baseTypeCombo;
-	CCombo derivedByCombo;
-	Button button;
-
-	/**
-	 * A helper to listen for events that indicate that a text
-	 * field has been changed.
-	 */
-	private TextChangeHelper listener = new TextChangeHelper()
-	{
-		public void textChanged(Control control)
-		{
-			Object input = getInput();
-			refresh();
-		}
-	};
-
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-	{
-		super.createControls(parent, factory);
-		composite =	getWidgetFactory().createFlatFormComposite(parent);
-		FormData data;
-
-		baseTypeCombo = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-		CLabel baseTypeLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_BASE_TYPE_WITH_COLON")); //$NON-NLS-1$ 
-
-    button = getWidgetFactory().createButton(composite, "", SWT.PUSH);
-    button.setImage(XSDEditorPlugin.getXSDImage("icons/browsebutton.gif")); //$NON-NLS-1$
-    baseTypeCombo.setEditable(false);
-    baseTypeCombo.addListener(SWT.Modify, this);
-
-		data = new FormData();
-		data.left = new FormAttachment(0, 100);
-    data.right = new FormAttachment(button, 0);
-		baseTypeCombo.setLayoutData(data);
-
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(baseTypeCombo, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(button, 0, SWT.CENTER);
-		baseTypeLabel.setLayoutData(data);
-
-    button.addSelectionListener(this);
-		data = new FormData();
-    data.left = new FormAttachment(100, -rightMarginSpace + 2);
-		data.right = new FormAttachment(100,0);
-    data.top = new FormAttachment(baseTypeCombo, 0, SWT.CENTER);
-		button.setLayoutData(data);
-		
-		derivedByCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-		data = new FormData();
-		data.left = new FormAttachment(0, 100);
-		data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(baseTypeCombo, +ITabbedPropertyConstants.VSPACE);
-		derivedByCombo.setLayoutData(data);
-		derivedByCombo.setItems(derivedByChoicesComboValues);
-		derivedByCombo.addSelectionListener(this);
-
-		CLabel derivedByLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_DERIVED_BY")); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(derivedByCombo, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(derivedByCombo, 0, SWT.CENTER);
-		derivedByLabel.setLayoutData(data);
-	}
-
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh()
-	{
-	  setListenerEnabled(false);
-    
-    if (isReadOnly)
-    {
-      composite.setEnabled(false);
-    }
-    else
-    {
-      composite.setEnabled(true);
-    }
-
-	  Object input = getInput();
-	  baseTypeCombo.setText(""); //$NON-NLS-1$
-	  
-    if (input instanceof XSDComplexTypeDefinition)
-    {
-      XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition)input;
-      Element element = complexType.getElement();
-      Element contentModelElement = getDomHelper().getContentModelFromParent(element);    
-      String baseType = getDomHelper().getBaseType(contentModelElement);
-    
-      derivedByCombo.setText(getDomHelper().getDerivedByName(contentModelElement));
-
-      if (baseType != null)
-      {
-        baseTypeCombo.setText(baseType);
-      }
-    }	  
-	  
-	  setListenerEnabled(true);
-	}
-	
-  /**
-   * @see org.eclipse.swt.events.SelectionListener#widgetSelected(SelectionEvent)
-   */
-  public void widgetSelected(SelectionEvent e)
-  {
-    XSDComplexTypeDefinition xsdComplexType = (XSDComplexTypeDefinition)getInput();
-    Element ctElement = xsdComplexType.getElement();
-    if (e.widget == button)
-    {
-	    Shell shell = Display.getCurrent().getActiveShell();
-	    Element element = null;
-	    if (xsdComplexType.getContent() != null)
-	    {
-  	    element = ((XSDComplexTypeDefinition)getInput()).getContent().getElement();
-	    }
-	    
-	    SimpleContentBaseTypeOptionsDialog dialog = new SimpleContentBaseTypeOptionsDialog(shell, element, BASE_TYPE_ID, ((XSDConcreteComponent)getInput()).getSchema());
-
-	    dialog.setBlockOnOpen(true);
-	    dialog.create();
-	    
-	    int result = dialog.open();
-   
-	    if (result == Window.OK)
-	    {
-	      String typeString = dialog.getType();
-	     
-        String derivedBy = getDomHelper().getDerivedByName(element);
-        SetBaseTypeAction setBaseTypeAction = new SetBaseTypeAction(XSDEditorPlugin.getXSDString("_UI_LABEL_SET_BASE_TYPE")); //$NON-NLS-1$
-        setBaseTypeAction.setXSDSchema(xsdSchema);
-        setBaseTypeAction.setComplexTypeElement(ctElement);
-        setBaseTypeAction.setType(typeString);
-        setBaseTypeAction.setDerivedBy(derivedBy);
-        setBaseTypeAction.performAction();
-	      
-	    }
-
-      refresh();
-    }
-    else if (e.widget == derivedByCombo)
-    {
-      Element contentModelElement = getDomHelper().getContentModelFromParent(ctElement);
-      String baseType = getDomHelper().getBaseType(contentModelElement);
-      beginRecording(XSDEditorPlugin.getXSDString("_UI_DERIVEDBY_CHANGE"), ctElement); //$NON-NLS-1$
-      Element derivedByElem = getDomHelper().getDerivedByElement(ctElement);
-      if (contentModelElement != null)
-      {
-        getDomHelper().changeDerivedByType(contentModelElement, derivedByCombo.getText(), baseType);
-      }
-      endRecording(ctElement);
-    }
-  }
-
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISection#shouldUseExtraSpace()
-   */
-  public boolean shouldUseExtraSpace()
-  {
-    return false;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ComplexTypeSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ComplexTypeSectionDescriptor.java
deleted file mode 100644
index c71d770..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ComplexTypeSectionDescriptor.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-
-public class ComplexTypeSectionDescriptor extends AbstractSectionDescriptor
-{
-  /**
-   * 
-   */
-  public ComplexTypeSectionDescriptor()
-  {
-    super();
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-   */
-  public List getInputTypes()
-  {
-    List list = new ArrayList();
-    list.add(XSDComplexTypeDefinition.class);
-    return list;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-   */
-  public ISection getSectionClass()
-  {
-    return new ComplexTypeSection();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-   */
-  public String getTargetTab()
-  {
-    return "com.ibm.xmlwebservices.general";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-  {
-    Object object = null;
-    if (selection instanceof StructuredSelection)
-    {
-      StructuredSelection structuredSelection = (StructuredSelection)selection;
-      object = structuredSelection.getFirstElement();
-      if (object instanceof XSDComplexTypeDefinition)
-      {
-        return true;
-      }
-    }
-    return false;
-  }
-  
-  public String getAfterSection()
-  {
-    return "com.ibm.xsdeditor.section.name";
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/EnumerationsSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/EnumerationsSection.java
deleted file mode 100644
index d2dd2db..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/EnumerationsSection.java
+++ /dev/null
@@ -1,434 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.common.ui.viewers.NavigableTableViewer;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.actions.AddEnumsAction;
-import org.eclipse.wst.xsd.ui.internal.actions.DOMAttribute;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDEnumerationFacet;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDVariety;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class EnumerationsSection extends AbstractSection
-{
-  private EnumerationsTableViewer enumerationsTable;
-  private Button addButton;
-  private Button addManyButton;
-  private Button deleteButton;
-  
-  /**
-   * 
-   */
-  public EnumerationsSection()
-  {
-    super();
-  }
-  
-  public void widgetSelected(SelectionEvent e)
-  {
-    XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)getInput();
-    Element element = st.getElement();
-    if (e.widget == addButton || e.widget == addManyButton)
-    {
-      XSDDOMHelper helper = new XSDDOMHelper();
-      
-      int variety = st.getVariety().getValue();
-      Node varietyElement = null;
-      if (variety == XSDVariety.ATOMIC)
-      {
-        varietyElement = helper.getChildNode(element, XSDConstants.RESTRICTION_ELEMENT_TAG);
-      }
-      else if (variety == XSDVariety.UNION)
-      {
-        varietyElement = helper.getChildNode(element, XSDConstants.UNION_ELEMENT_TAG);
-      }
-      else if (variety == XSDVariety.LIST)
-      {
-        varietyElement = helper.getChildNode(element, XSDConstants.LIST_ELEMENT_TAG);
-      }
-            
-      if (varietyElement != null)
-      {
-        if (e.widget == addButton)
-        {
-          java.util.List attributes = new ArrayList();
-          
-          List enumList = st.getEnumerationFacets();
-          StringBuffer newName = new StringBuffer("value1"); //$NON-NLS-1$
-          int suffix = 1;
-          for (Iterator i = enumList.iterator(); i.hasNext(); )
-          {
-            XSDEnumerationFacet enumFacet = (XSDEnumerationFacet)i.next();
-            String value = enumFacet.getLexicalValue();
-            if (value != null)
-            {
-              if (value.equals(newName.toString()))
-              {
-                suffix++;
-                newName = new StringBuffer("value" + String.valueOf(suffix)); //$NON-NLS-1$
-              }
-            }
-          }
-          attributes.add(new DOMAttribute(XSDConstants.VALUE_ATTRIBUTE, newName.toString()));
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ENUM"), element); //$NON-NLS-1$
-          Action action = getNewElementAction(XSDConstants.ENUMERATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ENUM"), attributes, (Element)varietyElement, null);
-          action.run();
-          st.setElement(element);
-
-          endRecording(element);
-          enumerationsTable.refresh();
-          int newItemIndex = enumerationsTable.getTable().getItemCount() - 1;
-          enumerationsTable.editElement(enumerationsTable.getElementAt(newItemIndex), 0);
-          attributes = null;
-        }
-        else if (e.widget == addManyButton)
-        {
-          AddEnumsAction action = new AddEnumsAction(XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ENUMS")); //$NON-NLS-1$
-          action.setElementTag(XSDConstants.ENUMERATION_ELEMENT_TAG);
-          action.setAttributes(null);
-          action.setParentNode((Element)varietyElement);
-          action.setRelativeNode(null);
-          action.setDescription(XSDEditorPlugin.getXSDString("_UI_ENUMERATIONS_DIALOG_TITLE")); //$NON-NLS-1$
-          action.run();
-          st.setElement(element);
-          enumerationsTable.refresh();
-        }
-      }
-    }
-    else if (e.widget == deleteButton)
-    {
-      StructuredSelection selection = (StructuredSelection)enumerationsTable.getSelection();
-      if (selection != null)
-      {
-        Iterator i = selection.iterator();
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_ACTION_DELETE_ENUMERATION"), element); //$NON-NLS-1$
-        while (i.hasNext())
-        {
-          Object obj = i.next();
-          if (obj != null)
-          {
-            if (obj instanceof XSDEnumerationFacet)
-            {
-              XSDEnumerationFacet enumFacet = (XSDEnumerationFacet)obj;
-    
-              // I have to update using DOM
-              XSDDOMHelper.removeNodeAndWhitespace(enumFacet.getElement());            
-              
-            }
-          }
-        }
-        enumerationsTable.refresh();
-        st.setElement(element);
-        endRecording(element);
-      }
-    }
-    else if (e.widget == enumerationsTable.getTable())
-    {
-      StructuredSelection selection = (StructuredSelection)enumerationsTable.getSelection();
-      if (selection.getFirstElement() != null)
-      {
-        deleteButton.setEnabled(true);
-      }
-      else
-      {
-        deleteButton.setEnabled(false);
-      }
-    }
-
-  }
-
-  public void widgetDefaultSelected(SelectionEvent e)
-  {
-    
-  }
-  
-  /**
-   * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-   */
-  public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-  {
-    super.createControls(parent, factory);
-
-    composite = getWidgetFactory().createFlatFormComposite(parent);
-    FormData data;
-    
-    GC gc = new GC(parent);
-    Point extent = gc.textExtent("  " + XSDEditorPlugin.getXSDString("_UI_ACTION_DELETE_INCLUDE") + "  "); //$NON-NLS-1$
-    gc.dispose();
-
-    enumerationsTable = new EnumerationsTableViewer(getWidgetFactory().createTable(composite, SWT.MULTI | SWT.FULL_SELECTION));
-    enumerationsTable.setInput(getInput());
-    Table table = enumerationsTable.getTable();
-    table.addSelectionListener(this);
-    
-    addButton = getWidgetFactory().createButton(composite, XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_ADD_BUTTON_LABEL"), SWT.PUSH); //$NON-NLS-1$
-    addManyButton = getWidgetFactory().createButton(composite, XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_ADD_BUTTON_LABEL") + "...", SWT.PUSH); //$NON-NLS-1$
-    deleteButton = getWidgetFactory().createButton(composite, XSDEditorPlugin.getXSDString("_UI_ACTION_DELETE_INCLUDE"), SWT.PUSH); //$NON-NLS-1$
-
-    FormData data2 = new FormData();
-    data2.top = new FormAttachment(0, 0);
-    data2.left = new FormAttachment(100, -100);
-    data2.right = new FormAttachment(100, 0);
-//    data2.width = 50;
-    addButton.setLayoutData(data2);
-    addButton.addSelectionListener(this);
-
-    data = new FormData();
-    data.left = new FormAttachment(addButton, 0, SWT.LEFT);
-    data.right = new FormAttachment(100, 0);
-    data.top = new FormAttachment(addButton, 0);
-    addManyButton.setLayoutData(data);
-    addManyButton.addSelectionListener(this);
-
-    data = new FormData();
-    data.left = new FormAttachment(addButton, 0, SWT.LEFT);
-    data.right = new FormAttachment(100, 0);
-    data.top = new FormAttachment(addManyButton, 0);
-    deleteButton.setLayoutData(data);
-    deleteButton.setEnabled(false);
-    deleteButton.addSelectionListener(this);
-
-    data = new FormData();
-    data.top = new FormAttachment(0, 0);
-    data.left = new FormAttachment(0, 0);
-    data.right = new FormAttachment(addButton, 0);
-    data.bottom = new FormAttachment(100, 0);
-    data.width = tableMinimumWidth;
-    table.setLayoutData(data);
-    table.addListener(SWT.Resize, this);
-  }
-  
-  /*
-   * @see org.eclipse.wst.common.ui.properties.view.ITabbedPropertySection#refresh()
-   */
-  public void refresh()
-  {
-    Object input = getInput();
-    if (isReadOnly)
-    {
-      composite.setEnabled(false);
-    }
-    else
-    {
-      composite.setEnabled(true);
-    }
-    XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)input;
-    Element element = st.getElement();
-    XSDDOMHelper helper = new XSDDOMHelper();
-    Node restrictionElement = helper.getChildNode(element, XSDConstants.RESTRICTION_ELEMENT_TAG);
-    
-    Iterator validFacets = st.getValidFacets().iterator();
-    
-    boolean isApplicable = false;
-    while (validFacets.hasNext())
-    {
-      String aValidFacet = (String)validFacets.next();
-      if (aValidFacet.equals(XSDConstants.ENUMERATION_ELEMENT_TAG))
-      {
-        isApplicable = true;
-      }
-    }
-    
-    if (isApplicable)  
-//    if (restrictionElement != null)
-    {
-      addButton.setEnabled(true);
-      addManyButton.setEnabled(true);
-    }
-    else
-    {
-      addButton.setEnabled(false);
-      addManyButton.setEnabled(false);
-    }
-    enumerationsTable.setInput(input);
-  }
-
-  public void handleEvent(Event event)
-  {
-    Table table = enumerationsTable.getTable();
-    if (event.type == SWT.Resize && event.widget == table)
-    {
-      TableColumn tableColumn = table.getColumn(0);
-      tableColumn.setWidth(table.getSize().x);
-    }
-  }
-  
-  public void dispose()
-  {
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISection#shouldUseExtraSpace()
-   */
-  public boolean shouldUseExtraSpace()
-  {
-    return true;
-  }
-
-  
-  class EnumerationsTableViewer extends NavigableTableViewer implements ICellModifier
-  {
-    protected String[] columnProperties = {XSDConstants.ENUMERATION_ELEMENT_TAG};
-
-    protected CellEditor[] cellEditors;
-
-    Table table;
-    
-    public EnumerationsTableViewer(Table table)
-    {
-      super(table);
-      table = getTable();
-
-      table.setLinesVisible(true);
-      
-      setContentProvider(new EnumerationsTableContentProvider());
-      setLabelProvider(new EnumerationsTableLabelProvider());
-      setColumnProperties(columnProperties);
-
-      setCellModifier(this);
-
-      TableColumn column = new TableColumn(table, SWT.NONE, 0);
-      column.setText(columnProperties[0]);
-      column.setAlignment(SWT.LEFT);
-      column.setResizable(true);
- 
-      cellEditors = new CellEditor[1];
-
-      TableLayout layout = new TableLayout();
-      ColumnWeightData data = new ColumnWeightData(100);
-
-      layout.addColumnData(data);
-      cellEditors[0] = new TextCellEditor(table);
-
-      getTable().setLayout(layout);
-      setCellEditors(cellEditors);
-    }
-    
-    public boolean canModify(Object element, String property)
-    {
-      return true;
-    }
-
-    public void modify(Object element, String property, Object value)
-    {
-      if (element instanceof TableItem && (value != null))
-      {
-        TableItem item = (TableItem)element;
-        
-        Element simpleTypeElement = ((XSDSimpleTypeDefinition)getInput()).getElement();
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_ENUM_VALUE_CHANGE"), simpleTypeElement); //$NON-NLS-1$
-        
-        XSDEnumerationFacet enumFacet = (XSDEnumerationFacet)item.getData();
-        enumFacet.setLexicalValue((String)value);
-        item.setData(enumFacet);
-        item.setText((String)value);
-        endRecording(simpleTypeElement);
-      }
-    }    
-
-    public Object getValue(Object element, String property)
-    {
-      if (element instanceof XSDEnumerationFacet)
-      {
-        XSDEnumerationFacet enumFacet = (XSDEnumerationFacet)element;
-        String value = enumFacet.getLexicalValue();
-        if (value == null) value = ""; //$NON-NLS-1$
-        return value;
-      }
-      return ""; //$NON-NLS-1$
-    }
-
-  }
-    
-  class EnumerationsTableContentProvider implements IStructuredContentProvider
-  {
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-    {
-    }
-
-    public java.lang.Object[] getElements(java.lang.Object inputElement)
-    {
-      java.util.List list = new ArrayList();
-      if (inputElement instanceof XSDSimpleTypeDefinition)
-      {
-        XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)inputElement;
-        return st.getEnumerationFacets().toArray();
-      }
-      return list.toArray();
-    }
-
-    public void dispose()
-    {
-    }
-  }
-
-  class EnumerationsTableLabelProvider extends LabelProvider implements ITableLabelProvider
-  {
-    public EnumerationsTableLabelProvider()
-    {
-      
-    }
-    
-    public Image getColumnImage(Object element, int columnIndex)
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDSimpleEnum.gif");
-    }
-    
-    public String getColumnText(Object element, int columnIndex)
-    {
-      if (element instanceof XSDEnumerationFacet)
-      {
-        XSDEnumerationFacet enumFacet = (XSDEnumerationFacet)element;
-        String value = enumFacet.getLexicalValue();
-        if (value == null) value = "";
-        return value;
-      }
-      return "";
-    }
-
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/EnumerationsSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/EnumerationsSectionDescriptor.java
deleted file mode 100644
index 2f8aa67..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/EnumerationsSectionDescriptor.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-
-
-public class EnumerationsSectionDescriptor extends AbstractSectionDescriptor
-{
-
-  /**
-   * 
-   */
-  public EnumerationsSectionDescriptor()
-  {
-    super();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getId()
-   */
-  public String getId()
-  {
-    return "com.ibm.xsdeditor.section.enumerations";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-   */
-  public List getInputTypes()
-  {
-    List list = new ArrayList();
-    list.add(XSDSimpleTypeDefinition.class);
-    return list;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-   */
-  public ISection getSectionClass()
-  {
-    return new EnumerationsSection();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-   */
-  public String getTargetTab()
-  {
-    return "com.ibm.xmlwebservices.enumerations";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-  {
-    Object object = null;
-    if (selection instanceof StructuredSelection)
-    {
-      StructuredSelection structuredSelection = (StructuredSelection)selection;
-      object = structuredSelection.getFirstElement();
-      if (object instanceof XSDSimpleTypeDefinition)
-      {
-        return true;
-        // return false;  // turn off this tab
-      }
-    }
-    return false;
-  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/FacetViewer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/FacetViewer.java
deleted file mode 100644
index 0ec654e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/FacetViewer.java
+++ /dev/null
@@ -1,498 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseTrackAdapter;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.wst.common.ui.WindowUtility;
-import org.eclipse.wst.common.ui.viewers.NavigableTableViewer;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.actions.DOMAttribute;
-import org.eclipse.wst.xsd.ui.internal.properties.XSDComboBoxPropertyDescriptor;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDConstrainingFacet;
-import org.eclipse.xsd.XSDMaxExclusiveFacet;
-import org.eclipse.xsd.XSDMaxFacet;
-import org.eclipse.xsd.XSDMaxInclusiveFacet;
-import org.eclipse.xsd.XSDMinExclusiveFacet;
-import org.eclipse.xsd.XSDMinFacet;
-import org.eclipse.xsd.XSDMinInclusiveFacet;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.impl.XSDFactoryImpl;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-
-public class FacetViewer extends NavigableTableViewer implements ICellModifier
-{
-  public static final String FACET_NAME = XSDEditorPlugin.getXSDString("_UI_FACET_NAME");  // "Name";
-  public static final String FACET_VALUE = XSDEditorPlugin.getXSDString("_UI_FACET_VALUE"); // "Value";
-  public static final String FACET_OTHER = XSDEditorPlugin.getXSDString("_UI_FACET_FIXED"); // "Fixed";
-
-  protected FacetsTableLabelProvider facetsTableLabelProvider = new FacetsTableLabelProvider();
-  protected FacetsTableContentProvider facetsTableContentProvider = new FacetsTableContentProvider();
-  protected String[] columnProperties = {FACET_NAME, FACET_VALUE, FACET_OTHER};
-  protected CellEditor[] cellEditors;    // these cellEditors are used when non-whitespace facet is selected
-  protected CellEditor[] altCellEditors; // these cellEditors are used when whitespace facet is selected
-  
-  protected String [] whiteSpaceValues = new String[] {"", "preserve", "replace", "collapse" };
-  protected String [] trueFalseValues = new String [] {"", "false", "true" }; 
-  protected FacetsSection facetsSection;
-  /**
-   * @param parent
-   */
-  public FacetViewer(Composite parent, FacetsSection facetsSection)
-  {
-    super(new Table(parent, SWT.FULL_SELECTION | SWT.SINGLE));
-    this.facetsSection = facetsSection;
-    
-    getTable().setLinesVisible(true);
-    getTable().setHeaderVisible(true);
-
-    addSelectionChangedListener(new SelectionChangedListener());
-    getTable().addMouseTrackListener(new MyMouseTrackListener());
-    
-    setContentProvider(facetsTableContentProvider);
-    setLabelProvider(facetsTableLabelProvider);
-    setColumnProperties(columnProperties);
-
-    setCellModifier(this);
-
-    for (int i = 0; i < 3; i++)
-    {
-      TableColumn column = new TableColumn(getTable(), SWT.NONE, i);
-      column.setText(columnProperties[i]);
-      column.setAlignment(SWT.LEFT);
-      column.setResizable(true);
-    }
-    
-    cellEditors = new CellEditor[3];
-    altCellEditors = new CellEditor[3];
-
-    TableLayout layout = new TableLayout();
-    ColumnWeightData data = new ColumnWeightData(60, 120, true);
-    layout.addColumnData(data);
-    cellEditors[0] = null;
-
-    ColumnWeightData data2 = new ColumnWeightData(120, 100, true);
-    layout.addColumnData(data2);
-
-    cellEditors[1] = new TextCellEditor(getTable());
-    XSDComboBoxPropertyDescriptor pd = new XSDComboBoxPropertyDescriptor("combo", "whitespace", whiteSpaceValues);
-    altCellEditors[1] = pd.createPropertyEditor(getTable());
-
-    ColumnWeightData data3 = new ColumnWeightData(60, 80, true);
-    layout.addColumnData(data3);
-
-    XSDComboBoxPropertyDescriptor pd2 = new XSDComboBoxPropertyDescriptor("combo", "other", trueFalseValues);
-    cellEditors[2] = pd2.createPropertyEditor(getTable());
-    altCellEditors[2] = pd2.createPropertyEditor(getTable());
-
-    getTable().setLayout(layout);
-    setCellEditors(cellEditors);
-
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object, java.lang.String)
-   */
-  public boolean canModify(Object element, String property)
-  {
-    return property.equals(FACET_VALUE) || property.equals(FACET_OTHER);
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object, java.lang.String)
-   */
-  public Object getValue(Object element, String property)
-  {
-    int column = 0;
-    if (property.equals(columnProperties[0]))
-    {
-      column = 0;
-    }
-    else if (property.equals(columnProperties[1]))
-    {
-      column = 1;
-    }
-    else if (property.equals(columnProperties[2]))
-    {
-      column = 2;
-    }
-
-    return facetsTableLabelProvider.getColumnText(element, column);
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object, java.lang.String, java.lang.Object)
-   */
-  public void modify(Object element, String property, Object value)
-  {
-    XSDSimpleTypeDefinition xsdSimpleType = (XSDSimpleTypeDefinition)getInput();
-    TableItem item = (TableItem)element;
-    if (item != null)
-    {
-      Object o = item.getData();
-      if (o != null)
-      {
-        if (o instanceof String)
-        {
-          String facet = (String)o;
-         
-          Element simpleTypeElement = xsdSimpleType.getElement();
-          XSDDOMHelper xsdDOMHelper = new XSDDOMHelper();
-          Element derivedByElement = xsdDOMHelper.getDerivedByElement(simpleTypeElement);
-
-          facetsSection.beginRecording(XSDEditorPlugin.getXSDString("_UI_FACET_CHANGE"), simpleTypeElement);
-
-          String prefix = simpleTypeElement.getPrefix();
-          prefix = (prefix == null) ? "" : (prefix + ":");
-          
-          Element childNodeElement = null;
-          DOMAttribute valueAttr = null;
-
-          XSDConstrainingFacet targetFacet = getXSDConstrainingFacet(facet);
-
-          String newValue = "";
-          if (value != null && value instanceof String)
-          {
-            newValue = (String)value;
-          }
-          
-          if (property.equals(columnProperties[1]))
-          {
-            if (targetFacet == null && newValue.length() > 0)
-            {
-              targetFacet = createFacet(facet);
-              childNodeElement = (derivedByElement.getOwnerDocument()).createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, prefix + facet);
-              valueAttr = new DOMAttribute(XSDConstants.VALUE_ATTRIBUTE, newValue);
-              childNodeElement.setAttribute(valueAttr.getName(), valueAttr.getValue());
-              // add and format child
-              derivedByElement.appendChild(childNodeElement);
-              targetFacet.setElement(childNodeElement);
-              XSDDOMHelper.formatChild(childNodeElement);
-
-//              XSDSchemaHelper.updateElement(xsdSimpleType);
-            }
-            if (targetFacet == null)
-            {
-              facetsSection.endRecording(simpleTypeElement);
-              return;
-            }
-
-            if (newValue.length() > 0)
-            {            
-              targetFacet.setLexicalValue(newValue);
-              
-              if (targetFacet instanceof XSDMaxFacet || targetFacet instanceof XSDMinFacet)
-              {
-                Element elementFacet = targetFacet.getElement();
-
-                if (targetFacet instanceof XSDMaxFacet)
-                {
-                  if (targetFacet instanceof XSDMaxExclusiveFacet)
-                  {
-                    XSDMaxInclusiveFacet xsdMaxInclusiveFacet = xsdSimpleType.getMaxInclusiveFacet();
-                    if (xsdMaxInclusiveFacet != null)
-                    {
-                      Element xsdMaxInclusiveFacetElement = xsdMaxInclusiveFacet.getElement();
-                      XSDDOMHelper.removeNodeAndWhitespace(xsdMaxInclusiveFacetElement);
-                    }
-                  }
-                  else if (targetFacet instanceof XSDMaxInclusiveFacet)
-                  {
-                    XSDMaxExclusiveFacet xsdMaxExclusiveFacet = xsdSimpleType.getMaxExclusiveFacet();
-                    if (xsdMaxExclusiveFacet != null)
-                    {
-                      Element xsdMaxExclusiveFacetElement = xsdMaxExclusiveFacet.getElement();
-                      XSDDOMHelper.removeNodeAndWhitespace(xsdMaxExclusiveFacetElement);
-                    }
-                  }
-                }
-                else if (targetFacet instanceof XSDMinFacet)
-                {
-                  if (targetFacet instanceof XSDMinExclusiveFacet)
-                  {
-                    XSDMinInclusiveFacet xsdMinInclusiveFacet = xsdSimpleType.getMinInclusiveFacet();
-                    if (xsdMinInclusiveFacet != null)
-                    {
-                      Element xsdMinInclusiveFacetElement = xsdMinInclusiveFacet.getElement();
-                      XSDDOMHelper.removeNodeAndWhitespace(xsdMinInclusiveFacetElement);
-                    }
-                  }
-                  else if (targetFacet instanceof XSDMinInclusiveFacet)
-                  {
-                    XSDMinExclusiveFacet xsdMinExclusiveFacet = xsdSimpleType.getMinExclusiveFacet();
-                    if (xsdMinExclusiveFacet != null)
-                    {
-                      Element xsdMinExclusiveFacetElement = xsdMinExclusiveFacet.getElement();
-                      XSDDOMHelper.removeNodeAndWhitespace(xsdMinExclusiveFacetElement);
-                    }
-                  }
-                }
-              }
-            }
-            else // newValue.length == 0
-            {
-              Element targetFacetElement = targetFacet.getElement();
-              XSDDOMHelper.removeNodeAndWhitespace(targetFacetElement);
-            }
-          }
-          else if (property.equals(columnProperties[2]))
-          {
-            if (targetFacet != null)
-            {
-              if (newValue.length() > 0)
-              {            
-                targetFacet.getElement().setAttribute(XSDConstants.FIXED_ATTRIBUTE, newValue);
-              }
-              else
-              {
-                targetFacet.getElement().removeAttribute(XSDConstants.FIXED_ATTRIBUTE);
-              }
-            }
-          }
-          xsdSimpleType.setElement(simpleTypeElement);
-          //xsdSimpleType.updateElement();
-          facetsSection.endRecording(simpleTypeElement);
-          refresh();
-        }
-      }
-    }
-  }
-
-  
-  private XSDConstrainingFacet getXSDConstrainingFacet(String facetString)
-  {
-    XSDSimpleTypeDefinition xsdSimpleType = (XSDSimpleTypeDefinition)getInput();
-    List list = xsdSimpleType.getFacetContents();
-    if (list == null)
-    {
-      return null;
-    }
-    Iterator iter = list.iterator();
-    XSDConstrainingFacet targetFacet = null;
-    
-    while (iter.hasNext())
-    {
-      XSDConstrainingFacet xsdConstrainingFacet = (XSDConstrainingFacet)iter.next();
-      if (xsdConstrainingFacet.getFacetName().equals(facetString))
-      {
-        targetFacet = xsdConstrainingFacet;
-        break;
-      }
-    }
-    return targetFacet;
-  }
-
-  private XSDConstrainingFacet createFacet(String facet)
-  {
-    XSDFactoryImpl factory = new XSDFactoryImpl();
-    XSDConstrainingFacet xsdFacet = null;
-    if (facet.equals("length")) { xsdFacet = factory.createXSDLengthFacet(); }
-    else if (facet.equals("minLength")) { xsdFacet = factory.createXSDMinLengthFacet(); }
-    else if (facet.equals("maxLength")) { xsdFacet = factory.createXSDMaxLengthFacet(); }
-
-    else if (facet.equals("minInclusive")) { xsdFacet = factory.createXSDMinInclusiveFacet(); }
-    else if (facet.equals("minExclusive")) { xsdFacet = factory.createXSDMinExclusiveFacet(); }
-
-    else if (facet.equals("maxInclusive")) { xsdFacet = factory.createXSDMaxInclusiveFacet(); }
-    else if (facet.equals("maxExclusive")) { xsdFacet = factory.createXSDMaxExclusiveFacet(); }
-
-    else if (facet.equals("totalDigits")) { xsdFacet = factory.createXSDTotalDigitsFacet(); }
-    else if (facet.equals("fractionDigits")) { xsdFacet = factory.createXSDFractionDigitsFacet(); }
-
-    else if (facet.equals("whiteSpace"))   { xsdFacet = factory.createXSDWhiteSpaceFacet(); }
-
-    return xsdFacet;
-  }
-
- /**
-  * Get the tooltip for the facet
-  */
-  public String getToolTip(String facet)
-  {
-    String key = "";
-    if (facet.equals("length")) { key = "_UI_TOOLTIP_LENGTH"; }
-    else if (facet.equals("minLength")) { key = "_UI_TOOLTIP_MIN_LEN"; }
-    else if (facet.equals("maxLength")) { key = "_UI_TOOLTIP_MAX_LEN"; }
-
-    else if (facet.equals("minInclusive")) { key = "_UI_TOOLTIP_MIN_INCLUSIVE"; }
-    else if (facet.equals("minExclusive")) { key = "_UI_TOOLTIP_MIN_EXCLUSIVE"; }
-
-    else if (facet.equals("maxInclusive")) { key = "_UI_TOOLTIP_MAX_INCLUSIVE"; }
-    else if (facet.equals("maxExclusive")) { key = "_UI_TOOLTIP_MAX_EXCLUSIVE"; }
-
-    else if (facet.equals("totalDigits"))   { key = "_UI_TOOLTIP_TOTAL_DIGITS"; }
-    else if (facet.equals("fractionDigits")) { key = "_UI_TOOLTIP_FRACTION_DIGITS"; }
-
-    else if (facet.equals("whiteSpace"))   { key = "_UI_TOOLTIP_WHITE_SPACE"; }
-
-    return (key != null) ? XSDEditorPlugin.getXSDString(key) : "";
-  }
-  
-  /**
-   * This listener detects which row is selected and add a tool tip for that row
-   */
-  public class MyMouseTrackListener extends MouseTrackAdapter
-  {
-    public void mouseHover(MouseEvent e)
-    {
-      TableItem item = getTable().getItem(new Point(e.x, e.y));
-      if (item != null)
-      {
-        Object o = item.getData();
-        if (o != null)
-        {
-          String facetName = (String)o;
-          getTable().setToolTipText(getToolTip(facetName));
-        }
-      }
-    }
-  }
-
-  /**
-   * Based on the selection, detects if it is a white space or not, and add the
-   * corresponding cell editors
-   */
-  public class SelectionChangedListener implements ISelectionChangedListener
-  {
-    public void selectionChanged(SelectionChangedEvent event)
-    {
-      Object o = WindowUtility.getSelection(event.getSelection());
-      if (o != null)
-      {
-        String facet = (String)o;
-        if (facet.equals("whiteSpace"))
-        {
-          setCellEditors(altCellEditors);
-        }
-        else
-        {
-          setCellEditors(cellEditors);
-        }
-      }
-    }
-  }
-
-  
-  class FacetsTableContentProvider implements IStructuredContentProvider
-  {
-    protected String facet;
-    
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-    {
-    }
-
-    public java.lang.Object[] getElements(java.lang.Object inputElement)
-    {
-      XSDDOMHelper xsdDomHelper = new XSDDOMHelper();
-
-      String facet = "";
-      Vector v = new Vector();
-      XSDSimpleTypeDefinition inputXSDSimpleType = (XSDSimpleTypeDefinition)inputElement;
-      XSDSimpleTypeDefinition base = inputXSDSimpleType.getBaseTypeDefinition();
-      
-      if (base != null)
-      {
-        Iterator validFacets = base.getValidFacets().iterator();
-        while (validFacets.hasNext())
-        {
-          String aValidFacet = (String)validFacets.next();
-          if (!(aValidFacet.equals("pattern") || aValidFacet.equals("enumeration")))
-          {
-            v.add(aValidFacet);
-          }
-        }
-      }
-      return v.toArray();
-    }
-
-    public void dispose()
-    {
-    }
-  }
-
-  class FacetsTableLabelProvider extends LabelProvider implements ITableLabelProvider
-  {
-    public Image getColumnImage(Object element, int columnIndex)
-    {
-      return null;
-    }
-    
-    public String getColumnText(Object element, int columnIndex)
-    {
-      if (element instanceof String)
-      {
-        String value = null;
-        XSDConstrainingFacet targetFacet = getXSDConstrainingFacet((String)element);
-        switch (columnIndex)
-        {
-          case 0:
-          {
-            value = (String)element;
-            break;
-          }
-          case 1:
-          {
-            if (targetFacet == null)
-            {
-              value = "";
-            }
-            else
-            {
-              value = targetFacet.getLexicalValue();
-            }
-
-            break;
-          }
-          case 2:
-          {
-            if (targetFacet == null)
-            {
-              value = "";
-            }
-            else
-            {
-              Element elem = targetFacet.getElement();
-              value = elem.getAttribute(XSDConstants.FIXED_ATTRIBUTE);
-              if (value == null) value = "";
-            }
-          }
-        }
-        return value; 
-      }
-      return "";
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/FacetsSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/FacetsSection.java
deleted file mode 100644
index e6a80ba..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/FacetsSection.java
+++ /dev/null
@@ -1,802 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.common.ui.viewers.NavigableTableViewer;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.actions.DOMAttribute;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.wst.xsd.ui.internal.wizards.RegexWizard;
-import org.eclipse.xsd.XSDPatternFacet;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDVariety;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class FacetsSection extends AbstractSection
-{
-  IWorkbenchPart part;
-  ISelection selection;
-  FacetViewer facetViewer;
-  
-  XSDWorkbook workbook;
-  FacetsWorkbookPage facetsWorkbookPage;
-// If you want to add the enumerations tab to this facets tab
-//  EnumsWorkbookPage enumsWorkbookPage;
-  PatternsWorkbookPage patternsWorkbookPage;
-
-  /**
-   * 
-   */
-  public FacetsSection()
-  {
-    super();
-  }
-  
-  /**
-   * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-   */
-  public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-  {
-    super.createControls(parent, factory);
-
-    workbook = new XSDWorkbook(parent, SWT.BOTTOM | SWT.FLAT);
-    
-    facetsWorkbookPage = new FacetsWorkbookPage(workbook, this);
-//    enumsWorkbookPage = new EnumsWorkbookPage(workbook);
-    patternsWorkbookPage = new PatternsWorkbookPage(workbook);
-    facetsWorkbookPage.activate();
-//    enumsWorkbookPage.activate();
-    patternsWorkbookPage.activate();
-    workbook.setSelectedPage(facetsWorkbookPage);
-  }
-  
-  public void selectionChanged(IWorkbenchPart part, ISelection selection)
-  {
-    this.part = part;
-    this.selection = selection;
-  }
-  
-
-  /*
-   * @see org.eclipse.wst.common.ui.properties.view.ITabbedPropertySection#refresh()
-   */
-  public void refresh()
-  {
-    Object input = getInput();
-    
-    if (isReadOnly)
-    {
-      facetViewer.getControl().getParent().setEnabled(false);      
-    }
-    else
-    {
-      facetViewer.getControl().getParent().setEnabled(true);
-    }
-
-    if (facetViewer != null)
-    {
-      facetViewer.setInput(input);
-    }
-    
-//    if (enumsWorkbookPage != null)
-//    {
-//      enumsWorkbookPage.setInput(input);
-//    }
-    
-    if (patternsWorkbookPage != null)
-    {
-      patternsWorkbookPage.setInput(input);
-    }
-  }
-
-  public void dispose()
-  {
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISection#shouldUseExtraSpace()
-   */
-  public boolean shouldUseExtraSpace()
-  {
-    return true;
-  }
-  
-
-  /* General Facets Page */
-  
-  class FacetsWorkbookPage extends XSDWorkbookPage
-  {
-    FacetsSection facetsSection;
-    Composite page1;
-    
-    public FacetsWorkbookPage(XSDWorkbook workbook, FacetsSection facetsSection)
-    {
-      super(workbook);
-      this.getTabItem().setText(XSDEditorPlugin.getXSDString("_UI_LABEL_FACETS")); //$NON-NLS-1$
-      this.facetsSection = facetsSection;
-    }
-
-    public Control createControl (Composite parent)
-    {
-      page1 = getWidgetFactory().createFlatFormComposite(parent);
-
-      FormData data = new FormData();
-      data.left = new FormAttachment(0, 0);
-      data.right = new FormAttachment(100, 0);
-      data.top = new FormAttachment(0, 0);
-      data.bottom = new FormAttachment(100, 0);
-      
-      facetViewer = new FacetViewer(page1, facetsSection);
-      facetViewer.setInput(getInput());
-      facetViewer.getControl().setLayoutData(data);
-                  
-      return page1;
-    }
-  }
-
-  /* Enumerations Page */
-  
-//  class EnumsWorkbookPage extends XSDWorkbookPage implements SelectionListener
-//  {
-//    EnumerationsTableViewer enumerationsTable;
-//    Button addButton;
-//    Button deleteButton;
-//    
-//    public EnumsWorkbookPage(XSDWorkbook workbook)
-//    {
-//      super(workbook);
-//      this.getTabItem().setText("Enumerations");
-//    }
-//
-//    public Control createControl (Composite parent)
-//    {
-//      Composite composite = getWidgetFactory().createFlatFormComposite(parent);
-//      FormData data;
-//      
-//      addButton = getWidgetFactory().createButton(composite, "Add", SWT.PUSH);
-//      deleteButton = getWidgetFactory().createButton(composite, "Delete", SWT.PUSH);
-//      enumerationsTable = new EnumerationsTableViewer(getWidgetFactory().createTable(composite, SWT.MULTI | SWT.FULL_SELECTION));
-//      
-//      enumerationsTable.setInput(getInput());
-//      Table table = enumerationsTable.getTable();
-//      table.addSelectionListener(this);
-//
-//      data = new FormData();
-//      data.left = new FormAttachment(deleteButton, 0, SWT.LEFT);
-//      data.right = new FormAttachment(100, 0);
-//      data.top = new FormAttachment(0, 0);
-//      data.bottom = new FormAttachment(deleteButton, 0); //-ITabbedPropertyConstants.VSPACE);
-//      addButton.setLayoutData(data);
-//      addButton.addSelectionListener(this);
-//      
-//      data = new FormData();
-//      data.left = new FormAttachment(table, +ITabbedPropertyConstants.HSPACE);
-//      data.right = new FormAttachment(100, 0);
-//      data.top = new FormAttachment(addButton, 0);
-////      data.bottom = new FormAttachment(deleteButton, +ITabbedPropertyConstants.VSPACE);
-//      deleteButton.setLayoutData(data);
-//      deleteButton.setEnabled(false);
-//      deleteButton.addSelectionListener(this);
-//      
-//      data = new FormData();
-//      data.left = new FormAttachment(0, 0);
-//      data.right = new FormAttachment(85, 0);
-//      data.top = new FormAttachment(0, 0);
-//      data.bottom = new FormAttachment(100, 0);
-//      table.setLayoutData(data);
-//      
-//      return composite;
-//    }
-//    
-//    public void setInput(Object input)
-//    {
-//      enumerationsTable.setInput(input);
-//    }
-//    
-//    public void widgetSelected(SelectionEvent e)
-//    {
-//      XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)getInput();
-//      Element element = st.getElement();
-//      if (e.widget == addButton)
-//      {
-//        XSDDOMHelper helper = new XSDDOMHelper();
-//
-//        int variety = st.getVariety().getValue();
-//        Node varietyElement = null;
-//        if (variety == XSDVariety.ATOMIC)
-//        {
-//          varietyElement = helper.getChildNode(element, XSDConstants.RESTRICTION_ELEMENT_TAG);
-//        }
-//        else if (variety == XSDVariety.UNION)
-//        {
-//          varietyElement = helper.getChildNode(element, XSDConstants.UNION_ELEMENT_TAG);
-//        }
-//        else if (variety == XSDVariety.LIST)
-//        {
-//          varietyElement = helper.getChildNode(element, XSDConstants.LIST_ELEMENT_TAG);
-//        }
-//              
-//        if (varietyElement != null)
-//        {
-//          java.util.List attributes = new ArrayList();
-//          attributes.add(new DOMAttribute(XSDConstants.VALUE_ATTRIBUTE, ""));
-//          beginRecording("Add Enumeration", element);
-//          Action action = getNewElementAction(XSDConstants.ENUMERATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ENUM"), attributes, (Element)varietyElement, null);
-//          action.run();
-//          st.setElement(element);
-//
-//          endRecording(element);
-//          enumerationsTable.refresh();
-//          attributes = null;
-//        }
-//      }
-//      else if (e.widget == deleteButton)
-//      {
-//        StructuredSelection selection = (StructuredSelection)enumerationsTable.getSelection();
-//        if (selection != null)
-//        {
-//          Iterator i = selection.iterator();
-//          beginRecording("Delete Enumeration", element);
-//          while (i.hasNext())
-//          {
-//            Object obj = i.next();
-//            if (obj != null)
-//            {
-//              if (obj instanceof XSDEnumerationFacet)
-//              {
-//                XSDEnumerationFacet enumFacet = (XSDEnumerationFacet)obj;
-//      
-//                // I have to update using DOM
-//                XSDDOMHelper.removeNodeAndWhitespace(enumFacet.getElement());            
-//                
-//              }
-//            }
-//          }
-//          enumerationsTable.refresh();
-//          st.setElement(element);
-//          endRecording(element);
-//        }
-//      }
-//      else if (e.widget == enumerationsTable.getTable())
-//      {
-//        StructuredSelection selection = (StructuredSelection)enumerationsTable.getSelection();
-//        if (selection.getFirstElement() != null)
-//        {
-//          deleteButton.setEnabled(true);
-//        }
-//        else
-//        {
-//          deleteButton.setEnabled(false);
-//        }
-//      }
-//      
-//    }
-//
-//    public void widgetDefaultSelected(SelectionEvent e)
-//    {
-//      
-//    }
-//  }
-//  
-//  class EnumerationsTableViewer extends NavigableTableViewer implements ICellModifier
-//  {
-//    protected String[] columnProperties = {"Enumeration"};
-//
-//    protected CellEditor[] cellEditors;
-//
-//    Table table;
-//    
-//    public EnumerationsTableViewer(Table table)
-//    {
-//      super(table);
-//      table = getTable();
-//      
-//      table.setLinesVisible(true);
-//      
-//      setContentProvider(new EnumerationsTableContentProvider());
-//      setLabelProvider(new EnumerationsTableLabelProvider());
-//      setColumnProperties(columnProperties);
-//
-//      setCellModifier(this);
-//
-//      TableColumn column = new TableColumn(table, SWT.NONE, 0);
-//      column.setText(columnProperties[0]);
-//      column.setAlignment(SWT.LEFT);
-// 
-//      cellEditors = new CellEditor[1];
-//
-//      TableLayout layout = new TableLayout();
-//      ColumnWeightData data = new ColumnWeightData(100);
-//      layout.addColumnData(data);
-//      cellEditors[0] = new TextCellEditor(table);
-//
-//      getTable().setLayout(layout);
-//      setCellEditors(cellEditors);
-//    }
-//    
-//    public boolean canModify(Object element, String property)
-//    {
-//      return true;
-//    }
-//
-//    public void modify(Object element, String property, Object value)
-//    {
-//      if (element instanceof TableItem && (value != null))
-//      {
-//        TableItem item = (TableItem)element;
-//        
-//        Element simpleTypeElement = ((XSDSimpleTypeDefinition)getInput()).getElement();
-//        FacetsSection.this.beginRecording(XSDEditorPlugin.getXSDString("_UI_ENUM_VALUE_CHANGE"), simpleTypeElement);
-//        
-//        XSDEnumerationFacet enumFacet = (XSDEnumerationFacet)item.getData();
-//        enumFacet.setLexicalValue((String)value);
-//        item.setData(enumFacet);
-//        item.setText((String)value);
-//        FacetsSection.this.endRecording(simpleTypeElement);
-//      }
-//    }    
-//
-//    public Object getValue(Object element, String property)
-//    {
-//      if (element instanceof XSDEnumerationFacet)
-//      {
-//        XSDEnumerationFacet enumFacet = (XSDEnumerationFacet)element;
-//        String value = enumFacet.getLexicalValue();
-//        if (value == null) value = "";
-//        return value;
-//      }
-//      return "";
-//    }
-//
-//  }
-//    
-//  class EnumerationsTableContentProvider implements IStructuredContentProvider
-//  {
-//    public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-//    {
-//    }
-//
-//    public java.lang.Object[] getElements(java.lang.Object inputElement)
-//    {
-//      java.util.List list = new ArrayList();
-//      if (inputElement instanceof XSDSimpleTypeDefinition)
-//      {
-//        XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)inputElement;
-//        return st.getEnumerationFacets().toArray();
-//      }
-//      return list.toArray();
-//    }
-//
-//    public void dispose()
-//    {
-//    }
-//  }
-//
-//  class EnumerationsTableLabelProvider extends LabelProvider implements ITableLabelProvider
-//  {
-//    public EnumerationsTableLabelProvider()
-//    {
-//      
-//    }
-//    
-//    public Image getColumnImage(Object element, int columnIndex)
-//    {
-//      return XSDEditorPlugin.getXSDImage("icons/XSDSimpleEnum.gif");
-//    }
-//    
-//    public String getColumnText(Object element, int columnIndex)
-//    {
-//      if (element instanceof XSDEnumerationFacet)
-//      {
-//        XSDEnumerationFacet enum = (XSDEnumerationFacet)element;
-//        String value = enum.getLexicalValue();
-//        if (value == null) value = "";
-//        return value;
-//      }
-//      return "";
-//    }
-//
-//  }
-
-  /* Patterns Page */
-  
-  class PatternsWorkbookPage extends XSDWorkbookPage implements SelectionListener, Listener
-  {
-    PatternsTableViewer patternsTable;
-    Button addButton;
-    Button deleteButton;
-    Button editButton;
-    Composite composite;
-    
-    public PatternsWorkbookPage(XSDWorkbook workbook)
-    {
-      super(workbook);
-      this.getTabItem().setText(XSDEditorPlugin.getXSDString("_UI_LABEL_PATTERNS")); //$NON-NLS-1$
-    }
-
-    public Control createControl (Composite parent)
-    {
-      composite = getWidgetFactory().createFlatFormComposite(parent);
-      FormData data;
-
-      patternsTable = new PatternsTableViewer(getWidgetFactory().createTable(composite, SWT.MULTI | SWT.FULL_SELECTION));
-      patternsTable.setInput(getInput());
-      Table table = patternsTable.getTable();
-      table.addSelectionListener(this);
-
-      addButton = getWidgetFactory().createButton(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_ADD"), SWT.PUSH); //$NON-NLS-1$
-      editButton = getWidgetFactory().createButton(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_EDIT"), SWT.PUSH); //$NON-NLS-1$
-      deleteButton = getWidgetFactory().createButton(composite, XSDEditorPlugin.getXSDString("_UI_ACTION_DELETE_INCLUDE"), SWT.PUSH); //$NON-NLS-1$
-
-      data = new FormData();
-      data.left = new FormAttachment(100, -100);
-      data.right = new FormAttachment(100, 0);
-      data.top = new FormAttachment(0, 0);
-      addButton.setLayoutData(data);
-      addButton.addSelectionListener(this);
-
-      data = new FormData();
-      data.left = new FormAttachment(addButton, 0, SWT.LEFT);
-      data.right = new FormAttachment(100, 0);
-      data.top = new FormAttachment(addButton, 0);
-      editButton.setLayoutData(data);
-      editButton.setEnabled(false);
-      editButton.addSelectionListener(this);
-      
-      data = new FormData();
-      data.left = new FormAttachment(addButton, 0, SWT.LEFT);
-      data.right = new FormAttachment(100, 0);
-      data.top = new FormAttachment(editButton, 0);
-      deleteButton.setLayoutData(data);
-      deleteButton.setEnabled(false);
-      deleteButton.addSelectionListener(this);
-      
-      data = new FormData();
-      data.top = new FormAttachment(0, 0);
-      data.left = new FormAttachment(0, 0);
-      data.right = new FormAttachment(addButton, 0);
-      data.bottom = new FormAttachment(100, 0);
-      data.width = tableMinimumWidth;
-      table.setLayoutData(data);
-      table.addListener(SWT.Resize, this);
-      
-      return composite;
-    }
-    
-    public void handleEvent(Event event)
-    {
-      Table table = patternsTable.getTable();
-      if (event.type == SWT.Resize && event.widget == table)
-      {
-        TableColumn tableColumn = table.getColumn(0);
-        tableColumn.setWidth(table.getSize().x);
-      }
-    }
-
-    
-    public void setInput(Object input)
-    {
-      patternsTable.setInput(input);
-      if (isReadOnly)
-      {
-        composite.setEnabled(false);
-      }
-      else
-      {
-        composite.setEnabled(true);
-      }
-    }
-    
-    public void widgetSelected(SelectionEvent e)
-    {
-      XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)getInput();
-      Element element = st.getElement();
-
-      if (e.widget == addButton)
-      {
-        XSDDOMHelper helper = new XSDDOMHelper();
-        
-        int variety = st.getVariety().getValue();
-        Node varietyElement = null;
-        if (variety == XSDVariety.ATOMIC)
-        {
-          varietyElement = helper.getChildNode(element, XSDConstants.RESTRICTION_ELEMENT_TAG);
-        }
-        else if (variety == XSDVariety.UNION)
-        {
-          varietyElement = helper.getChildNode(element, XSDConstants.UNION_ELEMENT_TAG);
-        }
-        else if (variety == XSDVariety.LIST)
-        {
-          varietyElement = helper.getChildNode(element, XSDConstants.LIST_ELEMENT_TAG);
-        }
-              
-        if (varietyElement != null)
-        {
-          Shell shell = Display.getCurrent().getActiveShell();
-
-          String initialValue = ""; //$NON-NLS-1$
-          RegexWizard wizard = new RegexWizard(initialValue);
-
-          WizardDialog wizardDialog = new WizardDialog(shell, wizard);
-          wizardDialog.setBlockOnOpen(true);
-          wizardDialog.create();
-          
-          int result = wizardDialog.open();
-
-          if (result == Window.OK)
-          {
-            String newPattern = wizard.getPattern();
-            
-            java.util.List attributes = new ArrayList();
-            attributes.add(new DOMAttribute(XSDConstants.VALUE_ATTRIBUTE, newPattern));
-            beginRecording(XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_PATTERN"), element); //$NON-NLS-1$
-            Action action = getNewElementAction(XSDConstants.PATTERN_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_PATTERN"), attributes, (Element)varietyElement, null); //$NON-NLS-1$
-            action.run();
-            st.setElement(element);
-            endRecording(element);
-            patternsTable.refresh();
-            attributes = null;
-          }
-        }
-      }
-      else if (e.widget == deleteButton)
-      {
-        StructuredSelection selection = (StructuredSelection)patternsTable.getSelection();
-        if (selection != null)
-        {
-          Iterator i = selection.iterator();
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_ACTION_DELETE_INCLUDE"), element); // Reword ?
-          while (i.hasNext())
-          {
-            Object obj = i.next();
-            if (obj != null)
-            {
-              if (obj instanceof XSDPatternFacet)
-              {
-                XSDPatternFacet patternFacet = (XSDPatternFacet)obj;
-      
-                // I have to update using DOM
-                XSDDOMHelper.removeNodeAndWhitespace(patternFacet.getElement());            
-              }
-            }
-          }
-          st.setElement(element);
-          endRecording(element);
-          patternsTable.refresh();
-          if (patternsTable.getTable().getItemCount() == 0)
-          {
-            editButton.setEnabled(false);
-            deleteButton.setEnabled(false);
-          }
-        }
-      }
-      else if (e.widget == editButton)
-      {
-        StructuredSelection selection = (StructuredSelection)patternsTable.getSelection();
-        if (selection != null)
-        {
-          Object obj = selection.getFirstElement();
-          if (obj instanceof XSDPatternFacet)
-          {
-            XSDPatternFacet pattern = (XSDPatternFacet)obj;
-            String initialValue = pattern.getLexicalValue();
-            if (initialValue == null)
-            {
-              initialValue = ""; //$NON-NLS-1$
-            }
-
-            Shell shell = Display.getCurrent().getActiveShell();
-
-            RegexWizard wizard = new RegexWizard(initialValue);
-
-            WizardDialog wizardDialog = new WizardDialog(shell, wizard);
-            wizardDialog.setBlockOnOpen(true);
-            wizardDialog.create();
-            
-            int result = wizardDialog.open();
-
-            if (result == Window.OK)
-            {
-              String newPattern = wizard.getPattern();
-              beginRecording(XSDEditorPlugin.getXSDString("_UI_PATTERN_VALUE_CHANGE"), element); //$NON-NLS-1$
-              element.setAttribute(XSDConstants.VALUE_ATTRIBUTE, newPattern);
-              pattern.setLexicalValue(newPattern);
-              endRecording(element);
-              patternsTable.refresh();
-            }
-          }
-        }
-      }
-      else if (e.widget == patternsTable.getTable())
-      {
-        StructuredSelection selection = (StructuredSelection)patternsTable.getSelection();
-        if (selection.getFirstElement() != null)
-        {
-          editButton.setEnabled(true);
-          deleteButton.setEnabled(true);
-        }
-        else
-        {
-          editButton.setEnabled(false);
-          deleteButton.setEnabled(false);
-        }
-      }
-      
-    }
-
-    public void widgetDefaultSelected(SelectionEvent e)
-    {
-      
-    }
-  }
-
-  
-  class PatternsTableViewer extends NavigableTableViewer implements ICellModifier
-  {
-    protected String[] columnProperties = {"Pattern"};
-
-    protected CellEditor[] cellEditors;
-
-    Table table;
-    
-    public PatternsTableViewer(Table table)
-    {
-      super(table);
-      table = getTable();
-      
-      table.setLinesVisible(true);
-      
-      setContentProvider(new PatternsTableContentProvider());
-      setLabelProvider(new PatternsTableLabelProvider());
-      setColumnProperties(columnProperties);
-
-      setCellModifier(this);
-
-      TableColumn column = new TableColumn(table, SWT.NONE, 0);
-      column.setText(columnProperties[0]);
-      column.setAlignment(SWT.LEFT);
-      column.setResizable(true);
- 
-      cellEditors = new CellEditor[1];
-
-      TableLayout layout = new TableLayout();
-      ColumnWeightData data = new ColumnWeightData(100);
-      layout.addColumnData(data);
-      cellEditors[0] = new TextCellEditor(table);
-
-      getTable().setLayout(layout);
-      setCellEditors(cellEditors);
-    }
-    
-    public boolean canModify(Object element, String property)
-    {
-      return true;
-    }
-
-    public void modify(Object element, String property, Object value)
-    {
-      if (element instanceof TableItem && (value != null))
-      {
-        TableItem item = (TableItem)element;
-        
-        Element simpleTypeElement = ((XSDSimpleTypeDefinition)getInput()).getElement();
-        FacetsSection.this.beginRecording(XSDEditorPlugin.getXSDString("_UI_PATTERN_VALUE_CHANGE"), simpleTypeElement); //$NON-NLS-1$
-        
-        XSDPatternFacet patternFacet = (XSDPatternFacet)item.getData();
-        patternFacet.setLexicalValue((String)value);
-
-        item.setData(patternFacet);
-        item.setText((String)value);
-        FacetsSection.this.endRecording(simpleTypeElement);
-      }
-    }    
-
-    public Object getValue(Object element, String property)
-    {
-      if (element instanceof XSDPatternFacet)
-      {
-        XSDPatternFacet patternFacet = (XSDPatternFacet)element;
-        String value = patternFacet.getLexicalValue();
-        if (value == null) value = ""; //$NON-NLS-1$
-        return value;
-      }
-      return ""; //$NON-NLS-1$
-    }
-
-  }
-    
-  class PatternsTableContentProvider implements IStructuredContentProvider
-  {
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-    {
-    }
-
-    public java.lang.Object[] getElements(java.lang.Object inputElement)
-    {
-      java.util.List list = new ArrayList();
-      if (inputElement instanceof XSDSimpleTypeDefinition)
-      {
-        XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)inputElement;
-        return st.getPatternFacets().toArray();
-      }
-      return list.toArray();
-    }
-
-    public void dispose()
-    {
-    }
-  }
-
-  class PatternsTableLabelProvider extends LabelProvider implements ITableLabelProvider
-  {
-    public PatternsTableLabelProvider()
-    {
-      
-    }
-    
-    public Image getColumnImage(Object element, int columnIndex)
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDSimplePattern.gif"); //$NON-NLS-1$
-    }
-    
-    public String getColumnText(Object element, int columnIndex)
-    {
-      if (element instanceof XSDPatternFacet)
-      {
-        XSDPatternFacet pattern = (XSDPatternFacet)element;
-        String value = pattern.getLexicalValue();
-        if (value == null) value = ""; //$NON-NLS-1$
-        return value;
-      }
-      return ""; //$NON-NLS-1$
-    }
-
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/FacetsSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/FacetsSectionDescriptor.java
deleted file mode 100644
index c5f9d1f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/FacetsSectionDescriptor.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-
-
-public class FacetsSectionDescriptor extends AbstractSectionDescriptor
-{
-
-  /**
-   * 
-   */
-  public FacetsSectionDescriptor()
-  {
-    super();
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getId()
-   */
-  public String getId()
-  {
-    return "com.ibm.xsdeditor.section.facets";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-   */
-  public List getInputTypes()
-  {
-    List list = new ArrayList();
-    list.add(XSDSimpleTypeDefinition.class);
-    return list;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-   */
-  public ISection getSectionClass()
-  {
-    return new FacetsSection();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-   */
-  public String getTargetTab()
-  {
-    return "com.ibm.xmlwebservices.facets";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-  {
-    Object object = null;
-    if (selection instanceof StructuredSelection)
-    {
-      StructuredSelection structuredSelection = (StructuredSelection)selection;
-      object = structuredSelection.getFirstElement();
-      if (object instanceof XSDSimpleTypeDefinition)
-      {
-        return true;
-      }
-    }
-    return false;
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/MinMaxSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/MinMaxSection.java
deleted file mode 100644
index 4596281..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/MinMaxSection.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.wst.common.ui.properties.ITabbedPropertyConstants;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDParticleContent;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class MinMaxSection extends AbstractSection
-{
-  CCombo minCombo;
-  CCombo maxCombo;
-
-  /**
-   * 
-   */
-  public MinMaxSection()
-  {
-    super();
-  }
-
-
-  public void doHandleEvent(Event event)
-	{
-    if (event.widget == minCombo)
-    {
-      updateMinAttribute();
-	  }
-	  else if (event.widget == maxCombo)
-	  {
-      updateMaxAttribute();
-	  }
-	}
-  
-  public void doWidgetSelected(SelectionEvent e)
-  {
-    if (e.widget == minCombo)
-    {
-      updateMinAttribute();
-    }
-    else if (e.widget == maxCombo)
-    {
-      updateMaxAttribute();
-    }
-  }
-
-  private void updateMinAttribute()
-  {
-    XSDParticle particle = null;
-    Object input = getInput();
-
-    if (input instanceof XSDParticleContent)
-    {
-      particle = getAssociatedParticle((XSDParticleContent)input);
-    }
-    if (particle != null)
-    {
-      Element element = particle.getElement();
-      String newValue = ""; //$NON-NLS-1$
-      String id = ""; //$NON-NLS-1$
-
-      newValue = minCombo.getText();
-      id = XSDConstants.MINOCCURS_ATTRIBUTE;
-      beginRecording(XSDEditorPlugin.getXSDString("_UI_MINOCCURS_CHANGE"), element); //$NON-NLS-1$        
-      if (newValue.length()==0)
-      {
-        particle.unsetMinOccurs();
-      }
-      try
-      {
-        if (newValue.equals("unbounded") || newValue.equals("*")) //$NON-NLS-1$
-        {
-          particle.setMinOccurs(XSDParticle.UNBOUNDED);
-        }
-        else
-        {
-          int val = Integer.parseInt(newValue);
-          particle.setMinOccurs(val);
-        }
-      }
-      catch (NumberFormatException e)
-      {
-      
-      }
-      finally
-      { 
-        endRecording(element);
-      }
-    }
-  }
-  
-  private void updateMaxAttribute()
-  {
-    XSDParticle particle = null;
-    Object input = getInput();
-
-    if (input instanceof XSDParticleContent)
-    {
-      particle = getAssociatedParticle((XSDParticleContent)input);
-    }
-    if (particle != null)
-    {
-      Element element = particle.getElement();
-      String newValue = "";
-      String id = "";
-      newValue = maxCombo.getText();
-      id = XSDConstants.MAXOCCURS_ATTRIBUTE;
-      beginRecording(XSDEditorPlugin.getXSDString("_UI_MAXOCCURS_CHANGE"), element); //$NON-NLS-1$
-      if (newValue.length()==0)
-      {
-        particle.unsetMaxOccurs();
-      }
-      try
-      {
-        if (newValue.equals("unbounded") || newValue.equals("*")) //$NON-NLS-1$
-        {
-          particle.setMaxOccurs(XSDParticle.UNBOUNDED);
-        }
-        else
-        {
-          int val = Integer.parseInt(newValue);
-            particle.setMaxOccurs(val);
-        }
-      }
-      catch (NumberFormatException e)
-      {
-        
-      }
-      finally
-      {
-        endRecording(element);
-      }
-    }    
-  }
-  
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-	 */
-
-	public void createControls(Composite parent,TabbedPropertySheetWidgetFactory factory)
-	{
-		super.createControls(parent, factory);
-		composite =	getWidgetFactory().createFlatFormComposite(parent);
-		FormData data;
-
-    minCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-    data = new FormData();
-    data.left = new FormAttachment(0, 100);
-    data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-    data.top = new FormAttachment(0, 0);
-    minCombo.setLayoutData(data);
-    minCombo.add("0"); //$NON-NLS-1$
-    minCombo.add("1"); //$NON-NLS-1$
-    minCombo.addListener(SWT.Modify, this);
-    minCombo.addSelectionListener(this);
-    
-		CLabel minLabel = getWidgetFactory().createCLabel(composite, XSDConstants.MINOCCURS_ATTRIBUTE + ":");
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(minCombo, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(minCombo, 0, SWT.CENTER);
-		minLabel.setLayoutData(data);
-
-    maxCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-    data = new FormData();
-    data.left = new FormAttachment(0, 100);
-    data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-    data.top = new FormAttachment(minCombo, +ITabbedPropertyConstants.VSPACE);
-    maxCombo.setLayoutData(data);
-    maxCombo.add("0"); //$NON-NLS-1$
-    maxCombo.add("1"); //$NON-NLS-1$
-    maxCombo.add("unbounded"); //$NON-NLS-1$
-    maxCombo.addListener(SWT.Modify, this);
-    maxCombo.addSelectionListener(this);
-    
-		CLabel maxLabel = getWidgetFactory().createCLabel(composite, XSDConstants.MAXOCCURS_ATTRIBUTE + ":");
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(maxCombo, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(maxCombo, 0, SWT.CENTER);
-		maxLabel.setLayoutData(data);
-	}
-
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh()
-	{
-    if (doRefresh)
-    {
-      if (isReadOnly)
-      {
-        composite.setEnabled(false);
-      }
-      else
-      {
-        composite.setEnabled(true);
-      }
-
-  	  setListenerEnabled(false);
-      boolean refreshMinText = true;
-      boolean refreshMaxText = true;
-      if (minCombo.isFocusControl())
-      {
-        refreshMinText = false;
-      }
-      if (maxCombo.isFocusControl())
-      {
-        refreshMaxText = false;
-      }
-      if (refreshMinText)
-      {
-        minCombo.setText(""); //$NON-NLS-1$
-      }
-      if (refreshMaxText)
-      {
-        maxCombo.setText(""); //$NON-NLS-1$
-      }
-  	  Object input = getInput();
-  	  if (input != null)
-  	  {
-  	    if (input instanceof XSDParticleContent)
-  	    {
-  		    XSDParticle particle = getAssociatedParticle((XSDParticleContent)input);
-  		    if (particle != null)
-  		    {
-  //  	      minText.setText(String.valueOf(particle.getMinOccurs()));
-  //	        maxText.setText(String.valueOf(particle.getMaxOccurs()));
-            Element element = particle.getElement();
-  		      if (element != null)
-  		      {
-  		        String min = element.getAttribute(XSDConstants.MINOCCURS_ATTRIBUTE);
-  		        String max = element.getAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE);
-  		        if (min != null && refreshMinText)
-  		        {
-  		          minCombo.setText(min);
-  		        }
-  		        if (max != null && refreshMaxText)
-  		        {
-  		          maxCombo.setText(max);
-  		        }
-  		      }
-  		    }
-  	    }
-  	  }
-  	  setListenerEnabled(true);
-    }
-	}
-	
-  public boolean shouldUseExtraSpace()
-  {
-    return false;
-  }
-
-  private XSDParticle getAssociatedParticle(XSDParticleContent particleContent)
-  {
-    XSDConcreteComponent xsdComp = particleContent.getContainer();
-    if (xsdComp instanceof XSDParticle)
-    {
-      return (XSDParticle)xsdComp;
-    }
-    return null;
-  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/MinMaxSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/MinMaxSectionDescriptor.java
deleted file mode 100644
index 80b5f42..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/MinMaxSectionDescriptor.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDWildcard;
-
-public class MinMaxSectionDescriptor extends AbstractSectionDescriptor
-{
-  /**
-   * 
-   */
-  public MinMaxSectionDescriptor()
-  {
-    super();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getId()
-   */
-  public String getId()
-  {
-    return "com.ibm.xsdeditor.section.minmax";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-   */
-  public List getInputTypes()
-  {
-    List list = new ArrayList();
-    list.add(XSDElementDeclaration.class);
-    list.add(XSDModelGroup.class);
-    list.add(XSDWildcard.class);
-    return list;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-   */
-  public ISection getSectionClass()
-  {
-    return new MinMaxSection();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-   */
-  public String getTargetTab()
-  {
-    return "com.ibm.xmlwebservices.general";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-  {
-    Object object = null;
-    if (selection instanceof StructuredSelection)
-    {
-      StructuredSelection structuredSelection = (StructuredSelection)selection;
-      object = structuredSelection.getFirstElement();
-//      if (object instanceof XSDElementDeclaration)
-//      {
-//        Element element = ((XSDElementDeclaration)object).getElement();
-//        Object parentNode = element.getParentNode();
-//        // minOccurs and maxOccurs apply to non-global elements
-//        boolean isGlobalElement = XSDDOMHelper.inputEquals(parentNode, XSDConstants.SCHEMA_ELEMENT_TAG, false);
-//        return !isGlobalElement;
-//      }
-//      if (object instanceof XSDParticle)
-//      {
-//        XSDParticle particle = (XSDParticle)object;
-//        Element element = particle.getElement();
-//        if (inputEquals(element, XSDConstants.ELEMENT_ELEMENT_TAG, false))
-//        {
-//          return true;
-//        }
-//        else if (inputEquals(element, XSDConstants.ELEMENT_ELEMENT_TAG, true))
-//        {
-//          return false;
-//        }
-//        else
-//        {
-//          return true;
-//        }
-//      }
-      if (object instanceof XSDModelGroup)
-      {
-        return true;
-      }
-      else if (object instanceof XSDElementDeclaration)
-      {
-        XSDElementDeclaration xsdElementDeclaration = (XSDElementDeclaration)object;
-        if (xsdElementDeclaration.isGlobal())
-        {
-          return false;
-        }
-        else
-        {
-          return true;
-        }
-      }
-      else if (object instanceof XSDWildcard)
-      {
-        XSDWildcard wildcard = (XSDWildcard)object;
-        if (wildcard.getContainer() instanceof XSDComplexTypeDefinition ||
-            wildcard.getContainer() instanceof XSDAttributeGroupDefinition)
-        {
-          return false;
-        }
-        else
-        {
-          return true;
-        }
-      }
-    }
-    return false;
-  }
-  
-  public String getAfterSection()
-  {
-    return "org.eclipse.wst.wsdleditor.section.reference";
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ModelGroupSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ModelGroupSection.java
deleted file mode 100644
index c5e62d8..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ModelGroupSection.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.wst.common.ui.properties.ITabbedPropertyConstants;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDCompositor;
-import org.eclipse.xsd.XSDModelGroup;
-import org.w3c.dom.Element;
-
-public class ModelGroupSection extends AbstractSection
-{
-  CCombo modelGroupCombo;
-  private String[] modelGroupComboValues = { "sequence", "choice", "all" }; //$NON-NLS-1$
-  
-  /**
-   * 
-   */
-  public ModelGroupSection()
-  {
-    super();
-  }
-
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-	{
-		super.createControls(parent, factory);
-		composite = getWidgetFactory().createFlatFormComposite(parent);
-		FormData data;
-
-		modelGroupCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-		data = new FormData();
-		data.left = new FormAttachment(0, 100);
-		data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(0, 0);
-		modelGroupCombo.setLayoutData(data);
-		modelGroupCombo.addSelectionListener(this);
-		modelGroupCombo.setItems(modelGroupComboValues);
-
-		CLabel cLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_KIND")); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(modelGroupCombo, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(modelGroupCombo, 0, SWT.CENTER);
-		cLabel.setLayoutData(data);
-
-	}
- 	
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh()
-	{
-	  setListenerEnabled(false);
-    if (isReadOnly)
-    {
-      composite.setEnabled(false);
-    }
-    else
-    {
-      composite.setEnabled(true);
-    }
-	  Object input = getInput();
-	  if (input != null)
-	  {
-      if (input instanceof XSDModelGroup)
-	    {
-	      XSDModelGroup particle = (XSDModelGroup)input;
-	      String modelType = particle.getCompositor().getName();
-	      modelGroupCombo.setText(modelType);
-	    }
-	  }
-	  setListenerEnabled(true);
-	}
-
-  public void widgetSelected(SelectionEvent e)
-  {
-    if (e.widget == modelGroupCombo)
-    {
-      Object input = getInput();
-	    if (input instanceof XSDModelGroup)
-	    {
-	      XSDModelGroup particle = (XSDModelGroup)input;
-
-        Element element = particle.getElement();
-        Element parent = (Element)element.getParentNode();
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_GROUP_SCOPE_CHANGE"), parent); //$NON-NLS-1$
-//        changeContentModel(parent, modelGroupCombo.getText());
-        particle.setCompositor(XSDCompositor.get(modelGroupCombo.getText()));      
-        endRecording(parent);
-        refresh();
-	    }
-    }
-  }
-
-//  private void changeContentModel(Element parent, String contentModel)
-//  {
-//    Document doc = parent.getOwnerDocument();
-//    XSDDOMHelper domHelper = getDomHelper();
-//  
-//    String prefix = parent.getPrefix();
-//    prefix = prefix == null ? "" : prefix + ":";
-//    
-//    Element contentModelElement = domHelper.getContentModelFromParent(parent);
-//  
-//    if (contentModelElement.getLocalName().equals(contentModel))
-//    {
-//      return; // it's already the content model 
-//    }
-//  
-//    Element newNode = doc.createElementNS(XSDDOMHelper.XMLSchemaURI, prefix + contentModel);
-//  
-//    if (contentModelElement.hasChildNodes())
-//    {        
-//      NodeList nodes = contentModelElement.getChildNodes();
-//      // use clones so we don't have a refresh problem
-//      for (int i = 0; i < nodes.getLength(); i++)
-//      {
-//        Node node = nodes.item(i);
-//        newNode.appendChild(node.cloneNode(true)); 
-//      }
-//    }
-//    parent.replaceChild(newNode, contentModelElement);
-//  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ModelGroupSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ModelGroupSectionDescriptor.java
deleted file mode 100644
index 4f1a091..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ModelGroupSectionDescriptor.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.xsd.XSDModelGroup;
-
-public class ModelGroupSectionDescriptor extends AbstractSectionDescriptor
-{
-  /**
-   * 
-   */
-  public ModelGroupSectionDescriptor()
-  {
-    super();
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getId()
-   */
-  public String getId()
-  {
-    return "com.ibm.xsdeditor.section.modelgroup";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-   */
-  public List getInputTypes()
-  {
-    List list = new ArrayList();
-    list.add(XSDModelGroup.class);
-    return list;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-   */
-  public ISection getSectionClass()
-  {
-    return new ModelGroupSection();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-   */
-  public String getTargetTab()
-  {
-    return "com.ibm.xmlwebservices.general";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-  {
-    Object object = null;
-    if (selection instanceof StructuredSelection)
-    {
-      StructuredSelection structuredSelection = (StructuredSelection)selection;
-      object = structuredSelection.getFirstElement();
-//      if (object instanceof XSDParticle)
-//      {
-//        XSDParticle particle = (XSDParticle)object;
-//        Element element = particle.getElement();
-//        if (inputEquals(element, XSDConstants.SEQUENCE_ELEMENT_TAG, false) ||
-//            inputEquals(element, XSDConstants.CHOICE_ELEMENT_TAG, false) ||
-//            inputEquals(element, XSDConstants.ALL_ELEMENT_TAG, false))
-//        {
-//          return true;
-//        }
-//      }
-      if (object instanceof XSDModelGroup)
-      {
-        XSDModelGroup particle = (XSDModelGroup)object;
-//        Element element = particle.getElement();
-//        if (inputEquals(element, XSDConstants.SEQUENCE_ELEMENT_TAG, false) ||
-//            inputEquals(element, XSDConstants.CHOICE_ELEMENT_TAG, false) ||
-//            inputEquals(element, XSDConstants.ALL_ELEMENT_TAG, false))
-//        {
-          return true;
-//        }
-      }
-    }
-    return false;
-  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NameSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NameSection.java
deleted file mode 100644
index bdfc606..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NameSection.java
+++ /dev/null
@@ -1,444 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.common.ui.properties.ITabbedPropertyConstants;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalAttributeGroupRenamer;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalAttributeRenamer;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalElementRenamer;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalGroupRenamer;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.GlobalSimpleOrComplexTypeRenamer;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDComponent;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class NameSection extends AbstractSection
-{
-  /**
-   * 
-   */
-  public NameSection()
-  {
-    super();
-  }
-  
-	Text nameText;
-
-	
-  public void doHandleEvent(Event event) 
-  {
-    if (event.widget == nameText)
-	  {
-			Object input = getInput();
-      String newValue = nameText.getText();
-	    if (input instanceof XSDNamedComponent)
-	    {
-	      XSDNamedComponent namedComponent = (XSDNamedComponent)input;
-	      if (newValue.length() > 0)
-	      {
-	        namedComponent.setName(newValue);
-          doReferentialIntegrityCheck(namedComponent, newValue);
-	      }
-	      else
-	      {
-          // TODO: Show error message
-	      }
-	    }
-//	    else if (input instanceof XSDParticle)
-//	    {
-//	      XSDParticle xsdParticle = (XSDParticle)input;
-//	      if (newValue.length() > 0)
-//	      {
-//	        doReferentialIntegrityCheck(xsdParticle, newValue);
-//	      }
-//	      else
-//	      {
-//	        // TODO: Show error message
-//	      }
-//	    }
-      else if (input instanceof XSDAttributeDeclaration)
-      {
-        XSDAttributeDeclaration attribute = (XSDAttributeDeclaration)input;
-	      if (newValue.length() > 0)
-	      {
-	        doReferentialIntegrityCheck(attribute, newValue);
-	        attribute.setName(newValue);
-	      }
-	      else
-	      {
-	        // TODO: Show error message
-	      }
-      }
-	    else if (input instanceof XSDAttributeUse)
-      {
-        XSDAttributeUse attributeUse = (XSDAttributeUse)input;
-        XSDAttributeDeclaration attribute = attributeUse.getAttributeDeclaration();
-	      if (newValue.length() > 0)
-	      {
-	        doReferentialIntegrityCheck(attribute, newValue);
-	        attribute.setName(newValue);
-	        attributeUse.setAttributeDeclaration(attribute);
-	      }
-	      else
-	      {
-          // TODO: Show error message
-	      }
-      }
-	  }
-	}
-
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-	{
-		super.createControls(parent, factory);
-		composite =	getWidgetFactory().createFlatFormComposite(parent);
-		FormData data;
-
-		nameText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, 100);
-		// data.right = new FormAttachment(95, 0);
-    data.right = new FormAttachment(100, -rightMarginSpace -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(0, 0);
-		nameText.setLayoutData(data);
-		nameText.addListener(SWT.Modify, this);
-
-		CLabel nameLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_NAME")); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(nameText, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(nameText, 0, SWT.CENTER);
-		nameLabel.setLayoutData(data);
-	}
-
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh()
-	{
-    if (nameText.isFocusControl())
-    {
-      return;
-    }
-    setListenerEnabled(false);
-    nameText.setEditable(true);
-    if (isReadOnly)
-    {
-      composite.setEnabled(false);
-    }
-    else
-    {
-      composite.setEnabled(true);
-    }
-	  Object input = getInput();
-	  nameText.setText(""); //$NON-NLS-1$
-	  if (input != null)
-	  {
-	    if (input instanceof XSDComplexTypeDefinition || input instanceof XSDSimpleTypeDefinition)
-	    {
-	      XSDTypeDefinition type = (XSDTypeDefinition)input;
-	      
-	      Element element = type.getElement();
-        String name = element.getAttribute(XSDConstants.NAME_ATTRIBUTE);
-        if (name == null) name = "";
-        
-        boolean isAnonymousType = checkForAnonymousType(element);
-        if (isAnonymousType)
-        {
-          nameText.setText("**anonymous**"); //$NON-NLS-1$
-          nameText.setEditable(false);
-        }
-        else
-        {
-          nameText.setText(name);
-          nameText.setEditable(true);
-        }
-	    }
-	    else if (input instanceof XSDNamedComponent)
-	    {
-	      XSDNamedComponent namedComponent = (XSDNamedComponent)input;
-	      Element element = namedComponent.getElement();
-        String name = namedComponent.getName();
-	      if (name != null)
-	      {
-	        nameText.setText(name);
-	      }
-	    }
-//	    else if (input instanceof XSDParticle)
-//	    {
-//	      XSDParticle xsdParticle = (XSDParticle)input;
-//	      String name = xsdParticle.getElement().getAttribute(XSDConstants.NAME_ATTRIBUTE);
-//	      if (name != null)
-//	      {
-//	        nameText.setText(name);
-//	      }
-//	    }
-      else if (input instanceof XSDAttributeDeclaration)
-      {
-        XSDAttributeDeclaration attribute = (XSDAttributeDeclaration)input;
-        //String name = attribute.getName();
-        Element element = attribute.getElement();
-        String name = element.getAttribute(XSDConstants.NAME_ATTRIBUTE);
-        if (name != null)
-	      {
-	        nameText.setText(name);
-	      }
-      }
-	    else if (input instanceof XSDAttributeUse)
-      {
-        XSDAttributeUse attributeUse = (XSDAttributeUse)input;
-        XSDAttributeDeclaration attribute = attributeUse.getAttributeDeclaration();
-        String name = attribute.getName();
-        if (name != null)
-	      {
-	        nameText.setText(name);
-	      }
-      }
-//	    else if (input instanceof Element)
-//	    {
-//	      String name = ((Element)input).getAttribute(XSDConstants.NAME_ATTRIBUTE);
-//	      if (name == null) name = "";
-//	      nameText.setText(name);
-//	    }
-	  }
-	  setListenerEnabled(true);
-	}
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISection#shouldUseExtraSpace()
-   */
-  public boolean shouldUseExtraSpace()
-  {
-    return false;
-  }
-
-	private void doReferentialIntegrityCheck(XSDComponent xsdComponent, String newValue)
-	{
-    Element element = xsdComponent.getElement();
-    if (XSDDOMHelper.inputEquals(element, XSDConstants.ELEMENT_ELEMENT_TAG, false))
-    {
-      if (validateName(newValue))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_ELEMENT_NAME_CHANGE"), element); //$NON-NLS-1$
-        element.setAttribute(XSDConstants.NAME_ATTRIBUTE, newValue);
-        if (xsdComponent instanceof XSDNamedComponent)
-        {
-          ((XSDNamedComponent)xsdComponent).setName(newValue);
-        }
-        
-        // now rename any references to this element
-       
-        if (xsdSchema != null)
-        {
-          XSDConcreteComponent comp = xsdSchema.getCorrespondingComponent(element);
-          if (comp != null && comp instanceof XSDElementDeclaration && comp.getContainer().equals(xsdSchema))
-          {
-            GlobalElementRenamer renamer = new GlobalElementRenamer((XSDNamedComponent)comp, newValue);
-            renamer.visitSchema(xsdSchema);
-          }
-        }        
-        endRecording(element);
-      }
-    }
-    else if (XSDDOMHelper.inputEquals(element, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, false))
-    {
-      if (validateName(newValue))
-      {
-	      beginRecording(XSDEditorPlugin.getXSDString("_UI_COMPLEXTYPE_NAME_CHANGE"), element); //$NON-NLS-1$
-	      if (newValue.length() > 0)
-	      {
-	        // now rename any references to this type
-	        if (xsdSchema != null)
-	        {
-	          XSDConcreteComponent comp = xsdSchema.getCorrespondingComponent(element);
-	          if (comp != null && comp instanceof XSDComplexTypeDefinition && comp.getContainer().equals(xsdSchema))
-	          {
-	            GlobalSimpleOrComplexTypeRenamer renamer = new GlobalSimpleOrComplexTypeRenamer((XSDNamedComponent)comp, newValue);
-	            renamer.visitSchema(xsdSchema);
-	          }
-	        }
-	        element.setAttribute(XSDConstants.NAME_ATTRIBUTE, newValue);
-	        ((XSDNamedComponent)xsdComponent).setName(newValue);
-	      }
-	      else
-	      {
-	        element.removeAttribute(XSDConstants.NAME_ATTRIBUTE);
-	      }
-      endRecording(element);
-      }
-    }
-    else if (XSDDOMHelper.inputEquals(element, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false))
-    {
-      beginRecording(XSDEditorPlugin.getXSDString("_UI_SIMPLETYPE_NAME_CHANGE"), element);
-      if (validateName(newValue))
-      {
-        // now rename any references to this type
-        if (newValue.length() > 0)
-        {
-          if (xsdSchema != null)
-          {
-            XSDConcreteComponent comp = xsdSchema.getCorrespondingComponent(element);
-            if (comp != null && comp instanceof XSDSimpleTypeDefinition && comp.getContainer().equals(xsdSchema))
-            {
-              GlobalSimpleOrComplexTypeRenamer renamer = new GlobalSimpleOrComplexTypeRenamer((XSDNamedComponent)comp, newValue);
-              renamer.visitSchema(xsdSchema);
-            }
-          }
-//          element.setAttribute(XSDConstants.NAME_ATTRIBUTE, newValue);
-        }
-        else
-        {
-          element.setAttribute(XSDConstants.NAME_ATTRIBUTE, "");
-        }
-      }
-      endRecording(element);
-
-    }
-    else if (XSDDOMHelper.inputEquals(element, XSDConstants.ATTRIBUTE_ELEMENT_TAG, false))
-    {  
-      beginRecording(XSDEditorPlugin.getXSDString("_UI_ATTRIBUTE_NAME_CHANGE"), element); //$NON-NLS-1$
-      // now rename any references to this element
-      if (xsdSchema != null)
-       {
-        XSDConcreteComponent comp = xsdSchema.getCorrespondingComponent(element);
-        if (comp != null && comp instanceof XSDAttributeDeclaration && comp.getContainer().equals(xsdSchema))
-        {
-          GlobalAttributeRenamer renamer = new GlobalAttributeRenamer((XSDNamedComponent)comp, newValue);
-          renamer.visitSchema(xsdSchema);
-        }
-      }
-      // element.setAttribute(XSDConstants.NAME_ATTRIBUTE, newValue);
-      endRecording(element);
-    }
-    else if (XSDDOMHelper.inputEquals(element, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, false))
-    {  
-      beginRecording(XSDEditorPlugin.getXSDString("_UI_ATTRIBUTEGROUP_NAME_CHANGE"), element); //$NON-NLS-1$
-      ((XSDNamedComponent)xsdComponent).setName(newValue);
-      // now rename any references to this element
-      if (xsdSchema != null)
-      {
-        XSDConcreteComponent comp = xsdSchema.getCorrespondingComponent(element);
-        if (comp != null && comp instanceof XSDAttributeGroupDefinition && comp.getContainer().equals(xsdSchema))
-        {
-          GlobalAttributeGroupRenamer renamer = new GlobalAttributeGroupRenamer((XSDNamedComponent)comp, newValue);
-          renamer.visitSchema(xsdSchema);
-        }
-      }
-      endRecording(element);
-    }
-    else if (XSDDOMHelper.inputEquals(element, XSDConstants.UNIQUE_ELEMENT_TAG, false))
-    {
-      if (validateName(newValue))
-       {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_UNIQUE_NAME_CHANGE"), element); //$NON-NLS-1$
-        if (newValue.length() > 0)
-        {
-          element.setAttribute(XSDConstants.NAME_ATTRIBUTE, newValue);
-        }
-        else
-        {
-          element.setAttribute(XSDConstants.NAME_ATTRIBUTE, ""); //$NON-NLS-1$
-        }
-        endRecording(element);
-      }
-    }
-    else if (XSDDOMHelper.inputEquals(element, XSDConstants.KEY_ELEMENT_TAG, false))
-    {
-      if (validateName(newValue))
-      {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_KEY_NAME_CHANGE"), element); //$NON-NLS-1$
-        if (newValue.length() > 0)
-        {
-          element.setAttribute(XSDConstants.NAME_ATTRIBUTE, newValue);
-        }
-        else
-        {
-          element.setAttribute(XSDConstants.NAME_ATTRIBUTE, ""); //$NON-NLS-1$
-        }
-        endRecording(element);
-      }
-    }
-    else if (XSDDOMHelper.inputEquals(element, XSDConstants.GROUP_ELEMENT_TAG, false))
-    {
-      if (validateName(newValue))
-       {
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_GROUP_NAME_CHANGE"), element); //$NON-NLS-1$
-        // now rename any references to this element
-        if (xsdSchema != null)
-         {
-          XSDConcreteComponent comp = xsdSchema.getCorrespondingComponent(element);
-          if (comp != null && comp instanceof XSDModelGroupDefinition && comp.getContainer().equals(xsdSchema))
-          {
-            GlobalGroupRenamer renamer = new GlobalGroupRenamer((XSDNamedComponent)comp, newValue);
-            renamer.visitSchema(xsdSchema);
-          }
-        }
-        element.setAttribute(XSDConstants.NAME_ATTRIBUTE, newValue);
-        endRecording(element);
-      }
-      
-    }
-    
-
-
-	}
-
-  boolean checkForAnonymousType(Element element)
-  {
-    Object parentElement = (Object)element.getParentNode();
-    boolean isAnonymous = false;
-    if (parentElement != null)
-    {
-      if (XSDDOMHelper.inputEquals(element, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, false))
-      {
-        if (XSDDOMHelper.inputEquals(parentElement, XSDConstants.ELEMENT_ELEMENT_TAG, false))
-        {
-          isAnonymous = true; 
-        }
-      }
-      else if (XSDDOMHelper.inputEquals(element, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false))
-      {
-        if (XSDDOMHelper.inputEquals(parentElement, XSDConstants.RESTRICTION_ELEMENT_TAG, false) ||
-            XSDDOMHelper.inputEquals(parentElement, XSDConstants.ELEMENT_ELEMENT_TAG, false) ||
-            XSDDOMHelper.inputEquals(parentElement, XSDConstants.UNION_ELEMENT_TAG, false) ||
-            XSDDOMHelper.inputEquals(parentElement, XSDConstants.LIST_ELEMENT_TAG, false) ||
-            XSDDOMHelper.inputEquals(parentElement, XSDConstants.ATTRIBUTE_ELEMENT_TAG, false))
-        {
-          isAnonymous = true;
-        }
-      }
-    }
-    return isAnonymous;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NameSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NameSectionDescriptor.java
deleted file mode 100644
index f2f7144..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NameSectionDescriptor.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.wst.common.ui.properties.ISectionDescriptor;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class NameSectionDescriptor extends AbstractSectionDescriptor implements ISectionDescriptor
-{
-  /**
-   * 
-   */
-  public NameSectionDescriptor()
-  {
-    super();
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getId()
-   */
-  public String getId()
-  {
-    return "com.ibm.xsdeditor.section.name";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-   */
-  public List getInputTypes()
-  {
-    List list = new ArrayList();
-    list.add(XSDNamedComponent.class);
-    list.add(XSDAttributeUse.class);
-    return list;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-   */
-  public ISection getSectionClass()
-  {
-    return new NameSection();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-   */
-  public String getTargetTab()
-  {
-    return "com.ibm.xmlwebservices.general";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-  {
-    Object object = null;
-    if (selection instanceof StructuredSelection)
-    {
-      StructuredSelection structuredSelection = (StructuredSelection)selection;
-      object = structuredSelection.getFirstElement();
-      if (object instanceof XSDNamedComponent)
-      {
-        XSDNamedComponent namedComponent = (XSDNamedComponent)object;
-        Element element = namedComponent.getElement();
-        
-        if (inputEquals(element, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false) ||
-            inputEquals(element, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
-        {
-          return false;
-        }
-        
-        // don't want to show editable name section for ref's
-        // need to show ref section with a combobox
-        
-        if (namedComponent instanceof XSDElementDeclaration)
-        {
-          if (((XSDElementDeclaration)namedComponent).isElementDeclarationReference())
-          {
-            return false;
-          }
-          else
-          {
-            return true;
-          }
-        }
-        else if (namedComponent instanceof XSDAttributeDeclaration)
-        {
-          if (((XSDAttributeDeclaration)namedComponent).isAttributeDeclarationReference())
-          {
-            return false;
-          }
-          else
-          {
-            return true;
-          }
-        }
-
-        if (element != null)
-        {
-          if (inputEquals(element, element.getLocalName(), true))
-          {
-            return false;
-          }
-          else
-          {
-            return true;
-          }
-        }
-      }
-//      else if (object instanceof XSDParticle)
-//      {
-//        XSDParticle particle = (XSDParticle)object;
-//        Element element = particle.getElement();
-//        if (inputEquals(element, XSDConstants.ELEMENT_ELEMENT_TAG, false))
-//        {
-//          return true;
-//        }
-//        else if (inputEquals(element, XSDConstants.ELEMENT_ELEMENT_TAG, true))
-//        {
-//          return false;
-//        }
-//        else
-//        {
-//          return false;
-//        }
-//      }
-      else if (object instanceof XSDAttributeUse)
-      {
-        XSDAttributeUse attributeUse = (XSDAttributeUse)object;
-        XSDAttributeDeclaration attribute = attributeUse.getAttributeDeclaration();
-        Element element = attributeUse.getElement();
-        if (inputEquals(element, XSDConstants.ATTRIBUTE_ELEMENT_TAG, false))
-        {
-          return true;
-        }
-        else
-        {
-          return false;
-        }
-      }
-
-    }
-
-    return false;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceAndSchemaLocationDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceAndSchemaLocationDescriptor.java
deleted file mode 100644
index 5a47fa8..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceAndSchemaLocationDescriptor.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDImport;
-
-public class NamespaceAndSchemaLocationDescriptor extends AbstractSectionDescriptor
-{
-	  NamespaceAndSchemaLocationSection namespaceAndSchemaLocationSection;
-	  /**
-	   * 
-	   */
-	  public NamespaceAndSchemaLocationDescriptor()
-	  {
-	    super();
-	    namespaceAndSchemaLocationSection = new NamespaceAndSchemaLocationSection();
-	  }
-
-	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getId()
-	   */
-	  public String getId()
-	  {
-	    return "com.ibm.xsdeditor.section.namespaceAndSchemaLocationSection";
-	  }
-
-	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-	   */
-	  public List getInputTypes()
-	  {
-	    List list = new ArrayList();
-	    list.add(XSDConcreteComponent.class);
-	    return list;
-	  }
-
-	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-	   */
-	  public ISection getSectionClass()
-	  {
-	    return namespaceAndSchemaLocationSection;
-	  }
-
-	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-	   */
-	  public String getTargetTab()
-	  {
-	    return "com.ibm.xmlwebservices.general";
-	  }
-
-	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-	   */
-	  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-	  {
-	    Object object = null;	    
-	    
-	    if (selection instanceof StructuredSelection)
-	    {
-	      StructuredSelection structuredSelection = (StructuredSelection)selection;
-	      object = structuredSelection.getFirstElement();
-	      if (object instanceof XSDImport) {
-		    return true;
-	      }
-	    }
-	    
-	    return false;
-	  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceAndSchemaLocationSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceAndSchemaLocationSection.java
deleted file mode 100644
index 2fdc737..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceAndSchemaLocationSection.java
+++ /dev/null
@@ -1,345 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.wst.common.ui.properties.ITabbedPropertyConstants;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.common.ui.viewers.ResourceFilter;
-import org.eclipse.wst.xml.uriresolver.util.URIHelper;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.refactor.delete.XSDExternalFileCleanup;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.XSDSchemaHelper;
-import org.eclipse.wst.xsd.ui.internal.wizards.XSDSelectIncludeFileWizard;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDImport;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.impl.XSDImportImpl;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class NamespaceAndSchemaLocationSection extends AbstractSection
-{
-  Text schemaLocationText;
-	Text namespaceText, prefixText;
-	Button wizardButton;
-  protected String oldPrefixValue;
-	  
-	public NamespaceAndSchemaLocationSection()
-  {
-		super();
-	}
-	
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-	{
-		super.createControls(parent, factory);
-		Composite composite = getWidgetFactory().createFlatFormComposite(parent);
-
-		CLabel namespaceLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_NAMESPACE")); //$NON-NLS-1$
-    namespaceText = getWidgetFactory().createText(composite, "", SWT.NONE); //$NON-NLS-1$
-		namespaceText.setEditable(false);
-
-    FormData data = new FormData();
-    data.left = new FormAttachment(0, 0);
-    data.right = new FormAttachment(namespaceText, +ITabbedPropertyConstants.HSPACE);
-    data.top = new FormAttachment(namespaceText, 0, SWT.CENTER);
-    namespaceLabel.setLayoutData(data);
-    
-    data = new FormData();
-    data.left = new FormAttachment(0, 110);
-    data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-    data.top = new FormAttachment(0, 0);
-    namespaceText.setLayoutData(data);
-
-    
-		CLabel prefixLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_PREFIX")); //$NON-NLS-1$				
-		prefixText = getWidgetFactory().createText(composite, "", SWT.NONE); //$NON-NLS-1$
-		prefixText.setEditable(true);
-    prefixText.addListener(SWT.Modify, this);
-
-    data = new FormData();
-    data.left = new FormAttachment(0, 0);
-    data.right = new FormAttachment(prefixText, 0);
-    data.top = new FormAttachment(prefixText, 0, SWT.CENTER);
-    prefixLabel.setLayoutData(data);  
-    
-		data = new FormData();
-		data.left = new FormAttachment(0, 110);
-		data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(namespaceText, +ITabbedPropertyConstants.VSPACE);
-		prefixText.setLayoutData(data);
-
-		// Create Schema Location Label
-		CLabel schemaLocationLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_SCHEMA_LOCATION")); //$NON-NLS-1$
-    schemaLocationText = getWidgetFactory().createText(composite, "", SWT.NONE); //$NON-NLS-1$
-
-		// Create Wizard Button
-		wizardButton = getWidgetFactory().createButton(composite, "", SWT.NONE); //$NON-NLS-1$
-    wizardButton.setImage(XSDEditorPlugin.getXSDImage("icons/browsebutton.gif")); //$NON-NLS-1$
-		FormData buttonFormData = new FormData();
-		buttonFormData.left = new FormAttachment(100, -rightMarginSpace + 2);
-		buttonFormData.right = new FormAttachment(100, 0);
-		buttonFormData.top = new FormAttachment(schemaLocationText, 0, SWT.CENTER);
-		wizardButton.setLayoutData(buttonFormData);
-		wizardButton.addSelectionListener(this);
-		
-		// Create Schema Location Text
-		schemaLocationText.setEditable(false);
-		FormData schemaLocationData = new FormData();
-		schemaLocationData.left = new FormAttachment(0, 110);
-		schemaLocationData.right = new FormAttachment(wizardButton, 0);
-		schemaLocationData.top = new FormAttachment(prefixText, +ITabbedPropertyConstants.VSPACE);
-		schemaLocationText.setLayoutData(schemaLocationData);
-		schemaLocationText.addListener(SWT.Modify, this);
-    
-    data = new FormData();
-    data.left = new FormAttachment(0, 0);
-    data.right = new FormAttachment(schemaLocationText, 0);
-    data.top = new FormAttachment(schemaLocationText, 0, SWT.CENTER);
-    schemaLocationLabel.setLayoutData(data);
-   
-  }
-	
-	public void widgetSelected(SelectionEvent event)
-  {
-		if (event.widget == wizardButton)
-    {
-      setListenerEnabled(false);
-			Shell shell = Display.getCurrent().getActiveShell();
-		    
-			IFile currentIFile = ((IFileEditorInput)getActiveEditor().getEditorInput()).getFile();
-			ViewerFilter filter = new ResourceFilter(new String[] { ".xsd" }, //$NON-NLS-1$ 
-		            new IFile[] { currentIFile },
-		            null);
-		      
-			XSDSelectIncludeFileWizard fileSelectWizard = 
-			   new XSDSelectIncludeFileWizard(xsdSchema, 
-                                        false,
-			                                  XSDEditorPlugin.getXSDString("_UI_FILEDIALOG_SELECT_XML_SCHEMA"), //$NON-NLS-1$
-			                                  XSDEditorPlugin.getXSDString("_UI_FILEDIALOG_SELECT_XML_DESC"), //$NON-NLS-1$
-			                                  filter,
-			                                  (IStructuredSelection) selection);
-
-			WizardDialog wizardDialog = new WizardDialog(shell, fileSelectWizard);
-			wizardDialog.create();
-			wizardDialog.setBlockOnOpen(true);
-			int result = wizardDialog.open();
-			  
-		  String value = schemaLocationText.getText();
-      prefixText.removeListener(SWT.Modify, this);
-		  if (result == Window.OK)
-		  {
-		    IFile selectedIFile = fileSelectWizard.getResultFile();
-		    String schemaFileString = value;
-		    if (selectedIFile != null) 
-		    {
-		      schemaFileString = URIHelper.getRelativeURI(selectedIFile.getLocation(), currentIFile.getLocation());
-		    }
-		    else
-		    {
-		      schemaFileString = fileSelectWizard.getURL();
-		    }
-        
-        XSDConcreteComponent comp = (XSDConcreteComponent)getInput();
-        if (comp instanceof XSDImport)
-        {
-          XSDImport xsdImport = (XSDImport)comp;
-          Element importElement = comp.getElement();
-          
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_IMPORT_CHANGE"), importElement);
-          
-          String namespace = fileSelectWizard.getNamespace();
-          if (namespace == null) namespace = "";
-          XSDSchema externalSchema = fileSelectWizard.getExternalSchema();
-
-          xsdImport.setNamespace(namespace);
-          xsdImport.setSchemaLocation(schemaFileString);
-          xsdImport.setResolvedSchema(externalSchema);
-          
-          java.util.Map map = xsdSchema.getQNamePrefixToNamespaceMap();
-          
-//          System.out.println("changed Import Map is " + map.values());
-//          System.out.println("changed import Map keys are " + map.keySet());
-
-          // Referential integrity on old import
-          // How can we be sure that if the newlocation is the same as the oldlocation
-          // the file hasn't changed
-          
-          XSDSchema referencedSchema = xsdImport.getResolvedSchema();
-          if (referencedSchema != null)
-          {
-            XSDExternalFileCleanup cleanHelper = new XSDExternalFileCleanup(referencedSchema);
-            cleanHelper.visitSchema(xsdSchema);
-          }
-
-          Element schemaElement = getSchema().getElement();
-
-          // update the xmlns in the schema element first, and then update the import element next
-          // so that the last change will be in the import element.  This keeps the selection
-          // on the import element
-          TypesHelper helper = new TypesHelper(externalSchema);
-          String prefix = helper.getPrefix(namespace, false);
-          
-          if (map.containsKey(prefix))
-          {
-            prefix = null;
-          }
-
-          if (prefix == null || (prefix !=null && prefix.length() == 0))
-          {
-            StringBuffer newPrefix = new StringBuffer("pref");  //$NON-NLS-1$
-            int prefixExtension = 1;
-            while (map.containsKey(newPrefix.toString()) && prefixExtension < 100)
-            {
-              newPrefix = new StringBuffer("pref" + String.valueOf(prefixExtension));
-              prefixExtension++;
-            }
-            prefix = newPrefix.toString();
-          }
-
-          if (namespace.length() > 0)
-          {
-            // if ns already in map, use its corresponding prefix
-            if (map.containsValue(namespace))
-            {
-              TypesHelper typesHelper = new TypesHelper(xsdSchema);
-              prefix = typesHelper.getPrefix(namespace, false);
-            }
-            else // otherwise add to the map
-            {
-              schemaElement.setAttribute("xmlns:"+prefix, namespace);
-            }
-            prefixText.setText(prefix);
-          }
-          else
-          {
-            prefixText.setText("");
-            namespaceText.setText("");
-          }
-            
-          endRecording(importElement);
-          
-//          System.out.println("changed Import Map is " + map.values());
-//          System.out.println("changed import Map keys are " + map.keySet());
-
-        }        
-				refresh();
-		  }
-      setListenerEnabled(true);
-      prefixText.addListener(SWT.Modify, this);
-		}
-	}
-
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh()
-	{
-		if (doRefresh)
-		{
-			setListenerEnabled(false);
-
-			Element element = null;
-			if (input instanceof XSDImport) { 
-				element = ((XSDImportImpl) input).getElement();
-				
-				String namespace = element.getAttribute("namespace"); //$NON-NLS-1$
-				String schemaLocation = element.getAttribute("schemaLocation"); //$NON-NLS-1$
-				
-				TypesHelper helper = new TypesHelper(xsdSchema);
-		        String prefix = helper.getPrefix(element.getAttribute(XSDConstants.NAMESPACE_ATTRIBUTE), false);
-
-				if (namespace == null) {
-					namespace = ""; //$NON-NLS-1$
-				}
-				if (prefix == null) {
-					prefix = ""; //$NON-NLS-1$
-				}
-				if (schemaLocation == null) {
-					schemaLocation = ""; //$NON-NLS-1$
-				}
-				
-				namespaceText.setText(namespace);
-				prefixText.setText(prefix);
-				schemaLocationText.setText(schemaLocation);
-        oldPrefixValue = prefixText.getText();
-			}
-
-			setListenerEnabled(true);
-		}
-	}
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISection#shouldUseExtraSpace()
-   */
-  public boolean shouldUseExtraSpace()
-  {
-    return true;
-  }
-
-  public void doHandleEvent(Event event)
-  {
-    if (event.type == SWT.Modify)
-    {
-      if (event.widget == prefixText)
-      {
-        if (validatePrefix(prefixText.getText()) && schemaLocationText.getText().trim().length() > 0)
-        {
-          Element element = ((XSDConcreteComponent)getInput()).getElement();
-          Map map = getSchema().getQNamePrefixToNamespaceMap();
-
-          if (map.containsKey(prefixText.getText()))
-          {
-            setErrorMessage(XSDEditorPlugin.getXSDString("_ERROR_LABEL_PREFIX_EXISTS"));
-          }
-          else
-          {
-            beginRecording(XSDEditorPlugin.getXSDString("_UI_PREFIX_CHANGE"), element);
-            
-            Element schemaElement = getSchema().getElement();
-            schemaElement.removeAttribute("xmlns:"+oldPrefixValue);
-            schemaElement.setAttribute("xmlns:" + prefixText.getText(), namespaceText.getText());
-            XSDSchemaHelper.updateElement(getSchema());
-
-            clearErrorMessage();
-            oldPrefixValue = prefixText.getText();
-            endRecording(element);  
-
-//            System.out.println("Map is " + map.values());
-//            System.out.println("Map keys are " + map.keySet());
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceProcessContentsSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceProcessContentsSection.java
deleted file mode 100644
index 6deaca9..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceProcessContentsSection.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.wst.common.ui.properties.ITabbedPropertyConstants;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDProcessContents;
-import org.eclipse.xsd.XSDWildcard;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class NamespaceProcessContentsSection extends AbstractSection
-{
-  CCombo namespaceCombo;
-  CCombo processContentsCombo;
-  
-  private String[] namespaceComboValues = {
-      "",               //$NON-NLS-1$
-      "##any",          //$NON-NLS-1$
-      "##other",        //$NON-NLS-1$
-      "##targetNamespace", //$NON-NLS-1$
-      "##local" //$NON-NLS-1$
-  };
-
-  /**
-   * 
-   */
-  public NamespaceProcessContentsSection()
-  {
-    super();
-  }
-
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent,TabbedPropertySheetWidgetFactory factory)
-	{
-		super.createControls(parent, factory);
-		Composite composite =	getWidgetFactory().createFlatFormComposite(parent);
-		FormData data;
-		
-
-		namespaceCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-		data = new FormData();
-		data.left = new FormAttachment(0, 100);
-		data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(0, 0);
-		namespaceCombo.setLayoutData(data);
-//		Iterator list = XSDNamespaceConstraintCategory.VALUES.iterator();
-//		while (list.hasNext())
-//		{
-//		  namespaceCombo.add(((XSDNamespaceConstraintCategory)list.next()).getName());
-//		}
-		namespaceCombo.setItems(namespaceComboValues);
-		namespaceCombo.addSelectionListener(this);
-
-		CLabel namespaceLabel = getWidgetFactory().createCLabel(composite, XSDConstants.NAMESPACE_ATTRIBUTE);
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(namespaceCombo, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(namespaceCombo, 0, SWT.CENTER);
-		namespaceLabel.setLayoutData(data);
-
-		processContentsCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-		data = new FormData();
-		data.left = new FormAttachment(0, 100);
-		data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(namespaceCombo, +ITabbedPropertyConstants.VSPACE);
-		processContentsCombo.setLayoutData(data);
-		Iterator list = XSDProcessContents.VALUES.iterator();
-		processContentsCombo.add(""); //$NON-NLS-1$
-		while (list.hasNext())
-		{
-		  processContentsCombo.add(((XSDProcessContents)list.next()).getName());
-		}
-		processContentsCombo.addSelectionListener(this);
-
-		CLabel processContentsLabel = getWidgetFactory().createCLabel(composite, XSDConstants.PROCESSCONTENTS_ATTRIBUTE);
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(processContentsCombo, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(processContentsCombo, 0, SWT.CENTER);
-		processContentsLabel.setLayoutData(data);
-	}
-
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh()
-	{
-//	  namespaceCombo.removeSelectionListener(this);
-//	  processContentsCombo.removeSelectionListener(this);
-	  namespaceCombo.setText(""); //$NON-NLS-1$
-	  processContentsCombo.setText(""); //$NON-NLS-1$
-	  Object input = getInput();
-	  if (input != null)
-	  {
-	    if (input instanceof XSDWildcard)
-	    {
-	      XSDWildcard wildcard = (XSDWildcard)input;
-	      List listNS = wildcard.getNamespaceConstraint();
-	      if (wildcard.isSetLexicalNamespaceConstraint())
-	      {
-	        namespaceCombo.setText(wildcard.getStringLexicalNamespaceConstraint());
-	      }
-	      else
-	      {
-	        namespaceCombo.setText("");
-	      }
-	      if (wildcard.isSetProcessContents())
-	      {
-	        XSDProcessContents pc = wildcard.getProcessContents();
-	        processContentsCombo.setText(pc.getName());
-	      }
-	    }
-	  }
-//	  namespaceCombo.addSelectionListener(this);
-//	  processContentsCombo.addSelectionListener(this);
-	}
-	
-  public boolean shouldUseExtraSpace()
-  {
-    return false;
-  }
-
-  public void widgetSelected(SelectionEvent e)
-  {
-    XSDConcreteComponent concreteComponent = (XSDConcreteComponent)getInput();
-    Element element = concreteComponent.getElement();
-    if (concreteComponent instanceof XSDWildcard)
-    {
-      XSDWildcard wildcard =  (XSDWildcard)concreteComponent;
-      if (e.widget == namespaceCombo)
-      {
-        String newValue = namespaceCombo.getText();
-        boolean removeAttribute = false;
-        if (newValue.length() == 0)
-        {
-          removeAttribute = true;
-        }
-
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_NAMESPACE_CHANGE"), element); //$NON-NLS-1$
-        if (removeAttribute)
-        {
-          wildcard.unsetLexicalNamespaceConstraint();
-        }
-        else
-        {
-          wildcard.setStringLexicalNamespaceConstraint(newValue);
-        }
-        endRecording(element);
-      }
-      else if (e.widget == processContentsCombo)
-      {
-        String newValue = processContentsCombo.getText();
-        boolean removeAttribute = false;
-        if (newValue.length() == 0)
-        {
-          removeAttribute = true;
-        }
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_PROCESSCONTENTS_CHANGE"), element); //$NON-NLS-1$
-        if (removeAttribute)
-        {
-          wildcard.unsetProcessContents();
-        }
-        else
-        {
-          wildcard.setProcessContents(XSDProcessContents.get(processContentsCombo.getItem(processContentsCombo.getSelectionIndex())));
-        }
-        endRecording(element);
-      }
-    }
-    refresh();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceProcessContentsSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceProcessContentsSectionDescriptor.java
deleted file mode 100644
index 2198f2e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceProcessContentsSectionDescriptor.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.xsd.XSDWildcard;
-
-public class NamespaceProcessContentsSectionDescriptor extends AbstractSectionDescriptor
-{
-  /**
-   * 
-   */
-  public NamespaceProcessContentsSectionDescriptor()
-  {
-    super();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getId()
-   */
-  public String getId()
-  {
-    return "com.ibm.xsdeditor.section.namespaceprocesscontents";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-   */
-  public List getInputTypes()
-  {
-    List list = new ArrayList();
-    list.add(XSDWildcard.class);
-    return list;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-   */
-  public ISection getSectionClass()
-  {
-    return new NamespaceProcessContentsSection();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-   */
-  public String getTargetTab()
-  {
-    return "com.ibm.xmlwebservices.general";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-  {
-    Object object = null;
-    if (selection instanceof StructuredSelection)
-    {
-      StructuredSelection structuredSelection = (StructuredSelection)selection;
-      object = structuredSelection.getFirstElement();
-      if (object instanceof XSDWildcard)
-      {
-        return true;
-      }
-    }
-    return false;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceSection.java
deleted file mode 100644
index d53d02b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceSection.java
+++ /dev/null
@@ -1,432 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Map;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ITabbedPropertyConstants;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.actions.XSDEditNamespacesAction;
-import org.eclipse.wst.xsd.ui.internal.refactor.rename.TargetNamespaceChangeHandler;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.XSDSchemaHelper;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class NamespaceSection extends AbstractSection
-{
-	  IWorkbenchPart part;
-	  Text prefixText;
-	  Text targetNamespaceText;
-    Button editButton;
-    StyledText errorText;
-    Color red;
-	  
-	  /**
-	   * 
-	   */
-	  public NamespaceSection()
-	  {
-	    super();
-	  }
-
-		/**
-		 * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-		 */
-		public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-		{
-			super.createControls(parent, factory);
-			Composite composite = getWidgetFactory().createFlatFormComposite(parent);
-      
-			// Create Prefix Label
-			CLabel prefixLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_SCHEMA_PREFIX")); //$NON-NLS-1$
-
-      int leftCoordinate = getStandardLabelWidth(composite, 
-          new String[] {XSDEditorPlugin.getXSDString("_UI_LABEL_TARGET_NAME_SPACE"), XSDEditorPlugin.getXSDString("_UI_LABEL_SCHEMA_PREFIX")});
-      
-			// Create Prefix Text
-			prefixText = getWidgetFactory().createText(composite, "", SWT.NONE); //$NON-NLS-1$
-			FormData prefixTextData = new FormData();
-			// prefixTextData.left = new FormAttachment(0, 115);
-      prefixTextData.left = new FormAttachment(0, leftCoordinate);
-			prefixTextData.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-			prefixText.setLayoutData(prefixTextData);
-			prefixText.addListener(SWT.Modify, this);		    
-		    
-			FormData data = new FormData();
-			data.left = new FormAttachment(0, 0);
-			data.right = new FormAttachment(prefixText, -ITabbedPropertyConstants.HSPACE);
-      data.top = new FormAttachment(prefixText, 0, SWT.CENTER);
-			prefixLabel.setLayoutData(data);
-
-			// Create TargetNamespace Label
-			CLabel targetNamespaceLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_TARGET_NAME_SPACE")); //$NON-NLS-1$
-      
-      // Create TargetNamespace Text
-      targetNamespaceText = getWidgetFactory().createText(composite, "", SWT.NONE); //$NON-NLS-1$
-      
-			FormData tnsLabelData = new FormData();
-			tnsLabelData.left = new FormAttachment(0, 0);
-      tnsLabelData.right = new FormAttachment(targetNamespaceText, -ITabbedPropertyConstants.HSPACE); 
-			tnsLabelData.top = new FormAttachment(targetNamespaceText, 0, SWT.CENTER);
-			targetNamespaceLabel.setLayoutData(tnsLabelData);
-
-      FormData tnsTextData = new FormData();
-      // tnsTextData.left = new FormAttachment(0, 115);
-      tnsTextData.left = new FormAttachment(0, leftCoordinate);
-      tnsTextData.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-      tnsTextData.top = new FormAttachment(prefixText, +ITabbedPropertyConstants.VSPACE);
-      targetNamespaceText.setLayoutData(tnsTextData);
-      targetNamespaceText.addListener(SWT.Modify, this);
-      
-      // Advanced Button
-      editButton = getWidgetFactory().createButton(composite, XSDEditorPlugin.getXSDString("_UI_SECTION_ADVANCED_ATTRIBUTES") + "...", SWT.PUSH);
-
-      FormData buttonFormData = new FormData();
-      buttonFormData.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-      buttonFormData.top = new FormAttachment(targetNamespaceText, +ITabbedPropertyConstants.VSPACE);
-      editButton.setLayoutData(buttonFormData);
-      editButton.addSelectionListener(this);
-
-      // error text
-      errorText = new StyledText(composite, SWT.FLAT);
-      errorText.setEditable(false);
-      errorText.setEnabled(false);
-      errorText.setText("");
-      
-      data = new FormData();
-      data.left = new FormAttachment(targetNamespaceText, 0, SWT.LEFT);
-      data.right = new FormAttachment(100, 0);
-      data.top = new FormAttachment(editButton, 0);
-      errorText.setLayoutData(data);
-    }
-
-		/*
-		 * @see org.eclipse.wst.common.ui.properties.view.ITabbedPropertySection#refresh()
-		 */
-		public void refresh()
-		{
-      if (doRefresh)
-      {
-        // hack...open bug against properties
-        if (prefixText.isDisposed() || targetNamespaceText.isDisposed())
-        {
-          return;
-        }
-        if (prefixText.isFocusControl() || targetNamespaceText.isFocusControl())
-        {
-          return;
-        }
-
-        setListenerEnabled(false);
-	    	 
-			  Element element = xsdSchema.getElement();
-	    	
-        if (element != null)
-        {
-  		    // Handle prefixText
-  			  TypesHelper helper = new TypesHelper(xsdSchema);
-    		  String aPrefix = helper.getPrefix(element.getAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE), false);
-        
-          if (aPrefix != null && aPrefix.length() > 0)
-  	      {
-  	  	  	prefixText.setText(aPrefix);
-  	  	  }
-  	  	  else
-          {
-  			  	prefixText.setText(""); //$NON-NLS-1$
-  			  }
-  	    	 
-  				// Handle TargetNamespaceText
-  				String tns = element.getAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE);
-  			  if (tns != null && tns.length() > 0)
-          {
-   	        targetNamespaceText.setText(tns);
-   	      }
-  			  else
-          {
-  				  targetNamespaceText.setText(""); //$NON-NLS-1$
-  			  }
-          errorText.setText("");
-        }
-				setListenerEnabled(true);
-			}
-		}
-		
-		public void doHandleEvent(Event event)
-		{
-      errorText.setText("");
-      String prefixValue = prefixText.getText();
-      String tnsValue = targetNamespaceText.getText();
-      if (tnsValue.trim().length() == 0)
-      {
-        if (prefixValue.trim().length() > 0)
-        {
-          errorText.setText(XSDEditorPlugin.getXSDString("_ERROR_TARGET_NAMESPACE_AND_PREFIX"));
-          int length = errorText.getText().length();
-          red = new Color(null, 255, 0, 0);
-          StyleRange style = new StyleRange(0, length, red, targetNamespaceText.getBackground());
-          errorText.setStyleRange(style);
-          return;
-        }
-      }
-
-		  if (event.widget == prefixText)
-		  {
-        updateNamespaceInfo(prefixValue, tnsValue);
-		  }
-		  else if (event.widget == targetNamespaceText)
-      {
-		  	TypesHelper helper = new TypesHelper(xsdSchema);
-			  String aPrefix = helper.getPrefix(xsdSchema.getElement().getAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE), false);
-		  	// updateNamespaceInfo(aPrefix, tnsValue);
-        updateNamespaceInfo(prefixValue, tnsValue);
-		  }
-		}
-		
-		public void doWidgetSelected(SelectionEvent e) {
-			if (e.widget == editButton) {
-				XSDEditNamespacesAction nsAction = new XSDEditNamespacesAction(XSDEditorPlugin.getXSDString("_UI_ACTION_EDIT_NAMESPACES"), xsdSchema.getElement(), null, xsdSchema); //$NON-NLS-1$ 
-				nsAction.run();
-				refresh();				
-			}			
-		}
-
-	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.common.ui.properties.ISection#shouldUseExtraSpace()
-	   */
-	  public boolean shouldUseExtraSpace()
-	  {
-	    return true;
-	  }
-
-	  private void updateNamespaceInfo(String newPrefix, String newTargetNamespace)
-	  {
-	    Element element = xsdSchema.getElement();
-	    DocumentImpl doc = (DocumentImpl)element.getOwnerDocument();
-
-	    String modelTargetNamespace = xsdSchema.getTargetNamespace();
-	    String oldNamespace = xsdSchema.getTargetNamespace();
-	    
-	    TypesHelper helper = new TypesHelper(xsdSchema);
-   		String oldPrefix = helper.getPrefix(element.getAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE), false);
-	    
-	    if (modelTargetNamespace == null)
-	    {
-	      modelTargetNamespace = ""; //$NON-NLS-1$
-	    }
-	        
-	    String targetNamespace = newTargetNamespace.trim(); 
-	    String prefix = newPrefix.trim();
-
-	    if (!validatePrefix(prefix) || !validateTargetNamespace(targetNamespace))
-	    {
-	      return;
-	    }
-	        
-	    if (prefix.length() > 0 && targetNamespace.length() == 0)
-	    {
-	       // can't have blank targetnamespace and yet specify a prefix
-	       return;
-	    }
-
-	    doc.getModel().beginRecording(this, XSDEditorPlugin.getXSDString("_UI_TARGETNAMESPACE_CHANGE")); //$NON-NLS-1$
-	    String xsdForXSDPrefix = xsdSchema.getSchemaForSchemaQNamePrefix();
-	    Map map = xsdSchema.getQNamePrefixToNamespaceMap();
-
-//	 For debugging
-//	        System.out.println("1. SW Map is " + map.values());
-//	        System.out.println("1. SW Map keys are " + map.keySet());
-
-	    // Check if prefix is blank
-	    // if it is, then make sure we have a prefix 
-	    // for schema for schema
-	    if (prefix.length() == 0)
-	    {
-	      // if prefix for schema for schema is blank
-	      // then set it to value specified in preference
-	      // and update ALL nodes with this prefix
-	      if (xsdForXSDPrefix == null || (xsdForXSDPrefix != null && xsdForXSDPrefix.trim().length() == 0))
-	      {
-	        // get preference prefix
-	        xsdForXSDPrefix = XSDEditorPlugin.getPlugin().getXMLSchemaPrefix();
-	        // get a unique prefix by checking what's in the map
-
-	        xsdForXSDPrefix = getUniqueSchemaForSchemaPrefix(xsdForXSDPrefix, map);
-	        element.setAttribute("xmlns:" + xsdForXSDPrefix, XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001); //$NON-NLS-1$
-
-	        updateAllNodes(element, xsdForXSDPrefix);
-	            
-	        // remove the old xmlns attribute for the schema for schema
-	        if (element.getAttribute("xmlns") != null && //$NON-NLS-1$
-	            element.getAttribute("xmlns").equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001)) //$NON-NLS-1$
-	        {
-	          element.removeAttribute("xmlns"); //$NON-NLS-1$
-	        }
-	      }
-	    }
-
-	    if (targetNamespace.length() > 0 ||
-	       (targetNamespace.length() == 0 && prefix.length() == 0))
-	    {
-	      // clean up the old prefix for this schema
-	      if (oldPrefix != null && oldPrefix.length() > 0)
-	      {
-	        element.removeAttribute("xmlns:"+oldPrefix); //$NON-NLS-1$
-//	            element.setAttribute("xmlns:" + prefix, targetNamespace);
-//	            java.util.Map prefixToNameSpaceMap = xsdSchema.getQNamePrefixToNamespaceMap();
-//	            prefixToNameSpaceMap.remove(oldPrefix);
-	      }
-	      else // if no prefix
-	      {
-	        if (element.getAttribute("xmlns") != null) //$NON-NLS-1$
-	        {
-	          if (!element.getAttribute("xmlns").equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001)) //$NON-NLS-1$
-	           {
-	            element.removeAttribute("xmlns"); //$NON-NLS-1$
-	          }
-	        }
-	      }
-	    }
-
-	    if (targetNamespace.length() > 0)
-	    {
-	      if (!modelTargetNamespace.equals(targetNamespace))
-	      {
-	        element.setAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE, targetNamespace);
-	      }
-	      // now set the new xmlns:prefix attribute
-	      if (prefix.length() > 0)
-	      {
-	        element.setAttribute("xmlns:" + prefix, targetNamespace); //$NON-NLS-1$
-	      }
-	      else
-	      {
-	        element.setAttribute("xmlns", targetNamespace); //$NON-NLS-1$
-	      }
-	      // set the targetNamespace attribute
-	    }
-	    else // else targetNamespace is blank
-	    {
-	      if (prefix.length() == 0)
-	      {
-	        element.removeAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE);
-	      }
-	    }
-
-//	    System.out.println("1.5 SW Map is " + map.values());
-//	    System.out.println("1.5 SW Map keys are " + map.keySet());
-	    
-	    // do our own referential integrity
-	    TargetNamespaceChangeHandler targetNamespaceChangeHandler = new TargetNamespaceChangeHandler(xsdSchema, oldNamespace, targetNamespace);
-	    targetNamespaceChangeHandler.resolve();
-	    
-	    XSDSchemaHelper.updateElement(xsdSchema);
-	    
-	    doc.getModel().endRecording(this);
-
-//	 For debugging
-//	        map = xsdSchema.getQNamePrefixToNamespaceMap();
-//	        System.out.println("2. SW Map is " + map.values());
-//	        System.out.println("2. SW Map keys are " + map.keySet());
-	  }
-
-	  private String getUniqueSchemaForSchemaPrefix(String xsdForXSDPrefix, Map map)
-	  {
-	    if (xsdForXSDPrefix == null || (xsdForXSDPrefix != null && xsdForXSDPrefix.trim().length() == 0))
-	     {       
-	      xsdForXSDPrefix = "xsd"; //$NON-NLS-1$
-	    }
-	    // ensure prefix is unique
-	    int prefixExtension = 1;
-	    while (map.containsKey(xsdForXSDPrefix) && prefixExtension < 100)
-	     {
-	      xsdForXSDPrefix = xsdForXSDPrefix + String.valueOf(prefixExtension);
-	      prefixExtension++;
-	    }
-	    return xsdForXSDPrefix;
-	  }
-	  
-	  private void updateAllNodes(Element element, String prefix)
-	  {
-	    element.setPrefix(prefix);
-	    NodeList list = element.getChildNodes();
-	    if (list != null)
-	    {
-	      for (int i=0; i < list.getLength(); i++)
-	      {
-	        Node child = list.item(i);
-	        if (child != null && child instanceof Element)
-	        {
-	          child.setPrefix(prefix);
-	          if (child.hasChildNodes())
-	          {
-	            updateAllNodes((Element)child, prefix);
-	          }
-	        }
-	      }
-	    }   
-	  }
-	  
-	  private boolean validateTargetNamespace(String ns)
-	  {
-	    // will allow blank namespace !!
-	    if (ns.equals(""))
-	     {
-	      return true;
-	    }
-	    
-	    String errorMessage = null;
-      try
-      {
-        URI testURI = new URI(ns);
-      }
-      catch (URISyntaxException e)
-      {
-	      errorMessage = XSDEditorPlugin.getXSDString("_WARN_INVALID_TARGET_NAMESPACE"); //$NON-NLS-1$
-	    }
-	    
-	    if (errorMessage == null || errorMessage.length() == 0)
-	     {
-	      return true;
-	    }
-	    return false;
-	  }
-    
-    public void dispose()
-    {
-      super.dispose();
-      if (red != null)
-      {
-        red.dispose();
-        red = null;
-      }
-    }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceSectionDescriptor.java
deleted file mode 100644
index c156eaa..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/NamespaceSectionDescriptor.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.impl.XSDSchemaImpl;
-
-public class NamespaceSectionDescriptor extends AbstractSectionDescriptor
-{
-	  NamespaceSection namespaceSection;
-	  /**
-	   * 
-	   */
-	  public NamespaceSectionDescriptor()
-	  {
-	    super();
-	    namespaceSection = new NamespaceSection();
-	  }
-
-	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getId()
-	   */
-	  public String getId()
-	  {
-	    return "com.ibm.xsdeditor.section.namespaceSection";
-	  }
-
-	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-	   */
-	  public List getInputTypes()
-	  {
-	    List list = new ArrayList();
-	    list.add(XSDConcreteComponent.class);
-	    return list;
-	  }
-
-	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-	   */
-	  public ISection getSectionClass()
-	  {
-	    return namespaceSection;
-	  }
-
-	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-	   */
-	  public String getTargetTab()
-	  {
-	    return "com.ibm.xmlwebservices.general";
-	  }
-
-	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-	   */
-	  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-	  {
-	    Object object = null;
-	    if (selection instanceof StructuredSelection)
-	    {
-	      StructuredSelection structuredSelection = (StructuredSelection)selection;
-	      object = structuredSelection.getFirstElement();
-	      if (object instanceof XSDSchemaImpl) {
-	      	return true;
-	      }
-	    }
-	    
-	    return false;
-	  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/OtherAttributesSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/OtherAttributesSection.java
deleted file mode 100644
index 7309ced..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/OtherAttributesSection.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.PropertySheetPage;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.xsd.ui.internal.properties.XSDPropertySourceProvider;
-import org.eclipse.xsd.XSDElementDeclaration;
-
-public class OtherAttributesSection extends AbstractSection
-{
-  PropertySheetPage propertySheetPage;
-  IWorkbenchPart part;
-  
-  /**
-   * 
-   */
-  public OtherAttributesSection()
-  {
-    super();
-  }
-
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-	{
-		super.createControls(parent, factory);
-		composite = getWidgetFactory().createFlatFormComposite(parent);
-		FormData data = new FormData();
-		data.left = new FormAttachment(0, 0);
-    data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(0, 0);
-		data.bottom = new FormAttachment(100, 0);
-    
-//    composite = new Composite(parent, SWT.FLAT);
-//    GridLayout gl = new GridLayout(1, true);
-//    composite.setLayout(gl);
-//    GridData data = new GridData();
-//    data.grabExcessHorizontalSpace = true;
-//    data.grabExcessVerticalSpace = true; 
-//    composite.setLayoutData(data);
-    
-    propertySheetPage = new PropertySheetPage();
-		propertySheetPage.createControl(composite);
-    propertySheetPage.setPropertySourceProvider(new XSDPropertySourceProvider());
-    propertySheetPage.getControl().setLayoutData(data);
-	}
-	
-	public void selectionChanged(IWorkbenchPart part, ISelection selection)
-	{
-	  this.part = part;
-	  this.selection = selection;
-	  if (propertySheetPage == null)
-	  {
-	    propertySheetPage = new PropertySheetPage();
-	  }
-	  propertySheetPage.selectionChanged(part, selection);
-	}
-  
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh()
-	{
-    if (doRefresh)
-    {
-      if (isReadOnly)
-      {
-        composite.setEnabled(false);
-      }
-      else
-      {
-        composite.setEnabled(true);
-      }
-
-	    Object input = getInput();
-      if (!propertySheetPage.getControl().isDisposed())
-  	    propertySheetPage.selectionChanged(part, selection);
-    }
-	}
-
-  public void dispose()
-  {
-//    propertySheetPage.dispose();
-//    propertySheetPage = null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISection#shouldUseExtraSpace()
-   */
-  public boolean shouldUseExtraSpace()
-  {
-    return true;
-  }
-  
-  public void setInput(IWorkbenchPart part, ISelection selection)
-  {
-    super.setInput(part, selection);
-    if (input instanceof XSDElementDeclaration)
-    {
-      XSDElementDeclaration elementDeclaration = (XSDElementDeclaration)input;
-      if (elementDeclaration.isElementDeclarationReference())
-      {
-        input = elementDeclaration.getResolvedElementDeclaration();
-        
-        isReadOnly = (!(elementDeclaration.getResolvedElementDeclaration().getRootContainer() == xsdSchema));
-      }
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/OtherAttributesSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/OtherAttributesSectionDescriptor.java
deleted file mode 100644
index 714d6c2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/OtherAttributesSectionDescriptor.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.xsd.XSDAnnotation;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDEnumerationFacet;
-import org.eclipse.xsd.XSDIdentityConstraintCategory;
-import org.eclipse.xsd.XSDIdentityConstraintDefinition;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDPatternFacet;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDWildcard;
-
-public class OtherAttributesSectionDescriptor extends AbstractSectionDescriptor
-{
-  OtherAttributesSection otherAttributesSection;
-  /**
-   * 
-   */
-  public OtherAttributesSectionDescriptor()
-  {
-    super();
-    otherAttributesSection = new OtherAttributesSection();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getId()
-   */
-  public String getId()
-  {
-    return "com.ibm.xsdeditor.section.otherattributes";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-   */
-  public List getInputTypes()
-  {
-    List list = new ArrayList();
-    list.add(XSDConcreteComponent.class);
-    return list;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-   */
-  public ISection getSectionClass()
-  {
-    return otherAttributesSection;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-   */
-  public String getTargetTab()
-  {
-    return "com.ibm.xmlwebservices.other";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-  {
-    Object object = null;
-    if (selection instanceof StructuredSelection)
-    {
-      StructuredSelection structuredSelection = (StructuredSelection)selection;
-      object = structuredSelection.getFirstElement();
-      if (object instanceof XSDConcreteComponent)
-      {
-      	if (object instanceof XSDAttributeGroupDefinition ||
-      	    object instanceof XSDAttributeUse ||
-      	    object instanceof XSDAttributeDeclaration ||
-      	    object instanceof XSDEnumerationFacet ||
-      	    object instanceof XSDPatternFacet ||
-      	    object instanceof XSDSimpleTypeDefinition ||
-      	    object instanceof XSDAnnotation ||
-            object instanceof XSDWildcard ||
-            object instanceof XSDSchemaDirective)
-      	{
-     	    return false;
-      	}
-        else if (object instanceof XSDModelGroup)
-        {
-          return false;
-        }
-        else if (object instanceof XSDElementDeclaration)
-        {
-//        Remove this to fix bug 3870 Element references should have the same properties as elements 
-//          if (((XSDElementDeclaration)object).isElementDeclarationReference())
-//          {
-//            return false;
-//          }
-          return true;
-        }
-        else if (object instanceof XSDModelGroupDefinition)
-        {
-          if (((XSDModelGroupDefinition)object).isModelGroupDefinitionReference())
-          {
-            return false;
-          }
-          return false;
-        }
-        else if (object instanceof XSDIdentityConstraintDefinition)
-        {
-          XSDIdentityConstraintDefinition constraint = (XSDIdentityConstraintDefinition)object;
-          XSDIdentityConstraintCategory category = constraint.getIdentityConstraintCategory();
-          if (category.getValue() == XSDIdentityConstraintCategory.KEYREF)
-          {
-            return true;
-          }
-          else
-          {
-            return false;
-          }
-        }
-        return true;
-      }
-    }
-    return false;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/PatternSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/PatternSection.java
deleted file mode 100644
index b0fc34f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/PatternSection.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.common.ui.properties.ITabbedPropertyConstants;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.wizards.RegexWizard;
-import org.eclipse.xsd.XSDPatternFacet;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class PatternSection extends AbstractSection
-{
-  /**
-   * 
-   */
-  public PatternSection()
-  {
-    super();
-  }
-  
-  Text patternText;
-  Button button;
-
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-	{
-
-		super.createControls(parent, factory);
-		Composite composite = getWidgetFactory().createFlatFormComposite(parent);
-		FormData data;
-
-		patternText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-		CLabel nameLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_VALUE") + ":"); //$NON-NLS-1$
-    button = getWidgetFactory().createButton(composite, "", SWT.PUSH); //$NON-NLS-1$
-    button.setImage(XSDEditorPlugin.getXSDImage("icons/browsebutton.gif")); //$NON-NLS-1$
-    
-    patternText.addListener(SWT.Modify, this);
-
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(patternText, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(button, 0, SWT.CENTER);
-		nameLabel.setLayoutData(data);
-
-    button.addSelectionListener(this);
-		data = new FormData();
-		data.left = new FormAttachment(100, -rightMarginSpace + 2);
-		data.right = new FormAttachment(100,0);
-		data.top = new FormAttachment(patternText, 0, SWT.CENTER);
-		button.setLayoutData(data);
-
-    data = new FormData();
-    data.left = new FormAttachment(0, 100);
-    data.right = new FormAttachment(button, 0);
-    patternText.setLayoutData(data);
-	}
-
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh()
-	{
-	  setListenerEnabled(false);
-	  Object input = getInput();
-	  patternText.setText(""); //$NON-NLS-1$
-	  if (input != null)
-	  {
-	    Element element = null;
-	    if (input instanceof XSDPatternFacet)
-	    {
-	      element = ((XSDPatternFacet)input).getElement();
-	    }
-	    if (element != null)
-	    {
-        String result = element.getAttribute(XSDConstants.VALUE_ATTRIBUTE);
-        if (result != null)
-        {
-          patternText.setText(result);
-        }
-	    }
-	  }
-	  setListenerEnabled(true);
-	}
-
-  /**
-   * @see org.eclipse.swt.events.SelectionListener#widgetSelected(SelectionEvent)
-   */
-  public void widgetSelected(SelectionEvent e)
-  {
-    if (e.widget == button)
-    {
-	    Shell shell = Display.getCurrent().getActiveShell();
-	    Element element = ((XSDPatternFacet)getInput()).getElement();
-
-      String initialValue = element.getAttribute(XSDConstants.VALUE_ATTRIBUTE);
-      if (initialValue == null)
-      {
-        initialValue = ""; //$NON-NLS-1$
-      }
-      RegexWizard wizard = new RegexWizard(initialValue);
-
-      WizardDialog wizardDialog = new WizardDialog(shell, wizard);
-      wizardDialog.setBlockOnOpen(true);
-      wizardDialog.create();
-      
-      int result = wizardDialog.open();
-
-      if (result == Window.OK)
-      {
-        String newPattern = wizard.getPattern();
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_PATTERN_VALUE_CHANGE"), element); //$NON-NLS-1$
-        element.setAttribute(XSDConstants.VALUE_ATTRIBUTE, newPattern);
-        ((XSDPatternFacet)getInput()).setLexicalValue(newPattern);
-        endRecording(element);
-      }
-
-      refresh();
-    }
-  }
-  
-  public void doHandleEvent(Event event)
-  {
-	  if (event.widget == patternText)
-	  {
-		  XSDPatternFacet pattern = (XSDPatternFacet)getInput();
-		  
-      String newValue = patternText.getText();
-      if (newValue.length() > 0)
-      {
-        pattern.setLexicalValue(newValue);
-      }
-	  }
-
-  }
-
-  public boolean shouldUseExtraSpace()
-  {
-    return false;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/PatternSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/PatternSectionDescriptor.java
deleted file mode 100644
index e7432e8..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/PatternSectionDescriptor.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.xsd.XSDPatternFacet;
-
-public class PatternSectionDescriptor extends AbstractSectionDescriptor
-{
-  /**
-   * 
-   */
-  public PatternSectionDescriptor()
-  {
-    super();
-  }
-  
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getId()
-   */
-  public String getId()
-  {
-    return "com.ibm.xsdeditor.section.pattern";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-   */
-  public List getInputTypes()
-  {
-    List list = new ArrayList();
-    list.add(XSDPatternFacet.class);
-    return list;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-   */
-  public ISection getSectionClass()
-  {
-    return new PatternSection();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-   */
-  public String getTargetTab()
-  {
-    return "com.ibm.xmlwebservices.general";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-  {
-    Object object = null;
-    if (selection instanceof StructuredSelection)
-    {
-      StructuredSelection structuredSelection = (StructuredSelection)selection;
-      object = structuredSelection.getFirstElement();
-      if (object instanceof XSDPatternFacet)
-      {
-        return true;
-      }
-    }
-    return false;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ReferenceSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ReferenceSection.java
deleted file mode 100644
index 472bd0b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ReferenceSection.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ITabbedPropertyConstants;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDParticleContent;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class ReferenceSection extends AbstractSection
-{
-  protected CCombo componentNameCombo; 
-  Button button;
-  IEditorPart editorPart;
-  CLabel refLabel;
-  
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-	{
-		super.createControls(parent, factory);
-		composite = getWidgetFactory().createFlatFormComposite(parent);
-		FormData data;
-
-    componentNameCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-    componentNameCombo.addSelectionListener(this);
-		data = new FormData();
-		data.left = new FormAttachment(0, 100);
-		data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(0, 1);
-		componentNameCombo.setLayoutData(data);
-
-		refLabel = getWidgetFactory().createCLabel(composite, XSDConstants.REF_ATTRIBUTE + ":");  //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(componentNameCombo, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(componentNameCombo, 0, SWT.CENTER);
-		refLabel.setLayoutData(data);
-	}
-
-  public void setInput(IWorkbenchPart part, ISelection selection)
-  {
-    super.setInput(part, selection);
-    
-    Object obj = getInput();
-    TypesHelper helper = new TypesHelper(xsdSchema);
-    List items = new ArrayList();
-    if (obj instanceof XSDElementDeclaration)
-    {
-      XSDElementDeclaration elementDeclaration = (XSDElementDeclaration)obj;
-      if (elementDeclaration.isElementDeclarationReference())
-      {
-        items = helper.getGlobalElements();
-//            minimumField.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_ELEMENT_MINIMUM"));
-//            WorkbenchHelp.setHelp(minimumField, XSDEditorContextIds.XSDE_ELEMENT_REF_MINIMUM);
-//            maximumField.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_ELEMENT_MAXIMUM"));
-//            WorkbenchHelp.setHelp(maximumField, XSDEditorContextIds.XSDE_ELEMENT_REF_MAXIMUM);
-      }
-    }
-    else if (obj instanceof XSDAttributeDeclaration)
-    {
-      items = helper.getGlobalAttributes();
-    }
-    else if (obj instanceof XSDModelGroupDefinition)
-    {
-      XSDModelGroupDefinition group = (XSDModelGroupDefinition)obj;
-      if (group.isModelGroupDefinitionReference())
-      {
-        items = helper.getModelGroups();
-          // Need tooltip for Group Ref
-//            minimumField.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_ELEMENT_MINIMUM"));
-//            WorkbenchHelp.setHelp(minimumField, XSDEditorContextIds.XSDE_GROUP_REF_MINIMUM);
-//            maximumField.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_ELEMENT_MAXIMUM"));
-//            WorkbenchHelp.setHelp(maximumField, XSDEditorContextIds.XSDE_GROUP_REF_MAXIMUM);
-      }
-    }
-    else if (obj instanceof XSDNamedComponent)
-    {
-      XSDNamedComponent namedComponent = (XSDNamedComponent)obj;
-      Element element = namedComponent.getElement();
-      if (XSDDOMHelper.inputEquals(element, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, true))
-      {
-        items = helper.getGlobalAttributeGroups();
-//      WorkbenchHelp.setHelp(client, XSDEditorContextIds.XSDE_ATTRIBUTE_GROUP_REF_DESIGN_VIEW);
-//      WorkbenchHelp.setHelp(refCombo, XSDEditorContextIds.XSDE_ATTRIBUTE_GROUP_REF_NAME);
-      }
-      else if (XSDDOMHelper.inputEquals(element, XSDConstants.ELEMENT_ELEMENT_TAG, true))
-      {
-        items = helper.getGlobalElements();
-//          minimumField.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_ELEMENT_MINIMUM"));
-//          WorkbenchHelp.setHelp(minimumField, XSDEditorContextIds.XSDE_ELEMENT_REF_MINIMUM);
-//          maximumField.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_ELEMENT_MAXIMUM"));
-//          WorkbenchHelp.setHelp(maximumField, XSDEditorContextIds.XSDE_ELEMENT_REF_MAXIMUM);
-      }
-    }
-    else if (obj instanceof XSDAttributeUse)
-    {
-      XSDAttributeUse attributeUse = (XSDAttributeUse)obj;
-      Element element = attributeUse.getElement();
-      if (XSDDOMHelper.inputEquals(element, XSDConstants.ATTRIBUTE_ELEMENT_TAG, true))
-      {
-        items = helper.getGlobalAttributes();
-//      WorkbenchHelp.setHelp(client, XSDEditorContextIds.XSDE_ATTRIBUTE_REF_DESIGN_VIEW);
-//      WorkbenchHelp.setHelp(refCombo, XSDEditorContextIds.XSDE_ATTRIBUTE_REF_NAME);      
-      }
-    }      
-    items.add(0, "");
-    int size = items.size();
-    String [] st = new String[size];
-    System.arraycopy(items.toArray(), 0, st, 0, size);
-    componentNameCombo.setItems(st);
-      
-    st = null;
-  }
-	
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh()
-	{
-    if (doRefresh)
-    {
-  	  setListenerEnabled(false);  
-  //	  componentNameCombo.removeListener(SWT.Modify, this);
-  	  Object input = getInput();
-      if (isReadOnly)
-      {
-        composite.setEnabled(false);
-      }
-      else
-      {
-        composite.setEnabled(true);
-      }
-
-  	  if (input instanceof XSDNamedComponent)
-  	  {
-        XSDNamedComponent namedComponent = (XSDNamedComponent)getInput();
-        Element element = namedComponent.getElement();
-        if (element != null)
-        {
-          String attrValue = element.getAttribute(XSDConstants.REF_ATTRIBUTE);
-          if (attrValue == null)
-          {
-            attrValue = "";
-          }
-          componentNameCombo.setText(attrValue);
-        }
-  	  }
-      else if (input instanceof XSDParticleContent)
-      {
-        XSDParticleContent particle = (XSDParticleContent)input;
-        Element element = particle.getElement();
-        String attrValue = element.getAttribute(XSDConstants.REF_ATTRIBUTE);
-        if (attrValue == null)
-        {
-          attrValue = "";
-        }
-        componentNameCombo.setText(attrValue);
-      }
-  	  else if (input instanceof XSDAttributeUse)
-  	  {
-  	    XSDAttributeUse attributeUse = (XSDAttributeUse)getInput();
-  	    Element element = attributeUse.getElement();
-        String attrValue = element.getAttribute(XSDConstants.REF_ATTRIBUTE);
-        if (attrValue == null)
-        {
-          attrValue = "";
-        }
-        componentNameCombo.setText(attrValue);
-  	  }
-  	  
-      setListenerEnabled(true);
-  //    componentNameCombo.addListener(SWT.Modify, this);
-    }
-	}
-
-	
-  public void widgetSelected(SelectionEvent e)
-  {
-	  Object input = getInput();
-    if (e.widget == componentNameCombo)
-    {
-      String newValue = componentNameCombo.getText();
-		  if (input instanceof XSDNamedComponent)
-		  {
-	      XSDNamedComponent namedComponent = (XSDNamedComponent)getInput();
-	      Element element = namedComponent.getElement();
-	      
-	      if (namedComponent instanceof XSDElementDeclaration)
-	      {
-	        beginRecording(XSDEditorPlugin.getXSDString("_UI_GROUP_REF_CHANGE"), element); //$NON-NLS-1$
-	        element.setAttribute(XSDConstants.REF_ATTRIBUTE, newValue);
-	        endRecording(element);
-	      }
-			  else if (namedComponent instanceof XSDAttributeDeclaration)
-			  {
-			    XSDAttributeDeclaration attr = (XSDAttributeDeclaration)namedComponent;
-	        beginRecording(XSDEditorPlugin.getXSDString("_UI_ATTRIBUTEGROUP_REF_CHANGE"), element); //$NON-NLS-1$
-	        element.setAttribute(XSDConstants.REF_ATTRIBUTE, newValue);
-	        endRecording(element);
-
-			  }
-	  	  else if (namedComponent instanceof XSDAttributeGroupDefinition)
-	  	  {
-	        beginRecording(XSDEditorPlugin.getXSDString("_UI_ATTRIBUTEGROUP_REF_CHANGE"), element); //$NON-NLS-1$
-	        // element.setAttribute(XSDConstants.REF_ATTRIBUTE, (String) value);
-	        XSDAttributeGroupDefinition attrGroup = (XSDAttributeGroupDefinition)namedComponent;
-	        Iterator iter = xsdSchema.getAttributeGroupDefinitions().iterator();
-	        while (iter.hasNext())
-	        {
-	          XSDAttributeGroupDefinition def = (XSDAttributeGroupDefinition)iter.next();
-	          if (def.getQName(xsdSchema).equals(componentNameCombo.getText()))
-	          {
-	            attrGroup.setResolvedAttributeGroupDefinition(def);
-	            attrGroup.setName(componentNameCombo.getText());
-	            break;
-	          }
-	        }  
-	        endRecording(element);
-	  	  }
-        else if (namedComponent instanceof XSDModelGroupDefinition)
-        {
-          beginRecording(XSDEditorPlugin.getXSDString("_UI_GROUP_REF_CHANGE"), element); //$NON-NLS-1$
-          XSDModelGroupDefinition modelGroup = (XSDModelGroupDefinition)namedComponent;
-          element.setAttribute(XSDConstants.REF_ATTRIBUTE, newValue);
-          endRecording(element);
-        }
-		  }
-		  else if (input instanceof XSDAttributeUse)
-		  {
-		    XSDAttributeUse attributeUse = (XSDAttributeUse)getInput();
-		    Element element = attributeUse.getElement();
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_ATTRIBUTE_USE_CHANGE"), element); //$NON-NLS-1$
-        Iterator iter = xsdSchema.getAttributeDeclarations().iterator();
-        while (iter.hasNext())
-        {
-          XSDAttributeDeclaration attr = (XSDAttributeDeclaration)iter.next();
-          if (attr.getQName(xsdSchema).equals(newValue))
-          {
-            attributeUse.setAttributeDeclaration(attr);
-            element.setAttribute(XSDConstants.REF_ATTRIBUTE, newValue);
-            break;
-          }
-        }  
-
-        endRecording(element);
-		  }
-    }
-  }
-  
-  public void setEditorPart(IEditorPart editorPart)
-  {
-    this.editorPart = editorPart;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ReferenceSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ReferenceSectionDescriptor.java
deleted file mode 100644
index 26885b6..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ReferenceSectionDescriptor.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.wst.common.ui.properties.ISectionDescriptor;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class ReferenceSectionDescriptor extends AbstractSectionDescriptor implements ISectionDescriptor
-{
-  ReferenceSection referenceSection;
-  
-  /**
-   * 
-   */
-  public ReferenceSectionDescriptor()
-  {
-    super();
-    this.referenceSection = new ReferenceSection();
-  }
-
-
-  /**
-   * 
-   */
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getId()
-   */
-  public String getId()
-  {
-    return "org.eclipse.wst.wsdleditor.section.reference";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-   */
-  public List getInputTypes()
-  {
-    List list = new ArrayList();
-    list.add(XSDNamedComponent.class);
-    list.add(XSDElementDeclaration.class);
-    list.add(XSDModelGroupDefinition.class);
-    list.add(XSDAttributeDeclaration.class);
-    list.add(XSDAttributeUse.class);
-    return list;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-   */
-  public ISection getSectionClass()
-  {
-    return referenceSection;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-   */
-  public String getTargetTab()
-  {
-    return "com.ibm.xmlwebservices.general";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-  {
-    if (part != null)
-    {
-      referenceSection.setEditorPart(part.getSite()
-            .getWorkbenchWindow()
-              .getActivePage()
-                .getActiveEditor());
-    }
-    Object object = null;
-    if (selection instanceof StructuredSelection)
-    {
-      StructuredSelection structuredSelection = (StructuredSelection)selection;
-      object = structuredSelection.getFirstElement();
-      if (object instanceof XSDNamedComponent)
-      {
-        XSDNamedComponent namedComponent = (XSDNamedComponent)object;
-        Element element = namedComponent.getElement();
-        if (element == null)
-        {
-          return false;
-        }
-        if (inputEquals(element, element.getLocalName(), true))
-        {
-          return true;
-        }
-        else
-        {
-          return false;
-        }
-      }
-      else if (object instanceof XSDElementDeclaration)
-      {
-        XSDElementDeclaration elementDeclaration = (XSDElementDeclaration)object;
-        if (elementDeclaration.isElementDeclarationReference())
-        {
-          return true;
-        }
-        else
-        {
-          return false;
-        }
-      }
-      else if (object instanceof XSDAttributeDeclaration)
-      {
-        XSDAttributeDeclaration attr = (XSDAttributeDeclaration)object;
-        if (attr.isAttributeDeclarationReference())
-        {
-          return true;
-        }
-        else
-        {
-          return false;
-        }
-      }
-      else if (object instanceof XSDModelGroupDefinition)
-      {
-        XSDModelGroupDefinition group = (XSDModelGroupDefinition)object;
-        if (group.isModelGroupDefinitionReference())
-        {
-          return true;
-        }
-        else
-        {
-          return false;
-        }
-      }
-      else if (object instanceof XSDAttributeUse)
-      {
-        XSDAttributeUse attributeUse = (XSDAttributeUse)object;
-        XSDAttributeDeclaration attribute = attributeUse.getAttributeDeclaration();
-        Element element = attributeUse.getElement();
-        if (inputEquals(element, XSDConstants.ATTRIBUTE_ELEMENT_TAG, true))
-        {
-          return true;
-        }
-        else
-        {
-          return false;
-        }
-      }
-      
-    }
-    return false;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SchemaLocationDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SchemaLocationDescriptor.java
deleted file mode 100644
index 59b47f0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SchemaLocationDescriptor.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDInclude;
-import org.eclipse.xsd.XSDRedefine;
-
-public class SchemaLocationDescriptor extends AbstractSectionDescriptor
-{
-	  SchemaLocationSection schemaLocationSection;
-	  /**
-	   * 
-	   */
-	  public SchemaLocationDescriptor()
-	  {
-	    super();
-	  }
-
-	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getId()
-	   */
-	  public String getId()
-	  {
-	    return "com.ibm.xsdeditor.section.schemaLocationSection";
-	  }
-
-	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-	   */
-	  public List getInputTypes()
-	  {
-	    List list = new ArrayList();
-	    list.add(XSDConcreteComponent.class);
-	    return list;
-	  }
-
-	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-	   */
-	  public ISection getSectionClass()
-	  {
-	    return schemaLocationSection;
-	  }
-
-	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-	   */
-	  public String getTargetTab()
-	  {
-	    return "com.ibm.xmlwebservices.general";
-	  }
-
-	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-	   */
-	  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-	  {
-	    Object object = null;	    
-	    
-	    if (selection instanceof StructuredSelection)
-	    {
-	      StructuredSelection structuredSelection = (StructuredSelection)selection;
-	      object = structuredSelection.getFirstElement();
-	      if (object instanceof XSDInclude || object instanceof XSDRedefine) {
-		    schemaLocationSection = new SchemaLocationSection();
-	      	return true;
-	      }
-	    }
-	    
-	    return false;
-	  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SchemaLocationSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SchemaLocationSection.java
deleted file mode 100644
index 99bd08f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SchemaLocationSection.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ITabbedPropertyConstants;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.common.ui.viewers.ResourceFilter;
-import org.eclipse.wst.xml.uriresolver.util.URIHelper;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.wizards.XSDSelectIncludeFileWizard;
-import org.eclipse.xsd.XSDInclude;
-import org.eclipse.xsd.XSDRedefine;
-import org.eclipse.xsd.impl.XSDIncludeImpl;
-import org.eclipse.xsd.impl.XSDRedefineImpl;
-import org.w3c.dom.Element;
-
-public class SchemaLocationSection extends AbstractSection
-{
-	  IWorkbenchPart part;
-	  Text schemaLocationText;
-	  Button wizardButton;
-	  
-	  /**
-	   * 
-	   */
-	  public SchemaLocationSection()
-	  {
-	    super();
-	  }
-
-		/**
-		 * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-		 */
-		public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-		{
-			super.createControls(parent, factory);
-			Composite composite = getWidgetFactory().createFlatFormComposite(parent);
-
-      int leftCoordinate = getStandardLabelWidth(composite, 
-          new String[] {XSDEditorPlugin.getXSDString("_UI_LABEL_SCHEMA_LOCATION")});
-      
-			// Create Schema Location Label
-			CLabel schemaLocationLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_SCHEMA_LOCATION")); //$NON-NLS-1$
-			
-      // Create Schema Location Text
-      schemaLocationText = getWidgetFactory().createText(composite, "", SWT.NONE); //$NON-NLS-1$
-      
-			// Create Wizard Button
-			wizardButton = getWidgetFactory().createButton(composite, "", SWT.NONE); //$NON-NLS-1$
-      
-      wizardButton.setImage(XSDEditorPlugin.getXSDImage("icons/browsebutton.gif")); //$NON-NLS-1$
-			FormData buttonFormData = new FormData();
-			buttonFormData.left = new FormAttachment(100, -rightMarginSpace + 2);
-			buttonFormData.right = new FormAttachment(100,0);
-			buttonFormData.top = new FormAttachment(schemaLocationText, 0, SWT.CENTER);
-			wizardButton.setLayoutData(buttonFormData);
-			wizardButton.addSelectionListener(this);
-			
-			schemaLocationText.setEditable(false);
-			FormData schemaLocationData = new FormData();
-			// schemaLocationData.left = new FormAttachment(0, 110);
-      schemaLocationData.left = new FormAttachment(0, leftCoordinate);
-      schemaLocationData.right = new FormAttachment(wizardButton, 0);
-//			schemaLocationData.top = new FormAttachment(0, 0);
-			schemaLocationText.setLayoutData(schemaLocationData);
-			schemaLocationText.addListener(SWT.Modify, this);		    
-
-			FormData data = new FormData();
-			data.left = new FormAttachment(0, 0);
-			data.right = new FormAttachment(schemaLocationText, -ITabbedPropertyConstants.HSPACE);
-			data.top = new FormAttachment(schemaLocationText, 0, SWT.CENTER);
-			schemaLocationLabel.setLayoutData(data);
-			
-		}
-		
-		public void widgetSelected(SelectionEvent event) {
-			if (event.widget == wizardButton) {
-				Shell shell = Display.getCurrent().getActiveShell();
-			    
-				IFile currentIFile = ((IFileEditorInput)getActiveEditor().getEditorInput()).getFile();
-				ViewerFilter filter = new ResourceFilter(new String[] { ".xsd" },  //$NON-NLS-1$
-			            new IFile[] { currentIFile },
-			            null);
-			      
-				  XSDSelectIncludeFileWizard fileSelectWizard = 
-				      new XSDSelectIncludeFileWizard(xsdSchema, true,
-				          XSDEditorPlugin.getXSDString("_UI_FILEDIALOG_SELECT_XML_SCHEMA"), //$NON-NLS-1$
-				          XSDEditorPlugin.getXSDString("_UI_FILEDIALOG_SELECT_XML_DESC"), //$NON-NLS-1$
-				          filter,
-				          (IStructuredSelection) selection);
-
-				  WizardDialog wizardDialog = new WizardDialog(shell, fileSelectWizard);
-				  wizardDialog.create();
-				  wizardDialog.setBlockOnOpen(true);
-				  int result = wizardDialog.open();
-				  
-			      String value = schemaLocationText.getText();
-			      if (result == Window.OK)
-			      {
-			        IFile selectedIFile = fileSelectWizard.getResultFile();
-			        String schemaFileString = value;
-			        if (selectedIFile != null) 
-			        {
-			          schemaFileString = URIHelper.getRelativeURI(selectedIFile.getLocation(), currentIFile.getLocation());
-			        }
-			        else
-			        {
-			          schemaFileString = fileSelectWizard.getURL();
-			        }
-			        
-			        if (input instanceof XSDInclude) {
-			        	Element element = ((XSDIncludeImpl) input).getElement();
-			        	element.setAttribute("schemaLocation", schemaFileString); //$NON-NLS-1$
-			        }
-			        else if (input instanceof XSDRedefine) {
-			        	Element element = ((XSDRedefineImpl) input).getElement();
-			        	element.setAttribute("schemaLocation", schemaFileString); //$NON-NLS-1$
-			        }
-					refresh();
-			      } 
-			}
-		}
-
-		/*
-		 * @see org.eclipse.wst.common.ui.properties.view.ITabbedPropertySection#refresh()
-		 */
-		public void refresh()
-		{
-			if (doRefresh)
-			{
-				setListenerEnabled(false);
-
-				Element element = null;
-				if (input instanceof XSDInclude) { 
-					element = ((XSDIncludeImpl) input).getElement();
-				}
-				else if (input instanceof XSDRedefine) {
-					element = ((XSDRedefineImpl) input).getElement();
-				}
-				
-				if (element != null) {
-					String location = ""; //$NON-NLS-1$
-					location = element.getAttribute("schemaLocation"); //$NON-NLS-1$
-					schemaLocationText.setText(location);
-				}
-
-				setListenerEnabled(true);
-			}
-		}
-
-	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.common.ui.properties.ISection#shouldUseExtraSpace()
-	   */
-	  public boolean shouldUseExtraSpace()
-	  {
-	    return true;
-	  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SimpleContentBaseTypeOptionsDialog.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SimpleContentBaseTypeOptionsDialog.java
deleted file mode 100644
index 2aa1a50..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SimpleContentBaseTypeOptionsDialog.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-
-public class SimpleContentBaseTypeOptionsDialog extends TypesDialog
-{
-  /**
-   * @param parentShell
-   * @param element
-   * @param id
-   * @param xsdSchema
-   */
-  public SimpleContentBaseTypeOptionsDialog(Shell parentShell, Element element, Object id, XSDSchema xsdSchema)
-  {
-    super(parentShell, element, id, xsdSchema);
-    showAnonymous = false;
-  }
-  
-	protected void ok()
-	{
-		TableItem[] items = table.getItems();
-		int selection = table.getSelectionIndex();
-		if (items != null && items.length > 0 && selection >= 0)
-		 {
-		  typeObject = items[selection].getData();
-		}
-	}
-
-  
-  public void handleSetInput()
-  {
-    XSDDOMHelper domHelper = new XSDDOMHelper();
-    typeSection.getSimpleType().setSelection(false);
-    typeSection.getUserSimpleType().setSelection(false);
-    typeSection.getUserComplexType().setSelection(false);
-    showAnonymous = false;
-    if (element != null)
-    {
-      String derivedBy = domHelper.getDerivedByName(element);
-      String baseType = domHelper.getBaseType(element);
-      boolean derivedByRestriction = true;
-      
-      if (XSDDOMHelper.inputEquals(element, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
-      {
-        typeSection.getSimpleType().setEnabled(false);
-        typeSection.getUserSimpleType().setEnabled(false);
-        typeSection.getUserComplexType().setSelection(true);
-
-        previousType = 3;
-      }
-      else if (XSDDOMHelper.inputEquals(element, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
-      {
-        typeSection.getSimpleType().setEnabled(false);
-        typeSection.getUserSimpleType().setEnabled(false);
-
-        if (derivedBy.equals("restriction"))
-        {
-          typeSection.getSimpleType().setEnabled(false);
-          typeSection.getUserSimpleType().setEnabled(false);
-          typeSection.getUserComplexType().setEnabled(true);
-        }
-        else if (derivedBy.equals("extension"))
-        {
-          derivedByRestriction = false;
-          typeSection.getSimpleType().setEnabled(true);
-          typeSection.getUserSimpleType().setEnabled(true);
-          typeSection.getUserComplexType().setEnabled(true);
-        }
-      }
-        
-      if (derivedBy != null)
-      {
-          if (baseType != null && !baseType.equals(""))
-          {
-            Element parent = (Element)element.getParentNode();
-            XSDConcreteComponent component = null;
-            if (parent != null)
-            {
-              component = xsdSchema.getCorrespondingComponent(parent);
-            }
-            XSDTypeDefinition baseTypeDefinition = null;
-            if (component instanceof XSDComplexTypeDefinition)
-            {
-              XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition)component;
-              baseTypeDefinition = complexType.getBaseTypeDefinition();
-            }               
-
-            if (typeSection.getBuiltInTypeNamesList(xsdSchema).contains(baseType) && !derivedByRestriction)
-            {
-              typeSection.getSimpleType().setSelection(true);
-              populateBuiltInType();
-              int i = typeSection.getBuiltInTypeNamesList(xsdSchema).indexOf(baseType);
-              table.setSelection(i);
-              previousType = 1;
-            }
-            else if (baseTypeDefinition instanceof XSDSimpleTypeDefinition && !derivedByRestriction)
-            {
-              typeSection.getUserSimpleType().setSelection(true);
-              populateUserSimpleType();
-              int i = typeSection.getUserSimpleTypeNamesList(xsdSchema).indexOf(baseType);
-              if (showAnonymous)
-               {
-                table.setSelection(i + 1);
-              }
-              else
-               {
-                table.setSelection(i);
-              }
-              previousType = 2;
-            }
-            else if (baseTypeDefinition instanceof XSDComplexTypeDefinition)
-            {
-              typeSection.getUserComplexType().setSelection(true);
-              populateUserComplexType();
-              int i = typeSection.getUserComplexTypeNamesList(xsdSchema).indexOf(baseType);
-              if (showAnonymous)
-               {
-                table.setSelection(i + 1);
-              }
-              else
-               {
-                table.setSelection(i);
-              }
-              previousType = 3;
-            }
-          }
-          else
-          {
-            typeSection.getUserComplexType().setSelection(true);
-            populateUserComplexType();
-            table.setSelection(0);
-          }
-        }
-
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SimpleContentUnionMemberTypesDialog.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SimpleContentUnionMemberTypesDialog.java
deleted file mode 100644
index 7434a93..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SimpleContentUnionMemberTypesDialog.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-import org.eclipse.wst.xsd.ui.internal.widgets.TypeSection;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-
-
-public class SimpleContentUnionMemberTypesDialog extends Dialog implements SelectionListener
-{
-  XSDSimpleTypeDefinition simpleType;
-  /**
-   * @param parentShell
-   */
-  public SimpleContentUnionMemberTypesDialog(Shell parentShell, XSDSimpleTypeDefinition simpleType)
-  {
-    super(parentShell);
-    this.simpleType = simpleType;
-  }
-  
-  Table table;
-  TypeSection typeSection;
-  Button addButton, removeButton;
-  org.eclipse.swt.widgets.List memberTypesList;
-  
-  private String result;
-
-  protected void configureShell(Shell shell)
-  {
-    super.configureShell(shell);
-  }
-
-  protected void buttonPressed(int buttonId)
-  {
-    if (buttonId == Dialog.OK)
-    {
-      StringBuffer sb = new StringBuffer();
-      int length = memberTypesList.getItemCount();
-      for (int i=0 ; i < length; i++)
-      {
-        sb.append(memberTypesList.getItem(i));
-        if (i < length - 1)
-        {
-          sb.append(" ");
-        }
-      }
-      result = sb.toString();
-    }
-    super.buttonPressed(buttonId);
-  }
-
-  public String getResult() { return result; }
-
-  //
-  // Create the controls
-  //
-  public Control createDialogArea(Composite parent)
-  {
-    int tabIndex = 0;
-    Composite client = (Composite)super.createDialogArea(parent);
-    getShell().setText("Union " + XSDConstants.MEMBERTYPES_ATTRIBUTE); 
-    
-    Label instructions = new Label(client, SWT.LEFT | SWT.WRAP);
-    instructions.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_SELECT_MEMBERTYPES"));
-    
-    Composite columnsComposite = new Composite(client, SWT.NONE);
-    GridLayout ccGL = new GridLayout();
-    ccGL.verticalSpacing = 0;
-    ccGL.horizontalSpacing = 0;
-    ccGL.marginHeight = 0;
-    ccGL.marginWidth = 0;
-    ccGL.makeColumnsEqualWidth = true;
-    ccGL.numColumns = 3;
-    columnsComposite.setLayout(ccGL);
-    
-    GridData ccGD = new GridData();
-    ccGD.grabExcessHorizontalSpace = true;
-    ccGD.horizontalAlignment = GridData.FILL;
-    columnsComposite.setLayoutData(ccGD);     
-                           
-    typeSection = new TypeSection(columnsComposite);
-    typeSection.setShowUserComplexType(false);
-
-    typeSection.createClient(columnsComposite);
-    typeSection.getSimpleType().setSelection(false);
-    typeSection.getSimpleType().addSelectionListener(this);
-    typeSection.getUserSimpleType().addSelectionListener(this);
-    
-    ViewUtility.createHorizontalFiller(columnsComposite, 1);
-    
-    Label memberListLabel = new Label(columnsComposite, SWT.LEFT);
-    memberListLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_MEMBERTYPES_VALUE"));
-    
-    Composite dataComposite = new Composite(client, SWT.NONE);
-    GridLayout dcGL = new GridLayout();
-    dcGL.verticalSpacing = 0;
-    dcGL.marginHeight = 0;
-    dcGL.marginWidth = 0;
-    dcGL.numColumns = 3;
-    dataComposite.setLayout(dcGL);
-    
-    GridData dcGD = new GridData();
-    dcGD.grabExcessHorizontalSpace = true;
-    dcGD.grabExcessVerticalSpace = true;
-    dataComposite.setLayoutData(dcGD);
-    
-    table = new Table(dataComposite,
-        SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); 
-    table.setHeaderVisible(false);
-    table.setLinesVisible(true);
-    GridData gd2 = new GridData();
-    gd2.grabExcessHorizontalSpace = true;
-    gd2.grabExcessVerticalSpace = true;
-    gd2.horizontalAlignment = GridData.FILL;
-    gd2.verticalAlignment = GridData.FILL;
-    gd2.heightHint = 200;
-    gd2.widthHint = 200;
-    table.setLayoutData(gd2);
-
-    // Fill table
-    handleSetInput();
-    int tableItemCount = table.getItemCount();
-
-    TableColumn tc = new TableColumn(table, SWT.LEFT);
-//    tc.setImage(XSDEditorPlugin.getXSDImage("icons/XSDElement.gif"));
-    //tc.setText("Available types:");
-    tc.setWidth(200);
-    tc.setResizable(true);
-    
-    Composite buttonComposite = new Composite(dataComposite, SWT.NONE);
-    GridLayout bcGL = new GridLayout();
-    bcGL.numColumns = 1;
-    buttonComposite.setLayout(bcGL);
-    addButton = new Button(buttonComposite, SWT.PUSH);
-    addButton.setText(">");
-    addButton.addSelectionListener(this);
-    removeButton = new Button(buttonComposite, SWT.PUSH);
-    removeButton.setText("<");
-    removeButton.addSelectionListener(this);
-    
-    Composite listComposite = new Composite(dataComposite, SWT.NONE);
-    GridLayout mtGL = new GridLayout();
-    mtGL.numColumns = 1;
-    mtGL.marginHeight = 0;
-    mtGL.marginWidth = 0;
-    mtGL.horizontalSpacing = 0;
-    mtGL.verticalSpacing = 0;
-    listComposite.setLayout(mtGL);
-
-    GridData mtGD = new GridData();
-    mtGD.grabExcessHorizontalSpace = true;
-    mtGD.grabExcessVerticalSpace = true;
-    mtGD.verticalAlignment = GridData.FILL;
-    mtGD.horizontalAlignment = GridData.FILL;
-    listComposite.setLayoutData(mtGD);
-    
-    memberTypesList = new org.eclipse.swt.widgets.List(listComposite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-    GridData mtlGD = new GridData();
-    mtlGD.grabExcessHorizontalSpace = true;
-    mtlGD.grabExcessVerticalSpace = true;
-    mtlGD.verticalAlignment = GridData.FILL;
-    mtlGD.horizontalAlignment = GridData.FILL;
-    mtlGD.heightHint = 200;
-    mtlGD.widthHint = 200;
-    memberTypesList.setLayoutData(mtlGD);
-    
-    initializeMemberListContent();
-    return client;
-  }
-
-  private void initializeMemberListContent()
-  {
-//    String result = element.getAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE);
-//    if (result == null)
-//    {
-//      return;
-//    }
-//    StringTokenizer token = new StringTokenizer(result);
-//    while (token.hasMoreTokens())
-//    {
-//      memberTypesList.add(token.nextToken());
-//    }
-    XSDSchema schema = simpleType.getSchema();
-    for (Iterator i = simpleType.getMemberTypeDefinitions().iterator(); i.hasNext(); )
-    {
-      String name = ((XSDSimpleTypeDefinition)i.next()).getQName(schema);
-      if (name != null)
-      memberTypesList.add(name);
-    }
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-   */
-  public void widgetSelected(SelectionEvent e)
-  {
-    if (e.widget == typeSection.getSimpleType() && typeSection.getSimpleType().getSelection())
-     {
-      populateBuiltInType();
-    }
-    else if (e.widget == typeSection.getUserSimpleType() && typeSection.getUserSimpleType().getSelection())
-     {
-      populateUserSimpleType(false);
-    }
-    else if (e.widget == addButton)
-    {
-      TableItem[] items = table.getItems();
-      int selection = table.getSelectionIndex();
-      if (items != null && items.length > 0 && selection >= 0)
-      {
-        String typeToAdd = items[selection].getData().toString();
-        if (memberTypesList.indexOf(typeToAdd) < 0)
-        {
-          memberTypesList.add(items[selection].getData().toString());
-        }
-      }
-    }
-    else if (e.widget == removeButton)
-    {
-      String[] typesToRemove = memberTypesList.getSelection();
-      for (int i=0; i < typesToRemove.length; i++)
-      {
-        memberTypesList.remove(typesToRemove[i]);
-      }
-    }
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
-   */
-  public void widgetDefaultSelected(SelectionEvent e)
-  {
-  }
-  
-  public void handleSetInput()
-  {
-    populateBuiltInType();
-  }
-  
-  public void populateBuiltInType()
-  {
-    table.removeAll();
-    List items = getBuiltInTypeNamesList();
-    for (int i = 0; i < items.size(); i++)
-     {
-      TableItem item = new TableItem(table, SWT.NONE);
-      item.setText(items.get(i).toString());
-      item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif"));
-      item.setData(items.get(i));
-    }
-  }
-
-  public void populateUserSimpleType(boolean showAnonymous)
-  {
-    table.removeAll();
-    if (showAnonymous)
-     {
-      TableItem anonymousItem = new TableItem(table, SWT.NONE);
-      anonymousItem.setText("**anonymous**");
-      anonymousItem.setData("**anonymous**");
-    }
-    List items = getUserSimpleTypeNamesList();
-    for (int i = 0; i < items.size(); i++)
-     {
-      TableItem item = new TableItem(table, SWT.NONE);
-      item.setText(items.get(i).toString());
-      item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif"));
-      item.setData(items.get(i));
-    }
-  }
-  
-  public java.util.List getBuiltInTypeNamesList()
-  {
-    TypesHelper helper = new TypesHelper(simpleType.getSchema());
-    return helper.getBuiltInTypeNamesList();
-  }
-
-  public java.util.List getUserSimpleTypeNamesList()
-  {
-    TypesHelper helper = new TypesHelper(simpleType.getSchema());
-    return helper.getUserSimpleTypeNamesList();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SimpleTypeSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SimpleTypeSection.java
deleted file mode 100644
index 833292e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SimpleTypeSection.java
+++ /dev/null
@@ -1,541 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.common.ui.properties.ITabbedPropertyConstants;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.actions.CreateElementAction;
-import org.eclipse.wst.xsd.ui.internal.actions.DOMAttribute;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDVariety;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-public class SimpleTypeSection extends AbstractSection
-{
-  CCombo varietyCombo;
-  Text typesText;
-  CLabel typesLabel;
-  Button button;
-
-  /**
-   * 
-   */
-  public SimpleTypeSection()
-  {
-    super();
-  }
-
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-	{
-		super.createControls(parent, factory);
-		composite = getWidgetFactory().createFlatFormComposite(parent);
-		FormData data;
-
-		varietyCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-		CLabel label = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_VARIETY")); //$NON-NLS-1$
-    
-		List list = XSDVariety.VALUES;	
-		Iterator iter = list.iterator();
-		while (iter.hasNext())
-		{
-		  varietyCombo.add(((XSDVariety)iter.next()).getName());
-		}
-    varietyCombo.addSelectionListener(this);
-
-		data = new FormData();
-		data.left = new FormAttachment(0, 100);
-		data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(0, 0);
-		varietyCombo.setLayoutData(data);
-
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(varietyCombo, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(varietyCombo, 0, SWT.CENTER);
-		label.setLayoutData(data);
-    
-    typesText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-    typesLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_MEMBERTYPES")); //$NON-NLS-1$
-    button = getWidgetFactory().createButton(composite, "", SWT.PUSH); //$NON-NLS-1$
-    button.setImage(XSDEditorPlugin.getXSDImage("icons/browsebutton.gif")); //$NON-NLS-1$
-    
-    typesText.addListener(SWT.Modify, this);
-
-    data = new FormData();
-    data.left = new FormAttachment(0, 100);
-    data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-    data.top = new FormAttachment(button, 0, SWT.CENTER);
-    typesText.setLayoutData(data);
-
-    data = new FormData();
-    data.left = new FormAttachment(0, 0);
-    data.right = new FormAttachment(typesText, -ITabbedPropertyConstants.HSPACE);
-    data.top = new FormAttachment(button, 0, SWT.CENTER);
-    typesLabel.setLayoutData(data);
-
-    button.addSelectionListener(this);
-    data = new FormData();
-    data.left = new FormAttachment(typesText, 0);
-    data.right = new FormAttachment(100,0);
-    data.top = new FormAttachment(varietyCombo, +ITabbedPropertyConstants.VSPACE);
-    button.setLayoutData(data);
-	}
-
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh()
-	{
-	  setListenerEnabled(false);
-    if (isReadOnly)
-    {
-      composite.setEnabled(false);
-    }
-    else
-    {
-      composite.setEnabled(true);
-    }
-	  Object input = getInput();
-	  varietyCombo.setText(""); //$NON-NLS-1$
-    typesText.setText(""); //$NON-NLS-1$
-    typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_BASE_TYPE_WITH_COLON")); //$NON-NLS-1$
-	  if (input != null)
-	  {
-	    if (input instanceof XSDSimpleTypeDefinition)
-	    {
-	      XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)input;
-        
-        Element simpleTypeElement = st.getElement();
-        Element element = null;
-	      String variety = st.getVariety().getName();
-        
-        int intVariety = st.getVariety().getValue();
-        
-	      if (variety != null)
-	      {
-          varietyCombo.setText(variety);
-          if (intVariety == XSDVariety.ATOMIC)
-          {
-            element = (Element)domHelper.getChildNode(simpleTypeElement, XSDConstants.RESTRICTION_ELEMENT_TAG);
-//            if (element == null)
-//            {
-//              element = (Element)domHelper.getChildNode(simpleTypeElement, XSDConstants.EXTENSION_ELEMENT_TAG);
-//              if (element == null) return;
-//            }
-            
-            if (element == null)
-            {
-              varietyCombo.setText(XSDEditorPlugin.getXSDString("_UI_NO_TYPE")); // "Select a simple type variety"); //$NON-NLS-1$            
-            }
-            else
-            {
-              String result = element.getAttribute(XSDConstants.BASE_ATTRIBUTE);
-              if (result == null)
-              {
-                typesText.setText("**anonymous**"); //$NON-NLS-1$
-              }
-              else
-              {
-                typesText.setText(result);
-              }
-            }
-            typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_BASE_TYPE_WITH_COLON")); //$NON-NLS-1$
-          }
-          else if (intVariety == XSDVariety.LIST)
-          {
-            element = (Element)domHelper.getChildNode(simpleTypeElement, XSDConstants.LIST_ELEMENT_TAG);
-            if (element != null)
-            {
-              String result = element.getAttribute(XSDConstants.ITEMTYPE_ATTRIBUTE);
-              if (result == null)
-              {
-                typesText.setText("**anonymous**"); //$NON-NLS-1$
-              }
-              else
-              {
-                typesText.setText(result);
-              }
-            }
-            typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_ITEM_TYPE")); //$NON-NLS-1$
-          }
-          else if (intVariety == XSDVariety.UNION)
-          {
-            Element unionElement = (Element)domHelper.getChildNode(simpleTypeElement, XSDConstants.UNION_ELEMENT_TAG);
-            if (unionElement != null)
-            {
-              String memberTypes = unionElement.getAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE);
-              if (memberTypes != null)
-              {
-                typesText.setText(memberTypes);
-              }
-            }
-            typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_MEMBERTYPES")); //$NON-NLS-1$
-          }
-	      }
-	    }
-	  }
-	  setListenerEnabled(true);
-	}
-
-  /**
-   * @see org.eclipse.swt.events.SelectionListener#widgetSelected(SelectionEvent)
-   */
-  public void widgetSelected(SelectionEvent e)
-  {
-	  Object input = getInput();
-    if (e.widget == varietyCombo)
-    {
-  	  if (input != null)
-  	  {
-  	    if (input instanceof XSDSimpleTypeDefinition)
-  	    {
-  	      XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)input;
-          Element parent = st.getElement();
-          
-  	      String variety = varietyCombo.getText();
-  	      if (variety.equals(XSDVariety.ATOMIC_LITERAL.getName()))
-          {
-            typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_BASE_TYPE_WITH_COLON")); //$NON-NLS-1$
-            st.setVariety(XSDVariety.ATOMIC_LITERAL);
-            List attributes = new ArrayList();
-            addCreateElementActionIfNotExist(XSDConstants.RESTRICTION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_RESTRICTION"), parent, null); //$NON-NLS-1$
-          }
-  	      else if (variety.equals(XSDVariety.UNION_LITERAL.getName()))
-  	      {
-            typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_MEMBERTYPES")); //$NON-NLS-1$
-            st.setVariety(XSDVariety.UNION_LITERAL);
-            addCreateElementActionIfNotExist(XSDConstants.UNION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_UNION"), parent, null); //$NON-NLS-1$
-          }
-  	      else if (variety.equals(XSDVariety.LIST_LITERAL.getName()))
-  	      {
-            typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_ITEM_TYPE")); //$NON-NLS-1$
-            st.setVariety(XSDVariety.LIST_LITERAL);
-            addCreateElementActionIfNotExist(XSDConstants.LIST_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_LIST"), parent, null); //$NON-NLS-1$
-          }
-  	    }
-  	  }
-    }
-    else if (e.widget == button)
-    {
-      Shell shell = Display.getCurrent().getActiveShell();
-      Element element = ((XSDConcreteComponent)input).getElement();
-      TypesDialog dialog = null;
-
-      if (input instanceof XSDSimpleTypeDefinition)
-      {
-        XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)input;
-        Element simpleTypeElement = st.getElement();
-        if (st.getVariety() == XSDVariety.LIST_LITERAL)
-        {
-          Element listElement = (Element)domHelper.getChildNode(simpleTypeElement, XSDConstants.LIST_ELEMENT_TAG);
-          dialog = new TypesDialog(shell, listElement, XSDConstants.ITEMTYPE_ATTRIBUTE, xsdSchema);
-          dialog.showComplexTypes = false;
-        }
-        else if (st.getVariety() == XSDVariety.ATOMIC_LITERAL)
-        {
-          Element derivedByElement = (Element)domHelper.getChildNode(simpleTypeElement, XSDConstants.RESTRICTION_ELEMENT_TAG);
-          if (derivedByElement == null)
-          {
-            derivedByElement = (Element)domHelper.getChildNode(simpleTypeElement, XSDConstants.EXTENSION_ELEMENT_TAG);
-            if (derivedByElement == null) return;
-          }
-          if (derivedByElement != null)
-          {
-            dialog = new TypesDialog(shell, derivedByElement, XSDConstants.BASE_ATTRIBUTE, xsdSchema);
-            dialog.showComplexTypes = false;
-          }
-          else
-          {
-            return;
-          }
-        }
-        else if (st.getVariety() == XSDVariety.UNION_LITERAL)
-        {
-          SimpleContentUnionMemberTypesDialog unionDialog = new SimpleContentUnionMemberTypesDialog(shell, st);
-          unionDialog.setBlockOnOpen(true);
-          unionDialog.create();
-          
-          int result = unionDialog.open();
-          if (result == Window.OK)
-          {
-            String newValue = unionDialog.getResult();
-            beginRecording(XSDEditorPlugin.getXSDString("_UI_LABEL_MEMBERTYPES_CHANGE"), element); //$NON-NLS-1$
-            Element unionElement = (Element)domHelper.getChildNode(element, XSDConstants.UNION_ELEMENT_TAG);
-            unionElement.setAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE, newValue);
-
-            if (newValue.length() > 0)
-            {
-              unionElement.setAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE, newValue);
-            }
-            else
-            {
-              unionElement.removeAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE);  
-            }
-            endRecording(unionElement);
-            if (doRefresh)
-            {
-              refresh();
-            }
-          }
-          return;
-        }
-        else
-        {
-          dialog = new TypesDialog(shell, element, "type", xsdSchema); //$NON-NLS-1$
-        }
-      }
-      else
-      {
-        dialog = new TypesDialog(shell, element, "type", xsdSchema); //$NON-NLS-1$
-      }
-      beginRecording(XSDEditorPlugin.getXSDString("_UI_TYPE_CHANGE"), element); //$NON-NLS-1$
-      dialog.setBlockOnOpen(true);
-      dialog.create();
-      int result = dialog.open();
-      
-      if (result == Window.OK)
-      {
-        XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)getInput();
-        st.setElement(element);
-        updateSimpleTypeFacets();
-      }
-      endRecording(element);
-    }
-    if (doRefresh)
-    {
-      refresh();
-    }
-  }
-
-  public boolean shouldUseExtraSpace()
-  {
-    return false;
-  }
-
-  
-  protected boolean addCreateElementActionIfNotExist(String elementTag, String label, Element parent, Node relativeNode)
-  {
-    XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)getInput();
-    List attributes = new ArrayList();
-    String reuseType = null;
-    
-    beginRecording(XSDEditorPlugin.getXSDString("_UI_LABEL_VARIETY_CHANGE"), parent); //$NON-NLS-1$
-    if (elementTag.equals(XSDConstants.RESTRICTION_ELEMENT_TAG))
-    {
-      Element listNode = getFirstChildNodeIfExists(parent, XSDConstants.LIST_ELEMENT_TAG, false);
-      if (listNode != null)
-      {
-        reuseType = listNode.getAttribute(XSDConstants.ITEMTYPE_ATTRIBUTE);
-        XSDDOMHelper.removeNodeAndWhitespace(listNode);
-      }
-
-      Element unionNode = getFirstChildNodeIfExists(parent, XSDConstants.UNION_ELEMENT_TAG, false);
-      if (unionNode != null)
-      {
-        String memberAttr = unionNode.getAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE);
-        if (memberAttr != null)
-        {
-          StringTokenizer stringTokenizer = new StringTokenizer(memberAttr);
-          reuseType = stringTokenizer.nextToken();
-        }
-        XSDDOMHelper.removeNodeAndWhitespace(unionNode);
-      }
-
-      if (reuseType == null)
-      {
-        reuseType = getBuiltInStringQName();        
-      }
-      attributes.add(new DOMAttribute(XSDConstants.BASE_ATTRIBUTE, reuseType));
-      st.setItemTypeDefinition(null);
-    }
-    else if (elementTag.equals(XSDConstants.LIST_ELEMENT_TAG))
-    {
-      Element restrictionNode = getFirstChildNodeIfExists(parent, XSDConstants.RESTRICTION_ELEMENT_TAG, false);
-      if (restrictionNode != null)
-      {
-        reuseType = restrictionNode.getAttribute(XSDConstants.BASE_ATTRIBUTE);
-        XSDDOMHelper.removeNodeAndWhitespace(restrictionNode);
-      }
-      Element unionNode = getFirstChildNodeIfExists(parent, XSDConstants.UNION_ELEMENT_TAG, false);
-      if (unionNode != null)
-      {
-        String memberAttr = unionNode.getAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE);
-        if (memberAttr != null)
-        {
-          StringTokenizer stringTokenizer = new StringTokenizer(memberAttr);
-          reuseType = stringTokenizer.nextToken();
-        }
-        XSDDOMHelper.removeNodeAndWhitespace(unionNode);
-      }
-      attributes.add(new DOMAttribute(XSDConstants.ITEMTYPE_ATTRIBUTE, reuseType));
-    }
-    else if (elementTag.equals(XSDConstants.UNION_ELEMENT_TAG))
-    {
-      Element listNode = getFirstChildNodeIfExists(parent, XSDConstants.LIST_ELEMENT_TAG, false);
-      if (listNode != null)
-      {
-        reuseType = listNode.getAttribute(XSDConstants.ITEMTYPE_ATTRIBUTE);
-        XSDDOMHelper.removeNodeAndWhitespace(listNode);
-      }
-      Element restrictionNode = getFirstChildNodeIfExists(parent, XSDConstants.RESTRICTION_ELEMENT_TAG, false);
-      if (restrictionNode != null)
-      {
-        reuseType = restrictionNode.getAttribute(XSDConstants.BASE_ATTRIBUTE);
-        XSDDOMHelper.removeNodeAndWhitespace(restrictionNode);
-      }
-      attributes.add(new DOMAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE, reuseType));
-      st.setItemTypeDefinition(null);
-    }
-    
-    if (getFirstChildNodeIfExists(parent, elementTag, false) == null)
-    {
-      Action action = addCreateElementAction(elementTag,label,attributes,parent,relativeNode);
-      action.run();
-    }
-
-    st.setElement(parent);
-//    st.updateElement();
-    endRecording(parent);
-    return true;
-  }
-
-  protected Action addCreateElementAction(String elementTag, String label, List attributes, Element parent, Node relativeNode)
-  {
-    CreateElementAction action = new CreateElementAction(label);
-    action.setElementTag(elementTag);
-    action.setAttributes(attributes);
-    action.setParentNode(parent);
-    action.setRelativeNode(relativeNode);
-    return action;
-  }
-
-  
-  protected Element getFirstChildNodeIfExists(Node parent, String elementTag, boolean isRef)
-  {
-    NodeList children = parent.getChildNodes();
-    Element targetNode = null;
-    for (int i=0; i < children.getLength(); i++)
-    {
-      Node child = children.item(i);
-      if (child != null && child instanceof Element)
-      {
-        if (XSDDOMHelper.inputEquals((Element)child, elementTag, isRef))
-        {
-          targetNode = (Element)child;
-          break;
-        }
-      }
-    }
-    return targetNode;
-  }
-
-  protected String getBuiltInStringQName()
-  {
-    String stringName = "string"; //$NON-NLS-1$
-    
-    if (getSchema() != null)
-    {
-      String schemaForSchemaPrefix = getSchema().getSchemaForSchemaQNamePrefix();
-      if (schemaForSchemaPrefix != null && schemaForSchemaPrefix.length() > 0)
-      {
-        String prefix = getSchema().getSchemaForSchemaQNamePrefix();
-        if (prefix != null && prefix.length() > 0)
-        {
-          stringName = prefix + ":" + stringName; //$NON-NLS-1$
-        }
-      }
-    }
-    return stringName;
-  }
-
-  private void updateSimpleTypeFacets()
-  {
-    XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)getInput();
-    Element simpleTypeElement = st.getElement();
-    Element derivedByElement = getDomHelper().getDerivedByElement(simpleTypeElement);
-    if (derivedByElement != null)
-    {
-      List nodesToRemove = new ArrayList();
-      NodeList childList = derivedByElement.getChildNodes();
-      int length = childList.getLength();
-      for (int i = 0; i < length; i++)
-      {
-        Node child = childList.item(i);
-        if (child instanceof Element)
-        {
-          Element elementChild = (Element)child;
-          if (!(elementChild.getLocalName().equals("pattern") || elementChild.getLocalName().equals("enumeration") || //$NON-NLS-1$
-               XSDDOMHelper.inputEquals(elementChild, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false) ||
-               XSDDOMHelper.inputEquals(elementChild, XSDConstants.ANNOTATION_ELEMENT_TAG, false) ||
-               XSDDOMHelper.inputEquals(elementChild, XSDConstants.ATTRIBUTE_ELEMENT_TAG, false) ||
-               XSDDOMHelper.inputEquals(elementChild, XSDConstants.ATTRIBUTE_ELEMENT_TAG, true) ||
-               XSDDOMHelper.inputEquals(elementChild, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, false) ||
-               XSDDOMHelper.inputEquals(elementChild, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, true) ||
-               XSDDOMHelper.inputEquals(elementChild, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, false)
-               ))
-          {
-            nodesToRemove.add(child);
-          }
-        }
-      }
-      Iterator iter = nodesToRemove.iterator();
-      while (iter.hasNext())
-      {
-        Element facetToRemove = (Element)iter.next();
-        String facetName = facetToRemove.getLocalName();
-        Iterator it = st.getValidFacets().iterator();
-        boolean doRemove = true;
-        while (it.hasNext())
-        {
-          String aValidFacet = (String)it.next();
-          if (aValidFacet.equals(facetName))
-          {
-            doRemove = false;
-            break;
-          }
-        }
-        if (doRemove)
-        {
-          XSDDOMHelper.removeNodeAndWhitespace(facetToRemove);
-        }
-      }
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SimpleTypeSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SimpleTypeSectionDescriptor.java
deleted file mode 100644
index 71871e2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SimpleTypeSectionDescriptor.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-
-
-public class SimpleTypeSectionDescriptor extends AbstractSectionDescriptor
-{
-
-  /**
-   * 
-   */
-  public SimpleTypeSectionDescriptor()
-  {
-    super();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getId()
-   */
-  public String getId()
-  {
-    return "com.ibm.xsdeditor.section.simpletype";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-   */
-  public List getInputTypes()
-  {
-    List list = new ArrayList();
-    list.add(XSDSimpleTypeDefinition.class);
-    return list;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-   */
-  public ISection getSectionClass()
-  {
-    return new SimpleTypeSection();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-   */
-  public String getTargetTab()
-  {
-    return "com.ibm.xmlwebservices.general";
-  }
-  
-  public String getAfterSection()
-  {
-    return "com.ibm.xsdeditor.section.name";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-  {
-    Object object = null;
-    if (selection instanceof StructuredSelection)
-    {
-      StructuredSelection structuredSelection = (StructuredSelection)selection;
-      object = structuredSelection.getFirstElement();
-      if (object instanceof XSDSimpleTypeDefinition)
-      {
-        return true;
-      }
-    }
-    return false;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SimpleTypeUnionSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SimpleTypeUnionSection.java
deleted file mode 100644
index 5754ef2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SimpleTypeUnionSection.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.common.ui.properties.ITabbedPropertyConstants;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class SimpleTypeUnionSection extends AbstractSection
-{
-  Text memberTypesText;
-  Button button;
-
-  /**
-   * 
-   */
-  public SimpleTypeUnionSection()
-  {
-    super();
-  }
-
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-	{
-		super.createControls(parent, factory);
-		composite = getWidgetFactory().createFlatFormComposite(parent);
-		FormData data;
-
-		memberTypesText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-		CLabel label = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_MEMBERTYPES")); //$NON-NLS-1$
-    button = getWidgetFactory().createButton(composite, "...", SWT.PUSH); //$NON-NLS-1$
-    
-    memberTypesText.addListener(SWT.Modify, this);
-//    memberTypesText.addSelectionListener(this);
-
-		data = new FormData();
-		data.left = new FormAttachment(0, 100);
-		data.right = new FormAttachment(95, 0);
-		data.top = new FormAttachment(button, 0, SWT.CENTER);
-		memberTypesText.setLayoutData(data);
-
-
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(memberTypesText, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(button, 0, SWT.CENTER);
-		label.setLayoutData(data);
-
-    button.addSelectionListener(this);
-		data = new FormData();
-		data.left = new FormAttachment(memberTypesText, +ITabbedPropertyConstants.HSPACE);
-		data.right = new FormAttachment(100,0);
-		// data.top = new FormAttachment(typeCombo, 0, SWT.CENTER);
-		data.top = new FormAttachment(0,0);
-		button.setLayoutData(data);
-		
-	}
-
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh()
-	{
-	  setListenerEnabled(false);
-	  Object input = getInput();
-    if (isReadOnly)
-    {
-      composite.setEnabled(false);
-    }
-    else
-    {
-      composite.setEnabled(true);
-    }
-	  memberTypesText.setText(""); //$NON-NLS-1$
-	  if (input != null)
-	  {
-	    Element element = null;
-	    if (input instanceof XSDSimpleTypeDefinition)
-	    {
-	      XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)input;
-	      element = st.getElement();
-        Element unionElement = (Element)domHelper.getChildNode(element, XSDConstants.UNION_ELEMENT_TAG);
-        String memberTypes = unionElement.getAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE);
-        if (memberTypes != null)
-        {
-          memberTypesText.setText(memberTypes);
-        }
-	      
-//        StringBuffer buf = new StringBuffer();	      
-//	      if (st.getMemberTypeDefinitions().size() > 0)
-//	      {
-//	        for (Iterator i = st.getMemberTypeDefinitions().iterator(); i.hasNext(); )
-//	        {
-//	          String name = ((XSDSimpleTypeDefinition)i.next()).getQName(getSchema());
-//	          if (name != null)
-//	          {
-//	            buf.append(name);
-//	            buf.append(" ");
-//	          }
-//	        }
-//	      }
-//	      memberTypesText.setText(buf.toString());
-	    }
-	  }
-	  setListenerEnabled(true);
-	}
-
-  /**
-   * @see org.eclipse.swt.events.SelectionListener#widgetSelected(SelectionEvent)
-   */
-  public void widgetSelected(SelectionEvent e)
-  {
-    if (e.widget == button)
-    {
-	    Shell shell = Display.getCurrent().getActiveShell();
-      
-	    XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)getInput();
-	    Element element = st.getElement();
-      SimpleContentUnionMemberTypesDialog dialog = new SimpleContentUnionMemberTypesDialog(shell, st);
-      dialog.setBlockOnOpen(true);
-      dialog.create();
-      
-      int result = dialog.open();
-      if (result == Window.OK)
-      {
-        String newValue = dialog.getResult();
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_LABEL_MEMBERTYPES_CHANGE"), element); //$NON-NLS-1$
-        Element unionElement = (Element)domHelper.getChildNode(element, XSDConstants.UNION_ELEMENT_TAG);
-        unionElement.setAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE, newValue);
-
-        if (newValue.length() > 0)
-        {
-          unionElement.setAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE, newValue);
-        }
-        else
-        {
-          unionElement.removeAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE);  
-        }
-        endRecording(unionElement);
-
-      }
-
-      refresh();
-    }
-  }
-  
-  public void doHandleEvent(Event event)
-  {
-	  if (event.widget == memberTypesText)
-	  {
-	  }
-
-  }
-
-  public boolean shouldUseExtraSpace()
-  {
-    return false;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SimpleTypeUnionSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SimpleTypeUnionSectionDescriptor.java
deleted file mode 100644
index e21bada..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/SimpleTypeUnionSectionDescriptor.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-
-public class SimpleTypeUnionSectionDescriptor extends AbstractSectionDescriptor
-{
-  /**
-   * 
-   */
-  public SimpleTypeUnionSectionDescriptor()
-  {
-    super();
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getId()
-   */
-  public String getId()
-  {
-    return "com.ibm.xsdeditor.section.simpletypeunion";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-   */
-  public List getInputTypes()
-  {
-    List list = new ArrayList();
-    list.add(XSDSimpleTypeDefinition.class);
-    return list;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-   */
-  public ISection getSectionClass()
-  {
-    return new SimpleTypeUnionSection();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-   */
-  public String getTargetTab()
-  {
-    return "com.ibm.xmlwebservices.general";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-  {
-    Object object = null;
-//    if (selection instanceof StructuredSelection)
-//    {
-//      StructuredSelection structuredSelection = (StructuredSelection)selection;
-//      object = structuredSelection.getFirstElement();
-//      if (object instanceof XSDSimpleTypeDefinition)
-//      {
-//        XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)object;
-//        if (st.getVariety().getValue() == XSDVariety.UNION)
-//        {
-//          return true;
-//        }
-//      }
-//    }
-    return false;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/TextChangeHelper.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/TextChangeHelper.java
deleted file mode 100644
index 0df6ffa..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/TextChangeHelper.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-public abstract class TextChangeHelper implements Listener
-{
-	private boolean nonUserChange;
-
-	/**
-	 * Marks the start of a programmatic change to the widget contents.
-	 * Clients must call startNonUserChange() before directly setting 
-	 * the widget contents to avoid unwanted lifecycle events.
-	 * @throws IllegalArgumentException if a programmatic change is 
-	 * already in progress.
-	 */
-	public void startNonUserChange() {
-		if (nonUserChange)
-			throw new IllegalStateException("we already started a non user change");//$NON-NLS-1$
-		nonUserChange = true;
-	}
-
-	/**
-	 * Clients who call startNonUserChange() should call 
-	 * finishNonUserChange() as soon as possible after the change is done.
-	 * @throws IllegalArgumentException if no change is in progress.
-	 */
-	public void finishNonUserChange() {
-		if (!nonUserChange)
-			throw new IllegalStateException("we are not in a non user change");//$NON-NLS-1$
-		nonUserChange = false;
-	}
-
-	/**
-	 * Returns true if a programmatic change is in progress.
-	 */
-	public boolean isNonUserChange() {
-		return nonUserChange;
-	}
-
-	/**
-	 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-	 */
-	public void handleEvent(Event event) {
-		switch (event.type) {
-			case SWT.KeyDown :
-				if (event.character == SWT.CR)
-					textChanged((Control)event.widget);
-				break;
-			case SWT.FocusOut :
-				textChanged((Control)event.widget);
-				break;
-		}
-	}
-
-	/**
-	 * Abstract method notified when a text field has been changed.
-	 * @param control
-	 */
-	public abstract void textChanged(Control control);
-
-	/**
-	 * Registers this helper with the given control to listen for events
-	 * which indicate that a change is in progress (or done).
-	 */
-	public void startListeningTo(Control control) {
-		control.addListener(SWT.FocusOut, this);
-		control.addListener(SWT.Modify, this);
-	}
-
-	/**
-	 * Registers this helper with the given control to listen for the
-	 * Enter key.  When Enter is pressed, the change is considered done 
-	 * (this is only appropriate for single-line Text widgets).
-	 */
-	public void startListeningForEnter(Control control) {
-		// NOTE: KeyDown rather than KeyUp, because of similar usage in CCombo. 
-		control.addListener(SWT.KeyDown, this);
-	}
-
-	/**
-	 * Unregisters this helper from a control previously passed to
-	 * startListeningTo() and/or startListeningForEnter().
-	 */
-	public void stopListeningTo(Control control) {
-		control.removeListener(SWT.FocusOut, this);
-		control.removeListener(SWT.Modify, this);
-		control.removeListener(SWT.KeyDown, this);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/TypesDialog.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/TypesDialog.java
deleted file mode 100644
index 6671ebc..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/TypesDialog.java
+++ /dev/null
@@ -1,726 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.wst.xsd.ui.internal.widgets.TypeSection;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-public class TypesDialog extends Dialog implements SelectionListener, Listener
-{
-  XSDSchema xsdSchema;
-  String property;
-
-  /**
-   * @param parentShell
-   */
-  public TypesDialog(Shell parentShell, Element element, Object id, XSDSchema xsdSchema)
-  {
-    super(parentShell);
-    setShellStyle(getShellStyle() | SWT.RESIZE);
-    this.element = element;
-    this.property = (String)id;
-    this.element = element;
-    this.xsdSchema = xsdSchema;
-
-    if (XSDDOMHelper.inputEquals(element, XSDConstants.ELEMENT_ELEMENT_TAG, false))
-    {
-      showComplexTypes = true;
-    }
-    else if (XSDDOMHelper.inputEquals(element, XSDConstants.ATTRIBUTE_ELEMENT_TAG, false) ||
-      XSDDOMHelper.inputEquals(element, XSDConstants.LIST_ELEMENT_TAG, false) ||
-      XSDDOMHelper.inputEquals(element, XSDConstants.UNION_ELEMENT_TAG, false))
-    {
-      showComplexTypes = false;
-    }
-  }
-
-  String type;
-  Object typeObject;
-  Text textField;
-  Table table;
-  TableColumn tableColumn;
-  Element element;
-  
-  boolean showComplexTypes = true;
-  TypeSection typeSection;
-  boolean showAnonymous = true;
-  String previousStringType = "";
-  boolean isAnonymous;
-  int previousType;
-
-  protected void configureShell(Shell shell)
-  {
-    super.configureShell(shell);
-  }
-
-  protected void buttonPressed(int buttonId)
-  {
-    if (buttonId == Dialog.OK)
-    {
-      type = table.getItem(table.getSelectionIndex()).getText();
-      ok();
-    }
-    super.buttonPressed(buttonId);
-  }
-
-  public Object getTypeObject() { return typeObject; }
-  public String getType() { return type; }
-
-  //
-  // Create the controls
-  //
-  public Control createDialogArea(Composite parent)
-  {
-    int tabIndex = 0;
-    Composite client = (Composite)super.createDialogArea(parent);
-    getShell().setText(XSDEditorPlugin.getXSDString("_UI_LABEL_AVAILABLE_TYPES"));
-
-    typeObject = null;
-    
-    GridLayout gl = new GridLayout(1, true);
-//    gl.marginHeight = 0;
-//    gl.marginWidth = 0;
-//    gl.horizontalSpacing = 0;
-//    gl.verticalSpacing = 0;
-    client.setLayout(gl);
-
-    GridData gd = new GridData();
-    gd.grabExcessHorizontalSpace = true;
-    gd.grabExcessVerticalSpace = true;
-    gd.horizontalAlignment = GridData.FILL;
-    gd.verticalAlignment = GridData.FILL;
-    gd.horizontalIndent = 0;
-    client.setLayoutData(gd);
-    
-    typeSection = new TypeSection(client);
-    typeSection.setShowUserComplexType(showComplexTypes);
-
-    typeSection.createClient(client);
-    typeSection.getSimpleType().setSelection(false);
-    typeSection.getSimpleType().addSelectionListener(this);
-    typeSection.getUserSimpleType().addSelectionListener(this);
-    if (showComplexTypes)
-    {
-      typeSection.getUserComplexType().addSelectionListener(this);
-    }
-
-    textField = ViewUtility.createTextField(client, 50);
-    textField.addListener(SWT.Modify, this);
-    ViewUtility.createVerticalFiller(client, 0);
-
-    table = new Table(client,
-                      SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL); 
-    table.setHeaderVisible(false);
-    table.setLinesVisible(true);
-    table.addSelectionListener(this);
-    
-    GridData gd2 = new GridData();
-    gd2.grabExcessHorizontalSpace = true;
-    gd2.grabExcessVerticalSpace = true;
-    gd2.horizontalAlignment = GridData.FILL;
-    gd2.verticalAlignment = GridData.FILL;
-    gd2.heightHint = 200;
-    table.setLayoutData(gd2);
-    table.addListener(SWT.Resize, this);
-    
-    tableColumn = new TableColumn(table, SWT.LEFT);
-//    tableColumn.setImage(XSDEditorPlugin.getXSDImage("icons/XSDElement.gif"));
-    tableColumn.setResizable(true);
-    tableColumn.setWidth(200);
-
-    // Fill table and select input type
-    handleSetInput();
-
-    return client;
-  }
-  
-  public void handleEvent(Event event)
-  {
-  	if (event.type == SWT.Resize && event.widget == table) {
-  		tableColumn.setWidth(table.getSize().x);
-  	}
-  	else if (event.type == SWT.Modify && event.widget == textField) {
-  		List items = null;
-  		boolean showAll = false;
-  		String inputString = textField.getText();
-  		
-  		if (inputString.equals("")) {
-  			showAll = true;
-  		}
-  		else {
-  			inputString = insertString("*", ".", inputString);
-  			inputString = insertString("?", ".", inputString);
-  			inputString = inputString + ".*";
-  		}
-  		
-  		try {
-  			if (typeSection.getSimpleType().getSelection())
-  			{
-  				if (showAll) {
-  					populateBuiltInType();
-  				}
-  				else {
-  					populateBuiltInType(inputString);
-  				}
-  			}
-  			else if (typeSection.getUserComplexType().getSelection())
-  			{
-  				if (showAll) {
-  					populateUserComplexType();
-  				}
-  				else {
-  					populateUserComplexType(inputString);
-  				}
-  			}
-  			else if (typeSection.getUserSimpleType().getSelection())
-  			{
-  				if (showAll) {
-  					populateUserSimpleType();
-  				}
-  				else {
-  					populateUserSimpleType(inputString);
-  				}
-  			}
-  		}
-  		catch (Exception e) {
-  			// Do nothing
-  		}
-  	}
-  	
-  	setEnabledState();
-  }
-  
-  private void setEnabledState() {
-  	if (table.getSelectionIndex() != -1) {
-  		this.getButton(IDialogConstants.OK_ID).setEnabled(true);
-  	}
-  	else {
-  		this.getButton(IDialogConstants.OK_ID).setEnabled(false);
-  	}
-  }
-  
-  private String insertString(String target, String newString, String string) {
-  	ArrayList list = new ArrayList();
-  	StringBuffer stringBuffer = new StringBuffer(string);
-  	
-  	int index = stringBuffer.indexOf(target);
-  	while (index != -1) {
-  		stringBuffer = stringBuffer.insert(index, newString);
-  		index = stringBuffer.indexOf(target, index + newString.length() + target.length());
-  	}
-  	
-  	return stringBuffer.toString();
-  }
-  
-  public void widgetSelected(SelectionEvent e)
-  {
-    if (e.widget == typeSection.getSimpleType() && typeSection.getSimpleType().getSelection())
-    {
-    	if (textField.getText().equals("")) {
-    		populateBuiltInType();
-    	}
-    	else {
-    		populateBuiltInType(textField.getText());
-    	}
-    }
-    else if (e.widget == typeSection.getUserComplexType() && typeSection.getUserComplexType().getSelection())
-    {
-    	if (textField.getText().equals("")) {
-    		populateUserComplexType();
-    	}
-    	else {
-    		populateUserComplexType(textField.getText());
-    	}
-    }
-    else if (e.widget == typeSection.getUserSimpleType() && typeSection.getUserSimpleType().getSelection())
-    {
-    	if (textField.getText().equals("")) {
-    		populateUserSimpleType();
-    	}
-    	else {
-    		populateUserSimpleType(textField.getText());
-    	}
-    }
-    setEnabledState();
-  }
-  
-	public void widgetDefaultSelected(SelectionEvent e)
-  {
-  }
-
-  protected void ok()
-  {
-    TableItem[] items = table.getItems();
-    int selection = table.getSelectionIndex();
-    if (items != null && items.length > 0 && selection >= 0)
-    {
-      typeObject = items[selection].getData();
-    }
-//    System.out.println("typeObject is " + typeObject);
-
-//    beginRecording(XSDEditorPlugin.getXSDString("_UI_ELEMENT_TYPE_CHANGE"), element);
-//    beginRecording(XSDEditorPlugin.getXSDString("_UI_TYPE_CHANGE"), element);
-//    doSetValue(typeObject);
-//    applyEditorValueAndDeactivate();
-//    dialog.close();
-
-    if (!XSDDOMHelper.inputEquals(element, XSDConstants.UNION_ELEMENT_TAG, false))
-    {
-	    if (typeObject.equals("**anonymous**"))
-	    {
-	      if (typeSection.getUserSimpleType().getSelection())
-	      {
-//	        if (!previousStringType.equals("**anonymous**"))
-	        {
-	          updateElementToAnonymous(element, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-	        }
-	      }
-	      else
-	      {
-//	        if (!previousStringType.equals("**anonymous**"))
-	        {
-	          updateElementToAnonymous(element, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-	        }
-	      }
-	      // element.removeAttribute(XSDConstants.TYPE_ATTRIBUTE);
-	      element.removeAttribute(property);
-	    }
-	    else
-	    {
-	      XSDDOMHelper.updateElementToNotAnonymous(element);
-	      //element.setAttribute(XSDConstants.TYPE_ATTRIBUTE, typeObject.toString());
-	      element.setAttribute(property, typeObject.toString());
-	    }
-    }
-//    endRecording(element);
-
-    //implement dispose();
-//    table.removeAll();
-//    table.dispose();
-  }
-
-	
-  public void handleSetInput()
-  {
-    table.removeAll();
-    isAnonymous = checkForAnonymousType(element);
-    // Attr attr = element.getAttributeNode(XSDConstants.TYPE_ATTRIBUTE);
-    Attr attr = element.getAttributeNode(property);
-    if (attr != null)
-    {
-      String value = attr.getValue();
-      if (typeSection.getBuiltInTypeNamesList(xsdSchema).contains(value))
-      {
-        typeSection.getSimpleType().setSelection(true);
-        populateBuiltInType();
-        int i = typeSection.getBuiltInTypeNamesList(xsdSchema).indexOf(value);
-        table.setSelection(i);
-        previousType = 1;
-      }
-      else if (typeSection.getUserSimpleTypeNamesList(xsdSchema).contains(value))
-      {
-        typeSection.getUserSimpleType().setSelection(true);
-        populateUserSimpleType();
-        int i = typeSection.getUserSimpleTypeNamesList(xsdSchema).indexOf(value);
-        if (showAnonymous)
-        {
-          table.setSelection(i + 1);
-        }
-        else
-        {
-          table.setSelection(i);
-        }
-        previousType = 2;
-      }
-      else if (typeSection.getUserComplexTypeNamesList(xsdSchema).contains(value))
-      {
-        typeSection.getUserComplexType().setSelection(true);
-        populateUserComplexType();
-        int i = typeSection.getUserComplexTypeNamesList(xsdSchema).indexOf(value);
-        if (showAnonymous)
-         {
-          table.setSelection(i + 1);
-        }
-        else
-         {
-          table.setSelection(i);
-        }
-        previousType = 3;
-      }
-      else // if it is type="" for an empty list of simple types
-        {
-        typeSection.getUserSimpleType().setSelection(true);
-        populateUserSimpleType();
-        previousType = 2;
-      }
-    }
-    else
-    {
-      if (isAnonymous)
-      {
-        if (isSTAnonymous(element))
-        {
-          typeSection.getUserSimpleType().setSelection(true);
-          populateUserSimpleType();
-          previousType = 2;
-        }
-        else
-        {
-          typeSection.getUserComplexType().setSelection(true);
-          populateUserComplexType();
-          previousType = 3;
-        }
-        table.setSelection(0); // anonymous
-        //        typeSection.getTypeList().setText("**anonymous**");
-      }
-      else
-      {
-        typeSection.getSimpleType().setSelection(true);
-        populateBuiltInType();
-        table.setSelection(0);
-        
-        //        typeSection.getTypeList().setEnabled(true);
-        //        typeSection.getSimpleType().setSelection(true);
-        //        typeSection.populateBuiltInType(xsdSchema);
-        //        typeSection.getTypeList().setText(XSDEditorPlugin.getXSDString("_UI_NO_TYPE"));
-        previousType = 1;
-      }
-    }
-    if (table.getSelection() != null && table.getSelection().length > 0)
-    {
-      previousStringType = (table.getSelection()[0]).getText();
-    }
-  }
-  
-  public void populateBuiltInType()
-  {
-    table.removeAll();
-    List items = getBuiltInTypeNamesList();
-    for (int i = 0; i < items.size(); i++)
-    {
-      TableItem item = new TableItem(table, SWT.NONE);
-      item.setText(items.get(i).toString());
-      item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif"));
-      item.setData(items.get(i));
-    }
-  }
-
-  public void populateBuiltInType(String fragment)
-  {
-    table.removeAll();
-    List items = getBuiltInTypeNamesList();
-    fragment = fragment.toLowerCase();
-	Pattern regex = Pattern.compile(fragment);
-	
-    for (int i = 0; i < items.size(); i++)
-    {
-    	String itemString = items.get(i).toString().toLowerCase();
-    	Matcher m = regex.matcher(itemString);
-
-    	if (itemString.startsWith(fragment) || m.matches()) {
-    		TableItem item = new TableItem(table, SWT.NONE);
-    		item.setText(items.get(i).toString());
-    		item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif"));
-    		item.setData(items.get(i));
-    	}
-    }
-    
-    table.select(0);
-  }
-
-  public void populateUserComplexType()
-  {
-    table.removeAll();
-    if (showAnonymous)
-    {
-      TableItem anonymousItem = new TableItem(table, SWT.NONE);
-      anonymousItem.setText("**anonymous**");
-      anonymousItem.setData("**anonymous**");
-    }
-    List items = getUserComplexTypeNamesList();
-    for (int i = 0; i < items.size(); i++)
-    {
-      TableItem item = new TableItem(table, SWT.NONE);
-//      System.out.println("item " + i + " is " + item);
-      item.setText(items.get(i).toString());
-      item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDComplexType.gif"));
-      item.setData(items.get(i));
-    }
-  }
-  
-  public void populateUserComplexType(String fragment)
-  {
-    table.removeAll();
-    fragment = fragment.toLowerCase();
-    Pattern regex = java.util.regex.Pattern.compile(fragment);
-    
-    if (showAnonymous)
-    {
-    	Matcher m = regex.matcher("**anonymous**");
-    	if ("**anonymous**".startsWith(fragment) || m.matches()) {
-    		TableItem anonymousItem = new TableItem(table, SWT.NONE);
-    		anonymousItem.setText("**anonymous**");
-    		anonymousItem.setData("**anonymous**");
-    	}
-    }
-    List items = getUserComplexTypeNamesList();
-    for (int i = 0; i < items.size(); i++)
-    {
-    	String itemString = items.get(i).toString().toLowerCase();
-    	Matcher m = regex.matcher(itemString);
-    	
-    	if (itemString.startsWith(fragment) || m.matches()) {
-    		TableItem item = new TableItem(table, SWT.NONE);
-    		item.setText(items.get(i).toString());
-    		item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDComplexType.gif"));
-    		item.setData(items.get(i));
-    	}
-    }
-    
-    table.select(0);
-  }
-
-  public void populateUserSimpleType()
-  {
-    table.removeAll();
-    if (showAnonymous)
-     {
-      TableItem anonymousItem = new TableItem(table, SWT.NONE);
-      anonymousItem.setText("**anonymous**");
-      anonymousItem.setData("**anonymous**");
-    }
-    List items = getUserSimpleTypeNamesList();
-    for (int i = 0; i < items.size(); i++)
-     {
-      TableItem item = new TableItem(table, SWT.NONE);
-      item.setText(items.get(i).toString());
-      item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif"));
-      item.setData(items.get(i));
-    }
-  }
-
-  public void populateUserSimpleType(String fragment)
-  {
-    table.removeAll();
-    fragment = fragment.toLowerCase();
-    Pattern regex = java.util.regex.Pattern.compile(fragment);
-    
-    if (showAnonymous)
-     {
-    	Matcher m = regex.matcher("**anonymous**");
-    	if ("**anonymous**".startsWith(fragment) || m.matches())  {
-    		TableItem anonymousItem = new TableItem(table, SWT.NONE);
-    		anonymousItem.setText("**anonymous**");
-    		anonymousItem.setData("**anonymous**");
-    	}
-    }
-    List items = getUserSimpleTypeNamesList();
-    for (int i = 0; i < items.size(); i++)
-     {
-    	String itemString = items.get(i).toString().toLowerCase();
-    	Matcher m = regex.matcher(itemString);
-    	
-    	if (itemString.startsWith(fragment) || m.matches()) {
-    		TableItem item = new TableItem(table, SWT.NONE);
-    		item.setText(items.get(i).toString());
-    		item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif"));
-    		item.setData(items.get(i));
-    	}
-    }
-    
-    table.select(0);
-  }
-  
-  boolean checkForAnonymousType(Element element)
-  {
-    /*
-     * Using Ed's model to check boolean isAnonymous = false;
-     * 
-     * XSDConcreteComponent component =
-     * getXSDSchema().getCorrespondingComponent(element); if (component
-     * instanceof XSDElementDeclaration) { XSDElementDeclaration xsdElem =
-     * (XSDElementDeclaration)component; isAnonymous =
-     * xsdElem.isSetAnonymousTypeDefinition(); } return isAnonymous;
-     */
-    XSDDOMHelper helper = new XSDDOMHelper();
-    boolean isAnonymous = false;
-    Node aNode =
-    helper.getChildNode(element, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-    if (aNode != null)
-     {
-      return true;
-    }
-    aNode = helper.getChildNode(element, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-    if (aNode != null)
-     {
-      isAnonymous = true;
-    }
-    return isAnonymous;
-  }
-
-  void updateElementToAnonymous(Element element, String xsdType)
-  {
-    String prefix = element.getPrefix();
-    prefix = (prefix == null) ? "" : (prefix + ":");
-    XSDDOMHelper.updateElementToNotAnonymous(element);
-    boolean hasChildrenElements = hasElementChildren(element);
-    Element childNode = null;
-    if (xsdType.equals(XSDConstants.COMPLEXTYPE_ELEMENT_TAG))
-    {
-      childNode = element.getOwnerDocument().createElementNS(
-          XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001,
-          prefix + XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-    }
-    else if (xsdType.equals(XSDConstants.SIMPLETYPE_ELEMENT_TAG))
-    {
-      childNode = element.getOwnerDocument().createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, prefix + XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-      
-      Element restrictionNode = element.getOwnerDocument().createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, prefix + XSDConstants.RESTRICTION_ELEMENT_TAG);
-      restrictionNode.setAttribute(XSDConstants.BASE_ATTRIBUTE, prefix + "string");
-      childNode.appendChild(restrictionNode);      
-    }
-    if (childNode != null)
-    {
-      XSDDOMHelper helper = new XSDDOMHelper();
-      Node annotationNode = helper.getChildNode(element, XSDConstants.ANNOTATION_ELEMENT_TAG);
-      if (annotationNode == null)
-      {
-        Node firstChild = element.getFirstChild();
-        element.insertBefore(childNode, firstChild);
-      }
-      else
-      {
-        Node nextSibling = annotationNode.getNextSibling();
-        element.insertBefore(childNode, nextSibling);
-      }
-      XSDDOMHelper.formatChild(childNode);
-    }
-  }
-
-  boolean isSTAnonymous(Element element)
-  {
-    XSDDOMHelper helper = new XSDDOMHelper();
-    Node aNode = helper.getChildNode(element, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-    if (aNode != null)
-    {
-      if (XSDDOMHelper.inputEquals(aNode, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false))
-      {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  boolean isCTAnonymous(Element element)
-  {
-    XSDDOMHelper helper = new XSDDOMHelper();
-    Node aNode = helper.getChildNode(element, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-    if (aNode != null)
-     {
-      if (XSDDOMHelper.inputEquals(aNode, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, false))
-       {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  XSDTypeDefinition getAnonymousTypeDefinition(Element element)
-  {
-    XSDDOMHelper helper = new XSDDOMHelper();
-    Node typeDefinitionNode =
-    helper.getChildNode(element, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-    if (typeDefinitionNode == null)
-     {
-      typeDefinitionNode = helper.getChildNode(element, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-    }
-    if (typeDefinitionNode != null)
-     {
-      XSDConcreteComponent component =
-      xsdSchema.getCorrespondingComponent(typeDefinitionNode);
-      if (component instanceof XSDTypeDefinition)
-       {
-        return (XSDTypeDefinition) component;
-      }
-    }
-    return null;
-  }
-  
-  public java.util.List getBuiltInTypeNamesList()
-  {
-    TypesHelper helper = new TypesHelper(xsdSchema);
-    return helper.getBuiltInTypeNamesList();
-  }
-
-  public java.util.List getUserSimpleTypeNamesList()
-  {
-    TypesHelper helper = new TypesHelper(xsdSchema);
-    return helper.getUserSimpleTypeNamesList();
-  }
-  
-  public java.util.List getUserComplexTypeNamesList()
-  {
-    TypesHelper helper = new TypesHelper(xsdSchema);
-    return helper.getUserComplexTypeNamesList();
-  }
-  
-  protected boolean hasElementChildren(Node parentNode)
-  {
-    boolean hasChildrenElements = false;
-    if (parentNode != null && parentNode.hasChildNodes())
-    {
-      NodeList nodes = parentNode.getChildNodes();
-      for (int i = 0; i < nodes.getLength(); i++)
-      {
-        if (nodes.item(i) instanceof Element)
-        {
-          hasChildrenElements = true;
-          break;
-        }
-      }
-    }
-    return hasChildrenElements;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/TypesSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/TypesSection.java
deleted file mode 100644
index c0d8ab0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/TypesSection.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.widgets.TypeSection;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class TypesSection extends AbstractSection
-{
-  Text typeCombo;
-  Button button;
-
-  String type;
-  Object typeObject;
-  CLabel typeLabel;
-  Table table;
-  TypeSection typeSection;
-  boolean showAnonymous = true;
-  String previousStringType = "";
-  boolean isAnonymous;
-  int previousType;
-  boolean showComplexTypes = true;
-  
-  /**
-   * 
-   */
-  public TypesSection()
-  {
-    super();
-  }
-
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-	{
-		super.createControls(parent, factory);
-		composite = getWidgetFactory().createFlatFormComposite(parent);
-    
-		FormData data;
-
-		typeCombo = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-    typeCombo.setEditable(false);
-		typeCombo.addListener(SWT.Modify, this);
-    
-    button = getWidgetFactory().createButton(composite, "", SWT.PUSH); //$NON-NLS-1$
-    button.setImage(XSDEditorPlugin.getXSDImage("icons/browsebutton.gif")); //$NON-NLS-1$
-
-    typeLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_TYPE") + ":"); //$NON-NLS-1$
-
-    button.addSelectionListener(this);
-		FormData data2 = new FormData();
-		data2.left = new FormAttachment(100, -rightMarginSpace + 2);
-		data2.right = new FormAttachment(100,0);
-		data2.top = new FormAttachment(typeCombo, 0, SWT.CENTER);
-		button.setLayoutData(data2);
-
-    data = new FormData();
-    data.left = new FormAttachment(0, 100);
-    data.right = new FormAttachment(button, 0);
-    typeCombo.setLayoutData(data);
-	}
-
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh()
-	{
-	  Object input = getInput();
-    if (isReadOnly)
-    {
-      composite.setEnabled(false);
-    }
-    else
-    {
-      composite.setEnabled(true);
-    }
-	  typeCombo.setText(""); //$NON-NLS-1$
-	  if (input != null)
-	  {
-	    Element element = null;
-	    if (input instanceof XSDElementDeclaration)
-	    {
-        XSDElementDeclaration xsdElem = (XSDElementDeclaration)input;
-	      element = xsdElem.getElement();
-        XSDTypeDefinition typeDef = xsdElem.getTypeDefinition();
-        boolean isAnonymous = xsdElem.isAbstract();
-
-        if (isAnonymous)
-        {
-          typeCombo.setText("**anonymous**"); //$NON-NLS-1$
-        }
-        else
-        {
-          String typeName = ""; //$NON-NLS-1$
-          if (typeDef != null)
-          {
-            typeName = typeDef.getQName(getSchema());
-            if (typeName == null)
-            {
-              typeName = ""; //$NON-NLS-1$
-            }
-            typeCombo.setText(typeName);
-          }
-          else
-          {
-            typeCombo.setText(XSDEditorPlugin.getXSDString("_UI_NO_TYPE")); //$NON-NLS-1$
-          }
-        }
-	    }
-	    else if (input instanceof XSDAttributeDeclaration)
-	    {
-	      element = ((XSDAttributeDeclaration)input).getElement();
-	    }
-      else if (input instanceof XSDAttributeUse)
-      {
-        XSDAttributeUse attributeUse = (XSDAttributeUse)input;
-        XSDAttributeDeclaration attribute = attributeUse.getAttributeDeclaration();
-        element = attribute.getElement();
-      }
-	    else if (input instanceof Element)
-	    {
-	      element = (Element)input;
-	    }
-//      else if (input instanceof XSDSimpleTypeDefinition)
-//      {
-//	      XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)input;
-//	      Element simpleTypeElement = st.getElement();
-//        if (st.getVariety() == XSDVariety.LIST_LITERAL)
-//        {
-//	        element = (Element)domHelper.getChildNode(simpleTypeElement, XSDConstants.LIST_ELEMENT_TAG);
-//          String result = element.getAttribute(XSDConstants.ITEMTYPE_ATTRIBUTE);
-//          if (result == null)
-//          {
-//            typeCombo.setText("**anonymous**");
-//          }
-//          else
-//          {
-//            typeCombo.setText(result);
-//          }
-//          typeLabel.setText("Item Type:");
-//        }
-//        else if (st.getVariety() == XSDVariety.ATOMIC_LITERAL)
-//        {
-//          typeLabel.setText("Base Type:");
-//	        element = (Element)domHelper.getChildNode(simpleTypeElement, XSDConstants.RESTRICTION_ELEMENT_TAG);
-//	        if (element == null)
-//	        {
-//	          element = (Element)domHelper.getChildNode(simpleTypeElement, XSDConstants.EXTENSION_ELEMENT_TAG);
-//	          if (element == null) return;
-//	        }
-//
-//          String result = element.getAttribute(XSDConstants.BASE_ATTRIBUTE);
-//          if (result == null)
-//          {
-//            typeCombo.setText("");
-//          }
-//          else
-//          {
-//            typeCombo.setText(result);
-//          }
-//        }
-//        return;
-//      }
-      
-      typeLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_TYPE") + ":"); //$NON-NLS-1$
-	    if (element != null)
-	    {
-        boolean isAnonymous = checkForAnonymousType(element);
-        String result = element.getAttribute(XSDConstants.TYPE_ATTRIBUTE);
-	      if (isAnonymous)
-	      {
-	        typeCombo.setText("**anonymous**"); //$NON-NLS-1$
-	      }
-	      if (result != null && result.equals("")) //$NON-NLS-1$
-	      {
-	        typeCombo.setText(XSDEditorPlugin.getXSDString("_UI_NO_TYPE")); //$NON-NLS-1$
-	      }
-	      else if (result != null)
-	      {
-	        typeCombo.setText(result);
-	      }
-
-	    }
-	  }
-	}
-
-  /**
-   * @see org.eclipse.swt.events.SelectionListener#widgetSelected(SelectionEvent)
-   */
-  public void widgetSelected(SelectionEvent e)
-  {
-    if (e.widget == button)
-    {
-	    Shell shell = Display.getCurrent().getActiveShell();
-	    Object input = getInput();
-	    Element element = ((XSDConcreteComponent)getInput()).getElement();
-	    TypesDialog dialog;
-
-//	    if (input instanceof XSDSimpleTypeDefinition)
-//	    {
-//	      XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)input;
-//	      Element simpleTypeElement = st.getElement();
-//	      if (st.getVariety() == XSDVariety.LIST_LITERAL)
-//	      {
-//	        Element listElement = (Element)domHelper.getChildNode(simpleTypeElement, XSDConstants.LIST_ELEMENT_TAG);
-//	        dialog = new TypesDialog(shell, listElement, XSDConstants.ITEMTYPE_ATTRIBUTE, xsdSchema);
-//          dialog.showComplexTypes = false;
-//        }
-//        else if (st.getVariety() == XSDVariety.ATOMIC_LITERAL)
-//        {
-//          Element derivedByElement = (Element)domHelper.getChildNode(simpleTypeElement, XSDConstants.RESTRICTION_ELEMENT_TAG);
-//          if (derivedByElement == null)
-//          {
-//            derivedByElement = (Element)domHelper.getChildNode(simpleTypeElement, XSDConstants.EXTENSION_ELEMENT_TAG);
-//            if (derivedByElement == null) return;
-//          }
-//          if (derivedByElement != null)
-//          {
-//            dialog = new TypesDialog(shell, derivedByElement, XSDConstants.BASE_ATTRIBUTE, xsdSchema);
-//          }
-//          else
-//          {
-//            return;
-//          }
-//        }
-//        else
-//        {
-//          dialog = new TypesDialog(shell, element, "type", xsdSchema);
-//        }
-//	    }
-//	    else
-//	    {
-	      dialog = new TypesDialog(shell, element, "type", xsdSchema); //$NON-NLS-1$
-//	    }
-	    
-	    dialog.setBlockOnOpen(true);
-	    dialog.create();
-	    int result = dialog.open();
-	    
-	    if (result == Window.OK)
-	    {
-	      Object typeObject = dialog.getType();
-//		    if (input instanceof XSDSimpleTypeDefinition)
-//		    {
-//		      XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)input;
-//		      Element simpleTypeElement = st.getElement();
-//	        Element listElement = (Element)domHelper.getChildNode(simpleTypeElement, XSDConstants.LIST_ELEMENT_TAG);
-//
-//  	      beginRecording("ItemType Change", element);
-//          listElement.setAttribute(XSDConstants.ITEMTYPE_ATTRIBUTE, (String)typeObject);
-//          endRecording(element);
-//		    }
-	    }
-
-      refresh();
-    }
-  }
-
-  
-  
-  boolean checkForAnonymousType(Element element)
-  {
-    /* Using Ed's model to check
-     boolean isAnonymous = false;
-
-     XSDConcreteComponent component = getXSDSchema().getCorrespondingComponent(element);
-     if (component instanceof XSDElementDeclaration)
-     {
-     XSDElementDeclaration xsdElem = (XSDElementDeclaration)component;
-     isAnonymous = xsdElem.isSetAnonymousTypeDefinition();
-     }
-     return isAnonymous;
-     */
-
-    boolean isAnonymous = false;
-
-    Node aNode = getDomHelper().getChildNode(element, XSDConstants.SIMPLETYPE_ELEMENT_TAG);
-    if (aNode != null)
-     {
-      return true;
-    }
-    aNode = getDomHelper().getChildNode(element, XSDConstants.COMPLEXTYPE_ELEMENT_TAG);
-    if (aNode != null)
-     {
-      isAnonymous = true;
-    }
-    return isAnonymous;
-  }
-
-  public boolean shouldUseExtraSpace()
-  {
-    return false;
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/TypesSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/TypesSectionDescriptor.java
deleted file mode 100644
index af0e55b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/TypesSectionDescriptor.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class TypesSectionDescriptor extends AbstractSectionDescriptor
-{
-  /**
-   * 
-   */
-  public TypesSectionDescriptor()
-  {
-    super();
-  }
-
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getId()
-   */
-  public String getId()
-  {
-    return "com.ibm.xsdeditor.section.types";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-   */
-  public List getInputTypes()
-  {
-    List list = new ArrayList();
-    list.add(XSDElementDeclaration.class);
-    list.add(XSDAttributeDeclaration.class);
-    list.add(XSDAttributeUse.class);
-    list.add(XSDSimpleTypeDefinition.class);
-    return list;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-   */
-  public ISection getSectionClass()
-  {
-    return new TypesSection();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-   */
-  public String getTargetTab()
-  {
-    return "com.ibm.xmlwebservices.general";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-  {
-    Object object = null;
-    if (selection instanceof StructuredSelection)
-    {
-      StructuredSelection structuredSelection = (StructuredSelection)selection;
-      object = structuredSelection.getFirstElement();
-      if (object instanceof XSDElementDeclaration)
-      {
-        XSDElementDeclaration elementDeclaration = (XSDElementDeclaration)object;
-        if (elementDeclaration.isElementDeclarationReference())
-        {
-          return false;
-        }
-        return true;
-      }
-      else if (object instanceof XSDAttributeDeclaration)
-      {
-        XSDAttributeDeclaration attr = (XSDAttributeDeclaration)object;
-        if (attr.isAttributeDeclarationReference())
-        {
-          return false;
-        }
-        return true;
-      }
-      else if (object instanceof XSDAttributeUse)
-      {
-        XSDAttributeUse attributeUse = (XSDAttributeUse)object;
-        XSDAttributeDeclaration attribute = attributeUse.getAttributeDeclaration();
-        Element element = attributeUse.getElement();
-        if (inputEquals(element, XSDConstants.ATTRIBUTE_ELEMENT_TAG, false))
-        {
-          return true;
-        }
-        else
-        {
-          return false;
-        }
-
-      }
-//      else if (object instanceof XSDSimpleTypeDefinition)
-//      {
-//        XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)object;
-//        if (st.getVariety() == XSDVariety.LIST_LITERAL)
-//        {
-//          return true;
-//        }
-//        else if (st.getVariety() == XSDVariety.ATOMIC_LITERAL)
-//        {
-//          return true;
-//        }
-//      }
-    }
-    return false;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ValueSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ValueSection.java
deleted file mode 100644
index c24f79d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ValueSection.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.common.ui.properties.ITabbedPropertyConstants;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDEnumerationFacet;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class ValueSection extends AbstractSection
-{
-  Text valueText;
-  /**
-   * 
-   */
-  public ValueSection()
-  {
-    super();
-  }
-
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-	{
-		super.createControls(parent, factory);
-		Composite composite =	getWidgetFactory().createFlatFormComposite(parent);
-		FormData data;
-
-		valueText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, 100);
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(0, 0);
-		valueText.setLayoutData(data);
-		valueText.addListener(SWT.Modify, this);
-
-		CLabel valueLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_VALUE") + ":"); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(valueText, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(valueText, 0, SWT.CENTER);
-		valueLabel.setLayoutData(data);
-		
-//		listener.startListeningForEnter(valueText);
-//		listener.startListeningTo(valueText);
-	}
-
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh()
-	{
-	  setListenerEnabled(false);
-	  Object input = getInput();
-	  valueText.setText(""); //$NON-NLS-1$
-	  if (input != null)
-	  {
-	    if (input instanceof XSDEnumerationFacet)
-	    {
-	      XSDEnumerationFacet enumFacet = (XSDEnumerationFacet)input;
-	      Element element = enumFacet.getElement();
-        String value = element.getAttribute(XSDConstants.VALUE_ATTRIBUTE);
-        
-        if (value != null)
-        {
-          valueText.setText(value);
-        }
-	    }
-	  }
-	  setListenerEnabled(true);
-	}
-	
-  public void doHandleEvent(Event event)
-  {
-    if (event.widget == valueText)
-    {
-      Object input = getInput();
-	    if (input instanceof XSDEnumerationFacet)
-	    {
-	      XSDEnumerationFacet enumFacet = (XSDEnumerationFacet)input;
-	      Element element = enumFacet.getElement();
-        
-        beginRecording(XSDEditorPlugin.getXSDString("_UI_ENUM_VALUE_CHANGE"), element); //$NON-NLS-1$
-        String value = valueText.getText();
-        element.setAttribute(XSDConstants.VALUE_ATTRIBUTE, value);
-        endRecording(element);
-	    }
-    }
-  }
-
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISection#shouldUseExtraSpace()
-   */
-  public boolean shouldUseExtraSpace()
-  {
-    return false;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ValueSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ValueSectionDescriptor.java
deleted file mode 100644
index 7fd5517..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/ValueSectionDescriptor.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ISection;
-import org.eclipse.xsd.XSDEnumerationFacet;
-
-public class ValueSectionDescriptor extends AbstractSectionDescriptor
-{
-  /**
-   * 
-   */
-  public ValueSectionDescriptor()
-  {
-    super();
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getInputTypes()
-   */
-  public List getInputTypes()
-  {
-    List list = new ArrayList();
-    list.add(XSDEnumerationFacet.class);
-    return list;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getSectionClass()
-   */
-  public ISection getSectionClass()
-  {
-    return new ValueSection();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#getTargetTab()
-   */
-  public String getTargetTab()
-  {
-    return "com.ibm.xmlwebservices.general";
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-  {
-    Object object = null;
-    if (selection instanceof StructuredSelection)
-    {
-      StructuredSelection structuredSelection = (StructuredSelection)selection;
-      object = structuredSelection.getFirstElement();
-      if (object instanceof XSDEnumerationFacet)
-      {
-        return true;
-      }
-    }
-    return false;
-  }
-  
-  public String getAfterSection()
-  {
-    return "com.ibm.xsdeditor.section.name";
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/XSDSectionDescriptorProvider.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/XSDSectionDescriptorProvider.java
deleted file mode 100644
index 7b9e43c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/XSDSectionDescriptorProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import org.eclipse.wst.common.ui.properties.ISectionDescriptor;
-import org.eclipse.wst.common.ui.properties.ISectionDescriptorProvider;
-
-
-public class XSDSectionDescriptorProvider implements ISectionDescriptorProvider
-{
-  /**
-   * 
-   */
-  public XSDSectionDescriptorProvider()
-  {
-    super();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.ISectionDescriptorProvider#getSectionDescriptors()
-   */
-  public ISectionDescriptor[] getSectionDescriptors()
-  {
-    ISectionDescriptor[] descriptors = new ISectionDescriptor[18];
-    descriptors[0] = new NameSectionDescriptor();
-    descriptors[1] = new TypesSectionDescriptor();
-    descriptors[2] = new OtherAttributesSectionDescriptor();
-    descriptors[3] = new AttributesViewSectionDescriptor();
-    descriptors[4] = new ModelGroupSectionDescriptor();
-    descriptors[5] = new NamespaceProcessContentsSectionDescriptor();
-    descriptors[6] = new ReferenceSectionDescriptor();
-    descriptors[7] = new ComplexTypeSectionDescriptor();
-    descriptors[8] = new ValueSectionDescriptor();
-    descriptors[9] = new PatternSectionDescriptor();
-    descriptors[10] = new AnnotationSectionDescriptor();
-    descriptors[11] = new SimpleTypeSectionDescriptor();
-    descriptors[12] = new FacetsSectionDescriptor();
-    descriptors[13] = new EnumerationsSectionDescriptor();
-    descriptors[14] = new NamespaceSectionDescriptor();
-    descriptors[15] = new SchemaLocationDescriptor();
-    descriptors[16] = new NamespaceAndSchemaLocationDescriptor();
-    descriptors[17] = new MinMaxSectionDescriptor();
-    
-//  descriptors[18] = new SimpleTypeUnionSectionDescriptor();
-//  descriptors[19] = new FixedDefaultSectionDescriptor();    
-    return descriptors;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/XSDSectionLabelProvider.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/XSDSectionLabelProvider.java
deleted file mode 100644
index d5c6578..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/XSDSectionLabelProvider.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.XSDTextEditor;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.w3c.dom.Element;
-
-
-public class XSDSectionLabelProvider extends LabelProvider
-{
-  /**
-   * 
-   */
-  public XSDSectionLabelProvider()
-  {
-    super();
-  }
-
-	/**
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object object)
-	{
-		if (object == null || object.equals(StructuredSelection.EMPTY)) {
-			return null;
-		}
-    Image result = null;           
-    if (object instanceof StructuredSelection)
-    {
-      Object selected = ((StructuredSelection)object).getFirstElement();
-      
-      if (selected instanceof XSDConcreteComponent)
-      {
-        return XSDTextEditor.getLabelProvider().getImage((XSDConcreteComponent)selected);
-      }
-      
-//      selected  = typeMapper.remapObject(selected);
-//      ModelAdapter modelAdapter = adapterFactory.getAdapter(selected);
-//      if (modelAdapter != null)
-//      {
-//        result = (Image)modelAdapter.getProperty(selected, ModelAdapter.IMAGE_PROPERTY);     
-//      }
-    }
-    return result;
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object object)
-	{
-		if (object == null || object.equals(StructuredSelection.EMPTY))
-    {
-			return "No items selected";
-		}
-    
-    String result = null;
-
-    boolean isReference = false;
-    Object selected = null;
-    if (object instanceof StructuredSelection)
-    {
-      selected = ((StructuredSelection)object).getFirstElement();
-      
-      if (selected instanceof XSDConcreteComponent)
-      {
-        if (selected instanceof XSDElementDeclaration)
-        {
-          XSDElementDeclaration xsdElementDeclaration = (XSDElementDeclaration)selected;
-          if (xsdElementDeclaration.isElementDeclarationReference())
-          {
-            isReference = true;
-          }
-        }
-        else if (selected instanceof XSDAttributeDeclaration)
-        {
-          if (((XSDAttributeDeclaration)selected).isAttributeDeclarationReference())
-          {
-            isReference = true;
-          }
-        }
-        else if (selected instanceof XSDModelGroupDefinition)
-        {
-          if (((XSDModelGroupDefinition)selected).isModelGroupDefinitionReference())
-          {
-            isReference = true;
-          }
-        }
-        StringBuffer sb = new StringBuffer();
-        Element element = ((XSDConcreteComponent)selected).getElement();
-        if (element != null)
-        {
-          sb.append(((XSDConcreteComponent)selected).getElement().getLocalName());
-          
-          if (isReference)
-          {
-            sb.append(" ");
-            sb.append(XSDEditorPlugin.getXSDString("_UI_PAGE_HEADING_REFERENCE"));
-          }
-          
-          if (!(element instanceof XMLNode))
-          {
-            sb.append(" (" + XSDEditorPlugin.getXSDString("_UI_LABEL_READ_ONLY") + ")");   //$NON-NLS-1$
-          }
-          return sb.toString();
-        }
-        else
-        {
-          return "(" + XSDEditorPlugin.getXSDString("_UI_LABEL_READ_ONLY") + ")";  //$NON-NLS-1$
-        }
-      }
-
-//      selected  = typeMapper.remapObject(selected);
-//      
-//       ModelAdapter modelAdapter = adapterFactory.getAdapter(selected);
-//       if (modelAdapter != null)
-//       {                       
-//         // result = (String)modelAdapter.getProperty(selected, ModelAdapter.LABEL_PROPERTY);
-//         result = ((WSDLElement)selected).getElement().getLocalName();
-//       }
-      if (object instanceof Element)
-      {
-        return ((Element)object).getLocalName();
-      }
-    }
-    else if (object instanceof TextSelection)
-    {
-    }
-    
-
-    return result;
-	}
-
-	/**
-	 * Determine if a multiple object selection has been passed to the 
-	 * label provider. If the objects is a IStructuredSelection, see if 
-	 * all the objects in the selection are the same and if so, we want
-	 * to provide labels for the common selected element.
-	 * @param objects a single object or a IStructuredSelection.
-	 * @param multiple first element in the array is true if there is multiple
-	 * unequal selected elements in a IStructuredSelection.
-	 * @return the object to get labels for.
-	 */
-	private Object getObject(Object objects, boolean multiple[]) {
-		Assert.isNotNull(objects);
-		Object object = null;
-		return object;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/XSDTabbedPropertySheetPage.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/XSDTabbedPropertySheetPage.java
deleted file mode 100644
index 1435ed7..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/XSDTabbedPropertySheetPage.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.INotifyChangedListener;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.ITabbedPropertySheetPageContributor;
-import org.eclipse.wst.common.ui.properties.TabbedPropertySheetPage;
-import org.eclipse.wst.sse.ui.ViewerSelectionManager;
-import org.eclipse.wst.xsd.ui.internal.XSDSelectionManager;
-import org.eclipse.wst.xsd.ui.internal.graph.model.Category;
-import org.eclipse.wst.xsd.ui.internal.provider.CategoryAdapter;
-import org.eclipse.wst.xsd.ui.internal.provider.XSDModelAdapterFactoryImpl;
-import org.eclipse.xsd.XSDSchema;
-
-public class XSDTabbedPropertySheetPage extends TabbedPropertySheetPage
-  implements ISelectionChangedListener, INotifyChangedListener 
-{
-  private ViewerSelectionManager fViewerSelectionManager;
-  private XSDSelectionManager selectionManager;
-  private XSDModelAdapterFactoryImpl adapterFactory;
-  /**
-   * @param tabbedPropertySheetPageContributor
-   */
-  public XSDTabbedPropertySheetPage(ITabbedPropertySheetPageContributor tabbedPropertySheetPageContributor)
-  {
-    super(tabbedPropertySheetPageContributor);
-  }
-  
-  XSDSchema xsdSchema;
-  public void setXSDSchema(XSDSchema xsdSchema)
-  {
-    this.xsdSchema = xsdSchema;
-  }
-  
-  public void setXSDModelAdapterFactory(XSDModelAdapterFactoryImpl adapterFactory) {
-    // disconnect from old one
-    if (adapterFactory != null) {
-      adapterFactory.removeListener(this);
-    }
-
-    this.adapterFactory = adapterFactory;
-
-    // connect to new one
-    if (adapterFactory != null) {
-      adapterFactory.addListener(this);
-    }
-  }
-  
-  public void setSelectionManager(XSDSelectionManager newSelectionManager)
-  { 
-    // disconnect from old one
-    if (selectionManager != null)
-    {                                                        
-      selectionManager.removeSelectionChangedListener(this);  
-    }
-
-    selectionManager = newSelectionManager;
-
-    // connect to new one
-    if (selectionManager != null)
-    {
-      selectionManager.addSelectionChangedListener(this);  
-    }
-  }    
-
-  public void selectionChanged(IWorkbenchPart part, ISelection selection)
-  {
-    // override for category
-    if (selection != null)
-    {
-      if (selection instanceof StructuredSelection)
-      {
-        StructuredSelection structuredSelection = (StructuredSelection)selection;
-        if (structuredSelection.isEmpty())
-        {
-          return;
-        }
-        Object obj = structuredSelection.getFirstElement();        
-        if (obj instanceof CategoryAdapter)
-        {
-          selection = new StructuredSelection(((CategoryAdapter)obj).getXSDSchema());
-        }
-        else if (obj instanceof Category)
-        {
-          selection = new StructuredSelection(((Category)obj).getXSDSchema());
-        }  
-      }
-      else if (selection instanceof TextSelection)
-      {
-        return;
-      }
-    }
-    super.selectionChanged(part, selection);
-  }
-	
-  public void selectionChanged(SelectionChangedEvent event)
-  {
-    if (!event.getSelection().isEmpty())
-    {
-      selectionChanged(getSite().getWorkbenchWindow().getActivePage().getActivePart(), event.getSelection());
-      //super.selectionChanged(getSite().getWorkbenchWindow().getActivePage().getActivePart(), event.getSelection());
-    }
-  }
-  
-  public void dispose()
-  {
-    if (selectionManager != null)
-    {
-      selectionManager.removeSelectionChangedListener(this);
-    }
-    if (adapterFactory != null)
-    {
-      adapterFactory.removeListener(this);
-    }
-    super.dispose();
-  }
-  
-  public void notifyChanged(Notification notification)
-  {
-    if (getCurrentTab() != null)
-    {
-      refresh();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/XSDWorkbook.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/XSDWorkbook.java
deleted file mode 100644
index 9c43704..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/XSDWorkbook.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
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Composite;
-
-public class XSDWorkbook {
-  private CTabFolder tabFolder;
-  private CTabItem selectedTab;
-/**
- * Workbook constructor comment.
- */
-public XSDWorkbook(Composite parent, int style) {
-  tabFolder = new CTabFolder(parent, style);
-
-  tabFolder.addSelectionListener(new SelectionAdapter() {
-    public void widgetSelected(SelectionEvent event) {
-      CTabItem newSelectedTab = (CTabItem) event.item;
-      if (selectedTab == newSelectedTab) // Do nothing if the selection did not change.
-        return;
-
-      if (selectedTab != null && (!selectedTab.isDisposed())) {
-        XSDWorkbookPage selectedPage = getWorkbookPage(selectedTab);
-        if (!selectedPage.deactivate()) {
-          // tabFolder.setSelection(new CTabItem[] {selectedTab});
-          tabFolder.setSelection(selectedTab);
-          return;
-        }
-      }
-
-      selectedTab = newSelectedTab;
-      XSDWorkbookPage newSelectedPage = getWorkbookPage(newSelectedTab);
-      if (newSelectedPage != null)
-      newSelectedPage.activate();
-
-    }
-  });
-
-}
-public XSDWorkbookPage getSelectedPage() {
-
-  int index = tabFolder.getSelectionIndex();
-  if (index == -1) // When can this be -1
-    return null;
-
-  CTabItem selectedItem = tabFolder.getItem(index);
-
-  return (XSDWorkbookPage)selectedItem.getData();
-}
-public CTabFolder getTabFolder() {
-
-  return tabFolder;
-
-}
-protected XSDWorkbookPage getWorkbookPage(CTabItem item) {
-
-  try {
-    return (XSDWorkbookPage) item.getData();
-  } catch (ClassCastException e) {
-    return null;
-  }
-}
-public XSDWorkbookPage[] getWorkbookPages() {
-
-  CTabItem[] tabItems = tabFolder.getItems();
-  int nItems = tabItems.length;
-  XSDWorkbookPage[] workbookPages = new XSDWorkbookPage[nItems];
-  for (int i = 0; i < nItems; i++)
-    workbookPages[i] = getWorkbookPage(tabItems[i]);
-  return workbookPages;
-}
-public void setSelectedPage (XSDWorkbookPage workbookPage)
-{
-  CTabItem newSelectedTab = workbookPage.getTabItem();
-
-  if (selectedTab == newSelectedTab)
-    return;
-
-  selectedTab = newSelectedTab;
-  workbookPage.activate();
-  // tabFolder.setSelection(new CTabItem[] {newSelectedTab});
-  tabFolder.setSelection(newSelectedTab);
-
-}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/XSDWorkbookPage.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/XSDWorkbookPage.java
deleted file mode 100644
index f865afa..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/properties/section/XSDWorkbookPage.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.properties.section;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-public abstract class XSDWorkbookPage {
-  public CTabItem tabItem;
-/**
- * WorkbookPage constructor comment.
- */
-public XSDWorkbookPage(XSDWorkbook parent) {
-  CTabFolder folder = parent.getTabFolder();
-  tabItem = new CTabItem(folder,SWT.NONE);
-  tabItem.setData(this);
-}
-public void activate() {
-
-  if (tabItem.getControl() == null)
-    tabItem.setControl(createControl(tabItem.getParent()));
-      
-}
-protected abstract Control createControl (Composite parent);
-public boolean deactivate() {
-  return true;
-}
-public void dispose() {
-
-  if (tabItem == null)
-    return;
-
-  CTabItem oldItem = tabItem;
-  tabItem = null;
-  oldItem.dispose();
-}
-public CTabItem getTabItem() {
-  return tabItem;
-}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/CategoryAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/CategoryAdapter.java
deleted file mode 100644
index 3182e9a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/CategoryAdapter.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.provider;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.IChangeNotifier;
-import org.eclipse.emf.edit.provider.INotifyChangedListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.xsd.XSDSchema;
-
-
-public class CategoryAdapter // extends ItemProvider
-  implements ILabelProvider, IChangeNotifier, ITreeContentProvider
-{
-  
-  protected String text;
-
-  /**
-   * This is the image returned by {@link #getImage getImage(Object)}.
-   */
-  protected Image image;
-
-  /**
-   * This is the parent returned by {@link #getParent getParent(Object)}.
-   */
-  protected Object parent;
-
-  public CategoryAdapter(String label, Image image, Collection children, XSDSchema xsdSchema, int groupType)
-  {
-//    super(label, image, xsdSchema);
-    this.text = label;
-    this.image = image;
-    this.parent = xsdSchema;
-    this.xsdSchema = xsdSchema;
-    this.children = children;
-    this.groupType = groupType;
-  }
-  
-  public final static int ATTRIBUTES = 1;
-  public final static int ELEMENTS = 2;
-  public final static int TYPES = 3;
-  public final static int GROUPS = 5;
-  public final static int DIRECTIVES = 6;
-  public final static int NOTATIONS = 7;
-  public final static int ATTRIBUTE_GROUPS = 8;
-  public final static int IDENTITY_CONSTRAINTS = 9;
-  public final static int ANNOTATIONS = 10;
-                                 
-  protected int groupType;
-  Collection children;
-  XSDSchema xsdSchema;
-  
-  public XSDSchema getXSDSchema()
-  {
-    return xsdSchema;
-  }
-  
-  public int getGroupType()
-  {
-    return groupType;
-  }   
-
-//  public boolean hasChildren(Object o)
-//  {
-//    return !children.isEmpty();
-//  }
-
-//  public Collection getChildren(Object o)
-//  {
-//    return children;
-//  }
-  
-  public Image getImage(Object element)
-  {
-    return image;
-  }
-  
-  public String getText(Object object)
-  {
-    // return object.toString();
-    return text;
-  }
-  
-  public void addListener(ILabelProviderListener listener)
-  {
-    
-  }
-  
-  public boolean isLabelProperty(Object element, String property)
-  {
-    return false;
-  }
-
-  public void removeListener(ILabelProviderListener listener)
-  {
-    
-  }
-
-  public void fireNotifyChanged(Notification notification)
-  {
-    
-  }
-
-  /**
-   * This adds another listener.
-   */
-  public void addListener(INotifyChangedListener notifyChangedListener)
-  {
-    
-  }
-
-  /**
-   * This removes a listener.
-   */
-  public void removeListener(INotifyChangedListener notifyChangedListener)
-  {
-    
-  }
-
-  public void dispose()
-  {
-    
-  }
-  
-  public Object[] getElements(Object inputElement)
-  {
-    return getChildren(inputElement);
-  }
-
-  public Object[] getChildren(Object parentElement)
-  {
-    return children.toArray();
-  }
-  
-  public void setChildren(Collection list)
-  {
-    children = list;
-  }
-
-  public Object getParent(Object element)
-  {
-    return xsdSchema;
-  }
-  
-  public boolean hasChildren(Object element)
-  {
-    return true;
-  }
-
-  public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-  {
-    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDAbstractAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDAbstractAdapter.java
deleted file mode 100644
index 8233c5e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDAbstractAdapter.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.provider;
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.edit.provider.ChangeNotifier;
-import org.eclipse.emf.edit.provider.IChangeNotifier;
-import org.eclipse.emf.edit.provider.INotifyChangedListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.graphics.Image;
-
-public class XSDAbstractAdapter extends AdapterImpl
-  implements ITreeContentProvider, ILabelProvider, IChangeNotifier
-{
-
-  protected AdapterFactory adapterFactory;
-  /**
-   * 
-   */
-  public XSDAbstractAdapter(AdapterFactory adapterFactory)
-  {
-    super();
-    this.adapterFactory = adapterFactory;
-  }
-  
-  /**
-   * The adapter factory is used as the type key.
-   * This returns true, only if this adapter was created by the given factory.
-   */
-  public boolean isAdapterForType(Object type)
-  {
-    return type == adapterFactory;
-  }
-
-  public Image getImage(Object element)
-  {
-    return null;
-  }
-  
-  public String getText(Object object)
-  {
-    return object.toString();
-  }
-  
-  public void addListener(ILabelProviderListener listener)
-  {
-    
-  }
-  
-  public boolean isLabelProperty(Object element, String property)
-  {
-    return false;
-  }
-
-  public void removeListener(ILabelProviderListener listener)
-  {
-    
-  }
-  
-  public Object[] getChildren(Object parentElement)
-  {
-    List list = new ArrayList();
-    return list.toArray();
-  }
-  
-  public boolean hasChildren(Object object)
-  {
-    return false;
-  }
-
-  public Object getParent(Object object)
-  {
-    return null;
-  }
-
-  public Object[] getElements(Object inputElement)
-  {
-    return getChildren(inputElement);
-  }
-
-  public void dispose()
-  {
-    
-  }
-  
-  public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-  {
-    
-  }
-
-  /**
-   * This is used to implement {@link IChangeNotifier}.
-   */
-  protected IChangeNotifier changeNotifier;
-
-  
-  public void notifyChanged(Notification msg)
-  {                        
-    if (msg.getEventType() != Notification.RESOLVE)
-    {        
-      fireNotifyChanged(msg);
-    }
-  }  
-
-  /**
-   * This calls {@link org.eclipse.emf.edit.provider.INotifyChangedListener#notifyChanged notifyChanged} for each listener.
-   */
-  public void fireNotifyChanged(Notification notification)
-  {
-    if (changeNotifier != null)
-    {
-      changeNotifier.fireNotifyChanged(notification);
-    }
-
-    if (adapterFactory instanceof IChangeNotifier)
-    {
-      IChangeNotifier changeNotifier = (IChangeNotifier)adapterFactory;
-      changeNotifier.fireNotifyChanged(notification);
-    }
-  }
-
-
-  /**
-   * This adds another listener.
-   */
-  public void addListener(INotifyChangedListener notifyChangedListener)
-  {
-    if (changeNotifier == null)
-    {
-      changeNotifier = new ChangeNotifier();
-    }
-    changeNotifier.addListener(notifyChangedListener);
-   
-  }
-
-  /**
-   * This removes a listener.
-   */
-  public void removeListener(INotifyChangedListener notifyChangedListener)
-  {
-    if (changeNotifier != null)
-    {
-      changeNotifier.removeListener(notifyChangedListener);
-    }
-   
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDAdapterFactoryLabelProvider.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDAdapterFactoryLabelProvider.java
deleted file mode 100644
index 6587060..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDAdapterFactoryLabelProvider.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.provider;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.IChangeNotifier;
-import org.eclipse.emf.edit.provider.INotifyChangedListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.swt.graphics.Image;
-
-public class XSDAdapterFactoryLabelProvider implements ILabelProvider, INotifyChangedListener, ITableLabelProvider
-{
-  protected XSDModelAdapterFactoryImpl adapterFactory;
-  protected Collection labelProviderListeners;
-  
-  private static final Class ILabelProviderClass = ILabelProvider.class;
-  private static final Class ITableLabelProviderClass = ITableLabelProvider.class;
-
-  /**
-   * 
-   */
-  public XSDAdapterFactoryLabelProvider(XSDModelAdapterFactoryImpl adapterFactory)
-  {
-    this.adapterFactory = adapterFactory;
-//    if (adapterFactory instanceof IChangeNotifier)
-//    {
-//      ((IChangeNotifier)adapterFactory).addListener(this);
-//    }
-
-    labelProviderListeners = new ArrayList();
-  }
-
-  /**
-   * Return the wrapped AdapterFactory.
-   */
-  public AdapterFactory getAdapterFactory()
-  {
-    return adapterFactory;
-  }
-
-  /**
-   * Set the wrapped AdapterFactory.
-   */
-  public void setAdapterFactory(XSDModelAdapterFactoryImpl adapterFactory)
-  {
-    if (this.adapterFactory instanceof IChangeNotifier)
-    {
-      ((IChangeNotifier)this.adapterFactory).removeListener(this);
-    }
-
-    if (adapterFactory instanceof IChangeNotifier)
-    {
-      ((IChangeNotifier)adapterFactory).addListener(this);
-    }
-
-    this.adapterFactory = adapterFactory;
-  }
-
-  /**
-   * Since we won't ever generate these notifications, we can just ignore this.
-   */
-  public void addListener(ILabelProviderListener listener) 
-  {
-    labelProviderListeners.add(listener);
-  }
-
-  /**
-   * Since we won't ever add listeners, we can just ignore this.
-   */
-  public void removeListener(ILabelProviderListener listener)
-  {
-    labelProviderListeners.remove(listener);
-  }
-
-  /**
-   * This discards the content provider and removes this as a listener to the {@link #adapterFactory}.
-   */
-  public void dispose()
-  {
-    if (this.adapterFactory instanceof IChangeNotifier)
-    {
-      ((IChangeNotifier)adapterFactory).removeListener(this);
-    }
-  }
-
-  /**
-   * This always returns true right now.
-   */
-  public boolean isLabelProperty(Object object, String id)
-  {
-    return true;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-   */
-  public Image getImage(Object object)
-  {
-    ILabelProvider labelProvider = (ILabelProvider)adapterFactory.adapt(object, ILabelProviderClass);
-
-    return 
-      labelProvider != null ?
-        labelProvider.getImage(object) : null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-   */
-  public String getText(Object object)
-  {
-    // Get the adapter from the factory.
-    //
-    ILabelProvider labelProvider = (ILabelProvider)adapterFactory.adapt(object, ILabelProviderClass);
-
-    return
-      labelProvider != null ?
-        labelProvider.getText(object) :
-        object == null ? 
-          "" :
-          object.toString();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.emf.edit.provider.INotifyChangedListener#notifyChanged(org.eclipse.emf.common.notify.Notification)
-   */
-  public void notifyChanged(Notification notification)
-  {
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
-   */
-  public Image getColumnImage(Object element, int columnIndex)
-  {
-    return null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
-   */
-  public String getColumnText(Object element, int columnIndex)
-  {
-    return null;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDAnnotationAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDAnnotationAdapter.java
deleted file mode 100644
index b57a4c5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDAnnotationAdapter.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.provider;
-
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDAnnotation;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class XSDAnnotationAdapter extends XSDAbstractAdapter
-{
-  public XSDAnnotationAdapter(AdapterFactory adapterFactory)
-  {
-    super(adapterFactory);
-  }
-
-  public Image getImage(Object element)
-  {
-    return XSDEditorPlugin.getPlugin().getImage("icons/XSDAnnotate.gif");
-  }
-  
-  public String getText(Object object)
-  {
-    XSDAnnotation xsdAnnotation = ((XSDAnnotation)object);
-    String result = "";
-    List userInformation = xsdAnnotation.getUserInformation();
-    if (!userInformation.isEmpty())
-    {
-      Element element = (Element)userInformation.get(0);
-      if (element.hasAttribute(XSDConstants.SOURCE_ATTRIBUTE))
-      {
-        result = element.getAttribute(XSDConstants.SOURCE_ATTRIBUTE);
-      }
-      else
-      {
-        org.w3c.dom.Node text = element.getFirstChild(); 
-        while (text instanceof Element)
-        {
-          text = ((Element)text).getFirstChild();
-        }
-        if (text != null && text.getNodeValue() != null)
-        {
-          result = text.getNodeValue();
-          result = result.trim();
-          if (result.length() > 50)
-          {
-            result = result.substring(0, 50) + "...";
-          }
-        }
-      }
-    }
-
-    return result;
-  }
-  
-  public Object[] getChildren(Object parentElement)
-  {
-    return null;  
-  }
-  
-  public boolean hasChildren(Object object)
-  {
-    return true;
-  }
-
-  public Object getParent(Object object)
-  {
-    XSDAnnotation element = (XSDAnnotation)object;
-    return element.getContainer();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDAttributeDeclarationAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDAttributeDeclarationAdapter.java
deleted file mode 100644
index 330925f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDAttributeDeclarationAdapter.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-public class XSDAttributeDeclarationAdapter extends XSDAbstractAdapter
-{
-
-  /**
-   * @param adapterFactory
-   */
-  public XSDAttributeDeclarationAdapter(AdapterFactory adapterFactory)
-  {
-    super(adapterFactory);
-  }
-
-  public Image getImage(Object object)
-  {
-    XSDAttributeDeclaration xsdAttributeDeclaration = ((XSDAttributeDeclaration)object);
-    XSDAttributeDeclaration resolvedAttributeDeclaration = xsdAttributeDeclaration.getResolvedAttributeDeclaration();
-    
-    if (resolvedAttributeDeclaration.getContainer() == null)
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDAttribute.gif");
-    }
-    // if (xsdAttributeDeclaration.getResolvedAttributeDeclaration() == xsdAttributeDeclaration)
-    if (xsdAttributeDeclaration.isAttributeDeclarationReference())
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDAttributeRef.gif");
-    }
-    else
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDAttribute.gif");
-    }
-    
-//    return 
-//    XSDEditorPlugin.getPlugin().getIconImage
-//     (resolvedAttributeDeclaration.getContainer() == null ?
-//        "full/obj16/XSDAttributeUnresolved" :
-//          xsdAttributeDeclaration.getResolvedAttributeDeclaration() == xsdAttributeDeclaration ?
-//          "full/obj16/XSDAttributeDeclaration" :
-//          "full/obj16/XSDAttributeUse");
-  }
-
-  public String getText(Object object)
-  {
-    XSDAttributeDeclaration xsdAttributeDeclaration = ((XSDAttributeDeclaration)object);
-    XSDAttributeDeclaration resolvedAttributeDeclaration = xsdAttributeDeclaration.getResolvedAttributeDeclaration();
-    String name =
-      xsdAttributeDeclaration != resolvedAttributeDeclaration ?
-        xsdAttributeDeclaration.getQName() :
-        xsdAttributeDeclaration.getName();
-
-    StringBuffer result = new StringBuffer();
-    if (name == null)
-    {
-      result.append("'absent'");
-    }
-    else
-    {
-      result.append(name);
-    }
-
-    if (resolvedAttributeDeclaration.getAnonymousTypeDefinition() == null && resolvedAttributeDeclaration.getTypeDefinition() != null)
-    {
-      result.append(" : ");
-      result.append(resolvedAttributeDeclaration.getTypeDefinition().getQName(xsdAttributeDeclaration));
-    }
-
-    return result.toString();
-  }
-
-  public Object[] getChildren(Object parentElement)
-  {
-    XSDAttributeDeclaration xsdAttributeDeclaration = (XSDAttributeDeclaration)parentElement;
-    List list = new ArrayList();
-    
-    XSDTypeDefinition type = xsdAttributeDeclaration.getAnonymousTypeDefinition();
-    if (type != null)
-    {
-      list.add(type);
-    }
-    return list.toArray();
-  }
-  
-  public boolean hasChildren(Object object)
-  {
-    return true;
-  }
-
-  public Object getParent(Object object)
-  {
-    XSDAttributeDeclaration element = (XSDAttributeDeclaration)object;
-    return element.getContainer();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDAttributeGroupDefinitionAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDAttributeGroupDefinitionAdapter.java
deleted file mode 100644
index e8b6c89..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDAttributeGroupDefinitionAdapter.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.provider;
-
-import java.util.ArrayList;
-//import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-//import org.eclipse.xsd.XSDAttributeGroupContent;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-//import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDWildcard;
-
-
-public class XSDAttributeGroupDefinitionAdapter extends XSDAbstractAdapter
-{
-
-  /**
-   * @param adapterFactory
-   */
-  public XSDAttributeGroupDefinitionAdapter(AdapterFactory adapterFactory)
-  {
-    super(adapterFactory);
-  }
-
-  public Image getImage(Object object)
-  {
-    XSDAttributeGroupDefinition xsdAttributeGroupDefinition = ((XSDAttributeGroupDefinition)object);
-    XSDAttributeGroupDefinition resolvedAttributeGroupDefinition = xsdAttributeGroupDefinition.getResolvedAttributeGroupDefinition();
-
-    if (xsdAttributeGroupDefinition.isAttributeGroupDefinitionReference())
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDAttributeGroupRef.gif");
-    }
-    else
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDAttributeGroup.gif");
-    }
-  }
-
-  public String getText(Object object)
-  {
-    XSDAttributeGroupDefinition xsdAttributeGroupDefinition = ((XSDAttributeGroupDefinition)object);
-    String result =  
-      xsdAttributeGroupDefinition.isAttributeGroupDefinitionReference() ?
-        xsdAttributeGroupDefinition.getQName() :
-        xsdAttributeGroupDefinition.getName();
-    return result == null ? "'absent'" : result;
-  }
-
-  public Object[] getChildren(Object parentElement)
-  {
-    XSDAttributeGroupDefinition xsdAttributeGroup = (XSDAttributeGroupDefinition)parentElement;
-    List list = new ArrayList();
-    list.addAll(xsdAttributeGroup.getContents());   
-//    Iterator i = xsdAttributeGroup.getContents().iterator();
-//    while (i.hasNext())
-//    {
-//      XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent)i.next();
-//      if (attrGroupContent instanceof XSDAttributeUse)
-//      {
-//        list.add(((XSDAttributeUse)attrGroupContent).getAttributeDeclaration());
-//      }
-//      else
-//      {
-//        list.add(attrGroupContent);
-//      }
-//    }
-    
-    XSDWildcard wildcard = xsdAttributeGroup.getAttributeWildcardContent();
-    if (wildcard != null)
-    {
-      list.add(wildcard);
-    }
-    return list.toArray();
-  }
-  
-  public boolean hasChildren(Object object)
-  {
-    return true;
-  }
-
-  public Object getParent(Object object)
-  {
-    XSDAttributeGroupDefinition element = (XSDAttributeGroupDefinition)object;
-    return element.getContainer();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDAttributeUseAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDAttributeUseAdapter.java
deleted file mode 100644
index 5c8c127..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDAttributeUseAdapter.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.provider;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeUse;
-
-public class XSDAttributeUseAdapter extends XSDAbstractAdapter
-{
-
-  /**
-   * @param adapterFactory
-   */
-  public XSDAttributeUseAdapter(AdapterFactory adapterFactory)
-  {
-    super(adapterFactory);
-  }
-  
-  protected XSDAttributeDeclaration getDelegate(XSDAttributeUse xsdAttributeUse)
-  {
-    return xsdAttributeUse.getContent();
-  }
-  
-  /**
-   * This returns XSDAttributeUse.gif.
-   */
-  public Image getImage(Object object)
-  {
-    XSDAttributeUse xsdAttributeUse = ((XSDAttributeUse)object);
-    
-    XSDAttributeDeclaration xsdAttributeDeclaration = getDelegate(xsdAttributeUse);
-    if (xsdAttributeDeclaration.isAttributeDeclarationReference())
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDAttributeRef.gif");
-    }
-    else
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDAttribute.gif");
-    }
-    //return XSDEditorPlugin.getPlugin().getIconImage("full/obj16/XSDAttributeUse");  
-    
-  }
-
-  public String getText(Object object)
-  {
-    return getText(object, true);
-  }
-
-  public String getText(Object object, boolean showType)
-  {
-    XSDAttributeUse xsdAttributeUse = ((XSDAttributeUse)object);
-    XSDAttributeDeclaration xsdAttributeDeclaration = getDelegate(xsdAttributeUse);
-    if (xsdAttributeDeclaration.isAttributeDeclarationReference())
-    {
-      return xsdAttributeDeclaration.getResolvedAttributeDeclaration().getName();
-    }
-    StringBuffer result  = new StringBuffer();
-    if (xsdAttributeDeclaration != null)
-    {
-      result.append(xsdAttributeDeclaration.getName());
-    }
-
-    if (xsdAttributeUse.isSetConstraint())
-    {
-      if (result.length() != 0)
-      {
-        result.append("  ");
-      }
-      result.append('<');
-      result.append(xsdAttributeUse.getConstraint());
-      result.append("=\"");
-      result.append(xsdAttributeUse.getLexicalValue());
-      result.append("\">");
-    }
-
-    return result.toString();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDComplexTypeDefinitionAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDComplexTypeDefinitionAdapter.java
deleted file mode 100644
index 38f7351..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDComplexTypeDefinitionAdapter.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.provider;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDChildUtility;
-import org.eclipse.xsd.XSDComplexTypeContent;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class XSDComplexTypeDefinitionAdapter extends XSDAbstractAdapter
-{
-
-  /**
-   * @param adapterFactory
-   */
-  public XSDComplexTypeDefinitionAdapter(AdapterFactory adapterFactory)
-  {
-    super(adapterFactory);
-  }
-
-  public Image getImage(Object object)
-  {
-    return XSDEditorPlugin.getXSDImage("icons/XSDComplexType.gif");
-//    XSDComplexTypeDefinition xsdComplexTypeDefinition = ((XSDComplexTypeDefinition)object);
-//    return 
-//      XSDEditorPlugin.getPlugin().getIconImage
-//        (xsdComplexTypeDefinition.getContainer() == null ?
-//          "full/obj16/XSDComplexTypeDefinitionUnresolved" :
-//          "full/obj16/XSDComplexTypeDefinition");
-  }
-  
-  public String getText(Object object)
-  {
-    return getText(object, true);
-  }
-  
-  public String getText(Object object, boolean showType)
-  {
-    XSDComplexTypeDefinition xsdComplexTypeDefinition = ((XSDComplexTypeDefinition)object);
-
-    StringBuffer result = new StringBuffer();
-    
-    result.append
-     (xsdComplexTypeDefinition.getName() == null ? 
-        // xsdComplexTypeDefinition.getAliasName() :
-        "local type" :
-        xsdComplexTypeDefinition.getName());
-
-    if (showType)
-    {
-      XSDTypeDefinition baseTypeDefinition = xsdComplexTypeDefinition.getBaseTypeDefinition();
-      if (baseTypeDefinition != null && 
-            baseTypeDefinition != xsdComplexTypeDefinition.getContent() &&
-            baseTypeDefinition.getName() != null &&
-            !XSDConstants.isURType(baseTypeDefinition))
-      {
-        result.append(" : ");
-        result.append(baseTypeDefinition.getQName(xsdComplexTypeDefinition));
-      }
-    }
-
-    return result.toString();
-  }
-
-  public Object[] getChildren(Object parentElement)
-  {
-    XSDComplexTypeDefinition xsdComplexTypeDefinition = (XSDComplexTypeDefinition)parentElement;
-    List list = new ArrayList();
-    
-    if (xsdComplexTypeDefinition.getContent() != null)
-    {
-      XSDComplexTypeContent xsdComplexTypeContent = xsdComplexTypeDefinition.getContent();
-      if (xsdComplexTypeContent instanceof XSDParticle)
-      {
-        list.add(((XSDParticle)xsdComplexTypeContent).getContent());
-      }
-    }
-    
-//    if (((XSDModelAdapterFactoryImpl)adapterFactory).getShowInherited())
-//    {
-//      if (xsdComplexTypeDefinition.getSyntheticParticle() != null)
-//      {
-//        XSDTypeDefinition type = xsdComplexTypeDefinition.getBaseTypeDefinition();
-//        list.addAll(XSDChildUtility.getModelChildren(type));
-//      }
-//      if (xsdComplexTypeDefinition.getSyntheticWildcard() != null)
-//      {
-//        list.add(xsdComplexTypeDefinition.getSyntheticWildcard());
-//      }
-//    }
-    
-//    List attributes = xsdComplexTypeDefinition.getAttributeContents();
-//    if (attributes.size() > 0)
-//    {
-//      list.addAll(attributes);
-//    }
-
-//  list = new ArrayList();
-    if (((XSDModelAdapterFactoryImpl)adapterFactory).getShowInherited())
-    {
-      if (xsdComplexTypeDefinition.getDerivationMethod().getName().equals("extension"))
-      {
-        XSDTypeDefinition type = xsdComplexTypeDefinition.getBaseTypeDefinition();
-        Iterator iter = XSDChildUtility.getModelChildren(type).iterator();
-        boolean cont = true;
-        while (cont)
-        {
-          while (iter.hasNext())
-          {
-            list.add(0, iter.next());
-          }
-          
-          if (type instanceof XSDComplexTypeDefinition)
-          {
-            XSDComplexTypeDefinition ctd = (XSDComplexTypeDefinition)type;
-            type = ctd.getBaseTypeDefinition();
-                      
-            // defect 264957 - workbench hangs when modifying complex content
-            // Since we don't filter out the current complexType from
-            // the combobox, we can potentially have an endless loop
-            if (ctd == type)
-            {
-              cont = false;
-              break;
-            }
-
-            if (ctd.getDerivationMethod().getName().equals("extension"))
-            {
-              iter = XSDChildUtility.getModelChildren(type).iterator();
-            }
-            else
-            {
-              cont = false;
-            }
-          }
-          else
-          {
-            cont = false;
-          }
-        }
-
-      }
-
-          
-//          list.addAll(XSDChildUtility.getModelChildren(baseType));
-      }
-
-//    list.addAll(XSDChildUtility.getModelChildren(xsdComplexTypeDefinition));
-
-    return list.toArray();
- 
-  }
-  
-  public boolean hasChildren(Object object)
-  {
-    return true;
-  }
-
-  public Object getParent(Object object)
-  {
-    XSDComplexTypeDefinition element = (XSDComplexTypeDefinition)object;
-    return element.getContainer();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDContentProvider.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDContentProvider.java
deleted file mode 100644
index f573249..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDContentProvider.java
+++ /dev/null
@@ -1,305 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.provider;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.edit.provider.IChangeNotifier;
-import org.eclipse.emf.edit.provider.INotifyChangedListener;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDParticleContent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDWildcard;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-public class XSDContentProvider implements ITreeContentProvider, INotifyChangedListener
-{
-//  protected static XSDItemProviderAdapterFactory syntacticAdapterFactory = new XSDItemProviderAdapterFactory();
-//  protected static XSDSemanticItemProviderAdapterFactory semanticAdapterFactory = new XSDSemanticItemProviderAdapterFactory();
-  
-  XSDModelAdapterFactoryImpl xsdModelAdapterFactory;
-
-  XSDSchema xsdSchema;
-  public XSDContentProvider(XSDModelAdapterFactoryImpl xsdModelAdapterFactoryImpl)
-  {
-    this.xsdModelAdapterFactory = xsdModelAdapterFactoryImpl;
-    
-    if (xsdModelAdapterFactory instanceof IChangeNotifier)
-    {
-      ((IChangeNotifier)xsdModelAdapterFactory).addListener(this);
-    }
-  }
-  
-  public void setXSDSchema(XSDSchema xsdSchema)
-  {
-    this.xsdSchema = xsdSchema;
-  }
-  
-  /*
-   * @see ITreeContentProvider#getChildren(Object)
-   */
-  public Object[] getChildren(Object parentElement)
-  {
-//  return adapterFactoryContentProvider.getChildren(parentElement);
-    XSDConcreteComponent xsdComp = null;
-    List list = null;
-    if (parentElement instanceof Document)
-    {
-      xsdComp = xsdSchema;
- 	    // ItemProviderAdapter a = (ItemProviderAdapter)syntacticAdapterFactory.adapt(xsdComp, syntacticAdapterFactory);
-      // ItemProviderAdapter a = (ItemProviderAdapter)semanticAdapterFactory.adapt(xsdComp, semanticAdapterFactory);
- 	    
- 	    XSDAbstractAdapter a = (XSDAbstractAdapter)xsdModelAdapterFactory.adapt(xsdComp, xsdModelAdapterFactory);
- 	    
-//      a.removeListener((INotifyChangedListener)this);
-// 	    a.addListener((INotifyChangedListener)this);
-
-      list = new ArrayList();
-      list.add(xsdComp);
-      return list.toArray();
-    }
-    else if (parentElement instanceof XSDConcreteComponent)
-    {
-      xsdComp = (XSDConcreteComponent)parentElement;
-      list = new ArrayList();
-    }
-    else if (parentElement instanceof ITreeItemContentProvider)
-    {
-      // return adapterFactoryContentProvider.getChildren(parentElement);
-      return ((ITreeItemContentProvider)parentElement).getChildren(parentElement).toArray();
-    }
-    else if (parentElement instanceof ITreeContentProvider)
-    {
-      return ((ITreeContentProvider)parentElement).getChildren(parentElement);
-    }
-    
-    if (xsdComp != null)
-    {
- 	    // ItemProviderAdapter a = (ItemProviderAdapter)syntacticAdapterFactory.adapt(xsdComp, syntacticAdapterFactory);
-      // ItemProviderAdapter a = (ItemProviderAdapter)semanticAdapterFactory.adapt(xsdComp, semanticAdapterFactory);
- 	    
-      XSDAbstractAdapter a = (XSDAbstractAdapter)xsdModelAdapterFactory.adapt(xsdComp, xsdModelAdapterFactory);
-      
-      if (xsdComp instanceof XSDElementDeclaration || xsdComp instanceof XSDModelGroup || xsdComp instanceof XSDWildcard)
-      {
-        XSDAbstractAdapter particleAdapter = (XSDAbstractAdapter)xsdModelAdapterFactory.adapt(((XSDParticleContent)xsdComp).getContainer(), xsdModelAdapterFactory);
-      }
-
- 	    if (a != null)
- 	    {
-// 	      a.removeListener((INotifyChangedListener)this);
-// 	      a.addListener((INotifyChangedListener)this);
- 	    
- 	      Object [] obj = a.getChildren(xsdComp);
- 	      if (obj != null)
- 	      {
- 	        list = Arrays.asList(obj);
- 	      }
- 	    }
-//	     list = (List)a.getChildren(xsdComp);
-    }
-    
-    list =  list != null ? list : Collections.EMPTY_LIST;
-    return list.toArray();
-  }
-
-  /*
-   * @see ITreeContentProvider#getParent(Object)
-   */
-  public Object getParent(Object element)
-  {
-    if (element instanceof Node)
-    {
-      return ((Node)element).getParentNode();
-    }
-    else if (element instanceof XSDConcreteComponent)
-    {
-      return ((XSDConcreteComponent)element).getContainer();
-    }
-    return null;
-  }
-
-  /*
-   * @see ITreeContentProvider#hasChildren(Object)
-   */
-  public boolean hasChildren(Object element)
-  {
-    Object[] children = getChildren(element);
-    return children != null && children.length > 0;   
-  }
-
-  /*
-   * @see IStructuredContentProvider#getElements(Object)
-   */
-  public Object[] getElements(Object inputElement)
-  {
-    return getChildren(inputElement);
-  }
-
-  public void notifyChanged(Notification notification)
-  {
-    if (viewer != null)
-    {
-      if (viewer instanceof StructuredViewer)
-      {
-        if (notification.getFeature() instanceof EAttribute)
-        {
-          ((StructuredViewer)viewer).update(notification.getNotifier(), null);
-        }
-        else
-        {
-          ((StructuredViewer)viewer).refresh(notification.getNotifier());
-        }
-      }
-      else
-      {
-        viewer.refresh();
-      }
-    }
-
-  }
-
-  /*
-   * @see IContentProvider#dispose()
-   */
-  public void dispose()
-  {
-    viewer = null;
-    xsdModelAdapterFactory.removeListener(this);
-  }
-  
-  protected Viewer viewer = null;
-
-  /*
-   * @see IContentProvider#inputChanged(Viewer, Object, Object)
-   */
-  public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-  {
-    this.viewer = viewer;
-  }
-  
-//  protected ViewerNotifyingAdapterFactory viewerNotifyingAdapterFactory = new ViewerNotifyingAdapterFactory();
-//
-//  
-//    // There is only 1 adapter associated with this factory.  This single adapter gets added
-//  // to the adapter lists of many nodes.
-//  public class ViewerNotifyingAdapterFactory extends // KCPort com.ibm.sed.model.AbstractAdapterFactory
-//    AbstractAdapterFactory
-//  {
-//    protected ViewerNotifyingAdapter viewerNotifyingAdapter = new ViewerNotifyingAdapter();
-//
-//    protected INodeAdapter createAdapter(INodeNotifier target)
-//    {
-//      return viewerNotifyingAdapter;
-//    }
-//
-//    protected ViewerNotifyingAdapter doAdapt(Object object)
-//    {
-//      ViewerNotifyingAdapter result = null;
-//      if (object instanceof INodeNotifier)
-//      {
-//        result = (ViewerNotifyingAdapter)adapt((INodeNotifier)object);
-//      }
-//      return result;
-//    }
-//  }
-//                    
-//
-//  public class ViewerNotifyingAdapter implements INodeAdapter
-//  {
-//    public boolean isAdapterForType(Object type)
-//    {
-//      return type == viewerNotifyingAdapterFactory;
-//    }
-//    
-//    public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue,	Object newValue,	int pos)
-//    { 
-//      if (viewer == null || newValue instanceof Text || oldValue instanceof Text)
-//        return;
-//      
-//      if (eventType != INodeNotifier.ADD && eventType != INodeNotifier.REMOVE)
-//      {                                 
-//        if (notifier instanceof Element)
-//        {        
-//          Node node = (Node)notifier;                   
-//          Node parent = node instanceof Attr ? ((Attr)node).getOwnerElement() : node.getParentNode();
-//          // we use to refresh the parent, but it seems that the notifier is sufficient now
-//          
-//          Object objToRefresh = notifier;      
-//          if (notifier instanceof DocumentImpl)
-//          {
-//            objToRefresh = ((DocumentImpl)notifier).getModel();
-//          }
-//          if (viewer instanceof AbstractTreeViewer)
-//          {
-////            if (node instanceof XMLNode)
-////            {
-////              XMLNode xmlNode = (XMLNode)node;
-////              int caretPosition =  xmlNode.getStartOffset();
-////              ((XSDEditorTreeViewer)viewer).setCaretPosition(caretPosition);
-////            }
-//            ((AbstractTreeViewer)viewer).refresh(objToRefresh);
-//          }
-//          else
-//          {
-//            viewer.refresh();
-//          }
-//        }
-//        
-//      }
-//      else if (eventType == INodeNotifier.ADD || eventType == INodeNotifier.REMOVE)
-//      {
-//        if (notifier instanceof DocumentImpl)
-//        {
-//          Object objToRefresh = ((DocumentImpl)notifier).getModel();
-//          if (viewer instanceof AbstractTreeViewer)
-//          {
-//            ((AbstractTreeViewer)viewer).refresh(objToRefresh);
-//          }
-//        }
-//      }
-////        if (notifier instanceof Element)
-////        {  
-//// performance problem - updates all elements when the children are reparented
-////          Object objToRefresh = notifier;      
-////          if (notifier instanceof DocumentImpl)
-////          {
-////            objToRefresh = ((DocumentImpl)notifier).getModel();
-////          }
-////          if (viewer instanceof AbstractTreeViewer)
-////          {
-////            ((AbstractTreeViewer)viewer).refresh(objToRefresh);
-////          }
-////          if (eventType == Notifier.ADD && newValue instanceof Element)
-////          {
-////            if (viewer instanceof XSDEditorTreeViewer)
-////            {
-////              // default select the new added element
-////              ((XSDEditorTreeViewer)viewer).getOutlinePage().updateSelection(new StructuredSelection(newValue));
-////            }
-////          }
-////        }          
-////      }
-//    }
-//  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDElementDeclarationAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDElementDeclarationAdapter.java
deleted file mode 100644
index a74e4bf..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDElementDeclarationAdapter.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-
-public class XSDElementDeclarationAdapter extends XSDAbstractAdapter
-{
-
-  /**
-   * @param adapterFactory
-   */
-  public XSDElementDeclarationAdapter(AdapterFactory adapterFactory)
-  {
-    super(adapterFactory);
-  }
-
-  public Image getImage(Object element)
-  {
-    XSDElementDeclaration xsdElementDeclaration = ((XSDElementDeclaration)element);
-    XSDElementDeclaration resolvedElementDeclaration = xsdElementDeclaration.getResolvedElementDeclaration();
-    
-    if (!xsdElementDeclaration.isElementDeclarationReference())
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDElement.gif");
-    }
-    else
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDElementRef.gif");
-    }
-    
-//    return 
-//      XSDEditorPlugin.getPlugin().getIconImage
-//        (resolvedElementDeclaration.getContainer() == null ?
-//           "full/obj16/XSDElementUnresolved" :
-//           xsdElementDeclaration.getResolvedElementDeclaration() == xsdElementDeclaration ?
-//             "full/obj16/XSDElementDeclaration" :
-//             "full/obj16/XSDElementUse");
-
-  }
-  
-  public String getText(Object object)
-  {
-    XSDElementDeclaration xsdElementDeclaration = ((XSDElementDeclaration)object);
-    XSDElementDeclaration resolvedElementDeclaration = xsdElementDeclaration.getResolvedElementDeclaration();
-    String name = 
-      xsdElementDeclaration != resolvedElementDeclaration ?
-        xsdElementDeclaration.getQName() :
-        xsdElementDeclaration.getName();
-
-    StringBuffer result = new StringBuffer();
-    if (name == null)
-    {
-      result.append("'absent'");
-    }
-    else
-    {
-      result.append(name);
-    }
-    
-    if (!xsdElementDeclaration.isGlobal())
-    {
-      Element element = xsdElementDeclaration.getElement();
-      boolean hasMinOccurs = element.hasAttribute(XSDConstants.MINOCCURS_ATTRIBUTE);
-      boolean hasMaxOccurs = element.hasAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE);
-
-      if (hasMinOccurs || hasMaxOccurs)
-      {
-	      result.append(" ["); 
-		    if (hasMinOccurs)
-	      {
-	        int min = ((XSDParticle)xsdElementDeclaration.getContainer()).getMinOccurs();
-	  	    if (min == XSDParticle.UNBOUNDED)
-	  	    {
-	  	      result.append("*");
-	  	    }
-	  	    else
-	  	    {
-	  	      result.append(String.valueOf(min));
-	  	    }
-	      }
-        else // print default
-        {
-          int min = ((XSDParticle)xsdElementDeclaration.getContainer()).getMinOccurs();
-          result.append(String.valueOf(min));
-        }
-	      if (hasMaxOccurs)
-	      {
-	        int max = ((XSDParticle)xsdElementDeclaration.getContainer()).getMaxOccurs();
-	  	    result.append("..");
-	  	    if (max == XSDParticle.UNBOUNDED)
-	  	    {
-	  	      result.append("*");
-	  	    }
-	  	    else
-	  	    {
-	  	      result.append(String.valueOf(max));
-	  	    }
-	      }
-        else // print default
-        {
-          result.append("..");
-          int max = ((XSDParticle)xsdElementDeclaration.getContainer()).getMaxOccurs();
-          result.append(String.valueOf(max));
-         
-        }
-	      result.append("]");
-      }
-    }
-    
-    if (resolvedElementDeclaration.getAnonymousTypeDefinition() == null && resolvedElementDeclaration.getTypeDefinition() != null)
-    {
-      result.append(" : ");
-      result.append(resolvedElementDeclaration.getTypeDefinition().getQName(xsdElementDeclaration));
-    }
-
-    return result.toString();
-  }
-  
-  public Object[] getChildren(Object parentElement)
-  {
-    XSDElementDeclaration xsdElementDeclaration = (XSDElementDeclaration)parentElement;
-    List list = new ArrayList();
-    XSDTypeDefinition type = null;
-    if (xsdElementDeclaration.isElementDeclarationReference())
-    {
-      if (((XSDModelAdapterFactoryImpl)adapterFactory).getShowReferences())
-      {
-        type = xsdElementDeclaration.getResolvedElementDeclaration().getTypeDefinition();
-      }
-    }
-    else
-    {
-      type = xsdElementDeclaration.getAnonymousTypeDefinition();
-      if (type == null)
-      {
-        if (((XSDModelAdapterFactoryImpl)adapterFactory).getShowReferences())
-        {
-          type = xsdElementDeclaration.getTypeDefinition();
-        }
-      }
-    }
-
-    if (type != null && type instanceof XSDComplexTypeDefinition)
-    {
-      XSDComplexTypeDefinition ctType = (XSDComplexTypeDefinition)type;
-      if (ctType != null)
-      {
-        list.add(ctType);
-      }
-    }
-
-//    if (xsdElementDeclaration.getIdentityConstraintDefinitions() != null)
-//    {
-//      list.addAll(xsdElementDeclaration.getIdentityConstraintDefinitions());
-//    }
-    
-//    return XSDChildUtility.getModelChildren(xsdElementDeclaration.getResolvedElementDeclaration()).toArray();
-    return list.toArray();
-  
-  }
-  
-  public boolean hasChildren(Object object)
-  {
-    return true;
-  }
-
-  public Object getParent(Object object)
-  {
-    XSDElementDeclaration element = (XSDElementDeclaration)object;
-    return element.getContainer();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDModelAdapterFactoryImpl.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDModelAdapterFactoryImpl.java
deleted file mode 100644
index faf443f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDModelAdapterFactoryImpl.java
+++ /dev/null
@@ -1,422 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.provider;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.edit.provider.ChangeNotifier;
-import org.eclipse.emf.edit.provider.Disposable;
-import org.eclipse.emf.edit.provider.IChangeNotifier;
-import org.eclipse.emf.edit.provider.IDisposable;
-import org.eclipse.emf.edit.provider.INotifyChangedListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.xsd.XSDAnnotation;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDImport;
-import org.eclipse.xsd.XSDInclude;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNotationDeclaration;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDRedefine;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDWildcard;
-import org.eclipse.xsd.util.XSDAdapterFactory;
-import org.eclipse.xsd.util.XSDSwitch;
-
-public class XSDModelAdapterFactoryImpl extends XSDAdapterFactory
-  implements IChangeNotifier, IDisposable
-{
-  
-  protected IChangeNotifier changeNotifier = new ChangeNotifier();
-  
-  protected Disposable disposable = new Disposable();
-  
-  protected Collection supportedTypes = new ArrayList();
-  
-  protected boolean showReferences = false;
-  protected boolean showInherited = false;
-  
-  /**
-   * 
-   */
-  public XSDModelAdapterFactoryImpl()
-  {
-    super();
-    supportedTypes.add(ILabelProvider.class);
-  }
-
-  public void setShowReferences(boolean b)
-  {
-    showReferences = b;
-  }
-  
-  public boolean getShowReferences()
-  {
-    return showReferences;
-  }
-  
-  public void setShowInherited(boolean b)
-  {
-    showInherited= b;
-  }
-  
-  public boolean getShowInherited()
-  {
-    return showInherited;
-  }
-  
-  protected XSDSwitch modelSwitch = new XSDSwitch()
-  {
-      public Object caseXSDAnnotation(XSDAnnotation object)
-      {
-        return createXSDAnnotationAdapter();
-      }
-      public Object caseXSDAttributeDeclaration(XSDAttributeDeclaration object)
-      {
-        return createXSDAttributeDeclarationAdapter();
-      }
-      public Object caseXSDAttributeGroupDefinition(XSDAttributeGroupDefinition object)
-      {
-        return createXSDAttributeGroupDefinitionAdapter();
-      }
-      public Object caseXSDAttributeUse(XSDAttributeUse object)
-      {
-        return createXSDAttributeUseAdapter();
-      }
-      public Object caseXSDComplexTypeDefinition(XSDComplexTypeDefinition object)
-      {
-        return createXSDComplexTypeDefinitionAdapter();
-      }
-      public Object caseXSDElementDeclaration(XSDElementDeclaration object)
-      {
-        return createXSDElementDeclarationAdapter();
-      }
-      public Object caseXSDModelGroup(XSDModelGroup object)
-      {
-        return createXSDModelGroupAdapter();
-      }
-      public Object caseXSDModelGroupDefinition(XSDModelGroupDefinition object)
-      {
-        return createXSDModelGroupDefinitionAdapter();
-      }
-      public Object caseXSDNotationDeclaration(XSDNotationDeclaration object)
-      {
-        return createXSDNotationDeclarationAdapter();
-      }
-      public Object caseXSDParticle(XSDParticle object)
-      {
-        return createXSDParticleAdapter();
-      }
-//      public Object caseXSDParticleContent(XSDParticleContent object)
-//      {
-//        return createXSDParticleContentAdapter();
-//      }
-      public Object caseXSDSchema(XSDSchema object)
-      {
-        return createXSDSchemaAdapter();
-      }
-      public Object caseXSDImport(XSDImport object)
-      {
-        // return createXSDImportAdapter();
-        return createXSDSchemaDirectiveAdapter();
-      }
-      public Object caseXSDInclude(XSDInclude object)
-      {
-        // return createXSDIncludeAdapter();
-        return createXSDSchemaDirectiveAdapter();
-      }
-      public Object caseXSDRedefine(XSDRedefine object)
-      {
-        // return createXSDRedefineAdapter();
-        return createXSDSchemaDirectiveAdapter();
-      }
-      public Object caseXSDSimpleTypeDefinition(XSDSimpleTypeDefinition object)
-      {
-        return createXSDSimpleTypeDefinitionAdapter();
-      
-      }
-      public Object caseXSDWildcard(XSDWildcard object)
-      {
-        return createXSDWildcardAdapter();
-      }
-      public Object defaultCase(EObject object)
-      {
-        return createEObjectAdapter();
-      }
-  };
-
-  public Adapter createAdapter(Notifier target)
-  {
-    Adapter adapter = null;
-    if (target instanceof EObject)
-    {
-      adapter = (Adapter)modelSwitch.doSwitch((EObject)target);
-    }
-    return adapter;
-  }
-
-/* create adapters */
-  
-  protected XSDAnnotationAdapter xsdAnnotationAdapter;
-  public Adapter createXSDAnnotationAdapter()
-  {
-    if (xsdAnnotationAdapter == null)
-    {
-      xsdAnnotationAdapter = new XSDAnnotationAdapter(this);
-    }
-    return xsdAnnotationAdapter;
-  }
-
-  protected XSDAttributeDeclarationAdapter xsdAttributeDeclarationAdapter;
-  public Adapter createXSDAttributeDeclarationAdapter()
-  {
-    if (xsdAttributeDeclarationAdapter == null)
-    {
-      xsdAttributeDeclarationAdapter = new XSDAttributeDeclarationAdapter(this);
-    }
-    return xsdAttributeDeclarationAdapter;
-  }
-
-  protected XSDAttributeGroupDefinitionAdapter xsdAttributeGroupDefinitionAdapter;
-  public Adapter createXSDAttributeGroupDefinitionAdapter()
-  {
-    if (xsdAttributeGroupDefinitionAdapter == null)
-    {
-      xsdAttributeGroupDefinitionAdapter = new XSDAttributeGroupDefinitionAdapter(this);
-    }
-    return xsdAttributeGroupDefinitionAdapter;
-  }
-
-  protected XSDAttributeUseAdapter xsdAttributeUseAdapter;
-  public Adapter createXSDAttributeUseAdapter()
-  {
-    if (xsdAttributeUseAdapter == null)
-    {
-      xsdAttributeUseAdapter = new XSDAttributeUseAdapter(this);
-    }
-
-    return xsdAttributeUseAdapter;
-  }
-
-  
-  XSDComplexTypeDefinitionAdapter xsdComplexTypeDefinitionAdapter;
-  public Adapter createXSDComplexTypeDefinitionAdapter()
-  {
-    if (xsdComplexTypeDefinitionAdapter == null)
-    {
-      xsdComplexTypeDefinitionAdapter = new XSDComplexTypeDefinitionAdapter(this);
-    }
-    return xsdComplexTypeDefinitionAdapter;
-  }
-
-  XSDElementDeclarationAdapter xsdElementDeclarationAdapter;
-  public Adapter createXSDElementDeclarationAdapter()
-  {
-    if (xsdElementDeclarationAdapter == null)
-    {
-      xsdElementDeclarationAdapter = new XSDElementDeclarationAdapter(this);
-    }
-    return xsdElementDeclarationAdapter;
-  }
-
-  XSDModelGroupAdapter xsdModelGroupAdapter;
-  public Adapter createXSDModelGroupAdapter()
-  {
-    if (xsdModelGroupAdapter == null)
-    {
-      xsdModelGroupAdapter = new XSDModelGroupAdapter(this);
-    }
-    return xsdModelGroupAdapter;
-  }
-
-  XSDModelGroupDefinitionAdapter xsdModelGroupDefinitionAdapter;
-  public Adapter createXSDModelGroupDefinitionAdapter()
-  {
-    if (xsdModelGroupDefinitionAdapter == null)
-    {
-      xsdModelGroupDefinitionAdapter = new XSDModelGroupDefinitionAdapter(this);
-    }
-    return xsdModelGroupDefinitionAdapter;
-  }
-
-  XSDNotationDeclarationAdapter xsdNotationDeclarationAdapter;
-  public Adapter createXSDNotationDeclarationAdapter()
-  {
-    if (xsdNotationDeclarationAdapter == null)
-    {
-      xsdNotationDeclarationAdapter = new XSDNotationDeclarationAdapter(this);
-    }
-    return xsdNotationDeclarationAdapter;
-  }
-
-  XSDWildcardAdapter xsdWildcardAdapter;
-  public Adapter createXSDWildcardAdapter()
-  {
-    if (xsdWildcardAdapter == null)
-    {
-      xsdWildcardAdapter = new XSDWildcardAdapter(this);
-    }
-    return xsdWildcardAdapter;
-  }
-  
-  protected XSDParticleAdapter xsdParticleAdapter;
-  public Adapter createXSDParticleAdapter()
-  {
-    if (xsdParticleAdapter == null)
-    {
-      xsdParticleAdapter = new XSDParticleAdapter(this);
-    }
-    return xsdParticleAdapter;
-  }
-//
-//  protected XSDParticleContentAdapter xsdParticleContentAdapter;
-//  public Adapter createXSDParticleContentAdapter()
-//  {
-//    if (xsdParticleContentAdapter == null)
-//    {
-//      xsdParticleContentAdapter = new XSDParticleContentAdapter(this);
-//    }
-//    return xsdParticleContentAdapter;
-//  }
-
-  protected XSDSchemaAdapter xsdSchemaAdapter;
-  public Adapter createXSDSchemaAdapter()
-  {
-    if (xsdSchemaAdapter == null)
-    {
-      xsdSchemaAdapter = new XSDSchemaAdapter(this);
-    }
-
-    return xsdSchemaAdapter;
-  }
-  
-  protected XSDSchemaDirectiveAdapter xsdSchemaDirectiveAdapter;
-  public Adapter createXSDSchemaDirectiveAdapter()
-  {
-    if (xsdSchemaDirectiveAdapter == null)
-    {
-      xsdSchemaDirectiveAdapter = new XSDSchemaDirectiveAdapter(this);
-    }
-
-    return xsdSchemaDirectiveAdapter;
-  }
-
-  XSDSimpleTypeDefinitionAdapter xsdSimpleTypeDefinitionAdapter;
-  public Adapter createXSDSimpleTypeDefinitionAdapter()
-  {
-    if (xsdSimpleTypeDefinitionAdapter == null)
-    {
-      xsdSimpleTypeDefinitionAdapter = new XSDSimpleTypeDefinitionAdapter(this);
-    }
-    return xsdSimpleTypeDefinitionAdapter;
-  }
-
-  public Adapter createEObjectAdapter()
-  {
-    return null;
-  }
-
-
-  public boolean isFactoryForType(Object type)
-  {
-    return super.isFactoryForType(type) || supportedTypes.contains(type);
-  }
-
-  /**
-   * This implementation substitutes the factory itself as the key for the adapter.
-   */
-  public Adapter adapt(Notifier notifier, Object type)
-  {
-    return super.adapt(notifier, this);
-  }
-
-  public Object adapt(Object object, Object type)
-  {
-    // This is a kludge to deal with enumerators, which crash the doSwitch.
-    //
-    if (object instanceof EObject && ((EObject)object).eClass() == null)
-    {
-      return null;
-    }
-
-    if (isFactoryForType(type))
-    {
-      Object adapter = super.adapt(object, type);
-      if (!(type instanceof Class) || (((Class)type).isInstance(adapter)))
-      {
-        return adapter;
-      }
-    }
-
-    return null;
-  }
-
-  public Adapter adaptNew(Notifier object, Object type)
-  {
-    Adapter result = super.adaptNew(object, type);
-    disposable.add(result);
-    return result;
-  }
-
-  /**
-   * This adds a listener.
-   */
-  public void addListener(INotifyChangedListener notifyChangedListener)
-  {
-    changeNotifier.addListener(notifyChangedListener);
-  }
-
-  /**
-   * This removes a listener.
-   */
-  public void removeListener(INotifyChangedListener notifyChangedListener)
-  {
-    changeNotifier.removeListener(notifyChangedListener);
-  }
-
-  /**
-   * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
-   */
-  public void fireNotifyChanged(Notification notification)
-  {
-    Display display = Display.getDefault();
-    if (display != null)
-    {
-      if (display.getThread() == Thread.currentThread ())
-      {
-        changeNotifier.fireNotifyChanged(notification);
-      }
-    }
-
-//    if (parentAdapterFactory != null)
-//    {
-//      parentAdapterFactory.fireNotifyChanged(notification);
-//    }
-  }
-
-  public void dispose()
-  {
-    disposable.dispose();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDModelGroupAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDModelGroupAdapter.java
deleted file mode 100644
index 7fc1719..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDModelGroupAdapter.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDChildUtility;
-import org.eclipse.xsd.XSDCompositor;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-
-public class XSDModelGroupAdapter extends XSDAbstractAdapter
-{
-
-  /**
-   * @param adapterFactory
-   */
-  public XSDModelGroupAdapter(AdapterFactory adapterFactory)
-  {
-    super(adapterFactory);
-  }
-
-  public Image getImage(Object element)
-  {
-    XSDModelGroup xsdModelGroup = ((XSDModelGroup)element);
-    if (XSDCompositor.CHOICE_LITERAL == xsdModelGroup.getCompositor())
-    {
-      // return XSDEditorPlugin.getPlugin().getIconImage("full/obj16/XSDModelGroupChoice");
-      return XSDEditorPlugin.getXSDImage("icons/XSDChoice.gif");
-    }
-    else if (XSDCompositor.ALL_LITERAL == xsdModelGroup.getCompositor())
-    {
-      // return XSDEditorPlugin.getPlugin().getIconImage("full/obj16/XSDModelGroupAll");
-      return XSDEditorPlugin.getXSDImage("icons/XSDAll.gif");
-    }
-    else 
-    {
-      // return XSDEditorPlugin.getPlugin().getIconImage("full/obj16/XSDModelGroupSequence");
-      return XSDEditorPlugin.getXSDImage("icons/XSDSequence.gif");
-    }
-  }
-  
-  public String getText(Object object)
-  {
-    XSDModelGroup xsdModelGroup = ((XSDModelGroup)object);
-    
-    StringBuffer result = new StringBuffer();
-    String name = xsdModelGroup.getCompositor().getName();
-    if (name != null)
-    {
-      result.append(name);
-    }
-    
-    Element element = xsdModelGroup.getElement();
-    
-    if (element != null)
-    {
-      boolean hasMinOccurs = element.hasAttribute(XSDConstants.MINOCCURS_ATTRIBUTE);
-      boolean hasMaxOccurs = element.hasAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE);
-      
-      if (hasMinOccurs || hasMaxOccurs)
-      {
-  	    result.append(" [");  
-  	    if (hasMinOccurs)
-  	    {
-  	      int min = ((XSDParticle)xsdModelGroup.getContainer()).getMinOccurs();
-  		    if (min == XSDParticle.UNBOUNDED)
-  		    {
-  		      result.append("*");
-  		    }
-  		    else
-  		    {
-  		      result.append(String.valueOf(min));
-  		    }
-  	    }
-        else // print default
-        {
-          int min = ((XSDParticle)xsdModelGroup.getContainer()).getMinOccurs();
-          result.append(String.valueOf(min));
-        }
-  	    if (hasMaxOccurs)
-  	    {
-  	      int max = ((XSDParticle)xsdModelGroup.getContainer()).getMaxOccurs();
-  		    result.append("..");
-  		    if (max == XSDParticle.UNBOUNDED)
-  		    {
-  		      result.append("*");
-  		    }
-  		    else
-  		    {
-  		      result.append(String.valueOf(max));
-  		    }
-  	    }
-        else // print default
-        {
-          result.append("..");
-          int max = ((XSDParticle)xsdModelGroup.getContainer()).getMaxOccurs();
-          result.append(String.valueOf(max));
-        }
-  	    result.append("]");
-      }
-    }
-    return result.toString();
-  }
-  
-  public Object[] getChildren(Object parentElement)
-  {
-    XSDModelGroup xsdModelGroup = (XSDModelGroup)parentElement;
-    List list = new ArrayList();
-    // list.addAll(xsdModelGroup.getContents());
-    list.addAll(XSDChildUtility.getModelChildren(xsdModelGroup));
-    return list.toArray();
-  }
-  
-  public boolean hasChildren(Object object)
-  {
-    return true;
-  }
-
-  public Object getParent(Object object)
-  {
-    XSDModelGroup element = (XSDModelGroup)object;
-    return element.getContainer();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDModelGroupDefinitionAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDModelGroupDefinitionAdapter.java
deleted file mode 100644
index e622469..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDModelGroupDefinitionAdapter.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-
-
-public class XSDModelGroupDefinitionAdapter extends XSDAbstractAdapter
-{
-
-  /**
-   * @param adapterFactory
-   */
-  public XSDModelGroupDefinitionAdapter(AdapterFactory adapterFactory)
-  {
-    super(adapterFactory);
-  }
-
-  public Image getImage(Object object)
-  {
-    XSDModelGroupDefinition xsdModelGroupDefinition = ((XSDModelGroupDefinition)object);
-    XSDModelGroupDefinition resolvedModelGroupDefinition = xsdModelGroupDefinition.getResolvedModelGroupDefinition();
-
-    if (xsdModelGroupDefinition.isModelGroupDefinitionReference())
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDGroupRef.gif");
-    }
-    else
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDGroup.gif");
-    }
-  }
-  
-  public String getText(Object object)
-  {
-    XSDModelGroupDefinition xsdModelGroupDefinition = ((XSDModelGroupDefinition)object);
-    String result = 
-      xsdModelGroupDefinition.isModelGroupDefinitionReference() ?
-        xsdModelGroupDefinition.getQName() :
-        xsdModelGroupDefinition.getName();
-    return result == null ? "'absent'" : result;
-  }
-  
-  boolean hasChildren = false;
-  
-  public Object[] getChildren(Object parentElement)
-  {
-    XSDModelGroupDefinition xsdModelGroupDefinition = (XSDModelGroupDefinition)parentElement;
-    List list = new ArrayList();
-    if (xsdModelGroupDefinition.isModelGroupDefinitionReference())
-    {
-      if (((XSDModelAdapterFactoryImpl)adapterFactory).getShowReferences())
-      {
-        list.add(xsdModelGroupDefinition.getResolvedModelGroupDefinition().getModelGroup());
-        hasChildren = true;
-      }
-    }
-    else
-    {
-      if (xsdModelGroupDefinition.getModelGroup() != null)
-      {
-        list.add(xsdModelGroupDefinition.getModelGroup());
-        hasChildren = true;
-      }
-    }
-    
-    return list.toArray();
- 
-  }
-  
-  public boolean hasChildren(Object object)
-  {
-    return hasChildren;
-  }
-
-  public Object getParent(Object object)
-  {
-    XSDModelGroupDefinition element = (XSDModelGroupDefinition)object;
-    return element.getContainer();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDNotationDeclarationAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDNotationDeclarationAdapter.java
deleted file mode 100644
index 3c89274..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDNotationDeclarationAdapter.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
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.provider;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDNotationDeclaration;
-
-
-public class XSDNotationDeclarationAdapter extends XSDAbstractAdapter
-{
-
-  /**
-   * @param adapterFactory
-   */
-  public XSDNotationDeclarationAdapter(AdapterFactory adapterFactory)
-  {
-    super(adapterFactory);
-  }
-  
-  public Image getImage(Object object)
-  {
-    // return XSDEditorPlugin.getPlugin().getIconImage("full/obj16/XSDNotationDeclaration");
-    return XSDEditorPlugin.getXSDImage("icons/XSDNotation.gif");
-  }
-
-  public String getText(Object object)
-  {
-    XSDNotationDeclaration xsdNotationDeclaration = ((XSDNotationDeclaration)object);
-    String result = xsdNotationDeclaration.getName();
-    return result == null ? "" : result;
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDParticleAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDParticleAdapter.java
deleted file mode 100644
index c37e8a7..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDParticleAdapter.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.provider;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationWrapper;
-import org.eclipse.wst.xsd.ui.internal.graph.model.XSDModelAdapterFactory;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDParticleContent;
-import org.eclipse.xsd.XSDWildcard;
-
-
-public class XSDParticleAdapter extends XSDAbstractAdapter
-{
-
-  /**
-   * @param adapterFactory
-   */
-  public XSDParticleAdapter(AdapterFactory adapterFactory)
-  {
-    super(adapterFactory);
-  }
-
-  // hack to notify outline and graph view of minOccurs and maxOccurs changes
-  public void notifyChanged(Notification msg) 
-  {
-    XSDParticle xsdParticle = (XSDParticle)msg.getNotifier();
-    XSDParticleContent xsdParticleContent = xsdParticle.getContent();
-    if (xsdParticleContent != null)
-    {
-      if (xsdParticleContent instanceof XSDElementDeclaration)
-      {
-        fireNotifyChanged(new NotificationWrapper((XSDElementDeclaration)xsdParticleContent, msg));
-        XSDModelAdapterFactory.getAdapter(xsdParticleContent).firePropertyChanged(xsdParticleContent, null);
-      }
-      else if (xsdParticleContent instanceof XSDModelGroup)
-      {
-        fireNotifyChanged(new NotificationWrapper((XSDModelGroup)xsdParticleContent, msg));
-        XSDModelAdapterFactory.getAdapter(xsdParticleContent).firePropertyChanged(xsdParticleContent, null);
-      }
-      else if (xsdParticleContent instanceof XSDWildcard)
-      {
-        fireNotifyChanged(new NotificationWrapper((XSDWildcard)xsdParticleContent, msg));
-        XSDModelAdapterFactory.getAdapter(xsdParticleContent).firePropertyChanged(xsdParticleContent, null);
-      }
-    }
-    // super.notifyChanged(msg);
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDSchemaAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDSchemaAdapter.java
deleted file mode 100644
index 36f4fb2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDSchemaAdapter.java
+++ /dev/null
@@ -1,405 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.provider;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.NotificationImpl;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNotationDeclaration;
-import org.eclipse.xsd.XSDPackage;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-
-public class XSDSchemaAdapter extends XSDAbstractAdapter
-{
-  protected XSDPackage xsdPackage;
-  /**
-   * @param adapterFactory
-   */
-  public XSDSchemaAdapter(AdapterFactory adapterFactory)
-  {
-    super(adapterFactory);
-    xsdPackage = XSDPackage.eINSTANCE;
-  }
-
-  public Image getImage(Object element)
-  {
-    return XSDEditorPlugin.getXSDImage("icons/XSDFile.gif");
-  }
-  
-  public String getText(Object element)
-  {
-    XSDSchema xsdSchema = (XSDSchema)element;
-    String result = xsdSchema.getSchemaLocation();
-    if (result == null)
-    {
-      return "";
-    } 
-    else
-    {
-      return URI.createURI(result).lastSegment();
-    }
-  }
-  List children;
-  public Object[] getChildren(Object parentElement)
-  {
-    XSDSchema xsdSchema = ((XSDSchema)parentElement);
-
-    children = new ArrayList();
-    
-    List directivesList = getDirectives(xsdSchema);
-    
-    List elementsList = getGlobalElements(xsdSchema);
-    
-    List attributeGroupList = getAttributeGroupList(xsdSchema);
-    
-    List attributesList = getAttributeList(xsdSchema);
-    
-    List groups = getGroups(xsdSchema);
-    
-    List notations = getNotations(xsdSchema);
-
-    List types = getComplexTypes(xsdSchema);
-    types.addAll(getSimpleTypes(xsdSchema));
-    
-    children.add
-    (new CategoryAdapter
-      ( //XSDEditPlugin.getString("_UI_Elements_label"), 
-        XSDEditorPlugin.getXSDString("_UI_GRAPH_DIRECTIVES"),
-        XSDEditorPlugin.getPlugin().getIconImage("obj16/directivesheader"),
-        directivesList, xsdSchema, CategoryAdapter.DIRECTIVES));
-    children.add
-        (new CategoryAdapter
-          ( //XSDEditPlugin.getString("_UI_Elements_label"), 
-            XSDEditorPlugin.getXSDString("_UI_GRAPH_ELEMENTS"),
-            XSDEditorPlugin.getPlugin().getIconImage("obj16/elementsheader"),
-            elementsList, xsdSchema, CategoryAdapter.ELEMENTS));
-      children.add
-        (new CategoryAdapter
-          ( //XSDEditPlugin.getString("_UI_Attributes_label"),
-            XSDEditorPlugin.getXSDString("_UI_GRAPH_ATTRIBUTES"),
-            XSDEditorPlugin.getPlugin().getIconImage("obj16/attributesheader"),
-            attributesList, xsdSchema, CategoryAdapter.ATTRIBUTES));
-      children.add
-        (new CategoryAdapter
-          (//XSDEditPlugin.getString("_UI_AttributeGroups_label"),
-            XSDEditorPlugin.getXSDString("_UI_GRAPH_ATTRIBUTE_GROUPS"),
-            XSDEditorPlugin.getPlugin().getIconImage("obj16/attributegroupsheader"),
-            attributeGroupList, xsdSchema, CategoryAdapter.ATTRIBUTE_GROUPS));
-      children.add
-        (new CategoryAdapter
-          ( //XSDEditPlugin.getString("_UI_Types_label"), 
-            XSDEditorPlugin.getXSDString("_UI_GRAPH_TYPES"),
-            XSDEditorPlugin.getPlugin().getIconImage("obj16/typesheader"),
-            types, xsdSchema, CategoryAdapter.TYPES));
-      children.add
-        (new CategoryAdapter
-          ( // XSDEditPlugin.getString("_UI_ModelGroups_label"), 
-            XSDEditorPlugin.getXSDString("_UI_GRAPH_GROUPS"),
-            XSDEditorPlugin.getPlugin().getIconImage("obj16/groupsheader"),
-            groups, xsdSchema, CategoryAdapter.GROUPS));
-      children.add
-        (new CategoryAdapter
-          ( // XSDEditPlugin.getString("_UI_Notations_label"), 
-            XSDEditorPlugin.getXSDString("_UI_GRAPH_NOTATIONS"),
-            XSDEditorPlugin.getPlugin().getIconImage("obj16/notationsheader"),
-            notations, xsdSchema, CategoryAdapter.NOTATIONS));
-//      children.add
-//        (new CategoryAdapter
-//          ( //XSDEditPlugin.getString("_UI_IdentityConstraints_label"), 
-//              "Identity Constraints",
-//            XSDEditorPlugin.getPlugin().getIconImage("full/obj16/XSDIdentityConstraintDefinitionKey"),
-//            xsdSchema.getIdentityConstraintDefinitions(), xsdSchema, CategoryAdapter.IDENTITY_CONSTRAINTS));
-//      children.add
-//        (new CategoryAdapter
-//          ( // XSDEditPlugin.getString("_UI_Annotations_label"), 
-//              "Annotations",
-//            XSDEditorPlugin.getPlugin().getIconImage("obj16/annotationsheader"),
-//            xsdSchema.getAnnotations(), xsdSchema, CategoryAdapter.ANNOTATIONS));
-
-    return children.toArray();
-  
-  }
-  
-  public boolean hasChildren(Object object)
-  {
-    return true;
-  }
-
-  public Object getParent(Object object)
-  {
-    return null;
-  }
-  
-  public void notifyChanged(final Notification msg)
-  {
-    class CategoryNotification extends NotificationImpl
-    {
-      protected Object category;
-      public CategoryNotification(Object category)
-      {
-        super(msg.getEventType(), msg.getOldValue(), msg.getNewValue(), msg.getPosition());
-        this.category = category;
-      }
-
-      public Object getNotifier()
-      {
-        return category;
-      }
-      public Object getFeature()
-      {
-        return msg.getFeature();
-      }
-    }
-    
-    if (children == null) {
-    	getChildren(target);
-    }
-
-    if (msg.getFeature() == xsdPackage.getXSDSchema_Contents())
-    {
-      CategoryAdapter adapter = (CategoryAdapter)children.get(0);
-      XSDSchema xsdSchema = adapter.getXSDSchema();
-      adapter.setChildren(getDirectives(xsdSchema));
-      this.fireNotifyChanged(new CategoryNotification(adapter));
-      return;
-    }
-    else if (msg.getFeature() == xsdPackage.getXSDSchema_ElementDeclarations())
-    {
-      CategoryAdapter adapter = (CategoryAdapter)children.get(1);
-      XSDSchema xsdSchema = adapter.getXSDSchema();
-      adapter.setChildren(getGlobalElements(xsdSchema));
-      this.fireNotifyChanged(new CategoryNotification(adapter));
-      return;
-    }
-    else if (msg.getFeature() == xsdPackage.getXSDSchema_AttributeDeclarations())
-    {
-      CategoryAdapter adapter = (CategoryAdapter)children.get(2);
-      XSDSchema xsdSchema = adapter.getXSDSchema();
-      adapter.setChildren(getAttributeList(xsdSchema));
-      this.fireNotifyChanged(new CategoryNotification(adapter));
-      return;
-    }
-    else if (msg.getFeature() == xsdPackage.getXSDSchema_AttributeGroupDefinitions())
-    {
-      CategoryAdapter adapter = (CategoryAdapter)children.get(3);
-      XSDSchema xsdSchema = adapter.getXSDSchema();
-      adapter.setChildren(getAttributeGroupList(xsdSchema));
-      this.fireNotifyChanged(new CategoryNotification(adapter));
-      return;
-    }
-    else if (msg.getFeature() == xsdPackage.getXSDSchema_TypeDefinitions())
-    {
-      CategoryAdapter adapter = (CategoryAdapter)children.get(4);
-      XSDSchema xsdSchema = adapter.getXSDSchema();
-      List types = getComplexTypes(xsdSchema);
-      types.addAll(getSimpleTypes(xsdSchema));
-
-      adapter.setChildren(types);
-      this.fireNotifyChanged(new CategoryNotification(adapter));
-      return;
-    }
-    else if (msg.getFeature() == xsdPackage.getXSDSchema_ModelGroupDefinitions())
-    {
-      CategoryAdapter adapter = (CategoryAdapter)children.get(5);
-      XSDSchema xsdSchema = adapter.getXSDSchema();
-      adapter.setChildren(getGroups(xsdSchema));
-      this.fireNotifyChanged(new CategoryNotification(adapter));
-      return;
-    }
-    else if (msg.getFeature() == xsdPackage.getXSDSchema_NotationDeclarations())
-    {
-      CategoryAdapter adapter = (CategoryAdapter)children.get(6);
-      XSDSchema xsdSchema = adapter.getXSDSchema();
-      adapter.setChildren(getNotations(xsdSchema));
-      this.fireNotifyChanged(new CategoryNotification(adapter));
-      return;
-    }
-//    else if (msg.getFeature() == xsdPackage.getXSDSchema_IdentityConstraintDefinitions())
-//    {
-//      this.fireNotifyChanged(new CategoryNotification(children.get(7)));
-//      return;
-//    }
-    else if (msg.getFeature() == xsdPackage.getXSDSchema_Annotations())
-    {
-//      this.fireNotifyChanged(new CategoryNotification(children.get(7)));
-      return;
-    }
-    else if (msg.getFeature() == xsdPackage.getXSDSchema_SchemaLocation())
-    {
-      this.fireNotifyChanged(msg);
-      return;
-    }
-
-    super.notifyChanged(msg);
-  }
-
-  protected List getDirectives(XSDSchema schema)
-  {                 
-    List list = new ArrayList();
-    for (Iterator i = schema.getContents().iterator(); i.hasNext(); )
-    {
-      Object o = i.next();
-      if (o instanceof XSDSchemaDirective)
-      {
-        list.add(o);
-      }
-    } 
-    return list;
-  }
-  
-  protected List getAttributeGroupList(XSDSchema xsdSchema)
-  {
-    List attributeGroupList = new ArrayList();
-    for (Iterator i = xsdSchema.getAttributeGroupDefinitions().iterator(); i.hasNext(); )
-    {
-      XSDAttributeGroupDefinition attrGroup = (XSDAttributeGroupDefinition)i.next();
-      if (attrGroup.getRootContainer() == xsdSchema)
-      {
-        attributeGroupList.add(attrGroup);
-      }
-    }
-    return attributeGroupList;
-  }
-  
-  protected List getAttributeList(XSDSchema xsdSchema)
-  {
-    List attributesList = new ArrayList();
-    for (Iterator iter = xsdSchema.getAttributeDeclarations().iterator(); iter.hasNext(); )
-    {
-      Object o = iter.next();
-      if (o instanceof XSDAttributeDeclaration)
-      {
-        XSDAttributeDeclaration attr = (XSDAttributeDeclaration)o;
-        if (attr != null)
-        {
-          if (attr.getTargetNamespace() != null)
-          {
-            if (!(attr.getTargetNamespace().equals("http://www.w3.org/2001/XMLSchema-instance")))
-            {
-              if (attr.getRootContainer() == xsdSchema)
-              {
-                attributesList.add(attr);
-              }
-            }
-          }
-          else
-          {
-            if (attr.getRootContainer() == xsdSchema)
-            {
-              attributesList.add(attr);
-            }
-          }
-        }
-      }
-    }
-    return attributesList;
-  }
-  
-  protected List getGlobalElements(XSDSchema schema)
-  {
-    List elements = schema.getElementDeclarations();
-    List list = new ArrayList();
-    for (Iterator i = elements.iterator(); i.hasNext(); )
-    {
-      XSDElementDeclaration elem = (XSDElementDeclaration)i.next();
-      if (elem.getRootContainer() == schema)
-      {
-        list.add(elem);
-      }
-    }                
-    return list;
-  }
-  
-  protected List getComplexTypes(XSDSchema schema)
-  {
-    List allTypes = schema.getTypeDefinitions();
-    List list = new ArrayList();
-    for (Iterator i = allTypes.iterator(); i.hasNext(); )
-    {
-      XSDTypeDefinition td = (XSDTypeDefinition)i.next();
-      if (td instanceof XSDComplexTypeDefinition)
-      {
-        XSDComplexTypeDefinition ct = (XSDComplexTypeDefinition)td;
-        if (ct.getRootContainer() == schema)
-        {
-          list.add(ct);
-        }
-      }
-    }                
-    return list;
-  }
-
-  protected List getSimpleTypes(XSDSchema schema)
-  {
-    List allTypes = schema.getTypeDefinitions();
-    List list = new ArrayList();
-    for (Iterator i = allTypes.iterator(); i.hasNext(); )
-    {
-      XSDTypeDefinition td = (XSDTypeDefinition)i.next();
-      if (td instanceof XSDSimpleTypeDefinition)
-      {
-        XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)td;
-        if (st.getRootContainer() == schema)
-        {
-          list.add(st);
-        }
-      }
-    }                
-    return list;
-  }   
-
-  protected List getGroups(XSDSchema schema)
-  {
-    List groups = schema.getModelGroupDefinitions();
-    List list = new ArrayList();
-    for (Iterator i = groups.iterator(); i.hasNext(); )
-    {
-      XSDModelGroupDefinition group = (XSDModelGroupDefinition)i.next();
-      if (group.getRootContainer() == schema)
-      {
-        list.add(group);
-      }
-    }                
-    return list;
-  }
-  
-  protected List getNotations(XSDSchema schema)
-  {
-    List notations = schema.getNotationDeclarations();
-    List list = new ArrayList();
-    for (Iterator i = notations.iterator(); i.hasNext(); )
-    {
-      XSDNotationDeclaration notation = (XSDNotationDeclaration)i.next();
-      if (notation.getRootContainer() == schema)
-      {
-        list.add(notation);
-      }
-    }                
-    return list;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDSchemaDirectiveAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDSchemaDirectiveAdapter.java
deleted file mode 100644
index 47cf912..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDSchemaDirectiveAdapter.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDImport;
-import org.eclipse.xsd.XSDInclude;
-import org.eclipse.xsd.XSDRedefine;
-import org.eclipse.xsd.XSDSchemaDirective;
-
-public class XSDSchemaDirectiveAdapter extends XSDAbstractAdapter
-{
-
-  /**
-   * @param adapterFactory
-   */
-  public XSDSchemaDirectiveAdapter(AdapterFactory adapterFactory)
-  {
-    super(adapterFactory);
-  }
-
-  
-  public Image getImage(Object object)
-  {
-    if (object instanceof XSDImport)
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDImport.gif");
-    }
-    else if (object instanceof XSDInclude)
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDInclude.gif");
-    }
-    else if (object instanceof XSDRedefine)
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDRedefine.gif");
-    }
-    return null;
-  }
-
-  public String getText(Object object)
-  {
-    XSDSchemaDirective directive = (XSDSchemaDirective)object;
-    String result = directive.getSchemaLocation();
-    if (result == null) result = "(" + XSDEditorPlugin.getXSDString("_UI_LABEL_NO_LOCATION_SPECIFIED") + ")";
-    if (result.equals("")) result = "(" + XSDEditorPlugin.getXSDString("_UI_LABEL_NO_LOCATION_SPECIFIED")+ ")";
-    return result;
-    
-//    XSDImport xsdImport = ((XSDImport)object);
-//    String result = xsdImport.getSchemaLocation();
-//    return result == null ? "" : result;
-    
-//    XSDInclude xsdInclude = ((XSDInclude)object);
-//    String result = xsdInclude.getSchemaLocation();
-//    return result == null ? "" : result;
-    
-//    XSDRedefine xsdRedefine = ((XSDRedefine)object);
-//    String result = xsdRedefine.getSchemaLocation();
-//    return result == null ? "" : result;
-
-
-  }
-
-  public Object[] getChildren(Object parentElement)
-  {
-    List list = new ArrayList();
-    if (parentElement instanceof XSDRedefine)
-    {
-      XSDRedefine redefine = (XSDRedefine)parentElement;
-      list = redefine.getContents();
-      if (list == null)
-      {
-        list = new ArrayList();
-      }
-    }
-    return list.toArray();
-  }
-  
-  public boolean hasChildren(Object object)
-  {
-    return false;
-  }
-
-  public Object getParent(Object object)
-  {
-    return null;
-    
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDSimpleTypeDefinitionAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDSimpleTypeDefinitionAdapter.java
deleted file mode 100644
index 0d4026a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDSimpleTypeDefinitionAdapter.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.provider;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDVariety;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-
-public class XSDSimpleTypeDefinitionAdapter extends XSDAbstractAdapter
-{
-
-  /**
-   * @param adapterFactory
-   */
-  public XSDSimpleTypeDefinitionAdapter(AdapterFactory adapterFactory)
-  {
-    super(adapterFactory);
-  }
-
-  public Image getImage(Object object)
-  {
-    XSDSimpleTypeDefinition xsdSimpleTypeDefinition = ((XSDSimpleTypeDefinition)object);
-    
-    if (xsdSimpleTypeDefinition.getContainer() == null)
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif");
-    }
-    
-    if (XSDVariety.LIST_LITERAL == xsdSimpleTypeDefinition.getVariety())
-    {
-      // return XSDEditorPlugin.getXSDImage("icons/XSDSimpleList.gif");
-      return XSDEditorPlugin.getPlugin().getIconImage("obj16/smpl_list_obj");
-    }
-    else if (XSDVariety.UNION_LITERAL == xsdSimpleTypeDefinition.getVariety())
-    {
-      //return XSDEditorPlugin.getXSDImage("icons/XSDSimpleUnion.gif");
-      return XSDEditorPlugin.getPlugin().getIconImage("obj16/smpl_union_obj");
-    }
-    else if (XSDVariety.ATOMIC_LITERAL == xsdSimpleTypeDefinition.getVariety())
-    {
-      // return XSDEditorPlugin.getXSDImage("icons/XSDSimpleRestrict.gif");
-      Element stElement = xsdSimpleTypeDefinition.getElement();
-      XSDDOMHelper domHelper = new XSDDOMHelper();
-      if (domHelper.getChildNode(stElement, XSDConstants.RESTRICTION_ELEMENT_TAG) != null)
-      {
-        return XSDEditorPlugin.getPlugin().getIconImage("obj16/smpl_restrict_obj");
-      }
-      return XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif");
-    }
-    else if (xsdSimpleTypeDefinition.isSetVariety())
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif");
-    }
-    else
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif");
-    }
-    
-//    return 
-//      XSDEditorPlugin.getPlugin().getIconImage
-//        (xsdSimpleTypeDefinition.getContainer() == null ?
-//           "full/obj16/XSDSimpleTypeDefinitionUnresolved" :
-//           XSDVariety.LIST_LITERAL == xsdSimpleTypeDefinition.getVariety() ? 
-//             "full/obj16/XSDSimpleTypeDefinitionList" :  
-//              XSDVariety.UNION_LITERAL == xsdSimpleTypeDefinition.getVariety() ? 
-//                "full/obj16/XSDSimpleTypeDefinitionUnion" :
-//                  xsdSimpleTypeDefinition.isSetVariety() ?
-//                    "full/obj16/XSDSimpleTypeDefinitionAtomic"  :
-//                    "full/obj16/XSDSimpleTypeDefinition");
-  }
-  
-  public String getText(Object object)
-  {
-    return getText(object, true);
-  }
- 
-  public String getText(Object object, boolean showType)
-  {
-    XSDSimpleTypeDefinition xsdSimpleTypeDefinition = ((XSDSimpleTypeDefinition)object);
-
-    StringBuffer result = new StringBuffer();
-
-    result.append
-      (xsdSimpleTypeDefinition.getName() == null ? 
-         // xsdSimpleTypeDefinition.getAliasName() :
-         "local type" :
-         xsdSimpleTypeDefinition.getName());
-
-    if (showType)
-    {
-      XSDSimpleTypeDefinition baseTypeDefinition = xsdSimpleTypeDefinition.getBaseTypeDefinition();
-      if (baseTypeDefinition != null && XSDVariety.ATOMIC_LITERAL == xsdSimpleTypeDefinition.getVariety())
-      {
-        if (baseTypeDefinition.getName() != null && 
-              !xsdSimpleTypeDefinition.getContents().contains(baseTypeDefinition) &&
-              !XSDConstants.isAnySimpleType(baseTypeDefinition)) 
-        {
-          result.append(" : ");
-          result.append(baseTypeDefinition.getQName(xsdSimpleTypeDefinition));
-        }
-      }
-      else
-      {
-        XSDSimpleTypeDefinition itemTypeDefinition = xsdSimpleTypeDefinition.getItemTypeDefinition();
-        if (itemTypeDefinition != null)
-        {
-          if (itemTypeDefinition.getName() != null) 
-          {
-            result.append(" : ");
-            result.append(itemTypeDefinition.getQName(xsdSimpleTypeDefinition));
-          }
-        }
-        else 
-        {
-          List memberTypeDefinitions = xsdSimpleTypeDefinition.getMemberTypeDefinitions();
-          if (!memberTypeDefinitions.isEmpty())
-          {
-            boolean first = true;
-            for (Iterator members = memberTypeDefinitions.iterator(); members.hasNext(); )
-            {
-              XSDSimpleTypeDefinition memberTypeDefinition = (XSDSimpleTypeDefinition)members.next();
-              if (memberTypeDefinition.getName() != null) 
-              {
-                if (first)
-                {
-                  result.append(" : ");
-                  first = false;
-                }
-                else
-                {
-                  result.append(" | ");
-                }
-                result.append(memberTypeDefinition.getQName(xsdSimpleTypeDefinition));
-              }
-              else
-              {
-                break;
-              }
-            }
-          } 
-          else if (result.length() == 0)
-          {
-            result.append("'absent'");
-          }
-        }
-      }
-    }
-
-    return result.toString();
-  }
-
-  public Object[] getChildren(Object parentElement)
-  {
-    XSDSimpleTypeDefinition xsdSimpleTypeDefinition = (XSDSimpleTypeDefinition)parentElement;
-    List list = new ArrayList();
-//    list.addAll(xsdSimpleTypeDefinition.getContents());
-//    list.addAll(xsdSimpleTypeDefinition.getFacetContents());
-//    list.addAll(xsdSimpleTypeDefinition.getFundamentalFacets());
-//    list.addAll(xsdSimpleTypeDefinition.getSyntheticFacets());
-    return list.toArray();
-  
-  }
-  
-  public boolean hasChildren(Object object)
-  {
-    return true;
-  }
-
-  public Object getParent(Object object)
-  {
-    XSDSimpleTypeDefinition element = (XSDSimpleTypeDefinition)object;
-    return element.getContainer();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDWildcardAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDWildcardAdapter.java
deleted file mode 100644
index b219f6b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/provider/XSDWildcardAdapter.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.provider;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDWildcard;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-
-public class XSDWildcardAdapter extends XSDAbstractAdapter
-{
-
-  /**
-   * @param adapterFactory
-   */
-  public XSDWildcardAdapter(AdapterFactory adapterFactory)
-  {
-    super(adapterFactory);
-  }
-
-  public Image getImage(Object object)
-  {
-    XSDWildcard xsdWildcard = (XSDWildcard)object;
-    return XSDEditorPlugin.getXSDImage
-      (xsdWildcard.eContainer() instanceof XSDParticle ?
-        "icons/XSDAny.gif" :
-        "icons/XSDAnyAttribute.gif");
-  }
-  
-  public String getText(Object object)
-  {
-    XSDWildcard xsdWildcard = ((XSDWildcard)object);
-    
-    StringBuffer result = new StringBuffer();
-    Element element = xsdWildcard.getElement();
-    
-    if (element != null)
-    {
-      result.append(element.getNodeName());
-      boolean hasMinOccurs = element.hasAttribute(XSDConstants.MINOCCURS_ATTRIBUTE);
-      boolean hasMaxOccurs = element.hasAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE);
-      
-      if (hasMinOccurs || hasMaxOccurs)
-      {
-        result.append(" [");   //$NON-NLS-1$
-        if (hasMinOccurs)
-        {
-          
-          int min = ((XSDParticle)xsdWildcard.getContainer()).getMinOccurs();
-          if (min == XSDParticle.UNBOUNDED)
-          {
-            result.append("*");
-          }
-          else
-          {
-            result.append(String.valueOf(min));
-          }
-        }
-        else // print default
-        {
-          int min = ((XSDParticle)xsdWildcard.getContainer()).getMinOccurs();
-          result.append(String.valueOf(min));
-        }
-        if (hasMaxOccurs)
-        {
-          int max = ((XSDParticle)xsdWildcard.getContainer()).getMaxOccurs();
-          result.append("..");
-          if (max == XSDParticle.UNBOUNDED)
-          {
-            result.append("*");
-          }
-          else
-          {
-            result.append(String.valueOf(max));
-          }
-        }
-        else // print default
-        {
-          result.append("..");
-          int max = ((XSDParticle)xsdWildcard.getContainer()).getMaxOccurs();
-          result.append(String.valueOf(max));
-        }
-        result.append("]");
-      }
-    }
-    return result.toString();
-
-  }
-
-  public boolean hasChildren(Object object)
-  {
-    return false;
-  }
-
-  public Object getParent(Object object)
-  {
-    XSDWildcard xsdWildcard = (XSDWildcard)object;
-    return xsdWildcard.getContainer();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/XSDVisitor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/XSDVisitor.java
deleted file mode 100644
index 24bda3f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/XSDVisitor.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor;
-
-import java.util.Iterator;
-
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupContent;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeContent;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDIdentityConstraintDefinition;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNotationDeclaration;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDParticleContent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.XSDWildcard;
-
-public class XSDVisitor
-{
-  public XSDVisitor()
-  {
-  }
-  
-  protected XSDSchema schema;
-  
-  public void visitSchema(XSDSchema schema)
-  {
-    this.schema = schema;
-    for (Iterator iterator = schema.getAttributeDeclarations().iterator(); iterator.hasNext();)
-    {
-      XSDAttributeDeclaration attr = (XSDAttributeDeclaration) iterator.next();
-      visitAttributeDeclaration(attr);
-    }
-    for (Iterator iterator = schema.getTypeDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDTypeDefinition type = (XSDTypeDefinition) iterator.next();
-      visitTypeDefinition(type);
-    }
-    for (Iterator iterator = schema.getElementDeclarations().iterator(); iterator.hasNext();)
-    {
-      XSDElementDeclaration element = (XSDElementDeclaration) iterator.next();
-      visitElementDeclaration(element);
-    }
-    for (Iterator iterator = schema.getIdentityConstraintDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDIdentityConstraintDefinition identityConstraint = (XSDIdentityConstraintDefinition) iterator.next();
-      visitIdentityConstraintDefinition(identityConstraint);
-    }
-    for (Iterator iterator = schema.getModelGroupDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDModelGroupDefinition modelGroup = (XSDModelGroupDefinition) iterator.next();
-      visitModelGroupDefinition(modelGroup);
-    }
-    for (Iterator iterator = schema.getAttributeGroupDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDAttributeGroupDefinition attributeGroup = (XSDAttributeGroupDefinition) iterator.next();
-      visitAttributeGroupDefinition(attributeGroup);
-    }
-    for (Iterator iterator = schema.getNotationDeclarations().iterator(); iterator.hasNext();)
-    {
-      XSDNotationDeclaration element = (XSDNotationDeclaration) iterator.next();
-      visitNotationDeclaration(element);
-    }
-    
-  }
-  
-  public void visitAttributeDeclaration(XSDAttributeDeclaration attr)
-  {
-  }
-  
-  public void visitTypeDefinition(XSDTypeDefinition type)
-  {
-    if (type instanceof XSDSimpleTypeDefinition)
-    {
-      visitSimpleTypeDefinition((XSDSimpleTypeDefinition)type);
-    }
-    else if (type instanceof XSDComplexTypeDefinition)
-    {
-      visitComplexTypeDefinition((XSDComplexTypeDefinition)type);
-    }
-  }
-  
-  public void visitElementDeclaration(XSDElementDeclaration element)
-  {
-    if (element.isElementDeclarationReference())
-    {
-    }
-    else if (element.getAnonymousTypeDefinition() != null)
-    {
-      visitTypeDefinition(element.getAnonymousTypeDefinition());
-    }
-  }
-  
-  public void visitIdentityConstraintDefinition(XSDIdentityConstraintDefinition identityConstraint)
-  {
-  }
-  
-  public void visitModelGroupDefinition(XSDModelGroupDefinition modelGroupDef)
-  {
-    if (!modelGroupDef.isModelGroupDefinitionReference())
-    {
-      if (modelGroupDef.getModelGroup() != null)
-      {
-        visitModelGroup(modelGroupDef.getModelGroup());
-      }
-    }
-  }
-  
-  public void visitAttributeGroupDefinition(XSDAttributeGroupDefinition attributeGroup)
-  {
-    if (attributeGroup.getAttributeUses() != null)
-    {
-      for (Iterator iter = attributeGroup.getAttributeUses().iterator(); iter.hasNext(); )
-      {
-        XSDAttributeUse attrUse = (XSDAttributeUse)iter.next();
-        visitAttributeDeclaration(attrUse.getContent());
-      }
-    }
-  }
-  
-  public void visitNotationDeclaration(XSDNotationDeclaration notation)
-  {
-  }
-  
-  public void visitSimpleTypeDefinition(XSDSimpleTypeDefinition type)
-  {
-  }
-  
-  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
-  {
-    if (type.getContentType() != null)
-    {
-      XSDComplexTypeContent complexContent = (XSDComplexTypeContent) type.getContentType();
-      if (complexContent instanceof XSDSimpleTypeDefinition)
-      {
-        visitSimpleTypeDefinition((XSDSimpleTypeDefinition)complexContent);
-      }
-      else if (complexContent instanceof XSDParticle)
-      {
-        visitParticle((XSDParticle) complexContent);
-      }
-    }
-    
-    if (type.getAttributeContents() != null)
-    {
-      for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
-      {
-        XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent)iter.next();
-        if (attrGroupContent instanceof XSDAttributeUse)
-        {
-          XSDAttributeUse attrUse = (XSDAttributeUse)attrGroupContent;
-          visitAttributeDeclaration(attrUse.getContent());
-        }
-        else if (attrGroupContent instanceof XSDAttributeGroupDefinition)
-        {
-          visitAttributeGroupDefinition((XSDAttributeGroupDefinition)attrGroupContent);
-        }
-      }
-    }
-  }
-  
-  public void visitParticle(XSDParticle particle)
-  {
-    visitParticleContent(particle.getContent());
-  }
-  
-  public void visitParticleContent(XSDParticleContent particleContent)
-  {
-    if (particleContent instanceof XSDModelGroupDefinition)
-    {
-      visitModelGroupDefinition((XSDModelGroupDefinition) particleContent);
-    }
-    else if (particleContent instanceof XSDModelGroup)
-    {
-      visitModelGroup((XSDModelGroup)particleContent);
-    }
-    else if (particleContent instanceof XSDElementDeclaration)
-    {
-      visitElementDeclaration((XSDElementDeclaration)particleContent);
-    }
-    else if (particleContent instanceof XSDWildcard)
-    {
-      visitWildcard((XSDWildcard)particleContent);
-    }
-  }
-  
-  public void visitModelGroup(XSDModelGroup modelGroup)
-  {
-    if (modelGroup.getContents() != null)
-    {
-      for (Iterator iterator = modelGroup.getContents().iterator(); iterator.hasNext();)
-      {
-        XSDParticle particle = (XSDParticle) iterator.next();
-        visitParticle(particle);
-      }
-    }
-  }
-  
-  public void visitWildcard(XSDWildcard wildcard)
-  {
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/BaseCleanup.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/BaseCleanup.java
deleted file mode 100644
index f45a1e2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/BaseCleanup.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.delete;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.w3c.dom.Element;
-
-public abstract class BaseCleanup extends XSDVisitor
-{
-  /**
-   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitSchema(XSDSchema)
-   */
-  public void visitSchema(XSDSchema schema)
-  {
-    super.visitSchema(schema);
-    
-    // now remove all children that were queued up for removal
-    
-    for (Iterator iter = childrenToRemove.iterator(); iter.hasNext(); )
-    {
-      Element domElement = (Element) iter.next();
-      XSDDOMHelper.removeNodeAndWhitespace(domElement);
-//      domElement.getParentNode().removeChild(domElement);
-    }
-  }
-
-
-  protected ArrayList messages = new ArrayList();
-
-  public ArrayList getMessages()
-  {
-  	return messages;
-  }
-  
-
-  protected void addMessage(String msg, XSDConcreteComponent component)
-  {
-////    ErrorMessage message = new ErrorMessage();
-//    
-//    XSDConcreteComponent currComp = component;
-//    while (!(currComp instanceof XSDSchemaContent) && currComp.getContainer() != null)
-//    {
-//      currComp = currComp.getContainer();
-//    }
-//
-//    Element domElement = currComp.getElement();
-//    Node parent = domElement;
-//    while (!(parent instanceof NodeImpl) && parent != null)
-//    {
-//      parent = parent.getParentNode();
-//    }
-//    if (parent instanceof NodeImpl)
-//    {
-//      // message.setModelObject(currComp.getElement());
-//			message.setTargetObject(currComp.getElement());
-//    }
-//    message.setLocalizedMessage(msg);
-//  ???
-//    addMessage(message);
-  }
-    
-
-// // protected void addMessage(ErrorMessage message)
-//	protected void addMessage(Message message)
-//  {
-//    messages.add(message);
-//  }
-  
-
-  protected ArrayList childrenToRemove = new ArrayList();
-  
-
-  protected String getNamedComponentName(XSDConcreteComponent concrete)
-  {
-    String name = null;
-    if (concrete instanceof XSDNamedComponent)
-    {
-      name = ((XSDNamedComponent)concrete).getName();
-    }
-    
-    XSDConcreteComponent comp = concrete;
-    while (comp != null && name == null)
-    {
-      comp = comp.getContainer();
-      if (comp instanceof XSDNamedComponent)
-      {
-        name = ((XSDNamedComponent)comp).getName();
-      }
-    }
-    return name != null ? name : "";
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/BaseGlobalCleanup.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/BaseGlobalCleanup.java
deleted file mode 100644
index 6503971..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/BaseGlobalCleanup.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.delete;
-
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDNamedComponent;
-
-public class BaseGlobalCleanup extends BaseCleanup
-{
-  public BaseGlobalCleanup(XSDConcreteComponent deletedItem)
-  {
-    this.deletedItem = deletedItem;
-  }
-  
-  protected XSDConcreteComponent deletedItem;
-  
-  protected String getDeletedQName()
-  {
-    return ((XSDNamedComponent)deletedItem).getQName();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalAttributeCleanup.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalAttributeCleanup.java
deleted file mode 100644
index 64c5779..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalAttributeCleanup.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.delete;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupContent;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class GlobalAttributeCleanup extends BaseGlobalCleanup
-{
-  /**
-   * Constructor for GlobalAttributeCleanup.
-   * @param deletedItem
-   */
-  public GlobalAttributeCleanup(XSDConcreteComponent deletedItem)
-  {
-    super(deletedItem);
-  }
-  
-  protected String replacementName = null;
-  
-  protected String getReplacementElementName()
-  {
-    if (replacementName == null)
-    {
-      TypesHelper helper = new TypesHelper(schema);
-      
-      List elements = helper.getGlobalAttributes();
-      
-      String deletedName = getDeletedQName();
-      for (Iterator i = elements.iterator(); i.hasNext();)
-      {
-        String name = (String) i.next();
-        if (!name.equals(deletedName))
-        {
-          replacementName = name;
-          break;
-        }
-      }
-    }
-    return replacementName;
-  }
-
-  /**
-   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitComplexTypeDefinition(XSDComplexTypeDefinition)
-   */
-  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
-  {
-    super.visitComplexTypeDefinition(type);
-    if (type.getAttributeContents() != null)
-    {
-      for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
-      {
-        XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent) iter.next();
-        if (attrGroupContent instanceof XSDAttributeUse)
-        {
-          XSDAttributeUse attrUse = (XSDAttributeUse) attrGroupContent;
-          XSDAttributeDeclaration attrDecl = attrUse.getContent();
-          
-          // now is this a reference?
-          if (attrDecl != null && attrDecl.isAttributeDeclarationReference())
-          {
-            if (deletedItem.equals(attrDecl.getResolvedAttributeDeclaration()))
-            {
-              if (getReplacementElementName() != null)
-              {
-                // String msg = XSDPlugin.getSchemaString("_INFO_RESET_ATTRIBUTE_REFERENCE") + " <" + getReplacementElementName() + ">";
-								String msg = "Reset attribute reference " + " <" + getReplacementElementName() + ">";
-                addMessage(msg, attrUse);
-                attrUse.getElement().setAttribute(XSDConstants.REF_ATTRIBUTE, getReplacementElementName());
-              }
-              else
-              {
-                String name = getNamedComponentName(type);
-                // String msg = XSDPlugin.getSchemaString("_INFO_REMOVE_ATTRIBUTE_REFERENCE") +
-								String msg = "Remove attribute reference " +
-                         " <" + name + ">";
-                addMessage(msg, attrUse.getContainer());
-                
-                childrenToRemove.add(attrDecl.getElement());
-              }
-            }
-          }
-        }
-      }
-    }
-  }
-
-
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalAttributeGroupCleanup.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalAttributeGroupCleanup.java
deleted file mode 100644
index 2d5ed5c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalAttributeGroupCleanup.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.delete;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.xsd.XSDAttributeGroupContent;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class GlobalAttributeGroupCleanup extends BaseGlobalCleanup
-{
-  /**
-   * Constructor for GlobalAttributeGroupCleanup.
-   * @param deletedItem
-   */
-  public GlobalAttributeGroupCleanup(XSDConcreteComponent deletedItem)
-  {
-    super(deletedItem);
-  }
-  
-  
-  protected String replacementName = null;
-  
-  protected String getReplacementElementName()
-  {
-    if (replacementName == null)
-    {
-      TypesHelper helper = new TypesHelper(schema);
-      
-      List elements = helper.getGlobalAttributeGroups();
-      
-      String deletedName = getDeletedQName();
-      for (Iterator i = elements.iterator(); i.hasNext();)
-      {
-        String name = (String) i.next();
-        if (!name.equals(deletedName))
-        {
-          replacementName = name;
-          break;
-        }
-      }
-    }
-    return replacementName;
-  }
-
-  /**
-   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitComplexTypeDefinition(XSDComplexTypeDefinition)
-   */
-  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
-  {
-    super.visitComplexTypeDefinition(type);
-    if (type.getAttributeContents() != null)
-    {
-      for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
-      {
-        XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent) iter.next();
-
-        if (attrGroupContent instanceof XSDAttributeGroupDefinition)
-        {
-          XSDAttributeGroupDefinition attrGroupDef = (XSDAttributeGroupDefinition) attrGroupContent;
-          
-          if (deletedItem.equals(attrGroupDef.getResolvedAttributeGroupDefinition()))
-          {
-            if (getReplacementElementName() != null)
-            {
-              // String msg = XSDPlugin.getSchemaString("_INFO_RESET_ATTRIBUTE_GROUP_REFERENCE") + " <" + getReplacementElementName() + ">";
-							String msg = "Reset attribute group reference " + " <" + getReplacementElementName() + ">";
-              addMessage(msg, attrGroupDef);
-              attrGroupDef.getElement().setAttribute(XSDConstants.REF_ATTRIBUTE, getReplacementElementName());
-            }
-            else
-            {
-              // remove the attribute group reference
-              String name = getNamedComponentName(type);
-              // String msg = XSDPlugin.getSchemaString("_INFO_REMOVE_ATTRIBUTE_GROUP_REFERENCE") + " <" + name + ">";
-							String msg = "Remove attribute group reference " + " <" + name + ">";
-  
-              addMessage(msg, attrGroupDef.getContainer());
-              
-              childrenToRemove.add(attrGroupDef.getElement());
-            }
-          }
-        }
-      }
-    }
-    
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalElementCleanup.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalElementCleanup.java
deleted file mode 100644
index 9719e39..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalElementCleanup.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.delete;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class GlobalElementCleanup extends BaseGlobalCleanup
-{
-    
-  /**
-   * Constructor for GlobalElementCleanup.
-   * @param deletedItem
-   */
-  public GlobalElementCleanup(XSDConcreteComponent deletedItem)
-  {
-    super(deletedItem);
-  }
-
-  protected String replacementName = null;
-  
-  protected String getReplacementElementName()
-  {
-    if (replacementName == null)
-    {
-      TypesHelper helper = new TypesHelper(schema);
-      
-      List elements = helper.getGlobalElements();
-      
-      String deletedName = getDeletedQName();
-      for (Iterator i = elements.iterator(); i.hasNext();)
-      {
-        String name = (String) i.next();
-        if (!name.equals(deletedName))
-        {
-          replacementName = name;
-          break;
-        }
-      }
-    }
-    return replacementName;
-  }
-  
-  /**
-   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitElementDeclaration(XSDElementDeclaration)
-   */
-  public void visitElementDeclaration(XSDElementDeclaration element)
-  {
-    if (element.isElementDeclarationReference())
-    {
-      if (deletedItem.equals(element.getResolvedElementDeclaration()))
-      {
-        if (getReplacementElementName() != null)
-        {
-          // KCPort String msg = XSDPlugin.getSchemaString("_INFO_RESET_ELEMENT_REFERENCE") + " <" + getReplacementElementName() + ">";
-					String msg = "_INFO_RESET_ELEMENT_REFERENCE" + " <" + getReplacementElementName() + ">";
-          addMessage(msg, element);
-          element.getElement().setAttribute(XSDConstants.REF_ATTRIBUTE, getReplacementElementName());
-        }
-        else
-        {
-          // KCPort  String msg = XSDPlugin.getSchemaString("_INFO_REMOVE_ELEMENT_REFERENCE") + " <" + getNamedComponentName(element.getContainer()) + ">";
-					String msg = "_INFO_REMOVE_ELEMENT_REFERENCE" + " <" + getNamedComponentName(element.getContainer()) + ">";
-          addMessage(msg, element.getContainer());
-          childrenToRemove.add(element.getElement());
-        }
-      }
-    }
-    super.visitElementDeclaration(element);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalGroupCleanup.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalGroupCleanup.java
deleted file mode 100644
index 9486ff2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalGroupCleanup.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.delete;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class GlobalGroupCleanup extends BaseGlobalCleanup
-{
-  /**
-   * Constructor for GlobalGroupCleanup.
-   * @param deletedItem
-   */
-  public GlobalGroupCleanup(XSDConcreteComponent deletedItem)
-  {
-    super(deletedItem);
-  }
-
-  protected String replacementName = null;
-  
-  protected String getReplacementElementName()
-  {
-    if (replacementName == null)
-    {
-      TypesHelper helper = new TypesHelper(schema);
-      
-      List elements = helper.getModelGroups();
-      
-      String deletedName = getDeletedQName();
-      for (Iterator i = elements.iterator(); i.hasNext();)
-      {
-        String name = (String) i.next();
-        if (!name.equals(deletedName))
-        {
-          replacementName = name;
-          break;
-        }
-      }
-    }
-    return replacementName;
-  }
-
-  /**
-   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitModelGroupDefinition(XSDModelGroupDefinition)
-   */
-  public void visitModelGroupDefinition(XSDModelGroupDefinition modelGroup)
-  {
-    super.visitModelGroupDefinition(modelGroup);
-    if (modelGroup.isModelGroupDefinitionReference())
-    {
-      if (deletedItem.equals(modelGroup.getResolvedModelGroupDefinition()))
-      {
-        if (getReplacementElementName() != null)
-        {
-          // KCPort String msg = XSDPlugin.getSchemaString("_INFO_RESET_GROUP_REFERENCE") + " <" + getReplacementElementName() + ">";
-					String msg = "_INFO_RESET_GROUP_REFERENCE" + " <" + getReplacementElementName() + ">";
-          addMessage(msg, modelGroup);
-          modelGroup.getElement().setAttribute(XSDConstants.REF_ATTRIBUTE, getReplacementElementName());
-        }
-        else
-        {
-          String name = getNamedComponentName(modelGroup);
-          // KCPort String msg = XSDPlugin.getSchemaString("_INFO_REMOVE_GROUP_REFERENCE") + " <" + name + ">";
-					String msg = "_INFO_REMOVE_GROUP_REFERENCE" + " <" + name + ">";
-          addMessage(msg, modelGroup.getContainer());
-          childrenToRemove.add(modelGroup.getElement());
-        }
-      }
-    }      
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalSimpleOrComplexTypeCleanup.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalSimpleOrComplexTypeCleanup.java
deleted file mode 100644
index 2766767..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/GlobalSimpleOrComplexTypeCleanup.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.delete;
-
-import java.text.MessageFormat;
-import java.util.Iterator;
-
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupContent;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class GlobalSimpleOrComplexTypeCleanup extends BaseGlobalCleanup
-{
-  /**
-   * Constructor for GlobalSimpleOrComplexTypeCleanup.
-   * @param deletedItem
-   */
-  public GlobalSimpleOrComplexTypeCleanup(XSDConcreteComponent deletedItem)
-  {
-    super(deletedItem);
-  }
-
-  /**
-   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitElementDeclaration(XSDElementDeclaration)
-   */
-  public void visitElementDeclaration(XSDElementDeclaration element)
-  {
-    if (!element.isElementDeclarationReference() &&
-        deletedItem.equals(element.getTypeDefinition()))
-    {
-      resetTypeToString(element.getElement());
-      
-      String msg = "";
-      if (element.isGlobal())
-      {
-        // KCPort String pattern = XSDPlugin.getSchemaString("_INFO_RESET_GLOBAL_ELEMENT");
-				String pattern = "_INFO_RESET_GLOBAL_ELEMENT";
-        Object args[] = {element.getName()};
-        msg = MessageFormat.format(pattern, args);
-      }
-      else
-      {
-        // KCPort msg = XSDPlugin.getSchemaString("_INFO_RESET_ELEMENT");
-				msg = "_INFO_RESET_ELEMENT";
-        // KCPort msg += "<" + element.getName() + "> " + XSDPlugin.getSchemaString("_UI_TO_TYPE_STRING");
-				msg += "<" + element.getName() + "> " + "_UI_TO_TYPE_STRING";
-      }
-      addMessage(msg, element);
-    }
-
-
-    super.visitElementDeclaration(element);
-  }
-
-  /**
-   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitComplexTypeDefinition(XSDComplexTypeDefinition)
-   */
-  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
-  {
-    super.visitComplexTypeDefinition(type);
-    if (type.getAttributeContents() != null)
-    {
-      for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
-      {
-        XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent) iter.next();
-        if (attrGroupContent instanceof XSDAttributeUse)
-        {
-          XSDAttributeUse attrUse = (XSDAttributeUse) attrGroupContent;
-          XSDAttributeDeclaration attrDecl = attrUse.getContent();
-          
-          // now is this a reference?
-          if (attrDecl != null &&
-              !attrDecl.isAttributeDeclarationReference() &&
-              deletedItem.equals(attrDecl.getTypeDefinition()))
-          {
-              resetTypeToString(attrDecl.getElement());
-              // reset the type of the attribute decl to string
-              // KCPort String msg = XSDPlugin.getSchemaString("_INFO_RESET_ATTRIBUTE") +
-						  String msg = "_INFO_RESET_ATTRIBUTE" +
-                          " <" + attrDecl.getName() + "> " +
-                          // KCPort XSDPlugin.getSchemaString("_UI_TO_TYPE_STRING");
-						               "_UI_TO_TYPE_STRING"; 
-              addMessage(msg, attrDecl);
-              resetTypeToString(attrDecl.getElement());
-          }
-        }
-      }
-    }
-    XSDTypeDefinition base = type.getBaseTypeDefinition();
-    if (base != null && base.equals(deletedItem))
-    {
-      XSDDOMHelper helper = new XSDDOMHelper();
-      Element derivedByNode = helper.getDerivedByElement(type.getElement());
-
-      // KCPort String msg = XSDPlugin.getSchemaString("_INFO_RESET_COMPLEX_TYPE") +
-			String msg = "_INFO_RESET_COMPLEX_TYPE" +
-              " <" + getNamedComponentName(type) + "> " +
-              // KCPort XSDPlugin.getSchemaString("_UI_DERIVATION");
-			        "_UI_DERIVATION";
-      addMessage(msg, type);
-      
-      type.setBaseTypeDefinition(null);
-
-      java.util.List listOfCT = schema.getTypeDefinitions();
-      XSDTypeDefinition typeDefinition = null;
-      if (listOfCT.size() > 0)
-      {
-        typeDefinition = (XSDTypeDefinition)(listOfCT).get(0);
-        type.setBaseTypeDefinition(typeDefinition);
-      }
-
-//      type.setBaseTypeDefinition(schema.getSchemaForSchema().resolveSimpleTypeDefinition("string"));
-    }
-  }
-
-
-
-  protected void resetTypeToString(Element element)
-  {
-    String prefix = element.getPrefix();
-    prefix = (prefix == null) ? "" : (prefix + ":");
-    
-    element.setAttribute(XSDConstants.TYPE_ATTRIBUTE, prefix + "string"); 
-  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/XSDExternalFileCleanup.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/XSDExternalFileCleanup.java
deleted file mode 100644
index aa40416..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/delete/XSDExternalFileCleanup.java
+++ /dev/null
@@ -1,299 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.delete;
-
-import java.text.MessageFormat;
-import java.util.Iterator;
-
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupContent;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaContent;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class XSDExternalFileCleanup extends BaseCleanup
-{
-  /**
-   * Constructor for XSDExternalFileCleanup.
-   */
-  public XSDExternalFileCleanup(String oldFilename)
-  {
-    super();
-    this.oldFilename = oldFilename;
-  }
-  
-  protected XSDSchema deletedSchema;
-  public XSDExternalFileCleanup(XSDSchema deletedSchema)
-  {
-    this.deletedSchema = deletedSchema;
-  }
-
-  protected String oldFilename;
-  
-  /**
-   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitElementDeclaration(XSDElementDeclaration)
-   */
-  public void visitElementDeclaration(XSDElementDeclaration element)
-  {
-    boolean addMessage = true;
-    String schemaLocation = element.getSchema().getSchemaLocation();
-    if (schemaLocation!= null)
-    {
-      if (!schemaLocation.equals(schema.getSchemaLocation()))
-      {
-        addMessage = false;
-      }
-    }
-    if (element.isElementDeclarationReference())
-    {
-      if (isFromDeletedSchema(element.getResolvedElementDeclaration()))
-      {
-        if (addMessage)
-        {
-          // String msg = XSDPlugin.getSchemaString("_INFO_REMOVE_ELEMENT_REFERENCE") + " <" + getNamedComponentName(element.getContainer()) + ">";
-					String msg = "_INFO_REMOVE_ELEMENT_REFERENCE" + " <" + getNamedComponentName(element.getContainer()) + ">";
-          addMessage(msg, element.getContainer());
-        }
-        childrenToRemove.add(element.getElement());
-//        Element domElement = element.getElement();
-//        domElement.getParentNode().removeChild(domElement);     
-      }
-    }
-    else if (removeType(element))
-    {
-      String msg = "";
-      if (element.isGlobal())
-      {
-      	// String pattern = XSDPlugin.getSchemaString("_INFO_RESET_GLOBAL_ELEMENT");
-				String pattern = "_INFO_RESET_GLOBAL_ELEMENT";
-        Object args[] = {element.getName()};
-        msg = MessageFormat.format(pattern, args);
-      }
-      else
-      {
-      	// msg = XSDPlugin.getSchemaString("_INFO_RESET_ELEMENT");
-				msg = "_INFO_RESET_ELEMENT";
-      	// msg += "<" + element.getName() + "> " + XSDPlugin.getSchemaString("_UI_TO_TYPE_STRING");
-				msg += "<" + element.getName() + "> " + "_UI_TO_TYPE_STRING";
-      }
-      if (addMessage)
-      {
-        addMessage(msg, element);
-      }
-    }
-
-
-    super.visitElementDeclaration(element);
-  }
-
-  protected void resetTypeToString(Element element)
-  {
-    String prefix = element.getPrefix();
-    prefix = (prefix == null) ? "" : (prefix + ":");
-    
-    element.setAttribute(XSDConstants.TYPE_ATTRIBUTE, prefix + "string"); 
-  }
-  
-  protected boolean removeType(XSDElementDeclaration element)
-  {
-  	if (removeType(element.getTypeDefinition()))
-  	{
-      resetTypeToString(element.getElement());
-  	  return true;
-  	}
-  	return false;
-  }
-  
-  protected boolean isFromDeletedSchema(XSDConcreteComponent component)
-  {
-    if (component == null)
-    {
-      return false;
-    }
-    XSDConcreteComponent root = component.getRootContainer();
-
-    boolean isFromDeletedSchema = false;
-    if (deletedSchema.getContents() != null)
-    {
-      Iterator contents = deletedSchema.getContents().iterator();
-      while (contents.hasNext())
-      {
-        XSDSchemaContent content = (XSDSchemaContent)contents.next();
-        if (content instanceof XSDSchemaDirective)
-        {
-          XSDSchema aSchema = ((XSDSchemaDirective)content).getResolvedSchema();
-          if (root != null && root.equals(aSchema))
-          {
-            isFromDeletedSchema = true;
-          }
-        }
-      }
-    }
-    if (root != null && root.equals(deletedSchema))
-    {
-      isFromDeletedSchema = true;
-    }
-    return isFromDeletedSchema;
-  }
-      
-  /**
-   * Remove the type from the element if it belongs to the external file
-   */
-  protected boolean removeType(XSDTypeDefinition typeDef)
-  {
-    if (typeDef == null)
-    {
-      return false;
-    }
-    return isFromDeletedSchema(typeDef);
-  }
-
-  /**
-   * @see org.eclipse.wst.xsd.utility.XSDVisitor#visitComplexTypeDefinition(XSDComplexTypeDefinition)
-   */
-  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
-  {
-    super.visitComplexTypeDefinition(type);
-    if (type.getAttributeContents() != null)
-    {
-      for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
-      {
-        XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent) iter.next();
-        if (attrGroupContent instanceof XSDAttributeUse)
-        {
-          XSDAttributeUse attrUse = (XSDAttributeUse) attrGroupContent;
-          XSDAttributeDeclaration attrDecl = attrUse.getContent();
-          
-          // now is this a reference?
-          if (attrDecl.isAttributeDeclarationReference())
-          {
-            if (isFromDeletedSchema(attrDecl.getResolvedAttributeDeclaration()))
-            {
-              String name = getNamedComponentName(type);
-              // String msg = XSDPlugin.getSchemaString("_INFO_REMOVE_ATTRIBUTE_REFERENCE") +
-							String msg = "_INFO_REMOVE_ATTRIBUTE_REFERENCE" +
-                       " <" + name + ">";
-              addMessage(msg, attrDecl.getContainer());
-              
-              childrenToRemove.add(attrDecl.getElement());
-            }
-          }
-          // otherwise check the type of the attribute and see if it is from the deleted schema
-          else
-          {
-            if (removeType(attrDecl.getTypeDefinition()))
-            {
-              // reset the type of the attribute decl to string
-              // String msg = XSDPlugin.getSchemaString("_INFO_RESET_ATTRIBUTE") +
-							String msg = "_INFO_RESET_ATTRIBUTE" +
-                          " <" + attrDecl.getName() + "> " +
-                          // XSDPlugin.getSchemaString("_UI_TO_TYPE_STRING");
-							            "_UI_TO_TYPE_STRING";
-              addMessage(msg, attrDecl);
-              resetTypeToString(attrDecl.getElement());
-
-            }
-          }
-        }
-        else if (attrGroupContent instanceof XSDAttributeGroupDefinition)
-        {
-          XSDAttributeGroupDefinition attrGroupDef = (XSDAttributeGroupDefinition) attrGroupContent;
-          
-          if (isFromDeletedSchema(attrGroupDef.getResolvedAttributeGroupDefinition()))
-          {
-          	// remove the attribute group reference
-            String name = getNamedComponentName(type);
-            // String msg = XSDPlugin.getSchemaString("_INFO_REMOVE_ATTRIBUTE_GROUP_REFERENCE") + " <" + name + ">";
-						String msg = "_INFO_REMOVE_ATTRIBUTE_GROUP_REFERENCE" + " <" + name + ">";
-
-            addMessage(msg, attrGroupDef.getContainer());
-            
-            childrenToRemove.add(attrGroupDef.getElement());
-          }
-        }
-      }
-    }
-
-    // For the complex type with simple content case, see the visitComplexTypeDefinition method
-    XSDTypeDefinition base = type.getBaseTypeDefinition();
-    if (base instanceof XSDSimpleTypeDefinition)
-    {
-      XSDSimpleTypeDefinition baseType = (XSDSimpleTypeDefinition)base;
-      if (isFromDeletedSchema(baseType))
-      {
-        // String msg = XSDPlugin.getSchemaString("_INFO_RESET_COMPLEX_TYPE") +
-				String msg = "_INFO_RESET_COMPLEX_TYPE" +
-                " <" + getNamedComponentName(type) + "> " +
-                // XSDPlugin.getSchemaString("_UI_DERIVATION");
-				        "_UI_DERIVATION";
-        addMessage(msg, type);
-      
-        type.setBaseTypeDefinition(schema.getSchemaForSchema().resolveSimpleTypeDefinition("string"));
-      }
-    }
-  }
-
-  /**
-   * @see org.eclipse.wst.xsd.utility.XSDVisitor#visitModelGroupDefinition(XSDModelGroupDefinition)
-   */
-  public void visitModelGroupDefinition(XSDModelGroupDefinition modelGroup)
-  {
-    super.visitModelGroupDefinition(modelGroup);
-    if (modelGroup.isModelGroupDefinitionReference())
-    {
-      if (isFromDeletedSchema(modelGroup.getResolvedModelGroupDefinition()))
-      {
-        String name = getNamedComponentName(modelGroup);
-        // String msg = XSDPlugin.getSchemaString("_INFO_REMOVE_GROUP_REFERENCE") + " <" + name + ">";
-				String msg = "_INFO_REMOVE_GROUP_REFERENCE" + " <" + name + ">";
-        addMessage(msg, modelGroup.getContainer());
-        childrenToRemove.add(modelGroup.getElement());
-      }
-    }      
-  }
-
-  /**
-   * @see org.eclipse.wst.xsd.utility.XSDVisitor#visitSimpleTypeDefinition(XSDSimpleTypeDefinition)
-   */
-  public void visitSimpleTypeDefinition(XSDSimpleTypeDefinition type)
-  {
-    super.visitSimpleTypeDefinition(type);
-    XSDSimpleTypeDefinition baseType = type.getBaseTypeDefinition();
-    if (isFromDeletedSchema(baseType))
-    {
-      // String msg = XSDPlugin.getSchemaString("_INFO_RESET_SIMPLE_TYPE") +
-			String msg = "_INFO_RESET_SIMPLE_TYPE" +
-              " <" + getNamedComponentName(type) + "> " +
-              // XSDPlugin.getSchemaString("_UI_DERIVATION");
-			        "_UI_DERIVATION";
-      addMessage(msg, type);
-      
-
-    // This will set the simple Type base to string 
-    // For the complex type with simple content case, see the visitComplexTypeDefinition method
-
-      type.getFacetContents().clear();
-      type.getFacets().clear();
-      type.setBaseTypeDefinition(schema.getSchemaForSchema().resolveSimpleTypeDefinition("string"));
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/BaseRenamer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/BaseRenamer.java
deleted file mode 100644
index 1a789e8..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/BaseRenamer.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.rename;
-
-import org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.util.XSDConstants;
-
-
-/**
- * Base class for rename helpers of various named root components.  This is to be used when
- * the user renames a global element, group, attribute, attribute group, complex/simple type etc
- */
-public abstract class BaseRenamer extends XSDVisitor
-{
-
-  
-  /**
-   * Method BaseRenamer.
-   * @param globalComponent - this is the component (who's parent is the schema) that has been renamed
-   */
-  public BaseRenamer(XSDNamedComponent globalComponent, String newName)
-  {
-    this.globalComponent = globalComponent;
-    this.newName = newName;
-  }
-  
-  public String getNewQName()
-  {
-    String qName = null;
-    if (newName != null)
-    {
-      qName = XSDConstants.lookupQualifier(globalComponent.getElement(), globalComponent.getTargetNamespace());
-      if (qName != null && qName.length() > 0)
-      {
-        qName += ":" + newName;
-      }
-      else
-      {
-        qName = newName; 
-      }
-    }
-    else
-    {
-      qName = newName;
-    }
-    
-    return qName;
-  }
-  
-  protected String newName;
-  protected XSDNamedComponent globalComponent;
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalAttributeGroupRenamer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalAttributeGroupRenamer.java
deleted file mode 100644
index d01ec4f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalAttributeGroupRenamer.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.rename;
-
-import java.util.Iterator;
-
-import org.eclipse.xsd.XSDAttributeGroupContent;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class GlobalAttributeGroupRenamer extends BaseRenamer
-{
-  /**
-   * Constructor for GlobalAttributeGroupRenamer.
-   * @param globalComponent
-   */
-  public GlobalAttributeGroupRenamer(XSDNamedComponent globalComponent, String newName)
-  {
-    super(globalComponent, newName);
-  }
-
-  /**
-   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitComplexTypeDefinition(XSDComplexTypeDefinition)
-   */
-  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
-  {
-    super.visitComplexTypeDefinition(type);
-    if (type.getAttributeContents() != null)
-    {
-      for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
-      {
-        XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent) iter.next();
-
-        if (attrGroupContent instanceof XSDAttributeGroupDefinition)
-        {
-          XSDAttributeGroupDefinition attrGroupDef = (XSDAttributeGroupDefinition) attrGroupContent;
-          
-          if (globalComponent.equals(attrGroupDef.getResolvedAttributeGroupDefinition()))
-          {
-            attrGroupDef.getElement().setAttribute(XSDConstants.REF_ATTRIBUTE, getNewQName());
-          }
-        }
-      }
-    }
-    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalAttributeRenamer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalAttributeRenamer.java
deleted file mode 100644
index d1b3e68..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalAttributeRenamer.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.rename;
-
-import java.util.Iterator;
-
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupContent;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class GlobalAttributeRenamer extends BaseRenamer
-{
-  /**
-   * Constructor for GlobalAttributeRenamer.
-   * @param globalComponent
-   */
-  public GlobalAttributeRenamer(XSDNamedComponent globalComponent, String newName)
-  {
-    super(globalComponent, newName);
-  }
-  
-  /**
-   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitComplexTypeDefinition(XSDComplexTypeDefinition)
-   */
-  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
-  {
-    super.visitComplexTypeDefinition(type);
-    if (type.getAttributeContents() != null)
-    {
-      for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
-      {
-        XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent) iter.next();
-        if (attrGroupContent instanceof XSDAttributeUse)
-        {
-          XSDAttributeUse attrUse = (XSDAttributeUse) attrGroupContent;
-          XSDAttributeDeclaration attrDecl = attrUse.getContent();
-          
-          // now is this a reference?
-          if (attrDecl != null && attrDecl.isAttributeDeclarationReference())
-          {
-            if (globalComponent.equals(attrDecl.getResolvedAttributeDeclaration()))
-            {
-              attrDecl.getElement().setAttribute(XSDConstants.REF_ATTRIBUTE, getNewQName());           
-            }
-          }
-        }
-      }
-    }
-  }
-
-
-  
-
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalElementRenamer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalElementRenamer.java
deleted file mode 100644
index 869d775..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalElementRenamer.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.rename;
-
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class GlobalElementRenamer extends BaseRenamer
-{
-  /**
-   * Constructor for GlobalElementRenamer.
-   * @param globalComponent
-   */
-  public GlobalElementRenamer(XSDNamedComponent globalComponent, String newName)
-  {
-    super(globalComponent, newName);
-  }
-  
-  /**
-   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitElementDeclaration(XSDElementDeclaration)
-   */
-  public void visitElementDeclaration(XSDElementDeclaration element)
-  {
-    super.visitElementDeclaration(element);
-    if (element.isElementDeclarationReference() &&
-        globalComponent.equals(element.getResolvedElementDeclaration()))
-    {
-      element.getElement().setAttribute(XSDConstants.REF_ATTRIBUTE, getNewQName());
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalGroupRenamer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalGroupRenamer.java
deleted file mode 100644
index b29b8e4..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalGroupRenamer.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.rename;
-
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class GlobalGroupRenamer extends BaseRenamer
-{
-
-  /**
-   * Constructor for GlobalGroupRenamer.
-   * @param globalComponent
-   */
-  public GlobalGroupRenamer(XSDNamedComponent globalComponent, String newName)
-  {
-    super(globalComponent, newName);
-  }
-
-  /**
-   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitModelGroupDefinition(XSDModelGroupDefinition)
-   */
-  public void visitModelGroupDefinition(XSDModelGroupDefinition modelGroup)
-  {
-    super.visitModelGroupDefinition(modelGroup);
-    if (modelGroup.isModelGroupDefinitionReference())
-    {
-      if (globalComponent.equals(modelGroup.getResolvedModelGroupDefinition()))
-      {
-        modelGroup.getElement().setAttribute(XSDConstants.REF_ATTRIBUTE, getNewQName());
-      }
-    }      
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalSimpleOrComplexTypeRenamer.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalSimpleOrComplexTypeRenamer.java
deleted file mode 100644
index 369b562..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/GlobalSimpleOrComplexTypeRenamer.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.rename;
-
-import java.util.Iterator;
-
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupContent;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-
-public class GlobalSimpleOrComplexTypeRenamer extends BaseRenamer
-{
-  /**
-   * Constructor for GlobalSimpleOrComplexTypeRenamer.
-   * @param globalComponent
-   */
-  public GlobalSimpleOrComplexTypeRenamer(XSDNamedComponent globalComponent, String newName)
-  {
-    super(globalComponent, newName);
-  }
-  
-  
-  /**
-   * @see XSDVisitor#visitElementDeclaration(XSDElementDeclaration)
-   */
-  public void visitElementDeclaration(XSDElementDeclaration element)
-  {
-    if (!element.isElementDeclarationReference() &&
-        globalComponent.equals(element.getTypeDefinition()))
-    {
-      element.getElement().setAttribute(XSDConstants.TYPE_ATTRIBUTE, getNewQName());
-    }
-
-    super.visitElementDeclaration(element);
-  }
-
-
-  /**
-   * @see org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor#visitComplexTypeDefinition(XSDComplexTypeDefinition)
-   */
-  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
-  {
-    super.visitComplexTypeDefinition(type);
-    if (type.getAttributeContents() != null)
-    {
-      for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
-      {
-        XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent) iter.next();
-        if (attrGroupContent instanceof XSDAttributeUse)
-        {
-          XSDAttributeUse attrUse = (XSDAttributeUse) attrGroupContent;
-          XSDAttributeDeclaration attrDecl = attrUse.getContent();
-          
-          // now is this a reference?
-          if (!attrDecl.isAttributeDeclarationReference() &&
-              globalComponent.equals(attrDecl.getTypeDefinition()))
-          {
-            attrDecl.getElement().setAttribute(XSDConstants.TYPE_ATTRIBUTE, getNewQName());
-          }
-        }
-      }
-    }
-
-    XSDTypeDefinition base = type.getBaseTypeDefinition();
-    if (base.equals(globalComponent))
-    {
-      XSDDOMHelper helper = new XSDDOMHelper();
-      Element derivedByNode = helper.getDerivedByElementFromComplexType(type.getElement());
-      if (derivedByNode != null)
-      {
-        derivedByNode.setAttribute(XSDConstants.BASE_ATTRIBUTE, getNewQName());
-      }
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/SchemaPrefixChangeHandler.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/SchemaPrefixChangeHandler.java
deleted file mode 100644
index 62b0eb9..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/SchemaPrefixChangeHandler.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.rename;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class SchemaPrefixChangeHandler
-{
-  String newPrefix;
-  XSDSchema xsdSchema;
-
-  public SchemaPrefixChangeHandler(XSDSchema xsdSchema, String newPrefix)
-  {
-    this.xsdSchema = xsdSchema;
-    this.newPrefix= newPrefix;
-  }
-  
-  public void resolve()
-  {
-    XSDSchemaPrefixRenamer xsdSchemaPrefixRenamer = new XSDSchemaPrefixRenamer();
-    xsdSchemaPrefixRenamer.visitSchema(xsdSchema);
-  }
-
-  public String getNewQName(XSDTypeDefinition comp, String value, String newXSDPrefix)
-  {
-    String qName = null;
-    if (value != null)
-    {
-      qName = newXSDPrefix;
-      if (qName != null && qName.length() > 0)
-      {
-        qName += ":" + value;
-      }
-      else
-      {
-        qName = value; 
-      }
-    }
-    else
-    {
-      qName = value;
-    }
-    
-    return qName;
-  }
-
-  
-  class XSDSchemaPrefixRenamer extends XSDVisitor
-  {
-    public XSDSchemaPrefixRenamer()
-    {
-      super();
-    }
-    
-    public void visitElementDeclaration(XSDElementDeclaration element)
-    {
-      super.visitElementDeclaration(element);
-      XSDTypeDefinition type = element.getType();
-      if (type != null)
-      {
-        String ns = type.getTargetNamespace();
-        if (ns == null) ns = "";
-//        if (ns.equals(xsdSchema.getSchemaForSchemaNamespace()))
-        if (ns.equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001))        
-        {
-          Element domElement = element.getElement();
-          if (domElement != null && domElement instanceof XMLNode)
-          {
-            Attr typeAttr = domElement.getAttributeNode(XSDConstants.TYPE_ATTRIBUTE);
-            if (typeAttr != null)
-            {
-              element.getElement().setAttribute(XSDConstants.TYPE_ATTRIBUTE, getNewQName(type, type.getName(), newPrefix));            
-            }
-          }
-        }
-      }
-    }
-    
-    public void visitSimpleTypeDefinition(XSDSimpleTypeDefinition simpleType)
-    {
-      super.visitSimpleTypeDefinition(simpleType);
-      XSDTypeDefinition baseType = simpleType.getBaseTypeDefinition();
-      
-      if (baseType != null)
-      {
-        String ns = baseType.getTargetNamespace();
-        if (ns == null) ns = "";
-//        if (ns.equals(xsdSchema.getSchemaForSchemaNamespace()))
-//        System.out.println(xsdSchema.getSchemaForSchemaNamespace());
-        if (ns.equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001))
-        {
-          XSDDOMHelper domHelper = new XSDDOMHelper();
-          Element derivedBy = domHelper.getDerivedByElement(simpleType.getElement());
-          if (derivedBy != null && derivedBy instanceof XMLNode)
-          {
-            Attr typeAttr = derivedBy.getAttributeNode(XSDConstants.BASE_ATTRIBUTE);
-            if (typeAttr != null)
-            {
-              derivedBy.setAttribute(XSDConstants.BASE_ATTRIBUTE, getNewQName(baseType, baseType.getName(), newPrefix));
-            }
-          }
-        }
-      }
-      
-      XSDSimpleTypeDefinition itemType = simpleType.getItemTypeDefinition();
-      if (itemType != null)
-      {
-        String ns = itemType.getTargetNamespace();
-        if (ns == null) ns = "";
-        if (ns.equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001))
-        {
-          XSDDOMHelper domHelper = new XSDDOMHelper();
-          Node listNode = domHelper.getChildNode(simpleType.getElement(), XSDConstants.LIST_ELEMENT_TAG);
-          if (listNode != null && listNode instanceof Element)
-          {
-            Element listElement = (Element)listNode;          
-            if (listElement instanceof XMLNode)
-            {
-              Attr typeAttr = listElement.getAttributeNode(XSDConstants.ITEMTYPE_ATTRIBUTE);
-              if (typeAttr != null)
-              {
-                listElement.setAttribute(XSDConstants.ITEMTYPE_ATTRIBUTE, getNewQName(itemType, itemType.getName(), newPrefix));
-              }
-            }
-          }
-        }
-      }
-      
-      List memberTypes = simpleType.getMemberTypeDefinitions();
-      if (memberTypes.size() > 0)
-      {
-        XSDDOMHelper domHelper = new XSDDOMHelper();
-        Node unionNode = domHelper.getChildNode(simpleType.getElement(), XSDConstants.UNION_ELEMENT_TAG);
-        if (unionNode != null && unionNode instanceof Element)
-        {
-          Element unionElement = (Element)unionNode;          
-          if (unionElement instanceof XMLNode)
-          {
-            Attr typeAttr = unionElement.getAttributeNode(XSDConstants.MEMBERTYPES_ATTRIBUTE);
-            StringBuffer sb = new StringBuffer("");
-            for (Iterator i = memberTypes.iterator(); i.hasNext(); )
-            {
-              XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)i.next();
-              String ns = st.getTargetNamespace();
-              if (ns == null) ns = "";
-              if (ns.equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001))
-              {
-                sb.append(getNewQName(st, st.getName(), newPrefix));                
-              }
-              else
-              {
-                sb.append(st.getQName(xsdSchema));
-              }
-              if (i.hasNext())
-              {
-                sb.append(" ");
-              }
-            }
-            unionElement.setAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE, sb.toString());
-          }
-        }
-      }
-    }
-
-    public void visitAttributeDeclaration(XSDAttributeDeclaration attr)
-    {
-      super.visitAttributeDeclaration(attr);
-      XSDTypeDefinition type = attr.getType();
-      if (type != null)
-      {
-        String ns = type.getTargetNamespace();
-        if (ns == null) ns = "";
-//        if (ns.equals(xsdSchema.getSchemaForSchemaNamespace()))
-        if (ns.equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001))
-        {
-          Element domElement = attr.getElement();
-          if (domElement != null && domElement instanceof XMLNode)
-          {
-            Attr typeAttr = domElement.getAttributeNode(XSDConstants.TYPE_ATTRIBUTE);
-            if (typeAttr != null)
-            {
-              attr.getElement().setAttribute(XSDConstants.TYPE_ATTRIBUTE, getNewQName(type, type.getName(), newPrefix));            
-            }
-          }
-        }
-      }
-    }
-  }    
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/TargetNamespaceChangeHandler.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/TargetNamespaceChangeHandler.java
deleted file mode 100644
index ef996b1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/rename/TargetNamespaceChangeHandler.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.rename;
-
-import java.util.Iterator;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.wst.xsd.ui.internal.refactor.XSDVisitor;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupContent;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSchema;
-
-
-public class TargetNamespaceChangeHandler
-{
-  String newNS;
-  String oldNS;
-  XSDSchema xsdSchema;
-
-  public TargetNamespaceChangeHandler(XSDSchema xsdSchema, String oldNS, String newNS)
-  {
-    this.xsdSchema = xsdSchema;
-    this.oldNS= oldNS;
-    this.newNS= newNS;
-  }
-  
-  public void resolve()
-  {
-    ElementReferenceRenamer elementReferenceRenamer = new ElementReferenceRenamer();
-    elementReferenceRenamer.visitSchema(xsdSchema);
-    AttributeReferenceRenamer attributeReferenceRenamer = new AttributeReferenceRenamer();
-    attributeReferenceRenamer.visitSchema(xsdSchema);
-  }
-
-  class ElementReferenceRenamer extends XSDVisitor
-  {
-    public ElementReferenceRenamer()
-    {
-      super();
-    }
-    
-    public void visitElementDeclaration(XSDElementDeclaration element)
-    {
-      super.visitElementDeclaration(element);
-      if (element.isElementDeclarationReference())
-      {
-      	if (element.getResolvedElementDeclaration().getTargetNamespace() != null)
-      	{
-      	  if (element.getResolvedElementDeclaration().getTargetNamespace().equals(oldNS))
-          {
-            // set the resolved element's declaration to new ns
-            // this is defect 237518 - target namespace rename creates a new namespace
-            element.getResolvedElementDeclaration().setTargetNamespace(newNS);
-          }
-        }
-        else
-        {
-        	if (oldNS == null || (oldNS != null && oldNS.equals("")))
-        	{
-						element.getResolvedElementDeclaration().setTargetNamespace(newNS);
-        	}
-        }
-      }
-    }
-  }
-  
-  // Similar to defect 237518 but for attributes
-  class AttributeReferenceRenamer extends XSDVisitor
-  {
-    public AttributeReferenceRenamer()
-    {
-      super();
-    }
-    
-    public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
-    {
-      super.visitComplexTypeDefinition(type);
-      if (type.getAttributeContents() != null)
-      {
-        for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
-        {
-          XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent) iter.next();
-          if (attrGroupContent instanceof XSDAttributeUse)
-          {
-            XSDAttributeUse attrUse = (XSDAttributeUse) attrGroupContent;
-            XSDAttributeDeclaration attrDecl = attrUse.getContent();
-            
-            if (attrDecl != null && attrDecl.isAttributeDeclarationReference())
-            {
-							if (attrDecl.getResolvedAttributeDeclaration().getTargetNamespace() != null)
-							{
-                if (attrDecl.getResolvedAttributeDeclaration().getTargetNamespace().equals(oldNS))
-                {
-                  attrDecl.getResolvedAttributeDeclaration().setTargetNamespace(newNS);
-                }
-              }
-              else
-              {
-								if (oldNS == null || (oldNS != null && oldNS.equals("")))
-								{
-									attrDecl.getResolvedAttributeDeclaration().setTargetNamespace(newNS);
-								}
-              }
-            }
-          }
-        }
-      }
-    }
-  
-    public void visitAttributeGroupDefinition(XSDAttributeGroupDefinition attributeGroup)
-    {
-      super.visitAttributeGroupDefinition(attributeGroup);
-      EList list = attributeGroup.getAttributeUses();
-      if (list != null)
-      {
-        for (Iterator iter = list.iterator(); iter.hasNext(); )
-        {
-          XSDAttributeUse attrUse = (XSDAttributeUse)iter.next();
-          XSDAttributeDeclaration attrDecl = attrUse.getContent();
-
-          if (attrDecl != null && attrDecl.isAttributeDeclarationReference())
-          {
-						if (attrDecl.getResolvedAttributeDeclaration().getTargetNamespace() != null)
-						{
-              if (attrDecl.getResolvedAttributeDeclaration().getTargetNamespace().equals(oldNS))
-              {
-                attrDecl.getResolvedAttributeDeclaration().setTargetNamespace(newNS);
-              }
-            }
-            else
-            {
-							if (oldNS == null || (oldNS != null && oldNS.equals("")))
-							{
-								attrDecl.getResolvedAttributeDeclaration().setTargetNamespace(newNS);
-							}
-            }
-          }
-        }
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/util/OpenOnSelectionHelper.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/util/OpenOnSelectionHelper.java
deleted file mode 100644
index 82de07f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/util/OpenOnSelectionHelper.java
+++ /dev/null
@@ -1,322 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.util;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.wst.sse.core.IndexedRegion;
-import org.eclipse.wst.xml.uriresolver.util.URIHelper;
-import org.eclipse.wst.xsd.ui.internal.XSDEditor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.XSDTextEditor;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDIdentityConstraintDefinition;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Node;
-
-
-public class OpenOnSelectionHelper
-{
-  
-  protected XSDTextEditor textEditor;
-  
-  /**
-   * Constructor for OpenOnSelectionHelper.
-   */
-  public OpenOnSelectionHelper(XSDTextEditor textEditor)
-  {
-    this.textEditor = textEditor;
-  }
-
-  boolean lastResult;
-  
-  public static void openXSDEditor(String schemaLocation)
-  {
-		IPath schemaPath = new Path(schemaLocation);
-		
-		final IFile schemaFile = ResourcesPlugin.getWorkspace().getRoot().getFile(schemaPath);
-	
-		Display.getDefault().syncExec(new Runnable()
-		{
-			/**
-			 * @see java.lang.Runnable#run()
-			 */
-			public void run()
-			{
-				final IWorkbenchWindow workbenchWindow = XSDEditorPlugin.getPlugin().getWorkbench().getActiveWorkbenchWindow();
-				if (workbenchWindow != null)
-				{
-					try
-					{
-					  IEditorPart editorPart = workbenchWindow.getActivePage().openEditor(new FileEditorInput(schemaFile), XSDEditorPlugin.XSD_EDITOR_ID);
-					}
-					catch (PartInitException initEx)
-					{
-					  initEx.printStackTrace();
-//						XSDEditorPlugin.getPlugin().getMsgLogger().write(initEx);
-					}
-					catch(Exception e)
-					{
-					  e.printStackTrace();
-					}
-				}          
-			}
-		});
-  }
-  
-  protected boolean revealObject(final XSDConcreteComponent component)
-  {
-    if (component.getRootContainer().equals(textEditor.getXSDSchema()))
-    {
-      Node element = component.getElement();
-      if (element instanceof IndexedRegion)
-      {
-        IndexedRegion indexNode = (IndexedRegion) element;
-        textEditor.getTextViewer().setRangeIndication(indexNode.getStartOffset(), indexNode.getEndOffset() - indexNode.getStartOffset(), true);
-        return true;
-      }
-      return false;
-    }
-    else
-    {
-      lastResult = false;
-      if (component.getSchema() != null)
-      {
-				String schemaLocation = URIHelper.removePlatformResourceProtocol(component.getSchema().getSchemaLocation());
-        IPath schemaPath = new Path(schemaLocation);
-				final IFile schemaFile = ResourcesPlugin.getWorkspace().getRoot().getFile(schemaPath);
-        Display.getDefault().syncExec(new Runnable()
-        {
-	        /**
-	         * @see java.lang.Runnable#run()
-	         */
-	        public void run()
-	        {
-		        final IWorkbenchWindow workbenchWindow = XSDEditorPlugin.getPlugin().getWorkbench().getActiveWorkbenchWindow();
-		        if (workbenchWindow != null)
-		        {
-							try
-							{
-							  IEditorPart editorPart = workbenchWindow.getActivePage().openEditor(new FileEditorInput(schemaFile), textEditor.getXSDEditor().getEditorSite().getId());
-								if (editorPart instanceof XSDEditor)
-								{
-									((XSDEditor)editorPart).openOnGlobalReference(component);
-									lastResult = true;
-								}
-							}
-							catch (PartInitException initEx)
-							{
-//								XSDEditorPlugin.getPlugin().getMsgLogger().write(initEx);
-							}
-						}          
-					}
-				});
-      }
-      return lastResult;
-    }
-  }
-  
-  public void openOnGlobalReference(XSDConcreteComponent comp)
-  {
-    XSDSchema schema = textEditor.getXSDSchema();
-    String name = null;
-    if (comp instanceof XSDNamedComponent)
-    {
-      name = ((XSDNamedComponent) comp).getName();
-    }
-    
-    if (schema == null || name == null)
-    {
-      return;
-    }
-
-    List objects = null;    
-    if (comp instanceof XSDElementDeclaration)
-    {
-      objects = schema.getElementDeclarations();
-    }
-    else if (comp instanceof XSDTypeDefinition)
-    {
-      objects = schema.getTypeDefinitions();
-    }
-
-    if (objects != null)
-    {
-      for (Iterator iter = objects.iterator(); iter.hasNext();)
-      {
-        XSDNamedComponent namedComp = (XSDNamedComponent) iter.next();
-        
-        if (namedComp.getName().equals(name))
-        {
-          revealObject(namedComp);
-        }
-      }
-    }
-  }
-  
-  public boolean openOnSelection()
-  {
-    List selectedNodes = textEditor.getViewerSelectionManager().getSelectedNodes();
-
-    if (!selectedNodes.isEmpty())
-    {
-      for (Iterator i = selectedNodes.iterator(); i.hasNext();)
-      {
-        Object obj = i.next();
-        XSDSchema xsdSchema = textEditor.getXSDSchema();
-        if (xsdSchema != null)
-        {
-          XSDConcreteComponent xsdComp = xsdSchema.getCorrespondingComponent((Node)obj);
-          XSDConcreteComponent objectToReveal = null;
-
-          if (xsdComp instanceof XSDElementDeclaration)
-          {
-            XSDElementDeclaration elementDecl = (XSDElementDeclaration) xsdComp;
-            if (elementDecl.isElementDeclarationReference())
-            {
-              objectToReveal = elementDecl.getResolvedElementDeclaration();
-            }
-            else
-            {
-              XSDConcreteComponent typeDef = null;
-              if (elementDecl.getAnonymousTypeDefinition() == null)
-              {
-                typeDef = elementDecl.getTypeDefinition();
-              }
-              
-              XSDConcreteComponent subGroupAffiliation = elementDecl.getSubstitutionGroupAffiliation();
-              
-              if (typeDef != null && subGroupAffiliation != null)
-              {
-                // we have 2 things we can navigate to, if the cursor is anywhere on the substitution attribute
-                // then jump to that, otherwise just go to the typeDef.
-                if (obj instanceof Attr && ((Attr)obj).getLocalName().equals(XSDConstants.SUBSTITUTIONGROUP_ATTRIBUTE))
-                {
-                  objectToReveal = subGroupAffiliation;
-                }
-                else
-                {
-                  // try to reveal the type now.  On success, then we return true.
-                  // if we fail, set the substitution group as the object to reveal as a backup plan.
-                  if (revealObject(typeDef))
-                  {
-                    return true;
-                  }
-                  else
-                  {
-                    objectToReveal = subGroupAffiliation;
-                  }
-                }
-              }
-              else
-              {
-                // one or more of these is null.  If the typeDef is non-null, use it.  Otherwise
-                // try and use the substitution group
-                objectToReveal = typeDef != null ? typeDef : subGroupAffiliation;
-              }
-            }
-          }
-          else if (xsdComp instanceof XSDModelGroupDefinition)
-          {
-            XSDModelGroupDefinition elementDecl = (XSDModelGroupDefinition) xsdComp;
-            if (elementDecl.isModelGroupDefinitionReference())
-            {
-              objectToReveal = elementDecl.getResolvedModelGroupDefinition();
-            }
-          }
-          else if (xsdComp instanceof XSDAttributeDeclaration)
-          {
-            XSDAttributeDeclaration attrDecl = (XSDAttributeDeclaration) xsdComp;
-            if (attrDecl.isAttributeDeclarationReference())
-            {
-              objectToReveal = attrDecl.getResolvedAttributeDeclaration();
-            }
-            else if (attrDecl.getAnonymousTypeDefinition() == null)
-            {
-              objectToReveal = attrDecl.getTypeDefinition();
-            }              
-          }
-          else if (xsdComp instanceof XSDAttributeGroupDefinition)
-          {
-            XSDAttributeGroupDefinition attrGroupDef = (XSDAttributeGroupDefinition) xsdComp;
-            if (attrGroupDef.isAttributeGroupDefinitionReference())
-            {
-              objectToReveal = attrGroupDef.getResolvedAttributeGroupDefinition();
-            }
-          }
-          else if (xsdComp instanceof XSDIdentityConstraintDefinition)
-          {
-            XSDIdentityConstraintDefinition idConstraintDef = (XSDIdentityConstraintDefinition) xsdComp;
-            if (idConstraintDef.getReferencedKey() != null)
-            {
-              objectToReveal = idConstraintDef.getReferencedKey();
-            }
-          }
-          else if (xsdComp instanceof XSDSimpleTypeDefinition)
-          {
-            XSDSimpleTypeDefinition typeDef = (XSDSimpleTypeDefinition) xsdComp;
-            objectToReveal = typeDef.getItemTypeDefinition();
-            if (objectToReveal == null)
-            {
-              // if itemType attribute is not set, then check for memberType
-              List memberTypes = typeDef.getMemberTypeDefinitions();
-              if (memberTypes != null && memberTypes.size() > 0)
-              {
-                objectToReveal = (XSDConcreteComponent)memberTypes.get(0);
-              }              
-            }
-          }
-          else if (xsdComp instanceof XSDTypeDefinition)
-          {
-            XSDTypeDefinition typeDef = (XSDTypeDefinition) xsdComp;
-            objectToReveal = typeDef.getBaseType();
-          }
-          else if (xsdComp instanceof XSDSchemaDirective)
-          {
-          	XSDSchemaDirective directive = (XSDSchemaDirective) xsdComp;
-//						String schemaLocation = URIHelper.removePlatformResourceProtocol(directive.getResolvedSchema().getSchemaLocation());
-//						openXSDEditor(schemaLocation);
-//						return false;
-            objectToReveal = directive.getResolvedSchema();						          	          	
-          }
-
-          // now reveal the object if this isn't null
-          if (objectToReveal != null)
-          {
-            return revealObject(objectToReveal);
-          }
-        }
-      }
-    }
-    return false;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/util/SelectionAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/util/SelectionAdapter.java
deleted file mode 100644
index 2cd1353..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/util/SelectionAdapter.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.util;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-
-public abstract class SelectionAdapter implements ISelectionProvider
-{
-  protected List listenerList = new ArrayList();
-  protected ISelection selection = new StructuredSelection();
-  protected ISelectionProvider eventSource;
-
-  public void setEventSource(ISelectionProvider eventSource)
-  {
-    this.eventSource = eventSource;
-  }
-
-  public void addSelectionChangedListener(ISelectionChangedListener listener) 
-  {
-    listenerList.add(listener);
-  }
-
-  public void removeSelectionChangedListener(ISelectionChangedListener listener) 
-  {
-    listenerList.remove(listener);
-  }                    
-
-  public ISelection getSelection() 
-  {
-    return selection;
-  }    
-  
-  /**
-   * This method should be specialized to return the correct object that corresponds to the 'other' model
-   */
-  abstract protected Object getObjectForOtherModel(Object object);
-
-    
-  public void setSelection(ISelection modelSelection)  
-  { 
-    List otherModelObjectList = new ArrayList();
-    if (modelSelection instanceof IStructuredSelection)
-    {
-      for (Iterator i = ((IStructuredSelection)modelSelection).iterator(); i.hasNext(); )
-      {
-        Object modelObject = i.next(); 
-        Object otherModelObject = getObjectForOtherModel(modelObject);       
-        if (otherModelObject != null)
-        { 
-          otherModelObjectList.add(otherModelObject);
-        }
-      }
-    }                
-      
-    StructuredSelection nodeSelection = new StructuredSelection(otherModelObjectList);
-    selection = nodeSelection;
-    SelectionChangedEvent event = new SelectionChangedEvent(eventSource != null ? eventSource : this, nodeSelection);
-
-    for (Iterator i = listenerList.iterator(); i.hasNext(); )
-    {
-      ISelectionChangedListener listener = (ISelectionChangedListener)i.next();
-      listener.selectionChanged(event);
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/util/TypesHelper.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/util/TypesHelper.java
deleted file mode 100644
index fe313c8..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/util/TypesHelper.java
+++ /dev/null
@@ -1,762 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.util;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Vector;
-
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDImport;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaContent;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.impl.XSDImportImpl;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class TypesHelper
-{
-  XSDSchema xsdSchema;
-  Vector list = new Vector();
-
-  public TypesHelper(XSDSchema xsdSchema)
-  {
-    this.xsdSchema = xsdSchema;
-  }
-
-  public void updateExternalImportGlobals()
-  {
-    if (xsdSchema != null)
-    {
-      Iterator contents = xsdSchema.getContents().iterator();
-      while (contents.hasNext())
-      {
-        XSDSchemaContent content = (XSDSchemaContent) contents.next();
-        if (content instanceof XSDImportImpl)
-        {
-          XSDImportImpl anImport = (XSDImportImpl) content;
-          try
-          {
-            if (anImport.getSchemaLocation() != null)
-            {
-              anImport.importSchema();
-            }
-          }
-          catch (Exception e)
-          {
-            
-          }
-        }
-      }
-    }
-  }
-
-  private Vector addExternalImportedUserSimpleTypes(Vector items)
-  {
-    if (xsdSchema != null)
-    {
-      Iterator contents = xsdSchema.getContents().iterator();
-      while (contents.hasNext())
-      {
-        XSDSchemaContent content = (XSDSchemaContent) contents.next();
-        if (content instanceof XSDImportImpl)
-        {
-          XSDImportImpl anImport = (XSDImportImpl) content;
-
-          XSDSchema impSchema = anImport.getResolvedSchema();
-
-          try
-          {
-            if (impSchema == null)
-            {
-              impSchema = anImport.importSchema();
-            }
-          }
-          catch (Exception e)
-          {
-            
-          }
-
-          if (impSchema != null)
-          {
-            Iterator i = impSchema.getTypeDefinitions().iterator();
-            while (i.hasNext())
-            {
-              XSDTypeDefinition typeDefinition = (XSDTypeDefinition) i.next();
-              if (typeDefinition instanceof XSDSimpleTypeDefinition)
-              {
-                if (typeDefinition.getName() != null)
-                {
-                  items.addAll(getPrefixedNames(typeDefinition.getTargetNamespace(), typeDefinition.getName()));
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-    return items;
-  }
-
-  private Vector addExternalImportedGlobalElements(Vector items)
-  {
-    if (xsdSchema != null)
-    {
-      Iterator contents = xsdSchema.getContents().iterator();
-      while (contents.hasNext())
-      {
-        XSDSchemaContent content = (XSDSchemaContent) contents.next();
-        if (content instanceof XSDImportImpl)
-        {
-          XSDImportImpl anImport = (XSDImportImpl) content;
-
-          XSDSchema impSchema = anImport.getResolvedSchema();
-
-          try
-          {
-            if (impSchema == null)
-            {
-              impSchema = anImport.importSchema();
-            }
-          }
-          catch (Exception e)
-          {
-            
-          }
-
-          if (impSchema != null)
-          {
-            Iterator i = impSchema.getElementDeclarations().iterator();
-            while (i.hasNext())
-            {
-              XSDElementDeclaration anElement = (XSDElementDeclaration) i.next();
-              if (anElement.getName() != null)
-              {
-                items.addAll(getPrefixedNames(anElement.getTargetNamespace(), anElement.getName()));
-              }
-            }
-          }
-        }
-      }
-    }
-    return items;
-  }
-
-  private Vector addExternalImportedAttributes(Vector items)
-  {
-    if (xsdSchema != null)
-    {
-      Iterator contents = xsdSchema.getContents().iterator();
-      while (contents.hasNext())
-      {
-        XSDSchemaContent content = (XSDSchemaContent) contents.next();
-        if (content instanceof XSDImportImpl)
-        {
-          XSDImportImpl anImport = (XSDImportImpl) content;
-
-          XSDSchema impSchema = anImport.getResolvedSchema();
-
-          try
-          {
-            if (impSchema == null)
-            {
-              impSchema = anImport.importSchema();
-            }
-          }
-          catch (Exception e)
-          {
-            
-          }
-
-          if (impSchema != null)
-          {
-            Iterator i = impSchema.getAttributeDeclarations().iterator();
-            while (i.hasNext())
-            {
-              XSDAttributeDeclaration attrib = (XSDAttributeDeclaration) i.next();
-              if (attrib.getName() != null)
-              {
-                items.addAll(getPrefixedNames(attrib.getTargetNamespace(), attrib.getName()));
-              }
-            }
-          }
-        }
-      }
-    }
-    return items;
-  }
-
-  private Vector addExternalImportedAttributeGroups(Vector items)
-  {
-    if (xsdSchema != null)
-    {
-      Iterator contents = xsdSchema.getContents().iterator();
-      while (contents.hasNext())
-      {
-        XSDSchemaContent content = (XSDSchemaContent) contents.next();
-        if (content instanceof XSDImportImpl)
-        {
-          XSDImportImpl anImport = (XSDImportImpl) content;
-
-          XSDSchema impSchema = anImport.getResolvedSchema();
-
-          try
-          {
-            if (impSchema == null)
-            {
-              impSchema = anImport.importSchema();
-            }
-          }
-          catch (Exception e)
-          {
-            
-          }
-
-          if (impSchema != null)
-          {
-            Iterator i = impSchema.getAttributeGroupDefinitions().iterator();
-            while (i.hasNext())
-            {
-              XSDAttributeGroupDefinition attrib = (XSDAttributeGroupDefinition) i.next();
-              if (attrib.getName() != null)
-              {
-                items.addAll(getPrefixedNames(attrib.getTargetNamespace(), attrib.getName()));
-              }
-            }
-          }
-        }
-      }
-    }
-    return items;
-  }
-
-  private Vector addExternalImportedUserComplexTypes(Vector items)
-  {
-    if (xsdSchema != null)
-    {
-      Iterator contents = xsdSchema.getContents().iterator();
-      while (contents.hasNext())
-      {
-        XSDSchemaContent content = (XSDSchemaContent) contents.next();
-        if (content instanceof XSDImportImpl)
-        {
-          XSDImportImpl anImport = (XSDImportImpl) content;
-
-          XSDSchema impSchema = anImport.getResolvedSchema();
-
-          try
-          {
-            if (impSchema == null)
-            {
-              impSchema = anImport.importSchema();
-            }
-          }
-          catch (Exception e)
-          {
-            
-          }
-
-          if (impSchema != null)
-          {
-            Iterator i = impSchema.getTypeDefinitions().iterator();
-            while (i.hasNext())
-            {
-              XSDTypeDefinition typeDefinition = (XSDTypeDefinition) i.next();
-              if (typeDefinition instanceof XSDComplexTypeDefinition)
-              {
-                if (typeDefinition.getName() != null)
-                {
-                  items.addAll(getPrefixedNames(typeDefinition.getTargetNamespace(), typeDefinition.getName()));
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-    return items;
-  }
-
-  private Vector addExternalImportedGroups(Vector items)
-  {
-    if (xsdSchema != null)
-    {
-      Iterator contents = xsdSchema.getContents().iterator();
-      while (contents.hasNext())
-      {
-        XSDSchemaContent content = (XSDSchemaContent) contents.next();
-        if (content instanceof XSDImportImpl)
-        {
-          XSDImportImpl anImport = (XSDImportImpl) content;
-
-          XSDSchema impSchema = anImport.getResolvedSchema();
-
-          try
-          {
-            if (impSchema == null)
-            {
-              impSchema = anImport.importSchema();
-            }
-          }
-          catch (Exception e)
-          {
-          }
-
-          if (impSchema != null)
-          {
-            Iterator i = impSchema.getModelGroupDefinitions().iterator();
-            while (i.hasNext())
-            {
-              XSDModelGroupDefinition aGroup = (XSDModelGroupDefinition) i.next();
-              if (aGroup.getName() != null)
-              {
-                items.addAll(getPrefixedNames(aGroup.getTargetNamespace(), aGroup.getName()));
-              }
-            }
-          }
-        }
-      }
-    }
-    return items;
-  }
-
-  public java.util.List getBuiltInTypeNamesList()
-  {
-    Vector items = new Vector();
-    if (xsdSchema != null)
-    {
-      String xsdForXSDPrefix = xsdSchema.getSchemaForSchemaQNamePrefix();
-      if (xsdForXSDPrefix != null && xsdForXSDPrefix.length() > 0)
-      {
-        xsdForXSDPrefix = xsdForXSDPrefix + ":";
-      }
-      else
-      {
-        xsdForXSDPrefix = "";
-      }
-
-      for (int i = 0; i < XSDDOMHelper.dataType.length; i++)
-      {
-        items.add(xsdForXSDPrefix + XSDDOMHelper.dataType[i][0]);
-      }
-    }
-    return items;
-  }
-  
-  public java.util.List getBuiltInTypeNamesList2()
-  {
-    List result = new ArrayList();
-    if (xsdSchema != null)
-    {
-      List prefixes = getPrefixesForNamespace(xsdSchema.getSchemaForSchemaNamespace());
-      for (int i = 0; i < XSDDOMHelper.dataType.length; i++)
-      {
-        for (Iterator j = prefixes.iterator(); j.hasNext();)
-        {
-          String prefix = (String) j.next();
-          String localName = XSDDOMHelper.dataType[i][0]; 
-          String prefixedName = (prefix != null && prefix.length() > 0) ? prefix + ":" + localName : localName; 
-          result.add(prefixedName);
-        }
-      }
-    }
-    return result;
-  }
-
-  public java.util.List getUserSimpleTypeNamesList()
-  {
-    Vector items = new Vector();
-    if (xsdSchema != null)
-    {
-      updateExternalImportGlobals();
-      Iterator i = xsdSchema.getTypeDefinitions().iterator();
-      while (i.hasNext())
-      {
-        XSDTypeDefinition typeDefinition = (XSDTypeDefinition) i.next();
-        if (typeDefinition instanceof XSDSimpleTypeDefinition)
-        {
-          items.addAll(getPrefixedNames(typeDefinition.getTargetNamespace(), typeDefinition.getName()));
-          //System.out.println(typeDefinition.getQName(xsdSchema));
-          //items.add(typeDefinition.getQName(xsdSchema));
-        }
-      }
-      items.add(getPrefix(xsdSchema.getSchemaForSchemaNamespace(), true) + "anyType");
-      
-      //      items = addExternalImportedUserSimpleTypes(items);
-      items = (Vector) sortList(items);
-    }
-    return items;
-  }
-
-  public java.util.List getUserComplexTypeNamesList()
-  {
-    Vector items = new Vector();
-    if (xsdSchema != null)
-    {
-      updateExternalImportGlobals();
-      Iterator i = xsdSchema.getTypeDefinitions().iterator();
-      while (i.hasNext())
-      {
-        XSDTypeDefinition typeDefinition = (XSDTypeDefinition) i.next();
-        if (typeDefinition instanceof XSDComplexTypeDefinition)
-        {
-			    items.addAll(getPrefixedNames(typeDefinition.getTargetNamespace(), typeDefinition.getName()));         
-        }
-      }
-      // remove anyType since it's not user-defined
-      // items.add(getPrefix(xsdSchema.getSchemaForSchemaNamespace(), true) + "anyType");
-      //      items = addExternalImportedUserComplexTypes(items);
-      items = (Vector) sortList(items);
-    }
-    return items;
-  }
-
-  public String getPrefix(String ns, boolean withColon)
-  {
-    String key = "";
-
-    if (xsdSchema != null)
-    {
-      Map map = xsdSchema.getQNamePrefixToNamespaceMap();
-      Iterator iter = map.keySet().iterator();
-      while (iter.hasNext())
-      {
-        Object keyObj = iter.next();
-        Object value = map.get(keyObj);
-        if (value != null && value.toString().equals(ns))
-        {
-          if (keyObj != null)
-          {
-            key = keyObj.toString();
-          }
-          else
-          {
-            key = "";
-          }
-          break;
-        }
-      }
-      if (!key.equals(""))
-      {
-        if (withColon)
-        {
-          key = key + ":";
-        }
-      }
-    }
-    return key;
-  }
-
-  public java.util.List getGlobalElements()
-  {
-    Vector items = new Vector();
-    if (xsdSchema != null)
-    {
-      updateExternalImportGlobals();
-      if (xsdSchema.getElementDeclarations() != null)
-      {
-        Iterator i = xsdSchema.getElementDeclarations().iterator();
-        while (i.hasNext())
-        {
-          XSDElementDeclaration elementDeclaration = (XSDElementDeclaration) i.next();
-          String name = elementDeclaration.getQName(xsdSchema);
-          if (name != null)
-          {
-            items.add(name);
-          }
-        }
-      }
-      //      items = addExternalImportedGlobalElements(items);
-      items = (Vector) sortList(items);
-    }
-    return items;
-  }
-
-  public String getGlobalElement(XSDSchema relativeComponent)
-  {
-    if (xsdSchema != null)
-    {
-      updateExternalImportGlobals();
-      if (xsdSchema.getElementDeclarations() != null)
-      {
-        Iterator i = xsdSchema.getElementDeclarations().iterator();
-        while (i.hasNext()) // just get the first one
-        {
-          XSDElementDeclaration elementDeclaration = (XSDElementDeclaration) i.next();
-          if (elementDeclaration.getQName(relativeComponent) != null)
-          {
-            return elementDeclaration.getQName(relativeComponent);
-          }
-        }
-      }
-
-      Vector items = new Vector();
-      items = addExternalImportedGlobalElements(items);
-      if (items != null && items.size() > 0)
-      {
-        return items.get(0).toString();
-      }
-    }
-    return null; // for disabling menu
-  }
-
-  public java.util.List getGlobalAttributes()
-  {
-    Vector items = new Vector();
-    if (xsdSchema != null)
-    {
-      updateExternalImportGlobals();
-      if (xsdSchema.getAttributeDeclarations() != null)
-      {
-        Iterator i = xsdSchema.getAttributeDeclarations().iterator();
-        while (i.hasNext())
-        {
-          XSDAttributeDeclaration attributeDeclaration = (XSDAttributeDeclaration) i.next();
-          if (attributeDeclaration.getTargetNamespace() == null || (attributeDeclaration.getTargetNamespace() != null && !attributeDeclaration.getTargetNamespace().equals(XSDConstants.SCHEMA_INSTANCE_URI_2001)))
-          {
-            String name = attributeDeclaration.getQName(xsdSchema);
-            if (name != null)
-            {
-              items.add(name);
-            }
-          }
-        }
-      }
-      //      items = addExternalImportedAttributes(items);
-      items = (Vector) sortList(items);
-    }
-    return items;
-  }
-
-  public String getGlobalAttribute(XSDSchema relativeComponent)
-  {
-    if (xsdSchema != null)
-    {
-      updateExternalImportGlobals();
-      if (xsdSchema.getAttributeDeclarations() != null)
-      {
-        Iterator i = xsdSchema.getAttributeDeclarations().iterator();
-        while (i.hasNext()) // just get the first one
-        {
-          XSDAttributeDeclaration attributeDeclaration = (XSDAttributeDeclaration) i.next();
-          if (attributeDeclaration.getQName(relativeComponent) != null)
-          {
-            return attributeDeclaration.getQName(relativeComponent);
-          }
-        }
-      }
-
-      Vector items = new Vector();
-      items = addExternalImportedAttributes(items);
-      if (items != null && items.size() > 0)
-      {
-        return items.get(0).toString();
-      }
-    }
-    return null; // for disabling menu
-  }
-
-  public java.util.List getGlobalAttributeGroups()
-  {
-    Vector items = new Vector();
-    if (xsdSchema != null)
-    {
-      updateExternalImportGlobals();
-      if (xsdSchema.getAttributeGroupDefinitions() != null)
-      {
-        Iterator i = xsdSchema.getAttributeGroupDefinitions().iterator();
-        while (i.hasNext())
-        {
-          XSDAttributeGroupDefinition attributeGroupDefinition = (XSDAttributeGroupDefinition) i.next();
-          String name = attributeGroupDefinition.getQName(xsdSchema);
-          if (name != null)
-          {
-            items.add(name);
-          }
-        }
-      }
-      //      items = addExternalImportedAttributeGroups(items);
-      items = (Vector) sortList(items);
-    }
-    return items;
-  }
-
-  public String getGlobalAttributeGroup(XSDSchema relativeComponent)
-  {
-    if (xsdSchema != null)
-    {
-      updateExternalImportGlobals();
-      if (xsdSchema.getAttributeGroupDefinitions() != null)
-      {
-        Iterator i = xsdSchema.getAttributeGroupDefinitions().iterator();
-        while (i.hasNext()) // just get the first one
-        {
-          XSDAttributeGroupDefinition attributeGroupDefinition = (XSDAttributeGroupDefinition) i.next();
-          if (attributeGroupDefinition.getQName(relativeComponent) != null)
-          {
-            return attributeGroupDefinition.getQName(relativeComponent);
-          }
-        }
-      }
-
-      Vector items = new Vector();
-      items = addExternalImportedAttributeGroups(items);
-      if (items != null && items.size() > 0)
-      {
-        return items.get(0).toString();
-      }
-    }
-    return null; // for disabling menu
-  }
-
-  public java.util.List getModelGroups()
-  {
-    Vector items = new Vector();
-    if (xsdSchema != null)
-    {
-      updateExternalImportGlobals();
-      if (xsdSchema.getModelGroupDefinitions() != null)
-      {
-        Iterator i = xsdSchema.getModelGroupDefinitions().iterator();
-        while (i.hasNext())
-        {
-          XSDModelGroupDefinition modelGroupDefinition = (XSDModelGroupDefinition) i.next();
-          String name = modelGroupDefinition.getQName(xsdSchema);
-          if (name != null)
-          {
-            items.add(name);
-          }
-        }
-      }
-      //      items = addExternalImportedGroups(items);
-      items = (Vector) sortList(items);
-    }
-    return items;
-  }
-
-  public static java.util.List sortList(java.util.List types)
-  {
-    try
-    {
-      java.util.Collections.sort(types); // performance?  n*log(n)
-    }
-    catch (Exception e)
-    {
-//      XSDEditorPlugin.getPlugin().getMsgLogger().write("Sort failed");
-    }
-    return types;
-  }
-
-  public String getModelGroup(XSDSchema relativeComponent)
-  {
-    if (xsdSchema != null)
-    {
-      updateExternalImportGlobals();
-      if (xsdSchema.getModelGroupDefinitions() != null)
-      {
-        Iterator i = xsdSchema.getModelGroupDefinitions().iterator();
-        while (i.hasNext()) // just get the first one
-        {
-          XSDModelGroupDefinition modelGroupDefinition = (XSDModelGroupDefinition) i.next();
-          if (modelGroupDefinition.getQName(relativeComponent) != null)
-          {
-            return modelGroupDefinition.getQName(relativeComponent);
-          }
-        }
-      }
-
-      Vector items = new Vector();
-      items = addExternalImportedGroups(items);
-      if (items != null && items.size() > 0)
-      {
-        return items.get(0).toString();
-      }
-    }
-    return null; // for disabling menu
-  }
-
-  public void updateMapAfterDelete(XSDImport deletedNode)
-  {
-    String ns = deletedNode.getNamespace();
-    if (ns != null)
-    {
-      String prefix = getPrefix(ns, false);
-      if (prefix != null)
-      {
-        prefix = prefix.trim();
-      }
-      String xmlnsAttr = (prefix == "") ? "xmlns" : "xmlns:" + prefix;
-
-      if (prefix == "")
-      {
-        prefix = null;
-      }
-
-      if (xsdSchema != null)
-      {
-        Map map = xsdSchema.getQNamePrefixToNamespaceMap();
-        map.remove(prefix);
-        Element schemaElement = xsdSchema.getElement();
-        schemaElement.removeAttribute(xmlnsAttr);
-      }
-    }
-  }
-
-  public List getPrefixedNames(String namespace, String localName)
-  {
-    List list = new ArrayList();
-    if (namespace == null)
-    {
-      namespace = "";    			
-    }
-    if (xsdSchema != null && localName != null)
-    {
-      List prefixes = getPrefixesForNamespace(namespace);
-      for (Iterator i = prefixes.iterator(); i.hasNext(); )
-      {
-      	String prefix = (String)i.next();
-      	if (prefix == null) prefix = "";
-        String prefixedName = prefix.length() > 0 ? prefix + ":" + localName : localName;
-        list.add(prefixedName);               
-      }
-      if (prefixes.size() == 0)
-      {
-        list.add(localName);
-      }
-    }
-    return list;
-  }
-  
-  protected List getPrefixesForNamespace(String namespace)
-  {
-    List list = new ArrayList();
-    Map map = xsdSchema.getQNamePrefixToNamespaceMap();
-    boolean atLeastOnePrefixFound = false;
-    for (Iterator iter = map.keySet().iterator(); iter.hasNext();)
-    {
-      String prefix = (String) iter.next();
-      Object value = map.get(prefix);
-      if (value != null && value.toString().equals(namespace))
-      {
-       list.add(prefix);
-      }
-    }
-    return list;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/util/ViewUtility.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/util/ViewUtility.java
deleted file mode 100644
index 3e71a8a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/util/ViewUtility.java
+++ /dev/null
@@ -1,429 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.util;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-
-public class ViewUtility
-{
-  private static Font font;
-
-  public static Font getFont()
-  {
-    if (font == null)
-    {              
-      font = new Font(Display.getCurrent(), "ms sans serif", 8, SWT.NORMAL);  
-    }
-    return font;
-  }
-
-  public static void setFont(Font newFont)
-  {
-    font = newFont;
-  }
-
-  public static void setComposite(Composite comp)
-  {
-    // deprecated.  Remove later
-  }
-  public static Composite createComposite(Composite parent, int numColumns)
-  {
-    Composite composite = new Composite(parent, SWT.NONE);
-
-    composite.setFont(getFont());
-
-    GridLayout layout = new GridLayout();
-    layout.numColumns = numColumns;
-    composite.setLayout(layout);
-
-    GridData data = new GridData();
-    data.verticalAlignment = GridData.FILL;
-    data.horizontalAlignment = GridData.FILL;
-    composite.setLayoutData(data);
-    return composite;
-  }
-
-  public static Composite createComposite(Composite parent, int numColumns, boolean horizontalFill)
-  {
-    if (!horizontalFill)
-    {
-      createComposite(parent, numColumns);
-    }
-
-    Composite composite = new Composite(parent, SWT.NONE);
-
-    composite.setFont(getFont());
-
-    GridLayout layout = new GridLayout();
-    layout.numColumns = numColumns;
-    composite.setLayout(layout);
-
-    GridData data = new GridData();
-    data.verticalAlignment = GridData.FILL;
-    data.horizontalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = true;
-    composite.setLayoutData(data);
-
-    return composite;
-  }
-
-  public static Composite createComposite(Composite parent, int numColumns, boolean horizontalFill, boolean verticalFill)
-  {
-    if (!horizontalFill && !verticalFill)
-    {
-      createComposite(parent, numColumns);
-    }
-
-    Composite composite = new Composite(parent, SWT.NONE);
-
-    composite.setFont(getFont());
-
-    GridLayout layout = new GridLayout();
-    layout.numColumns = numColumns;
-    composite.setLayout(layout);
-
-    GridData data = new GridData();
-    data.verticalAlignment = GridData.FILL;
-    data.horizontalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = true;
-    data.grabExcessVerticalSpace = true;
-    composite.setLayoutData(data);
-
-    return composite;
-  }
-
-  public static Label createHorizontalFiller(Composite parent, int horizontalSpan) 
-  {
-    Label label = new Label(parent, SWT.LEFT);
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.horizontalSpan = horizontalSpan;
-    label.setLayoutData(data);
-    return label;
-  }
-
-  /**
-   * Helper method for creating labels.
-   */
-  public static Label createLabel(Composite parent, String text) 
-  {
-    Label label = new Label(parent, SWT.LEFT);
-    label.setText(text);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    label.setLayoutData(data);
-    return label;
-  }
-
-	public Label createLabel(Composite parent, int style, String text)
-	{
-		Label label = new Label(parent, style);
-//		setColor(label);
-		label.setText(text);
-
-		GridData data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		label.setLayoutData(data);
-		return label;
-	}
-  
-  public static Label createLabel(Composite parent, String text, int alignment)
-  {
-    Label label = new Label(parent, SWT.LEFT);
-    label.setText(text);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.verticalAlignment = alignment;
-    label.setLayoutData(data);
-    return label;
-  }
-
-  /**
-   * Helper method for creating buttons.
-   */
-  public static Button createPushButton(Composite parent, String label) 
-  {
-    Button button = new Button(parent, SWT.PUSH);
-    button.setText(label);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    button.setLayoutData(data);
-
-    return button;
-  }
-
-  public static Table createTable(Composite parent)
-  {
-    Table table = new Table(parent, SWT.SINGLE | SWT.BORDER);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = true;
-    table.setLayoutData(data);
-
-    return table;
-  }
-
-  /**
-   * Create radio button
-   */
-  public static Button createRadioButton(Composite parent, String label)
-  {
-    Button button = new Button(parent, SWT.RADIO);
-    button.setText(label);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    button.setLayoutData(data);
-
-    return button;
-  }
-
-  /**
-   * Helper method for creating check box
-   */
-  public static Button createCheckBox(Composite parent, String label) 
-  {
-    Button button = new Button(parent, SWT.CHECK);
-    button.setText(label);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    button.setLayoutData(data);
-    return button;
-  }
-
-  public static Combo createComboBox(Composite parent)
-  {
-    return createComboBox(parent, true);
-  }
-
-  public static Combo createComboBox(Composite parent, boolean isReadOnly)
-  {
-    int style = isReadOnly == true ? SWT.READ_ONLY : SWT.DROP_DOWN;
-
-    Combo combo = new Combo(parent, style);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = true;
-    combo.setLayoutData(data);
-    return combo;
-  }
-
-  public static List createListBox(Composite parent, int width, boolean isMultiSelect)
-  {
-    int style = isMultiSelect ? SWT.MULTI : SWT.SINGLE;
-    List list = new List(parent, style | SWT.BORDER);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = true;
-    data.widthHint = width;
-    list.setLayoutData(data);
-
-    return list;
-  }
-
-  public static List createListBox(Composite parent, int style)
-  {
-    List list = new List(parent, style);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.verticalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = true;
-    data.grabExcessVerticalSpace = true;
-    list.setLayoutData(data);
-
-    return list;
-  }
-
-	public Text createTextField(Composite parent)
-	{
-		Text text = new Text(parent, SWT.SINGLE | SWT.BORDER);
-		GridData data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.verticalAlignment = GridData.FILL;
-		data.grabExcessHorizontalSpace = true;
-		text.setLayoutData(data);
-//		text.addKeyListener(keyboardHandler);
-		return text;
-	}
-  
-  public static Text createTextField(Composite parent, int width)
-  {
-    Text text = new Text(parent, SWT.SINGLE | SWT.BORDER);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = true;
-    data.widthHint = width;
-    text.setLayoutData(data);
-
-    return text;
-  }
-
-  /**
-   * <code>createWrappedMultiTextField</code> creates a wrapped multitext field
-   *
-   * @param parent a <code>Composite</code> value
-   * @param width an <code>int</code> value
-   * @param numLines an <code>int</code> value representing number of characters in height
-   * @param verticalFill a <code>boolean</code> value
-   * @return a <code>Text</code> value
-   */
-  public static Text createWrappedMultiTextField(Composite parent, int width, int numLines, boolean verticalFill)
-  {
-    Text text = new Text(parent, SWT.MULTI | SWT.BORDER | SWT.WRAP | SWT.V_SCROLL);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = true;
-    if (verticalFill)
-    {
-      data.verticalAlignment = GridData.FILL;
-      data.grabExcessVerticalSpace = true;
-    }      
-    data.widthHint = width;
-    FontData[] fontData = getFont().getFontData();
-    // hack for now where on Windows, only 1 fontdata exists
-    data.heightHint = numLines * fontData[0].getHeight();
-    text.setLayoutData(data);
-
-    return text;
-  }
-
-  public static Text createMultiTextField(Composite parent, int width, int height, boolean verticalFill)
-  {
-    Text text = new Text(parent, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = true;
-    if (verticalFill)
-    {
-      data.verticalAlignment = GridData.FILL;
-      data.grabExcessVerticalSpace = true;
-    }      
-    data.widthHint = width;
-    data.heightHint = height;
-    text.setLayoutData(data);
-
-    return text;
-  }
-
-  public static Group createGroup(Composite parent, int numColumns, String text, boolean verticalFill) 
-  {
-    Group group = new Group(parent, SWT.SHADOW_ETCHED_IN);
-    group.setText(text);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = true;
-    if (verticalFill)
-    {
-      data.verticalAlignment = GridData.FILL;
-      data.grabExcessVerticalSpace = true;
-    }      
-    group.setLayoutData(data);
-
-    GridLayout layout = new GridLayout();
-    layout.numColumns = numColumns;
-    group.setLayout(layout);
-    return group;
-  }
-
- public static Group createGroup(Composite parent, int numColumns, String text, boolean verticalFill, int alignment) 
-  {
-    Group group = new Group(parent, SWT.SHADOW_ETCHED_IN);
-    group.setText(text);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = true;
-    data.verticalAlignment = alignment;
-    if (verticalFill)
-    {
-      data.verticalAlignment = GridData.FILL;
-      data.grabExcessVerticalSpace = true;
-    }      
-    group.setLayoutData(data);
-
-    GridLayout layout = new GridLayout();
-    layout.numColumns = numColumns;
-    group.setLayout(layout);
-    return group;
-  }
-
-  public static Label createVerticalFiller(Composite parent, int verticalSpan) 
-  {
-    Label label = new Label(parent, SWT.LEFT);
-    label.setFont(getFont());
-
-    GridData data = new GridData();
-    data.verticalAlignment = GridData.FILL;
-    data.verticalSpan = verticalSpan;
-    label.setLayoutData(data);
-
-    return label;
-  }
-
-  /**
-   * Creates a grid data object that occupies vertical and horizontal
-   * space.
-   */
-  static public GridData createFill()
-  {
-    GridData gd= new GridData();
-    gd.horizontalAlignment= GridData.FILL;
-    gd.grabExcessHorizontalSpace= true;
-    gd.verticalAlignment= GridData.FILL;
-    gd.grabExcessVerticalSpace= true;
-    return gd;
-  }
-  /**
-   * Creates a grid data object that occupies horizontal space.
-   */
-  static public GridData createHorizontalFill()
-  {
-    GridData gd= new GridData();
-    gd.horizontalAlignment= GridData.FILL;
-    gd.grabExcessHorizontalSpace= true;
-    return gd;
-  }
-  /**
-   * Creates a grid data object that occupies vertical space.
-   */
-  static public GridData createVerticalFill()
-  {
-    GridData gd= new GridData();
-    gd.verticalAlignment= GridData.FILL;
-    gd.grabExcessVerticalSpace= true;
-    return gd;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/util/XSDDOMHelper.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/util/XSDDOMHelper.java
deleted file mode 100644
index 4c84c36..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/util/XSDDOMHelper.java
+++ /dev/null
@@ -1,1103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.util;
-
-import org.eclipse.wst.sse.core.format.IStructuredFormatProcessor;
-import org.eclipse.wst.xml.core.document.XMLModel;
-import org.eclipse.wst.xml.core.document.XMLNode;
-import org.eclipse.wst.xml.core.format.FormatProcessorXML;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.Text;
-
-public class XSDDOMHelper
-{
-  public static final int LENGTH_FACET        =  1;
-  public static final int MIN_LENGTH_FACET    =  2;
-  public static final int MAX_LENGTH_FACET    =  3;
-  public static final int PATTERN_FACET       =  4;
-  public static final int ENUM_FACET          =  5;
-  public static final int WHITE_SPACE_FACET   =  6;
-
-  public static final int MAX_INCLUSIVE_FACET =  7;
-  public static final int MAX_EXCLUSIVE_FACET =  8;
-  public static final int MIN_INCLUSIVE_FACET =  9;
-  public static final int MIN_EXCLUSIVE_FACET =  10;
-
-  public static final int TOTAL_DIGITS_FACET     = 11;
-  public static final int FRACTION_DIGITS_FACET  = 12;
-
-  public static final int N_FACETS            = 13;
-
-  public static String[][] dataType =
-  {
-    //
-    // Table format:
-    // Type
-    //  Length, MinLength, MaxLength, Pattern, Enumeration,whiteSpace
-    //  MaxInclusive, MaxExclusive, MinInclusive, MinExclusive, TotalDigits, FractionDigits
-    //
-
-    // 0
-    { "anySimpleType",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-    },
-
-    // 1
-    { "anyType",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-    },
-
-
-    // 2
-    { "anyURI",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-        "N", "N", "N", "N", "N", "N",
-    },
-
-    // 3
-    { "base64Binary",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-        "N", "N", "N", "N", "N", "N",
-    },
-
-    // 4
-    { "boolean",
-        "N", "N", "N", "Y", "N", "Y",
-        "N", "N", "N", "N", "N", "N",
-    },
-
-    // 5
-    { "byte",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-    },
-
-    // 6
-    { "date",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "N", "N",
-    },
-
-    // 7
-    { "dateTime",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "N", "N",
-    },
-
-    // 8
-    { "decimal",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-    },
-
-
-    // 9
-    { "double",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "N", "N",
-    },
-
-    // 10
-    { "duration",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "N", "N",
-    },
-
-    // 11
-    { "ENTITY",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-        "N", "N", "N", "N", "N", "N",
-    },
-
-    // 12
-    { "ENTITIES",
-        "Y", "Y", "Y", "N", "Y", "Y",
-        "N", "N", "N", "N", "N", "N",
-    },
-
-    // 13
-    { "float",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "N", "N",
-    },
-
-    // 14
-    { "gDay",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "N", "N",
-    },
-
-    // 15
-    { "gMonth",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "N", "N",
-    },
-
-    // 16
-    { "gMonthDay",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "N", "N",
-    },
-
-    // 17
-    { "gYear",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "N", "N",
-    },
-
-    // 18
-    { "gYearMonth",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "N", "N",
-    },
-
-    // 19
-    { "hexBinary",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-        "N", "N", "N", "N", "N", "N",
-    },
-
-    // 20
-    { "ID",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-        "N", "N", "N", "N", "N", "N",
-    },
-
-    // 21
-    { "IDREF",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-        "N", "N", "N", "N", "N", "N",
-    },
-
-    // 22
-    { "IDREFS",
-        "Y", "Y", "Y", "N", "Y", "Y",
-        "N", "N", "N", "N", "N", "N",
-    },
-
-    // 23
-    { "int",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-    },
-
-    // 24
-    { "integer",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-    },
-
-    // 25
-    { "language",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-        "N", "N", "N", "N", "N", "N",
-    },
-
-    // 26
-    { "long",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-    },
-
-    // 27
-    { "Name",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-        "N", "N", "N", "N", "N", "N",
-    },
-
-
-    // 28
-    { "NCName",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-        "N", "N", "N", "N", "N", "N",
-    },
-
-    // 29
-    { "negativeInteger",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-    },
-
-    // 30
-    { "NMTOKEN",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-        "N", "N", "N", "N", "N", "N",
-    },
-
-    // 31
-    { "NMTOKENS",
-        "Y", "Y", "Y", "N", "Y", "Y",
-        "N", "N", "N", "N", "N", "N",
-    },
-
-    // 32
-    { "nonNegativeInteger",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-    },
-
-    // 33
-    { "nonPositiveInteger",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-    },
-
-    // 34
-    { "normalizedString",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-        "N", "N", "N", "N", "N", "N",
-
-    },
-
-    // 35
-    { "NOTATION",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-        "N", "N", "N", "N", "N", "N",
-
-    },
-
-    // 36
-    { "positiveInteger",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-    },
-
-    // 37
-    { "QName",
-        "N", "N", "N", "Y", "Y", "Y",
-        "N", "N", "N", "N", "N", "N",
-    },
-
-    // 38
-    { "short",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-    },
-
-    // 39
-    { "string",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-        "N", "N", "N", "N", "N", "N",
-    },
-
-    // 40
-    { "time",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "N", "N",
-    },
-
-    // 41
-    { "token",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-        "N", "N", "N", "N", "N", "N",
-    },
-
-    // 42
-    { "unsignedByte",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-    },
-
-    // 43
-    { "unsignedInt",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-    },
-
-    // 44
-    { "unsignedLong",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-    },
-
-    // 45
-    { "unsignedShort",
-        "N", "N", "N", "Y", "Y", "Y",
-        "Y", "Y", "Y", "Y", "Y", "Y",
-    },
-
-  };
-
-  public static String XMLSchemaURI = "http://www.w3.org/2001/XMLSchema";
-
-  /**
-   * Constructor for XSDDOMHelper.
-   */
-  public XSDDOMHelper()
-  {
-    super();
-  }
-
-  public Node getChildNode(Element parent, String childName)
-  {
-/*    NodeList nodeList = parent.getElementsByTagNameNS(XMLSchemaURI, childName);
-    if (nodeList.getLength() > 0)
-      return nodeList.item(0);
-    return null;
-*/
-    NodeList list = null;
-    if (parent != null)
-    {
-      list = parent.getChildNodes();
-    }
-   
-    String name = null;
-    if (list != null)
-    {
-      // Performance issue perhaps?
-      for (int i = 0; i < list.getLength(); i++)
-      {
-        if (list.item(i) instanceof Element)
-        {
-          if (list.item(i).getLocalName().equals(childName))
-          {
-            return list.item(i);
-          }
-        }
-      }
-    }
-    return null;
-  }
-
-  public static String SIMPLE_TYPE = "Simple";
-  public static String USER_SIMPLE_TYPE = "simpleType";
-  public static String USER_COMPLEX_TYPE = "complexType";
-/*
-  public void setElementType(Element element, String type)
-  {
-    Document doc = element.getOwnerDocument();
-    if (type.equals(SIMPLE_TYPE))
-    {
-      removeChild(element, USER_SIMPLE_TYPE);
-      removeChild(element, USER_COMPLEX_TYPE);
-      element.setAttribute("type","xsd:string");
-      return;
-    }
-    else if (type.equals(USER_SIMPLE_TYPE))
-    {
-      removeChild(element, USER_COMPLEX_TYPE);
-    }
-    else
-    {
-      removeChild(element, USER_SIMPLE_TYPE);
-    }
-    element.removeAttribute("type");
-    element.appendChild(doc.createElement("xsd:"+type));
-  }
-
-  public String getElementType(Element element)
-  {
-    String tagName = element.getLocalName();
-
-    if (tagName.equals(XSDConstants.ELEMENT_ELEMENT_TAG) ||
-        tagName.equals(XSDConstants.ATTRIBUTE_ELEMENT_TAG))
-    {
-      if (element.hasAttribute("type"))
-      {
-        return SIMPLE_TYPE;
-      }
-      NodeList nodes = element.getElementsByTagNameNS(XMLSchemaURI, USER_SIMPLE_TYPE);
-      if (nodes.getLength() > 0)
-      {
-        return USER_SIMPLE_TYPE;
-      }
-      nodes = element.getElementsByTagNameNS(XMLSchemaURI, USER_COMPLEX_TYPE);
-      if (nodes.getLength() > 0)
-      {
-        return USER_COMPLEX_TYPE;
-      }
-    }
-    return "";
-  }
-*/
-  public void removeDerivedByElement(Element element)
-  {
-    removeChild(element, XSDConstants.RESTRICTION_ELEMENT_TAG);
-    removeChild(element, XSDConstants.EXTENSION_ELEMENT_TAG);
-  }
-
-  public String getBaseType(Element element) // for SimpleContent and ComplexContent
-  {
-    Node restrictionChild = getChildNode(element, "restriction");
-    Node extensionChild = getChildNode(element, "extension");
-    String baseType = "";
-    if (restrictionChild != null)
-    {
-      if (restrictionChild instanceof Element)
-      {
-        baseType = ((Element)restrictionChild).getAttribute("base");
-//        String prefix = element.getPrefix();
-//        if (prefix != null && prefix.length() > 0)
-//        {
-//          baseType = baseType.substring(baseType.indexOf(prefix) + prefix.length() + 1);
-//        }
-      }
-    }
-    else if (extensionChild != null) // should be one or the other
-    {
-      if (extensionChild instanceof Element)
-      {
-        baseType = ((Element)extensionChild).getAttribute("base");
-//        String prefix = element.getPrefix();
-//        if (prefix != null && prefix.length() > 0)
-//        {
-//          baseType = baseType.substring(baseType.indexOf(prefix) + prefix.length() + 1);
-//        }
-      }
-    }
-    return baseType;
-  }
-
-  public void setDerivedByBaseType(Element element, String derivedByType, String type)
-  {
-    Document doc = element.getOwnerDocument();
-
-    Element derivedByElement = getDerivedByElement(element);
-    if (derivedByElement != null)
-    {
-      derivedByElement.setAttribute("base", type);
-    }
-    else  // there really should be one already...base is required.
-    {
-      Element newElement = doc.createElement(derivedByType);
-      newElement.setAttribute("base", type);
-      element.appendChild(newElement);
-    }
-  }
-
-  public void changeDerivedByType(Element element, String derivedByType, String type)
-  {
-    Document doc = element.getOwnerDocument();
-
-    String prefix = element.getPrefix();
-    prefix = prefix == null ? "" : prefix + ":";
-
-    Element derivedByElement = getDerivedByElement(element);
-    
-    if (derivedByElement.getLocalName().equals(derivedByType))
-    {
-    	return; // it's already the derived by type
-    }
-    Element newNode;
-  	if (derivedByType.equals("restriction"))
-  	{
-    	newNode = doc.createElementNS(XSDDOMHelper.XMLSchemaURI, prefix + XSDConstants.RESTRICTION_ELEMENT_TAG);
-    }
-    else
-    {
-    	newNode = doc.createElementNS(XSDDOMHelper.XMLSchemaURI, prefix + XSDConstants.EXTENSION_ELEMENT_TAG);
-    }
-
-    if (derivedByElement != null)
-    {
-      if (derivedByElement.hasChildNodes())
-      {        
-        NodeList nodes = derivedByElement.getChildNodes();
-        // use clones so we don't have a refresh problem
-        for (int i = 0; i < nodes.getLength(); i++)
-        {
-          Node node = nodes.item(i);       
-          newNode.appendChild(node.cloneNode(true));
-        }
-      }
-      newNode.setAttribute("base", type);
-      element.replaceChild(newNode, derivedByElement);
-
-    }
-  }
-
-  public void setSimpleContentType(Element element, String type)
-  {
-    String contentTypeName = element.getLocalName();
-
-    if (contentTypeName.equals(XSDConstants.UNION_ELEMENT_TAG))
-    {
-      element.setAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE, type);
-    }
-    else if (contentTypeName.equals(XSDConstants.LIST_ELEMENT_TAG))
-    {
-      element.setAttribute(XSDConstants.ITEMTYPE_ATTRIBUTE, type);
-    }
-    else if (contentTypeName.equals(XSDConstants.RESTRICTION_ELEMENT_TAG))
-    {
-      element.setAttribute(XSDConstants.BASE_ATTRIBUTE, type);
-    }
-  }
-
-  public void removeSimpleTypeContent(Element element)
-  {
-    String contentTypeName = element.getLocalName();
-    if (contentTypeName.equals(XSDConstants.UNION_ELEMENT_TAG))
-    {
-      element.removeAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE);
-    }
-    else if (contentTypeName.equals(XSDConstants.LIST_ELEMENT_TAG))
-    {
-      element.removeAttribute(XSDConstants.ITEMTYPE_ATTRIBUTE);
-    }
-    else if (contentTypeName.equals(XSDConstants.RESTRICTION_ELEMENT_TAG))
-    {
-      element.removeAttribute(XSDConstants.BASE_ATTRIBUTE);
-    }
-  }
-
-  public String getDerivedByName(Element element)
-  {
-    Node restrictionChild = getChildNode(element, "restriction");
-    Node extensionChild = getChildNode(element, "extension");
-    if (restrictionChild != null)
-    {
-      return "restriction";
-    }
-    if (extensionChild != null)
-    {
-      return "extension";
-    }
-    return "";
-  }
-
-  /**
-   * Get the derived by node given the complexContent or simpleContent node
-   */
-  public Element getDerivedByElement(Element element)
-  {
-    Node restrictionChild = getChildNode(element, "restriction");
-    Node extensionChild = getChildNode(element, "extension");
-    if (restrictionChild != null)
-    {
-      if (restrictionChild instanceof Element)
-      {
-        return (Element)restrictionChild;
-      }
-    }
-    
-    if (extensionChild != null)
-    {
-      if (extensionChild instanceof Element)
-      {
-        return (Element)extensionChild;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Get the derived by node given the ComplexType node
-   * Returns the first one, if say, the INVALID schema has more than one
-   */
-  public Element getDerivedByElementFromComplexType(Element element)
-  {
-    NodeList nl = element.getChildNodes();
-    int childNumber = 0;
-    int j = 0;
-    for (j = 0; j < nl.getLength(); j++)
-    {
-      Node aNode = nl.item(j);
-      if (inputEquals(aNode, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
-      {
-        break; 
-      }
-      else if (inputEquals(aNode, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
-      {
-        break;
-      }
-    }
-    Element derivedByNode = getDerivedByElement((Element)nl.item(j));
-    return derivedByNode;
-  }
-
-  /**
-   * Get the content model given the ComplexType node
-   * Returns the first one, if say, the INVALID schema has more than one
-   */
-  public Element getContentModelFromParent(Element element)
-  {
-    NodeList nl = element.getChildNodes();
-    int childNumber = 0;
-    int j = 0;
-    boolean modelExists = false;
-    int length = nl.getLength();
-    for (j = 0; j < length; j++)
-    {
-      Node aNode = nl.item(j);
-      if (inputEquals(aNode, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
-      {
-        modelExists = true;
-        break; 
-      }
-      else if (inputEquals(aNode, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
-      {
-        modelExists = true;
-        break;
-      }
-      else if (inputEquals(aNode, XSDConstants.SEQUENCE_ELEMENT_TAG, false))
-      {
-        modelExists = true;
-        break;
-      }
-      else if (inputEquals(aNode, XSDConstants.CHOICE_ELEMENT_TAG, false))
-      {
-        modelExists = true;
-        break;
-      }
-      else if (inputEquals(aNode, XSDConstants.ALL_ELEMENT_TAG, false))
-      {
-        modelExists = true;
-        break;
-      }
-    }
-    if (!modelExists)
-    {
-      return null;
-    }
-
-    Element derivedByNode = (Element)nl.item(j);
-    return derivedByNode;
-  }
-
-  /**
-   * 
-   */
-  public void changeContentModel(Element complexTypeElement, String contentModel, Element sequenceChoiceOrAllElement)
-  {
-    Document doc = complexTypeElement.getOwnerDocument();
-
-    String prefix = complexTypeElement.getPrefix();
-    prefix = prefix == null ? "" : prefix + ":";
-    
-    Element contentModelElement = getContentModelFromParent(complexTypeElement);
-
-    if (contentModelElement.getLocalName().equals(contentModel))
-    {
-      return; // it's already the content model 
-    }
-    Element newNode;
-    newNode = doc.createElementNS(XSDDOMHelper.XMLSchemaURI, prefix + contentModel);
-
-    if (contentModelElement.hasChildNodes())
-    {        
-      NodeList nodes = contentModelElement.getChildNodes();
-      // use clones so we don't have a refresh problem
-      for (int i = 0; i < nodes.getLength(); i++)
-      {
-        Node node = nodes.item(i);
-        if (node instanceof Element)
-        {
-          if (node.getLocalName().equals(XSDConstants.ANNOTATION_ELEMENT_TAG))
-          {
-            if (!(XSDDOMHelper.inputEquals(contentModelElement, XSDConstants.SEQUENCE_ELEMENT_TAG, false) ||
-                XSDDOMHelper.inputEquals(contentModelElement, XSDConstants.CHOICE_ELEMENT_TAG, false) ||
-                XSDDOMHelper.inputEquals(contentModelElement, XSDConstants.ALL_ELEMENT_TAG, false)))
-            {
-              newNode.appendChild(node.cloneNode(true));
-            }
-          }
-          else if (node.getLocalName().equals(XSDConstants.RESTRICTION_ELEMENT_TAG) ||
-                    node.getLocalName().equals(XSDConstants.EXTENSION_ELEMENT_TAG))
-          {
-            newNode.appendChild(node.cloneNode(true));
-            if (sequenceChoiceOrAllElement != null)
-            {
-              node.appendChild(sequenceChoiceOrAllElement);
-            }
-          }
-          else
-          {
-            removeNodeAndWhitespace(node);
-          }
-        }
-        else
-        {
-          newNode.appendChild(node.cloneNode(true)); 
-        }
-      }
-    }
-    complexTypeElement.replaceChild(newNode, contentModelElement);
-  }
-
-  public Element cloneElement(Element parent, Element sourceNode)
-  {
-    Document doc = parent.getOwnerDocument();
-    String prefix = parent.getPrefix();
-    prefix = prefix == null ? "" : prefix + ":";
-    
-    Element newNode = doc.createElementNS(XSDDOMHelper.XMLSchemaURI, prefix + sourceNode.getLocalName());
-
-    if (sourceNode.hasChildNodes())
-    {        
-      NodeList nodes = sourceNode.getChildNodes();
-      // use clones so we don't have a refresh problem
-      for (int i = 0; i < nodes.getLength(); i++)
-      {
-        Node node = nodes.item(i);
-        newNode.appendChild(node.cloneNode(true));
-      }
-    }
-    return newNode;
-//    parent.replaceChild(newNode, sourceNode);
-  }
-
-  public boolean hasElementChildren(Element parentNode)
-  {
-    boolean hasChildrenElements = false;
-    if (parentNode != null && parentNode.hasChildNodes())
-    {
-      NodeList nodes = parentNode.getChildNodes();
-      for (int i = 0; i < nodes.getLength(); i++)
-      {
-        if (nodes.item(i) instanceof Element)
-        {
-          hasChildrenElements = true;
-          break;
-        }
-      }
-    }
-    return hasChildrenElements;
-  }
-
-  public void removeChild(Element node, String childName)
-  {
-    Node child = getChildNode(node,childName);
-    if (child != null)
-    {
-      node.removeChild(child);
-    }
-  }
-
-  public static boolean isFacet(Object obj)
-  {
-    if (XSDDOMHelper.inputEquals(obj, XSDConstants.LENGTH_ELEMENT_TAG, false) ||
-        XSDDOMHelper.inputEquals(obj, XSDConstants.MINLENGTH_ELEMENT_TAG, false) ||
-        XSDDOMHelper.inputEquals(obj, XSDConstants.MAXLENGTH_ELEMENT_TAG, false) ||
-        XSDDOMHelper.inputEquals(obj, XSDConstants.WHITESPACE_ELEMENT_TAG, false) ||
-        XSDDOMHelper.inputEquals(obj, XSDConstants.MAXINCLUSIVE_ELEMENT_TAG, false) ||
-        XSDDOMHelper.inputEquals(obj, XSDConstants.MAXEXCLUSIVE_ELEMENT_TAG, false) ||
-        XSDDOMHelper.inputEquals(obj, XSDConstants.MININCLUSIVE_ELEMENT_TAG, false) ||
-        XSDDOMHelper.inputEquals(obj, XSDConstants.MINEXCLUSIVE_ELEMENT_TAG, false) ||
-        XSDDOMHelper.inputEquals(obj, XSDConstants.TOTALDIGITS_ELEMENT_TAG, false) ||
-        XSDDOMHelper.inputEquals(obj, XSDConstants.FRACTIONDIGITS_ELEMENT_TAG, false))
-    {
-      return true;
-    }
-    return false;
-  }
-
-  public static void removeNodeAndWhitespace(Node node)
-  {
-    Node parentNode = node.getParentNode();
-    
-    Node nextElement = getNextElementNode(node);
-    Node previousElement = getPreviousElementNode(node);
-
-    Node nextSibling = node.getNextSibling();
-    if (nextSibling instanceof Text)
-    {
-      parentNode.removeChild(nextSibling);
-    }
-    Node previousSibling = node.getPreviousSibling();
-
-		parentNode.removeChild(node);
-
-    if (nextElement != null)
-    {
-			formatChild(nextElement);
-    }
-
-		if (previousElement != null)
-		{
-			formatChild(previousElement);
-		}
-  }
-
-	public static void formatChild(Node child)
-	{
-    if (child instanceof XMLNode)
-    {
-      XMLModel model = ((XMLNode)child).getModel();
-      try
-      {
-        // tell the model that we are about to make a big model change
-        model.aboutToChangeModel();
-        
-	      IStructuredFormatProcessor formatProcessor = new FormatProcessorXML();
-		    formatProcessor.formatNode(child);
-      }
-      finally
-      {
-        // tell the model that we are done with the big model change
-        model.changedModel(); 
-      }
-    }
-  }
-  
-  public static Node getLastElementNode(Node parent)
-  {
-    Node lastChild = parent.getLastChild();
-    
-    while (!(lastChild instanceof Element) && lastChild != null)
-    {
-      lastChild = lastChild.getPreviousSibling();
-    }
-    return lastChild;
-  }
-
-  public static Node getNextElementNode(Node node)
-  {
-    Node next = node.getNextSibling();
-    
-    while (!(next instanceof Element) && next != null)
-    {
-      next = next.getNextSibling();
-    }
-    if (next instanceof Text)
-    {
-    	return null;
-    }
-    return next;
-  }
-
-	public static Node getPreviousElementNode(Node node)
-	{
-		Node previous = node.getPreviousSibling();
-    
-		while (!(previous instanceof Element) && previous != null)
-		{
-			previous = previous.getPreviousSibling();
-		}
-    if (previous instanceof Text)
-    {
-      return null;
-    }
-    return previous;
-	}
-
-  public static void moveNode(Node referenceNode, Node nodeToMove, boolean isBefore)
-  {
-    // this assumes that the referenceNode and node to move have the same parent
-    Node parent = referenceNode.getParentNode();
-
-    // Get reference nodes next and previous text strings
-    String referenceNodeNextString = "";
-    String referenceNodePreviousString = "";
-    if (referenceNode != null)
-    {
-      Node referenceNodeNextSibling = referenceNode.getNextSibling();
-      Node referenceNodePreviousSibling = referenceNode.getPreviousSibling();
-      if (referenceNodeNextSibling instanceof Text)
-      {
-        referenceNodeNextString = ((Text)referenceNodeNextSibling).getData();
-      }
-      if (referenceNodePreviousSibling instanceof Text)
-      {
-        referenceNodePreviousString = ((Text)referenceNodePreviousSibling).getData();
-      }
-    }
-    // Get the dragged node's next and previous text strings
-    Node nodeToMoveNextSibling = nodeToMove.getNextSibling();
-    Node nodeToMovePreviousSibling = nodeToMove.getPreviousSibling();
-    Node nodeToMoveNextText = null;
-    String nodeToMoveNextString = "";
-    String nodeToMovePreviousString = "";
-    if (nodeToMoveNextSibling instanceof Text)
-    {
-      nodeToMoveNextText = (Text)nodeToMoveNextSibling;
-      nodeToMoveNextString = ((Text)nodeToMoveNextSibling).getData();
-    }
-    if (nodeToMovePreviousSibling instanceof Text)
-    {
-      nodeToMovePreviousString = ((Text)nodeToMovePreviousSibling).getData();
-    }
-
-    // Get the last element's next and previous text strings
-    Node lastElement = getLastElementNode(parent);
-    Node lastElementNextSibling = lastElement.getNextSibling();
-    Node lastElementPreviousSibling = lastElement.getPreviousSibling();
-    String lastElementNextString = "";
-    String lastElementPreviousString = "";		
-    if (lastElementNextSibling instanceof Text)
-    {
-      lastElementNextString = ((Text)lastElementNextSibling).getData();
-    }
-    if (lastElementPreviousSibling instanceof Text)
-    {
-      lastElementPreviousString = ((Text)lastElementPreviousSibling).getData();
-    }
-
-    boolean isLastElement = false; // whether the last element is dragged/moved
-    if (lastElement == nodeToMove)
-    {
-      isLastElement = true;
-    }
-		
-    // defect 221056 this test is required or else the node will
-    // be removed from the tree and the insert will fail
-    if (referenceNode != nodeToMove)
-    {
-      parent.removeChild(nodeToMove);
-      if (referenceNode != null)
-      {
-        if (!isBefore)
-        {
-          referenceNode = getNextElementNode(referenceNode);
-//        referenceNode = referenceNode.getNextSibling();
-        }
-      }
-
-      if (referenceNode != null)
-      {
-        insertBefore(nodeToMove, referenceNode);
-      }
-      else
-      {
-        parent.appendChild(nodeToMove);
-      }
-
-      Node newLastElement = getLastElementNode(parent);
-      if (referenceNode != null)
-      {
-        if (referenceNode != newLastElement) 
-        {
-          if (!isLastElement)
-          {
-            setTextData(referenceNode, nodeToMoveNextString, nodeToMovePreviousString);
-          }
-        }
-        setTextData(nodeToMove, referenceNodeNextString, referenceNodePreviousString);
-      }
-      // Remove the empty space left by the dragged node
-      if (nodeToMoveNextText != null)
-      {
-    	  parent.removeChild(nodeToMoveNextText);
-      }
-      // special case for the last element
-      if ((newLastElement == nodeToMove) || isLastElement)
-      {
-        setTextData(newLastElement, lastElementNextString, lastElementPreviousString);
-      }
-    }
-  }
-
-  public static void setTextData(Node target, String nextText, String previousText)
-  {
-    Node parent = target.getParentNode();
-    Node nextSibling = target.getNextSibling();
-    Node previousSibling = target.getPreviousSibling();
-    if (nextSibling instanceof Text)
-    {
-      ((Text)nextSibling).setData(nextText);	
-    }
-    if (nextSibling == null || nextSibling instanceof Element)
-    {
-      Text textNode = parent.getOwnerDocument().createTextNode("");
-      textNode.setData(nextText);
-      if (nextSibling != null)
-      {
-        parent.insertBefore(textNode, nextSibling);
-      }
-      else
-      {
-        parent.insertBefore(textNode, getNextElementNode(target));
-      }
-    }				
-
-    if (previousSibling instanceof Text)
-    {
-      ((Text)previousSibling).setData(previousText);
-    }
-    if (previousSibling == null || previousSibling instanceof Element)
-    {
-      Text textNode = parent.getOwnerDocument().createTextNode("");
-      textNode.setData(previousText);
-      parent.insertBefore(textNode, target);
-    }				
-  }
-
-  public static void insertBefore(Node nodeToInsert, Node referenceNode)
-  {
-    // this assumes that the referenceNode and node to move have the same parent
-    Node parent = referenceNode.getParentNode();
-
-    Node previousSibling = referenceNode.getPreviousSibling();
-    parent.insertBefore(nodeToInsert, referenceNode);
-  }
-
-  public static boolean inputEquals(Object input, String tagname, boolean isRef)
-  {
-    if (input instanceof Element)
-    {
-      Element element = (Element) input;
-      if (element.getLocalName().equals(tagname))
-      {
-        boolean refPresent = element.hasAttribute("ref");
-
-        return refPresent == isRef;
-      }
-    }
-    return false;
-  }
-
-  public static void updateElementToNotAnonymous(Element element)
-  {
-    if (element != null)
-    {
-      NodeList children = element.getChildNodes();
-      if (children != null)
-      {
-        for (int i = 0; i < children.getLength(); i++)
-        {
-          Node node = (Node)children.item(i);
-          if (node instanceof Element)
-          {
-            if (node.getLocalName().equals(XSDConstants.SIMPLETYPE_ELEMENT_TAG) ||
-                node.getLocalName().equals(XSDConstants.COMPLEXTYPE_ELEMENT_TAG))
-            {
-              XSDDOMHelper.removeNodeAndWhitespace(node);
-              i=0;
-            }
-          }
-        }
-      }
-    }
-  }
-  
-  public static boolean isAttributeRef(Element ct, String attrName, String ns)
-  {
-    NodeList list = ct.getChildNodes();
-    int length = list.getLength();
-    for (int i = 0; i < length; i++)
-    {
-      if (list.item(i) instanceof Element)
-      {
-        Element aChild = (Element)list.item(i);
-        if (aChild.getLocalName().equals(XSDConstants.ATTRIBUTE_ELEMENT_TAG))
-        {
-          if (aChild.hasAttribute(XSDConstants.REF_ATTRIBUTE))
-          {
-            String refValue = aChild.getAttribute(XSDConstants.REF_ATTRIBUTE);
-            if (refValue.equals(attrName))
-            {
-              return true;
-            }
-          }
-        }
-      }
-      
-    }
-    
-    return false;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/util/XSDSchemaHelper.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/util/XSDSchemaHelper.java
deleted file mode 100644
index a57e619..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/util/XSDSchemaHelper.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.util;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.xsd.XSDConcreteComponent;
-
-// TODO: KC remove this
-
-public class XSDSchemaHelper
-{
-  /**
-   * Constructor for XSDSchemaHelper.
-   */
-  public XSDSchemaHelper()
-  {
-    super();
-  }
-  
-  public static void updateElement(XSDConcreteComponent concreteComp)
-  {
-    try
-    {
-      concreteComp.updateElement();
-    }
-    catch (Exception e)
-    {
-      for (Iterator containments = concreteComp.eClass().getEAllReferences().iterator(); containments.hasNext(); )
-      {
-        EReference eReference = (EReference)containments.next();
-        if (eReference.isContainment())
-        {
-          if (eReference.isMany())
-          {
-            for (Iterator objects = ((Collection)concreteComp.eGet(eReference)).iterator(); objects.hasNext(); )
-            {
-              XSDConcreteComponent xsdConcreteComponent = (XSDConcreteComponent)objects.next();
-              try
-              {
-                xsdConcreteComponent.updateElement();
-              }
-              catch (Exception ex) {}
-            }
-          }
-          else
-          {
-            XSDConcreteComponent xsdConcreteComponent = (XSDConcreteComponent)concreteComp.eGet(eReference);
-            if (xsdConcreteComponent != null)
-            {
-              try
-              {
-                xsdConcreteComponent.updateElement();
-              }
-              catch (Exception ex) {}
-            }
-          }
-        }
-      }
-    }
-  }    
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/widgets/EnumerationsDialog.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/widgets/EnumerationsDialog.java
deleted file mode 100644
index eba2c64..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/widgets/EnumerationsDialog.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.widgets;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-
-
-/**
- * Dialog to help define a list of enumerations
- * for a join. This might be replaced once we know how to
- * initiate a drag tracker
- */
-
-public class EnumerationsDialog extends org.eclipse.jface.dialogs.Dialog
-{
-  public EnumerationsDialog(Shell shell)
-  {
-    super(shell);
-  }
-
-  protected void configureShell(Shell shell)
-  {
-    super.configureShell(shell);
-    shell.setText(XSDEditorPlugin.getXSDString("_UI_ENUMERATIONS_DIALOG_TITLE"));
-  }
-
-  protected void buttonPressed(int buttonId)
-  {
-    if (buttonId == Dialog.OK)
-    {
-      text = textField.getText();
-      delimiter = delimiterField.getText();
-      isPreserve = preserveWhitespace.getSelection();
-    }
-    super.buttonPressed(buttonId);
-  }
-
-  private String text, delimiter;
-  private boolean isPreserve;
-  public String getText() { return text; }
-  public String getDelimiter() { return delimiter; }
-  public boolean isPreserveWhitespace() { return isPreserve; }
-
-  private Text textField;
-  private Button preserveWhitespace;
-  private Combo delimiterField;
-  //
-  // Create the controls
-  //
-  public Control createDialogArea(Composite parent)
-  {
-    Control[] tabOrder = new Control[3];
-  	int tabIndex = 0;
-    Composite client = (Composite)super.createDialogArea(parent);
-    GridLayout layout = (GridLayout)client.getLayout();
-    layout.numColumns = 2;
-    client.setLayout(layout); 
-
-    textField = ViewUtility.createWrappedMultiTextField(client, 400, 20, true);
-    GridData gd = (GridData) textField.getLayoutData();
-    gd.horizontalSpan = 2;
-    tabOrder[tabIndex++] = textField;
-
-    ViewUtility.createLabel(client, XSDEditorPlugin.getXSDString("_UI_LABEL_DELIMITER_CHAR"));
-    delimiterField = ViewUtility.createComboBox(client, false);
-    gd = (GridData) delimiterField.getLayoutData();
-    gd.grabExcessHorizontalSpace = false;
-    gd.horizontalAlignment = GridData.BEGINNING;
-    gd.widthHint = 30;
-    tabOrder[tabIndex++] = delimiterField;
-
-    // add default delimiters
-    delimiterField.add(":");
-    delimiterField.add(",");
-    delimiterField.add(" ");
-    // set the current one to be ','
-    delimiterField.setText(",");
-
-    preserveWhitespace = ViewUtility.createCheckBox(client, XSDEditorPlugin.getXSDString("_UI_LABEL_PRESERVE_WHITESPACE"));
-    gd = (GridData) preserveWhitespace.getLayoutData();
-    gd.horizontalSpan = 2;
-    tabOrder[tabIndex++] = preserveWhitespace;
-    
-    client.setTabList(tabOrder);
-
-    return client;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/widgets/SetBaseTypeDialog.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/widgets/SetBaseTypeDialog.java
deleted file mode 100644
index d054648..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/widgets/SetBaseTypeDialog.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.widgets;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-
-
-public class SetBaseTypeDialog extends Dialog implements SelectionListener
-{
-  protected Combo baseTypeCombo;
-  protected Combo derivedByCombo;
-  protected XSDSchema xsdSchema;
-  protected Element element;  // the complex type element
-  private String type = "";
-  private String derivedByString = "";
-  
-  /**
-   * Constructor for SetBaseTypeDialog.
-   * @param arg0
-   */
-  public SetBaseTypeDialog(Shell arg0, XSDSchema xsdSchema, Element element)
-  {
-    super(arg0);
-    this.xsdSchema = xsdSchema;
-    this.element = element;
-  }
-
-  protected void configureShell(Shell shell)
-  {
-    super.configureShell(shell);
-    shell.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_SET_BASE_TYPE"));
-  }
-
-
-  protected void buttonPressed(int buttonId)
-  {
-    if (buttonId == Dialog.OK)
-    {
-      type = baseTypeCombo.getText();
-      derivedByString = derivedByCombo.getText();
-    }
-    super.buttonPressed(buttonId);
-  }
-  
-  public String getBaseType()
-  {
-    return type;
-  }
-
-  public String getDerivedBy()
-  {
-    return derivedByString;
-  }
-  
-  public void setCurrentBaseType(String type)
-  {
-    this.type = type;
-  }
-  
-  public void setCurrentDerivedBy(String derivedByString)
-  {
-    this.derivedByString = derivedByString;
-  }
-
-  //
-  // Create the controls
-  //
-  public Control createDialogArea(Composite parent)
-  {
-    Composite nameComposite = (Composite)super.createDialogArea(parent);
-    GridLayout layout = (GridLayout)nameComposite.getLayout();
-    layout.numColumns = 2;
-    nameComposite.setLayout(layout); 
-
-    ViewUtility utility = new ViewUtility();
-
-    ViewUtility.createLabel(nameComposite, XSDEditorPlugin.getXSDString("_UI_LABEL_BASE_TYPE_WITH_COLON"));
-    baseTypeCombo = ViewUtility.createComboBox(nameComposite, true); // readonly
-    baseTypeCombo.addSelectionListener(this);
-    
-    ViewUtility.createLabel(nameComposite, XSDEditorPlugin.getXSDString("_UI_LABEL_DERIVED_BY")); 
-    derivedByCombo = ViewUtility.createComboBox(nameComposite, true); // readonly
-
-    derivedByCombo.add(XSDConstants.EXTENSION_ELEMENT_TAG);
-    derivedByCombo.add(XSDConstants.RESTRICTION_ELEMENT_TAG);
-    derivedByCombo.setText(derivedByString);
-    initializeBaseTypeCombo();
-
-    if (type.equals(""))
-    {
-      derivedByCombo.setText("");
-      derivedByCombo.setEnabled(false);
-    }
-        
-    return nameComposite;
-  }
-
-  private void initializeBaseTypeCombo()
-  {
-    ArrayList list = new ArrayList();
-    TypesHelper helper = new TypesHelper(xsdSchema);
-
-    String prefix = helper.getPrefix(xsdSchema.getTargetNamespace(), true);
-
-    list.add("");
-    list.addAll(helper.getBuiltInTypeNamesList());
-    list.addAll(helper.getUserSimpleTypeNamesList());
-    list.addAll(helper.getUserComplexTypeNamesList());
-
-    // remove the current CT from the list
-    list.remove(prefix + element.getAttribute("name"));
-
-    baseTypeCombo.removeAll();
-    for (int i = 0; i < list.size(); i++)
-    {
-      baseTypeCombo.add(list.get(i).toString());
-    }
-    baseTypeCombo.setText(type);
-    handleBaseTypeComboChange();
-  }
-  
-  private void handleBaseTypeComboChange()
-  {
-    String tempChoice = baseTypeCombo.getText();
-    TypesHelper helper = new TypesHelper(xsdSchema);
-    if (helper.getBuiltInTypeNamesList().contains(tempChoice) ||
-        helper.getUserSimpleTypeNamesList().contains(tempChoice))
-    {
-      derivedByCombo.setText(XSDConstants.EXTENSION_ELEMENT_TAG);
-      derivedByCombo.setEnabled(false);
-    }
-    else if (helper.getUserComplexTypeNamesList().contains(tempChoice))
-    {
-      derivedByCombo.setEnabled(true); 
-    }
-    else
-    {
-      derivedByCombo.setText("");
-      derivedByCombo.setEnabled(false); 
-    }
-  }
-
-  public void widgetSelected(SelectionEvent e)
-  {
-    if (e.widget == baseTypeCombo)
-    {
-      handleBaseTypeComboChange();
-    }
-    
-  }
-
-  public void widgetDefaultSelected(SelectionEvent e)
-  {
-    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/widgets/TypeSection.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/widgets/TypeSection.java
deleted file mode 100644
index 6a111fb..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/widgets/TypeSection.java
+++ /dev/null
@@ -1,340 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.widgets;
-
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorContextIds;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-import org.eclipse.xsd.XSDSchema;
-
-public class TypeSection
-{
-  /**
-   * Constructor for TypeSection.
-   * @param parent
-   */
-  public TypeSection(Composite parent)
-  {
-  }
-
-  protected Button  simpleType;
-  protected Button  userSimpleType;
-  protected Button  userComplexType;
-  protected Button  noneRadio;
-  protected Combo   typeList;
-  protected Combo   derivedByCombo;
-  protected boolean showUserComplexType = true;
-  protected boolean showUserSimpleType  = true;
-  protected boolean showNone            = false;
-  protected boolean showDerivedBy       = false;
-  protected String  derivedByChoices[]  = { "restriction", "extension" };
-  public final int  NONE                = 1;
-  public final int  BUILT_IN            = 2;
-  public final int  SIMPLE              = 3;
-  public final int  COMPLEX             = 4;
-
-  String            sectionTitle        = XSDEditorPlugin.getXSDString("_UI_LABEL_TYPE_INFORMATION");
-  String            currentObjectUuid   = "";
-
-  /*
-   * @see FlatPageSection#createClient(Composite, WidgetFactory)
-   */
-  public Composite createClient(Composite parent)
-  {
-    //	FlatViewUtility utility = new FlatViewUtility(XSDEditor.isFlatLook());
-    ViewUtility utility = new ViewUtility();
-
-    // Composite client = utility.createComposite(parent, 1);
-    Composite client = new Composite(parent, SWT.NONE);
-    GridLayout gl = new GridLayout(1, true);
-    gl.verticalSpacing = 0;
-    client.setLayout(gl);
-
-    if (showNone)
-    {
-      noneRadio = ViewUtility.createRadioButton(client, XSDEditorPlugin.getXSDString("_UI_RADIO_NONE"));
-      WorkbenchHelp.setHelp(noneRadio, XSDEditorContextIds.XSDE_TYPE_HELPER_NONE);
-    }
-
-    simpleType = ViewUtility.createRadioButton(client, XSDEditorPlugin.getXSDString("_UI_RADIO_BUILT_IN_SIMPLE_TYPE"));
-    WorkbenchHelp.setHelp(simpleType, XSDEditorContextIds.XSDE_TYPE_HELPER_BUILT_IN);
-
-    if (showUserSimpleType)
-    {
-      userSimpleType = ViewUtility.createRadioButton(client, XSDEditorPlugin.getXSDString("_UI_RADIO_USER_DEFINED_SIMPLE_TYPE"));
-      WorkbenchHelp.setHelp(userSimpleType, XSDEditorContextIds.XSDE_TYPE_HELPER_USER_DEFINED_SIMPLE);
-    }
-
-    if (showUserComplexType)
-    {
-      userComplexType = ViewUtility.createRadioButton(client, XSDEditorPlugin.getXSDString("_UI_RADIO_USER_DEFINED_COMPLEX_TYPE"));
-      WorkbenchHelp.setHelp(userComplexType, XSDEditorContextIds.XSDE_TYPE_HELPER_USER_DEFINED_COMPLEX);
-    }
-
-    //	  typeList = utility.createComboBox(client);
-    //	  WorkbenchHelp.setHelp(typeList, XSDEditorContextIds.XSDE_TYPE_HELPER_TYPE);
-    //    utility.createHeadingLabel(client, "Type",null);
-
-    if (showDerivedBy)
-    {
-      Composite derivedByComposite = ViewUtility.createComposite(client, 2);
-      Label derivedByLabel = ViewUtility.createLabel(derivedByComposite, XSDEditorPlugin.getXSDString("_UI_LABEL_DERIVED_BY"));
-      derivedByCombo = ViewUtility.createComboBox(derivedByComposite);
-      populateDerivedByCombo();
-      WorkbenchHelp.setHelp(derivedByCombo, XSDEditorContextIds.XSDE_SIMPLE_CONTENT_DERIVED);
-      derivedByCombo.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_DERIVED_BY"));
-    }
-    // Set the default selection
-    if (showNone)
-    {
-      //		noneRadio.setSelection(true);
-      //		typeList.setEnabled(false);
-    }
-    else
-    {
-      simpleType.setSelection(true);
-    }
-    return client;
-  }
-
-  public void setIsDerivedBy(boolean derive)
-  {
-    if (derive)
-    {
-      sectionTitle = XSDEditorPlugin.getXSDString("_UI_LABEL_BASE_TYPE");
-    }
-    else
-    {
-      sectionTitle = XSDEditorPlugin.getXSDString("_UI_LABEL_TYPE_INFORMATION");
-    }
-    //	setHeaderText(sectionTitle);
-  }
-
-  /**
-   * Set to true if called by Complex Type & Simple Type
-   */
-  public void setShowDerivedBy(boolean derive)
-  {
-    showDerivedBy = derive;
-  }
-
-  /**
-   * Gets the derivedByField
-   * @return Returns a Button
-   */
-  public Combo getDerivedByCombo()
-  {
-    return derivedByCombo;
-  }
-
-  /**
-   * Gets the noneRadio.
-   * @return Returns a Button
-   */
-  public Button getNoneRadio()
-  {
-    return noneRadio;
-  }
-
-  /**
-   * Gets the simpleType.
-   * @return Returns a Button
-   */
-  public Button getSimpleType()
-  {
-    return simpleType;
-  }
-
-  /**
-   * Gets the userComplexType.
-   * @return Returns a Button
-   */
-  public Button getUserComplexType()
-  {
-    return userComplexType;
-  }
-
-  /**
-   * Gets the userSimpleType.
-   * @return Returns a Button
-   */
-  public Button getUserSimpleType()
-  {
-    return userSimpleType;
-  }
-
-  /**
-   * Gets the typeList.
-   * @return Returns a CCombo
-   */
-  public Combo getTypeList()
-  {
-    return typeList;
-  }
-
-  /**
-   * Populate combo box with built-in simple types
-   */
-  public void populateBuiltInType(XSDSchema xsdSchema)
-  {
-    getTypeList().removeAll();
-    List items = getBuiltInTypeNamesList(xsdSchema);
-    for (int i = 0; i < items.size(); i++)
-    {
-      getTypeList().add(items.get(i).toString());
-    }
-  }
-
-  public java.util.List getBuiltInTypeNamesList(XSDSchema xsdSchema)
-  {
-    TypesHelper helper = new TypesHelper(xsdSchema);
-    return helper.getBuiltInTypeNamesList();
-  }
-
-  /**
-   * Populate combo box with user defined complex types
-   */
-  public void populateUserComplexType(XSDSchema xsdSchema, boolean showAnonymous)
-  {
-    getTypeList().removeAll();
-    if (showAnonymous)
-    {
-      getTypeList().add(XSDEditorPlugin.getXSDString("_UI_ANONYMOUS"));
-    }
-
-    List items = getUserComplexTypeNamesList(xsdSchema);
-    for (int i = 0; i < items.size(); i++)
-    {
-      getTypeList().add(items.get(i).toString());
-    }
-  }
-
-  public java.util.List getUserComplexTypeNamesList(XSDSchema xsdSchema)
-  {
-    TypesHelper helper = new TypesHelper(xsdSchema);
-    return helper.getUserComplexTypeNamesList();
-  }
-
-  public void populateUserSimpleType(XSDSchema xsdSchema, boolean showAnonymous)
-  {
-    getTypeList().removeAll();
-    if (showAnonymous)
-    {
-      getTypeList().add(XSDEditorPlugin.getXSDString("_UI_ANONYMOUS"));
-    }
-    List items = getUserSimpleTypeNamesList(xsdSchema);
-    for (int i = 0; i < items.size(); i++)
-    {
-      getTypeList().add(items.get(i).toString());
-    }
-  }
-
-  /**
-   * Populate combo box with user defined simple types
-   */
-  public void populateUserSimpleType(XSDSchema xsdSchema)
-  {
-    getTypeList().removeAll();
-    List items = getUserSimpleTypeNamesList(xsdSchema);
-    for (int i = 0; i < items.size(); i++)
-    {
-      getTypeList().add(items.get(i).toString());
-    }
-  }
-
-  public java.util.List getUserSimpleTypeNamesList(XSDSchema xsdSchema)
-  {
-    TypesHelper helper = new TypesHelper(xsdSchema);
-    return helper.getUserSimpleTypeNamesList();
-  }
-
-  public String getPrefix(String ns, XSDSchema xsdSchema)
-  {
-    TypesHelper helper = new TypesHelper(xsdSchema);
-    String key = helper.getPrefix(ns, true);
-    return key;
-  }
-
-  /**
-   * Populate combo box with derived by choices
-   */
-  protected void populateDerivedByCombo()
-  {
-    for (int i = 0; i < derivedByChoices.length; i++)
-    {
-      getDerivedByCombo().add(derivedByChoices[i]);
-    }
-  }
-
-  /**
-   * Gets the showUserComplexType.
-   * @return Returns a boolean
-   */
-  public boolean getShowUserComplexType()
-  {
-    return showUserComplexType;
-  }
-
-  /**
-   * Gets the showUserSimpleType.
-   * @return Returns a boolean
-   */
-  public boolean getShowUserSimpleType()
-  {
-    return showUserSimpleType;
-  }
-
-  /**
-   * Gets the showNone.
-   * @return Returns a boolean
-   */
-  public boolean getShowNone()
-  {
-    return showNone;
-  }
-
-  /**
-   * Sets the showUserComplexType.
-   * @param showUserComplexType The showUserComplexType to set
-   */
-  public void setShowUserComplexType(boolean showUserComplexType)
-  {
-    this.showUserComplexType = showUserComplexType;
-  }
-
-  /**
-   * Sets the showUserSimpleType.
-   * @param showUserSimpleType The showUserSimpleType to set
-   */
-  public void setShowUserSimpleType(boolean showUserSimpleType)
-  {
-    this.showUserSimpleType = showUserSimpleType;
-  }
-
-  /**
-   * Sets the showNone
-   * @param showUserSimpleType The showNone to set
-   */
-  public void setShowNone(boolean showNone)
-  {
-    this.showNone = showNone;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/widgets/XSDEditSchemaInfoDialog.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/widgets/XSDEditSchemaInfoDialog.java
deleted file mode 100644
index 77a8e57..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/widgets/XSDEditSchemaInfoDialog.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.widgets;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.wst.xml.ui.dialogs.EditSchemaInfoDialog;
-import org.eclipse.wst.xml.ui.nsedit.CommonEditNamespacesTargetFieldDialog;
-
-public class XSDEditSchemaInfoDialog extends EditSchemaInfoDialog {
-	String targetNamespace;
-	CommonEditNamespacesTargetFieldDialog editNamespacesControl;
-	
-	public XSDEditSchemaInfoDialog(Shell parentShell, IPath resourceLocation, String targetNamespace) {
-		super(parentShell, resourceLocation);
-		this.targetNamespace = targetNamespace;
-	}
-/*
-	// in super
-	protected CommonEditNamespacesDialog createCommonEditNamespacesDialog(Composite dialogArea)
-	{
-	  return new CommonEditNamespacesDialog(dialogArea, resourceLocation, XMLUIPlugin.getResourceString("%_UI_NAMESPACE_DECLARATIONS"), false, true); //$NON-NLS-1$				
-	}
-	
-	// in super
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogArea = (Composite) super.createDialogArea(parent);
-		CommonEditNamespacesDialog editNamespacesControl = createCommonEditNamespacesDialog(dialogArea); 
-		editNamespacesControl.setNamespaceInfoList(namespaceInfoList);
-		editNamespacesControl.updateErrorMessage(namespaceInfoList);
-		return dialogArea;
-	}
-	
-	// in this
-	protected CommonEditNamespacesDialog createCommonEditNamespacesDialog(Composite dialogArea)
-	{
-	  return new CommonEditNamespacesTargetFieldDialog(dialogArea, resourceLocation); //$NON-NLS-1$				
-	}	*/
-	
-	// this is copy of ....
-    protected Control __internalCreateDialogArea(Composite parent) {
-        // create a composite with standard margins and spacing
-        Composite composite = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
-        layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
-        layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
-        layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
-        composite.setLayout(layout);
-        composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-        applyDialogFont(composite);
-        return composite;
-    }	
-	
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogArea = (Composite) __internalCreateDialogArea(parent);
-		editNamespacesControl = new CommonEditNamespacesTargetFieldDialog(dialogArea, resourceLocation); //$NON-NLS-1$
-		if (targetNamespace != null)
-		{	
-			editNamespacesControl.setTargetNamespace(targetNamespace);
-		}
-		editNamespacesControl.setNamespaceInfoList(namespaceInfoList);
-		editNamespacesControl.updateErrorMessage(namespaceInfoList);
-		return dialogArea;
-	}	
-	
-	public String getTargetNamespace() {
-		return editNamespacesControl.getTargetNamespace();
-	}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/NewXSDWizard.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/NewXSDWizard.java
deleted file mode 100644
index 2073036..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/NewXSDWizard.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.wizards;
-
-import java.io.ByteArrayInputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.part.ISetSelectionTarget;
-import org.eclipse.wst.sse.core.preferences.CommonModelPreferenceNames;
-import org.eclipse.wst.xml.core.XMLModelPlugin;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-
-
-public class NewXSDWizard extends Wizard implements INewWizard
-{
-  private XSDNewFilePage newFilePage;
-  private IStructuredSelection selection;
-  private IWorkbench workbench;
-
-  public NewXSDWizard()
-  {   
-  }
-
-  public void init(IWorkbench aWorkbench, IStructuredSelection aSelection)
-  {
-    this.selection = aSelection;
-    this.workbench = aWorkbench;
-
-    this.setDefaultPageImageDescriptor(ImageDescriptor.createFromFile(XSDEditorPlugin.class, "icons/NewXSD.gif"));
-    this.setWindowTitle(XSDEditorPlugin.getXSDString("_UI_WIZARD_CREATE_XSD_MODEL_TITLE"));
-  }
-
-  public void addPages()
-  {
-    newFilePage = new XSDNewFilePage(selection);
-    addPage(newFilePage);
-  }
-
-  public boolean performFinish()
-  {
-    IFile file = newFilePage.createNewFile();
-    
-    //
-    // Get the xsd schema name from the full path name
-    //   e.g. f:/b2b/po.xsd => schema name = po
-    //
-    IPath iPath = file.getFullPath().removeFileExtension();
-    // String schemaName = iPath.lastSegment();
-    String schemaName = iPath.lastSegment();
-    String schemaPrefix = "tns";
-    String prefixForSchemaNamespace = "";
-    String schemaNamespaceAttribute = "xmlns";
-    if (XSDEditorPlugin.getPlugin().isQualifyXMLSchemaLanguage())
-    {
-      // Added this if check before disallowing blank prefixes in the preferences...
-      // Can take this out.  See also XSDEditor
-      if (XSDEditorPlugin.getPlugin().getXMLSchemaPrefix().trim().length() > 0)
-      {
-        prefixForSchemaNamespace = XSDEditorPlugin.getPlugin().getXMLSchemaPrefix() + ":";
-        schemaNamespaceAttribute += ":" + XSDEditorPlugin.getPlugin().getXMLSchemaPrefix();
-      }
-    }
-    
-    Preferences preference = XMLModelPlugin.getDefault().getPluginPreferences();
-	String charSet = preference.getString(CommonModelPreferenceNames.OUTPUT_CODESET);
-     if (charSet == null || charSet.trim().equals(""))
-    {
-    	charSet = "UTF-8";
-    }
-
-    String newContents = "<?xml version=\"1.0\" encoding=\"" + charSet + "\"?>\n";
-     
-    String defaultTargetURI = XSDEditorPlugin.getPlugin().getXMLSchemaTargetNamespace();
-    newContents += "<" + prefixForSchemaNamespace + "schema " + schemaNamespaceAttribute + "=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"" + defaultTargetURI + schemaName + "\" xmlns:" + schemaPrefix + "=\""+ defaultTargetURI + schemaName + "\">\n</"+prefixForSchemaNamespace+"schema>";
-
-    try
-    {
-      byte[] bytes = newContents.getBytes(charSet);
-      ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes);
-      
-      file.setContents(inputStream,true,false,null);
-      inputStream.close();
-    }
-    catch (Exception e)
-    {
-//      XSDEditorPlugin.getPlugin().getMsgLogger().write("Error writing default content:\n" + newContents);      
-//      XSDEditorPlugin.getPlugin().getMsgLogger().write(e);
-    }
-
-    if (file != null)
-    {
-      revealSelection(new StructuredSelection(file));
-    }
-    
-    openEditor(file);
-
-    return true;
-  }
-
-  private void revealSelection(final ISelection selection)
-  {
-    if (selection != null)
-    {
-      IWorkbench workbench = XSDEditorPlugin.getPlugin().getWorkbench();
-      final IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-      final IWorkbenchPart focusPart = workbenchWindow.getActivePage().getActivePart();
-      if (focusPart instanceof ISetSelectionTarget)
-      {
-        Display.getCurrent().asyncExec
-        (new Runnable()
-            {
-          public void run()
-          {
-            ((ISetSelectionTarget)focusPart).selectReveal(selection);
-          }
-        });
-      }
-    }
-  }
-
-  public void openEditor(final IFile iFile)
-  {
-    if (iFile != null)
-    {
-      IWorkbench workbench = XSDEditorPlugin.getPlugin().getWorkbench();
-      final IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-
-      Display.getDefault().asyncExec
-      (new Runnable()
-          {
-        public void run()
-        {
-          try
-          {
-            IEditorPart editorPart = workbenchWindow.getActivePage().openEditor(new FileEditorInput(iFile), XSDEditorPlugin.XSD_EDITOR_ID);
-          }
-          catch (PartInitException ex)
-          {
-          }
-        }
-      });
-    }
-  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/RegexCompositionPage.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/RegexCompositionPage.java
deleted file mode 100644
index 75ea9ae..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/RegexCompositionPage.java
+++ /dev/null
@@ -1,965 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-// Based on version 1.12 of original xsdeditor
-package org.eclipse.wst.xsd.ui.internal.wizards;
-
-import java.util.regex.Pattern;
-import java.util.regex.PatternSyntaxException;
-
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorContextIds;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-import org.eclipse.xsd.XSDPatternFacet;
-
-
-
-/*
--other regex features (eg case sensitivity, ^ or $, |, etc etc)
--smarter model
--better keyboard navigation
--update list of tokens 
-*/
-
-public class RegexCompositionPage extends WizardPage
-{
-  private static final boolean debug = false;
-
-  /* The text representation of our pattern. */
-  private StyledText value; 
-
-  /* The StyleRange used to color code the current parse error. */
-  private StyleRange currentError;
-
-  /* The regex terms we can form tokens from. */
-  private Combo terms;
-
-  /* The checkbox for activating auto-escape mode. */  
-  private Button escapeCheckbox;
-  
-  /* On/off status of auto-escape mode. */ 
-  private boolean autoEscapeStatus;
-
-  /* The Add Token button. */
-  private Button add;
-
-
-  // The following controls are used in the occurrence selection group
-
-  private Text repeatValue;
-
-  private Text rangeMinValue;
-  private Text rangeMaxValue;
-  private Label rangeToLabel;  
-
-  private Button singleRadio;
-  private Button starRadio;
-  private Button plusRadio;
-  private Button optionalRadio; 
-  private Button repeatRadio;
-  private Button rangeRadio;
-
-  
-  // The following variables used as part of the model. 
-
-  /* Our pattern. */
-  private XSDPatternFacet pattern;
-
-  /* Model used to store the current token. */
-  private RegexNode node;    
-
-  /* Validator from the xerces regex package. */
-  //private RegularExpression validator;
-  private Pattern validator;
-
-  /* The flags passed to the new RegularExpression object.  Default value includes:
-      X = XMLSchema mode    */
-  private String regexFlags = "X";
-      
-
-  /* Is the current regex token valid? */
-  private boolean isValidToken;
-
-  /* The label used to indicate the value's caret position when it looses focus. */
-  private Label caretLabel;
-
-  /* The pixel offsets needed to align the label icon with the caret location.
-     These are dependent on the icon used. */
-  private static final int CARET_LABEL_X_OFFSET = -3;
-  private static final int CARET_LABEL_Y_OFFSET = 19;
-
-  
-  /* Enumerated constants for specifying the type of an error message. */
-  private static final int TOKEN = 0;
-  private static final int SELECTION = 1;
-  private static final int PARSE = 2;
-  
-  private static final int NUM_ERROR_MESSAGE_TYPES = 3;
-  
-  /* The current error message for each type of error.  A value of null indicates no message. 
-     The array is indexed according to the above constants.
-  */
-  private String[] currentErrorMessages;
-
-
-  public RegexCompositionPage(XSDPatternFacet pattern)
-  {
-    super(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_COMPOSITION_PAGE_TITLE"));
-    this.pattern = pattern;
-
-    setTitle(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_COMPOSITION_PAGE_TITLE"));
-    setDescription(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_COMPOSITION_PAGE_DESCRIPTION"));
-  }
-
-  public void createControl(Composite parent)
-  {
-    // Set up our model and validator
-    node = new RegexNode();
-    // validator = new RegularExpression("", regexFlags);
-        
-    isValidToken = true;
-
-    currentErrorMessages = new String[NUM_ERROR_MESSAGE_TYPES];
-
-    // The main composite
-    Composite composite= new Composite(parent, SWT.NONE);
-    WorkbenchHelp.setHelp(composite, XSDEditorContextIds.XSDR_COMPOSITION_PAGE);
-    composite.setLayout(new GridLayout());
-
-
-    // The composite for the token combo box, label, and auto-escape checkbox
-    Composite tokenComposite = new Composite (composite, SWT.NONE);
-    GridLayout tokenCompositeLayout = new GridLayout();
-    tokenCompositeLayout.numColumns = 3;
-    tokenCompositeLayout.marginWidth = 0;
-    tokenComposite.setLayout(tokenCompositeLayout);
-
-
-    new Label(tokenComposite, SWT.LEFT).setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TOKEN_LABEL"));
-    
-    terms = new Combo(tokenComposite, SWT.DROP_DOWN);
-    WorkbenchHelp.setHelp(terms, XSDEditorContextIds.XSDR_COMPOSITION_TOKEN);
-    for (int i = 0; i < RegexNode.getNumRegexTerms(); i++)
-    {
-      terms.add(RegexNode.getRegexTermText(i));
-    }
-    terms.addListener(SWT.Modify, new ComboListener());
-    terms.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_REGEX_WIZARD_TERMS"));
-
-    escapeCheckbox = new Button(tokenComposite, SWT.CHECK);
-    escapeCheckbox.setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_AUTO_ESCAPE_CHECKBOX_LABEL"));
-    escapeCheckbox.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_REGEX_WIZARD_AUTO_ESCAPE_CHECKBOX")); 
-    escapeCheckbox.addSelectionListener(new CheckboxListener());
-    autoEscapeStatus = false;
-    
-    tokenComposite.pack();
-
-
-    // Set up the composites pertaining to the selection of occurrence quantifiers
-
-    Group occurrenceSelectionArea = new Group(composite, SWT.NONE);
-    occurrenceSelectionArea.setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_OCCURENCE_LABEL"));
-    WorkbenchHelp.setHelp(occurrenceSelectionArea, XSDEditorContextIds.XSDR_COMPOSITION_OCCURRENCE_GROUP);
-    GridLayout selectionAreaLayout = new GridLayout();
-    selectionAreaLayout.numColumns = 2;
-    occurrenceSelectionArea.setLayout(selectionAreaLayout);
-
-    // Listener used for all of the text fields
-    TextListener textListener = new TextListener();
-    
-
-    // Add the radio buttons
-    RadioSelectListener radioSelectListener = new RadioSelectListener();
-
-    singleRadio = addOccurenceRadioButton(RegexNode.SINGLE, occurrenceSelectionArea, radioSelectListener);
-    WorkbenchHelp.setHelp(singleRadio, XSDEditorContextIds.XSDR_COMPOSITION_JUST_ONCE);
-    ViewUtility.createHorizontalFiller(occurrenceSelectionArea, 1);
-
-    starRadio = addOccurenceRadioButton(RegexNode.STAR, occurrenceSelectionArea, radioSelectListener);
-    WorkbenchHelp.setHelp(starRadio, XSDEditorContextIds.XSDR_COMPOSITION_ZERO_OR_MORE);
-    ViewUtility.createHorizontalFiller(occurrenceSelectionArea, 1);
-
-    plusRadio = addOccurenceRadioButton(RegexNode.PLUS, occurrenceSelectionArea, radioSelectListener);
-    WorkbenchHelp.setHelp(plusRadio, XSDEditorContextIds.XSDR_COMPOSITION_ONE_OR_MORE);
-    ViewUtility.createHorizontalFiller(occurrenceSelectionArea, 1);
-
-    optionalRadio = addOccurenceRadioButton(RegexNode.OPTIONAL, occurrenceSelectionArea, radioSelectListener);
-    WorkbenchHelp.setHelp(optionalRadio, XSDEditorContextIds.XSDR_COMPOSITION_OPTIONAL);
-    ViewUtility.createHorizontalFiller(occurrenceSelectionArea, 1);
-
-    repeatRadio = addOccurenceRadioButton(RegexNode.REPEAT, occurrenceSelectionArea, radioSelectListener);
-    WorkbenchHelp.setHelp(repeatRadio, XSDEditorContextIds.XSDR_COMPOSITION_REPEAT);
-
-    // Add text field for specifying number of repeats
-    Composite repeatWidgets = new Composite(occurrenceSelectionArea, SWT.NONE);
-    RowLayout repeatWidgetsLayout = new RowLayout();
-    repeatWidgetsLayout.marginTop = 0;
-    repeatWidgetsLayout.marginBottom = 0;
-    repeatWidgetsLayout.marginLeft = 0;
-    repeatWidgetsLayout.marginRight = 0;
-    repeatWidgets.setLayout(repeatWidgetsLayout);        
-    
-    repeatValue = new Text(repeatWidgets, SWT.SINGLE | SWT.BORDER);
-    repeatValue.addListener(SWT.Modify, textListener);
-    WorkbenchHelp.setHelp(repeatValue, XSDEditorContextIds.XSDR_COMPOSITION_REPEAT_TEXT);
-    repeatValue.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_REGEX_WIZARD_REPEAT"));
-    setEnabledStatus(RegexNode.REPEAT, false);
-    
-    repeatWidgets.pack();
-    
-    rangeRadio = addOccurenceRadioButton(RegexNode.RANGE, occurrenceSelectionArea, radioSelectListener);
-    WorkbenchHelp.setHelp(rangeRadio, XSDEditorContextIds.XSDR_COMPOSITION_RANGE);
-
-    // Add text fields and labels for specifying the range    
-    Composite rangeWidgets = new Composite(occurrenceSelectionArea, SWT.NONE);
-    RowLayout rangeWidgetsLayout = new RowLayout();
-    rangeWidgetsLayout.marginTop = 0;
-    rangeWidgetsLayout.marginBottom = 0;
-    rangeWidgetsLayout.marginLeft = 0;
-    rangeWidgetsLayout.marginRight = 0;
-    rangeWidgets.setLayout(rangeWidgetsLayout);
-    
-    rangeMinValue = new Text(rangeWidgets, SWT.SINGLE | SWT.BORDER);
-    rangeMinValue.addListener(SWT.Modify, textListener);
-    WorkbenchHelp.setHelp(rangeMinValue, XSDEditorContextIds.XSDR_COMPOSITION_RANGE_MIN);
-    rangeMinValue.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_REGEX_WIZARD_MIN"));
-    
-    rangeToLabel = new Label(rangeWidgets, SWT.NONE);
-    rangeToLabel.setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TO_LABEL"));
-    
-    rangeMaxValue = new Text(rangeWidgets, SWT.SINGLE | SWT.BORDER);
-    rangeMaxValue.addListener(SWT.Modify, textListener);
-    rangeMaxValue.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_REGEX_WIZARD_MAX"));
-    WorkbenchHelp.setHelp(rangeMaxValue, XSDEditorContextIds.XSDR_COMPOSITION_RANGE_MAX);
-
-    setEnabledStatus(RegexNode.RANGE, false);
-    rangeWidgets.pack();
-    
-    singleRadio.setSelection(true);
-    
-    occurrenceSelectionArea.pack();
-
-    // The add button
-    add = new Button(composite, SWT.PUSH);
-    add.addSelectionListener(new ButtonSelectListener());
-    add.setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_ADD_BUTTON_LABEL"));
-    WorkbenchHelp.setHelp(add, XSDEditorContextIds.XSDR_COMPOSITION_ADD);
-    add.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_REGEX_WIZARD_ADD_BUTTON"));
-
-    
-    Label separator = new Label(composite, SWT.SEPARATOR | SWT.HORIZONTAL);
-    separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-    
-    // Our main text box
-
-    Label valueLabel= new Label(composite, SWT.LEFT);
-    valueLabel.setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_CURRENT_REGEX_LABEL"));
-    
-    value = new StyledText(composite, SWT.SINGLE | SWT.BORDER);
-    value.addListener(SWT.Modify, textListener);
-    value.addListener(SWT.Selection, textListener);
-    WorkbenchHelp.setHelp(value, XSDEditorContextIds.XSDR_COMPOSITION_CURRENT);
-    value.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_REGEX_WIZARD_CURRENT_REGEX"));
-    value.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-    value.setFocus();
-
-    // StyleRange used for highlighting parse errors
-    currentError = new StyleRange();
-    currentError.length = 1;
-    currentError.foreground = parent.getDisplay().getSystemColor(SWT.COLOR_RED);
-
-    // The caret label
-    caretLabel = new Label(composite, SWT.LEFT);
-    caretLabel.setImage(XSDEditorPlugin.getXSDImage("icons/RegexWizardArrow.gif"));
-    caretLabel.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_REGEX_WIZARD_CARET_LABEL"));
-    setShowCaretLabel(true);
-
-    value.addFocusListener(new TextFocusListener());
-
-    terms.select(0);
-
-
-    setControl(composite);
-  }
-
-
-  public void setVisible(boolean visible)
-  {
-    super.setVisible(visible);
-
-    value.setText(pattern.getLexicalValue());
-    value.setCaretOffset(value.getCharCount());
-  }
-
-  public void dispose()
-  {
-    super.dispose();
-  }
-
-
-  /**
-   * Sets the visible status of caretLabel to status.  If status is true, then we also update the position
-   * of caretLabel in one of two ways.  If there is no active selection in value, we set caretLabel's
-   * position to correspond with the position of the actual caret.  Alternatively, if there is an active selection
-   * in value, we set caretLabel's position to the beginning of the selection.
-   *
-   * @param The new visibility status of caretLabel.
-   */
-  private void setShowCaretLabel(boolean status)
-  {
-    if (status)
-    {
-  
-      int offset;
-      
-      if (value.getSelectionText().equals(""))
-      {
-        offset = value.getCaretOffset();
-      }
-      else
-      {
-        offset = value.getSelection().x;
-      }
-  
-      Point p = value.getLocationAtOffset(offset);
-      
-      p.x += value.getLocation().x;
-      p.y = value.getLocation().y;
-      
-      // Place the label under value, and make sure it is aligned with the caret.
-      // The offsets are dependent on the icon used.
-      p.x += CARET_LABEL_X_OFFSET;
-      p.y += CARET_LABEL_Y_OFFSET;
-  
-      if (debug)
-      {
-        System.out.println("POINT: " + p);
-      }
-      
-      caretLabel.setLocation(p);
-      caretLabel.setVisible(true);
-    }
-    else
-    {
-      caretLabel.setVisible(false);
-    }
-  }
-
-
-  /**
-   * Adds a new radio button to Composite c with SelectionListener l.  The text of the button is the String associated with
-   * quantifier.
-   *
-   * @param quantifier The desired quantifier, as enumerated in RegexNode.
-   * @param c The Composite to add the buttons to (normally occurrenceRadioButtons).
-   * @param l The SelectionListener (normally radioSelectionListener).
-   * @return The newly created button.
-   */
-  private Button addOccurenceRadioButton(int quantifier, Composite c, SelectionListener l)
-  {
-    Button result = new Button(c, SWT.RADIO);
-    result.setText(RegexNode.getQuantifierText(quantifier));
-    result.addSelectionListener(l);
-    return result;
-  }
-
-
-  /**
-   * Validates the regex in value.  If the regex is valid, clears the Wizard's error message.  If it's not valid,
-   *  sets the Wizard's error message accordingly.
-   *
-   * @return Whether the regex is valid.
-   */
-  private boolean validateRegex()
-  {
-
-    boolean isValid;
-    try
-    {
-      // We validate the regex by checking whether we get a ParseException.
-      // By default, we assume that it's valid unless we determine otherwise.
-      isValid = true;
-      displayRegexErrorMessage(null);
-      value.setStyleRange(null);
-
-      // validator.setPattern(value.getText());
-      validator = Pattern.compile(value.getText());
-    }
-    // catch (ParseException pe)
-    catch (PatternSyntaxException pe)
-    {
-      isValid = false;
-      displayRegexErrorMessage(pe.getMessage());
-
-      // An off-by-one bug in the xerces regex parser will sometimes return a location for the parseError that
-      //  is off the end of the string.  If this is the case, then we want to highlight the last character.
-      if (pe.getIndex() >= value.getText().length())
-      {
-        currentError.start = value.getText().length() - 1;
-      }
-      else
-      {
-        currentError.start = pe.getIndex();
-      }
-
-      if (debug)
-      {
-        System.out.println("Parse Error location: " + pe.getIndex());
-        System.out.println("currentError.start: " + currentError.start);
-      }
-
-      value.setStyleRange(currentError);
-
-    }
-
-    // Another bug in the xerces parser will sometimes throw a RuntimeException instead of a ParseException.
-    //  When we get a RuntimeException, we aren't provided with the additional information we need to highlight
-    //  the parse error.  So, we merely report that there is an error.
-    catch (RuntimeException re)
-    {
-      displayRegexErrorMessage("");
-      value.setStyleRange(null);
-      isValid = false;
-    }
-    
-    setPageComplete(isValid);    
-    return isValid;
-  }
-
-  
-  /**
-   * Manages the display of error messages.
-   * Sets the error message for type to errorMessage.  If errorMessage != null, then we set the Wizard's error message
-   * to errorMessage.  If errorMessage == null, then we check whether we have a pending message of another type.
-   * If we do, then it is displayed as the Wizard's error message.  If we don't, then the Wizard's error message field
-   * is cleared.
-   *
-   * @param errorMessage The text of the new error message.  A value of null indicates that the error message should
-   *  be cleared.
-   * @param type The error type, one of PARSE, TOKEN, or SELECTION.
-   */ 
-  private void displayErrorMessage(String errorMessage, int type)
-  {
-    String messageToDisplay = null;
-
-
-    currentErrorMessages[type] = errorMessage;
-
-    messageToDisplay = errorMessage;
-
-    for (int i = 0; i < NUM_ERROR_MESSAGE_TYPES; i++)
-    {
-      if (messageToDisplay != null)
-      {
-        break;
-      }
-      messageToDisplay = currentErrorMessages[i];
-    }
-
-    setErrorMessage(messageToDisplay);
-  }
-
-
-  /**
-   * Sets the Wizard's error message to message, preceded by a standard prefix.
-   *
-   * @param message The new error message (or null to clear it).
-   */
-  private void displayRegexErrorMessage (String errorMessage)
-  {
-    if (errorMessage == null)
-    {
-      displayErrorMessage(null, PARSE);
-    }
-    else
-    {
-    	if (errorMessage.trim().equals("")) // when there is no error message available.
-    	{
-        displayErrorMessage(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_INVALID_REGEX_ERROR"),
-                           PARSE);
-      }
-      else
-      {
-        displayErrorMessage(errorMessage, PARSE);
-      }
-    }
-  }
-
-
-  /**
-   * Updates the token status.  Sets isValidToken to status && the status of the other error type.
-   * If status is true, we clear the wizard's error message for this type; if it is false, we set it to errorMessage.
-   *
-   * @param status The new isValidToken value.
-   * @param errorMessage The new error message.
-   * @param type The type of the error (either TOKEN or SELECTION).
-   */
-  private void setTokenStatus (boolean status, String errorMessage, int type)
-  {
-    boolean otherTypeStatus =     (type == TOKEN) ? 
-                                  currentErrorMessages[SELECTION] == null :
-                                  currentErrorMessages[TOKEN] == null;
-    
-    isValidToken = status && otherTypeStatus;
-    add.setEnabled(isValidToken);
-
-    if (status)
-    {
-      displayErrorMessage(null, type);
-    }
-    else
-    {
-    	if (errorMessage != null && errorMessage.trim().equals("")) // when there is no error message available.
-    	{
-        displayErrorMessage(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_INVALID_TOKEN_ERROR"),
-                           type);
-      }
-      else
-      {
-        displayErrorMessage(errorMessage, type);
-      }
-    }
-  }
-
-  
-  /**
-   * Updates the token status.  Sets isValidToken to status && the status of the other error type.
-   * Also clears the wizard's error message for this type.
-   * Usually used to set isValidToken to true.
-   *
-   * @param status The new isValidToken value.
-   * @param type The type of the error (either TOKEN or SELECTION).
-   */
-  private void setTokenStatus(boolean status, int type)
-  {
-    setTokenStatus(status, null, type);
-  }
-
-
-
-  /**
-   * Sets the enabled status of the text fields and labels associated with the specified quantifier.
-   * If status is true, then fields and labels associated with other quantifiers are disabled.
-   * @param quantifier The quantifier whose elements' enabled status we wish to change
-   *   (as enumerated in RegexNode).
-   * @param status The new status of the elements.  If true, then all elements associated with other buttons
-   *               are disabled.
-   */    
-  private void setEnabledStatus(int quantifier, boolean status)
-  {
-    switch (quantifier)
-    {
-    
-    case RegexNode.REPEAT:
-      repeatValue.setEnabled(status);
-      if (status)
-      {
-        rangeMinValue.setEnabled(false);
-        rangeMaxValue.setEnabled(false);
-        rangeToLabel.setEnabled(false);
-      }
-      break;
-
-    case RegexNode.RANGE:
-      rangeMinValue.setEnabled(status);
-      rangeMaxValue.setEnabled(status);
-      rangeToLabel.setEnabled(status);
-      if (status)
-      {
-        repeatValue.setEnabled(false);
-      }
-      break;
-
-    }
-  }
-
-  /**
-   * Checks to see if there is a selection in value.  If there is not, we set the Wizard's error message accordingly.
-   * If there is, we update the contents of node.  If "Current Selection" is not the current token, then
-   * we clear the Selection error message.
-   */
-  private void updateCurrentSelectionStatus()
-  {
-    if (terms.getSelectionIndex() == RegexNode.SELECTION)
-    {
-      String selection = value.getSelectionText();
-      if (selection.equals(""))
-      {
-        setTokenStatus(false, XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_INVALID_SELECTION_ERROR"), SELECTION);
-      }
-      else
-      {
-        setTokenStatus(true, SELECTION);
-        node.setContents(selection);
-        node.setHasParens(true);
-      }
-    }
-    else
-    {
-      setTokenStatus(true, SELECTION);
-    }
-  }
-
-  /**
-   * Updates the enabled status of the auto-escape checkbox.  If status is true, we enable the checkbox, and
-   * set its selection status and node's auto-escape status to the value of autoEscapeStatus.  If status is
-   * false, then we disable and deselect the checkbox, and set node's status to false.
-   *
-   * @param status The new enabled status.
-   */
-  private void setEscapeCheckboxEnabledStatus(boolean status)
-  {
-    if (status)
-    {
-      escapeCheckbox.setEnabled(true);
-      escapeCheckbox.setSelection(autoEscapeStatus);
-      node.setAutoEscapeStatus(autoEscapeStatus);
-    }
-    else
-    {
-      escapeCheckbox.setEnabled(false);
-      escapeCheckbox.setSelection(false);
-      node.setAutoEscapeStatus(false);
-    }
-  }
-
-
-  /**
-   * Returns the current regex flags.
-   */
-  String getFlags()
-  {
-    return regexFlags;
-  }
-
-  /**
-   * Returns the current XSDPattern model.
-   */
-  XSDPatternFacet getPattern()
-  {
-    return pattern;
-  }
-
-
-  /**
-   * Returns a string consisting of the values of min, max, and repeat stored in node.
-   * Used for debugging purposes only.
-   */  
-  private String getAllFieldValues()
-  {
-      String result = "";
-      result += "Min: " + node.getMin() + "\n";
-      result += "Max: " + node.getMax() + "\n";
-      result += "Repeat: " + node.getRepeat() + "\n";
-      result += "\n";
-      return result;
-  }
-  
-
-  /* Listener for the add button. */
-  class ButtonSelectListener implements SelectionListener
-  {
-    public void widgetDefaultSelected(SelectionEvent e)
-    {
-    }
-
-    // Precondition: isValidToken == true  
-    public void widgetSelected(SelectionEvent e)
-    {
-      if (!isValidToken) // should never happen
-      {
-        System.out.println("Attempted to add an invalid token.");
-        System.out.println(node.toString());
-        System.out.println(getAllFieldValues());
-        return;
-      }
-
-      // Whether there is anything selected in value.
-      boolean isActiveSelection = value.getSelectionCount() != 0;
-      
-      value.insert(node.toString());
-
-      if (terms.getSelectionIndex() == RegexNode.SELECTION)
-      {
-        updateCurrentSelectionStatus();
-      }
-
-      // If nothing is selected, then we need to advance the caret location.
-      if (!isActiveSelection)
-      {
-        value.setCaretOffset(value.getCaretOffset() + node.toString().length());
-      }
-
-      value.setFocus();
-
-    }
-
-  }
- 
-
-  /* Listener for the terms combo box. */
-  class ComboListener implements Listener
-  {
-    public void handleEvent(Event e)
-    {
-      
-      updateCurrentSelectionStatus();
-
-      // If the user has typed in a token
-      if (terms.getSelectionIndex() == -1)
-      {
-        setEscapeCheckboxEnabledStatus(true);
-        node.setContents(terms.getText());
-        node.setHasParens(true);
-        
-
-        if (debug)
-        {
-          System.out.println(terms.getText());
-        }
-
-      }
-      else if (terms.getSelectionIndex() == RegexNode.SELECTION)
-      {
-        setEscapeCheckboxEnabledStatus(false);
-      }
-      else
-      {
-        node.setContents(RegexNode.getRegexTermValue(terms.getSelectionIndex()));
-        node.setHasParens(false);
-        setEscapeCheckboxEnabledStatus(false);
-      }
-    }
-  }
-
-
-  /* Listener for enabling/disabling caretLabel. */
-  class TextFocusListener implements FocusListener
-  {
-    public void focusGained(FocusEvent e)
-    {
-      setShowCaretLabel(false);
-    }
-    public void focusLost(FocusEvent e)
-    {
-      setShowCaretLabel(true);
-    }
-  }
-
-
-
-  /* Listener for the text fields. */
-  class TextListener implements Listener
-  {
-    public void handleEvent (Event e)
-    {
-
-      if (debug)
-      {
-        System.out.println("Inside TextListener handler");
-        System.out.println(e);
-        System.out.println(getAllFieldValues());
-      }
-
-
-      if ( (e.widget == value) && (e.type == SWT.Modify) )
-      {
-        pattern.setLexicalValue(value.getText());
-        validateRegex();
-      }
-
-      else if (e.widget == value && e.type == SWT.Selection)
-      {
-        if (terms.getSelectionIndex() == RegexNode.SELECTION)
-        {
-          updateCurrentSelectionStatus();
-        }
-      }
-
-      else if (e.widget == rangeMinValue)
-      {
-        boolean isValid = node.setMin(rangeMinValue.getText());
-
-        if (isValid)
-        {
-          setTokenStatus(true, null, TOKEN);
-        }
-        else
-        {
-          setTokenStatus(false,  XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_INVALID_MIN_ERROR_SUFFIX"), TOKEN);
-        }
-      }
-
-      else if (e.widget == rangeMaxValue)
-      {
-        boolean isValid = node.setMax(rangeMaxValue.getText());
-
-        if (node.getMin() == RegexNode.EMPTY)
-        {
-          setTokenStatus(false, XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_MISSING_MIN_ERROR_SUFFIX"), TOKEN);
-        }
-        else if (isValid)
-        {
-          setTokenStatus(true, null, TOKEN);
-        }
-        else
-        {
-          setTokenStatus(false, XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_INVALID_MAX_ERROR_SUFFIX"), TOKEN);
-        }
-      }
-
-      else  // (e.widget == repeatValue)
-      {
-        boolean isValid = node.setRepeat(repeatValue.getText());
-        if (isValid)
-        {
-          setTokenStatus(true, null, TOKEN);
-        }
-        else
-        {
-          setTokenStatus(false, XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_INVALID_REPEAT_ERROR_SUFFIX"), TOKEN);
-        }
-      }
-    }
-  }
-
-  /* Listener for the auto-escape checkbox. */
-  class CheckboxListener implements SelectionListener
-  {
-    public void widgetDefaultSelected(SelectionEvent e)
-    {
-    }
-
-    public void widgetSelected(SelectionEvent e)
-    {
-      boolean newStatus = !autoEscapeStatus;
-      node.setAutoEscapeStatus(newStatus);
-      autoEscapeStatus = newStatus;
-      
-      if (debug)
-      {
-        System.out.println("AutoEscape Status: " + node.getAutoEscapeStatus());
-      }
-    }
-
-  }
-
-
-  /* Listener for the radio buttons. */
-  class RadioSelectListener implements SelectionListener
-  {
-    public void widgetDefaultSelected(SelectionEvent e)
-    {
-    }
-
-    public void widgetSelected(SelectionEvent e)
-    {
-      if (debug)
-      {
-        System.out.println(getAllFieldValues());
-      }
-
-
-      int currentQuantifier = getQuantifier(e);
-
-      node.setQuantifier(currentQuantifier);
-
-      switch (currentQuantifier)
-      {
-      case RegexNode.SINGLE:                     
-      case RegexNode.STAR:
-      case RegexNode.PLUS:
-      case RegexNode.OPTIONAL:
-        setEnabledStatus(RegexNode.REPEAT, false);
-        setEnabledStatus(RegexNode.RANGE, false);
-        setTokenStatus(true, TOKEN);
-        break; 
-
-      case RegexNode.REPEAT:
-        setEnabledStatus(RegexNode.REPEAT, true);
-        setTokenStatus(node.hasValidRepeat(), XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_INVALID_REPEAT_ERROR_SUFFIX"), TOKEN);
-        repeatValue.setFocus();
-        break;
-
-      case RegexNode.RANGE:
-        setEnabledStatus(RegexNode.RANGE, true);
-        String error = (node.hasValidMin()) ? 
-                            XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_INVALID_MAX_ERROR_SUFFIX") : 
-                            XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_INVALID_MIN_ERROR_SUFFIX");
-
-        setTokenStatus( node.hasValidMin() && node.hasValidMax(), error, TOKEN);
-        rangeMinValue.setFocus();
-        break;
-      }
-    }
-
-    private int getQuantifier(SelectionEvent e)
-    {
-
-      if (e.widget == singleRadio)
-      {
-        return RegexNode.SINGLE;
-      }
-      
-      else if (e.widget == starRadio)
-      {
-        return RegexNode.STAR;
-      }
-      
-      else if (e.widget == plusRadio)
-      {
-        return RegexNode.PLUS;
-      }
-      
-      else if (e.widget == optionalRadio)
-      {
-        return RegexNode.OPTIONAL;
-      }
-      
-      else if (e.widget == repeatRadio)
-      {
-        return RegexNode.REPEAT;
-      }
-      
-      else if (e.widget == rangeRadio)
-      {
-        return RegexNode.RANGE;
-      }
-      
-      else // can't get here
-      { 
-        return RegexNode.EMPTY;
-      }
-    } 
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/RegexNode.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/RegexNode.java
deleted file mode 100644
index 2844709..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/RegexNode.java
+++ /dev/null
@@ -1,421 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.wizards;
-
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-
-
-class RegexNode
-{
-  private String contents;
-  private int min;
-  private int max;
-  private int repeat;
-  private int quantifier;
-  private boolean hasParens;
-  private boolean autoEscapeStatus;
-
-  
-  /* Quantifiers. */
-  public static final int SINGLE = 0;    
-  public static final int STAR = 1;
-  public static final int PLUS = 2;
-  public static final int OPTIONAL = 3;
-  public static final int REPEAT = 4; 
-  public static final int RANGE = 5;
-
-  /* Regex quantifiers.  First column is the on-screen textual representation, second column is the 
-   on-screen regex representation.  The two are concatenated together to form the on-screen
-   representation.
-   Indexing of this array must correspond to the values of the quantifier constants above.
-  */
-  private static final String[][] regexQuantifiers =
-  { 
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_QUANTIFIER_SINGLE"),   ""  },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_QUANTIFIER_STAR"),     "*" },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_QUANTIFIER_PLUS"),     "+" },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_QUANTIFIER_OPTIONAL"), "?" },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_QUANTIFIER_REPEAT"),   ""  },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_QUANTIFIER_RANGE"),    ""  },
-  };
-
-
-  /* Regex tokens.  First column is the on-screen representation, second column is the regex representation. 
-     More tokens can be added, but it is assumed that "Current Selection" is the last element in the array.
-     If this is not the case, then the value of the SELECTION constant below will need to be changed 
-     accordingly.
-     Also note that because these are java Strings, backslashes must be escaped (this is only relevant to the
-     second column of the array).
-   */
-  private static final String[][] regexTerms =
-  { 
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TERM_ANY_CHAR"),   "."     },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TERM_ALPHANUMERIC_CHAR"),   "\\w"     },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TERM_WHITESPACE"), "\\s"   },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TERM_DIGIT"),      "\\d"   },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TERM_UPPER"),      "[A-Z]" },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TERM_LOWER"),      "[a-z]" },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TERM_SELECTION"),  ""      },
-  };
-
-  /* Token enumerated constants. */
-
-  // SELECTION must correspond to the index in regexTerms of "Current Selection".  This is assumed to be
-  //  the last element.
-  public static final int SELECTION = regexTerms.length - 1;
-
-  public static final int EMPTY = -1;
-
-  /* 
-  The metacharacters recognized by XML Schema.
-  Note that the double backslash ("\\") actually represents an escaped single backslash character ("\").
-  */ 
-  private static final String metacharacters = ".\\?*+{}()[]";
-
-
-  public static String getRegexTermText(int i)
-  {
-    if (i == SELECTION)
-    {
-      return regexTerms[i][0];
-    }
-    else
-    {
-      return regexTerms[i][0] + " ( " + regexTerms[i][1] + " )";
-    }
-  }
-
-  public static String getRegexTermValue(int i)
-  {
-    if (i == SELECTION) // shouldn't happen
-    {
-      return "";
-    }
-    else
-    {
-      return regexTerms[i][1];
-    }
-  }
-
-  public static int getNumRegexTerms()
-  {
-    return regexTerms.length;
-  }
-
-  public static String getQuantifierText(int i)
-  {
-    String result = regexQuantifiers[i][0];
-    
-    if (!regexQuantifiers[i][1].equals(""))
-    {
-      result += " ( ";
-      result += regexQuantifiers[i][1];
-      result += " )";
-    }
-
-    return result;
-  }
-
-  public RegexNode()
-  {
-    this.contents = "";
-    this.quantifier = SINGLE;
-    this.min = EMPTY;
-    this.max = EMPTY;
-    this.repeat = EMPTY;
-    this.hasParens = false;
-
-  }
-
-  
-  public String getContents()
-  {
-    return contents;
-  }
-  
-  public void setContents(String contents)
-  {
-    this.contents = contents;
-  }
-
-
-  public int getQuantifier()
-  {
-    return quantifier;
-  }
-
-  public void setQuantifier(int quantifier)
-  {
-    this.quantifier = quantifier;
-  }
-
-
-  public int getMin()
-  {
-    return min;
-  }
-
-  public void setMin(int min)
-  {
-    this.min = min;
-  }
-
-  /**
-   * Sets this.min to the integer representation of min iff min is a valid value (i.e. greater than 0).
-   * Sets this.min to EMPTY if it is not.
-   *
-   * @param min The new min value
-   * @returns Whether min was a valid value
-   */  
-  public boolean setMin(String min)
-  {
-    this.min = convertToInt(min);
-
-    // min > max is an invalid case, unless max is EMPTY (since EMPTY == -1).
-    if ( (this.max != EMPTY) && (this.min > this.max) )
-    {
-      return false;
-    }
-    
-    return (this.min >= 0);
-  }
-
-  
-  public int getMax()
-  {
-    return max;
-  }
-  
-  public void setMax(int max)
-  {
-    this.max = max;
-  }
-
-  /**
-   * Sets this.max to the integer representation of max iff max is a valid value (i.e. greater than 0).
-   * Sets this.max to EMPTY if it is not.
-   *
-   * @param max The new max value
-   * @returns Whether max was a valid value, or (whether max == the empty string && min has a valid value)
-   */ 
-  public boolean setMax(String max)
-  {
-    this.max = convertToInt(max);
-
-    // The empty string is a valid max value iff min has a valid value.
-    // This is due to the fact that {n,} means "at least n times" in regex parlance.
-    if (max.equals("") && this.min != EMPTY)
-    {
-      return true;
-    }
-    
-    else if (this.max < this.min)
-    {
-      return false;
-    }
-    
-    else
-    {
-      return (this.max >= 0);
-    }
-  }
-
-
- 
-  public int getRepeat()
-  {
-    return repeat;
-  }
-
-  public void setRepeat(int repeat)
-  {
-    this.repeat = repeat;
-  }
-
-  /**
-   * Sets this.repeat to the integer representation of repeat iff repeat is a valid value (i.e. greater than 0).
-   * Sets this.repeat to EMPTY if it is not.
-   *
-   * @param repeat The new repeat value
-   * @returns Whether repeat was a valid value
-   */
-  public boolean setRepeat(String repeat)
-  {
-    this.repeat = convertToInt(repeat);
-    return (this.repeat >= 0);
-  }
-
-
-
-  /**
-   * Returns the integer representation of s.  If s is less than zero, or if s is not an int
-   * (i.e. if Integer.parseInt would throw a NumberFormatException), then returns EMPTY.
-   *
-   * @param s The String to convert.
-   * @returns The integer representation of s.
-   */
-  private int convertToInt(String s)
-  {
-    int result;
-    try
-    {
-      result = Integer.parseInt(s);
-      if (result < 0)
-      {
-        result = EMPTY;
-      }
-    }
-    catch (NumberFormatException e)
-    {
-      result = EMPTY;
-    }
-
-    return result;
-  }
-
-
-  public boolean getHasParens()
-  {
-    return hasParens;
-  }
-
-  public void setHasParens(boolean status)
-  {
-    this.hasParens = status;
-  }
-
-  public boolean getAutoEscapeStatus()
-  {
-    return autoEscapeStatus;
-  }
-
-  public void setAutoEscapeStatus(boolean status)
-  {
-    this.autoEscapeStatus = status;
-  }
-
-  /**
-   * Returns an escaped version of s.  In other words, each occurrence of a metacharacter ( .\?*+{}()[] )
-   * is replaced by that character preceded by a backslash.
-   *
-   * @param s The String to escape.
-   * @returns An escaped version of s.
-   */
-  private String addEscapeCharacters(String s)
-  {
-    StringBuffer result = new StringBuffer("");
-
-    for (int i = 0; i < s.length(); i++)
-    {
-      char currentChar = s.charAt(i);
-
-      if (isMetachar(currentChar))
-      {
-        result.append("\\"); // Note that this is an escaped backslash, not a double backslash.
-      }
-      result.append(currentChar);
-
-    }
-
-    return result.toString();
-  }
-
-  /**
-   * Checks whether c is a metacharacter as defined in the static variable metacharacters.
-   *
-   * @param c The character to check.
-   * @returns Whether c is a metacharacter.
-   */
-  private boolean isMetachar(char c)
-  {
-    return metacharacters.indexOf(c) != -1;
-  }
-  
-
-  public boolean hasValidMin()
-  {
-    return (min != EMPTY);
-  }
-
-  public boolean hasValidMax()
-  {
-    return(max != EMPTY);
-  }
-
-  public boolean hasValidRepeat()
-  {
-    return(repeat != EMPTY);
-  }
-
-  public String toString()
-  {
-    String result = "";
-    
-    if (hasParens)
-    {
-      result += "(";
-    }
-    
-    if (autoEscapeStatus)
-    {
-       result += addEscapeCharacters(contents);
-    }
-    else 
-    {
-      result += contents;
-    }
-
-
-    if (hasParens)
-    {
-      result += ")";
-    }
-    
-    switch (quantifier)
-    {
-      case STAR:
-        result += "*";
-        break;
-      
-      case PLUS:
-        result += "+";
-        break;
-      
-      case OPTIONAL:
-        result += "?";
-        break;
-      
-      case REPEAT:
-        result += "{" + repeat + "}";
-        break;
-      
-      case RANGE:
-        result += "{" + min + ",";
-        if (max == EMPTY)
-        {
-          result += "";
-        }
-        else
-        {
-          result += max;
-        }       
-        result += "}";
-        break;
-      
-      // SINGLE is a fall through           
-
-    }
-    return result;
-
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/RegexTestingPage.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/RegexTestingPage.java
deleted file mode 100644
index 57601b5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/RegexTestingPage.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-// Based on version 1.6 of original xsdeditor
-package org.eclipse.wst.xsd.ui.internal.wizards;
-
-import java.util.regex.Pattern;
-
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorContextIds;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-
-
-public class RegexTestingPage extends WizardPage
-{
-  /* Validator from xerces package. */
-//  private RegularExpression validator;
-  private Pattern validator;
-  
-  /* Displays the status of the match. */
-  private Label matchLabel;
-
-
-  /* The regex. */
-  private Text value;
-  
-  /* The string the user is trying to match against the regex. */
-  private StyledText testString;
-
-  public RegexTestingPage()
-  {
-    super(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TESTING_PAGE_TITLE"));
-
-    setTitle(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TESTING_PAGE_TITLE"));
-    setDescription(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TESTING_PAGE_DESCRIPTION"));
-  }
-
-
-  public void createControl(Composite parent)
-  {
-    Composite composite = ViewUtility.createComposite(parent, 1);
-    WorkbenchHelp.setHelp(composite, XSDEditorContextIds.XSDR_TEST_PAGE);
-
-    matchLabel = new Label(composite, SWT.WRAP);
-    matchLabel.setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TESTING_PAGE_DESCRIPTION"));
-    FontData[] fontData = matchLabel.getFont().getFontData();
-    GridData dataF = new GridData();
-    dataF.widthHint = 400;
-    dataF.heightHint = 6 * fontData[0].getHeight();
-    matchLabel.setLayoutData(dataF);
-    
-    Composite controls = new Composite(composite, SWT.NONE);
-    GridLayout controlsLayout = new GridLayout();
-    controlsLayout.numColumns = 2;
-    controls.setLayout(controlsLayout);
-    controls.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-    new Label(controls, SWT.LEFT).setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_REGEX_LABEL"));
-    value = new Text(controls, SWT.BORDER | SWT.READ_ONLY);
-    value.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-
-    new Label(controls, SWT.LEFT).setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_SAMPLE_TEXT"));
-    testString = new StyledText(controls, SWT.SINGLE | SWT.BORDER);
-    WorkbenchHelp.setHelp(testString, XSDEditorContextIds.XSDR_TEST_SAMPLE);
-    testString.addListener(SWT.Modify, new TestStringListener());
-    testString.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-    
-    controls.pack();
-    
-    Label separator = new Label(composite, SWT.SEPARATOR | SWT.HORIZONTAL);
-    GC gc = new GC(separator);
-    Point pointSize = gc.stringExtent(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TESTING_PAGE_DESCRIPTION"));
-    GridData gd = new GridData();
-    gd.widthHint = (int)(pointSize.x / 2 + gc.getAdvanceWidth('M')*11);
-    gd.horizontalAlignment= GridData.FILL;
-    separator.setLayoutData(gd);
-    
-    composite.pack();
-    
-//    validator = new RegularExpression("", getFlags());
-
-    setControl(composite);
-  }
-
-
-  private String getPatternValue()
-  {
-    return ( (RegexCompositionPage)getPreviousPage() ).getPattern().getLexicalValue();
-  }
-
-  private String getFlags()
-  {
-    return ( (RegexCompositionPage)getPreviousPage() ).getFlags();
-  }
-
-  public void setVisible(boolean visible)
-  {
-    super.setVisible(visible);
-
-    String pattern = getPatternValue();
-    String flags = getFlags();
-
-    value.setText(pattern);
-
-//    try
-//    {
-//      validator.setPattern(pattern, flags);
-//    }
-//    catch (ParseException pe)
-//    {
-//    }
-    
-    updateMatchStatus();
-
-    testString.setFocus();
-  }
-
-  class TestStringListener implements Listener
-  {
-    public void handleEvent(Event e)
-    {
-      updateMatchStatus();
-    }
-  }
-
-  private void updateMatchStatus()
-  {
-    if (Pattern.matches(getPatternValue(), testString.getText()))
-    {
-//      matchLabel.setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_MATCHES"));
-      setMessage(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_MATCHES"), 1);
-    }
-    else
-    {
-      setMessage(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_DOES_NOT_MATCH"), 2);
-//      matchLabel.setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_DOES_NOT_MATCH"));
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/RegexWizard.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/RegexWizard.java
deleted file mode 100644
index e17cb80..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/RegexWizard.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.wizards;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.xsd.XSDPatternFacet;
-import org.eclipse.xsd.impl.XSDFactoryImpl;
-
-
-public class RegexWizard extends Wizard 
-{
-  private static final boolean debug = false;
-  
-  private RegexCompositionPage compositionPage;
-  private RegexTestingPage testingPage;
-
-  /* The original, unchanged pattern. */  
-  private XSDPatternFacet originalPattern;
-  
-  /* A copy of the original pattern that is passed into the wizard. */
-  private XSDPatternFacet modifiedPattern;
-
-  String pattern;
-
-  public RegexWizard(String expr)
-  {
-    super();
-    setWindowTitle(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TITLE"));
-    setDefaultPageImageDescriptor(ImageDescriptor.createFromFile(XSDEditorPlugin.class, "icons/regx_wiz.gif"));
-
-    XSDFactoryImpl factory = new XSDFactoryImpl();
-    modifiedPattern = factory.createXSDPatternFacet();
-    modifiedPattern.setLexicalValue(expr);
-
-    originalPattern = factory.createXSDPatternFacet();
-    originalPattern.setLexicalValue(expr);
-
-    compositionPage = new RegexCompositionPage(modifiedPattern);
-    addPage(compositionPage);
-
-    testingPage = new RegexTestingPage();
-    addPage(testingPage);
-  }
-
-  public String getPattern()
-  {
-    return pattern;
-  }
-
-  public boolean performFinish()
-  {
-    pattern = modifiedPattern.getLexicalValue();
-    return true;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/XSDLocationChoicePage.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/XSDLocationChoicePage.java
deleted file mode 100644
index ef0110a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/XSDLocationChoicePage.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.wizards;
-
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-
-
-public class XSDLocationChoicePage extends WizardPage 
-{
-  protected Button radioButton1;
-  protected Button radioButton2;
-    
-  public XSDLocationChoicePage()
-  {
-    super("XSDLocationChoicePage");
-
-    this.setTitle(XSDEditorPlugin.getXSDString("_UI_WIZARD_INCLUDE_FILE_TITLE"));
-    this.setDescription(XSDEditorPlugin.getXSDString("_UI_WIZARD_INCLUDE_FILE_DESC"));
-  }
-    
-  public boolean isPageComplete()
-  {
-    return true;
-  }
-    
-  public void createControl(Composite parent)
-  {
-    Composite base = new Composite(parent, SWT.NONE);
-    base.setLayout(new GridLayout());
-    GridData data;
-      
-    ViewUtility.createLabel(base, XSDEditorPlugin.getXSDString("_UI_LABEL_INCLUDE_URL_FILE"));
-    Composite radioButtonsGroup = ViewUtility.createComposite(base, 1, true);
-
-    radioButton1 = ViewUtility.createRadioButton(radioButtonsGroup, 
-                                                 XSDEditorPlugin.getXSDString("_UI_RADIO_FILE"));
-      
-    radioButton2 = ViewUtility.createRadioButton(radioButtonsGroup,
-                                                 XSDEditorPlugin.getXSDString("_UI_RADIO_URL"));
-
-    radioButton1.setSelection(true);
-
-    setControl(base);
-  }
-
-  // actions on finish
-  public boolean performFinish()
-  {
-    return true;
-  }
-
-  public boolean isURL()
-  {
-    return radioButton2.getSelection();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/XSDNewFilePage.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/XSDNewFilePage.java
deleted file mode 100644
index d25eea7..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/XSDNewFilePage.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.wizards;
- 
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-
-
-public class XSDNewFilePage extends WizardNewFileCreationPage
-{
-  public XSDNewFilePage(IStructuredSelection selection) 
-  {
-    super(XSDEditorPlugin.getXSDString("_UI_CREATEXSD"), selection);
-    setTitle(XSDEditorPlugin.getXSDString("_UI_NEW_XML_SCHEMA_TITLE"));
-    setDescription(XSDEditorPlugin.getXSDString("_UI_CREATE_A_NEW_XML_SCHEMA_DESC"));
-  }
-
-  public void createControl(Composite parent) 
-  {
-    // inherit default container and name specification widgets
-    super.createControl(parent);
-
-    this.setFileName(computeDefaultFileName());
-
-    setPageComplete(validatePage());
-  }
-
-  protected boolean validatePage()
-  {
-    Path newName = new Path(getFileName());
-    String fullFileName = getFileName();
-    String extension = newName.getFileExtension();
-    if (extension == null || !extension.equalsIgnoreCase("xsd")) 
-    {
-      setErrorMessage(XSDEditorPlugin.getXSDString("_ERROR_FILENAME_MUST_END_XSD"));
-      return false;
-    }
-    else 
-    {
-      setErrorMessage(null);
-    }
-
-    // check for file should be case insensitive
-    String sameName = existsFileAnyCase(fullFileName);
-    if (sameName != null) 
-    {
-      String qualifiedFileName = getContainerFullPath().toString() + '/' + fullFileName;
-      setErrorMessage(XSDEditorPlugin.getPlugin().getString("_ERROR_FILE_ALREADY_EXISTS", sameName)); //$NON-NLS-1$
-      return false;
-    }
-
-    return super.validatePage();
-  }
-
-  public String defaultName = "NewXMLSchema"; //$NON-NLS-1$
-  public String defaultFileExtension = ".xsd"; //$NON-NLS-1$
-  public String[] filterExtensions = { "*.xsd"}; //$NON-NLS-1$
-
-  protected String computeDefaultFileName()
-  {
-    int count = 0;
-    String fileName = defaultName + defaultFileExtension;
-    IPath containerFullPath = getContainerFullPath();
-    if (containerFullPath != null)
-    {
-      while (true)
-      {
-        IPath path = containerFullPath.append(fileName);
-        if (ResourcesPlugin.getWorkspace().getRoot().exists(path))
-        {
-          count++;
-          fileName = defaultName + count + defaultFileExtension;
-        }
-        else
-        {
-          break;
-        }
-      }
-    }
-    return fileName;
-  }
-
-  // returns true if file of specified name exists in any case for selected container
-  protected String existsFileAnyCase(String fileName)
-  {
-    if ( (getContainerFullPath() != null) && (getContainerFullPath().isEmpty() == false)
-        && (fileName.compareTo("") != 0))
-    {
-      //look through all resources at the specified container - compare in upper case
-      IResource parent = ResourcesPlugin.getWorkspace().getRoot().findMember(getContainerFullPath());
-      if (parent instanceof IContainer)
-      {
-        IContainer container = (IContainer) parent;
-        try
-        {
-          IResource[] members = container.members();
-          String enteredFileUpper = fileName.toUpperCase();
-          for (int i=0; i<members.length; i++)
-          {
-            String resourceUpperName = members[i].getName().toUpperCase();
-            if (resourceUpperName.equals(enteredFileUpper))
-            {  
-              return members[i].getName();    
-            }
-          }
-        }
-        catch (CoreException e)
-        {
-        }
-      }
-    }
-    return null;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/XSDSelectIncludeFileWizard.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/XSDSelectIncludeFileWizard.java
deleted file mode 100644
index 35dee94..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/wizards/XSDSelectIncludeFileWizard.java
+++ /dev/null
@@ -1,371 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.wizards;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.ui.viewers.SelectSingleFilePage;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDParser;
-
-
-/**
- * Extend the base wizard to select a file from the project or outside the workbench
- * and add error handling
- */
-public class XSDSelectIncludeFileWizard extends Wizard implements INewWizard
-{
-  boolean isInclude;
-  XSDSchema mainSchema;
-  XSDSchema externalSchema;
-
-  XSDLocationChoicePage choicePage;
-  XSDSelectSingleFilePage filePage;
-  XSDURLPage urlPage;
-
-  IFile resultFile;
-  String resultURL;
-  String namespace = "";
-
-  public XSDSelectIncludeFileWizard(XSDSchema mainSchema, boolean isInclude,
-                                    String title, String desc, 
-                                    ViewerFilter filter,
-                                    IStructuredSelection selection)
-  {
-    super();
-    setWindowTitle(title);
-    setDefaultPageImageDescriptor(ImageDescriptor.createFromFile(XSDEditorPlugin.class, "icons/NewXSD.gif"));
-
-    setNeedsProgressMonitor(true);
-
-    // Choice Page
-    choicePage = new XSDLocationChoicePage();
-
-    // Select File Page
-    filePage = new XSDSelectSingleFilePage(PlatformUI.getWorkbench(),  selection, true);
-    filePage.setTitle(title);
-    filePage.setDescription(desc);
-    filePage.addFilter(filter);
-
-    // URL Page
-    urlPage = new XSDURLPage();
-    urlPage.setTitle(title);
-    urlPage.setDescription(XSDEditorPlugin.getXSDString("_UI_FILEDIALOG_SELECT_XML_URL"));
-    
-    this.mainSchema = mainSchema;
-    this.isInclude = isInclude;
-  }
-
-  public void init(IWorkbench aWorkbench, IStructuredSelection aSelection)
-  { 
-  }
-
-  public void addPages()
-  {
-    addPage(choicePage);
-    addPage(filePage);
-    addPage(urlPage);
-  }
-
-  public IWizardPage getNextPage(IWizardPage currentPage)
-  {
-    WizardPage nextPage = null;
-
-    if (currentPage == choicePage)
-    {
-      if (choicePage.isURL()) 
-      {
-        nextPage = urlPage;
-      }
-      else
-      {
-        nextPage = filePage;
-      }
-    }
-    return nextPage;
-  }
-
-  public boolean canFinish()
-  {
-    if (!choicePage.isURL())
-    {
-      return filePage.isPageComplete(); 
-    }
-    return true;
-  }
-
-  public boolean performFinish()
-  { 
-    if (choicePage.isURL())
-    {
-      try 
-      {
-        getContainer().run(false, true, urlPage.getRunnable());
-        resultURL = urlPage.getURL();
-      }
-      catch (Exception e)
-      {
-        return false;
-      }
-      return true;
-    }
-    else
-    {  
-      resultFile = filePage.getFile();
-    }
-    return true;
-  }
-
-  /**
-   * Get the MOF object that represents the external file
-   */
-  public XSDSchema getExternalSchema()
-  {
-    return externalSchema;
-  }
-
-  public IFile getResultFile()
-  {
-    return resultFile;
-  }
-
-  public String getURL()
-  {
-    return resultURL;
-  }
-  
-  public String getNamespace()
-  {
-  	return namespace;
-  }
-
-  /**
-   * Create a MOF model for the imported file
-   */
-  protected String doLoadExternalModel(IProgressMonitor monitor, String xsdModelFile, String xsdFileName)
-  { 
-    String errorMessage = null;
-    String currentNameSpace = mainSchema.getTargetNamespace();
-
-    monitor.beginTask("Loading XML Schema", 100);
-    monitor.worked(50);
-
-    XSDParser parser = new XSDParser();
-    parser.parse(xsdModelFile);
-
-    externalSchema = parser.getSchema();
-    if (externalSchema != null)
-    {
-      String extNamespace = externalSchema.getTargetNamespace();
-      namespace = extNamespace;
-     
-      if (externalSchema.getDiagnostics() != null &&
-          externalSchema.getDiagnostics().size() > 0)
-      {
-        errorMessage = XSDEditorPlugin.getPlugin().getString("_UI_INCORRECT_XML_SCHEMA", xsdFileName);
-      }  
-      else
-      {
-        if (isInclude) 
-        {  
-          // Check the namespace to make sure they are the same as current file
-          if (extNamespace != null)
-          {
-            if (currentNameSpace != null && !extNamespace.equals(currentNameSpace))
-            {
-              errorMessage = XSDEditorPlugin.getPlugin().getString("_UI_DIFFERENT_NAME_SPACE", xsdFileName);
-            }
-          }
-        }
-        else
-        {  
-          // Check the namespace to make sure they are different from the current file
-          if (extNamespace != null)
-          {
-            if (currentNameSpace != null && extNamespace.equals(currentNameSpace))
-            {
-              errorMessage = XSDEditorPlugin.getPlugin().getString("_UI_SAME_NAME_SPACE", xsdFileName);
-            }
-          }
-        }
-      }
-    }
-    else
-    {
-      errorMessage = XSDEditorPlugin.getPlugin().getString("_UI_INCORRECT_XML_SCHEMA", xsdFileName);
-    }
-
-    monitor.subTask("Finish Loading");
-    monitor.worked(80);
-
-    return errorMessage;
-  }
-
- 
-  /**
-   * URL page
-   */
-  class XSDURLPage extends WizardPage
-  { 
-    Text urlField;
-    String saveString;
-
-    public XSDURLPage()
-    {
-      super("URLPage");
-    }
-
-    public void createControl(Composite parent)
-    {
-      Composite client = ViewUtility.createComposite(parent,2);
-      ViewUtility.setComposite(client);
-
-      ViewUtility.createLabel(client, XSDEditorPlugin.getXSDString("_UI_LABEL_URL"));
-      ViewUtility.createLabel(client, "");
-
-      urlField = ViewUtility.createTextField(client, 50);
-      saveString = "http://";
-      urlField.setText(saveString);
-
-      setControl(client);
-    }
-
-    public String getURL()
-    {
-      return urlField.getText();
-    }
-
-    private boolean openExternalSchema(IProgressMonitor monitor)
-    {
-      String text = urlField.getText();
-//      if (text.equals(saveString)) 
-//      {
-//        return false;
-//      }
-//      saveString = text;
-
-      if (text.equals(""))
-      {
-        setErrorMessage(XSDEditorPlugin.getXSDString("_UI_SPECIFY_URL"));
-        return false;
-      }
-
-      if ( !text.startsWith("http://") )
-      {
-        setErrorMessage(XSDEditorPlugin.getXSDString("_UI_URL_START_WITH"));
-        return false;
-      }
-
-      setErrorMessage(null);
-      String errorMessage = doLoadExternalModel(monitor, text, text);
-      if (errorMessage != null) 
-      {
-        setErrorMessage(errorMessage); 
-        return false;
-      }
-      else
-      {
-        return true;
-      }
-    }
-
-    public IRunnableWithProgress getRunnable()
-    {
-      return new IRunnableWithProgress()
-      {
-        public void run(IProgressMonitor monitor)   
-          throws InvocationTargetException, InterruptedException
-        {
-          if (monitor == null)
-          {
-            monitor= new NullProgressMonitor();
-          }
-          monitor.beginTask("", 6);
-        
-          boolean ok = openExternalSchema(monitor);
-
-          if (!ok) 
-          { 
-            throw new InvocationTargetException(new java.lang.Error());
-          }
-
-          monitor.done();
-        }
-      };
-    }
-  }
-
-  /**
-   * Select XML Schema File
-   */
-  class XSDSelectSingleFilePage extends SelectSingleFilePage
-  {
-    public XSDSelectSingleFilePage(IWorkbench workbench, IStructuredSelection selection, boolean isFileMandatory)
-    {          
-      super(workbench,selection,isFileMandatory);
-    }
-
-    private boolean openExternalSchema()
-    {
-      // Get the fully-qualified file name
-      IFile iFile = getFile();
-      if (iFile == null) 
-        return false;
-
-      setErrorMessage(null);
-
-      String xsdModelFile = iFile.getLocation().toOSString();
-      String xsdFileName = iFile.getName();
-      String errorMessage = doLoadExternalModel(new NullProgressMonitor(), xsdModelFile, xsdFileName);
-
-      if (errorMessage != null) 
-      {
-        setErrorMessage(errorMessage);
-        return false;
-      }
-      else
-      {
-        return true;
-      }
-    }
-
-    public boolean isPageComplete()
-    {  
-      if (choicePage.isURL()) 
-      {
-        return true;
-      }
-
-      if (super.isPageComplete()) 
-      {
-        return openExternalSchema();
-      }
-      return super.isPageComplete();
-    }
-  }
-}